:root{--bg:#eef1ec;--surface:#fff;--ink:#16231f;--muted:#5e6b66;--line:#d9dfda;--accent:#3346b0;--saffron:#e59a2b;--good:#2e8c5c;--bad:#c24d38;--display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--body);-webkit-text-size-adjust:100%;margin:0}button,input{font:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted);margin:0}.error{color:var(--bad)}.app{max-width:640px;min-height:100vh;padding:0 14px calc(88px + env(safe-area-inset-bottom));margin:0 auto}.top{justify-content:space-between;align-items:flex-end;padding:22px 2px 14px;display:flex}.top h1{font:700 34px/1 var(--display);letter-spacing:-.02em;margin:0 0 4px}.tally{color:var(--muted);gap:14px;font-size:13px;display:flex}.tally b{color:var(--ink);font:700 18px var(--display);margin-right:3px}.banner{background:var(--saffron);color:#2b1a02;border-radius:10px;margin:0 0 12px;padding:10px 14px;font-weight:600}.list{gap:12px;display:grid}.empty{text-align:center;color:var(--muted);padding:48px 20px}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.card.call{border-left:5px solid var(--saffron)}.head{align-items:flex-start;gap:12px;display:flex}.stub{text-align:center;border:1.5px dashed var(--line);border-radius:10px;flex:none;width:58px;padding:6px 0 5px}.card.call .stub{border-color:var(--saffron);background:#fdf4e6}.stub .num{font:700 26px/1 var(--display);letter-spacing:-.02em;display:block}.stub .lbl{color:var(--muted);margin-top:3px;font-size:11px;display:block}.who{min-width:0}.who h2{font:700 19px/1.2 var(--display);letter-spacing:-.01em;margin:0 0 2px}.facts{flex-wrap:wrap;gap:6px;margin:8px 0 0;font-size:12.5px;display:flex}.facts span{background:var(--bg);border-radius:6px;padding:2px 7px}.comp.low{color:var(--good);background:#e3f2ea}.comp.high{color:var(--bad);background:#f8e6e2}.gaps{color:var(--muted);margin:12px 0 0;padding-left:18px;font-size:13.5px}.gaps li{margin:2px 0}.status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0;font-size:13.5px;display:flex}.due{background:var(--saffron);color:#2b1a02;border-radius:6px;padding:1px 8px;font-weight:600}.outcome.won{color:var(--good);font-weight:600}.outcome.lost{color:var(--bad)}.seg{background:var(--bg);border-radius:10px;margin:14px 0 0;padding:3px;display:flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:7px 4px;font-size:13.5px}.seg button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #16231f1f}.draft{white-space:pre-wrap;font:14px/1.5 var(--body);border:1px solid var(--line);background:#f7f8f6;border-radius:10px;max-height:260px;margin:10px 0 0;padding:12px;overflow:auto}.actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.actions:empty{display:none}.btn{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.actions .btn{flex:auto}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn:disabled{opacity:.5}.link{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:10px 8px;text-decoration:underline}.foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:10px;display:flex}.links{gap:14px;font-size:13.5px;display:flex}.moves{align-items:center;gap:4px;display:flex}.tabs{background:var(--ink);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{color:#a9b6b0;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;flex:1;align-items:center;max-width:160px;padding:6px 2px;font-size:12.5px;display:flex}.tabs .n{font:700 20px/1.1 var(--display);color:#fff}.tabs button.on{color:#fff;background:#ffffff1a}.tabs button.on .n{color:var(--saffron)}.toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;border-radius:10px;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.login{max-width:360px;margin:0 auto;padding:18vh 20px 40px}.login h1{font:700 44px/1 var(--display);letter-spacing:-.02em;margin:0 0 6px}.login form{gap:10px;margin-top:28px;display:grid}.login label{font-size:14px;font-weight:600}.login input{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:48px;padding:0 14px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
