/* Finish layer: the flat, modern surface shared by every main page (DESIGN.md). Loaded last; raises specificity
   instead of forcing overrides. One surface (white sheet on a cool ground, 1px rule, no shadow), one accent (cobalt),
   two radii (4px, 8px), serif titles over a sans body. No decorative marks: no handwriting, tape, tilts, sticky
   notes, marker swoops or highlighter, and no side-stripe accents. */
html,body{background:var(--ground)}
@media(max-width:1500px){.repository{display:none}}

/* Masthead: the current page is a 2px cobalt rule under the tab, not a filled pill */
.masthead{background:#fff;border-bottom:1px solid var(--line);box-shadow:none}
body .masthead .views [aria-current]{background:transparent;color:var(--ink);border-radius:0;box-shadow:inset 0 -2px 0 var(--blue)}
.views a:hover,.views button:hover{background-color:transparent}
.views a:hover:not([aria-current]){color:var(--blue)}
.dm-tabs [aria-current],.dm-tabs .active,body .ex-collection>a.active,.ex-collection [aria-current]{background:transparent;color:var(--ink);border-radius:0;box-shadow:inset 0 -2px 0 var(--blue)}

/* Titles: page and section titles in the serif; everything else stays in the sans */
h1,h2{font-family:var(--font-serif);font-weight:600;letter-spacing:-.005em}
.meta{margin:8px 0 14px;color:var(--muted);font-size:13px}
.ex-title>p,.ex-title p:first-of-type,.cover-sub{color:var(--muted)}

/* Surfaces: a white sheet with a hairline rule. Nested sheets lose their rule so cards never sit in cards */
.ex-panel,.panel,.st-card,.st-mini,.st-library,.product-card,.st-report,.ix-dashboard>.ix-grid>section,.map-panel,.brief,.ex-decision{background:#fff;border:1px solid var(--line);border-radius:var(--r-2);box-shadow:none}
.ex-panel .ex-panel,.panel .panel,.st-card .st-card{border:0}
.product-card:hover{border-color:var(--blue)}

/* Findings: a tinted panel, never rotated or striped */
.st-callout{background:var(--blue-light);border:0;border-radius:var(--r-2);box-shadow:none;max-width:78ch;padding:18px 22px}
.st-callout b{color:var(--ink)}
.findings ul a{background:#fff;border:1px solid var(--line);border-radius:var(--r-2);box-shadow:none}
.findings ul a:hover{border-color:var(--blue)}
.findings ul b{color:var(--ink);background:none}
.findings .panel-head a{background:none;border:0;padding:0;display:inline;color:var(--blue)}
.decision{background:var(--blue-light);border-radius:var(--r-2)}
.dm-readout{gap:16px;border:0;padding:6px 0 10px}
.dm-readout>div{background:#fff;border:1px solid var(--line);border-radius:var(--r-2);padding:16px 18px;box-shadow:none}
.dm-readout h2{font-size:16px;color:var(--ink)}

/* Figures: plain numbers; the story leads with one figure (story.css) */
.st-stats,.hub .stats{gap:1px}
.hub .stats{background:transparent;border:0;gap:12px}
.hub .stats div{background:#fff;border:1px solid var(--line);border-radius:var(--r-2)}
.st-verdict{border-radius:var(--r-2);box-shadow:none}
.st-timeline{border-left:1px solid var(--line)}
.st-timeline li::before{background:#fff;border:2px solid var(--blue);width:12px;height:12px}
.st-toc a{border:1px solid var(--line);box-shadow:none}

/* Tables stay plain: ruled rows are functional, not decoration */
.ex-register thead th,.table-wrap thead th{background:var(--ground)}

/* Shared-products section tabs sit under the main menu, on the ground, so the two levels read as one hierarchy */
.section-tabs{max-width:1360px;margin:0 auto;padding:14px 36px 0;display:flex;flex-wrap:wrap;gap:4px}
.section-tabs a{font-size:13px}
.lang-link{margin-left:auto;font-size:13px;font-weight:600;padding:8px 12px;border-radius:var(--r-1);border:1px solid var(--line);text-decoration:none;color:var(--ink);white-space:nowrap}
.lang-link:hover{border-color:var(--blue);color:var(--blue)}
@media(max-width:850px){.section-tabs{padding:12px 20px 0;flex-wrap:nowrap;overflow-x:auto}.lang-link{margin-left:0}}
@media print{.masthead{border-bottom:1px solid #999}}

/* Side drawer (drawer.mjs): slides in from the right over a dimmed page; motion only when allowed */
.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(560px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid var(--line);background:#fff;color:var(--ink);transform:translateX(100%)}
.drawer.in{transform:none}
.drawer::backdrop{background:rgba(20,38,61,.28)}
.drawer-in{padding:22px 24px 40px;overflow:auto;height:100%}
.drawer h2{font-size:22px;margin:4px 0 6px;max-width:30ch}
.drawer h3{font-size:16px;margin:18px 0 6px}
.drawer-close{float:right;margin-left:12px;font-size:13px;font-weight:600;padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-2);background:#fff}
.drawer-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:10px}
.drawer-list li{display:grid;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:14px}
.drawer-list small{color:var(--muted);font-size:12px}
.drawer-more{display:inline-block;margin-top:6px;font-weight:600}
@media(prefers-reduced-motion:no-preference){.drawer{transition:transform .28s cubic-bezier(.2,.7,.2,1)}}
/* Initiative preview inside the drawer */
.drawer-meta{margin:0 0 14px;font-size:13px;color:var(--muted)}
.drawer-quote{margin:0;padding:14px 16px;background:var(--ground);border-radius:var(--r-2);font-family:var(--font-serif);font-size:16px;line-height:1.55;color:var(--ink)}
.drawer-cite{margin:6px 0 16px;font-size:12px;color:var(--muted)}
.drawer-actions{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:18px 0 12px}
.drawer-primary{display:inline-block;padding:9px 14px;border-radius:var(--r-2);background:var(--blue);color:#fff;font-weight:600;text-decoration:none}
.drawer-primary:hover{background:#164bc8;color:#fff}
.drawer-check{display:inline-flex;gap:8px;align-items:center;font-size:14px}
/* Comparison tray: rises from the bottom when something is selected */
.compare-tray{position:fixed;left:50%;bottom:16px;z-index:40;display:flex;gap:14px;align-items:center;padding:10px 12px 10px 18px;background:var(--ink);color:#fff;border-radius:var(--r-2);font-size:14px;transform:translate(-50%,calc(100% + 24px));visibility:hidden;max-width:calc(100vw - 32px)}
.compare-tray.on{transform:translate(-50%,0);visibility:visible}
.compare-tray .tray-go{color:#fff;font-weight:650;padding:7px 12px;border-radius:var(--r-2);background:var(--blue);text-decoration:none;white-space:nowrap}
.compare-tray button{color:#cbdcff;font-size:13px;padding:6px 8px;border-radius:var(--r-1)}
.compare-tray button:hover:not(:disabled){background:rgba(255,255,255,.12)}
@media(prefers-reduced-motion:no-preference){.compare-tray{transition:transform .26s cubic-bezier(.2,.7,.2,1),visibility .26s}}
@media print{.compare-tray{display:none}}
@media(max-width:650px){.compare-tray{left:12px;right:12px;bottom:12px;max-width:none;justify-content:space-between;transform:translateY(calc(100% + 24px))}.compare-tray.on{transform:none}.compare-tray span{font-size:13px;line-height:1.3}}
/* Review refinement: one visible starting point; detail on request. */
.review-summary{max-width:78ch;margin:24px 0 36px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.review-summary h2{margin:0 0 14px}.review-summary p{font-size:16px;line-height:1.6}.review-summary li{margin:10px 0}
.review-controls,.optional-story{margin:20px 0;padding:14px 0;border-top:1px solid var(--line)}
.review-controls>summary,.optional-story>summary{cursor:pointer;font-size:14px;font-weight:600;padding:6px 0;color:var(--ink)}
.review-controls[open]>summary,.optional-story[open]>summary{margin-bottom:18px}
.review-freshness{font-size:13px;color:var(--muted);line-height:1.6;max-width:78ch}
.source-filters{display:grid;gap:12px;max-width:820px}.source-filters label{display:grid;gap:6px;font-size:13px}.source-filters input,.source-filters select{width:100%;padding:10px;border:1px solid var(--line);border-radius:var(--r-2);background:#fff}.source-filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.technology-detail>summary{display:flex;justify-content:space-between;gap:18px;cursor:pointer;padding:14px 0;list-style:disclosure-closed}.technology-detail>summary::before{content:'+';color:var(--blue)}.technology-detail[open]>summary::before{content:'−'}.technology-detail>summary strong{flex:1;font-size:16px}.technology-detail>summary span{font-size:13px;color:var(--muted);white-space:nowrap}.technology-detail[open]>summary{margin-bottom:16px}
.radar .tr-card{padding:4px 18px;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.tr-vs .tr-vs-rows li{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);gap:18px;padding:10px 0;border-bottom:1px solid var(--line)}.tr-vs-rows span{font-size:13px}.tr-vs-head{margin-top:24px}.tr-timeline li.tr-arrived time::after{content:' · scheduled'}
@media(max-width:650px){
 .ex-scroll:has(.mobile-records),.ix-scroll:has(.mobile-records){overflow:visible;max-height:none}.mobile-records,.executive-app .mobile-records{min-width:0;width:100%;display:block}.mobile-records thead{display:none}.mobile-records tbody{display:block}.mobile-records tr{display:block;padding:18px 0;border-bottom:1px solid var(--line)}.mobile-records tr th,.mobile-records tr td{display:block;width:100%;padding:6px 0;border:0;background:transparent;white-space:normal}.mobile-records tr th{text-align:left;font-size:16px}.mobile-records td[data-label]::before{content:attr(data-label) ': ';color:var(--muted);font-size:13px}.mobile-records small{display:block;margin:4px 0}.source-filter-fields{grid-template-columns:minmax(0,1fr)}.tr-vs .tr-vs-rows li{grid-template-columns:minmax(0,1fr)}.tr-vs-rows a{white-space:normal}.technology-detail>summary{flex-wrap:wrap}.technology-detail>summary span{width:100%;padding-left:24px}
 .masthead .views{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:8px}.masthead .views a{flex:none;min-height:44px}.masthead{gap:12px}.review-summary{margin-top:18px}
}
/* Shared opportunities read as a compact register; the evidence lives in each dossier. */
.hub .product-grid{display:block;list-style:none;padding:0}.hub .product-card{display:block;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:20px 0;margin:0;box-shadow:none}.hub .product-card .card-link{padding:0;display:block}.hub .product-card .pitch{max-width:76ch;font-size:14px}.hub .product-card h2{font-family:var(--font-sans);font-size:18px}.hub .product-card .approach{margin:10px 0 0}.hub .product-card .card-meta{font-size:13px;margin:8px 0}.product-detail .detail-grid{display:block}.product-detail .detail-side{margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-detail .detail-side>.panel{margin:0}.source-note{font-size:13px;color:var(--muted)}.fr-products{max-width:1100px}.fr-products .fr-list{list-style:none;padding:0}.fr-products .fr-list>li{padding:18px 0;border-top:1px solid var(--line)}.fr-products h2{font-size:22px;margin:0 0 8px}.fr-products p{max-width:76ch}.fr-products form{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.fr-products form label{display:grid;gap:6px;flex:1;min-width:180px}.fr-products input,.fr-products select{padding:10px;border:1px solid var(--line);border-radius:var(--r-2);background:#fff}
@media(max-width:650px){.product-detail .detail-side{display:block}.product-detail .detail-side>.panel{margin:18px 0}}
.story-step-controls{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.story-step-controls button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-2);font-size:13px}.story-step-controls [aria-pressed=true]{background:var(--ink);color:white}
@media(max-width:650px){.executive-app .mobile-records tr th,.executive-app .mobile-records tr td{width:100%;max-width:none}.mobile-records th a{white-space:normal}}
.more-navigation{position:relative;font-size:13px;flex:none}.more-navigation>summary{cursor:pointer;min-height:44px;padding:12px;color:var(--muted);font-weight:600}.more-navigation>div{position:absolute;right:0;top:100%;z-index:30;display:grid;min-width:200px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r-2)}.more-navigation a{display:block}.more-navigation a:focus-visible{outline-offset:-3px}
@media(max-width:650px){.masthead .views{overflow:visible;flex-wrap:wrap}.masthead .views>a{padding:8px;font-size:12px}.more-navigation>div{left:0;right:auto}}
.review-points{margin:0;padding:0;list-style:none;display:grid;gap:14px}
.review-points b{font-size:16px}.review-points p{margin:4px 0 0}
.review-actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:18px 0 0}
/* Briefing opening: four short answers, two by two; research controls sit underneath */
.brief-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-2);overflow:hidden;margin:22px 0 28px}
.brief-open>div{background:#fff;padding:18px 20px}
.brief-open h2{font-size:18px;margin:0 0 8px}
.brief-open p,.brief-open li{font-size:14px;line-height:1.55}
.brief-open p{margin:0}.brief-open ol,.brief-open ul{margin:0;padding-left:18px;display:grid;gap:6px}
.brief-open time{font-variant-numeric:tabular-nums;color:var(--muted);margin-right:4px}
@media(max-width:760px){.brief-open{grid-template-columns:minmax(0,1fr)}}
.mobile-records .ex-date-note{display:none}
