/* ==========================================================================
   Goulter Compliance Advisory: shared design system
   Loaded by every page. Page-specific layout (heroes, tool dashboards,
   article prose) stays in each page's own embedded <style> block.
   ========================================================================== */

/* ===== FONTS (self-hosted; Space Grotesk & Inter are variable fonts, so
   several declared weights below point at the same physical file; this
   mirrors exactly what Google Fonts itself was serving) ===== */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/space-grotesk-variable.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/space-grotesk-variable.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/space-grotesk-variable.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/space-grotesk-variable.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-variable.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-500.woff2') format('woff2')}

/* ===== DESIGN TOKENS ===== */
:root{
  /* paper: deeper, blue-tinted neutral (was warm off-white) */
  --paper:#e9eef4;
  --paper-2:#ffffff;      /* cards / raised surfaces */
  --paper-3:#dde6f0;      /* tinted section bands */
  --line:#cbd6e2;         /* hairline borders */

  --ink:#0f1c2e;          /* primary text: deep slate-blue */
  --ink-2:#334357;        /* secondary text */
  --mute:#54687d;         /* muted body */
  --mute-2:#71879a;       /* captions / labels */

  --blue:#3d7ab5;         /* PRIMARY ACCENT */
  --blue-deep:#2c5c8c;    /* accent text / hover */
  --blue-soft:#dfeaf5;    /* accent wash */
  --blue-glow:rgba(61,122,181,0.22);
  --blue-grad:linear-gradient(135deg,#4a89c9,#2c5c8c);

  --amber:#a8711a;        /* secondary accent: contracts page only */
  --amber-soft:#fbf1de;
  --amber-line:#e7cf9d;

  --shadow-sm:0 1px 2px rgba(8,18,32,0.07),0 4px 14px rgba(8,18,32,0.08);
  --shadow-md:0 8px 22px rgba(8,18,32,0.12),0 20px 52px rgba(8,18,32,0.13);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:22px;
  --radius-pill:999px;

  --maxw:1200px;
  --nav-maxw:1200px;  /* header width, independent of --maxw, which subpages narrow for content */
  --pad:clamp(20px,5vw,64px);
}

/* ===== RESET & BASE ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  background-color:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;line-height:1.06;letter-spacing:-0.025em;font-weight:600;color:var(--ink)}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.04em}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

.skip-link{
  position:fixed;top:10px;left:12px;z-index:1000;padding:10px 14px;
  border-radius:var(--radius-sm);background:var(--ink);color:#fff;
  font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;
  box-shadow:var(--shadow-md);transform:translateY(-150%);transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0)}
#main-content:focus{outline:none}

/* ===== EYEBROW (mono kicker with leading rule) ===== */
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--blue-deep);display:inline-flex;align-items:center;gap:12px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--blue);opacity:0.85}

/* ===== NAV ===== */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(12px) saturate(160%);
  background:rgba(233,238,244,0.78);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
header.nav.scrolled{border-bottom-color:var(--line);background:rgba(233,238,244,0.94);box-shadow:var(--shadow-sm)}
header.nav .wrap{max-width:var(--nav-maxw)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:12px;font-family:'Space Grotesk';font-weight:600;font-size:17px;letter-spacing:-0.01em;color:var(--ink);flex:0 0 auto;white-space:nowrap}
/* .glyph is the inline-SVG shield monogram (shield + amber keyline echo + carved G).
   Colors are driven by these vars so the footer can lift them on dark ink. */
.brand .glyph{width:30px;height:30px;flex:0 0 auto;--logo-fill:var(--blue);--logo-acc:var(--amber)}
.brand small{display:block;font-family:'IBM Plex Mono';font-weight:400;font-size:10px;letter-spacing:0.18em;color:var(--mute-2);text-transform:uppercase}
/* ===== SUBNAV (subpage headers: quiet Home / section links) ===== */
.subnav{display:flex;align-items:center;gap:18px}
.subnav a{font-size:14px;color:var(--mute);display:inline-flex;align-items:center;gap:7px;transition:color .2s}
.subnav a:hover{color:var(--blue-deep)}
.subnav .sep{width:1px;height:14px;background:var(--line)}

