*{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:#f5f3ef;--color-bg-subtle:#edeae4;--color-surface:#fff;--color-surface-hover:#faf9f7;--color-surface-raised:#fff;--color-primary:#b5543e;--color-primary-hover:#9a4633;--color-primary-light:#b5543e14;--color-text:#1a1a1f;--color-text-secondary:#7c7c88;--color-text-tertiary:#a8a8b3;--color-border:#e5e2dc;--color-border-light:#edebe6;--color-success:#2d7a50;--color-success-light:#2d7a5014;--color-error:#be3a34;--color-error-light:#be3a3414;--color-warning:#a67b1a;--color-warning-light:#a67b1a14;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-xs:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014, 0 1px 3px #0000000a;--shadow-lg:0 12px 40px #0000001a, 0 4px 12px #0000000a;--nav-height:64px;--font-display:"Instrument Serif", Georgia, serif;--font-body:"Plus Jakarta Sans", -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}body:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");background-repeat:repeat;position:fixed;inset:0}#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(12px)}to{opacity:1;transform:translateY(0)}}.container{max-width:620px;padding:24px 20px;padding-bottom:calc(var(--nav-height) + 32px);animation:fadeInUp .5s var(--ease-out) both;margin:0 auto}.page-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);margin-bottom:24px;font-size:32px;font-weight:400;line-height:1.15}.btn{border-radius:var(--radius-sm);letter-spacing:.01em;transition:all .2s var(--ease-out);justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;padding:11px 22px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 1px 3px #b5543e40,inset 0 1px #ffffff1f}.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 2px 8px #b5543e4d,inset 0 1px #ffffff1f}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 2px #b5543e33}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--color-surface-hover);box-shadow:var(--shadow);border-color:#d5d3ce;transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}.btn-danger{background:var(--color-error);color:#fff;box-shadow:0 1px 3px #be3a3440}.btn-danger:hover{background:#a8312c;transform:translateY(-1px)}.btn-small{border-radius:var(--radius-xs);width:auto;min-height:34px;padding:6px 14px;font-size:13px}.input-group{margin-bottom:16px}.input-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.input-group input,.input-group select,.input-group textarea{box-sizing:border-box;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;transition:all .2s var(--ease-out);box-shadow:var(--shadow-xs);padding:11px 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), var(--shadow-xs);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-light);box-shadow:var(--shadow);transition:all .2s var(--ease-out);margin-bottom:10px;padding:16px 18px}.card:hover{box-shadow:var(--shadow-md)}.badge{letter-spacing:.02em;border-radius:20px;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{color:var(--color-text-secondary);background:#7c7c8814}.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);box-shadow:var(--shadow-xs);transition:all .2s var(--ease-out);padding:8px 16px;font-size:18px}.month-nav button:hover{background:var(--color-surface-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.month-nav button:active{transform:translateY(0)}.month-nav span{font-family:var(--font-display);text-align:center;color:var(--color-text);font-size:20px;font-weight:400}.hours-total{text-align:center;background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border-light);color:var(--color-text-secondary);box-shadow:var(--shadow);margin-bottom:20px;padding:14px 16px;font-size:14px;font-weight:500}.hours-total strong{color:var(--color-primary);font-size:20px;font-weight:700}.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);background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--color-border);transition:all .15s var(--ease-out);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:#d5d3ce}.entry-card .entry-actions .delete-btn:hover{background:var(--color-error-light);color:var(--color-error);border-color:#be3a3433}.date-group-header{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border-light);margin-top:20px;margin-bottom:8px;padding-bottom:6px;font-size:12px;font-weight:600}.bottom-nav{height:var(--nav-height);-webkit-backdrop-filter:blur(20px)saturate(1.8);border-top:1px solid var(--color-border-light);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);background:#ffffffeb;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:.03em;border-radius:var(--radius-sm);min-width:60px;transition:all .2s var(--ease-out);flex-direction:column;align-items:center;gap:3px;padding:6px 16px;font-size:10px;font-weight:600;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:.5;transition:all .2s var(--ease-out)}.bottom-nav a:hover svg{opacity:.7}.bottom-nav a.active svg{opacity:1}.app-header{z-index:50;-webkit-backdrop-filter:blur(20px)saturate(1.8);border-bottom:1px solid var(--color-border-light);text-align:center;background:#ffffffe0;padding:12px 20px;position:sticky;top:0}.app-header span{font-family:var(--font-display);color:var(--color-text);letter-spacing:.01em;font-weight:400}.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:11px 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(24px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:200;animation:modalOverlayIn .2s var(--ease-out) both;background:#1a1a1f59;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 .35s var(--ease-out) both;border-radius:20px 20px 0 0;overflow-y:auto}.modal-content h2{font-family:var(--font-display);color:var(--color-text);margin-bottom:20px;font-size:22px;font-weight:400}.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);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}@media (width>=768px){.container{padding:32px 24px}.modal-overlay{align-items:center}.modal-content{border-radius:16px;max-width:500px;padding:32px 28px}}
