/* Account portal — layered on crs.css (same tokens). From the Claude Design mock
   "CRS Account Portal" (2026-10-07). No inline styles: the portal runs under the same strict CSP. */

body.portal .status{min-height:40px}
.badge{font-size:11px; background:var(--amber); color:#fff; padding:0 5px; font-weight:700}
.pwrap{width:100%; max-width:1400px; margin:0 auto; padding:14px 20px 32px; display:flex; flex-direction:column; gap:14px}
.phead{width:100%; max-width:1400px; margin:0 auto; padding:16px 20px 0; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap}
.phead h1{margin:0; font-size:18px; letter-spacing:.02em}
.phead .meta{color:var(--muted); font-size:12px}
.phead .push{margin-left:auto; align-self:center}
.pcols{display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap}
.pmain{flex:999 1 640px; min-width:0; display:flex; flex-direction:column; gap:14px}
.paside{flex:1 1 340px; min-width:0; display:flex; flex-direction:column; gap:14px}
.pkpis{background:var(--panel); border:1px solid var(--border); display:flex; flex-wrap:wrap; align-items:center; padding:0 14px}
.pkpis .kpi:last-child{border-right:0}
.pkpis .kpi.amber b,.pkpis .kpi.amber span{color:var(--amber)}
.attn{display:flex; gap:14px; padding:12px 14px; border-bottom:1px solid var(--rule); flex-wrap:wrap; align-items:flex-start}
.attn:last-child{border-bottom:0}
.attn.hot{background:#FFF8E6}
.attn .tagcol{width:120px; flex:0 0 auto}
.attn .grow{flex:1 1 320px; display:flex; flex-direction:column; gap:4px; min-width:0}
.attn form{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.usage{padding:0 14px 14px}
.usage .bar{height:8px; background:var(--white); border:1px solid var(--border)}
.usage .bar i{display:block; height:100%; background:var(--accent)}
.usage .bar i.warn{background:var(--amber)}
.w0{width:0}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}
.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}
.activity{list-style:none; margin:0; padding:10px 14px; display:flex; flex-direction:column; gap:10px}
.doccards{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; padding:12px 14px}
.doccard{background:var(--white); border:1px solid var(--border); padding:14px; display:flex; flex-direction:column; gap:6px; min-width:0}
.pend{padding:0 14px 14px}
.pend.top{padding-top:12px}
.wide-btn{width:100%; justify-content:center}
.pfoot{margin-top:auto; background:var(--dark); color:#B7C3D6; padding:8px 20px; display:flex; gap:18px; flex-wrap:wrap; font-size:11px; text-transform:uppercase; letter-spacing:.04em}
.pfoot .right{margin-left:auto}
.inline{display:inline}
.form.flushx{padding-left:0; padding-right:0}
.field .req,.field select.req{border-color:var(--amber); background:#FFF8E6}
table.grid td.c,table.grid th.c{text-align:center}
.rowform{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.charges td.who{font-size:11px}
.sel-pane .panel-h{gap:8px}
.steplist{list-style:none; margin:0; padding:0}
.steplist li{display:flex; gap:12px; padding:10px 14px; border-bottom:1px solid var(--rule); align-items:baseline}
.steplist li.cur{background:var(--sel)}
.steplist .n{width:22px; font-weight:700}
.steplist .done .n{color:var(--ok)}
.dropzone{border:1px dashed var(--kbd-border); background:var(--white); padding:20px; text-align:center}
.qr svg{width:180px; height:180px; display:block; background:#fff}
.mono-key{font-weight:700; letter-spacing:.12em; word-break:break-all}
.notice{border:1px solid var(--amber); background:#FFF8E6; color:#5A3D00; padding:10px 14px}
@media (max-width:700px){
  .pwrap{padding:12px} .phead{padding:12px 12px 0}
  .attn .tagcol{width:auto}
}
.narrow-center{max-width:760px}
[hidden]{display:none !important}
.pwrap .ca dl.kv{padding:6px 14px}
.nowrap{white-space:nowrap}
.resno{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; padding:16px 14px 6px}
.resno b{font-size:28px; letter-spacing:.06em; word-break:break-all}
