:root{--bg:#f4f5f8;--card:#fff;--text:#1b2130;--muted:#6b7280;--border:#e3e6ec;--accent:#4f46e5;--accent-soft:#eef0ff;--pos:#15803d;--pos-soft:#e7f6ec;--neg:#b91c1c;--neg-soft:#fdecec;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1117;--card:#171a22;--text:#e7e9ee;--muted:#9aa1ad;--border:#2a2f3a;--accent:#818cf8;--accent-soft:#232746;--pos:#4ade80;--pos-soft:#14301f;--neg:#f87171;--neg-soft:#3a1a1a;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.45}h1,h2{margin:0;font-weight:650}button{font:inherit;cursor:pointer}input{font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);border-radius:8px;width:100%;padding:.5rem .6rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px}.muted{color:var(--muted);font-weight:400}.pos{color:var(--pos)}.neg{color:var(--neg)}.center-screen{place-items:center;min-height:100vh;font-size:1.05rem;display:grid}.banner{border-radius:10px;margin-bottom:1rem;padding:.7rem 1rem;font-size:.9rem}.banner.error{background:var(--neg-soft);color:var(--neg)}.app{flex-direction:column;gap:1rem;max-width:1180px;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:flex}.topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{letter-spacing:-.01em;font-size:1.2rem;font-weight:700}.user-box{color:var(--muted);align-items:center;gap:.9rem;font-size:.9rem;display:flex}.username{color:var(--text);font-weight:600}.link{color:var(--accent);background:0 0;border:none;border-radius:6px;padding:.15rem .25rem}.link:hover{text-decoration:underline}.link.danger{color:var(--neg)}.month-nav{align-items:center;gap:.75rem;padding:.65rem .9rem;display:flex}.month-nav h1{text-align:center;min-width:11rem;font-size:1.15rem}.icon-btn{background:var(--bg);border:1px solid var(--border);border-radius:8px;place-items:center;width:2.2rem;height:2.2rem;font-size:1.2rem;line-height:1;display:grid}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.today-btn{background:var(--accent-soft);color:var(--accent);border:1px solid #0000;border-radius:8px;margin-left:auto;padding:.45rem .9rem;font-weight:600}.today-btn:hover{border-color:var(--accent)}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.stat{flex-direction:column;gap:.3rem;padding:.8rem .95rem;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.target-input{align-items:center;gap:.5rem;display:flex}.target-input input{width:5.5rem;padding:.35rem .5rem;font-size:1.15rem;font-weight:700}.target-input span{color:var(--muted);font-size:.85rem}.calendar{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.cal-row{grid-template-columns:repeat(7,minmax(0,1fr)) 6.5rem;display:grid}.cal-row+.cal-row{border-top:1px solid var(--border)}.cal-head{background:var(--bg)}.cal-head-cell{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.55rem .6rem;font-size:.78rem;font-weight:700}.cal-head-cell+.cal-head-cell{border-left:1px solid var(--border)}.week-col{text-align:center}.day{border-left:1px solid var(--border);outline:none;flex-direction:column;gap:.3rem;min-height:5.75rem;padding:.4rem .45rem .5rem;transition:background .12s;display:flex}.day:first-child{border-left:none}.day:hover{background:var(--accent-soft)}.day:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.day.outside{opacity:.4}.day.selected{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.day-top{justify-content:space-between;align-items:center;gap:.3rem;display:flex}.daynum{color:var(--text);border-radius:999px;place-items:center;width:1.4rem;height:1.4rem;font-size:.82rem;font-weight:700;display:grid}.day.today .daynum{background:var(--accent);color:#fff}.day-total{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}.day-entries{flex-direction:column;gap:.2rem;display:flex}.chip{font-variant-numeric:tabular-nums;background:var(--bg);border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:.1rem .35rem;font-size:.72rem;overflow:hidden}.chip-dash{color:var(--muted);margin:0 .05rem}.week-summary{border-left:1px solid var(--border);background:var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.5rem .4rem;display:flex}.week-total{font-variant-numeric:tabular-nums;font-weight:700}.week-ot{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.week-target{color:var(--muted);font-size:.68rem}.week-target.prorated{color:var(--accent);font-weight:700}.calendar-wrap{flex-direction:column;gap:.5rem;display:flex}.calendar-note{color:var(--muted);margin:0;padding:0 .2rem;font-size:.78rem}.lower{grid-template-columns:minmax(280px,340px) 1fr;align-items:start;gap:1rem;display:grid}.card-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.card-head h2{font-size:1rem}.entry-form,.day-detail{padding:1rem 1.1rem}.entry-form{flex-direction:column;gap:.7rem;display:flex}.entry-form label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.time-row{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.preview-line{color:var(--muted);margin:0;font-size:.85rem}.form-error{color:var(--neg);margin:0;font-size:.85rem}button.primary{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:.6rem 1rem;font-weight:650}button.primary:hover{filter:brightness(1.08)}button.primary:disabled{opacity:.55;cursor:not-allowed}.day-detail-total{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.entry-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.entry-item{border:1px solid var(--border);background:var(--bg);border-radius:9px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .65rem;display:flex}.entry-main{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.entry-time{font-variant-numeric:tabular-nums;font-weight:650}.entry-dur{color:var(--accent);font-size:.82rem;font-weight:650}.entry-note{color:var(--muted);font-size:.82rem}.entry-actions{flex-shrink:0;gap:.4rem;font-size:.85rem;display:flex}.login-screen{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{background:var(--card);border:1px solid var(--border);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:.9rem;padding:1.6rem;display:flex}.login-brand{color:var(--accent);font-size:.95rem;font-weight:700}.login-card h1{font-size:1.3rem}.login-card label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.login-hint{color:var(--muted);margin:.2rem 0 0;font-size:.78rem;line-height:1.5}@media (width<=820px){.lower{grid-template-columns:1fr}}@media (width<=720px){.app{padding:1rem .6rem 2rem}.cal-row{grid-template-columns:repeat(7,minmax(0,1fr)) 3.2rem}.day{min-height:4.6rem;padding:.3rem}.chip{padding:.05rem .2rem;font-size:.66rem}.week-target{display:none}.cal-head-cell{padding:.45rem .3rem;font-size:.7rem}}
