:root{
  --bg:#f5f5f7;--surface:#fff;--surface2:#f2f2f7;--text:#1d1d1f;--muted:#6e6e73;--line:rgba(60,60,67,.18);
  --accent:#0071e3;--accent-text:#fff;--danger:#d70015;--ok:#248a3d;--warn:#b25000;--bar:rgba(255,255,255,.72);
  --radius:14px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#000;--surface:#1c1c1e;--surface2:#2c2c2e;--text:#f5f5f7;--muted:#98989d;--line:rgba(235,235,245,.18);
  --accent:#2997ff;--danger:#ff453a;--ok:#32d74b;--warn:#ff9f0a;--bar:rgba(28,28,30,.72)}}
:root[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--surface2:#2c2c2e;--text:#f5f5f7;--muted:#98989d;--line:rgba(235,235,245,.18);--accent:#2997ff;--danger:#ff453a;--ok:#32d74b;--warn:#ff9f0a;--bar:rgba(28,28,30,.72)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:17px/1.47 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
h1{font-size:32px;line-height:1.125;font-weight:700;letter-spacing:-.01em;margin:0 0 var(--s2)}
h2{font-size:22px;line-height:1.2;font-weight:600;margin:var(--s3) 0 var(--s1)}
h3{font-size:17px;font-weight:600;margin:0}
.muted{color:var(--muted)}.small{font-size:13px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* layout */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;padding:var(--s2);background:var(--bar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s1)}
.brand{font-weight:700;font-size:19px;padding:var(--s1) 12px var(--s2)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:var(--text);text-decoration:none;font-weight:500}
.nav a:hover{background:var(--surface2)}
.nav a[aria-current=page]{background:var(--accent);color:var(--accent-text)}
.who{margin-top:auto;padding:12px;font-size:13px;color:var(--muted);word-break:break-all}
.main{padding:var(--s4) var(--s4) 96px;max-width:1040px;width:100%}
.topline{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s2);flex-wrap:wrap}

/* components */
.card{background:var(--surface);border-radius:var(--radius);padding:var(--s2) var(--s3);margin:0 0 var(--s2);box-shadow:0 0 0 1px var(--line)}
.row{display:flex;gap:var(--s1);align-items:center;flex-wrap:wrap}
.grow{flex:1;min-width:0}
.stack{display:flex;flex-direction:column;gap:var(--s1);max-width:520px}
.btn{appearance:none;border:0;min-height:44px;padding:0 20px;border-radius:980px;background:var(--surface2);color:var(--text);font:600 15px var(--font);cursor:pointer;transition:opacity .15s}
.btn:hover{opacity:.85}.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.primary{background:var(--accent);color:var(--accent-text)}
.btn.danger{background:var(--danger);color:#fff}
.btn.small{min-height:36px;padding:0 14px;font-size:14px}
input,select,textarea{font:17px var(--font);color:var(--text);background:var(--surface2);border:1px solid transparent;border-radius:10px;min-height:44px;padding:10px 12px;width:100%}
textarea{min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--accent);outline-offset:0;background:var(--surface)}
label{font-size:13px;font-weight:600;color:var(--muted);margin-top:var(--s1)}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:2px 10px;border-radius:980px;background:var(--surface2);color:var(--muted);white-space:nowrap}
.pill.ok{color:var(--ok)}.pill.bad{color:var(--danger)}.pill.warn{color:var(--warn)}
.notice{background:var(--surface2);border-radius:12px;padding:12px 16px;margin:var(--s1) 0}
.notice.err{color:var(--danger)}
table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:8px 8px}
td{padding:12px 8px;border-top:1px solid var(--line);vertical-align:top}
.tablewrap{overflow-x:auto}
.comment{padding:var(--s2) 0;border-top:1px solid var(--line)}
.comment:first-child{border-top:0}
.comment p{margin:4px 0 var(--s1)}
.seg{display:inline-flex;background:var(--surface2);border-radius:10px;padding:2px;gap:2px;flex-wrap:wrap}
.seg button{min-height:36px;padding:0 14px;border:0;border-radius:8px;background:transparent;color:var(--text);font:500 14px var(--font);cursor:pointer}
.seg button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px var(--s2);margin:0}
.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}
pre{background:var(--surface2);padding:12px;border-radius:10px;overflow:auto;font-size:13px;margin:8px 0}

/* sheet (confirmation) */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.sheet{background:var(--surface);width:min(560px,100%);border-radius:20px 20px 0 0;padding:var(--s3);max-height:85vh;overflow:auto;animation:up .25s ease-out}
@media(min-width:700px){.scrim{align-items:center}.sheet{border-radius:20px}}
@keyframes up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:980px;font-size:15px;z-index:60;max-width:90vw}

/* sign-in + legal */
.center{min-height:100vh;display:grid;place-items:center;padding:var(--s2)}
.signin{width:min(420px,100%);text-align:center}
.signin .stack{margin:0 auto;text-align:left}
.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:var(--s2) 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.legal-main{max-width:720px;margin:0 auto;padding:var(--s4) var(--s2) 96px}
.legal-foot{margin-top:var(--s4);padding-top:var(--s2);border-top:1px solid var(--line);font-size:14px;color:var(--muted)}

@media(max-width:820px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;z-index:20;flex-direction:row;padding:6px;border-right:0;border-top:1px solid var(--line);overflow-x:auto}
  .brand,.who{display:none}.nav{flex-direction:row}.nav a{padding:0 14px;white-space:nowrap}
  .main{padding:var(--s3) var(--s2) 110px}
  h1{font-size:28px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.btn.link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.mb{margin-bottom:16px}.mt{margin-top:24px}
