/* The portal and admin layout helpers, index-neutral: they arrange the theme's own blocks (appShell, panel, metric, pill,
   btn, field, plan, alertRow, kv, locked) and add nothing a theme defines. Loaded after the index's theme.css. */
.cols{display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start}
.cols > .wide{flex:3 1 520px; min-width:0; display:flex; flex-direction:column; gap:14px}
.cols > .narrow{flex:2 1 320px; min-width:0; display:flex; flex-direction:column; gap:14px}
.cols > .half{flex:1 1 420px; min-width:0; display:flex; flex-direction:column; gap:14px}
.mut{color:var(--muted)}
.mono{font:400 13px/1.45 var(--mono); font-variant-numeric:tabular-nums}
.line{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; font-size:15px; color:var(--ink); padding:10px 0; border-top:1px solid var(--line); text-decoration:none}
.cardHead + .line, .eyebrow + .line{border-top:0}
a.line:hover{color:var(--accent); text-decoration:none}
.acts{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.legal{display:block; font:400 12px/1.35 var(--mono); color:var(--muted)}
.errorBanner{background:#FBE4E1; color:var(--bad); border-radius:10px; padding:12px 16px; font-size:14px; margin:0}
.okBanner{background:var(--accent-soft); color:var(--accent-ink); border-radius:10px; padding:12px 16px; font-size:14px; margin:0}
.stageRow{display:flex; gap:10px; overflow-x:auto; padding-bottom:4px}
.stageRow > *{flex:1 0 160px; text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:6px; font:inherit; color:var(--ink); cursor:pointer}
.stageRow > [aria-pressed="true"]{background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent-soft)}
.stageRow > div{cursor:default}
.stageRow b{font:500 22px/1 var(--mono)}
.filters{display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end}
.filters .field{flex:1 1 160px}
.filters .field.grow{flex:2 1 260px}
.pager{display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between}
.appMain button.btn{cursor:pointer}
.appMain button.btn:disabled{background:var(--surface-2); color:var(--muted); border-color:var(--line); cursor:default}
.appSide .who{margin-top:auto; display:flex; flex-direction:column; gap:8px; padding:0 12px}
.appNav span.soon{display:flex; align-items:center; min-height:40px; padding:0 12px; color:var(--muted); font-size:14px}
.appNav span.soon .n{margin-left:auto; font:500 11.5px var(--mono)}
.signinCard{max-width:440px; margin:72px auto; padding:0 16px; display:flex; flex-direction:column; gap:16px}
.signinCard .brandLink{padding:0}
.appBar > div:first-child{display:flex; flex-direction:column; gap:6px}
.appBar h1{margin:0}
.stack{display:flex; flex-direction:column; gap:12px; font-size:14px}
.item{display:flex; flex-direction:column; gap:4px; padding:10px 0; border-top:1px solid var(--line)}
.stack > .item:first-child{border-top:0; padding-top:0}
.row-acts{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.inline{display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap}
.inline .field{flex:1 1 200px}
.quote{font-size:16px; max-width:68ch; background:var(--surface-2); border-radius:10px; padding:12px 16px}
.code{font:500 34px/1 var(--mono); letter-spacing:.2em}
.choice{display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line-2); border-radius:8px; min-height:44px; cursor:pointer}
.choice input{width:20px; height:20px; margin:0}
tr.sel td{background:var(--accent-soft)}
.panel > .eyebrow, .metric .eyebrow{margin:0}
.appMain td input{min-height:40px; border:1px solid var(--line-2); border-radius:8px; padding:0 10px; font:inherit}
/* The theme's `.panel button` is the public site's quiet control; an app button inside a panel keeps the btn look,
   exactly as the design boards declare it (PortalHome, PortalEdit, AdminReview). */
.panel button.btn, .signinCard button.btn{min-height:44px; padding:0 18px; border-radius:10px; font-size:15px; font-weight:600}
.panel button.btn-pri, .signinCard button.btn-pri{background:var(--ink); color:var(--surface); border-color:var(--ink)}
.panel button.btn-sec, .signinCard button.btn-sec{background:var(--surface); color:var(--ink); border-color:var(--line-2)}
.panel button.btn:disabled, .signinCard button.btn:disabled{background:var(--surface-2); color:var(--muted); border-color:var(--line)}
/* ---- blocks the design boards declare on the page itself (Main, AdminCompanies, PortalEdit, PortalAlerts, AdminReview) */
.meter{height:8px; border-radius:4px; background:var(--surface-2); overflow:hidden}
.meter span{display:block; height:8px; background:var(--accent)}
.pipe{display:flex; gap:12px; overflow-x:auto; padding-bottom:6px}
.pipeCol{flex:1 0 210px; min-width:200px; background:var(--surface-2); border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:8px}
.pipeCol.top{background:var(--accent-soft)}
.pipeCol.top > .pipeHead{color:var(--accent-ink)}
.pipeHead{display:flex; justify-content:space-between; gap:8px}
.pipeCard{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:6px; color:var(--ink)}
a.pipeCard:hover{border-color:var(--accent); text-decoration:none; color:var(--ink)}
.pipeCard .pill{align-self:flex-start}
.pipeCard.empty{border-style:dashed; border-color:var(--dash)}
.fgrid{display:grid; grid-template-columns:minmax(120px,170px) minmax(110px,140px) minmax(0,1fr) minmax(0,1.3fr); gap:14px; align-items:start; padding:12px 0; border-top:1px solid var(--line)}
.fgrid.head{border-top:0; padding-top:0}
.fgrid input, .fgrid textarea{width:100%; min-height:44px; border:1px solid var(--line-2); border-radius:8px; padding:8px 12px; font:inherit; font-size:15px; color:var(--ink); background:var(--surface)}
.fgrid input[readonly]{background:var(--surface-2); color:var(--ink-2)}
@media(max-width:900px){ .fgrid{grid-template-columns:1fr} }
.radio{display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line-2); border-radius:8px; min-height:44px; cursor:pointer}
.radio input, .chk input{width:20px; height:20px; margin:0}
.chk{display:flex; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line-2); border-radius:8px; min-height:44px; font-size:15px}
.claimLine{display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:flex-start; padding:10px 0; border-top:1px solid var(--line)}
.cardHead + .claimLine{border-top:0}
tr.open td{background:var(--accent-soft)}
.panel a.btn, .plan .btn{align-self:flex-start}
.rowx{display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; padding:12px 0; border-top:1px solid var(--line)}
.cardHead + .rowx{border-top:0}
.pipeHead button.linkish{all:unset; cursor:pointer}
.pipeHead button.linkish[aria-pressed="true"] b{color:var(--accent)}
.banner.half{flex:1 1 420px; min-width:0; margin:0}

td.n{white-space:nowrap}
.panel > button.btn, .panel > .acts, .panel > a.btn{align-self:flex-start}
