/* Account, sign-up, billing, operator, OBS help and legal pages (work package E).
   Tokens (--accent, --brass, --line ...) come from premium.css; this file only adds layout for those pages. */

/* =============================================================== sign-in family =============================================================== */
body.acct{background:var(--bg)}
.acct-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.acct-side{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px clamp(32px,6vw,110px);
  background:radial-gradient(900px 520px at 85% -10%,color-mix(in srgb,var(--brass) 38%,transparent),transparent 62%),linear-gradient(165deg,var(--accent),color-mix(in srgb,var(--accent) 62%,#000));
  color:var(--accent-ink)}
.acct-logo{font-family:var(--serif);font-weight:700;font-size:1.9rem;letter-spacing:-.02em;display:flex;align-items:center;gap:12px}
.acct-logo::before{content:"";width:13px;height:13px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 5px color-mix(in srgb,var(--brass) 30%,transparent)}
.acct-tag{margin:0;font-family:var(--serif);font-size:clamp(1.3rem,1.6vw,1.75rem);line-height:1.45;max-width:30ch;opacity:.96}
.acct-points{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:12px;max-width:36ch}
.acct-points li{position:relative;padding-left:26px;font-size:.98rem;line-height:1.5;opacity:.9}
.acct-points li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:2px;background:var(--brass)}

main.acct-main{display:flex;align-items:center;justify-content:center;max-width:none;width:100%;padding:36px clamp(16px,4vw,64px);margin:0}
.acct-card{width:100%;max-width:27rem;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:34px 34px 28px;box-shadow:var(--shadow)}
.acct-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.acct-brand{display:none;font-family:var(--serif);font-weight:700;color:var(--accent);font-size:1.15rem}
.acct-brand::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 3px var(--brass-soft);margin-right:8px}
.acct-top #langbox{margin-left:auto}
.acct-card h1{margin:6px 0 20px;font-family:var(--serif);font-size:1.8rem;line-height:1.25;color:var(--ink);letter-spacing:-.02em}

.fld{margin:0 0 16px}
.fld label,.lblrow label{display:inline-block;margin:0 0 6px;font-size:.95rem;font-weight:600;color:var(--ink)}
.fld label .opt{font-weight:400;color:var(--muted);font-size:.82rem;margin-left:4px}
.lblrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.lnk{font-size:.86rem;color:var(--accent);text-underline-offset:3px}
.fld input{margin:0;font-size:1.02rem}
.fld input[aria-invalid=true]{border-color:var(--err);background:var(--err-bg)}
.pwfield{position:relative;display:block}
.pwfield input{padding-right:52px}
.pwtoggle{position:absolute;right:2px;top:2px;bottom:2px;width:48px;min-height:0;padding:0;border:0;background:none;color:var(--muted);display:grid;place-items:center;border-radius:10px;cursor:pointer}
.pwtoggle:hover{color:var(--accent);border:0}
.pwtoggle svg{width:22px;height:22px}
.pwtoggle .e-off{display:none}
.pwtoggle.on .e-off{display:inline}.pwtoggle.on .e-on{display:none}
.pwrule{display:flex;flex-wrap:wrap;gap:4px 14px;margin:7px 2px 0;font-size:.84rem;color:var(--muted)}
.pwrule span::before{content:"○ ";opacity:.6}
.pwrule span.ok{color:var(--ok)}.pwrule span.ok::before{content:"✓ ";opacity:1;font-weight:700}
.ferr{margin:6px 2px 0;font-size:.88rem;color:var(--err);min-height:0}
.ferr:empty{display:none}
.err{margin:4px 2px 10px;font-size:.92rem;color:var(--err)}
.err:empty{display:none}
.okmsg{margin:0 0 14px;font-size:.95rem;color:var(--ok);font-weight:500}
.okmsg:empty{display:none}
.okmsg.big{font-size:1.08rem;line-height:1.55}
.acct-card button.primary{width:100%;margin-top:6px;min-height:52px;font-size:1.05rem}
.acct-card button.primary[aria-busy=true]{opacity:.75;cursor:progress}
.acct-box{margin:6px 0 14px;padding:14px 16px;border:1px solid var(--brass);background:var(--brass-soft);border-radius:14px;font-size:.92rem}
.acct-box p{margin:0 0 10px}.acct-box>:last-child{margin-bottom:0}
.acct-foot{margin:22px 0 0;text-align:center;font-size:.92rem;color:var(--muted)}
.acct-foot a{color:var(--accent);font-weight:600;text-underline-offset:3px}
.acct-note{margin:14px 0 0;font-size:.82rem;color:var(--muted);line-height:1.6}
.acct-note a{color:var(--accent);text-underline-offset:3px}
.acct-demo{margin-top:22px;padding-top:18px;border-top:1px dashed var(--line);display:grid;gap:8px;justify-items:start;font-size:.9rem;color:var(--muted)}
.acct-demo p{margin:0}
.acct-state{margin:0 0 14px;font-size:1.02rem;line-height:1.6}
.acct-state.ok{color:var(--ok);font-weight:600}.acct-state.bad{color:var(--err);font-weight:600}
.acct-sent{margin:0 0 10px;font-size:1.05rem;word-break:break-all}
.acct-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
.acct-actions .ghost{min-height:44px}
.btnlink{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;border-radius:12px;text-decoration:none;font-weight:600;border:1px solid var(--line);color:var(--ink);background:var(--card)}
.btnlink.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.acct-card .btnlink.primary{width:100%}
.acct-card .helpbtn{margin-left:6px}
[hidden]{display:none!important}

