:root{--canvas:#fffaf0;--soft:#faf5e8;--card:#f5f0e0;--strong:#ebe6d6;--ink:#0a0a0a;--ink-active:#1f1f1f;--body:#3a3a3a;--muted:#6a6a6a;--faint:#9a9a9a;--hair:#e2dcc9;--on-dark:#fff;--pink:#ff4d8b;--teal:#1a3a3a;--lav:#b8a4ed;--peach:#ffb084;--ochre:#e8b94a;--mint:#a4d4c5;--coral:#ff6b5a;--spud:#c58f4f;--error:#ef4444;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--pill:999px;--s-xxs:4px;--s-xs:8px;--s-sm:12px;--s-md:16px;--s-lg:24px;--s-xl:32px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--canvas);color:var(--body);font-family:var(--font-ui), -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", sans-serif;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}.dsp{font-family:var(--font-display), var(--font-ui), sans-serif;color:var(--ink);letter-spacing:-.02em;font-weight:400;line-height:1.15}.num{font-family:var(--font-display), var(--font-ui), sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);font-weight:400}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:10.5px;font-weight:600}.mini{color:var(--muted);font-size:12px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}.btn{border-radius:var(--r-md);background:var(--ink);height:48px;color:var(--on-dark);justify-content:center;align-items:center;gap:var(--s-xs);padding:0 20px;font-size:14px;font-weight:600;display:inline-flex}.btn:active{background:var(--ink-active)}.btn:disabled{background:var(--strong);color:var(--faint);cursor:default}.btn-ghost{background:var(--canvas);color:var(--ink);border:1px solid var(--hair)}.btn-ghost:active{background:var(--card)}input,select,textarea{font:inherit;color:var(--ink);background:var(--canvas);border:1px solid var(--hair);border-radius:var(--r-md);width:100%;min-height:44px;padding:9px 12px}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none}.field{border:1px solid var(--hair);border-radius:var(--r-md);background:var(--canvas);flex:1;min-width:0;padding:6px 12px 8px}.field>.eyebrow{margin-bottom:1px;display:block}.field input,.field select{background:0 0;border:none;min-height:26px;padding:0;font-size:14.5px;font-weight:500}.field:focus-within{border-color:var(--ink)}.row{align-items:center;gap:var(--s-sm);display:flex}.between{justify-content:space-between;align-items:center;gap:var(--s-sm);display:flex}.stack{gap:var(--s-xs);display:grid}.chip{border-radius:var(--pill);background:var(--card);height:30px;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:500;display:inline-flex}.chip.on{background:var(--ink);color:var(--on-dark)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:block}.scroll-x{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.bar{border-radius:var(--pill);gap:2px;height:10px;display:flex;overflow:hidden}.bar>i{height:100%;display:block}.daylabel{margin:var(--s-lg) 0 var(--s-xs);justify-content:space-between;align-items:baseline;display:flex}.item{justify-content:space-between;align-items:center;gap:var(--s-sm);border:1px solid var(--hair);border-radius:var(--r-md);background:var(--canvas);padding:11px 13px;display:flex}.item:active{background:var(--soft)}.item .who{min-width:0}.item .who b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;display:block;overflow:hidden}.item .who span{color:var(--muted);font-size:12px}.dots{justify-content:flex-end;gap:3px;margin-bottom:2px;display:flex}.dots i{border-radius:50%;width:6px;height:6px;display:block}.lineitem{border:1px solid var(--hair);border-radius:var(--r-md);grid-template-columns:1fr auto;gap:6px 8px;padding:9px 11px;display:grid}.catpill{border-radius:var(--pill);grid-column:1/-1;align-items:center;gap:5px;width:fit-content;padding:3px 4px 3px 10px;font-size:11.5px;font-weight:500;display:inline-flex;position:relative}.catpill select{width:auto;min-height:20px;color:inherit;background:0 0;border:none;padding:0 4px 0 2px;font-size:11.5px;font-weight:500}.rank{align-items:center;gap:9px;display:flex}.rank .rn{font-family:var(--font-display), var(--font-ui), sans-serif;color:var(--faint);font-variant-numeric:tabular-nums;flex:none;width:12px;font-size:13px}.rank .track{flex:1;min-width:0}.rank .track .top{color:var(--ink);justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.rank .fill{border-radius:var(--pill);background:var(--strong);height:7px;overflow:hidden}.rank .fill>i{border-radius:var(--pill);height:100%;display:block}.advice{border-radius:var(--r-lg);padding:15px 16px 16px}.advice .hd{margin-bottom:5px;font-size:14px;font-weight:600}.advice .bd{opacity:.92;font-size:13px;line-height:1.55}.advice .act{border-radius:var(--pill);color:var(--ink);background:#ffffffe6;margin-top:10px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-block}.spark{align-items:flex-end;gap:2px;height:60px;display:flex}.spark i{background:var(--strong);border-radius:2px 2px 0 0;flex:1;min-height:1px;display:block}.spark i.on{background:var(--teal)}.dock{padding:var(--s-md);padding-bottom:max(var(--s-md), env(safe-area-inset-bottom));background:linear-gradient(to top, var(--canvas) 72%, transparent);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.dock>*{pointer-events:auto}.dock-inner{gap:var(--s-xs);max-width:528px;margin:0 auto;display:flex}.sheet-grab{border-radius:var(--pill);background:var(--strong);width:34px;height:4px;margin:0 auto var(--s-md)}
