:root{--bg:#edf0f3;--surface:#ffffff;--ink:#13161b;--muted:#535a66;--line:#d6dbe2;--accent:#2a44c4;--hi:#b4400a;--hi-bg:#ffe3cc;--mid:#8a5a00;--mid-bg:#fff0c2;--lo:#1d4e9e;--lo-bg:#dce8fa;--panel-dark:#13161b;--panel-dark-ink:#f2f4f7;--panel-dark-muted:#aab1bd;--track:#343a45;--bar-high:#f28c38;--bar-some:#f5c451;--bar-low:#7fb3f5;--f-display:"Bricolage Grotesque","Avenir Next",system-ui,sans-serif;--f-body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--f-data:"IBM Plex Mono",ui-monospace,Menlo,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1216;--surface:#181c22;--ink:#e9ecf1;--muted:#a3aab6;--line:#2b313a;--accent:#8ea2ff;--hi:#ffb385;--hi-bg:#4a2410;--mid:#f5cf6b;--mid-bg:#3d3008;--lo:#9dbff5;--lo-bg:#16294a;--panel-dark:#232934;--track:#3a4250;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 40px}a{color:var(--accent)}.app{max-width:480px;margin:0 auto;gap:16px}.app,header.top{display:flex;flex-direction:column}header.top{padding-top:14px;gap:12px}.brand{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand h1{margin:0;font-family:var(--f-display);font-weight:800;font-size:24px;letter-spacing:-.02em}.brand h1 a{color:inherit;text-decoration:none}.brand .right{display:flex;align-items:center;gap:10px}.beta{font-family:var(--f-data);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 8px}.linkbtn{background:none;border:0;color:var(--accent);font:600 13px var(--f-body);cursor:pointer;padding:8px 0;min-height:44px}nav.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;grid-gap:4px;gap:4px}nav.tabs a{min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:9px;color:var(--muted);font:600 14px var(--f-body);text-decoration:none}nav.tabs a[aria-current=page]{background:var(--ink);color:var(--bg)}main{gap:14px}.card,main{display:flex;flex-direction:column}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;gap:12px;min-width:0}h2{margin:0;font-family:var(--f-display);font-weight:600;font-size:18px;letter-spacing:-.01em;text-wrap:balance}.hint{margin:0;color:var(--muted)}.hint,label{font-size:13px}label{display:flex;flex-direction:column;gap:6px;font-weight:600}input,select,textarea{font:400 16px var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px;width:100%}textarea{min-height:88px;resize:vertical}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.btn{min-height:46px;border-radius:11px;border:1.5px solid var(--ink);background:var(--ink);color:var(--bg);font:600 15px var(--f-body);padding:0 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.ghost{background:transparent;color:var(--ink)}.btn.small{min-height:40px;font-size:13px;padding:0 12px;border-width:1px}.btn:disabled{opacity:.45;cursor:not-allowed}.btns{display:flex;flex-wrap:wrap;gap:8px}.btns .btn{flex:1 1 140px}.example{font-family:var(--f-data);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);background:var(--mid-bg);border-radius:6px;padding:3px 7px;align-self:flex-start}.score{background:var(--panel-dark);color:var(--panel-dark-ink);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:14px}.score .top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.score .lbl{font-family:var(--f-data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--panel-dark-muted)}.score .num{font-family:var(--f-display);font-weight:800;font-size:68px;line-height:.9;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score .num small{font-size:22px;color:var(--panel-dark-muted);font-weight:600}.meter{height:10px;background:var(--track);overflow:hidden}.meter,.meter i{border-radius:999px}.meter i{display:block;height:100%;transition:width .4s ease}.pill{font-weight:600;font-size:13px;border-radius:999px;padding:6px 11px;white-space:nowrap}.pill.high{background:var(--hi-bg);color:var(--hi)}.pill.some{background:var(--mid-bg);color:var(--mid)}.pill.low{background:var(--lo-bg);color:var(--lo)}.score .conf{font-size:13px;color:var(--panel-dark-muted)}.reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.reasons li{display:grid;grid-template-columns:52px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:baseline;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 13px}.reasons b{font-family:var(--f-data);font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.item{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}.item:first-child{border-top:0;padding-top:0}.item .head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.item .t{font-weight:600}.item .s{font-size:13px}.chip,.item .s{color:var(--muted)}.chip{font-family:var(--f-data);font-size:11px;letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:3px 7px;border:1px solid var(--line);white-space:nowrap}.chip.tracked{border-color:var(--accent);color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.stat{background:var(--bg);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.stat b{font-family:var(--f-display);font-size:22px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{font-size:12px}.lock,.stat span{color:var(--muted)}.lock{font-size:13px;display:flex;flex-direction:column;gap:6px}.lock .meter{background:var(--line);height:6px}.lock .meter i{background:var(--accent)}.empty{color:var(--muted);font-size:14px;margin:0}.msg{font-size:13px;margin:0;color:var(--hi)}.msg.ok{color:var(--lo)}.note{font-size:12px;color:var(--muted);margin:0}@media (prefers-reduced-motion:reduce){.meter i{transition:none}}