*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{overscroll-behavior:none;height:100%;overflow:hidden}body{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;height:100%;overflow-y:auto}:root{--color-bg:#f4f5f4;--color-bg-subtle:#eceeec;--color-surface:#fff;--color-surface-hover:#f7f8f7;--color-surface-raised:#fff;--color-primary:#3d5161;--color-primary-hover:#2e3f4c;--color-primary-light:#3d516112;--color-text:#1b1e22;--color-text-secondary:#5e666e;--color-text-tertiary:#9aa1a8;--color-border:#e2e4e2;--color-border-light:#eceeec;--color-success:#38705a;--color-success-light:#38705a14;--color-error:#b24a42;--color-error-light:#b24a4214;--color-warning:#9a7b2e;--color-warning-light:#9a7b2e14;--radius:10px;--radius-sm:8px;--radius-xs:6px;--shadow-xs:none;--shadow:0 1px 2px #1b1e2208;--shadow-md:0 2px 8px #1b1e220f;--shadow-lg:0 16px 48px #1b1e221f;--nav-height:64px;--font-display:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55}#root{z-index:1;position:relative}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{color:var(--color-text);font-family:inherit;font-size:15px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.container{max-width:620px;padding:28px 20px;padding-bottom:calc(var(--nav-height) + 32px);animation:fadeInUp .4s var(--ease-out) both;margin:0 auto}.page-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text);margin-bottom:24px;font-size:26px;font-weight:600;line-height:1.2}.btn{border-radius:var(--radius-sm);letter-spacing:-.01em;transition:all .18s var(--ease-out);justify-content:center;align-items:center;gap:8px;width:100%;min-height:46px;padding:11px 22px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:#d2d5d2}.btn-secondary:active{transform:scale(.99)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover{background:#9c3f38}.btn-small{border-radius:var(--radius-xs);width:auto;min-height:36px;padding:7px 14px;font-size:13px}.input-group{margin-bottom:16px}.input-group label{color:var(--color-text-secondary);letter-spacing:0;margin-bottom:7px;font-size:12px;font-weight:500;display:block}.input-group input,.input-group select,.input-group textarea{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;transition:all .18s var(--ease-out);padding:12px 14px}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.input-group input::placeholder{color:var(--color-text-tertiary)}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);transition:border-color .18s var(--ease-out);margin-bottom:8px;padding:16px 18px}.card:hover{border-color:#d2d5d2}.badge{letter-spacing:0;border-radius:6px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-neutral{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.error-msg{color:var(--color-error);margin-top:10px;font-size:13px;font-weight:500}.month-nav{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.month-nav button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:44px;min-height:44px;color:var(--color-text);transition:all .18s var(--ease-out);padding:8px 16px;font-size:18px}.month-nav button:hover{background:var(--color-surface-hover);border-color:#d2d5d2}.month-nav button:active{transform:scale(.98)}.month-nav span{font-family:var(--font-display);letter-spacing:-.01em;text-align:center;color:var(--color-text);font-size:17px;font-weight:600}.hours-total{text-align:center;background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);color:var(--color-text-secondary);margin-bottom:20px;padding:16px;font-size:13px;font-weight:500}.hours-total strong{color:var(--color-text);letter-spacing:-.02em;font-size:22px;font-weight:600}.entry-card{flex-direction:column;gap:4px;display:flex}.entry-card .entry-header{justify-content:space-between;align-items:center;display:flex}.entry-card .entry-time{color:var(--color-text);letter-spacing:-.01em;font-size:15px;font-weight:600}.entry-card .entry-hours{color:var(--color-primary);font-size:13px;font-weight:600}.entry-card .entry-activity{color:var(--color-text-secondary);font-size:13px;line-height:1.45}.entry-card .entry-actions{border-top:1px solid var(--color-border-light);gap:8px;margin-top:8px;padding-top:8px;display:flex}.entry-card .entry-actions button{border-radius:var(--radius-xs);color:var(--color-text-secondary);border:1px solid var(--color-border);transition:all .15s var(--ease-out);background:0 0;padding:5px 12px;font-size:12px;font-weight:600}.entry-card .entry-actions button:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:#d2d5d2}.entry-card .entry-actions .delete-btn:hover{background:var(--color-error-light);color:var(--color-error);border-color:#b24a4233}.date-group-header{color:var(--color-text-secondary);letter-spacing:0;border-bottom:1px solid var(--color-border-light);margin-top:24px;margin-bottom:8px;padding-bottom:6px;font-size:12px;font-weight:600}.bottom-nav{height:var(--nav-height);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-top:1px solid var(--color-border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);background:#ffffffe6;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--color-text-tertiary);letter-spacing:0;border-radius:var(--radius-sm);min-width:60px;transition:all .18s var(--ease-out);flex-direction:column;align-items:center;gap:4px;padding:6px 16px;font-size:10px;font-weight:500;text-decoration:none;display:flex}.bottom-nav a:hover{color:var(--color-text-secondary)}.bottom-nav a.active{color:var(--color-primary)}.bottom-nav a svg{opacity:.55;transition:all .18s var(--ease-out)}.bottom-nav a:hover svg{opacity:.75}.bottom-nav a.active svg{opacity:1}.app-header{z-index:50;-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--color-border);text-align:center;background:#ffffffd9;padding:14px 20px;position:sticky;top:0}.app-header span{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);font-weight:600}.form-row-3{grid-template-columns:1.3fr 1fr 1fr;gap:12px;display:grid}.form-row-3 .input-group{min-width:0}.form-row-3 .input-group input{box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:12px 3px;font-size:16px;overflow:hidden}.loading{color:var(--color-text-tertiary);justify-content:center;align-items:center;padding:48px;font-size:14px;font-weight:500;display:flex}.empty-state{text-align:center;color:var(--color-text-tertiary);padding:48px 24px;font-size:14px;font-weight:500}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:200;animation:modalOverlayIn .2s var(--ease-out) both;background:#1b1e224d;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);padding:28px 24px;padding-bottom:calc(70px + env(safe-area-inset-bottom,0px));width:100%;max-width:600px;max-height:calc(100vh - 80px);box-shadow:var(--shadow-lg);animation:modalContentIn .3s var(--ease-out) both;border-radius:16px 16px 0 0;overflow-y:auto}.modal-content h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);margin-bottom:20px;font-size:19px;font-weight:600}.modal-actions{gap:10px;margin-top:20px;display:flex}.modal-actions .btn{flex:1}.admin-table{width:100%;overflow-x:auto}.admin-table table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--color-border-light);padding:10px 8px}.admin-table th{color:var(--color-text-secondary);letter-spacing:0;font-size:11px;font-weight:600}@media (width>=768px){.container{padding:36px 24px}.modal-overlay{align-items:center}.modal-content{border-radius:14px;max-width:480px;padding:32px 28px}}