@media (max-width:900px){
  .acct-shell{grid-template-columns:1fr}
  .acct-side{display:none}
  .acct-brand{display:inline}
  main.acct-main{align-items:flex-start;padding:16px 14px 40px}
  .acct-card{padding:24px 18px 22px;border-radius:20px}
  .acct-card h1{font-size:1.5rem}
}
@media (max-width:420px){.acct-card{border-radius:16px}.acct-actions>*{flex:1 1 100%}}

/* =============================================================== billing / operator =============================================================== */
main.acct-page{display:block;max-width:72rem;margin:0 auto;padding:22px clamp(14px,3vw,32px) 60px}
main.acct-page.wide{max-width:96rem}
.pg-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.pg-title h1{margin:0;font-family:var(--serif);font-size:1.7rem;color:var(--ink);letter-spacing:-.02em}
.pg-title .muted{margin:0}
.badge{font-size:.82rem;font-weight:600;padding:3px 11px}
.badge.b-no{background:var(--err-bg);color:var(--err)}
.b-ok{background:var(--accent-soft)}

.bill-now{padding:26px 28px 24px}
.bill-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.bill-head h2{margin:0;font-size:1.25rem}
.bill-head .badge{margin-left:0}
.bill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 28px}
.kpi-label{margin:0 0 2px;font-size:.84rem;color:var(--muted)}
.kpi{margin:0;font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);line-height:1.3}
.kpi small{font-family:inherit;font-size:.9rem;font-weight:400;color:var(--muted)}
.meter{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin:8px 0 4px}
.meter>i{display:block;height:100%;border-radius:99px;background:var(--accent);width:var(--w,0%)}
.meter.hot>i{background:var(--warn)}.meter.full>i{background:var(--err)}
.bill-limits{display:flex;flex-wrap:wrap;gap:8px 22px;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:.93rem;color:var(--muted)}
.bill-limits b{color:var(--ink);font-weight:600}
.alert{margin:16px 0 0;padding:12px 16px;border-radius:12px;background:var(--warn-bg);color:var(--warn);font-weight:600;font-size:.95rem}
.bill-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin:18px 0 0}
button.danger{background:none;color:var(--err);border-color:color-mix(in srgb,var(--err) 55%,var(--line))}
button.danger:hover{background:var(--err-bg);border-color:var(--err)}
button.danger.solid{background:var(--err);color:var(--accent-ink);border-color:var(--err);font-weight:600}
button.danger.solid:hover{filter:brightness(1.08)}

.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:6px 0 0}
.plan{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 22px 20px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.plan.cur{border:2px solid var(--accent);background:var(--accent-soft)}
.plan .tag{position:absolute;top:14px;right:14px;margin:0}
.plan h3{margin:0;font-size:1.2rem}
.plan .price{margin:2px 0 8px;font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);line-height:1.1}
.plan .price small{font-family:inherit;font-size:.9rem;font-weight:400;color:var(--muted)}
.plan ul{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:5px;font-size:.95rem}
.plan li::before{content:"✓";color:var(--ok);font-weight:700;margin-right:8px}
.plan button{margin-top:auto;width:100%}
.statusline{min-height:1.4em;margin:14px 2px 0;font-size:.95rem;color:var(--ok)}
.statusline.bad{color:var(--err)}
.statusline:empty{display:none}

