
:root{
  --charcoal:#262420; --prussian:#2C4F6B; --oxide:#A9453A; --pale:#D7E3EE; --cream:#FBF7F2; --body:#4A463F;
  --rule:rgba(38,36,32,.16); --white:#fff; --ok:#2F6B3A; --okbg:#E3EFE3; --warn:#8A5A00; --warnbg:#FBEFD5; --bad:#9B2C22; --badbg:#F7E1DE;
  --brand:var(--prussian); --brand-ink:#FBF7F2; --accent:var(--oxide); --accent-ink:#FBF7F2;
  /* Rating scale key (GT-110): cool grey to amber to green. Existing tokens where they fit; new ones fill the gaps. */
  --scale0:#E5E8EC; --scale0-ink:var(--charcoal); --scale0-line:#5E6873;
  --scale1:var(--warnbg); --scale1-ink:var(--warn); --scale1-line:var(--warn);
  --scale2:#F2CF7E; --scale2-ink:var(--charcoal); --scale2-line:#7A5200;
  --scale3:var(--okbg); --scale3-ink:var(--ok); --scale3-line:var(--ok);
  --scale4:var(--ok); --scale4-ink:var(--white); --scale4-line:#1F4A27;
  --scalena:var(--white); --scalena-ink:var(--charcoal); --scalena-line:var(--body);
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"DM Sans",Arial,Helvetica,sans-serif;color:var(--body);background:var(--cream);line-height:1.55;font-size:16px}
h1,h2,h3,h4{font-family:Lora,Georgia,serif;color:var(--charcoal);line-height:1.28;margin:0 0 .5em;font-weight:600}
h1{font-size:28px}h2{font-size:23px}h3{font-size:19px}h4{font-size:16px}
p{margin:0 0 .8em}
a{color:var(--prussian)}
button,input,select,textarea{font-family:inherit;font-size:15px}
:focus-visible{outline:3px solid var(--prussian);outline-offset:2px}
.hidden{display:none!important}
.muted{color:#3F3B35;font-size:15px}
.small{font-size:15px}
.eyebrow{font-size:15px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--prussian)}
header.app{background:var(--brand);color:var(--brand-ink);padding:12px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:4px solid var(--accent)}
.logo-box{width:56px;height:56px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;border-radius:4px}
.logo-box img{max-width:100%;max-height:100%;object-fit:contain}
/* GTA baseline logo: at least 96 px wide (brand guide), on white so the signal arcs read on the dark header */
.logo-box.gta{width:96px;height:96px;padding:4px}
.marks{display:flex;gap:10px;align-items:center;flex-shrink:0}
.seal{width:64px;height:64px;border-radius:50%;background:#fff;padding:3px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.seal img{width:100%;height:100%;object-fit:contain}
.app-title .juris{font-size:15px;opacity:.9;letter-spacing:.04em}
.report{position:relative;overflow:hidden}
.report .watermark{position:absolute;top:120px;left:50%;width:420px;max-width:70%;transform:translateX(-50%);opacity:.05;pointer-events:none;z-index:0}
.report>*:not(.watermark){position:relative;z-index:1}
.letterhead{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;border-bottom:3px double var(--accent);padding-bottom:14px;margin-bottom:20px}
.letterhead .lh-seal{width:84px;height:84px;object-fit:contain}
.letterhead .lh-logo{height:60px;max-width:140px;object-fit:contain}
.letterhead .lh-text{text-align:center}
.letterhead .lh-juris{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--body)}
.letterhead .lh-auth{font-family:Lora,Georgia,serif;font-size:19px;font-weight:600;color:var(--charcoal)}
@media(max-width:600px){.letterhead{grid-template-columns:1fr}.letterhead .lh-seal,.letterhead .lh-logo{margin:0 auto}}
.app-title{flex:1;min-width:220px}
.app-title .prod{font-size:15px;opacity:.9}
.app-title .agency{font-family:Lora,Georgia,serif;font-size:21px;font-weight:600}
.hdr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.who{font-size:15px;opacity:.95}
.btn{min-height:44px;padding:10px 18px;border:1.5px solid var(--prussian);background:var(--cream);color:var(--prussian);cursor:pointer;font-weight:500;border-radius:0;box-shadow:inset 0 0 0 2px var(--cream),inset 0 0 0 3px rgba(44,79,107,.25)}
.btn:hover{background:#F1ECE4}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent),inset 0 0 0 3px rgba(251,247,242,.55)}
.btn.primary:hover{filter:brightness(.94)}
.btn.sm{min-height:34px;padding:5px 12px;font-size:15px}
.btn:disabled{opacity:.45;cursor:not-allowed}
header.app .btn{background:transparent;border-color:var(--brand-ink);color:var(--brand-ink);box-shadow:none}
header.app .btn:hover{background:rgba(255,255,255,.12)}
.linkbtn{background:none;border:0;color:var(--prussian);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}
nav.tabs{display:flex;gap:2px;padding:0 24px;background:#fff;border-bottom:1px solid var(--rule);overflow-x:auto}
nav.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:14px 14px;cursor:pointer;color:var(--body);font-weight:500;white-space:nowrap;min-height:48px}
nav.tabs button[aria-selected="true"]{color:var(--charcoal);border-bottom-color:var(--accent)}
main{max-width:1240px;margin:0 auto;padding:28px 24px 64px}
.pilot-banner{background:var(--pale);color:var(--charcoal);font-size:15px;padding:8px 24px;text-align:center;border-bottom:1px solid var(--rule)}
.card{background:#fff;border:1px solid var(--rule);padding:20px 22px;margin-bottom:20px}
.card.tint{background:var(--pale)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.stat{background:#fff;border:1px solid var(--rule);padding:16px}
.stat .num{font-family:Lora,Georgia,serif;font-size:30px;color:var(--charcoal);font-weight:600;line-height:1.1}
.stat .lbl{font-size:15px;color:#3F3B35}
.gatecard{background:#fff;border:1px solid var(--rule);border-left:6px solid #B8B2A7;padding:14px 16px;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}
.gatecard:hover{background:#FDFBF8}
.gatecard .gid{font-weight:700;color:var(--prussian);font-size:15px}
.gatecard .gt{font-family:Lora,Georgia,serif;font-size:17px;color:var(--charcoal);font-weight:600;margin:2px 0 6px}
.gatecard .meta{font-size:15px;color:#3F3B35}
.st-open{border-left-color:var(--ok)!important}
.st-ready{border-left-color:var(--prussian)!important}
.st-prog{border-left-color:#C7A24A!important}
.st-reopened{border-left-color:var(--bad)!important}
.pill{display:inline-block;padding:2px 9px;font-size:15px;font-weight:700;border:1px solid transparent;white-space:nowrap}
.pill.ok{background:var(--okbg);color:var(--ok);border-color:#BCD7BD}
.pill.warn{background:var(--warnbg);color:var(--warn);border-color:#EBD3A2}
.pill.bad{background:var(--badbg);color:var(--bad);border-color:#E6B9B3}
.pill.info{background:var(--pale);color:var(--prussian);border-color:#B9CCDD}
.pill.neutral{background:#EFEBE4;color:#5B564D;border-color:#DDD6CA}
.bar{height:10px;background:#E9E3D9;position:relative;overflow:hidden}
.bar span{position:absolute;inset:0 auto 0 0;background:var(--prussian)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;vertical-align:top;padding:9px 10px;border-bottom:1px solid var(--rule)}
th{font-weight:700;color:var(--charcoal);background:#F6F2EC;font-size:15px}
td input,td select{width:100%}
.tablewrap{overflow-x:auto}
label.fld{display:block;font-size:15px;font-weight:500;color:var(--charcoal);margin-bottom:10px}
label.fld input,label.fld select,label.fld textarea{display:block;width:100%;margin-top:4px}
label.fld input[type=checkbox],label.fld input[type=radio]{display:inline-block;width:auto;margin:0 8px 0 0;vertical-align:middle}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=url],select,textarea{padding:8px 10px;border:1px solid #B9B2A6;background:#fff;color:var(--charcoal);border-radius:0}
textarea{min-height:70px;resize:vertical;width:100%}
.layout{display:grid;grid-template-columns:270px 1fr;gap:24px}
@media(max-width:880px){.layout{grid-template-columns:1fr}}
.sidenav{display:flex;flex-direction:column;gap:4px}
.sidenav button{text-align:left;background:#fff;border:1px solid var(--rule);border-left:5px solid #B8B2A7;padding:10px 12px;cursor:pointer;font:inherit;color:var(--charcoal);min-height:44px}
.sidenav button.on{background:var(--pale);font-weight:700}
.q{border-top:1px solid var(--rule);padding:16px 0}
.q:first-of-type{border-top:0}
.qtext{font-weight:500;color:var(--charcoal)}
.why{font-size:15px;color:#3F3B35;margin:4px 0}
.scale{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.scale label{border:1px solid #B9B2A6;padding:6px 10px;font-size:15px;cursor:pointer;background:#fff;min-height:36px;display:flex;align-items:center;gap:6px}
.scale label.sel{background:var(--prussian);color:#fff;border-color:var(--prussian)}
.scale input{margin:0}
.notice{padding:10px 14px;margin:10px 0;font-size:15px;border:1px solid}
.notice.warn{background:var(--warnbg);border-color:#EBD3A2;color:#5E4300}
.notice.bad{background:var(--badbg);border-color:#E6B9B3;color:#6E1F18}
.notice.ok{background:var(--okbg);border-color:#BCD7BD;color:#1F4A27}
.notice.info{background:var(--pale);border-color:#B9CCDD;color:#1E3A52}
.critical{color:var(--oxide);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.p2tag{color:var(--prussian);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.subtabs button{border:1px solid var(--prussian);background:#fff;color:var(--prussian);padding:8px 14px;cursor:pointer;min-height:40px}
.subtabs button.on{background:var(--prussian);color:#fff}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row.end{justify-content:flex-end}
.spacer{flex:1}
pre.email{white-space:pre-wrap;background:#FDFBF8;border:1px solid var(--rule);padding:14px;font-family:"DM Sans",Arial,sans-serif;font-size:15px}
.ai-label{display:inline-block;background:var(--warnbg);color:#5E4300;border:1px solid #EBD3A2;padding:3px 10px;font-size:15px;font-weight:700;margin-bottom:10px}
.local-label{display:inline-block;background:var(--pale);color:#1E3A52;border:1px solid #B9CCDD;padding:3px 10px;font-size:15px;font-weight:700;margin-bottom:10px}
.thread-item{border-left:4px solid var(--pale);padding:8px 12px;margin:10px 0;background:#FDFBF8}
.thread-item.reply{border-left-color:var(--prussian)}
.thread-item.eval{border-left-color:#C7A24A}
.thread-item.followup{border-left-color:var(--oxide)}
/* Environments and capabilities, roadmap (GT-026) */
/* A header cell whose only text is for screen readers keeps that text inside it, so it never widens the page */
.sr-col{position:relative}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
fieldset.plain,fieldset.capstate{border:0;margin:0;padding:0;min-width:0}
.envrow{padding:8px 0;border-top:1px solid var(--rule)}
.caprow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;padding:12px 0;border-top:1px solid var(--rule);align-items:start}
.capstate{display:flex;flex-wrap:wrap;gap:6px}
.capstate label{border:1px solid #B9B2A6;padding:6px 10px;font-size:15px;cursor:pointer;background:#fff;min-height:36px;display:flex;align-items:center;gap:6px}
.capstate label.sel{background:var(--prussian);color:#fff;border-color:var(--prussian)}
@media (max-width:760px){.caprow{grid-template-columns:1fr}}
.badge{font-size:15px}
.captags{margin-top:6px}
.tag{display:inline-block;border:1px solid #B9CCDD;background:var(--pale);color:var(--prussian);padding:1px 7px;margin:2px 4px 2px 0;font-size:15px}
.roadmap{list-style:none;padding:0;margin:0}
.step summary{cursor:pointer;font-size:15px;line-height:1.6}
.step summary:focus-visible{outline:3px solid var(--prussian);outline-offset:2px}
.stepbody{margin-top:10px}
.scalekey{display:flex;flex-wrap:wrap;gap:8px}
.scalebtn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:7px 12px;border:1px solid;font:inherit;font-size:15px;cursor:pointer;background:var(--sb);color:var(--si);border-color:var(--sl)}
.scalebtn .mark,.scalepanel .mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid currentColor;font-size:15px;font-weight:700;line-height:1}
.scalebtn .check{display:none;font-weight:700}
.scalebtn[aria-expanded="true"]{border-width:3px;padding:5px 10px;font-weight:700}
.scalebtn[aria-expanded="true"] .check{display:inline}
.sv0{--sb:var(--scale0);--si:var(--scale0-ink);--sl:var(--scale0-line)}
.sv1{--sb:var(--scale1);--si:var(--scale1-ink);--sl:var(--scale1-line)}
.sv2{--sb:var(--scale2);--si:var(--scale2-ink);--sl:var(--scale2-line)}
.sv3{--sb:var(--scale3);--si:var(--scale3-ink);--sl:var(--scale3-line)}
.sv4{--sb:var(--scale4);--si:var(--scale4-ink);--sl:var(--scale4-line)}
.svna{--sb:var(--scalena);--si:var(--scalena-ink);--sl:var(--scalena-line);border-style:dashed}
.scalepanel{margin-top:10px;padding:10px 14px;background:#FDFBF8;border-left:4px solid var(--prussian);max-width:72ch;font-size:15px}
.scalepanel[hidden]{display:none}
.scalepanel p{margin:4px 0}
/* Plain-speak help (GT-110) */
.help{display:block;margin:4px 0}
.helpbtn{background:none;border:0;padding:4px 0;color:var(--prussian);text-decoration:underline;cursor:pointer;font:inherit;font-size:15px;min-height:24px}
.helppanel{display:block;margin:6px 0 4px;padding:10px 12px;background:#FDFBF8;border-left:4px solid var(--prussian);font-size:15px;max-width:72ch}
.helppanel[hidden]{display:none}
dialog{border:1px solid var(--rule);padding:0;max-width:760px;width:94vw;background:var(--cream);color:var(--body)}
dialog::backdrop{background:rgba(38,36,32,.5)}
dialog .dhead{background:var(--charcoal);color:var(--cream);padding:14px 20px;font-family:Lora,Georgia,serif;font-size:19px}
dialog .dbody{padding:18px 20px;max-height:70vh;overflow:auto}
dialog .dfoot{padding:12px 20px;border-top:1px solid var(--rule);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;background:#fff}
/* The app's dialog always sits inside the window (October 20): centered, never wider or taller than the viewport less
   16 px on each side, at any width or zoom and however far the page is scrolled; its buttons wrap rather than clip. */
dialog[open]{position:fixed;inset:0;margin:auto;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box}
dialog .dfoot .btn{max-width:100%;white-space:normal}
pre.payload{max-height:220px;overflow:auto;background:#fff;border:1px solid var(--rule);padding:10px;font-size:15px;white-space:pre-wrap}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:15px}
.kv dt{font-weight:700;color:var(--charcoal)}
.kv dd{margin:0}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--charcoal);color:var(--cream);padding:12px 20px;z-index:50;font-size:15px;max-width:90vw}
.chart svg{width:100%;height:auto;display:block}
.report{background:#fff;border:1px solid var(--rule);padding:32px}
.report h1{font-size:26px}
.report .rhead{display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--accent);padding-bottom:12px;margin-bottom:18px}
.footer-credit{font-size:15px;color:#3F3B35;text-align:center;padding:24px}
.ro-note{background:var(--warnbg);padding:8px 24px;font-size:15px;text-align:center}
@media(max-width:600px){header.app,nav.tabs,.pilot-banner{padding-left:16px;padding-right:16px}main{padding:20px 16px 48px}.card{padding:16px}.report{padding:18px}}
@media print{
  header.app,nav.tabs,.pilot-banner,.noprint,.footer-credit,.ro-note{display:none!important}
  body{background:#fff}
  main{padding:0;max-width:none}
  .card,.report{border:0;padding:0}
  .tab-panel{display:none!important}
  .tab-panel.printing{display:block!important}
  tr,.q{page-break-inside:avoid}
}

/* ---------- hosted shell ---------- */
#gate{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:64px 16px;background:var(--cream)}
#gate .panel{background:#fff;border:1px solid var(--rule);max-width:520px;width:100%;padding:32px}
#gate .brandline{display:flex;gap:12px;align-items:center;margin-bottom:20px}
#gate .brandline img{width:96px;height:96px;flex-shrink:0}
#gate h1{font-size:26px}
#gate .err{color:var(--bad);font-size:15px;margin-top:8px;min-height:1em}
#gate .stack>*+*{margin-top:12px}
#gate input[type=text],#gate input[type=email],#gate input[type=password]{width:100%}
.recovery{font-family:ui-monospace,Consolas,monospace;font-size:18px;letter-spacing:.06em;background:var(--pale);padding:14px;word-break:break-all;border:1px solid #B9CCDD}
/* On screen, wrap only after a group's hyphen so no group of four splits across lines (GT-T-130). */
@media screen{.recovery{word-break:normal;overflow-wrap:normal}}
.fp{font-family:ui-monospace,Consolas,monospace;background:#F6F2EC;padding:2px 6px}
.savestate{font-size:15px;opacity:.9;min-width:90px;text-align:right}
.hidden-sample [data-act=loadSample]{display:none!important}
/* Request packet backup (GT-063, Part 2) */
.backup-cert{border-left:3px solid var(--rule);padding:2px 0 2px 12px;margin:0 0 12px}

/* Current app feature rules restored from the live CSSOM. */
.subtab-desc { margin: -8px 0px 18px; max-width: 80ch; }
.rpt-export { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--rule); }
.rpt-export h3 { margin: 0px 0px 8px; }
.rpt-export select { min-height: 44px; min-width: min(100%, 320px); }
.rpt-export .btn { min-height: 44px; }
.nav-back { display: flex; flex-wrap: wrap; gap: 8px; margin: 0px 0px 12px; }
.nav-back .btn { min-height: 44px; }
.nav-gatebar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin: 0px 0px 14px; }
.nav-step { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.nav-step .btn { min-height: 44px; }
.nav-pos { font-weight: 500; }
.nav-checklist { list-style: none; padding: 0px; margin: 8px 0px 14px; columns: 260px 2; }
.nav-checklist li { padding: 4px 0px; break-inside: avoid; }
.nav-tick { display: inline-block; width: 1.4em; font-weight: 700; }
.nav-checklist li.done .nav-tick { color: var(--ok); }
.rm-purpose { max-width: 72ch; }
.rm-start { border-left: 6px solid var(--prussian); }
.rm-bar { display: flex; flex-wrap: wrap; width: 100%; min-height: 36px; border: 1px solid var(--rule); margin-top: 8px; }
.rm-seg { display: flex; align-items: center; justify-content: center; min-width: max-content; padding: 6px 10px; font-size:15px; font-weight: 500; }
.rm-seg-in { background: var(--scale4); color: var(--scale4-ink); }
.rm-seg-na { background: var(--scalena); color: var(--scalena-ink); outline: 1px dashed var(--scalena-line); outline-offset: -4px; }
.rm-seg-planned { background: var(--scale1); color: var(--scale1-ink); }
.rm-seg-not { background: var(--scale0); color: var(--scale0-ink); }
.rm-section { margin: 24px 0px; }
.rm-area { margin: 16px 0px 8px; font-size: 16px; }
.rm-steps { list-style: none; padding: 0px; margin: 0px; }
.rm-group { margin: 0px 0px 10px; }
.rm-wait { margin: 8px 0px 6px; }
.rm-indent { margin-left: 22px; }
.rm-title { flex: 1 1 0%; min-width: 220px; }
.rm-unlocks { display: block; font-size:15px; color: var(--body); margin-top: 2px; }
.rm-state { display: flex; flex-wrap: wrap; gap: 6px; }
.rm-state label { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 10px; border: 1px solid rgb(185, 178, 166); background: rgb(255, 255, 255); font-size:15px; cursor: pointer; }
.rm-state label.sel { background: var(--prussian); color: rgb(255, 255, 255); border-color: var(--prussian); }
.rm-preview .step { border-style: dashed; background: rgb(253, 251, 248); }
.rm-preview-label { font-weight: 500; color: var(--prussian); }
.rm-key { margin-top: 14px; }
.rm-done summary { display: flex; gap: 8px; align-items: baseline; cursor: pointer; }
.rm-done summary h2 { display: inline; margin: 0px; }
.rm-done-list { list-style: none; padding: 0px; margin: 12px 0px 0px; }
.rm-done-item { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 14px; padding: 10px 0px; border-top: 1px solid var(--rule); }
.rm-done-item > span:first-child { flex: 1 1 24ch; min-width: 0px; }
@media (max-width: 480px) {
.rm-indent { margin-left: 10px; }
}
@media (max-width: 480px) {
.rm-title { min-width: 0px; }
}
@media print {
body:not(:has(.tab-panel.printing)) #tab-roadmap:not(.hidden) { display: block !important; }
}
@media print {
.rm-state input, .rm-state label:not(.sel), .rm-path .btn, .rm-start .btn, .rm-where .btn { display: none; }
}
@media print {
.rm-state label.sel { border: 0px; padding: 0px; min-height: 0px; background: none; color: inherit; }
}

/* Agency workspace concept. Sans-serif product typography is intentional. */
:root{--surface:color-mix(in srgb,var(--cream) 65%,var(--pale));--rule:color-mix(in srgb,var(--prussian) 22%,#fff);--control-line:#758391;--muted-ink:#3F4750;--body:#4A463F;--charcoal:#262420;--cream:#FBF7F2}
body{background:var(--surface);font-size:17px;line-height:1.6}
h1,h2,h3,h4,.app-title .agency,.gatecard .gt,dialog .dhead{font-family:"DM Sans",Arial,sans-serif;font-weight:700;letter-spacing:-.025em}
h1{font-size:34px}h2{font-size:27px}h3{font-size:22px}h4{font-size:19px}
.muted,.why,.stat .lbl,.gatecard .meta,.footer-credit{color:var(--muted-ink)}
.pilot-banner{background:#E1E8EF;font-size:15px;padding:8px 24px;text-align:left;line-height:1.5}
header.app{color:var(--charcoal);padding:20px 24px;gap:16px;border-bottom:1px solid var(--rule);border-top:4px solid var(--brand)}
.app-title{flex:1 1 300px;min-width:0}
.app-title .prod{font-size:15px;font-weight:700;letter-spacing:.06em;opacity:1;margin-bottom:4px}
.app-title .agency{font-size:21px;line-height:1.25}
.app-title .juris{font-size:15px;letter-spacing:0;opacity:1;margin-top:6px}
.marks{gap:12px}.seal{width:56px;height:56px;border-radius:0;box-shadow:none;background:#fff}
.logo-box{border-radius:0}.logo-box.gta{width:96px;height:96px;background:#fff;box-shadow:none}
.hdr-actions{flex-basis:100%;padding-top:12px;border-top:1px solid var(--rule);gap:8px}
.hdr-actions .who{margin-right:auto;font-size:15px;font-weight:500;opacity:1}
.savestate{opacity:1}
.btn{min-height:44px;background:#fff;border:1px solid var(--control-line);color:var(--charcoal);padding:10px 16px;font-size:15px;font-weight:700;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3px #E1E7EC}
.btn.sm{min-height:44px;padding:8px 12px;font-size:15px}
header.app .btn{background:#fff;color:var(--charcoal);border-color:var(--control-line);box-shadow:none}
.btn:hover,header.app .btn:hover{background:#EDF1F5;color:var(--charcoal)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent),inset 0 0 0 3px var(--accent-ink)}
.btn.primary:hover{filter:none;box-shadow:inset 0 0 0 2px var(--accent),inset 0 0 0 4px var(--accent-ink)}
main{max-width:1500px;width:100%;padding:24px 32px 56px;min-width:0}
main>nav{margin-bottom:24px}
nav.tabs{gap:4px;padding:8px 16px;border:0;scroll-padding-inline:16px;position:relative;isolation:isolate}
nav.tabs button{min-height:48px;padding:12px 16px;color:var(--brand-ink);font-size:15px;font-weight:500;border:1px solid transparent;white-space:nowrap;text-align:left}
nav.tabs button:hover{background:color-mix(in srgb,var(--brand-ink) 12%,transparent);color:var(--brand-ink)}
nav.tabs button[aria-selected="true"]{color:var(--accent-ink);border-color:var(--accent-ink);font-weight:700;box-shadow:inset 4px 0 0 var(--accent-ink)}
nav.tabs :focus-visible{outline-color:var(--brand-ink);outline-offset:2px}
.card{padding:24px;margin-bottom:24px;border:1px solid var(--rule);box-shadow:none}
.card.tint{background:#E6EEF5}
.grid{gap:16px;min-width:0}.grid>*{min-width:0}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
.stat{padding:24px;border:0;color:var(--brand-ink);position:relative;overflow:hidden;isolation:isolate;min-height:148px}
.stat::before{content:"";position:absolute;width:180px;height:180px;right:-80px;top:-95px;border:28px solid var(--brand-ink);opacity:.08;border-radius:50%;pointer-events:none;z-index:-1}
.stat::after{content:"";position:absolute;width:100px;height:100px;right:-38px;bottom:-52px;border:20px solid var(--brand-ink);opacity:.08;transform:rotate(35deg);pointer-events:none;z-index:-1}
.stat:nth-child(2)::before{border-radius:0;transform:rotate(35deg);right:-105px;top:-90px}
.stat:nth-child(3)::before{width:230px;height:230px;border-width:1px;right:-125px;top:-120px;opacity:.12;box-shadow:0 0 0 18px color-mix(in srgb,var(--brand-ink) 18%,transparent),0 0 0 36px color-mix(in srgb,var(--brand-ink) 10%,transparent)}
.stat:nth-child(4)::before{border-radius:0;border-width:0;background:var(--brand-ink);clip-path:polygon(50% 0,100% 100%,0 100%);transform:rotate(-20deg);right:-110px;top:-85px}
.stat .num{font-family:"DM Sans",Arial,sans-serif;font-size:40px;line-height:1.1;font-weight:700;letter-spacing:-.045em;color:var(--brand-ink);font-variant-numeric:tabular-nums}
.stat .lbl{font-size:15px;line-height:1.5;margin-top:12px;color:var(--brand-ink)}
.gatecard{padding:20px;border:1px solid var(--rule);border-left:4px solid #82909D;position:relative;overflow:hidden;isolation:isolate}
.gatecard::after{content:"";position:absolute;width:100px;height:100px;border:16px solid var(--prussian);border-radius:50%;right:-64px;top:-64px;opacity:.05;pointer-events:none;z-index:-1}
.gatecard:hover{background:#EDF3F8;border-top-color:var(--prussian);border-right-color:var(--prussian);border-bottom-color:var(--prussian)}
.gatecard .gid{font-size:15px;font-weight:700;letter-spacing:.06em}
.gatecard .gt{font-size:17px;line-height:1.35;margin:8px 0 12px}
.gatecard .meta{font-size:15px;line-height:1.6;margin-top:12px}
.pill{font-size:15px;padding:3px 8px;line-height:1.5;white-space:normal}
.bar{height:6px;background:#E2E8EE}
th,td{padding:14px 16px}table{font-size:15px;line-height:1.5}
th{background:#E9EFF5;color:var(--charcoal);font-size:15px;border-bottom:2px solid #9EACBA}
tbody tr:nth-child(even){background:#F6F9FB}tbody tr:hover{background:#EAF0F6}
td{overflow-wrap:anywhere}.tablewrap{max-width:100%;border:1px solid var(--rule)}
label.fld{font-size:15px;font-weight:700;margin-bottom:16px}
label.fld input,label.fld select,label.fld textarea{margin-top:8px;font-weight:400}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=url],input[type=password],select,textarea{min-height:44px;border:1px solid var(--control-line);background:#fff;color:var(--charcoal);padding:10px 12px;max-width:100%;border-radius:0}
textarea{min-height:104px;line-height:1.6}
input[type=checkbox],input[type=radio]{accent-color:var(--prussian);width:18px;height:18px;flex-shrink:0}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px;align-content:center}
.layout{grid-template-columns:232px minmax(0,1fr);gap:24px}
.sidenav{gap:8px}.sidenav button{padding:12px;font-size:15px;line-height:1.5}
.sidenav button.on{background:#E6EEF5}
.q{padding:24px 0}.qtext{font-weight:700;line-height:1.65}
.why{font-size:15px;margin:8px 0}
.scale,.capstate{gap:8px}.scale label,.capstate label{min-height:44px;padding:10px 12px;border-color:var(--control-line)}
.notice{padding:12px 16px;margin:12px 0;border-left-width:4px;font-size:15px;line-height:1.6}
.subtabs{gap:8px;margin-bottom:24px}.subtabs button{min-height:44px;padding:10px 16px;font-size:15px;font-weight:700}
.row{gap:16px}.row>*{max-width:100%}
.scalebtn{min-height:44px;padding:10px 12px}.scalebtn[aria-expanded="true"]{padding:8px 10px}
.scalepanel,.helppanel{padding:16px;background:#EDF3F8;border-left-width:3px}
.helpbtn,.linkbtn{min-height:44px;padding-block:8px;text-underline-offset:3px}
.caprow,.envrow{padding:16px 0}
.step{padding:16px 0;border-bottom:1px solid var(--rule)}.step summary{min-height:44px;font-weight:500}.stepbody{margin-top:16px}
.thread-item{padding:16px;margin:16px 0;background:#F3F6F9}
pre.email,pre.payload{background:#F6F9FB;padding:20px;overflow-wrap:anywhere}
.kv{grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:12px 24px}.kv dd{overflow-wrap:anywhere}
.report{padding:40px;background:#fff;box-shadow:0 4px 16px rgba(38,36,32,.06)}
.report h1,.letterhead .lh-auth{font-family:Lora,Georgia,serif}
.letterhead .lh-logo{min-width:96px;background:#fff}
.footer-credit{font-size:15px;padding:24px;border-top:1px solid var(--rule)}
:focus-visible{outline:3px solid var(--prussian);outline-offset:3px;box-shadow:0 0 0 3px #fff}
@media(min-width:1000px){
  #app{display:grid;grid-template-columns:184px minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;min-height:100vh;align-items:start}
  .pilot-banner{grid-column:1/-1;grid-row:1}
  header.app{grid-column:1/-1;grid-row:2}
  .ro-note{grid-column:2;grid-row:3}
  nav.tabs{grid-column:1;grid-row:3/6;flex-direction:column;align-self:stretch;padding:24px 12px;gap:8px;overflow:visible}
  nav.tabs button{white-space:normal}
  nav.tabs::after{content:"";position:absolute;left:-95px;bottom:80px;width:260px;height:260px;border:36px solid var(--brand-ink);border-radius:50%;opacity:.04;pointer-events:none;z-index:-1}
  main{grid-column:2;grid-row:4}
  .footer-credit{grid-column:2;grid-row:5}
  #tab-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
  #tab-overview>*{min-width:0;margin:0!important}
  #tab-overview>.grid{grid-column:1/-1;order:-2}
  #tab-overview>.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #tab-overview .stat{padding:24px 20px}
  #tab-overview .stat .num{font-size:clamp(26px,3vw,40px)}
  #tab-overview>.notice{grid-column:1/-1;order:-1}
  #tab-overview>.card:has(.gatecard),#tab-overview>.card:has(.chart){grid-column:1/-1}
}
@media(max-width:880px){.layout{grid-template-columns:minmax(0,1fr)}.sidenav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}}
@media(max-width:600px){
  header.app{padding:16px;gap:12px}.app-title{flex-basis:220px}.app-title .agency{font-size:18px}
  .hdr-actions .who{flex-basis:100%}
  .pilot-banner{padding:8px 16px}nav.tabs{padding:8px}
  main{padding:24px 16px 48px}.card,.gatecard{padding:20px}
  .stat{padding:20px 16px}.stat .num{font-size:30px}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kv{grid-template-columns:minmax(0,1fr);gap:4px}.kv dd{margin-bottom:12px}
  .report{padding:20px}th,td{padding:10px 8px}
}
/* Shared section headers and screen-specific work surfaces. */
.tab-panel>h1{
  position:relative;isolation:isolate;overflow:hidden;padding:28px 32px;margin:0;
  color:var(--brand-ink);border-left:4px solid var(--accent);line-height:1.25;
}
.tab-panel>h1::after{content:"";position:absolute;right:-32px;top:-76px;width:200px;height:200px;border:28px solid var(--brand-ink);border-radius:50%;opacity:.08;pointer-events:none;z-index:-1}
.tab-panel>h1+p{padding:20px 24px;margin:0 0 24px;background:#fff;border:1px solid var(--rule);border-top:0;max-width:none;font-size:15px;line-height:1.75}
.tab-panel>.subtabs{padding:12px;background:#fff;border:1px solid var(--rule);gap:8px}
.subtabs button{border-color:var(--rule);background:#fff;color:var(--charcoal);box-shadow:none}
.subtabs button:hover{background:var(--pale)}
.subtabs button.on{color:var(--brand-ink);border-color:var(--brand)}
.btn.primary{}
.card>h2,.card>h3,.card>.row>h2,.card>.row>h3{padding-bottom:12px;border-bottom:1px solid var(--rule);margin-bottom:16px}
.card>.row:has(>h2),.card>.row:has(>h3){align-items:start;justify-content:space-between}
.card>.row>h2,.card>.row>h3{flex:1;min-width:0}
.tablewrap{background:#fff}
.tablewrap table{min-width:720px}
#tab-tasks .tablewrap table{min-width:1000px}



#tab-tasks td:last-child{min-width:136px}
td .btn,td .linkbtn{overflow-wrap:normal;word-break:normal;white-space:nowrap}
#tab-vr .tablewrap table,#tab-analysis .tablewrap table,#tab-reports .tablewrap table{min-width:640px}
th{border-bottom:1px solid color-mix(in srgb,var(--prussian) 40%,#fff)}
td .linkbtn{font-weight:700}
td select{min-width:104px}
#tab-tasks>.card:has(>h3),#tab-vendors>.card:has(table){border-top:3px solid var(--brand)}
#tab-tasks>.card:has(>h3)>h3{font-size:16px}
#tab-tasks>.card:has(.row),#tab-vendors>.card:has(.btn.primary){background:#fff}
#tab-setup .card{border-top:3px solid var(--brand)}
#tab-setup label.fld{line-height:1.6}
#tab-setup .caprow{background:transparent}
.caprow{padding:20px 0}
.capstate label.sel,.scale label.sel{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:inset 0 -3px 0 var(--accent)}
#tab-roadmap>.card,#tab-roadmap>section{border:1px solid var(--rule);padding:24px;margin-bottom:24px}
#tab-roadmap>section>h2{border-left:4px solid var(--accent);padding-left:12px;margin-bottom:8px}
.roadmap{display:grid;gap:12px}
.step{background:#fff;border:1px solid var(--rule);border-left:3px solid var(--brand);padding:16px 20px}
.step summary{line-height:1.7;overflow-wrap:anywhere}
.step[open]{border-left-color:var(--accent)}
.stepbody{padding-top:12px;border-top:1px solid var(--rule)}
.step .capstate{margin-top:12px}
#tab-gates .sidenav{align-self:start;background:#fff;border:1px solid var(--rule);padding:12px}
#tab-gates .sidenav button{border:1px solid var(--rule);border-left-width:3px}
#tab-gates .sidenav button.on{background:var(--brand);color:var(--brand-ink);border-left-color:var(--accent)}
#tab-gates .sidenav button.on .muted,#tab-gates .sidenav button.on .small{color:var(--brand-ink)}
#tab-gates .sidenav button.on .pill{box-shadow:0 0 0 1px #fff}
#tab-gates .layout>div>.card:first-of-type{border-top:4px solid var(--brand)}
#tab-gates .q{padding:20px;background:#fff;border:1px solid var(--rule);margin:16px 0}
.scalekey{padding:12px;background:color-mix(in srgb,var(--pale) 30%,#fff);gap:8px}
.scalepanel,.helppanel{border-left-color:var(--brand)}
.thread-item{border:1px solid var(--rule);border-left:4px solid var(--brand)}
.thread-item.reply{border-left-color:var(--prussian)}
.thread-item.eval{border-left-color:var(--warn)}
.thread-item.followup{border-left-color:var(--accent)}
#tab-vr>.card{border-top:3px solid var(--brand)}
#tab-vr .stat{min-height:132px}
#tab-reports>.card:not(.report),#rpt-analysis>.card{border-top:3px solid var(--brand)}
.report>h2,.report>h3{padding-bottom:8px;border-bottom:1px solid var(--rule);margin-top:24px}
.report .letterhead{border-bottom:3px solid var(--accent)}
.report .stat{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--brand);color:var(--charcoal)}
.report .stat .num,.report .stat .lbl{color:var(--charcoal)}
.report .stat::before,.report .stat::after{display:none}
#tab-about .card{border-top:3px solid var(--brand)}
#tab-about>h1+.card{border-top:0;padding-top:24px}
#tab-about .card p{max-width:80ch}
#tab-roadmap section[aria-labelledby]{border:1px solid var(--rule);padding:24px;margin:24px 0}
#tab-roadmap section[aria-labelledby]>h2{border-left:4px solid var(--accent);padding-left:12px}
.rm-bar{min-height:44px;gap:0;border:1px solid var(--control-line)}
.rm-seg{flex:1 1 auto;min-height:44px;padding:10px 12px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.rm-start{border-left-color:var(--brand)}
.rm-area{font-family:"DM Sans",Arial,sans-serif;font-size:16px;font-weight:700}
.rm-unlocks{color:var(--muted-ink);line-height:1.6;margin-top:8px}
.rm-state{gap:8px;margin-top:12px}
.rm-state label{min-height:44px;border-color:var(--control-line);padding:10px 12px}
.rm-state label.sel{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:inset 0 -3px 0 var(--accent)}
.nav-back{margin-bottom:20px;gap:8px}
.nav-gatebar{align-items:center;margin-bottom:20px;gap:12px 16px}
.nav-step{gap:12px}.nav-pos{font-size:15px;font-weight:700;color:var(--charcoal)}
.nav-checklist{columns:260px 2;margin:12px 0 20px}
.nav-checklist li{padding:6px 0}
/* Setup section links under the setup button: they wrap, never scroll sideways, and each target is 44 px high */
.setup-links ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 20px;margin:12px 0 0;background:transparent!important;border:0!important;padding:0!important}
.setup-links li{min-width:0;max-width:100%}
/* The inquiry Questions table (October 20): the number and the status never wrap ("1 / 0", "Ope / n") */
.inq-qs td.qn,.inq-qs td.qst{white-space:nowrap;overflow-wrap:normal;word-break:normal;width:1%}
.inq-qs td.qst .pill{white-space:nowrap}
.setup-links .linkbtn{min-height:44px;text-align:left;font-size:15px;overflow-wrap:anywhere}
.rpt-export{padding:20px;background:var(--cream);border:1px solid var(--rule)}
.rpt-export select{max-width:100%;width:100%;margin-bottom:12px}
.rpt-export .btn{max-width:100%;white-space:normal}
.subtab-desc{margin:0 0 24px;max-width:80ch;line-height:1.75}
@media(max-width:1200px){
  #tab-gates .layout{grid-template-columns:minmax(0,1fr)}
  #tab-gates .sidenav{display:flex;flex-direction:row;overflow-x:auto;gap:8px;max-width:100%;scroll-padding-inline:12px}
  #tab-gates .sidenav button{flex:0 0 200px;min-width:0}
}
@media(max-width:600px){
  .tab-panel>h1{font-size:26px;padding:24px 20px}
  .tab-panel>h1+p{padding:16px 20px}
  .tab-panel>.subtabs{padding:8px}
  #tab-roadmap>section{padding:20px}
  #tab-gates .q{padding:16px}
  .step{padding:16px}
}
@media print{
  #app{display:block;min-height:0}body{background:#fff;color:#262420}
  main{max-width:none;padding:0}
  .card,.report{box-shadow:none;padding:0}
  .stat{background:#fff;color:#172635;border:1px solid #758391}
  .stat .num,.stat .lbl{color:#262420}.stat::before,.stat::after,.gatecard::after{display:none}
  .card,.gatecard,header.app{background:#fff}
  th,tbody tr:nth-child(even),tbody tr:hover{background:#fff}
  table{font-size:11pt}th,td{padding:8px}thead{display:table-header-group}
  h1,h2,h3,h4{break-after:avoid}.letterhead{break-inside:avoid}
  .tab-panel>h1{background:#fff;color:#262420;border:0;padding:0}
  .tab-panel>h1::after{display:none}
  .tab-panel>h1+p{border:0;padding:0}
  .report th{background:#fff}
}

/* Print fixes found when the restyle was checked in the app (October 11, 2026). Tables fit the printed page instead of
   keeping their on-screen minimum width, each Roadmap step's state prints as dark text (backgrounds don't print by default),
   and Roadmap cards print on white instead of their gradient. */
@media print{
  .tablewrap{overflow:visible}
  .tablewrap table,#tab-tasks .tablewrap table,#tab-vr .tablewrap table,#tab-analysis .tablewrap table,#tab-reports .tablewrap table{min-width:0}
  #tab-tasks td:nth-child(n){min-width:0}
  .rm-state label.sel{border:0;padding:0;min-height:0;background:none;color:inherit;box-shadow:none}
  #tab-roadmap>.card,#tab-roadmap>section,#tab-roadmap section[aria-labelledby],#tab-roadmap .step{background:#fff}
}

/* Guided tour (PRD section 7.15): the step card never covers what it points at (GT-164). The engine places it beside
   the target on a wide window (data-place right or left), or in a band at the bottom with the target scrolled into the
   room above. It docks at the bottom of a phone screen (or the top, if the person chooses), and while an app dialog is
   open it is shown as its own window over the dialog (GT-170). The highlight is an outline; after Do it for me it pulses, and under reduced motion it stays still. */
.tour-card{position:fixed;left:16px;right:16px;bottom:16px;margin:0 auto;max-width:760px;z-index:60;max-height:45vh;overflow:auto;background:var(--cream);border:2px solid var(--prussian);padding:14px 18px;box-shadow:0 6px 24px rgba(38,36,32,.25)}
.tour-card[data-place="right"]{left:auto;right:16px;top:16px;bottom:auto;width:380px;max-width:none;margin:0;max-height:calc(100vh - 32px)}
.tour-card[data-place="left"]{left:16px;right:auto;top:16px;bottom:auto;width:380px;max-width:none;margin:0;max-height:calc(100vh - 32px)}
.tour-card[data-place="min"]{left:auto;right:16px;bottom:16px;width:auto;max-width:none;margin:0}
.tour-card[data-place="top"]{top:16px;bottom:auto}
/* Moved by the person (GT-170): where they put it; the engine keeps it inside the window */
.tour-card[data-place="free"]{right:auto;bottom:auto;width:380px;max-width:calc(100vw - 32px);margin:0;max-height:60vh}
.tour-handle{cursor:move;touch-action:none}
.tour-move-help{margin:6px 0 0}
/* The card as its own window while an app dialog is open (GT-170): a manual popover in the top layer, above the dialog.
   The browser's own popover placement is undone so the card is placed like the card on the page. */
.tour-card[popover]{inset:auto;top:auto;width:auto;height:auto;color:inherit;margin:0 auto}
.tour-card[popover][data-place="band"]{left:16px;right:16px;bottom:16px}
.tour-card[popover][data-place="right"],.tour-card[popover][data-place="left"]{margin:0;bottom:auto;width:380px;max-width:none}
.tour-card[popover][data-place="right"]{right:16px;left:auto}
.tour-card[popover][data-place="left"]{left:16px;right:auto}
.tour-card[popover][data-place="top"]{left:16px;right:16px;top:16px}
.tour-card[popover][data-place="free"]{margin:0;width:380px}
.tour-card[popover][data-place="min"]{right:16px;bottom:16px;left:auto;margin:0}
/* On a window too narrow for the dialog and the card side by side, the dialog moves left to make room */
dialog.tour-room[open]{margin-left:16px;margin-right:auto}
.tour-card:empty{display:none}
/* A browser without popovers: the card stays inside the dialog's content */
dialog .tour-card:not([popover]){position:static;width:auto;max-width:none;max-height:none;margin:0 20px 18px;box-shadow:none}
.tour-card h2{font-size:20px;margin:6px 0 8px}
.tour-card h3{font-size:16px;margin:0 0 4px}
.tour-card h2:focus{outline:3px solid var(--prussian);outline-offset:2px}
.tour-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.tour-where{flex:1 1 180px;min-width:0;font-size:15px;color:var(--prussian);font-weight:500}
.tour-btns{display:flex;flex-wrap:nowrap;gap:8px;margin-left:auto}
.tour-sandbox{margin:10px 0 0}
.tour-terms{margin:6px 0 0}
.tour-terms dt{font-weight:700;color:var(--charcoal);margin-top:6px}
.tour-terms dd{margin:0}
/* Why it matters and To clear it under an amber evidence warning: two short lines in the notice's own colors */
.ev-why,.ev-fix{margin:4px 0 0}
.tour-done{border-left:4px solid var(--ok);background:var(--okbg);padding:8px 12px;margin:10px 0}
.tour-done h3{margin-top:4px}
.tour-tick{vertical-align:middle;font-size:15px}
.tour-try{background:var(--pale);border:1px solid var(--rule);padding:10px 12px;margin:10px 0}
.tour-nav{margin-top:10px}
.tour-ch{margin-top:10px;display:block}
.tour-ch select{min-height:44px;width:100%}
.tour-card.tour-is-min{padding:8px 12px}
.tour-min{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tour-hl{outline:3px solid var(--oxide)!important;outline-offset:4px}
.tour-pulse{outline:5px solid var(--oxide)!important;outline-offset:4px;animation:tour-pulse .9s ease-out 2}
@keyframes tour-pulse{0%{box-shadow:0 0 0 0 rgba(169,69,58,.55)}100%{box-shadow:0 0 0 14px rgba(169,69,58,0)}}
.tour-welcome h2{margin-top:0}
/* A wide band at the bottom: the text beside Try it and the controls, so the band stays short */
@media screen and (min-width:1000px){
  .tour-card:not([data-place]),.tour-card[data-place="band"]{max-width:1120px;max-height:36vh}
  .tour-card:not([data-place]) .tour-body,.tour-card[data-place="band"] .tour-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 20px;align-items:start}
}
@media screen and (max-width:600px){
  .tour-card,.tour-card[data-place]{left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;margin:0;max-height:45vh;border-width:2px 0 0}
  .tour-card[data-place="top"]{top:0;bottom:auto;border-width:0 0 2px}
  .tour-card[popover][data-place]{left:0;right:0;bottom:0;top:auto;margin:0}
  .tour-card[popover][data-place="top"]{top:0;bottom:auto}
  .tour-handle{cursor:auto}
  dialog .tour-card:not([popover]){position:static;margin:0 0 12px;border-width:2px}
}

/* Controls found under 44 px when the restyle was checked in the app (October 11, 2026): phone inputs get the same
   treatment as the other text inputs, disclosure toggles get a 44 px minimum, and tick-box labels in Setup and dialogs
   are 44 px high (the label:has() rule above can't size an inline label). */
input[type=tel]{min-height:44px;border:1px solid var(--control-line);background:#fff;color:var(--charcoal);padding:10px 12px;max-width:100%;border-radius:0}
summary{min-height:44px;align-content:center}
.envrow label,.dbody label.small:has(>input[type=checkbox]){display:inline-flex;align-items:center;gap:6px;min-height:44px}

/* Fixed Charcoal structure (October 11, 2026). The sidebar, the four Overview stat tiles, and the strips across the top of
   cards are Charcoal with Cream text in every workspace; tenant colors don't change them. The page banner, buttons, links,
   and Roadmap highlights keep following --brand, and the selected tab and left-edge marks keep following --accent. */
@media screen{
  nav.tabs{background:var(--charcoal)}
  nav.tabs button{color:var(--cream)}
  nav.tabs button:hover{background:color-mix(in srgb,var(--cream) 12%,transparent);color:var(--cream)}
  nav.tabs :focus-visible{outline-color:var(--cream)}
  nav.tabs::after{border-color:var(--cream)}
  #tab-overview .stat{background:var(--charcoal);color:var(--cream)}
  #tab-overview .stat::before,#tab-overview .stat::after,#tab-vr .stat::before,#tab-vr .stat::after{border-color:var(--cream)}
  #tab-overview .stat:nth-child(3)::before,#tab-vr .stat:nth-child(3)::before{box-shadow:0 0 0 18px color-mix(in srgb,var(--cream) 18%,transparent),0 0 0 36px color-mix(in srgb,var(--cream) 10%,transparent)}
  #tab-overview .stat:nth-child(4)::before,#tab-vr .stat:nth-child(4)::before{background:var(--cream)}
  #tab-overview .stat .num,#tab-overview .stat .lbl,#tab-vr .stat .num,#tab-vr .stat .lbl{color:var(--cream)}
  #tab-tasks>.card:has(>h3),#tab-vendors>.card:has(table),#tab-setup .card,#tab-gates .layout>div>.card:first-of-type,#tab-vr>.card,#tab-reports>.card:not(.report),#rpt-analysis>.card,#tab-about .card{border-top-color:var(--charcoal)}
}

/* Flat accent (October 11, 2026). The selected sidebar tab and primary buttons are flat var(--accent) with var(--accent-ink)
   text and one solid 2 px border in the same color: no darkening gradient and no inner ring. Keyboard focus keeps its outline. */
.btn.primary,.btn.primary:hover{background:var(--accent);color:var(--accent-ink);border:2px solid var(--accent);box-shadow:none;filter:none}
nav.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);border:2px solid var(--accent);box-shadow:none}

/* The six brand colors by role (October 11, 2026). Flat colors only: no gray-blue or darkening gradients.
   Fixed in every workspace: Charcoal (sidebar, Overview stat tiles, card top strips, dialog headers; set above), Pale Blue
   (secondary panels, Vendor inquiries panels, table headers, tinted cards, section strips, card borders), Cream (page,
   reading surfaces, secondary buttons), and Body neutral (body and supporting text, the cost savings tiles).
   Tenant-controlled: var(--brand) for page banners, links, selected choices, and secondary button text and border;
   var(--accent) only on the selected sidebar tab, primary buttons, and small marks. Screen only; print is unchanged. */
@media screen{
  :root{--surface:var(--cream);--rule:var(--pale);--muted-ink:var(--body)}
  body{background:var(--cream);color:var(--body)}
  /* Pale Blue strips and panels */
  .pilot-banner{background:var(--pale);color:var(--charcoal)}
  header.app{background:var(--cream);border-bottom:1px solid var(--pale)}
  .tab-panel>h1+p,.tab-panel>.subtabs{background:var(--pale);border-color:var(--pale)}
  .card.tint,.scalekey,.scalepanel,.helppanel,pre.email,pre.payload{background:var(--pale)}
  #tab-vendors>.card,#tab-vendors>.card:has(.btn.primary){background:var(--pale)}
  th{background:var(--pale);color:var(--charcoal);border-bottom:2px solid var(--body)}
  .bar{background:var(--pale)}
  /* Cream reading surfaces, flat */
  .card,.gatecard,.report,.tablewrap,.step,.step[open],.thread-item,#tab-gates .sidenav,#tab-gates .sidenav button,#tab-gates .q,
  #tab-tasks>.card:has(.row),#tab-roadmap>.card,#tab-roadmap>section,#tab-roadmap section[aria-labelledby],.rpt-export{background:var(--cream)}
  tbody tr:nth-child(even){background:transparent}
  tbody tr:hover,.gatecard:hover{background:var(--pale)}
  /* var(--brand): banners, links, selected choices, secondary buttons */
  .tab-panel>h1{background:var(--brand);color:var(--brand-ink)}
  a,.linkbtn,.helpbtn{color:var(--brand)}
  .btn,header.app .btn,.subtabs button{background:var(--cream);color:var(--brand);border:1px solid var(--brand);box-shadow:none}
  .btn:hover,header.app .btn:hover,.subtabs button:hover{background:var(--pale);color:var(--brand)}
  .subtabs button.on,#tab-gates .sidenav button.on,.capstate label.sel,.scale label.sel,.rm-state label.sel{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
  /* Body neutral: the cost savings tiles */
  #tab-vr .stat{background:var(--body);color:var(--cream)}
  #tab-vr .stat .num,#tab-vr .stat .lbl{color:var(--cream)}
}

/* Card contrast (October 11, 2026). Cards read as cards: a quiet Pale Blue tint for the page ground, solid Cream content
   cards with a Prussian-tint border and a soft shadow, a lighter Pale Blue tint for cards and lists nested inside cards,
   and visible surfaces for the footer and pilot banner. Brand colors only, as flat tints; no gradients and no white fills.
   Tenant colors still come from --brand and --accent. Screen only; print is unchanged. */
@media screen{
  :root{
    --ground:color-mix(in srgb,var(--pale) 45%,var(--cream));
    --nest:color-mix(in srgb,var(--pale) 35%,var(--cream));
    --zebra:color-mix(in srgb,var(--pale) 20%,var(--cream));
    --edge:color-mix(in srgb,var(--prussian) 20%,transparent);
    --edge-soft:color-mix(in srgb,var(--prussian) 12%,transparent);
    --shadow-card:0 1px 2px rgba(38,36,32,.10),0 6px 16px rgba(44,79,107,.12);
    --shadow-raised:0 2px 4px rgba(38,36,32,.12),0 10px 24px rgba(44,79,107,.16)}
  /* Page ground */
  body,#gate{background:var(--ground)}
  /* Content cards: Cream, Prussian-tint border, shadow; Charcoal top strips stay where they are */
  .card,.report,#gate .panel,#tab-gates .sidenav,#tab-roadmap>.card,#tab-roadmap>section,#tab-roadmap section[aria-labelledby],#tab-tasks>.card:has(.row){background:var(--cream);border:1px solid var(--edge);box-shadow:var(--shadow-card)}
  #tab-vendors>.card{border:1px solid var(--edge);box-shadow:var(--shadow-card)}
  /* Cards nested in cards: lighter Pale Blue tint, softer border, no shadow (existing left marks keep their colors) */
  .card .card,.report .stat,.gatecard,.step,.thread-item,.rpt-export,#tab-gates .q,#tab-gates .sidenav button{background:var(--nest);border-color:var(--edge-soft);box-shadow:none}
  .report .stat{border-top-color:var(--brand)}
  .thread-item{border-left-color:var(--brand)}
  /* List groups: the same tint with a 3 px Prussian rule */
  .step{border-left:3px solid var(--prussian)}
  :is(.card,.report) :is(ul,ol):not(li *):not(.rm-steps){background:var(--nest);border:1px solid var(--edge-soft);border-left:3px solid var(--prussian);padding-block:8px;padding-inline-end:12px}
  .nav-checklist,.rm-done-list{padding-inline-start:12px}
  /* Labels and small caps in Body neutral */
  label.fld,.eyebrow,.gatecard .gid{color:var(--body)}
  /* Tables: Pale Blue header, Prussian-tint lines, light zebra rows */
  th{border-bottom:1px solid color-mix(in srgb,var(--prussian) 25%,transparent)}
  td{border-bottom:1px solid color-mix(in srgb,var(--prussian) 10%,transparent)}
  tbody tr:nth-child(even){background:var(--zebra)}
  /* Footer and pilot banner get a surface */
  .pilot-banner{background:var(--pale);color:var(--prussian);border-bottom:1px solid var(--edge)}
  .footer-credit{background:var(--pale);color:var(--prussian);border-top:1px solid var(--edge)}
  /* Dialogs: Cream on a Charcoal-tint backdrop, with the card shadow */
  dialog{background:var(--cream);border:1px solid var(--edge);box-shadow:var(--shadow-card)}
  dialog::backdrop{background:rgba(38,36,32,.45)}
  dialog .dfoot{background:var(--cream)}
  /* Hover and selected raise the shadow one step; text colors don't change */
  .gatecard:hover{background:var(--nest);border-top-color:var(--edge-soft);border-right-color:var(--edge-soft);border-bottom-color:var(--edge-soft);box-shadow:var(--shadow-card)}
  #tab-gates .sidenav button.on{box-shadow:var(--shadow-card)}
}

/* Attach evidence: the screenshot paste box (GT-179) */
.ev-paste{border:2px dashed var(--prussian);border-radius:6px;padding:12px 14px;margin:0 0 12px}
.ev-paste:focus,.ev-paste:focus-within{outline:3px solid var(--prussian);outline-offset:2px}
.ev-paste-label{font-weight:700;margin:0 0 4px}
.ev-thumb{display:block;max-width:240px;max-height:150px;margin:6px 0;border:1px solid var(--rule)}
/* Suggested rating cards (GT-179, section 6a): the same border as .card, one card per suggestion */
.sug-card{border:1px solid var(--rule);padding:14px 16px;margin:12px 0}
.sug-card .row{margin-top:10px}
/* Tasks tab: keep words whole and the row's buttons in view now that the table has a Step column */
#tab-tasks td,#tab-tasks th{overflow-wrap:normal;word-break:normal;hyphens:none;padding-left:6px;padding-right:6px}


#tab-tasks td.task-due-cell .pill{display:block;width:max-content;margin:4px 0 0}
@media (min-width:1200px){#tab-tasks .tablewrap table{table-layout:fixed;width:100%}
  #tab-tasks .tablewrap th:nth-child(1){width:23%}#tab-tasks .tablewrap th:nth-child(2){width:20%}#tab-tasks .tablewrap th:nth-child(3){width:17%}#tab-tasks .tablewrap th:nth-child(4){width:13%}#tab-tasks .tablewrap th:nth-child(5){width:10%}#tab-tasks .tablewrap th:nth-child(6){width:7%}#tab-tasks .tablewrap th:nth-child(7){width:10%}
  #tab-tasks .tablewrap td{overflow-wrap:break-word}#tab-tasks .tablewrap td select{width:100%}}#tab-tasks td.task-acts{min-width:96px}#tab-tasks td.task-acts .btn{display:block;width:100%;margin:0 0 6px}#tab-tasks td select{min-width:0;width:132px;padding-left:8px;padding-right:4px}
/* Setup gate, goals and the optional Setup lists (step model Stage 2) */
.goal-target{display:block;margin:2px 0}
.goal details{margin:6px 0}
.goal h4{margin:10px 0 4px}
.rm-goals{margin:6px 0 10px;padding-left:20px}
.setup-gate .nav-checklist{margin-top:8px}

/* Closing and tracked lines (step model Stage 3) */
.closed-rows,.tracked-lines{list-style:none;margin:8px 0;padding:0}
.closed-rows li,.tracked-lines li{margin:6px 0}
#setup-elements td select{padding-left:8px;padding-right:4px}
.about-credit{display:block;margin-top:12px;width:160px;max-width:100%;height:auto}

/* GateTracker layout proposal A, October 12, 2026.
   App source: 40acbe4. This screen-only layer follows the complete source CSS.
   The original print rules above remain unchanged. */
@media screen {
  :root {
    --ground:color-mix(in srgb,var(--pale) 42%,var(--cream));
    --nest:color-mix(in srgb,var(--pale) 28%,var(--cream));
    --zebra:color-mix(in srgb,var(--pale) 16%,var(--cream));
    --edge:color-mix(in srgb,var(--brand) 24%,transparent);
    --edge-soft:color-mix(in srgb,var(--brand) 14%,transparent);
    --rule:color-mix(in srgb,var(--brand) 20%,var(--cream));
    --control-line:var(--body);
    --muted-ink:var(--body);
    --shadow-card:0 2px 4px rgb(38 36 32 / .06);
    --shadow-raised:0 4px 12px rgb(38 36 32 / .10);
  }
  body {background:var(--ground);color:var(--body);font-size:15px;line-height:1.6}
  h1,h2,h3,h4,.stat .num,.app-title .agency,dialog .dhead {font-family:"DM Sans",Arial,sans-serif;font-weight:700;letter-spacing:-.025em}
  h1{font-size:28px}h2{font-size:21px}h3{font-size:17px}h4{font-size:15px}
  a,.linkbtn,.helpbtn{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
  .muted,.small,.why,.eyebrow,.gatecard .meta{color:var(--body)}
  .eyebrow{text-transform:none;letter-spacing:.035em}
  .layout-icon{width:20px;height:20px;flex:0 0 20px;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .pilot-banner{padding:7px 24px;background:var(--pale);color:var(--body);font-size:15px;border:0}
  header.app{padding:16px 24px;gap:20px;background:var(--cream);border-top:3px solid var(--brand);border-bottom:1px solid var(--edge)}
  .logo-box.gta{width:116px;height:116px;padding:10px;background:transparent}
  .logo-box.gta img{width:96px;height:96px;background:#fff}
  .app-title{flex:1 1 280px;min-width:0}
  .app-title .agency{font-size:20px;max-width:46ch;line-height:1.3}
  .app-title .prod{font-size:15px;letter-spacing:.03em;margin-bottom:6px;color:var(--body)}
  .app-title .juris{font-size:15px;color:var(--body)}
  .hdr-actions{flex:0 1 366px;border:0;padding:0;gap:6px;justify-content:flex-end}
  .hdr-actions .who{flex:1 0 65%;margin:0;text-align:right;font-size:15px}
  .hdr-actions .savestate{min-width:40px;font-size:15px;color:var(--body)}
  .btn,header.app .btn,.subtabs button{background:var(--cream);color:var(--brand);border:1px solid var(--brand);box-shadow:inset 0 0 0 2px var(--cream),inset 0 0 0 3px color-mix(in srgb,var(--brand) 23%,var(--cream));border-radius:0;min-height:44px;padding:9px 14px;font-size:15px;line-height:1.4;font-weight:700}
  .btn.sm{min-height:44px;padding:8px 10px;font-size:15px}
  .btn.primary,.btn.primary:hover{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);box-shadow:inset 0 0 0 2px var(--accent),inset 0 0 0 3px color-mix(in srgb,var(--accent-ink) 55%,var(--accent));filter:none}
  .btn:hover,header.app .btn:hover{background:var(--pale);color:var(--brand)}
  .btn:disabled{opacity:1;color:var(--body);background:var(--nest);border-color:var(--edge);box-shadow:none;cursor:not-allowed}
  nav.tabs{background:var(--charcoal);padding:20px 12px;gap:6px}
  nav.tabs button{display:flex;align-items:center;gap:10px;min-height:48px;padding:11px 12px;font-size:15px;line-height:1.4;color:var(--cream);border:1px solid transparent;box-shadow:none;white-space:normal}
  nav.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);box-shadow:inset 3px 0 0 var(--accent-ink)}
  nav.tabs::after,.stat::before,.stat::after,.gatecard::after,.tab-panel>h1::after{display:none}
  main{max-width:1640px;padding:24px 28px 56px;background:var(--ground);width:100%;min-width:0}
  .footer-credit{background:var(--pale);color:var(--body);padding:18px 24px;text-align:left}
  .nav-back{gap:8px;margin-bottom:16px}
  .nav-back .btn{box-shadow:none;border-color:var(--edge);background:var(--cream)}
  .tab-panel>h1{padding:18px 22px;min-height:70px;margin:0;background:var(--brand);color:var(--brand-ink);border-left:4px solid var(--accent);display:flex;align-items:center;gap:12px}
  .tab-panel>h1 .layout-icon{width:26px;height:26px;flex-basis:26px}
  .tab-panel>h1+p{padding:14px 22px;margin:0 0 20px;background:var(--pale);border:0;font-size:15px;line-height:1.6}
  .card,.report,#tab-roadmap>.card,#tab-roadmap>section,#tab-roadmap section[aria-labelledby],#tab-tasks>.card:has(.row),#tab-gates .sidenav{background:var(--cream);border:1px solid var(--edge);border-top:3px solid var(--charcoal);padding:20px;margin:0 0 20px;box-shadow:var(--shadow-card);min-width:0}
  .card>h2,.card>h3,.card>.row>h2,.card>.row>h3{padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--edge-soft)}
  .card.tint{background:var(--pale)}
  .grid{gap:16px;min-width:0}
  .grid>*{min-width:0}
  .g2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stat,#tab-overview .stat{background:var(--charcoal);color:var(--cream);padding:20px;min-height:118px;border:0}
  .stat .num,#tab-overview .stat .num{font-size:34px;color:var(--cream);letter-spacing:-.04em;line-height:1.15}
  .stat .lbl,#tab-overview .stat .lbl{color:var(--cream);font-size:15px;line-height:1.45;margin-top:10px}
  #tab-overview{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:20px;align-items:start}
  #tab-overview>*{margin:0!important;min-width:0;order:0!important}
  #tab-overview>.grid,#tab-overview>.notice,#tab-overview>.tint,.layout-gates,.layout-history{grid-column:1/-1}
  #tab-overview .nav-next{background:var(--pale);border-top:3px solid var(--brand);align-self:stretch}
  .nav-next ol{background:transparent!important;border:0!important;padding:0!important;list-style-position:inside;margin:0 0 16px}
  .layout-overview-work,.layout-overview-support{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:20px;align-items:start}
  .layout-overview-work .card,.layout-overview-support .card{margin:0}
  .layout-work-priority{display:grid;gap:20px;min-width:0}
  .layout-overview-work>.nav-setup,.layout-overview-support>.layout-critical,.layout-overview-support>.layout-notices{grid-column:auto}
  .layout-overview-work .nav-next{align-self:start}
  .nav-next li{border-bottom:1px solid var(--edge);padding:3px 0;font-size:15px;font-weight:500}
  .nav-next .linkbtn{text-align:left;max-width:calc(100% - 24px);vertical-align:middle}
  .nav-next>.btn{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand),inset 0 0 0 3px color-mix(in srgb,var(--brand-ink) 40%,var(--brand))}
  .nav-checklist{columns:auto;margin:0 0 14px;background:transparent!important;border:0!important;padding:0!important}
  .nav-checklist li{padding:0;border-bottom:1px solid var(--edge-soft);display:flex;align-items:center;gap:6px}
  .nav-checklist .linkbtn{text-align:left;font-size:15px}
  .nav-tick{width:16px;flex:0 0 16px}
  .layout-alerts .notice{margin:8px 0}
  .layout-notices p{padding-bottom:10px;border-bottom:1px solid var(--edge-soft)}
  .layout-gates .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .gatecard{padding:16px;background:var(--nest);border:1px solid var(--edge-soft);border-left:3px solid var(--body);min-height:162px;box-shadow:none}
  .gatecard:hover{background:var(--pale);box-shadow:var(--shadow-card)}
  .gatecard .gid{font-size:15px;color:var(--body);letter-spacing:0}
  .gatecard .gt{font-size:16px;line-height:1.35;margin:6px 0 10px}
  .gatecard .meta{font-size:15px;line-height:1.5}
  .pill{font-size:15px;line-height:1.45;padding:3px 7px;white-space:normal}
  .pill.info,.tag,.local-label{color:var(--brand)}
  .st-ready{border-left-color:var(--brand)!important}
  .layout-history .chart{max-width:100%}
  .layout-history .chart svg{max-height:200px}
  .chart svg path{stroke:var(--brand)}.chart svg circle{fill:var(--brand)}.chart svg text{fill:var(--body)}
  .layout-critical ol{margin-bottom:0;padding-left:24px!important;background:transparent!important;border:0!important}
  .layout-critical li+li{margin-top:10px}
  .notice{font-size:15px;line-height:1.55;padding:10px 12px;border-left-width:3px}
  .tablewrap{background:var(--cream);border:1px solid var(--edge-soft);max-width:100%;overflow:auto}
  .tablewrap table{min-width:640px}
  table{font-size:15px;line-height:1.5}
  th,td{padding:12px 10px}
  th{background:var(--pale);color:var(--charcoal);font-size:15px;border-bottom:1px solid var(--edge)}
  td{border-bottom:1px solid var(--edge-soft);overflow-wrap:anywhere}
  tbody tr:nth-child(even){background:var(--zebra)}tbody tr:hover{background:var(--nest)}
  td .btn,td .linkbtn{min-height:32px;min-width:32px;padding:6px 9px;font-size:15px;white-space:normal}
  td select{min-width:120px;min-height:44px}
  td.row{display:table-cell;white-space:nowrap}
  td.row>.btn+.btn{margin-left:6px}
  #tab-tasks .tablewrap table{min-width:850px}
  
  
  
  #tab-tasks td:last-child{min-width:112px}
  #tab-tasks>.card:has(>h3){padding:16px 18px}
  #tab-tasks>.card:has(>h3)>h3{border:0;padding:0;margin-bottom:12px;font-size:16px}
  #tab-vendors>.card,#tab-vendors>.card:has(.btn.primary){background:var(--pale)}
  #tab-vendors>.card:has(.btn.primary):not(:has(table)){padding:14px 20px;margin-bottom:12px}
  #tab-vendors table{background:var(--cream)}
  .row{gap:10px;min-width:0}.row>*{max-width:100%}
  .fld{color:var(--body)}
  input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{background:var(--cream);color:var(--charcoal);border:1px solid var(--body);min-height:44px;max-width:100%;padding:10px 12px;border-radius:0}
  input[type=file]{min-height:44px;max-width:100%}
  input::file-selector-button{min-height:44px;background:var(--cream);color:var(--brand);border:1px solid var(--brand);padding:8px 12px;margin-right:8px;font:inherit}
  input[type=radio],input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand);flex:0 0 20px}
  label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:inline-flex;gap:8px;align-items:center;min-height:44px}
  label.fld:has(input[type=checkbox]),label.fld:has(input[type=radio]){min-height:44px;align-content:center}
  td>input[type=checkbox],td>input[type=radio]{width:24px;height:24px;min-width:24px;min-height:24px;vertical-align:middle}
  textarea{min-height:96px}
  label.fld{font-size:15px;font-weight:500;margin-bottom:14px}
  label.fld input,label.fld select,label.fld textarea{margin-top:6px}
  .tab-panel>.subtabs{padding:12px;background:var(--pale);border:0;margin:0 0 14px;gap:8px}
  .subtabs button{font-size:15px;padding:10px 12px}
  .subtabs button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:inset 0 -3px 0 var(--brand-ink)}
  .subtab-desc{margin:0 0 20px;max-width:90ch;font-size:15px}
  .rm-where{display:grid;grid-template-columns:1fr auto;gap:0 20px}
  .rm-where>h2,.rm-where>p,.rm-where>.rm-bar{grid-column:1}
  .rm-where>.row{grid-column:2;grid-row:1/4;align-self:center;margin:0!important}
  .rm-where>h2{border:0;padding:0;margin-bottom:8px}
  .rm-bar{min-height:36px;margin-top:4px}
  .rm-seg{min-height:36px;font-size:15px;padding:6px 10px}
  #tab-roadmap section[aria-labelledby]{padding:20px;margin:0 0 20px;border-top:3px solid var(--charcoal)}
  #tab-roadmap section[aria-labelledby]>h2{border:0;padding:0;margin-bottom:4px}
  #tab-roadmap section[aria-labelledby="rm-next"]{border-top-color:var(--brand)}
  .rm-area{font-size:15px;margin:16px 0 8px;color:var(--charcoal)}
  .rm-steps{display:grid;gap:8px}
  .rm-steps>li{min-width:0}
  .step,.step.card{margin:0!important;padding:12px 14px;background:var(--nest);border:1px solid var(--edge-soft);border-left:3px solid var(--brand);box-shadow:none}
  .step[open]{background:var(--cream);border-left-color:var(--accent)}
  .step summary{font-size:15px;line-height:1.55;min-height:44px;cursor:pointer}
  .rm-title{min-width:0}
  .rm-unlocks{font-size:15px;margin-top:3px;color:var(--body)}
  .rm-state{margin:10px 0 0;gap:6px}
  .rm-state label,.capstate label,.scale label{min-height:44px;background:#fff;border:1px solid var(--body);color:var(--charcoal);padding:8px 10px;font-size:15px}
  .rm-state label.sel,.capstate label.sel,.scale label.sel{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:inset 0 -3px 0 var(--brand-ink)}
  .rm-group{margin-bottom:12px}.rm-indent{margin-left:14px}.rm-wait{font-size:15px;margin:8px 0}
  .rm-key{margin:0 0 20px;font-size:15px}.rm-key .pill{vertical-align:middle}
  .rm-done summary{justify-content:flex-start;align-items:center;gap:8px;list-style:disclosure-closed}
  .rm-done summary::before{content:"+";font-size:22px;font-weight:400;color:var(--brand);margin-right:4px}
  .rm-done[open] summary::before{content:"−"}
  .rm-done summary h2{font-size:18px}
  .stepbody{border-top:1px solid var(--edge);padding-top:14px;margin-top:12px}
  .stepbody h4{margin:14px 0 8px}
  .layout{grid-template-columns:196px minmax(0,1fr);gap:20px}
  #tab-gates .layout{grid-template-columns:196px minmax(0,1fr)}
  #tab-gates .sidenav{display:flex;flex-direction:column;align-self:start;gap:4px;padding:8px;overflow:visible;position:sticky;top:16px}
  #tab-gates .sidenav button{flex:initial;background:var(--cream);padding:10px;font-size:15px;line-height:1.5;min-height:60px;border:1px solid var(--edge-soft);border-left-width:3px}
  #tab-gates .sidenav button.on{background:var(--brand);color:var(--brand-ink);box-shadow:none}
  #tab-gates .sidenav button.on .small{color:var(--brand-ink)}
  .nav-gatebar{padding:0;margin-bottom:16px}.nav-step{width:100%;justify-content:space-between;gap:8px}
  .nav-pos{font-size:15px}
  #tab-gates .q{padding:16px;background:var(--nest);border:1px solid var(--edge-soft);margin:16px 0}
  #tab-gates .layout>div>.card:first-of-type{border-top-color:var(--charcoal)}
  .qtext{font-size:15px;font-weight:700}
  .critical{color:var(--bad);text-transform:none;letter-spacing:0}
  .p2tag{color:var(--brand);text-transform:none;letter-spacing:0}
  .scalekey{padding:12px;background:var(--pale);gap:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .scalebtn{min-height:44px;justify-content:flex-start;font-size:15px;padding:8px 10px;box-shadow:none}
  .scalebtn.svna{background:var(--cream)}
  .scalepanel,.helppanel{background:var(--pale);border-left:3px solid var(--brand);padding:12px 14px}
  .helpbtn,.linkbtn{min-height:44px;min-width:24px;padding:8px 0;text-align:left;font-size:inherit}
  .helpbtn{font-size:15px}
  .gloss{display:inline;min-height:24px;padding:2px 0;font-size:inherit}
  .scale{gap:6px}
  .caprow{padding:16px 0;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .capstate{max-width:510px;gap:6px}
  .envrow{padding:8px 0}
  .envrow label{font-size:15px}
  .thread-item{background:var(--nest);border:1px solid var(--edge);border-left:3px solid var(--brand)}
  .thread-item.followup{border-left-color:var(--accent)}
  .thread-item.eval{border-left-color:var(--warn)}
  pre.email,pre.payload{background:var(--pale);white-space:pre-wrap;overflow-wrap:anywhere}
  .layout-report-tools{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;margin-top:20px}
  .layout-report-tools>.card{margin-bottom:20px}
  #rpt-analysis{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
  #rpt-analysis>.card:first-child .g4{grid-template-columns:1fr;gap:0}
  #rpt-analysis>.card:first-child label{font-size:15px}
  #rpt-analysis>.card:first-child .row{display:grid}
  #rpt-analysis>.card:first-child .row .btn{width:100%}
  .report{padding:28px;background:var(--cream)}
  .report h1,.letterhead .lh-auth{font-family:Lora,Georgia,serif}
  .report .stat{background:var(--nest);border:1px solid var(--edge);color:var(--charcoal)}
  .report .stat .num,.report .stat .lbl{color:var(--charcoal)}
  .report .rhead{border-bottom:2px solid var(--brand)}
  .report .rhead img{background:#fff;flex-shrink:0}
  .rpt-export{padding:14px;background:var(--nest);border:1px solid var(--edge-soft)}
  .rpt-export select{width:auto;min-width:200px;margin:0;flex:1}
  .rpt-export p{margin:12px 0 0}
  #tab-about{max-width:1150px}
  #tab-about>.card:first-of-type{border-top:0;margin-top:0}
  #tab-about .card p{max-width:90ch}
  #usersPanel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px}
  #usersPanel>.card:nth-child(n+3){grid-column:1/-1}
  #usersPanel>.card{margin:0}
  #gate{background:var(--ground);padding:64px 24px;align-items:flex-start}
  #gate .panel{background:var(--cream);padding:32px;max-width:540px;border:1px solid var(--edge);border-top:4px solid var(--brand);box-shadow:var(--shadow-raised)}
  #gate .brandline{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--edge);gap:24px}
  #gate .brandline img{background:#fff}
  #gate .brandline>div>div:last-child{font-family:"DM Sans",Arial,sans-serif!important;font-weight:700!important}
  #gate h1{margin-bottom:20px;font-size:28px}
  #gate .stack{display:grid;gap:12px}
  #gate .stack>*{margin:0}
  #gate .stack .btn{width:100%;min-height:48px}
  #gate .err:empty{min-height:0}
  dialog{width:min(680px,calc(100vw - 32px));max-width:680px;background:var(--cream);border:1px solid var(--edge);box-shadow:var(--shadow-raised)}
  dialog .dhead{background:var(--charcoal);color:var(--cream);font-size:20px;padding:20px 24px}
  dialog .dbody{padding:24px;max-height:65vh;font-size:15px}
  dialog .dfoot{background:var(--cream);padding:16px 24px;border-top:1px solid var(--edge);gap:10px}
  dialog::backdrop{background:rgb(38 36 32 / .45)}
  :focus-visible{outline:3px solid var(--brand);outline-offset:3px;box-shadow:0 0 0 3px var(--cream)}
  nav.tabs :focus-visible{outline-color:var(--cream);box-shadow:0 0 0 3px var(--charcoal)}
  .scale label:has(:focus-visible),.capstate label:has(:focus-visible),.rm-state label:has(:focus-visible){outline:3px solid var(--brand);outline-offset:3px}
}
@media screen and (min-width:1000px){
  #app{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;background:var(--charcoal);min-height:100vh}
  nav.tabs{position:sticky;top:0;align-self:start;grid-row:3/6;min-height:470px}
  #tab-overview .stat{padding:20px}
}
@media screen and (min-width:1440px){
  #tab-roadmap .step>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
  #tab-roadmap .step>summary>.rm-state{margin:0}
  .layout-gates .grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media screen and (max-width:1100px){
  .hdr-actions{flex-basis:100%;border-top:1px solid var(--edge);padding-top:12px;justify-content:flex-start}
  .hdr-actions .who{flex:1;margin-right:auto;text-align:left}
  #tab-gates .layout{grid-template-columns:minmax(0,1fr)}
  #tab-gates .sidenav{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  #rpt-analysis{grid-template-columns:minmax(0,1fr)}
  #rpt-analysis>.card:first-child .g4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .caprow{grid-template-columns:1fr}
}
@media screen and (max-width:999px){
  nav.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;padding:10px;gap:6px}
  nav.tabs button{padding:10px;min-width:0;justify-content:flex-start}
  main{padding:20px}
  #tab-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rm-where{display:block}
  .rm-where>.row{margin-top:14px!important}
}
@media screen and (max-width:600px){
  body{font-size:15px}
  .pilot-banner{padding:10px 16px}
  header.app{padding:16px;gap:12px}
  .logo-box.gta{width:116px;height:116px}
  .app-title{flex:1 1 160px}.app-title .agency{font-size:17px}
  .hdr-actions{gap:6px}.hdr-actions .who{flex:1 1 80%;font-size:15px}
  .hdr-actions .btn{flex:1 1 auto}
  nav.tabs{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 12px}
  nav.tabs button{min-height:44px;font-size:15px}
  main{padding:20px 16px 40px}
  .tab-panel>h1{padding:16px;font-size:25px;min-height:64px}
  .tab-panel>h1+p{padding:14px 16px}
  .card,.report,#tab-roadmap>.card,#tab-roadmap section[aria-labelledby]{padding:16px}
  #tab-overview{display:flex;flex-direction:column;gap:16px}
  #tab-overview>*{width:100%}
  .layout-overview-work,.layout-overview-support{display:flex;flex-direction:column;gap:16px}
  .layout-overview-work>*,.layout-overview-support>*{width:100%}
  .layout-work-priority{gap:16px}
  #tab-overview>.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  #tab-overview .stat{padding:16px;min-height:132px}
  #tab-overview .stat .num{font-size:28px}
  .g2,.g3,.layout-gates .grid{grid-template-columns:minmax(0,1fr)}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layout-gates .gatecard{min-height:0}
  .rm-state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .rm-state label{font-size:15px;padding:7px;gap:5px}
  .rm-bar{flex-wrap:wrap}.rm-seg{min-width:45%}
  .rm-indent{margin-left:6px}.rm-steps{gap:8px}
  .step,.step.card{padding:12px}
  .rm-done-list{padding-left:0!important}.rm-done-item{display:block}
  .rm-done-item>.rm-state{margin-top:10px}
  #tab-gates .sidenav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav-step .btn{font-size:15px;padding:8px}
  .nav-pos{order:-1;flex-basis:100%}
  .scalekey{grid-template-columns:1fr}
  .layout-report-tools,#rpt-analysis,#usersPanel{display:block}
  #rpt-analysis>.card:first-child .g4{grid-template-columns:1fr}
  #usersPanel>.card{margin-bottom:16px}
  .report .rhead{align-items:flex-start;flex-wrap:wrap}
  #gate{padding:24px 16px}
  #gate .panel{padding:24px}
  #gate .brandline{gap:20px;flex-wrap:wrap}
  .kv{grid-template-columns:1fr;gap:4px}.kv dd{margin-bottom:10px}
  dialog .dhead,dialog .dbody,dialog .dfoot{padding:16px}
  .tablewrap{max-width:100%;overflow-x:auto}
  .subtabs{gap:6px}.subtabs button{flex:1 1 auto}
}
@media screen and (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
/* The owner suggestion: the words on their own line, with Use beneath as one unit */
.owner-suggest{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:4px;white-space:normal}
.owner-suggest-text{display:block}

/* Task rows: the name on top, then the fields. Below 1200 px Vendor and Evidence move to the task panel; on a phone each task stacks. */
.tablewrap table.task-table,#tab-tasks .tablewrap table.task-table{min-width:0;width:100%}
.task-table tr.task-name td{border-bottom:0;padding-bottom:2px;font-weight:500}
.task-table tr.task-fields td{vertical-align:top;padding-top:6px}
.task-table select,.task-table input[type=date]{width:100%;min-width:0}
input.task-due:focus{outline:3px solid var(--prussian);outline-offset:2px}
input.task-due:focus,input.task-due:focus-within,input.task-due:focus-visible,#tab-tasks input.task-due:focus-within{outline:3px solid var(--prussian)!important;outline-offset:2px}
.task-table td.task-acts{white-space:nowrap}
#tab-roadmap .task-table td.task-acts{text-align:right}
@media screen and (max-width:1199px){.task-table .task-sec{display:none}}
@media screen and (max-width:900px){
  .task-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .task-table,.task-table tbody,.task-table tr,.task-table td{display:block;width:auto;min-width:0}
  .tablewrap:has(>.task-table){overflow:visible;border:0;background:none}
  .task-table tr.task-name{border:1px solid var(--rule);border-bottom:0;margin-top:10px;padding:8px 10px 0}
  .task-table tr.task-fields{border:1px solid var(--rule);border-top:0;padding:0 10px 8px}
  .task-table td,.task-table tr.task-fields td{padding:4px 0;border:0;white-space:normal;overflow-wrap:anywhere}
  .task-table td:empty{display:none}
  .task-table td[data-label]::before{content:attr(data-label);display:block;font-size:15px;font-weight:700;color:var(--muted-ink)}
  .task-table td.task-sec{display:block}
  .task-table td.task-acts{display:flex;flex-wrap:wrap;gap:6px;min-width:0;text-align:left}
  .task-table td.task-acts .btn{display:inline-flex;width:auto;margin:0}
}

/* The Use panel, step titles, the readiness panel and the requirement block */
.use-panel{background:var(--pale);border:2px solid var(--prussian);padding:16px 20px;margin:0 0 20px;color:var(--charcoal)}
.use-lead{font-size:18px;font-weight:700;margin:0 0 6px;color:var(--charcoal);line-height:1.4}
.use-panel ol,.card .use-panel ol{margin:6px 0;padding:0 0 0 22px;background:none;border:0}.use-panel li{margin:2px 0}
.use-link{margin:8px 0 0}
.gates-caption{font-weight:500;color:var(--charcoal);margin:0 0 6px}
.step-title{display:inline;font-weight:700;color:var(--charcoal)}
.rm-done-item .step-title{display:block}
.rm-unlocks.step-label{margin:0 0 4px}
details[open]>summary>.rm-state{display:none}
.step-record{margin:4px 0 8px}
.learn-more{font-size:15px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);color:var(--muted-ink)}
.readiness-panel{margin-top:14px;padding:16px;border:1px solid var(--rule);background:var(--nest)}
.readiness-panel h3{margin:0 0 6px}
.next-line{font-size:16px;margin:0 0 8px;color:var(--charcoal)}
.to-dos{margin:6px 0 10px;padding-left:22px}
.signoff-row{margin-top:10px;gap:10px 18px}
.other-actions{margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.req-head h3{margin:0 0 6px}.req-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.req-block h4{margin:16px 0 6px}
.show-all summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.work-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;margin-top:10px}
.work-choice .btn{width:100%;justify-content:center}.work-choice p{margin:8px 0 0}
.layout-overview-work.work-full{grid-template-columns:minmax(0,1fr)}
.about-body p{font-weight:500;color:var(--charcoal)}.about-body p strong{font-weight:700;font-size:16px;display:block;margin-bottom:2px}
.about-publisher{display:flex;align-items:center;gap:20px;margin-bottom:20px;flex-wrap:wrap}.about-publisher p{margin:0;color:var(--charcoal);font-weight:500}.about-publisher img{height:auto}
.screen-purpose{font-weight:500;color:var(--charcoal);margin:0 0 4px;max-width:80ch}
.screen-purpose-2{color:var(--muted-ink);font-size:15px;margin:0 0 8px;max-width:80ch}
.rm-unlocks.step-label{font-size:15px;color:var(--muted-ink)}
.step-chip{cursor:pointer;font:inherit;font-size:15px;text-align:left;text-decoration:underline;min-height:44px}
#tab-gates .q.q-inblock{border:0;border-top:1px solid var(--rule);background:none;box-shadow:none;padding:14px 0 0;margin:14px 0 0}
.what-to-do{margin:10px 0 0}.what-to-do ul{margin:4px 0 0;padding-left:20px}.what-to-do p{margin:4px 0 0}
.btn-why{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}
.gatecard{cursor:default}
.gatecard-open{display:block;width:100%;background:none;border:0;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;min-height:44px}
.gate-cta{font-size:15px;font-weight:500;color:var(--prussian);margin-top:8px;text-decoration:underline}
.ov-tiles .linkbtn{font-size:inherit;min-height:44px;display:inline-flex;align-items:center}
.holding{padding-left:20px}.holding ul{margin:4px 0 8px;padding-left:18px}

/* The page frame: one black accent bar on each edge, a top bar, and no cards */
:root{--bar:max(16px,calc((100vw - 1640px)/2))}
@media screen{
  #app{display:grid;grid-template-columns:var(--bar) minmax(0,1fr) var(--bar);grid-template-rows:auto auto auto auto 1fr auto;background:var(--charcoal);min-height:100vh;align-items:start}
  .pilot-banner,header.app,.ro-note,nav.tabs{grid-column:1/-1}
  .pilot-banner{grid-row:1}header.app{grid-row:2}.ro-note{grid-row:3}
  nav.tabs{grid-row:4;display:block;position:relative;z-index:30;top:auto;min-height:0;padding:6px var(--bar);background:var(--charcoal);overflow:visible;align-self:start}
  main{grid-column:2;grid-row:5;max-width:none;width:100%;font-size:17px;align-self:stretch;min-height:100%}
  .footer-credit{grid-column:2;grid-row:6;background:var(--ground)}
  nav.tabs::after{display:none}
  nav.tabs .nav-toggle{display:none}
  .nav-items{display:flex;flex-wrap:wrap;gap:4px;align-items:stretch}
  .nav-item{position:relative}
  nav.tabs button{color:var(--brand-ink);background:none;border:1px solid transparent;font-size:16px;font-weight:600;min-height:44px;padding:8px 14px;white-space:nowrap;text-align:left;cursor:pointer}
  nav.tabs .has-menu>.nav-top::after{content:" ▾";font-size:15px}
  nav.tabs .nav-top[aria-current="page"]{background:var(--accent);color:var(--accent-ink)}
  nav.tabs .nav-menu{display:none;position:absolute;left:0;top:100%;min-width:260px;background:var(--charcoal);border:1px solid var(--brand-ink);padding:4px;z-index:40}
  nav.tabs .nav-item.open>.nav-menu{display:block}
  nav.tabs .nav-menu button{display:block;width:100%}
  nav.tabs .nav-menu button:hover,nav.tabs .nav-top:hover{background:color-mix(in srgb,var(--brand-ink) 14%,transparent)}
  .go-home{cursor:pointer}
  #tab-overview{display:block}
  #tab-overview>.grid.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
  .card,.card .card,#tab-tasks>.card:has(.row),#tab-roadmap>.card,#tab-roadmap>section,#tab-roadmap section[aria-labelledby],.step,.step[open],#tab-gates .q,.report .stat,.thread-item,.rpt-export,.nav-setup,.layout-gates{background:none;border:0;border-top:1px solid var(--rule);border-radius:0;box-shadow:none;padding:16px 0;margin:0 0 8px}
  .step{padding:12px 0}
  .stat{background:none;color:var(--charcoal);border:0;border-top:3px solid var(--charcoal);box-shadow:none;padding:12px 0}
  .stat .num{color:var(--charcoal)}.stat .lbl{color:var(--body)}.stat::before,.stat::after{display:none}
  .layout,#tab-gates .layout{display:block}
  .pillars-table td,.pillars-table th{vertical-align:middle}
  .rm-steps details>summary{list-style:none;position:relative;padding-left:24px}
  .rm-steps details>summary::-webkit-details-marker{display:none}
  .rm-steps details>summary::before{content:"\25B8";position:absolute;left:4px;top:12px}
  .rm-steps details[open]>summary::before{content:"\25BE"}
  #tab-gates .readiness-panel{background:none;border:0;border-top:1px solid var(--rule);padding:12px 0}
  .pillars-table .linkbtn{padding:0 8px;margin-left:-8px}
  main .card{background:none!important;border-left:0!important;border-right:0!important;border-bottom:0!important;box-shadow:none!important}
  #tab-rmgates .rm-gate{background:none;border:0;border-top:1px solid var(--rule);box-shadow:none;padding:12px 0;margin:0}
  #tab-rmgates .rm-gate>h3{background:none;color:var(--charcoal);padding:0;margin:0 0 6px}
  .rm-steps details>summary::before{font-size:20px;line-height:1}
  #rpt-analysis:not(:has(>.card+.card)){grid-template-columns:minmax(0,1fr)}
  #rpt-analysis:not(:has(>.card+.card))>.card:first-child .g4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  #rpt-analysis:not(:has(>.card+.card))>.card:first-child .row{display:flex}
  #rpt-analysis:not(:has(>.card+.card))>.card:first-child .row .btn{width:auto}
  #tab-overview>.card:has(>h2){padding:0;margin:0 0 28px!important}
  .gate-purpose{margin:0 0 4px}
  .gate-rule{margin:0 0 12px;color:var(--muted-ink)}
  #tab-tasks .part-line{display:flex;gap:4px;align-items:baseline}
  #tab-tasks .part-line .linkbtn{flex:0 1 auto;min-width:0;min-height:44px;padding:8px 0;white-space:normal;text-align:left}
  .stand-list{list-style:none;margin:0 0 28px;padding:0}
  .stand-list li{padding:8px 0;border-bottom:1px solid var(--rule)}
  .stand-list strong{display:inline-block;min-width:130px;font-size:22px;color:var(--charcoal)}
  #tab-overview .your-work.nav-next{background:none;border-top:0}
}
@media screen and (max-width:999px){
  :root{--bar:12px}
  nav.tabs .nav-toggle{display:inline-flex;width:auto}
  .nav-items{display:none;flex-direction:column;padding-top:6px}
  nav.tabs.nav-open .nav-items{display:flex}
  nav.tabs .nav-menu{display:block;position:static;border:0;padding:0 0 0 18px;min-width:0}
  nav.tabs button{white-space:normal;width:100%}
  nav.tabs .has-menu>.nav-top::after{content:""}
}
@media screen and (max-width:900px){
  .task-table tr.task-name{border:0;border-top:1px solid var(--rule);margin-top:10px;padding:8px 0 0;background:none}
  .task-table tr.task-fields{border:0;padding:0 0 8px;background:none}
  .task-table tr.task-name td,.task-table tr.task-fields td{background:none}
  #tab-tasks .task-table td select,#tab-roadmap .task-table td select{display:block;width:100%;max-width:420px}
  .task-table td input[type=date]{max-width:420px}
  .task-table td.task-acts{flex-direction:row}
  .task-table td.task-acts .btn{flex:0 0 auto;width:auto}
}
@media screen and (max-width:700px){
  .pillars-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .pillars-table,.pillars-table tbody,.pillars-table tr,.pillars-table td{display:block;width:auto}
  .tablewrap:has(>.pillars-table){overflow:visible;border:0;background:none}
  .pillars-table tr{border-top:1px solid var(--rule);padding:8px 0}
  .pillars-table td{border:0;padding:3px 0}
  .tablewrap table.pillars-table{min-width:0}
  .pillars-table td[data-label]::before{content:attr(data-label) ": ";font-weight:700;color:var(--muted-ink)}
  .tablewrap:has(>table:not(.task-table):not(.pillars-table)){overflow:visible;border:0;background:none}
  .tablewrap>table:not(.task-table):not(.pillars-table){display:block;min-width:0!important;width:auto}
  .tablewrap>table:not(.task-table):not(.pillars-table) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .tablewrap>table:not(.task-table):not(.pillars-table) tbody,.tablewrap>table:not(.task-table):not(.pillars-table) tr,.tablewrap>table:not(.task-table):not(.pillars-table) td,.tablewrap>table:not(.task-table):not(.pillars-table) th{display:block;width:auto}
  .tablewrap>table:not(.task-table):not(.pillars-table) tr{border-top:1px solid var(--rule);padding:8px 0}
  .tablewrap>table:not(.task-table):not(.pillars-table) td,.tablewrap>table:not(.task-table):not(.pillars-table) tbody th{border:0;padding:3px 0;white-space:normal;overflow-wrap:anywhere;text-align:left}
  .tablewrap>table:not(.task-table):not(.pillars-table) td[data-label]::before{content:attr(data-label) ": ";font-weight:700;color:var(--muted-ink)}
}

@font-face{font-family:Lora;src:url('assets/brand/fonts/Lora-variable.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('assets/brand/fonts/DM-Sans-variable.ttf') format('truetype');font-weight:100 1000;font-style:normal;font-display:swap}

/* Approved GateTracker rebrand, November 6, 2026. Screen presentation only. */
@media screen{
  :root{--ground:var(--cream);--shadow-card:none;--shadow-raised:none;--gt-brown:#795B43;--gt-ochre:#D9A441;--gt-warm-shade:rgba(121,91,67,.12);--gt-cool-shade:rgba(44,79,107,.11);--gt-reopened-shade:rgba(169,69,58,.10)}
  body{font-family:"DM Sans",Arial,sans-serif;font-size:17px;background:var(--cream)}
  main,.footer-credit,header.app,.pilot-banner{background:var(--cream);color:var(--body)}
  main{padding:24px 32px}
  h1,h2,h3,.stat .num{font-family:Lora,Georgia,serif;font-weight:600}
  .tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{
    position:relative;display:flex;align-items:center;gap:16px;padding:0 0 12px;margin:0 0 16px;min-height:80px;
    background:none;color:var(--charcoal);border:0;border-bottom:3px double var(--prussian);
    font-family:Lora,Georgia,serif;font-size:clamp(28px,3.5vw,40px);font-weight:600;line-height:1.18;letter-spacing:-.02em
  }
  .tab-panel>h1::after{display:none}
  .tab-panel>h1+p{background:none;border:0;padding:0;margin:0 0 24px;color:var(--body)}
  main .card>h2,main section>h2{font-family:Lora,Georgia,serif;font-size:26px;font-weight:600;color:var(--charcoal);background:none;border-bottom:1px solid var(--rule);padding-bottom:8px}
  .gt-engraving{display:inline-block;width:80px;height:80px;flex:0 0 80px;object-fit:contain}
  .layout-icon{width:24px;height:24px;flex:0 0 24px}
  .gt-product-logo.logo-box.gta{width:220px;height:auto;max-width:100%;border:0;background:none;padding:0;flex:0 0 220px}
  .gt-product-logo.logo-box.gta img{display:block;width:220px;height:auto;max-width:100%;object-fit:contain;background:none}
  header.app .marks{padding-right:20px;border-right:1px solid var(--body);align-self:center}
  header.app .app-title .agency{font-family:Lora,Georgia,serif;color:var(--charcoal);font-size:clamp(22px,2.4vw,30px);line-height:1.2}
  header.app .app-title .prod,header.app .app-title .juris,header.app .who{color:var(--body)}
  nav.tabs button{color:var(--cream)}
  nav.tabs .nav-menu{border-color:var(--cream)}
  nav.tabs :focus-visible{outline:3px solid var(--cream);outline-offset:-3px}
  .btn,.linkbtn,button,input,select,textarea{font-family:"DM Sans",Arial,sans-serif}
  .btn:focus-visible,.linkbtn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--prussian);outline-offset:3px}
  .btn{border-radius:0;box-shadow:inset 0 0 0 2px var(--cream)}
  .btn.primary{box-shadow:inset 0 0 0 2px var(--accent)}
  .stand-list.gt-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:16px;margin:0 0 32px;background:var(--pale);color:var(--charcoal)}
  .stand-list.gt-metrics li{min-width:0;padding:0 16px;border:0;border-left:1px solid var(--prussian);font-size:17px;line-height:1.45}
  .stand-list.gt-metrics li:first-child{border-left:0}
  .stand-list.gt-metrics strong{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;font:600 clamp(28px,3.4vw,40px)/1.15 Lora,Georgia,serif;color:var(--charcoal);margin:0 0 6px}
  .gt-next-up{display:inline-block;background:var(--gt-ochre);color:var(--charcoal);font:700 15px/1.4 "DM Sans",Arial,sans-serif;padding:4px 8px}
  .your-work .work-choices.gt-work{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 0}
  .work-choice.gt-work-option{display:flex;align-items:center;gap:16px;background:var(--gt-warm-shade);padding:20px;min-width:0;border:0;border-radius:0;box-shadow:none}
  .work-choice.gt-work-option--roadmap{background:var(--gt-cool-shade)}
  .gt-work-option .gt-engraving{width:128px;height:144px;flex-basis:128px}
  .gt-work-copy{min-width:0;flex:1}
  .gt-work-option--roadmap .btn.primary{background:var(--cream);color:var(--prussian);border-color:var(--prussian);box-shadow:inset 0 0 0 2px var(--cream)}
  .gt-work-option .btn{font-size:17px;white-space:normal}
  .layout-notices p.gt-notice{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;padding:12px 16px;margin:0!important;border:0;border-bottom:1px solid var(--gt-brown);background:none}
  .gt-notice-date{padding-right:16px;border-right:1px solid var(--gt-brown);color:var(--body)}
  .gt-notice-copy{min-width:0}
  .gt-notice-title{display:block;color:var(--charcoal)}
  .gt-notice-detail{display:block}
  .layout-notices p.gt-notice--reopened{background:var(--gt-reopened-shade);border-left:5px solid var(--oxide)}
  .layout-notices>.row{margin:0 0 12px}
  .words dl{column-rule:1px solid var(--gt-brown);column-gap:40px}
  .words dt{font-family:Lora,Georgia,serif;font-size:19px}
  .words dd{font-size:17px}
  .layout-history .chart{background:none;border:0}
  .use-panel{background:none;border:0;border-left:3px solid var(--prussian);padding:8px 20px;margin:16px 0 24px}
  .card,.gatecard,.step,.thread-item,.scalepanel,.helppanel,dialog,#gate .panel,.rpt-export{border-radius:0;box-shadow:none}
  .card .card,.gatecard,.gatecard:hover,.thread-item,.scalepanel,.helppanel{background:none}
  .tablewrap{border-left:0;border-right:0;box-shadow:none}
  th{background:var(--pale);color:var(--charcoal)}
  td{overflow-wrap:anywhere}
  tbody tr:nth-child(even){background:transparent}
  tbody tr:hover{background:var(--gt-cool-shade)}
  .tablewrap table{max-width:100%}
  .subtabs{background:none;border-bottom:1px solid var(--rule);padding:0 0 8px;gap:8px}
  .subtabs button{border-radius:0;min-height:44px}
  #tab-gates .readiness-panel{border-top:3px double var(--prussian);padding:20px 0;margin-top:24px}
  .req-head{padding-bottom:12px;border-bottom:1px solid var(--rule)}
  .req-block>h4{font-size:18px;color:var(--charcoal)}
  .nav-step{background:none;border-bottom:1px solid var(--rule)}
  .rm-gate,.entity,.bar-step,.ea-item{box-shadow:none;border-radius:0}
  .notice{box-shadow:none;border-radius:0}
  dialog .dhead{background:var(--cream);color:var(--charcoal);border-bottom:3px double var(--prussian)}
  dialog .dhead h2{font-family:Lora,Georgia,serif}
  #gate{background:var(--cream);color:var(--body);border-inline:12px solid var(--charcoal);font-size:17px}
  #gate .panel{background:none;border:0;border-top:3px double var(--prussian);max-width:640px;box-shadow:none}
  #gate .brandline{border-bottom:1px solid var(--gt-brown);padding-bottom:16px;align-items:center}
  #gate .brandline img.gt-logo{width:220px;height:auto;max-width:100%;background:none;object-fit:contain}
  #gate h1{font:600 30px/1.2 Lora,Georgia,serif}
  #gate .eyebrow{font-size:15px}
  .tour-card{box-shadow:none;border-radius:0}
}
@media screen and (max-width:1023px){
  .gt-work-option .gt-engraving{width:96px;height:112px;flex-basis:96px}
  .work-choice.gt-work-option{gap:12px;padding:16px}
}
@media screen and (max-width:767px){
  main{padding:20px 16px}
  .stand-list.gt-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0;padding:16px 0}
  .stand-list.gt-metrics li:nth-child(3){border-left:0}
  .your-work .work-choices.gt-work{grid-template-columns:minmax(0,1fr)}
  .tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{font-size:28px;min-height:60px;gap:12px}
  .gt-engraving{width:60px;height:60px;flex-basis:60px}
  .layout-notices p.gt-notice{grid-template-columns:minmax(0,1fr);gap:8px;padding:12px}
  .gt-notice-date{border:0;padding:0}
  .gt-product-logo.logo-box.gta,.gt-product-logo.logo-box.gta img{width:180px}
  .gt-product-logo.logo-box.gta{flex-basis:180px}
  header.app .marks{border:0;padding:0}
  .words dl{columns:1}
  main button,main select,main input:not([type=checkbox]):not([type=radio]),main summary{min-height:44px}
  main td>input[type=checkbox],main td>input[type=radio]{width:44px;height:44px;min-width:44px;min-height:44px}
  .tablewrap{overflow:visible}
  #gate .brandline img.gt-logo{width:180px}
}


/* Original approved composition: illustration beside the title rule, compact rows. */
@media screen{
 .tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{border-bottom:0;padding:0 0 8px;gap:20px;font-size:clamp(30px,4vw,48px);min-height:88px;line-height:1.1}
 .tab-panel>h1::before,#tab-overview>.card>h2::before,.tab-panel .card>h1::before{content:"";position:absolute;left:100px;right:0;bottom:8px;border-bottom:4px double var(--prussian);pointer-events:none}
 #tab-overview>.card:has(>h2){border-top:0;margin-bottom:24px!important}
 #tab-overview>.card>h2{margin-bottom:8px}
 #tab-overview .your-work>p{margin:0 0 16px;padding-left:100px}
 .stand-list.gt-metrics{margin-bottom:24px}
 .stand-list.gt-metrics strong{font-size:44px;line-height:1;margin-bottom:4px}
 .stand-list.gt-metrics li{line-height:1.3}
 .gt-work-option .gt-engraving{width:160px;height:180px;flex-basis:160px}
 .work-choice.gt-work-option{padding:16px 20px;gap:16px;align-items:flex-start}
 .gt-work-option .btn{width:auto;min-width:210px;font-size:20px;min-height:48px}
 .gt-work-copy{padding-top:4px}
 .gt-work-option p{line-height:1.35;font-size:17px}
 .layout-notices{position:relative}
 #tab-overview>.layout-notices>h2{padding-right:160px}
 .layout-notices>.row{position:absolute;right:0;top:20px;margin:0}
 .layout-notices p.gt-notice{padding:8px 16px;line-height:1.35;grid-template-columns:160px minmax(0,1fr)}
 .gt-notice-title{font-size:17px;line-height:1.25}
 .gt-notice-date{align-self:center;line-height:1.3;max-width:150px}
 .words dl{margin-top:8px}
 .words .gt-term{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;break-inside:avoid;border-bottom:1px solid var(--gt-brown);padding:10px 0}
 .words .gt-term dt,.words .gt-term dd{margin:0;padding:0;border:0;break-before:auto;break-after:auto}
 .words .gt-term:nth-child(4){break-before:column}
 .words .gt-term dt{font-size:19px;line-height:1.25}
 .words .gt-term dd{font-size:17px;line-height:1.35}
 .words .kt-more{margin:12px 0 0}
 .layout-history .chart{max-width:900px;margin-left:100px;padding:0}
 .layout-history .chart svg{max-height:180px;width:100%}
}
@media screen and (max-width:1100px){
 .gt-work-option .gt-engraving{width:128px;flex-basis:128px}
 .gt-work-option .btn{min-width:0;width:100%;font-size:18px}
 .words .gt-term{grid-template-columns:100px minmax(0,1fr)}
}
@media screen and (max-width:767px){
 .tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{font-size:30px;gap:12px;min-height:68px}
 .tab-panel>h1::before,#tab-overview>.card>h2::before,.tab-panel .card>h1::before{left:72px;bottom:0}
 #tab-overview .your-work>p{padding-left:0}
 .stand-list.gt-metrics strong{font-size:30px}
 .gt-work-option .gt-engraving{width:96px;height:128px;flex-basis:96px}
 .work-choice.gt-work-option{padding:16px;gap:12px}
 .gt-work-option .btn{font-size:17px}
 #tab-overview>.layout-notices>h2{padding-right:0}
 .layout-notices>.row{position:static;margin:8px 0}
 .layout-notices p.gt-notice{grid-template-columns:minmax(0,1fr)}
 .gt-notice-date{max-width:none}
 .layout-history .chart{margin-left:0}
 .words.words dl{columns:1}
 .words .gt-term:nth-child(4){break-before:auto}
}

/* Reference-width proportion corrections. */
@media screen and (min-width:1000px){header.app{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;gap:16px;padding:12px 28px;align-items:center}header.app .marks{width:210px;padding-right:12px}header.app .gt-product-logo.logo-box.gta,header.app .gt-product-logo.logo-box.gta img{width:196px;flex-basis:196px}header.app .app-title{min-width:0}header.app .app-title .agency{font-size:24px;line-height:1.1}header.app .hdr-actions{grid-column:auto;width:auto;max-width:none;border:0;padding:0;justify-content:flex-end}header.app .who{flex-basis:100%;text-align:right}header.app .btn{padding:7px 10px}nav.tabs{padding-block:0}}@media screen{#tab-overview{color:var(--charcoal)}.tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{font-weight:700;font-size:clamp(30px,4vw,44px);min-height:80px}.stand-list.gt-metrics{padding:12px}.stand-list.gt-metrics strong{font-size:40px}.stand-list.gt-metrics li{font-size:17px;line-height:1.25}.work-choice.gt-work-option{padding:16px;gap:16px}.gt-work-option p{font-size:15px;line-height:1.3}.gt-work-option .btn{font-size:18px;min-height:44px}.words .gt-term dd{font-size:15px;line-height:1.35}.words .gt-term{padding:8px 0}.words .gt-term dt{font-size:17px}.gt-notice-copy>strong{font-size:17px;font-weight:700}.gt-notice-date{color:var(--charcoal)}.gt-next-up{font-size:15px}.layout-history .chart{max-width:none;margin-left:100px}.layout-history .chart svg{max-width:none}}@media screen and (max-width:767px){.tab-panel>h1,#tab-overview>.card>h2,.tab-panel .card>h1{font-size:30px;min-height:68px}.stand-list.gt-metrics strong{font-size:30px}.layout-history .chart{margin-left:0}}
@media screen and (min-width:1000px){header.app{grid-template-columns:210px minmax(0,1fr) 320px}header.app .hdr-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:center}header.app #hdrWho{grid-column:1/5;grid-row:1;line-height:1.2;text-align:right}header.app #saveState{grid-column:5;grid-row:1;font-size:15px}header.app #saveSize{grid-column:1/7}header.app #btnTour{grid-column:6;grid-row:1}header.app #btnSave{grid-column:1/3;grid-row:2}header.app #btnOpen{grid-column:3/5;grid-row:2}header.app #btnUsers{grid-column:5/7;grid-row:2}header.app #btnLock{grid-column:3/5;grid-row:3}header.app #btnSignOut{grid-column:5/7;grid-row:3}header.app .btn{padding:7px 4px}header.app .app-title .prod{letter-spacing:0;line-height:1.3}}@media screen{.layout-history .chart svg{max-height:none;height:180px;width:100%;display:block}.gt-work-option .gt-engraving{height:144px}.words .kt-more{margin-top:8px}#tab-overview>.card:has(>h2){margin-bottom:16px!important}.gt-work-option--roadmap .gt-engraving{width:144px;flex-basis:144px}}@media screen and (min-width:1000px) and (max-width:1100px){main{padding:24px}.tab-panel>h1,#tab-overview>.card>h2{font-size:44px}.gt-work-option .btn{width:auto;min-width:180px}.gt-work-option .gt-engraving{width:144px;flex-basis:144px}.work-choice.gt-work-option{padding:16px 12px;gap:12px}}
@media screen{#tab-about .about-credit{width:240px;height:auto;max-width:100%}}

/* Size fixes (November 6, 2026). The product name stays whole, body text in dialogs is 17 px, and phone tap targets are 44 px. */
.prod-name{white-space:nowrap}
.cp-reqs{margin:4px 0 0;padding:0;list-style:none}
.cp-reqs ul{margin:2px 0 6px;padding-left:18px;list-style:disc}
@media screen{dialog .dbody{font-size:17px}}
@media screen and (max-width:900px){
  td .btn,td .linkbtn{min-height:44px;min-width:44px}
  main a:not(.btn),dialog a:not(.btn){padding:12px 1px}
}
@media screen and (max-width:700px){
  .gt-product-logo.logo-box.gta,.gt-product-logo.logo-box.gta img{width:112px}
  .gt-product-logo.logo-box.gta{flex-basis:112px}
  header.app .app-title{flex:1 1 0;min-width:0}
}

/* D2 visual pass (October 22, 2026). The screens added in D2 (c), (d) and (e) take the October 11 surfaces from the
   Card contrast block: Cream content cards with a Prussian 20% border and --shadow-card, Charcoal top strips, nested
   surfaces and list groups in --nest with a Prussian 12% border (list groups add the 3 px Prussian rule and a 12 px
   indent), Prussian 10% row dividers, and --shadow-raised for hover. Brand colors only, flat; no white fills; never
   Oxide text on Pale Blue. Tenant colors reach only --brand and --accent. Screen only; print is unchanged. */
@media screen{
  :root{--divider:color-mix(in srgb,var(--prussian) 10%,transparent)}
  /* The " · " separators stay in the text for print and copying; on screen the tiles and tags separate the items */
  .ov-sep{display:none}

  /* 1. Overview cards (pillars, requests and follow-through): content-card surface with the Charcoal top strip. The
     status shows in its tag, so the colored side rule goes. Content starts at the top of the card. */
  .layout-gates .ov-group{margin:16px 0 8px}
  .layout-gates .grid{align-items:stretch}
  .layout-gates .gatecard.gatecard,.layout-gates .ov-req{background:none;border:0;border-top:1px solid var(--rule);border-left:0!important;box-shadow:none;min-height:0}
  .layout-gates .gatecard{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0}
  .layout-gates .gatecard:hover{background:var(--cream);box-shadow:var(--shadow-raised)}
  .layout-gates .ov-req{display:flex;flex-direction:column}
  .layout-gates .ov-req>.gatecard.gatecard{border:0;border-left:0;box-shadow:none;background:transparent}
  .layout-gates .ov-req:has(>.gatecard:hover){box-shadow:var(--shadow-raised)}
  /* The score, critical blockers, tasks and inquiries: small nested tiles */
  .ov-tiles{display:flex;flex-wrap:wrap;gap:6px;align-self:stretch;margin-top:10px!important}
  .ov-tile{background:var(--nest);border:1px solid var(--edge-soft);color:var(--body);padding:3px 8px;font-size:15px;line-height:1.5}

  /* 2. "Still needed": a list group, one step per line; past five, "Show all N" opens the rest */
  .req-missing{padding:0 16px 16px;margin:0}
  .req-missing p{margin:0;color:var(--body);font-size:15px}
  .req-missing .req-missing-h{color:var(--charcoal);font-weight:700;margin-bottom:0}
  .req-missing ul.req-steps{list-style:none;margin:8px 0;padding-inline-start:12px}
  .req-steps li{padding:5px 0;border-bottom:1px solid var(--divider);font-size:15px;line-height:1.45;color:var(--charcoal)}
  .req-steps li:last-child{border-bottom:0}
  .req-more>summary{display:flex;align-items:center;min-height:44px;color:var(--brand);font-weight:700;font-size:15px;cursor:pointer}

  /* 3. "Words we use": content card; term in Charcoal bold, meaning in Body neutral, Prussian 10% dividers; two columns */
  .layout-words{grid-column:1/-1}
  .words summary{display:flex;align-items:center;cursor:pointer}
  .words summary h2{display:inline;margin:0;font-size:18px}
  .words dl{margin:12px 0 0;columns:2;column-gap:32px}
  .words dt{color:var(--charcoal);font-weight:700;margin:0;padding-top:10px;break-after:avoid}
  .words dd{color:var(--body);margin:2px 0 0;padding-bottom:10px;border-bottom:1px solid var(--divider);break-before:avoid;break-inside:avoid}

  /* 4. Analysis, "Earlier analyses": a list group; each entry a nested surface, the kind and reference in small caps,
     the pillars as small tags */
  #tab-analysis ul:has(>.ea-item){list-style:none;padding-inline-start:12px}
  /* The card spans the Analysis tab's full width (October 23, 2026), so each entry fits on one or two lines */
  #rpt-analysis>.card:has(.ea-item){grid-column:1/-1}
  .ea-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;background:var(--nest);border:1px solid var(--edge-soft);padding:6px 12px;margin:8px 0}
  .ea-meta{color:var(--body);font-size:15px;letter-spacing:.06em;text-transform:uppercase;font-weight:500}
  .ea-tags{display:flex;flex-wrap:wrap;gap:4px}
  .tag.ea-tag{background:var(--pale);color:var(--brand);border:1px solid var(--edge);padding:1px 6px;font-size:15px}

  /* 5. Roadmap "Gates": each gate a nested card with a Charcoal header strip; its steps are list-group rows */
  .rm-gate{background:none;border:0;border-top:1px solid var(--rule);margin:12px 0}
  .rm-gate>h3{background:none;color:var(--charcoal);margin:0;padding:12px 0;font-size:22px}
  .rm-gate>p{margin:0;padding:8px 12px 0}
  .rm-gate ul.rm-gate-steps{list-style:none;margin:8px 12px 12px;padding-inline-start:12px}
  .rm-gate-steps li{padding:8px 0;border-bottom:1px solid var(--divider);line-height:1.6}
  .rm-gate-steps li:last-child{border-bottom:0}
  /* The four request tags, each with its own tint (no Oxide anywhere on them) */
  .rtag{display:inline-block;margin-left:6px;padding:1px 8px;font-size:15px;line-height:1.5;border:1px solid transparent;font-weight:500}
  .rtag-p1{background:color-mix(in srgb,var(--brand) 12%,var(--cream));color:var(--brand)}
  .rtag-p2{background:var(--pale);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 25%,transparent)}
  .rtag-both{background:var(--brand);color:var(--brand-ink)}
  .rtag-none{background:color-mix(in srgb,var(--body) 8%,var(--cream));color:var(--body)}
  .carried{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}

  /* 6. Setup: the Resources rows and the filer entities as list-group rows; the request mode and filer choices with
     the selected one in Prussian; the Phase 2 "what you can do now" steps and the packet card's lists as nested blocks */
  #resources .resrow,.entity{background:none;border:0;border-top:1px solid var(--rule);padding:16px 0;margin:8px 0}
  .filer-pick,.reqmode-opt{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
  .reqmode{border:0;padding:0;margin:16px 0 0;min-width:0}
  .reqmode-opt{background:var(--cream);border:1px solid var(--brand);color:var(--brand);padding:0 12px;margin:8px 0;font-weight:500}
  .filer-pick{padding:0 12px;border:1px solid var(--brand);color:var(--brand);background:var(--cream);font-weight:500}
  .reqmode-opt:has(input:checked),.filer-pick:has(input:checked){background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
  .bar-step{background:var(--nest);border:1px solid var(--edge-soft);border-left:3px solid var(--prussian);padding:12px;margin:8px 0}
  .bar-step h4{margin-top:0}
  #packetCard ul,#readinessBar>ul{list-style:none;padding-inline-start:12px}
  #packetCard>.btn{margin:4px 0 8px}
  #packetCard h3{margin-top:20px}
  .pk-opt{list-style:none}

  /* Key terms (October 23, 2026): each group a content card; its terms a list group with Prussian 10% dividers */
  .kt-more{margin:12px 0 0}
  .kt-find .fld{max-width:520px}
  .kt-group ul.kt-list{list-style:none;padding-inline-start:12px;margin:8px 0}
  .kt-term{padding:12px 0;border-bottom:1px solid var(--divider);scroll-margin-top:16px}
  .kt-term:last-child{border-bottom:0}
  .kt-term h3{margin:0 0 6px;color:var(--charcoal);font-size:16px}
  .kt-term p{margin:4px 0;color:var(--body);line-height:1.55}
  .kt-term p strong{color:var(--charcoal)}
  .kt-link{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
  .kt-term[hidden],.kt-group[hidden]{display:none}

  /* 7. Added since October 11 and still flat: the task panel's lists (October 20) take the list group */
  #dlgBody>h3+ul{background:var(--nest);border:1px solid var(--edge-soft);border-left:3px solid var(--prussian);padding:8px 12px 8px 28px;margin:8px 0}
  .pk-opt li{padding:6px 0;border-bottom:1px solid var(--divider)}
  .pk-opt li:last-child{border-bottom:0}
}

/* Verified print correction: the supplied CSS leaves Roadmap segments and badges
   colored in print, including white text on the green segment when backgrounds
   are omitted. Preserve the existing print layout; remove only those fills. */
@media print {
  #tab-roadmap .rm-seg,#tab-roadmap .pill{background:transparent;color:var(--charcoal);box-shadow:none;border-color:var(--body)}
  #tab-roadmap .rm-seg+.rm-seg{border-left:1px solid var(--body)}
  /* The source's anywhere wrapping split status words such as Planned across
     lines in the Letter PDF. Let table cells reserve whole-word minimums. */
  .report td,.report th{overflow-wrap:normal;word-break:normal}
}

/* Gate analysis report (Reports > Run a gate analysis, October 13, 2026). Its own block after Direction A, checked by GT-T-187. Flat colors; the report sits in the existing
   card, and white is never a card fill. At phone width each table row stacks, and each cell shows its column name. */
.rp{max-width:1100px}
.rp-title{border-bottom:2px solid var(--charcoal);padding-bottom:12px;margin:8px 0 16px}
.rp-eyebrow{margin:0 0 4px;font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-ink)}
.rp-title h2{margin:0 0 10px}
.rp-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px 24px;margin:0}
.rp-meta dt{font-size:15px;color:var(--muted-ink);margin:0}.rp-meta dd{margin:0;font-weight:700;color:var(--charcoal)}
.rp-summary{background:#E6EEF5;border-left:4px solid var(--charcoal);padding:12px 16px;margin:0 0 20px}
.rp-summary h3{margin:0 0 6px;font-size:16px}
.rp-h{display:flex;align-items:baseline;gap:10px;margin:24px 0 8px;border-bottom:1px solid var(--rule);padding-bottom:4px}
.rp-num{display:inline-block;min-width:1.6em;font-variant-numeric:tabular-nums;color:var(--charcoal)}
.rpt-current .rp :is(ul,ol):not(.rp-x){background:transparent;border:0;padding-block:0;padding-inline-end:0;margin:4px 0 8px;padding-left:22px}
.rp-table{width:100%;border-collapse:collapse}
.rp-table th,.rp-table td{vertical-align:top;text-align:left}
.rp-table tbody th{font-weight:700}
.rp-crit{table-layout:fixed}.rp-crit th:nth-child(1){width:26%}.rp-crit th:nth-child(2){width:14%}
.rp-seq{table-layout:fixed}.rp-seq th:nth-child(1){width:29%}.rp-seq th:nth-child(2){width:27%}.rp-seq th:nth-child(3){width:22%}.rp-seq th:nth-child(4){width:11%}.rp-seq th:nth-child(5){width:11%}
.rpt-current .rp .rp-left{margin:4px 0 0;padding-left:18px}
.rp-stepn{display:inline-block;min-width:1.6em;font-weight:700}
.rp-key{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:6px 24px;margin:10px 0 0;font-size:15px}
.rp-key dt{font-weight:700;margin:0}.rp-key dd{margin:0 0 4px}
.rp-vgroup{border-top:1px solid var(--rule);padding:10px 0}
.rp-vgroup h4{margin:0 0 6px}
.rp-vendor{border-left:3px solid var(--rule);padding:2px 0 2px 12px;margin:8px 0}
.rp-vname{margin:0 0 4px}
.rp-foot{margin-top:24px;border-top:1px solid var(--rule);padding-top:10px}
.rp-foot p{margin:2px 0}
/* Letterhead from Setup > Branding (no watermark). The accent marks the title rule and summary edge only when reportAccentOk() finds 3:1 contrast. */
.rp-brand{margin:0 0 12px}.rp-brand .letterhead{border-bottom:0;padding-bottom:0;margin-bottom:0}
.rp-brand-plain{display:flex;gap:16px;align-items:center}
.rp-brand-name{font-family:Lora,Georgia,serif;font-size:19px;font-weight:600;color:var(--charcoal)}
.rp.rp-accent .rp-title{border-bottom-color:var(--accent)}.rp.rp-accent .rp-summary{border-left-color:var(--accent)}
@media screen and (max-width:700px){
  .rp-seq thead,.rp-crit thead{position:absolute;left:-9999px}
  .rp-seq,.rp-seq tbody,.rp-seq tr,.rp-seq td,.rp-crit,.rp-crit tbody,.rp-crit tr,.rp-crit th,.rp-crit td{display:block;width:auto!important;min-width:0!important}
  .rp-seq,.rp-crit{table-layout:auto}
  .rp-seq tr,.rp-crit tr{border-top:1px solid var(--rule);padding:8px 0}
  .rp-seq td,.rp-crit th,.rp-crit td{border:0;padding:3px 0}
  .rp-seq td:nth-child(n+2)::before,.rp-crit td::before{display:block;font-size:15px;font-weight:700;color:var(--muted-ink)}
  .rp-seq td:nth-child(2)::before{content:"Why it matters"}.rp-seq td:nth-child(3)::before{content:"What it unblocks"}
  .rp-seq td:nth-child(4)::before{content:"Owner"}.rp-seq td:nth-child(5)::before{content:"Due"}
  .rp-crit td:nth-child(2)::before{content:"Status"}.rp-crit td:nth-child(3)::before{content:"What is left"}
}
/* Printing one analysis ("Print this analysis" sets body.print-analysis; the page header and footer are added while it
   prints). Black on white, no fills or card backgrounds, rows never split, headings stay with what follows. Earlier
   analyses (a saved page, .rp-legacy) print the same way. Other screens and the Print or save as PDF button are unchanged. */
@media print{
  body.print-analysis #tab-analysis>*:not(#rpt-analysis){display:none!important}
  body.print-analysis #rpt-analysis{display:block!important}
  body.print-analysis #rpt-analysis>.card:not(.rpt-current){display:none!important}
  body.print-analysis #rpt-analysis .rpt-current{border:0!important;padding:0!important;margin:0;background:none!important}
  body.print-analysis :is(.rp,.rp-legacy){max-width:none;font-size:10.5pt;line-height:1.4;color:#000}
  body.print-analysis :is(.rp,.rp-legacy) *{color:#000!important;background:transparent!important;box-shadow:none!important}
  body.print-analysis .rp-summary{border:1pt solid #000;border-left-width:3pt}
  body.print-analysis .rp-title{border-bottom:1.5pt solid #000}
  body.print-analysis .rp-h{border-bottom:.75pt solid #000}
  body.print-analysis :is(.rp,.rp-legacy) :is(h2,h3,h4),body.print-analysis .rp-intro,body.print-analysis .rp-vgroup>p{break-after:avoid;page-break-after:avoid}
  body.print-analysis .rp-table{font-size:9.5pt}
  body.print-analysis .rp-table th,body.print-analysis .rp-table td{border:.5pt solid #000;padding:4pt 5pt}
  body.print-analysis .rp-table thead{display:table-header-group;break-after:avoid;page-break-after:avoid}
  body.print-analysis .rp-table tbody tr:first-child{break-before:avoid;page-break-before:avoid}
  body.print-analysis :is(.rp,.rp-legacy) :is(.pill,.local-label,.ai-label){border:.5pt solid #000!important}
  body.print-analysis :is(.rp,.rp-legacy) :is(tr,li),body.print-analysis .rp-vendor,body.print-analysis .rp-summary,body.print-analysis .rp-key>div{break-inside:avoid;page-break-inside:avoid}
  body.print-analysis :is(.rp,.rp-legacy) :is(p,li){orphans:3;widows:3}
  body.print-analysis :is(.rp,.rp-legacy) .tablewrap{border:0!important;padding:0!important;overflow:visible}
  body.print-analysis .rp-vgroup{border-top:.5pt solid #000}
  body.print-analysis .rp-vendor{border-left:1.5pt solid #000}
  body.print-analysis .rp-foot{border-top:.75pt solid #000}
  body.print-analysis .rp-brand .letterhead,body.print-analysis .rp-brand-plain{border:0!important}
  body.print-analysis .rp.rp-accent .rp-title{border-bottom-color:#000}body.print-analysis .rp.rp-accent .rp-summary{border-left-color:#000}
  body.print-analysis :is(.rp,.rp-legacy) :is(ul,ol){border:0!important}
}

/* Approved reference restoration: shared field-manual composition, screen only. */
@media screen {
  body.gt-brand #app {--gt-heading-rule:var(--prussian)}
  .gt-brand .pilot-banner{padding:4px 30px;border-bottom:1px solid var(--body);font-size:13px;line-height:1.35;text-align:center}
  .gt-brand header.app{border-top:0}
  .gt-brand #app main{padding:24px 28px 32px}
  .gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,
  .gt-brand #tab-overview>.card>h2{font:700 42px/1.12 Lora,Georgia,serif;min-height:88px;gap:18px;padding:0 0 8px;margin-bottom:8px;letter-spacing:-.035em}
  .gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,
  .gt-brand #tab-overview>.card>h2::before{left:100px;bottom:5px;border-bottom:4px double var(--gt-heading-rule,var(--prussian))}
  .gt-brand .gt-engraving{width:82px;height:82px;flex-basis:82px}
  .gt-brand .gt-symbol{color:var(--gt-brown);padding:8px;stroke-width:1.75}
  .gt-brand #app main .card{border-top:0;padding-block:0}
  .gt-brand #app main .card>h2,.gt-brand #app main .card>h3,
  .gt-brand #app main section>h2{background:transparent;color:var(--charcoal);font-family:Lora,Georgia,serif;border-bottom:3px double var(--body)}
  .gt-brand #app main .use-panel{background:transparent;border:0;border-left:1px solid var(--gt-brown);padding:4px 20px;margin:8px 0 28px}
  .gt-brand #app main .use-panel ol{background:transparent;border:0;padding-left:22px}
  .gt-brand #app main .tab-panel>.subtabs,.gt-brand #app main .card>.subtabs{background:transparent;border:0;border-bottom:1px solid var(--gt-brown);padding:0 0 12px}
  .gt-brand #app main :is(.rm-gate,.entity,.ea-item,.thread-item,.bar-step){background:transparent;border:0;border-top:1px solid var(--gt-brown);box-shadow:none}
  .gt-brand #app main .step{background:transparent;border:0;border-top:1px solid var(--gt-brown);padding:16px 0}
  .gt-brand #app main .step summary{font-family:Lora,Georgia,serif;font-size:19px}
  .gt-brand #app main :is(.kt-list,.about-body+ .card ul){background:transparent;border:0}
  .gt-brand #app main .kt-term h3{font-family:Lora,Georgia,serif;font-size:21px}
  .gt-brand #app main .readiness-panel{background:transparent;border-top:3px double var(--prussian)}
  .gt-brand .readiness-panel h3{display:flex;gap:12px;align-items:center}
  .gt-brand .readiness-panel .layout-icon{width:28px;height:28px;color:var(--gt-brown)}
  .gt-brand #tab-overview>.card:has(>h2){margin:0 0 18px!important}
  .gt-brand #tab-overview .stand-list.gt-metrics{padding:12px 10px;margin:0 0 12px!important}
  .gt-brand .stand-list.gt-metrics strong{font:700 40px/1.05 Lora,Georgia,serif;letter-spacing:-.025em}
  .gt-brand .stand-list.gt-metrics li{padding:0 20px;font-size:16px;line-height:1.25}
  .gt-brand .gt-next-up{clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%);padding:4px 10px 4px 16px}
  .gt-brand #tab-overview .your-work>p{padding-left:100px;margin:0 0 16px;font-size:15px}
  .gt-brand .work-choice.gt-work-option{padding:16px;gap:20px;align-items:center;min-height:184px}
  .gt-brand .gt-work-option .gt-engraving{width:144px;height:156px;flex-basis:144px}
  .gt-brand .gt-work-option .gt-work-copy{padding:0}
  .gt-brand .gt-work-option .btn{font:700 26px/1.15 Lora,Georgia,serif;width:100%;min-width:0;min-height:44px;padding:6px 12px;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--cream) 30%,transparent)}
  .gt-brand .gt-work-option--roadmap .btn{color:var(--brand);border-color:var(--brand);background:var(--cream)}
  .gt-brand .gt-work-option p{font-size:15px;line-height:1.3;margin:8px 0 0}
  .gt-brand .gt-work-option [data-workcounts]{margin-top:8px}
  .gt-brand .layout-notices p.gt-notice{grid-template-columns:150px minmax(0,1fr);gap:28px;padding:7px 20px;font-size:15px;line-height:1.25;border-color:var(--body)}
  .gt-brand .gt-notice-date{font-size:15px;border-color:var(--body)}
  .gt-brand .gt-notice-title{font-size:16px;line-height:1.2}
  .gt-brand .layout-notices p.gt-notice--reopened{border-left:8px solid var(--oxide);border-top:1px solid var(--oxide)}
  .gt-brand #tab-overview>.layout-words>h2,.gt-brand #tab-overview>.layout-history>h2{--gt-heading-rule:var(--body)}
  .gt-brand .words.words dl{column-gap:36px;column-rule:1px solid var(--body);margin:0}
  .gt-brand .words .gt-term{grid-template-columns:112px minmax(0,1fr);padding:8px 0;gap:16px}
  .gt-brand .words .gt-term dt{font:700 17px/1.2 Lora,Georgia,serif}
  .gt-brand .words .gt-term dd{font-size:15px;line-height:1.25}
  .gt-brand .words .gt-term:last-child{border:0}
  .gt-brand .words .kt-more{margin:8px 0 0;text-align:right}
  .gt-brand .layout-history .chart{margin-left:88px}
  .gt-brand .layout-history .chart svg{height:156px}
  .gt-brand dialog .dhead{background:var(--cream);color:var(--charcoal);border-bottom:4px double var(--prussian)}
  .gt-brand dialog .dhead h2{font:600 26px/1.2 Lora,Georgia,serif}
  .gt-brand #gate{padding:40px 24px;border-inline:8px solid var(--charcoal)}
  .gt-brand #gate .panel{max-width:760px;padding:0 32px 32px;border:0;background:transparent;box-shadow:none}
  .gt-brand #gate .brandline{padding:0 0 24px;margin-bottom:28px;border-bottom:12px solid var(--charcoal);gap:32px}
  .gt-brand #gate .brandline img.gt-logo{width:240px}
  .gt-brand #gate .brandline>div{padding-left:24px;border-left:1px solid var(--body)}
  .gt-brand #gate h1{font:700 40px/1.12 Lora,Georgia,serif;border-bottom:4px double var(--prussian);padding-bottom:12px;margin:0 0 24px}
  .gt-brand #gate .stack{max-width:none}
}
@media screen and (min-width:1000px) {
  .gt-brand header.app{padding:12px 30px;grid-template-columns:210px minmax(0,1fr) 300px;gap:18px}
  .gt-brand header.app .gt-product-logo.logo-box.gta,.gt-brand header.app .gt-product-logo.logo-box.gta img{width:200px;flex-basis:200px}
  .gt-brand header.app .app-title .agency{font-size:24px;line-height:1.05;letter-spacing:-.03em}
  .gt-brand header.app .app-title .prod{font-size:14px}
  .gt-brand header.app .btn{min-height:34px;padding:5px 6px;font-size:14px}
  .gt-brand header.app .who{font-size:14px}
}
@media screen and (max-width:999px) {
  .gt-brand .pilot-banner{font-size:15px;text-align:left;padding:8px 16px}
  .gt-brand .gt-work-option .btn{font-size:22px}
  .gt-brand .gt-work-option .gt-engraving{width:112px;height:136px;flex-basis:112px}
}
@media screen and (max-width:767px) {
  .gt-brand #app main{padding:20px 16px}
  .gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,
  .gt-brand #tab-overview>.card>h2{font-size:30px;min-height:76px;gap:12px}
  .gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,
  .gt-brand #tab-overview>.card>h2::before{left:76px}
  .gt-brand .gt-engraving{width:64px;height:64px;flex-basis:64px}
  .gt-brand .stand-list.gt-metrics strong{font-size:30px}
  .gt-brand .stand-list.gt-metrics li{font-size:15px;padding:0 12px}
  .gt-brand .gt-work-option .gt-engraving{width:104px;height:144px;flex-basis:104px}
  .gt-brand .work-choice.gt-work-option{padding:16px 12px;gap:12px}
  .gt-brand #tab-overview .your-work>p{padding-left:0}
  .gt-brand .layout-notices p.gt-notice{grid-template-columns:1fr;gap:6px;padding:12px}
  .gt-brand .gt-notice-date{border:0}
  .gt-brand .words .gt-term{grid-template-columns:96px minmax(0,1fr);gap:12px}
  .gt-brand .layout-history .chart{margin-left:0}
  .gt-brand #gate{padding:24px 8px}
  .gt-brand #gate .panel{padding:0 16px 24px}
  .gt-brand #gate .brandline{flex-direction:column;align-items:flex-start;gap:16px}
  .gt-brand #gate .brandline img.gt-logo{width:200px}
  .gt-brand #gate .brandline>div{border-left:0;padding-left:0}
  .gt-brand #gate h1{font-size:32px}
}
@media screen and (max-width:700px) {
  .gt-brand header.app{display:grid;grid-template-columns:1fr;gap:16px}
  .gt-brand header.app .marks{justify-self:start}
  .gt-brand header.app .gt-product-logo.logo-box.gta,.gt-brand header.app .gt-product-logo.logo-box.gta img{width:180px;flex-basis:180px}
  .gt-brand header.app .app-title{width:100%}
  .gt-brand header.app .hdr-actions{width:100%}
}

/* Size by the visible artwork, including the kit's intentional transparent margins. */
@media screen{
.gt-brand #app main #tab-overview>.card>h2{border-bottom:0}
.gt-brand .gt-engraving{width:104px;height:104px;flex-basis:104px}
.gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,.gt-brand #tab-overview>.card>h2{gap:8px;min-height:108px}
.gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,.gt-brand #tab-overview>.card>h2::before{left:112px}
.gt-brand #tab-overview .your-work>p{padding-left:112px}
.gt-brand .gt-work-option .gt-engraving{width:176px;height:184px;flex-basis:176px}
.gt-brand .gt-work-option--roadmap .gt-engraving{width:204px;height:184px;flex-basis:204px}
.gt-brand .work-choice.gt-work-option{gap:12px;padding:12px}
.gt-brand .gt-work-option .btn{font-size:24px;padding-inline:6px}
.gt-brand .layout-history .chart svg text{font-size:24px}
}
@media screen and (max-width:767px){
.gt-brand .gt-engraving{width:80px;height:80px;flex-basis:80px}
.gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,.gt-brand #tab-overview>.card>h2{min-height:88px}
.gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,.gt-brand #tab-overview>.card>h2::before{left:88px}
.gt-brand #tab-overview .your-work>p{padding-left:0}
.gt-brand .gt-work-option .gt-engraving{width:116px;height:152px;flex-basis:116px}
.gt-brand .gt-work-option--roadmap .gt-engraving{width:128px;height:152px;flex-basis:128px}
.gt-brand .gt-work-option .btn{font-size:20px}
}

/* Reference shading: contained washes, with the cream paper showing through. */
@media screen{
.gt-brand #app main{background:radial-gradient(ellipse at 15% 12%,rgba(255,255,255,.42),transparent 55%),var(--cream)}
.gt-brand .stand-list.gt-metrics{background:linear-gradient(105deg,rgba(195,216,229,.74),rgba(215,229,238,.88))}
.gt-brand .work-choice.gt-work-option{background:linear-gradient(115deg,rgba(121,91,67,.14),rgba(185,155,119,.12))}
.gt-brand .work-choice.gt-work-option--roadmap{background:linear-gradient(115deg,rgba(172,203,221,.28),rgba(202,222,235,.48))}
.gt-brand .layout-notices p.gt-notice--reopened{background:linear-gradient(105deg,rgba(169,69,58,.15),rgba(169,69,58,.08))}
}

@media screen{
.gt-brand .gt-engraving{width:88px;height:88px;flex-basis:88px}
.gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,.gt-brand #tab-overview>.card>h2{gap:12px;min-height:92px}
.gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,.gt-brand #tab-overview>.card>h2::before{left:100px}
.gt-brand #tab-overview .your-work>p{padding-left:100px}
.gt-brand #tab-overview>.card:has(>h2){margin-bottom:8px!important}
.gt-brand .stand-list.gt-metrics strong{font-size:40px;line-height:1;margin-bottom:2px}
.gt-brand .stand-list.gt-metrics li{font-size:15px;line-height:1.2}
.gt-brand #tab-overview .stand-list.gt-metrics{padding-block:8px}
.gt-brand .work-choice.gt-work-option{min-height:180px}
.gt-brand .gt-work-option .gt-engraving{width:164px;height:156px;flex-basis:164px}
.gt-brand .gt-work-option--roadmap .gt-engraving{width:204px;height:156px;flex-basis:204px}
.gt-brand .layout-history .chart svg text{font-size:16px}
}
@media screen and (min-width:1000px){
.gt-brand .pilot-banner{font-size:12px;letter-spacing:-.02em}
.gt-brand header.app{padding-block:6px;grid-template-columns:210px minmax(0,1fr) 330px}
}
@media screen and (max-width:767px){
.gt-brand .gt-engraving{width:80px;height:80px;flex-basis:80px}
.gt-brand #app main .tab-panel>h1::before,.gt-brand #app main .tab-panel .card>h1::before,.gt-brand #tab-overview>.card>h2::before{left:92px}
.gt-brand .gt-work-option .gt-engraving{width:112px;height:144px;flex-basis:112px}
.gt-brand .gt-work-option--roadmap .gt-engraving{width:128px;height:144px;flex-basis:128px}
.gt-brand #tab-overview .your-work>p{padding-left:0}
}

/* Section spacing: 56 px above each major heading (40 px on a phone) and 24 px between its rule and its content. */
@media screen{
.gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,.gt-brand #app main #tab-overview>.card>h2,.gt-brand #app main .card>h2,.gt-brand #app main section>h2{margin-top:56px;margin-bottom:24px}
.gt-brand #app main #tab-overview>h1{margin-top:56px!important;margin-bottom:24px!important}
}
@media screen and (max-width:700px){
.gt-brand #app main .tab-panel>h1,.gt-brand #app main .tab-panel .card>h1,.gt-brand #app main #tab-overview>.card>h2,.gt-brand #app main .card>h2,.gt-brand #app main section>h2{margin-top:40px}
.gt-brand #app main #tab-overview>h1{margin-top:40px!important}
}

/* Page heading art: each picture is scaled so its visible artwork stands as high as Home's, with its clear margins trimmed. */
@media screen{
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/roadmap.webp"]){--nw:288;--nh:192;--vl:8;--vt:17;--vr:6;--vb:11;--vw:274;--vh:164}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/pillar.webp"]){--nw:288;--nh:288;--vl:10;--vt:35;--vr:10;--vb:29;--vw:268;--vh:224}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/tasks.webp"]){--nw:288;--nh:288;--vl:50;--vt:12;--vr:50;--vb:12;--vw:188;--vh:264}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/vendor.webp"]){--nw:288;--nh:288;--vl:44;--vt:13;--vr:49;--vb:24;--vw:195;--vh:251}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/document.webp"]){--nw:288;--nh:288;--vl:27;--vt:24;--vr:33;--vb:27;--vw:228;--vh:237}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/chart.webp"]){--nw:288;--nh:263;--vl:16;--vt:26;--vr:15;--vb:28;--vw:257;--vh:209}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/book.webp"]){--nw:288;--nh:192;--vl:8;--vt:41;--vr:8;--vb:35;--vw:272;--vh:116}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving[src$="/settings.webp"]){--nw:288;--nh:288;--vl:22;--vt:26;--vr:14;--vb:26;--vw:252;--vh:236}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving){--art-h:75;--s:calc(var(--art-h)/var(--vh))}
.gt-brand #app main .tab-panel:not(#tab-overview) h1>.gt-engraving{width:calc(var(--nw)*var(--s)*1px);height:calc(var(--nh)*var(--s)*1px);flex:0 0 auto;margin:calc(var(--vt)*var(--s)*-1px) calc(var(--vr)*var(--s)*-1px) calc(var(--vb)*var(--s)*-1px) calc(var(--vl)*var(--s)*-1px)}
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving)::before{left:calc(var(--vw)*var(--s)*1px + 12px)}
.gt-brand .words{position:relative}
.gt-brand .words .kt-more{position:absolute;right:0;top:20px;margin:0;text-align:right}
.gt-brand #app main #tab-overview>.words>h2{padding-right:190px}
}
@media screen and (max-width:700px){
.gt-brand #app main .tab-panel:not(#tab-overview) h1:has(>.gt-engraving){--art-h:56}
.gt-brand .words .kt-more{position:static;margin:0 0 16px;text-align:left}
.gt-brand #app main #tab-overview>.words>h2{padding-right:0}
}

/* Depth, scale and type (November 7, 2026). Every strength, size and the paper texture is set here, one line each. */
@media screen{
body.gt-brand{
  --gt-art-h:88;                /* visible height of the art beside each main heading, desktop (px) */
  --gt-heading-size:46px;       /* main page and section headings, desktop */
  --gt-card-heading-size:29px;  /* smaller Lora headings with double rules, desktop */
  --gt-heading-stroke:.5px;     /* extra weight on Lora headings (Lora stops at 700) */
  --gt-metric-stroke:.4px;      /* extra weight on the metric numbers */
  --gt-agency-size:26.5px;      /* authority name in the header, desktop */
  --gt-logo-w:220px;            /* header logo, desktop */
  --gt-tasks-from:.24;  --gt-tasks-to:.20;       /* Open Tasks panel, warm brown */
  --gt-blue-rgb:40,140,212;                      /* the pale map blue of the metric strip and Open Roadmap panel */
  --gt-blue-from:.18;   --gt-blue-to:.16;        /* Open Roadmap panel and the metric strip */
  --gt-reopened-from:.22; --gt-reopened-to:.12;  /* reopened notice, oxide red */
  --gt-grain:url("assets/brand/paper-grain.png");
  --gt-grain-strength:.04;      /* paper texture on those four panels only */
}
.gt-brand .stand-list.gt-metrics{background:linear-gradient(105deg,rgba(var(--gt-blue-rgb),var(--gt-blue-from)),rgba(var(--gt-blue-rgb),var(--gt-blue-to)))}
.gt-brand .work-choice.gt-work-option{background:linear-gradient(115deg,rgba(121,91,67,var(--gt-tasks-from)),rgba(185,155,119,var(--gt-tasks-to)))}
.gt-brand .work-choice.gt-work-option--roadmap{background:linear-gradient(115deg,rgba(var(--gt-blue-rgb),var(--gt-blue-from)),rgba(var(--gt-blue-rgb),var(--gt-blue-to)))}
.gt-brand .layout-notices p.gt-notice--reopened{background:linear-gradient(105deg,rgba(169,69,58,var(--gt-reopened-from)),rgba(169,69,58,var(--gt-reopened-to)))}
.gt-brand :is(.stand-list.gt-metrics,.work-choice.gt-work-option,.layout-notices p.gt-notice--reopened){position:relative;isolation:isolate}
.gt-brand :is(.stand-list.gt-metrics,.work-choice.gt-work-option,.layout-notices p.gt-notice--reopened)::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--gt-grain) repeat;opacity:var(--gt-grain-strength)}

/* Heading art: every main heading, Home included, by its visible artwork with the clear margins trimmed */
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/compass.webp"]){--nw:288;--nh:288;--vl:36;--vt:8;--vr:42;--vb:8;--vw:210;--vh:272}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/signpost.webp"]){--nw:288;--nh:263;--vl:23;--vt:17;--vr:24;--vb:12;--vw:241;--vh:234}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/notices.webp"]){--nw:288;--nh:288;--vl:16;--vt:33;--vr:16;--vb:33;--vw:256;--vh:222}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/roadmap.webp"]){--nw:288;--nh:192;--vl:8;--vt:17;--vr:6;--vb:11;--vw:274;--vh:164}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/pillar.webp"]){--nw:288;--nh:288;--vl:10;--vt:35;--vr:10;--vb:29;--vw:268;--vh:224}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/tasks.webp"]){--nw:288;--nh:288;--vl:50;--vt:12;--vr:50;--vb:12;--vw:188;--vh:264}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/vendor.webp"]){--nw:288;--nh:288;--vl:44;--vt:13;--vr:49;--vb:24;--vw:195;--vh:251}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/document.webp"]){--nw:288;--nh:288;--vl:27;--vt:24;--vr:33;--vb:27;--vw:228;--vh:237}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/chart.webp"]){--nw:288;--nh:263;--vl:16;--vt:26;--vr:15;--vb:28;--vw:257;--vh:209}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/book.webp"]){--nw:288;--nh:192;--vl:8;--vt:41;--vr:8;--vb:35;--vw:272;--vh:116}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving[src$="/settings.webp"]){--nw:288;--nh:288;--vl:22;--vt:26;--vr:14;--vb:26;--vw:252;--vh:236}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving){--s:calc(var(--gt-art-h)/var(--vh));gap:12px;min-height:calc(var(--gt-art-h)*1px + 8px)}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2)>.gt-engraving{width:calc(var(--nw)*var(--s)*1px);height:calc(var(--nh)*var(--s)*1px);flex:0 0 auto;margin:calc(var(--vt)*var(--s)*-1px) calc(var(--vr)*var(--s)*-1px) calc(var(--vb)*var(--s)*-1px) calc(var(--vl)*var(--s)*-1px)}
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2):has(>.gt-engraving)::before{left:calc(var(--vw)*var(--s)*1px + 12px)}
.gt-brand #app main #tab-overview .your-work{--vw:241;--vh:234}
.gt-brand .work-choice.gt-work-option--roadmap{min-width:0}

/* Type, matched to the approved Home mockup where it is clear */
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2){-webkit-text-stroke:var(--gt-heading-stroke) currentColor}
.gt-brand .stand-list.gt-metrics strong{-webkit-text-stroke:var(--gt-metric-stroke) currentColor}
.gt-brand .stand-list.gt-metrics strong .gt-next-up{-webkit-text-stroke:0}
.gt-brand .stand-list.gt-metrics li{font-size:16px;color:var(--charcoal)}
.gt-brand .gt-work-option p{font-size:17px;line-height:1.35;color:var(--charcoal)}
.gt-brand .gt-work-option .btn{font-size:26px}
.gt-brand .gt-work-option--roadmap .btn{border-width:2px}
.gt-brand .gt-notice-title{font-size:17px}
.gt-brand .words .gt-term dd{color:var(--charcoal)}
.gt-brand header.app .who{font-weight:600;color:var(--charcoal)}
.gt-brand header.app .juris{color:var(--charcoal)}
}
@media screen and (min-width:768px){
.gt-brand #app main :is(.tab-panel>h1,.tab-panel .card>h1,#tab-overview>.card>h2){font-size:var(--gt-heading-size)}
.gt-brand #app main :is(.card>h2,section>h2):not(#tab-overview>.card>h2,.report h2){font-size:var(--gt-card-heading-size)}
.gt-brand #tab-overview .your-work>p{padding-left:calc(var(--vw)*var(--gt-art-h)/var(--vh)*1px + 12px)}
}
@media screen and (min-width:1000px){
.gt-brand header.app{grid-template-columns:calc(var(--gt-logo-w) + 12px) minmax(0,1fr) 330px}
.gt-brand header.app .marks{width:calc(var(--gt-logo-w) + 12px)}
.gt-brand header.app .gt-product-logo.logo-box.gta,.gt-brand header.app .gt-product-logo.logo-box.gta img{width:var(--gt-logo-w);flex-basis:var(--gt-logo-w)}
.gt-brand header.app .app-title .agency{font-size:var(--gt-agency-size)}
}
@media screen and (max-width:767px){
.gt-brand .gt-work-option--roadmap .gt-engraving{width:150px;flex-basis:150px}
}
@media screen and (max-width:700px){
body.gt-brand{--gt-art-h:80}
}
@media screen and (min-width:701px) and (max-width:767px){
.gt-brand .gt-work-option--roadmap .gt-engraving{width:160px;flex-basis:160px}
}

/* Pilot banner at the approved 14 px, every width */
@media screen{
.gt-brand .pilot-banner{font-size:14px;letter-spacing:normal}
}
/* Open Roadmap panel on a phone: the picture above the text, at its size, and the text across the full panel */
@media screen and (max-width:700px){
.gt-brand .work-choice.gt-work-option--roadmap{flex-direction:column;align-items:flex-start}
.gt-brand .work-choice.gt-work-option--roadmap .gt-work-copy{width:100%}
}
/* Home work panels from 701 to 1024 px: one above the other, so each text column stays at least 280 px wide (1001 to
   1024 px added in Stage 7: side by side there, the Open Roadmap text column was only 209 to 220 px) */
@media screen and (min-width:701px) and (max-width:1024px){
.gt-brand #tab-overview .your-work .work-choices.gt-work{grid-template-columns:minmax(0,1fr)}
}
/* The light version on the tour's Cream card and the Home welcome card: 168 by 112, with 8 px clear below */
.tour-logo{display:block;width:168px;height:auto;max-width:100%;margin:0 0 8px}
@media screen and (max-width:600px){.tour-card .tour-logo{width:120px}}
/* Stage 7 polish. Home figures from 768 to 1000 px: four across, so the figure is set smaller and kept on one line
   (Phase 1 wrapped onto two lines at 768 px). The overdue tag keeps normal letter spacing, so 1 overdue never reads as
   1overdue. Words we use at 390 px: the term column fits Requirement, the longest single word. */
@media screen and (min-width:768px) and (max-width:1000px){.gt-brand .stand-list.gt-metrics strong{font-size:32px;white-space:nowrap}}
.gt-brand .stand-list.gt-metrics strong .gt-next-up{letter-spacing:normal;white-space:nowrap}
@media screen and (max-width:767px){.gt-brand .words .gt-term{grid-template-columns:116px minmax(0,1fr)}}