nav.links{display:flex;gap:clamp(16px,1.8vw,30px);align-items:center}
nav.links a:not(.btn){font-size:14px;color:var(--mute);transition:color .2s}
nav.links a:not(.btn):hover{color:var(--ink)}
nav.links > a[aria-current="page"],.has-dd.active > .dd-toggle{color:var(--blue-deep);box-shadow:inset 0 -3px var(--blue);padding-block:12px;font-weight:600}
nav.links a.btn-primary{color:#fff}
.menu-toggle{display:none;background:none;border:0;color:var(--ink);cursor:pointer}

/* ===== DROPDOWN NAV (shared header; see assets/js/site-nav.js) ===== */
.has-dd{position:relative;display:flex;align-items:center}
.dd-toggle{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;margin:0;
  font-family:inherit;font-size:14px;color:var(--mute);cursor:pointer;transition:color .2s}
.dd-toggle:hover,.has-dd.active .dd-toggle,.has-dd.open .dd-toggle{color:var(--ink)}
.dd-toggle .caret{font-size:10px;line-height:1;transition:transform .2s ease;opacity:.75}
.has-dd.open .dd-toggle .caret{transform:rotate(180deg)}
.dd-panel{display:none;min-width:220px;background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px}
.has-dd.open .dd-panel{display:block}
.dd-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;
  border-radius:var(--radius-sm);font-size:14px;color:var(--mute);white-space:nowrap;transition:background .18s,color .18s}
a.dd-item:hover{background:var(--blue-soft);color:var(--ink)}
.dd-item.soon{color:var(--mute-2);cursor:default}
.soon-badge{font-family:'IBM Plex Mono';font-style:normal;font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--mute-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:1px 6px}
.dd-all{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;margin-bottom:6px;
  border-bottom:1px solid var(--line);border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  font-family:'Space Grotesk';font-weight:600;font-size:14px;color:var(--ink);transition:background .18s}
.dd-all:hover{background:var(--blue-soft)}
.dd-all .arr{color:var(--blue-deep);transition:transform .2s}
.dd-all:hover .arr{transform:translateX(3px)}
.mega-cols{display:flex;gap:6px}
.mega-col{min-width:186px}
.mega-title{display:block;font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mute-2);padding:8px 12px 4px}

/* Desktop placement; button activation controls disclosure on every width. */
@media(min-width:1181px){
  .dd-panel{position:absolute;top:100%;left:0;margin-top:14px;z-index:60}
  .dd-panel.mega{left:auto;right:0}
  .has-dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px}
  /* Disclosure visibility follows aria-expanded via .open, including keyboard and touch. */
}

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex;align-items:center;gap:9px;font-family:'Space Grotesk';font-weight:500;
  font-size:14px;padding:12px 24px;border-radius:var(--radius-pill);cursor:pointer;border:1px solid transparent;
  transition:transform .18s ease, box-shadow .25s ease, background .2s ease;white-space:nowrap;
}
.btn-primary{background:var(--blue-grad);color:#fff;box-shadow:0 2px 10px var(--blue-glow)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px var(--blue-glow)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:var(--paper-2)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue-deep);transform:translateY(-1px)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}
.nav .btn{padding:10px 20px}

/* ===== CARD PRIMITIVE (used by .card and .post) ===== */
.card,.post{
  position:relative;padding:34px 30px 30px;border:1px solid var(--line);border-radius:var(--radius-md);
  background:var(--paper-2);box-shadow:var(--shadow-sm);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;overflow:hidden;
}
.card::after,.post::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;
  transform:scaleX(0);transform-origin:left;background:var(--blue-grad);transition:transform .35s ease}
.card:hover,.post:hover{transform:translateY(-3px);border-color:rgba(61,122,181,0.35);box-shadow:var(--shadow-md)}
.card:hover::after,.post:hover::after{transform:scaleX(1)}
.card .num{font-family:'IBM Plex Mono';font-size:12px;color:var(--blue-deep);letter-spacing:0.1em}
.card h3{font-size:22px;margin:18px 0 12px;font-weight:600}
.card p{color:var(--mute);font-size:15px}
.card .ico{width:42px;height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:6px;color:var(--blue-deep);background:var(--blue-soft)}
.card .ico svg{width:20px;height:20px}

