:root{--accent:#2E5A88;--accent-deep:#1F3E5E;--ink:#1B2733;--body:#33404D;
  --dim:#5A6675;--rule:#D3DAE1;--bg:#F4F6F8;--card:#FFFFFF;--ok:#1E7A54;--err:#B23A3A;
  --warn:#8A6100;--warn-bg:#FDF6E3;--warn-rule:#E8D9A8}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--body);
  background:var(--bg);line-height:1.5}
/* operator shell */
header{background:var(--ink);color:#fff;padding:12px 22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
header h1{font-size:17px;margin:0;font-weight:700}
header .tag{color:#9db3cc;font-size:12px}
.shell-tabs{display:flex;gap:6px;flex-wrap:wrap}
.shell-tab{padding:5px 13px;border-radius:20px;border:1px solid #3a4a5e;background:#223247;color:#cdd8e4;
  cursor:pointer;font-size:13px}
.shell-tab.active{background:#fff;color:var(--ink);border-color:#fff;font-weight:600}
.shell-tab:focus-visible,.snav:focus-visible{outline:2px solid #7fb0e6;outline-offset:2px}
.wrap{max-width:1000px;margin:0 auto;padding:20px}
/* account sub-nav */
.subnav{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:16px;border-bottom:2px solid var(--rule);padding-bottom:10px}
.snav{padding:6px 14px;border-radius:6px 6px 0 0;border:1px solid transparent;background:transparent;
  cursor:pointer;font-size:13px;color:var(--body);font-weight:600}
.snav.active{background:var(--card);border-color:var(--rule);border-bottom-color:var(--card);color:var(--accent)}
input,textarea,select{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:6px;font:inherit;color:var(--ink);background:#fff}
textarea{resize:vertical;min-height:70px}
label{display:block;font-size:12px;font-weight:600;color:var(--dim);margin:10px 0 3px}
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:18px;margin-bottom:16px}
.card h2{font-size:15px;margin:0 0 4px;color:var(--ink)}
.card h2 .step{color:var(--accent);font-weight:800;margin-right:6px}
.card p.hint{font-size:12px;color:var(--dim);margin:0 0 10px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{display:inline-block;padding:8px 16px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);
  color:#fff;cursor:pointer;font-size:13px;font-weight:600}
.btn.ghost{background:#fff;color:var(--accent)}
.btn.sm{padding:5px 11px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.radio{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.radio label{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--body);font-weight:400;margin:0;
  padding:6px 10px;border:1px solid var(--rule);border-radius:6px;cursor:pointer}
.radio input{width:auto}
ul.files,ul.outs{list-style:none;padding:0;margin:6px 0 0;font-size:13px}
ul.files li,ul.outs li{padding:5px 0;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:10px}
.muted{color:var(--dim);font-size:12px}
.action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.status{font-size:12px;min-width:180px}
.status .last{color:var(--dim)}
.status .run{color:var(--accent);font-weight:600}
.status .err{color:var(--err);font-weight:600}
.status .ok{color:var(--ok);font-weight:600}
.bar{height:5px;background:var(--rule);border-radius:3px;overflow:hidden;margin-top:5px;max-width:240px}
.bar>i{display:block;height:100%;width:38%;background:var(--accent);border-radius:3px;animation:slide 1.1s ease-in-out infinite}
@keyframes slide{0%{margin-left:-38%}100%{margin-left:100%}}
.disp{background:var(--bg);border:1px solid var(--rule);border-radius:8px;padding:10px 12px;margin-top:10px;
  font-size:12.5px;white-space:pre-wrap;max-height:320px;overflow:auto}
#toast{position:fixed;bottom:18px;right:18px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;
  font-size:13px;opacity:0;transition:.25s;pointer-events:none;max-width:340px}
#toast.show{opacity:1}
.hidden{display:none}

/* ---------- Profile view ---------- */
.prof-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.prof-head h2{font-size:20px}
.prof-sum{font-size:12.5px;color:var(--dim);margin:2px 0 0}
.prof-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.prof-sec{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 4px}
.prof-sec h2{margin:0}
.editlink{font-size:12px;color:var(--accent);cursor:pointer;font-weight:600;background:none;border:none;padding:0}
.editlink:hover{text-decoration:underline}
.meter{height:5px;background:var(--rule);border-radius:3px;overflow:hidden;width:120px;display:inline-block;vertical-align:middle}
.meter>i{display:block;height:100%;background:var(--accent);border-radius:3px}
.meter.low>i{background:var(--err)}
.meter.mid>i{background:var(--warn)}
dl.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0;font-size:13.5px}
dl.kv dt{color:var(--dim);font-size:12px;font-weight:600;padding-top:2px}
dl.kv dd{margin:0;color:var(--ink)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chip{background:var(--bg);border:1px solid var(--rule);border-radius:14px;padding:3px 11px;font-size:12.5px;color:var(--ink)}
.chip.copy{cursor:pointer}
.chip.copy:hover{background:var(--card);border-color:var(--accent);color:var(--accent)}
.chip.hard{background:#FDEDED;border-color:#E8BDBD;color:var(--err);font-weight:600}
.chip.adj-direct{background:#E8F4EE;border-color:#A9CFBC;color:var(--ok);font-weight:600}
.chip.adj-adjacent{background:#E9F0F7;border-color:#B4CBE2;color:var(--accent);font-weight:600}
.chip.adj-stretch{background:var(--warn-bg);border-color:var(--warn-rule);color:var(--warn);font-weight:600}
.exp{border-left:3px solid var(--rule);padding:2px 0 2px 14px;margin:0 0 18px}
.exp h3{font-size:14.5px;margin:0;color:var(--ink)}
.exp .meta{font-size:12.5px;color:var(--dim);margin:1px 0 6px}
.exp ul{margin:0;padding-left:18px;font-size:13.5px}
.exp ul li{margin-bottom:3px}
.extras{margin-top:8px;padding:8px 10px;background:var(--bg);border:1px dashed var(--rule);border-radius:6px}
.extras summary{font-size:12px;color:var(--dim);cursor:pointer;font-weight:600}
.extras dl.kv{margin-top:8px;font-size:12.5px}
mark.nc{background:var(--warn-bg);border-bottom:1px solid var(--warn-rule);color:var(--warn);padding:0 2px;font-weight:600}
.banner{background:var(--warn-bg);border:1px solid var(--warn-rule)}
.banner h2{color:var(--warn)}
.banner ol{margin:6px 0 0;padding-left:20px;font-size:13px}
.banner ol li{margin-bottom:4px}
.md h3{font-size:13.5px;margin:12px 0 3px;color:var(--ink)}
.md h4{font-size:12.5px;margin:9px 0 2px;color:var(--dim)}
.md ul{margin:2px 0;padding-left:18px;font-size:13.5px}
.md p{margin:5px 0;font-size:13.5px}
.sugg{border:1px solid var(--rule);border-radius:8px;padding:11px 13px;margin-bottom:9px;background:var(--card)}
.sugg-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.sugg-top h3{font-size:14.5px;margin:0;color:var(--ink)}
.sugg .why{font-size:13px;margin:5px 0 0}
.sugg .missing{font-size:12.5px;color:var(--warn);margin:5px 0 0;padding-left:16px}
.stale{background:var(--warn-bg);border:1px solid var(--warn-rule);color:var(--warn);border-radius:6px;
  padding:7px 11px;font-size:12.5px;margin-bottom:10px}

/* ---------- Preferences view ---------- */
.dim{border:1px solid var(--rule);border-radius:8px;padding:11px 13px;margin-bottom:9px;background:var(--card)}
.dim-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dim-top h3{font-size:14px;margin:0;color:var(--ink);flex:1;min-width:150px}
.dim .hint{font-size:12px;color:var(--dim);margin:2px 0 0}
/* Google sign-in */
.gbtn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;
  background:#fff;color:#3c4043;border:1px solid #dadce0;font-weight:600;
  text-decoration:none;padding:10px 16px}
.gbtn:hover{background:#f7f8f8;border-color:#c6cacd}
.ordiv{display:flex;align-items:center;gap:10px;margin:14px 0 2px;color:var(--dim);font-size:12px}
.ordiv:before,.ordiv:after{content:"";flex:1;height:1px;background:var(--rule)}

.implabel{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.imp{display:flex;gap:3px;align-items:center}
.imp button{width:24px;height:24px;border-radius:5px;border:1px solid var(--rule);background:#fff;
  cursor:pointer;font-size:12px;color:var(--dim);padding:0}
.imp button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.hardbox{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--body);font-weight:400;margin:0}
.hardbox input{width:auto}
.badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}
.badge.inferred{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-rule)}
.badge.unranked{background:var(--bg);color:var(--dim);border:1px solid var(--rule)}
.gatewrap{margin-top:9px;padding-top:9px;border-top:1px dashed var(--rule)}
.geo{font-size:12.5px;margin-top:6px}
.geo.ok{color:var(--ok)}
.geo.bad{color:var(--err)}

/* ---------- alignment + assessment ---------- */
.scoreline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 12px}
.bigscore{font-size:34px;font-weight:800;color:var(--ink);line-height:1}
.band{font-size:12.5px;font-weight:700;padding:3px 11px;border-radius:12px;
  background:var(--bg);border:1px solid var(--rule);color:var(--dim);text-transform:capitalize}
.band-strong{background:#E8F4EE;border-color:#A9CFBC;color:var(--ok)}
.band-good{background:#E9F0F7;border-color:#B4CBE2;color:var(--accent)}
.band-mixed,.band-needs-checking,.band-not-enough-known{background:var(--warn-bg);border-color:var(--warn-rule);color:var(--warn)}
.band-poor,.band-ruled-out{background:#FDEDED;border-color:#E8BDBD;color:var(--err)}
.verdict-bad{background:#FDEDED;border:1px solid #E8BDBD;border-radius:8px;padding:11px 13px;margin-bottom:12px;color:var(--err)}
.verdict-bad ul{margin:6px 0 0;padding-left:18px;font-size:13px}
.verdict-bad li{color:var(--body)}
table.dimtable{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:8px;display:block;overflow-x:auto}
table.dimtable th{text-align:left;color:var(--dim);font-size:11px;text-transform:uppercase;
  letter-spacing:.04em;padding:5px 8px;border-bottom:1px solid var(--rule);white-space:nowrap}
table.dimtable td{padding:7px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
table.dimtable td.num{text-align:right;white-space:nowrap}
table.dimtable td.ev{color:var(--body)}
table.dimtable td.ev ul{margin:0;padding-left:15px}
.src{color:var(--dim);font-size:11.5px;margin-top:2px}
.st{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;display:inline-block}
.st-pass,.st-cm-met{background:#E8F4EE;color:var(--ok)}
.st-partial,.st-cm-partial{background:var(--warn-bg);color:var(--warn)}
.st-fail,.st-cm-unmet{background:#FDEDED;color:var(--err)}
.st-unknown,.st-deferred,.st-cm-unclear{background:var(--bg);color:var(--dim)}
.psides{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
.pside{border:1px solid var(--rule);border-radius:8px;padding:11px 13px;background:var(--bg)}
.pside h4{margin:0 0 6px;font-size:12.5px;color:var(--dim);font-weight:700}
.dots{font-size:16px;letter-spacing:2px;color:var(--accent)}
.dots b{font-size:13px;letter-spacing:0;margin-left:6px;color:var(--ink)}
.pside .why{font-size:12.5px;margin:6px 0 0}
.fac{margin-top:8px}
.fh{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.fh.ok{color:var(--ok)}
.fh.bad{color:var(--err)}
.fac ul{margin:3px 0 0;padding-left:16px;font-size:12.5px}
.rec{margin-top:12px;padding:9px 12px;border-radius:8px;font-size:13px;border:1px solid var(--rule);background:var(--bg)}
.rec b{text-transform:capitalize}
.rec-proceed{background:#E8F4EE;border-color:#A9CFBC}
.rec-proceed-with-caution{background:var(--warn-bg);border-color:var(--warn-rule)}
.rec-decline{background:#FDEDED;border-color:#E8BDBD}
ul.risks{margin:5px 0 0;padding-left:18px;font-size:12.5px}
ul.risks li{margin-bottom:7px}
ul.risks li div{color:var(--dim);margin-top:1px}
.gap{border:1px solid var(--rule);border-left-width:3px;border-radius:8px;padding:11px 13px;margin-bottom:9px}
.gap.sev-high{border-left-color:var(--err)}
.gap.sev-medium{border-left-color:var(--warn)}
.gap.sev-low{border-left-color:var(--rule)}
.gap h3{font-size:14px;margin:0}
.gap .why{font-size:12.5px;margin:5px 0 0}
.framing{font-size:12.5px;margin:6px 0 0;padding:7px 10px;background:var(--bg);border-radius:6px}
.chip.sev-high{background:#FDEDED;border-color:#E8BDBD;color:var(--err);font-weight:600}
.chip.sev-medium{background:var(--warn-bg);border-color:var(--warn-rule);color:var(--warn);font-weight:600}
.gaprow{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;
  padding:9px 0 9px 11px;border-left:3px solid var(--rule);border-bottom:1px solid var(--rule)}
.gaprow:last-child{border-bottom:none}
.gaprow.sev-high{border-left-color:var(--err)}
.gaprow.sev-medium{border-left-color:var(--warn)}
.gaprow-main{font-size:13px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;flex:1}
.gaprow-main .muted{width:100%;margin-top:1px}
.gaprow-side{display:flex;gap:9px;align-items:center;white-space:nowrap}
.blockcount{font-size:15px;font-weight:800;color:var(--dim);min-width:18px;text-align:right}
.blockcount.many{color:var(--err)}
.rem ul{margin:4px 0 0;padding-left:16px;font-size:12.5px}
.rem li{margin-bottom:5px}
.rem a{color:var(--accent);word-break:break-all}

/* ---------- role lifecycle ---------- */
.statusbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 14px}
.snav.archived{opacity:.7;font-style:italic}
.st-role-active{background:#E9F0F7;color:var(--accent)}
.st-role-submitted{background:#E8F4EE;color:var(--ok)}
.st-role-declined{background:var(--bg);color:var(--dim)}
.archrow{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;
  padding:9px 0;border-bottom:1px solid var(--rule)}
.archrow:last-child{border-bottom:none}

/* ---------- theme picker ---------- */
.themecat{margin-top:10px}
.themegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;margin-top:5px}
.themecard{display:flex;flex-direction:column;gap:4px;padding:7px;border:1px solid var(--rule);
  border-radius:8px;background:var(--card);cursor:pointer;text-align:left;font:inherit;width:100%}
.themecard:hover{border-color:var(--accent)}
.themecard.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#F7FAFD}
.themecard img{width:100%;aspect-ratio:1/1.414;object-fit:cover;object-position:top center;
  border:1px solid var(--rule);border-radius:4px;background:#fff;display:block}
.themecard .tname{font-size:12.5px;font-weight:700;color:var(--ink)}
.themecard .tdesc{font-size:11px;color:var(--dim);line-height:1.35}
.themecard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media(max-width:640px){.row{grid-template-columns:1fr}dl.kv{grid-template-columns:1fr}dl.kv dt{padding-top:6px}
  .psides{grid-template-columns:1fr}
  .themegrid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr))}}

/* ---------- print ---------- */
#printfoot{display:none}
@media print{
  header,.subnav,.btn,#toast,.action-row,.editlink,.prof-actions,.stale{display:none!important}
  body{background:#fff;color:#000}
  .wrap{max-width:none;padding:0}
  .card{border:none;padding:0 0 14px;margin-bottom:14px;break-inside:avoid;page-break-inside:avoid}
  .exp,.sugg,.dim{break-inside:avoid;page-break-inside:avoid}
  .extras{border-style:solid}
  .extras[open] summary{list-style:none}
  mark.nc{background:none;border:1px solid #999;color:#000}
  a[href]:after{content:""}
  #printfoot{display:block;margin-top:18px;padding-top:8px;border-top:1px solid #999;font-size:11px;color:#444}
}

/* ---------- page length ---------- */
.pgbox{border:1px solid var(--rule);border-radius:8px;padding:11px 13px;background:var(--bg);margin-top:4px}
.pgrec{font-size:13.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pgwhy{margin:7px 0 0;padding-left:17px;font-size:12.5px;color:var(--dim)}
.pgwhy li{margin-bottom:2px}
.pgopts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.pgopt{padding:5px 13px;border:1px solid var(--rule);border-radius:6px;background:#fff;
  cursor:pointer;font:inherit;font-size:12.5px;color:var(--body)}
.pgopt:hover{border-color:var(--accent)}
.pgopt.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