dialog.confirm{border:1px solid var(--line);border-radius:20px;padding:26px 26px 20px;max-width:min(440px,calc(100vw - 28px));background:var(--card);color:var(--ink);box-shadow:0 30px 70px -20px rgba(10,25,18,.55)}
dialog.confirm::backdrop{background:rgba(10,20,15,.5)}
dialog.confirm h2{margin:0 0 8px;font-size:1.3rem}
dialog.confirm p{margin:0 0 18px;line-height:1.6}
dialog.confirm .acts{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
dialog.confirm .acts button{min-width:120px}

/* operator console */
.sup-kpis{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 16px}
.sup-kpi{flex:1 1 90px;padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.sup-kpi b{display:block;font-family:var(--serif);font-size:1.7rem;line-height:1.2}
.sup-kpi span{font-size:.85rem;color:var(--muted)}
.sup-tools{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:0 0 12px}
.sup-tools label{margin:0;font-size:.85rem;font-weight:600;color:var(--ink)}
.sup-tools input,.sup-tools select{margin-top:4px}
.sup-tools .grow{flex:1 1 280px}
.sup-tools select{min-width:0;width:100%}
.sup-tools>div:not(.grow){flex:1 1 140px;max-width:240px}
.sup-count{margin:0 0 0 auto;font-size:.88rem;color:var(--muted)}
.sup-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--card)}
#tbl{margin:0;font-size:.93rem;min-width:860px}
#tbl th{position:sticky;top:0;background:var(--card);z-index:1;font-size:.82rem;color:var(--muted);font-weight:600;white-space:nowrap;padding:12px 12px;border-bottom:1px solid var(--line)}
#tbl td{padding:12px;vertical-align:middle;border-bottom:1px solid var(--line)}
#tbl tbody tr:last-child td{border-bottom:0}
#tbl tbody tr:hover{background:var(--accent-soft)}
#tbl td.num,#tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
#tbl td.nm{font-weight:600}
#tbl .badge{margin:0}
.badge.s-suspended{background:var(--warn-bg);color:var(--warn)}.badge.s-deleted{background:var(--err-bg);color:var(--err)}.badge.s-active{background:var(--accent-soft);color:var(--ok)}
.sup-empty{padding:34px 16px;text-align:center;color:var(--muted)}
@media (max-width:760px){
  #tbl{min-width:0}
  #tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  #tbl,#tbl tbody,#tbl tr,#tbl td{display:block}
  #tbl tr{padding:12px 14px;border-bottom:1px solid var(--line)}
  #tbl td{border:0;padding:3px 0;display:flex;justify-content:space-between;gap:12px;text-align:right}
  #tbl td::before{content:attr(data-label);color:var(--muted);font-size:.84rem;text-align:left}
  #tbl td.nm{font-size:1.05rem;justify-content:flex-start}#tbl td.nm::before{display:none}
  #tbl td.act{justify-content:flex-end;padding-top:8px}#tbl td.act::before{display:none}
  .bill-now{padding:20px 16px}
  .kpi{font-size:1.3rem}
}

