/* Wave 12 widget (Lane Briefing): scoped under .w-w12. Reads shell tokens only (both themes). No external resources. */
.w-w12 { min-width: 0; }
.w-w12 .vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.w-w12 .w12-grid2 { display: grid; gap: var(--s5, 24px); grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; }
@media (max-width: 860px) { .w-w12 .w12-grid2 { grid-template-columns: minmax(0, 1fr); } }
.w-w12 .w12-panel, .w-w12 .w12-mapbox, .w-w12 .w12-block, .w-w12 .w12-headline { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); padding: 16px; min-width: 0; }
.w-w12 .w12-panel fieldset { border: 0; margin: 0 0 14px; padding: 0; min-width: 0; }
.w-w12 .w12-panel legend { font-weight: 650; margin: 0 0 8px; padding: 0; }
.w-w12 .w12-panel .inline-fields { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.w-w12 .w12-panel .field input, .w-w12 .w12-panel .field select { width: 100%; max-width: 100%; }
.w-w12 .w12-panel select { min-height: 44px; }
.w-w12 .w12-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.w-w12 .w12-actions .btn { min-height: 44px; }
.w-w12 .w12-urlrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.w-w12 .w12-urlrow input { width: 100%; min-width: 0; min-height: 44px; font: .8125rem var(--mono, ui-monospace, monospace); }
.w-w12 .w12-status { margin: 6px 0 0; font-size: .8125rem; color: var(--text-2); min-height: 1.2em; }
.w-w12 .w12-ex { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--warn-text, var(--warn)); border: 1px solid var(--warn); border-radius: 4px; padding: 0 6px; vertical-align: middle; }
.w-w12 .w12-exline { margin: 0 0 10px; font-size: .875rem; color: var(--text-2); }
.w-w12 .w12-pick { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 10px; font-size: .875rem; color: var(--text-2); }
.w-w12 .w12-pick button { min-height: 44px; padding: 6px 12px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--surface); color: var(--text); font: inherit; font-size: .875rem; cursor: pointer; }
.w-w12 .w12-pick button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 650; }
.w-w12 .w12-mapbox { position: sticky; top: 16px; }
@media (max-width: 860px) { .w-w12 .w12-mapbox { position: static; } }
.w-w12 .w12-out { display: grid; gap: 16px; margin-top: 20px; min-width: 0; }
.w-w12 .w12-headline { background: var(--surface-2); }
.w-w12 .w12-k { margin: 0 0 4px; font-size: .8125rem; font-weight: 650; color: var(--text-2); }
.w-w12 .w12-big { margin: 0; font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2.1rem); font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.w-w12 .w12-sub { margin: 8px 0 0; font-size: .9rem; color: var(--text-2); }
.w-w12 .w12-block h3 { margin: 0 0 10px; font-size: 1.0625rem; }
.w-w12 .w12-block h4 { margin: 16px 0 6px; font-size: .9375rem; }
.w-w12 .w12-check { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.w-w12 .w12-check li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px 12px; background: var(--surface-2); border-radius: var(--radius, 10px); border-left: 3px solid var(--accent); }
@media (max-width: 560px) { .w-w12 .w12-check li { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
.w-w12 .w12-tag-k { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-text, var(--accent)); }
.w-w12 .w12-ct { font-size: .9375rem; overflow-wrap: anywhere; }
.w-w12 .w12-dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; font-size: .9rem; }
.w-w12 .w12-dl dt { color: var(--text-2); }
.w-w12 .w12-dl dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 650; overflow-wrap: anywhere; }
.w-w12 .w12-note { margin: 10px 0 0; font-size: .8125rem; color: var(--text-2); }
.w-w12 .w12-src { margin: 12px 0 0; padding-top: 8px; border-top: 1px dashed var(--line-2); font-size: .8125rem; color: var(--text-2); overflow-wrap: anywhere; }
.w-w12 .w12-tw { overflow-x: auto; margin: 12px 0 0; max-width: 100%; }
.w-w12 .w12-tw:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.w-w12 .w12-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.w-w12 .w12-table th, .w-w12 .w12-table td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.w-w12 .w12-table th[scope="col"] { font-weight: 650; color: var(--text-2); background: var(--thead-bg, var(--surface-2)); }
.w-w12 .w12-table th[scope="row"] { font-weight: 500; }
.w-w12 .w12-table .r { text-align: right; font-variant-numeric: tabular-nums; }
.w-w12 .w12-links { margin: 12px 0 0; padding-left: 1.2em; font-size: .875rem; }
/* charts */
.w-w12 .w12-svg { display: block; width: 100%; height: auto; max-width: 100%; }
.w-w12 .w12-grid { stroke: var(--line); stroke-width: 1; }
.w-w12 .w12-tx { fill: var(--text-2); font: 11px var(--font, system-ui, sans-serif); }
.w-w12 .w12-ln { fill: none; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.w-w12 .w12-ln.s1, .w-w12 .w12-sw.s1 { stroke: var(--c1); background: var(--c1); }
.w-w12 .w12-ln.s2, .w-w12 .w12-sw.s2 { stroke: var(--c2); background: var(--c2); }
.w-w12 .w12-ln.s3, .w-w12 .w12-sw.s3 { stroke: var(--c4, var(--text-2)); background: var(--c4, var(--text-2)); }
.w-w12 .w12-ln.dash { stroke-dasharray: 6 4; }
.w-w12 .w12-ln.thin { stroke-width: 1.8; }
.w-w12 .w12-dot { fill: var(--surface); stroke: var(--text); stroke-width: 2; }
.w-w12 .w12-sw { display: inline-block; width: 18px; height: 4px; border-radius: 2px; vertical-align: middle; }
.w-w12 .w12-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--text-2); }
.w-w12 .w12-bar.a { fill: var(--c1); }
.w-w12 .w12-bar.b { fill: var(--c2); }
.w-w12 .w12-bar.soft { opacity: .38; }
.w-w12 .w12-sel { fill: var(--accent); opacity: .22; }
/* tile map */
.w-w12 .w12-tile { cursor: pointer; }
.w-w12 .w12-tile rect { fill: var(--surface-3); stroke: var(--bg, var(--surface)); stroke-width: 1; }
.w-w12 .w12-tl { font: 700 20px var(--font, system-ui, sans-serif); fill: var(--text); pointer-events: none; }
.w-w12 .w12-tl.on { fill: var(--accent-ink); }
.w-w12 .w12-tile:hover rect { stroke: var(--text); stroke-width: 2; }
.w-w12 .w12-tile:focus { outline: none; }
.w-w12 .w12-tile:focus-visible rect { stroke: var(--focus); stroke-width: 3.5; }
.w-w12 .w12-tile.is-o rect { fill: var(--c1); }
.w-w12 .w12-tile.is-d rect { fill: var(--c2); }
.w-w12 .w12-route { stroke: var(--text); stroke-width: 2.4; stroke-dasharray: 7 5; pointer-events: none; }
.w-w12 .w12-tag { font: 700 12px var(--font, system-ui, sans-serif); fill: var(--accent-ink); pointer-events: none; }
.w-w12 .w12-mapsum { margin: 10px 0 0; font-size: .875rem; color: var(--text-2); }
.w-w12 .w12-printhead { display: none; }
@media (prefers-reduced-motion: reduce) { .w-w12 * { transition: none !important; } }
/* print: one column, light colours, only the briefing */
@media print {
  .no-print { display: none !important; }
  .w-w12 { --surface: #fff; --surface-2: #f3f3f3; --surface-3: #e4e4e4; --line: #bdbdbd; --line-2: #8a8a8a; --text: #000; --text-2: #1f1f1f; --c1: #0b5a8c; --c2: #b04a00; --c4: #444; --accent: #0b5a8c; --accent-ink: #fff; --accent-soft: #dcecf6; --accent-text: #0b4a73; --warn: #8a4000; --warn-text: #6b3000; --bg: #fff;
    -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }
  .w-w12 .w12-panel, .w-w12 .w12-urlrow, .w-w12 .w12-actions, .w-w12 .w12-pick, .w-w12 .w12-status { display: none !important; }
  .w-w12 .w12-grid2 { display: block; }
  .w-w12 .w12-printhead { display: block; margin: 0 0 10px; padding: 0 0 8px; border-bottom: 2px solid #000; }
  .w-w12 .w12-ph1 { margin: 0; font-size: 18pt; font-weight: 700; }
  .w-w12 .w12-ph2 { margin: 4px 0 0; font-size: 9pt; overflow-wrap: anywhere; }
  .w-w12 .w12-out { display: block; margin: 0; }
  .w-w12 .w12-block, .w-w12 .w12-headline { break-inside: avoid; page-break-inside: avoid; border: 1px solid #999; border-radius: 0; margin: 0 0 10px; padding: 8px 10px; }
  .w-w12 .w12-mapbox { position: static; break-inside: avoid; border: 1px solid #999; border-radius: 0; margin: 0 0 10px; padding: 8px 10px; max-width: 420px; }
  .w-w12 .w12-svg { max-height: 240px; }
  .w-w12 .w12-tw { overflow: visible; }
  .w-w12 .w12-src a { color: #000; text-decoration: none; }
  .w-w12 .w12-src a::after { content: ' (' attr(href) ')'; font-size: 8pt; }
  .w-w12 .w12-block.w12-flow { break-inside: auto; page-break-inside: auto; }
  .w-w12 .w12-check li { break-inside: avoid; border-left-color: #000; background: #f3f3f3; }
}