/* ===== SECTION SHELL ===== */
section{position:relative;padding:clamp(80px,10vw,136px) 0}
.sec-head{max-width:760px;margin-bottom:60px}
.sec-head h2{font-size:clamp(30px,4vw,52px);margin-top:18px}
.sec-head p{color:var(--mute);font-size:17px;margin-top:18px}

/* ===== FORM FIELDS ===== */
form{display:flex;flex-direction:column;gap:14px}
.field label{font-family:'IBM Plex Mono';font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mute-2);display:block;margin-bottom:7px}
.field input,.field textarea{
  width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:13px 15px;color:var(--ink);font-family:'Inter';font-size:15px;transition:border-color .2s,box-shadow .2s
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-glow)}
.field textarea{resize:vertical;min-height:74px}
form .btn{justify-content:center;margin-top:6px;padding:15px}
.form-note{font-size:12px;color:var(--mute-2);text-align:center}

/* ===== FOOTER ===== */
footer{background:var(--ink);color:#cfd9e2;border-top:1px solid var(--line);padding:54px 0 40px}
footer.slim{padding:32px 0}
footer .brand{color:#fff}
footer .brand .glyph{--logo-fill:#4a89c9;--logo-acc:#d29e45}
footer .brand small{color:#8fa1b3}
.foot-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.foot-grid .lbl{font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8497aa}
.foot-grid .contact a{display:block;color:#b0bfcc;font-size:14px;margin-top:8px;transition:color .2s}
.foot-grid .contact a:hover{color:var(--blue)}
.foot-legal{margin-top:42px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.1);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:#8497aa}
footer.slim .foot-legal{margin-top:0;padding-top:0;border-top:0}

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s cubic-bezier(.2,.7,.2,1),transform .65s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ===== RESPONSIVE (shared nav/menu behavior; 1180px so the full link set
   (incl. the subpages' extra Home link) never crowds the brand or wraps its
   tagline before collapsing to the hamburger) ===== */
@media(max-width:1180px){
  nav.links{display:none}
  nav.links.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;
    align-items:stretch;background:var(--paper-2);padding:22px var(--pad);border-bottom:1px solid var(--line);
    gap:14px;box-shadow:var(--shadow-md);max-height:calc(100vh - 72px);overflow-y:auto}
  .menu-toggle{display:block}
  /* Dropdowns collapse to tap-to-expand accordions inside the stacked menu. */
  .has-dd{display:block;width:100%}
  .dd-toggle{width:100%;justify-content:space-between;font-size:15px}
  .dd-panel{position:static;box-shadow:none;border:0;background:transparent;padding:6px 0 4px 12px;min-width:0}
  .dd-panel.mega{padding-left:0}
  .mega-cols{flex-direction:column;gap:0}
  .dd-item,.dd-all{padding-left:12px}
  .dd-all{border-bottom:0;margin-bottom:0}
}

/* The full "Goulter Compliance Advisory" wordmark is nowrap; step it down on
   narrow phones so it clears the menu toggle. */
@media(max-width:420px){
  .brand{font-size:15px;gap:9px}
  .brand small{font-size:9px;letter-spacing:0.14em}
}

/* Below ~480px the brand wordmark and a subnav (Home / All tools, used by the
   compact tool-page header) no longer both fit on one row: the wordmark text
   pushes the subnav links past the viewport edge. Collapse the brand to its
   glyph only (wordmark stays in the accessibility tree, just visually hidden)
   so the subnav keeps its full width and stays on-screen. Full nav.links
   already hides below 1180px, so this only affects the subnav case. */
@media(max-width:480px){
  .brand span{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }
  .subnav{gap:10px}
  .subnav a{font-size:13px}
}

/* ===== ACCESSIBILITY ===== */
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ===== REMEDIATION ROADMAP / PLAYBOOK / REPORT (free features) ===== */
/* Shared on-screen and print styling for the remediation roadmap, incident
   response playbook, and printable report sections in the assessment tools. */
.rm-intro{font-size:13.5px;color:var(--mute);line-height:1.6;margin:0 0 16px;max-width:70ch}
.rm-tier{margin-top:16px}
.rm-tier-label{font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rm-count{background:var(--paper-3);border-radius:999px;padding:1px 8px;font-size:10.5px;color:var(--mute-2)}
.rm-critical .rm-tier-label{color:var(--fca,#b4452f)}
.rm-warn .rm-tier-label{color:var(--aks,#9a6b15)}
.rm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.rm-item{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--paper-2)}
.rm-critical .rm-item{border-left-color:var(--fca,#b4452f)}
.rm-warn .rm-item{border-left-color:var(--aks,#9a6b15)}
.rm-item-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px}
.rm-el{font-family:'IBM Plex Mono';font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-deep)}
.rm-stmt{font-size:13.5px;color:var(--ink);line-height:1.5;margin-bottom:6px}
.rm-step{font-size:13px;color:var(--ink-2);line-height:1.55;background:var(--blue-soft);border-radius:8px;padding:8px 10px}
.rm-step-label{display:block;font-family:'IBM Plex Mono';font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-deep);margin-bottom:2px}
.pb-steps{margin:0;padding-left:20px;font-size:13.5px;color:var(--ink-2);line-height:1.6}
.pb-steps li{margin-bottom:7px}
.pb-step-t{font-weight:600;color:var(--ink)}

/* Printable report document (renders inside the isolated print view #reportOutput). */
#reportOutput{display:none}
.rpt-doc{max-width:720px;margin:0 auto;padding:10px 0;color:#111;font-size:12.5px;line-height:1.5}
.rpt-header{border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:14px}
.rpt-brand{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:700}
.rpt-brand-sub{font-family:'IBM Plex Mono';font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#555}
.rpt-title{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:600;margin:6px 0 4px}
.rpt-meta{font-family:'IBM Plex Mono';font-size:10px;color:#555;margin-bottom:12px}
.rpt-intro{margin:0 0 14px;color:#333}
.rpt-section{margin-bottom:16px}
.rpt-h2{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;border-bottom:1px solid #ccc;padding-bottom:4px;margin-bottom:8px}
.rpt-scoreline{display:flex;align-items:baseline;gap:16px}
.rpt-score-num{font-family:'Space Grotesk',sans-serif;font-size:32px;font-weight:700}
.rpt-score-of{font-size:14px;color:#555}
.rpt-band{font-weight:600}
.rpt-complete{font-family:'IBM Plex Mono';font-size:10px;color:#555;margin-left:auto}
.rpt-table{width:100%;border-collapse:collapse;font-size:12px}
.rpt-table th{text-align:left;border-bottom:1px solid #999;padding:5px 6px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#555}
.rpt-table td{border-bottom:1px solid #e2e2e2;padding:6px}
.rpt-table .rpt-num{text-align:right;font-variant-numeric:tabular-nums}
.rpt-gaps{margin:0;padding-left:18px}
.rpt-gap{margin-bottom:10px}
.rpt-gap-top{margin-bottom:2px}
.rpt-step{margin-top:3px;color:#333}
.rpt-disclaimer{margin-top:18px;padding-top:10px;border-top:1px solid #ccc;font-size:10px;color:#666;line-height:1.5}

/* Context navigation for the three multi-step workspaces. */
.storage-status{position:relative;z-index:40;margin:80px var(--pad) 0;padding:14px 18px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);font-size:14px;line-height:1.6}
.storage-status[hidden]{display:none}
.policy-filter-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 20px;padding:14px 16px;background:var(--blue-soft);border:1px solid var(--line);border-radius:8px;font-size:14px}
.policy-filter-summary p{margin:0;flex:1;overflow-wrap:anywhere}
.policy-empty{padding:22px;border:1px dashed var(--line);border-radius:8px;margin:16px 0;font-size:16px}
@media screen{
  .tool-workspace{display:grid;grid-template-columns:244px minmax(0,1fr);gap:28px;max-width:1440px;margin:0 auto;padding:28px var(--pad) 40px;align-items:start}
  .tool-sidebar{position:sticky;top:92px;min-width:0;max-height:calc(100dvh - 112px);overflow-y:auto;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm)}
  .workspace-menu > summary{padding:20px 18px 14px;font-family:'Space Grotesk';font-weight:600;font-size:16px;color:var(--ink);cursor:pointer;list-style:none}
  .workspace-menu > summary::-webkit-details-marker{display:none}
  .workspace-menu > summary::after{content:'−';float:right;color:var(--blue-deep)}
  .workspace-menu:not([open]) > summary::after{content:'+'}
  .workspace-selection{display:block;margin-top:5px;font-family:Inter;font-weight:400;font-size:14px;line-height:1.45;color:var(--mute)}
  .tool-sidebar .tabs-bar{position:static;background:none;border:0;backdrop-filter:none}
  .tool-sidebar .tabs-inner{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:0 10px 12px;margin:0;max-width:none}
  .tool-sidebar .tab-btn{width:100%;min-height:44px;text-align:left;white-space:normal;line-height:1.45;font-size:14px;padding:11px 12px;border:1px solid transparent;border-left:3px solid transparent;border-radius:6px;background:transparent;color:var(--ink-2)}
  .tool-sidebar .tab-btn:hover{background:var(--blue-soft);border-color:var(--line)}
  .tool-sidebar .tab-btn.active{background:var(--blue-soft);color:var(--blue-deep);border-color:transparent;border-left-color:var(--blue);font-weight:600}
  .tool-sidebar :is(button,input,select,a,summary):focus-visible{outline:2px solid var(--blue-deep);outline-offset:2px}
  .tool-sidebar .tabs-progress{margin:10px 8px 0;font-family:Inter;font-size:14px;color:var(--mute)}
  .workspace-note{font-size:14px;line-height:1.6;color:var(--mute);padding:16px 18px;margin:0;border-top:1px solid var(--line)}
  .workspace-resource{display:block;margin:0 18px 16px;color:var(--blue-deep);font-size:14px;text-decoration:underline;text-underline-offset:3px}
  .workspace-filters{padding:16px 18px;border-top:1px solid var(--line)}
  .workspace-filters label{display:block;font-size:14px;font-weight:600;margin:0 0 8px}
  .workspace-filters input,.workspace-filters select{width:100%;min-width:0;min-height:44px;font:inherit;font-size:14px;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:10px;margin-bottom:16px;color:var(--ink)}
  .workspace-filters :disabled{opacity:.55}
  .workspace-filters p{font-size:14px;color:var(--mute);line-height:1.5;margin:0}
  .tool-content{min-width:0}
  .tool-workspace .tool-content :is(.tool-wrap,.assess-wrap,.wrap-tool){max-width:none;padding:0 0 32px}
  .tool-workspace .tool-content .disclaimer{padding:24px 0 0}
  .tool-workspace .sticky-shell{position:static}
  .tool-workspace .stats-inner,.tool-workspace .toolbar-inner{padding-left:0;padding-right:0;flex-wrap:wrap}
  .tool-workspace .workspace-layout{grid-template-columns:minmax(0,1fr);gap:24px}
  .tool-workspace .readiness-card{position:static;order:-1}
  .tool-workspace .readiness-list{display:flex;flex-wrap:wrap;gap:6px 22px}
  .tool-workspace .lane-grid{grid-template-columns:1fr}
  .tool-workspace [hidden]{display:none!important}
  @media(max-width:900px){
    .tool-workspace{grid-template-columns:minmax(0,1fr);gap:22px;padding-top:20px}
    .tool-sidebar{position:static;max-height:none;overflow:visible}
    .workspace-menu > summary{padding:14px 18px}
    .tool-workspace .field-grid,.tool-workspace .qc-grid{grid-template-columns:1fr}
    .tool-workspace .pol-list{grid-template-columns:1fr}
  }
}

@media print{
  .storage-status,.policy-filter-summary,.policy-empty{display:none!important}
  .tool-sidebar{display:none!important}
  .tool-workspace,.tool-content{display:block;max-width:none;margin:0;padding:0}
  /* Isolated report print mode (tools add body.print-report). */
  body.print-report > *:not(main){display:none!important}
  body.print-report > main{display:block!important}
  body.print-report > main > *:not(#reportOutput){display:none!important}
  body.print-report #reportOutput{display:block!important}
  .rpt-section,.rpt-el-row,.rpt-gap{break-inside:avoid}
}

/* Weekly reading paths share the site's type, spacing and product colors. */
.weekly-status{display:block;font-size:14px;line-height:1.5;margin:14px 0;padding:12px 14px;border-left:3px solid var(--blue);background:var(--paper-3);color:var(--ink)}
.issue-head .weekly-status{background:rgba(255,255,255,.1);color:#fff;border-color:#9ed0df}
.report-location{padding-top:24px;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.report-outline,.product-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding-top:18px;padding-bottom:18px}
.report-outline a,.product-nav a,.related-tools a{display:inline-flex;align-items:center;min-height:44px;color:var(--blue-deep);text-decoration:underline;text-underline-offset:3px}
.report-outline{border-bottom:1px solid var(--line)}
.product-nav{border-top:1px solid var(--line)}
.changes ul{list-style:none;padding:0;display:grid;gap:16px;margin-top:24px}
.changes li{padding:16px 20px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}
.changes li>a{font-weight:600;line-height:1.5;color:var(--blue-deep)}
.changes li>p{margin-top:8px;color:var(--mute);font-size:14px;line-height:1.6}
.related-tools{margin-top:20px;padding:16px 20px;border:1px solid var(--line);border-radius:10px}
.related-tools h4{font-size:15px}.related-tools p{font-size:14px;line-height:1.6}.related-tools span{display:block}
#corrections ol{padding-left:22px;margin-top:20px}#corrections li{padding:10px 0;line-height:1.6}
.report-return{position:relative;margin:90px auto 16px;max-width:var(--maxw);padding:12px 24px;background:var(--paper-3);border-left:4px solid var(--blue)}
.report-return a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;color:var(--blue-deep)}
section[id],article[id]{scroll-margin-top:100px}
@media print{
 .report-outline,.product-nav,.report-location,.report-return{display:none!important}
 .weekly-status,.related-tools,.changes li{background:#fff!important;color:#111!important;border-color:#888!important}
 .changes li,.related-tools{break-inside:avoid}
 .finding{break-inside:auto!important}.finding h3,.related-tools h4{break-after:avoid}
 .src{display:block!important}.src .src-type{display:inline}
 a{color:#111!important}.issue-head .weekly-status{color:#111!important}
}
.report-return + main .dash-head{padding-top:24px}

.hero-sweeps .weekly-status{margin:8px 0;padding:8px 10px;font-size:13px}
.hero-sweeps .sweep-period{margin-top:6px;font-size:12px;line-height:1.5}
.hero-sweeps .sweep-preview{padding:16px 22px}

@media print{
 #site-header,.skip-link{display:none!important}
 .sec h2,.sec h2 + p{break-after:avoid}
 .src .src-type{margin-right:6px}
}
.review-history{padding-left:22px;margin-top:16px}.review-history li{padding:12px 0;line-height:1.6}
@media print{
 .triage,.trend,.horizon-item,.impl-row{break-inside:auto!important}
 .sec h2 + p,.finding .chips,.action{break-inside:avoid}
 .finding .chips{break-after:avoid}
 .issue-head{padding:0 0 18px!important}.issue-head h1{font-size:30px;max-width:none}
 .issue-dates{margin-top:18px}.triage{padding:18px 0;box-shadow:none}
 .sec h2 + p{orphans:3;widows:3}
}
.impl-row h3{margin-top:12px}
@media print{
 .finding h3,.horizon-item h3,.impl-row h3{break-inside:avoid;break-after:avoid}
}
/* Tool interaction and recovery states, scoped to their own controls. */
.sec-heading{margin:0;font:inherit}
.sec-header{width:100%;border:0;background:transparent;color:inherit;text-align:left;font:inherit;gap:12px}
.sec-header-left{min-width:0}
.sec-header-right{flex-shrink:0}
.sec-header:focus-visible{outline:3px solid var(--blue-deep,#225780);outline-offset:-3px}
.control-review-note{padding:8px 10px;border-left:3px solid #896119;background:#fff6df;color:#513800;font-size:13px;line-height:1.5}
.copy-recovery{margin:16px 0;padding:16px;border:1px solid var(--line,#aaa);border-radius:8px;background:var(--paper-2,#fff);color:var(--ink,#111)}
.copy-recovery textarea{box-sizing:border-box;width:100%;padding:12px;font:14px/1.5 monospace;resize:vertical;color:inherit;background:var(--paper,#fff)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:420px){.sec-header{padding:14px 12px!important;gap:8px}.sec-header-right{gap:8px!important}}
/* At native browser zoom, stacked sticky filters otherwise cover the controls. */
@media(max-height:600px){body .sticky-band,body .toolbar{position:static!important}}
.sec-header,.check-item input{scroll-margin-block:120px}
@media print{
  .copy-recovery,#generateRoadmapBtn{display:none!important}
  body .sticky-band{position:static!important;top:auto!important;transform:none!important}
}
