:root{--bg:#fbf7f0;--surface:#fff;--surface2:#f4ede1;--ink:#2a2118;--muted:#8b7c67;--line:#e8decc;--amber:#b97316;--amber-soft:#f3e3c8;--good:#3b7d4f;--good-soft:#ddeee2;--warn:#b4452f;--c-day:#b97316;--c-night:#3d6dab;--night-soft:#dde7f2;--shadow:0 1px 3px #2a211814}@media (prefers-color-scheme:dark){:root{--bg:#16110b;--surface:#211a11;--surface2:#2b2214;--ink:#f0e7d8;--muted:#a08f77;--line:#3a2f1d;--amber:#e3993e;--amber-soft:#3d2e15;--good:#7cc393;--good-soft:#1f3326;--warn:#e07b5f;--c-day:#c67c1f;--c-night:#5e8fd0;--night-soft:#1e2a3a;--shadow:none}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.app{flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex}header.top{justify-content:space-between;align-items:baseline;padding:14px 16px 10px;display:flex}.wordmark{letter-spacing:.02em;font-family:Georgia,Times New Roman,serif;font-size:20px}.wordmark small{color:var(--amber);font-size:20px}.top-actions{align-items:center;gap:10px;display:flex}.live{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.live .dot{background:var(--good);border-radius:50%;width:8px;height:8px}.live .dot.stale{background:var(--warn)}@media (prefers-reduced-motion:no-preference){.live .dot{animation:2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}}.logout-button{color:var(--muted);background:0 0;border:0;padding:2px 4px;font-size:12px}main{flex-direction:column;flex:1;gap:12px;padding:0 12px 16px;display:flex}.screen{flex-direction:column;gap:12px;display:flex}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:14px 16px}.label{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px}.num{font-variant-numeric:tabular-nums}.state-card{border-left:5px solid var(--muted)}.state-card.filling{border-left-color:var(--good)}.state-title{font-size:22px;font-weight:700}.state-card.filling .state-title{color:var(--good)}.state-sub{color:var(--muted);margin-top:2px;font-size:13px}.state-weight{font-variant-numeric:tabular-nums;margin-top:10px;font-size:46px;font-weight:700;line-height:1.1}.state-weight small{color:var(--muted);font-size:20px;font-weight:600}.state-extra{color:var(--muted);margin-top:6px;font-size:13px}.tile-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile .big{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.tile .big span{color:var(--muted);font-size:15px;font-weight:600}.tile .sub{color:var(--muted);font-size:13px}.bucket-row{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;align-items:center;gap:10px;padding:9px 2px;display:flex}.bucket-row:first-of-type{border-top:0}.bucket-no{background:var(--amber-soft);width:34px;height:34px;color:var(--amber);border-radius:10px;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.bucket-no.night{background:var(--night-soft);color:var(--c-night)}.bucket-mid{flex:1;min-width:0}.bucket-time{font-size:14px}.bucket-shift{color:var(--muted);font-size:12px}.bucket-kg{white-space:nowrap;font-size:16px;font-weight:700}.chip{background:var(--surface2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px}.chip.day{color:var(--c-day)}.chip.night{color:var(--c-night)}.datenav{justify-content:space-between;align-items:center;gap:8px;display:flex}.datenav button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;flex:none;width:40px;height:40px;font-size:18px}.datenav .cur{text-align:center;min-width:0}.datenav .cur .d{font-size:17px;font-weight:700}.datenav .cur .h{color:var(--muted);font-size:12px}.datenav input[type=date]{text-align:center;color:var(--ink);background:0 0;border:0;width:100%;padding:0;font-size:17px;font-weight:700}.hero-line{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.hero-line .big{font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}.delta{color:var(--good);font-size:13px;font-weight:600}.delta.down{color:var(--warn)}.shift-block{border-top:1px solid var(--line);align-items:center;gap:12px;padding:11px 2px;display:flex}.shift-block:first-of-type{border-top:0}.shift-ico{background:var(--muted);border-radius:3px;flex:none;align-self:stretch;width:6px}.shift-ico.day{background:var(--c-day)}.shift-ico.day.second{opacity:.55}.shift-ico.night{background:var(--c-night)}.shift-ico.night.second{opacity:.55}.shift-main{flex:1;min-width:0}.shift-name{font-size:15px;font-weight:600}.shift-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.shift-kg{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:20px;font-weight:700}.shift-kg small{color:var(--muted);font-size:11px;font-weight:400;display:block}.chart-wrap{overflow-x:auto}svg.chart{width:100%;height:auto;display:block}.grid-line{stroke:var(--line);stroke-width:1px}.axis-text{fill:var(--muted);font-family:system-ui,sans-serif;font-size:10px}.seg-label{fill:var(--ink);font-family:system-ui,sans-serif;font-size:11px;font-weight:700}.bar-day{fill:var(--c-day)}.bar-night{fill:var(--c-night)}.bar-off{fill:var(--line)}.stack-legend{color:var(--muted);flex-wrap:wrap;gap:10px 14px;font-size:12px;display:flex}.key{align-items:center;gap:5px;display:inline-flex}.key i{border-radius:3px;width:10px;height:10px;display:inline-block}.key i.day{background:var(--c-day)}.key i.night{background:var(--c-night)}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex}.btn-small{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;flex:none;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.btn:focus-visible,.btn-small:focus-visible,.datenav button:focus-visible,nav.tabs button:focus-visible,.logout-button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.hint{color:var(--muted);font-size:12.5px}.empty{color:var(--muted);text-align:center;padding:14px 0}nav.tabs{z-index:5;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,1fr);gap:6px;display:grid;position:sticky;bottom:0}nav.tabs button{color:var(--muted);background:0 0;border:0;border-radius:10px;padding:8px 4px;font-size:13px;font-weight:600}nav.tabs button.active{background:var(--amber-soft);color:var(--amber)}.tooltip{z-index:10;pointer-events:none;background:var(--ink);color:var(--bg);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:8px;padding:5px 9px;font-size:12px;position:fixed;transform:translate(-50%,-130%)}.notice{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:12px;padding:10px 12px;font-size:14px}.notice.error{border-color:var(--warn);color:var(--warn)}.login-page{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);background:var(--surface);width:min(340px,100%);box-shadow:var(--shadow);border-radius:16px;gap:14px;padding:24px;display:grid}.login-panel h1{text-align:center;margin:0;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:700}.login-panel h1 small{color:var(--amber)}.login-panel label{color:var(--muted);gap:6px;font-size:13px;display:grid}.login-panel input{border:1px solid var(--line);background:var(--bg);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}.login-panel button{background:var(--amber);color:#fff;border:0;border-radius:10px;padding:12px;font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (width>=700px){.app{max-width:880px}header.top{order:0;padding:20px 16px 12px}.wordmark,.wordmark small{font-size:24px}nav.tabs{background:0 0;border-top:0;order:1;grid-template-columns:repeat(3,150px);justify-content:start;padding:0 12px 12px;position:static}nav.tabs button{padding:9px 4px;font-size:14px}main{order:2}.screen{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}.screen>*{min-width:0}.card.wide,.notice{grid-column:1/-1}.state-weight{font-size:54px}}