/* =============================================================== OBS help =============================================================== */
main.obs{display:block;max-width:72rem;margin:0 auto;padding:22px clamp(14px,3vw,32px) 60px}
.lang-sec{display:none}.lang-sec.on{display:block}
.obs-hero{padding:24px 28px;margin:0 0 18px}
.obs-hero h1{margin:0 0 8px;font-family:var(--serif);font-size:1.7rem;line-height:1.3}
.obs-hero p{margin:0}
.obs-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:18px;align-items:start}
.obs-steps{list-style:none;margin:0;padding:0;counter-reset:st;display:grid;gap:12px}
.obs-steps>li{counter-increment:st;position:relative;margin:0;padding:18px 20px 18px 66px;border:1px solid var(--line);border-radius:16px;background:var(--card);line-height:1.65}
.obs-steps>li::before{content:counter(st);position:absolute;left:18px;top:16px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:700;font-family:var(--serif)}
.obs-set{position:sticky;top:76px}
.obs-set h2{margin:0 0 10px;font-size:1.2rem}
.obs-tbl{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:.95rem}
.obs-tbl th,.obs-tbl td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left;font-weight:400;vertical-align:middle}
.obs-tbl th{color:var(--muted);width:46%}
.obs-tbl td.v{font-variant-numeric:tabular-nums}
.obs-tbl .v b{font-weight:700;font-size:1.05rem}
.obs-tbl .def{color:var(--muted);font-size:.84rem;margin-left:6px}
.obs-tbl td.cp{width:1%;white-space:nowrap;text-align:right}
.copybtn{min-height:36px;padding:4px 12px;font-size:.85rem;border-radius:99px;background:var(--bg)}
.copybtn.done{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.swatch{display:inline-block;width:22px;height:22px;border-radius:6px;border:1px solid rgba(0,0,0,.25);vertical-align:-6px;margin-right:8px;background:#00B050}
.obs-trouble{margin:18px 0 0}
.obs-trouble details{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:0 18px;margin:0 0 8px}
.obs-trouble summary{padding:14px 0;font-weight:600;color:var(--ink);cursor:pointer;min-height:44px}
.obs-trouble details[open] summary{border-bottom:1px solid var(--line);margin-bottom:10px}
.obs-trouble details p{margin:0 0 14px;line-height:1.65}
@media (max-width:980px){.obs-cols{grid-template-columns:1fr}.obs-set{position:static}}
@media (max-width:480px){.obs-steps>li{padding:16px 14px 16px 54px}.obs-steps>li::before{left:12px;width:30px;height:30px}.obs-hero{padding:18px 16px}}

/* =============================================================== legal pages =============================================================== */
main.legal-page{display:block;max-width:68rem;margin:0 auto;padding:22px clamp(14px,3vw,32px) 70px}
.legal-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}
.legal-toc{position:sticky;top:76px;padding:6px 0;display:block;background:none;border:0}
.legal-toc h2{margin:0 0 8px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-family:inherit}
.legal-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:lg}
.legal-toc a{display:block;padding:7px 10px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:.93rem;line-height:1.35;border-left:3px solid transparent}
.legal-toc a:hover{background:var(--accent-soft)}
.legal-toc a.on{background:var(--accent-soft);border-left-color:var(--accent);font-weight:600}
.legal-doc{padding:34px clamp(20px,4vw,48px) 30px;max-width:78ch}
.legal-doc h1{margin:0 0 6px;font-family:var(--serif);font-size:2rem;line-height:1.25}
.legal-doc .draft{display:inline-block;margin:0 0 20px;padding:4px 12px;border-radius:99px;background:var(--warn-bg);color:var(--warn);font-size:.85rem;font-weight:600}
.legal-doc h3{margin:1.7em 0 .4em;font-size:1.15rem;scroll-margin-top:84px}
.legal-doc h3 .anc{margin-left:8px;color:var(--muted);text-decoration:none;opacity:0;font-weight:400}
.legal-doc h3:hover .anc,.legal-doc h3 .anc:focus{opacity:1}
.legal-doc p{margin:0 0 .8em;line-height:1.8;font-size:1.02rem}
.legal-doc section[hidden]{display:none}
.legal-top{display:none;margin:0 0 14px}
.legal-top select{margin:0}
@media (max-width:860px){
  .legal-grid{grid-template-columns:1fr}
  .legal-toc{position:static;display:none}
  .legal-top{display:block}
  .legal-doc{padding:22px 16px}
  .legal-doc h1{font-size:1.6rem}
}

/* legal: contents fold-out on phones */
.legal-top{border:1px solid var(--line);border-radius:14px;padding:0 14px;background:var(--bg)}
.legal-top summary{min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--ink);cursor:pointer}
.legal-top ol{margin:0 0 12px;padding:0;list-style:none;display:grid;gap:2px}
.legal-top a{display:block;padding:9px 6px;color:var(--ink);text-decoration:none;border-top:1px solid var(--line)}

/* comfortable touch targets in the sign-in card */
.acct-card .langflags .flag{width:44px;height:38px;padding:5px}
.lnk{display:inline-block;padding:8px 0;margin:-8px 0}
.acct-foot a,.acct-note a{display:inline-block;padding:6px 2px}
.badge:empty{display:none}
