/* Wave 13 widgets: scoped under .w-w13. Reads shell tokens only (both themes). No external resources. */
.w-w13 { min-width: 0; }
.w-w13 .w13-grid2 { display: grid; gap: var(--s5, 24px); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
@media (max-width: 860px) { .w-w13 .w13-grid2 { grid-template-columns: minmax(0, 1fr); } }
.w-w13 .w13-box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); padding: 14px; min-width: 0; }
.w-w13 .w13-box h3 { margin: 0 0 10px; font-size: 1.0625rem; }
.w-w13 .w13-calc { display: grid; gap: 18px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg, 14px); padding: 18px; }
@media (max-width: 860px) { .w-w13 .w13-calc { grid-template-columns: minmax(0, 1fr); padding: 14px; } }
.w-w13 .w13-in { display: grid; gap: 14px; min-width: 0; }
.w-w13 .w13-in .field input, .w-w13 .w13-in .field select, .w-w13 .w13-in .field textarea { width: 100%; max-width: 100%; }
.w-w13 .w13-in .inline-fields { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.w-w13 .w13-in select { min-height: 44px; }
.w-w13 .w13-out { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius, 10px); padding: 16px; min-width: 0; }
.w-w13 .w13-out dl { margin: 12px 0 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; font-size: .9rem; }
.w-w13 .w13-out dt { color: var(--text-2); }
.w-w13 .w13-out dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 650; overflow-wrap: anywhere; }
.w-w13 .w13-big { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem); font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin: 0; overflow-wrap: anywhere; }
.w-w13 .w13-k { margin: 0 0 4px; font-size: .8125rem; font-weight: 650; color: var(--text-2); }
.w-w13 .w13-verdict { margin: 12px 0 0; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--surface); border-radius: 0 6px 6px 0; font-size: .9375rem; }
.w-w13 .w13-formula { margin: 12px 0 0; font-size: .8125rem; color: var(--text-2); }
.w-w13 .w13-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-w13 .w13-note { margin: 10px 0 0; font-size: .8125rem; color: var(--text-2); }
.w-w13 .w13-wsum { margin: 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.w-w13 .w13-wsum[data-bad="true"] { color: var(--bad-text, var(--bad)); }
.w-w13 .w13-wsum[data-bad="false"] { color: var(--good-text, var(--good)); }
.w-w13 .w13-letter { width: 100%; min-height: 220px; font: .8125rem/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; resize: vertical; }
/* charts */
.w-w13 .w13-svg { display: block; width: 100%; height: auto; max-width: 100%; }
.w-w13 .w13-grid { stroke: var(--line); stroke-width: 1; }
.w-w13 .w13-tx { fill: var(--text-2); font: 11px var(--font, system-ui, sans-serif); }
.w-w13 .w13-tx--ref { fill: var(--text); font-weight: 650; }
.w-w13 .w13-ref { stroke: var(--warn); stroke-width: 1.4; stroke-dasharray: 5 4; }
.w-w13 .w13-vm { stroke: var(--text-2); stroke-width: 1; stroke-dasharray: 2 3; }
.w-w13 .w13-dot { fill: var(--surface); stroke: var(--accent); stroke-width: 2.4; }
.w-w13 .w13-ln { fill: none; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.w-w13 .w13-ln.s1, .w-w13 .w13-sw.s1 { stroke: var(--c1); background: var(--c1); }
.w-w13 .w13-ln.s2, .w-w13 .w13-sw.s2 { stroke: var(--c2); background: var(--c2); }
.w-w13 .w13-ln.s3, .w-w13 .w13-sw.s3 { stroke: var(--c3); background: var(--c3); }
.w-w13 .w13-ln.s4, .w-w13 .w13-sw.s4 { stroke: var(--c4); background: var(--c4); }
.w-w13 .w13-ln.s5, .w-w13 .w13-sw.s5 { stroke: var(--c5); background: var(--c5); }
.w-w13 .w13-ln.s6, .w-w13 .w13-sw.s6 { stroke: var(--bad); background: var(--bad); }
.w-w13 .w13-ln.s7, .w-w13 .w13-sw.s7 { stroke: var(--text-2); background: var(--text-2); }
.w-w13 .w13-ln.s8, .w-w13 .w13-sw.s8 { stroke: var(--good); background: var(--good); }
.w-w13 .w13-ln.dash { stroke-dasharray: 6 4; }
.w-w13 .w13-ln.thin { stroke-width: 1.6; }
.w-w13 .w13-sw { display: inline-block; width: 18px; height: 4px; border-radius: 2px; vertical-align: middle; }
.w-w13 .w13-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-w13 .w13-bar { fill: var(--c1); }
.w-w13 .w13-bar.is-sel { fill: var(--warn); }
.w-w13 .w13-bar.alt { fill: var(--c2); }
.w-w13 .w13-seg1 { fill: var(--c1); } .w-w13 .w13-seg2 { fill: var(--c2); } .w-w13 .w13-seg3 { fill: var(--c3); }
.w-w13 .w13-area { fill: var(--accent-soft); stroke: none; }
/* tile map */
.w-w13 .w13-tile { cursor: pointer; }
.w-w13 .w13-tile rect { stroke: var(--bg, var(--surface)); stroke-width: 2; }
.w-w13 .w13-tile text { font: 700 11px var(--font, system-ui, sans-serif); pointer-events: none; }
.w-w13 .w13-tile:hover rect, .w-w13 .w13-tile:focus rect { stroke: var(--text); stroke-width: 2.5; }
.w-w13 .w13-tile:focus { outline: none; }
.w-w13 .w13-tile:focus-visible rect { stroke: var(--focus); stroke-width: 3.5; }
.w-w13 .w13-q0 rect, .w-w13 i.w13-q0 { fill: var(--surface-3); background: var(--surface-3); }
.w-w13 .w13-q1 rect, .w-w13 i.w13-q1 { fill: color-mix(in srgb, var(--accent) 14%, var(--surface-2)); background: color-mix(in srgb, var(--accent) 14%, var(--surface-2)); }
.w-w13 .w13-q2 rect, .w-w13 i.w13-q2 { fill: color-mix(in srgb, var(--accent) 34%, var(--surface-2)); background: color-mix(in srgb, var(--accent) 34%, var(--surface-2)); }
.w-w13 .w13-q3 rect, .w-w13 i.w13-q3 { fill: color-mix(in srgb, var(--accent) 54%, var(--surface-2)); background: color-mix(in srgb, var(--accent) 54%, var(--surface-2)); }
.w-w13 .w13-q4 rect, .w-w13 i.w13-q4 { fill: color-mix(in srgb, var(--accent) 74%, var(--surface-2)); background: color-mix(in srgb, var(--accent) 74%, var(--surface-2)); }
.w-w13 .w13-q5 rect, .w-w13 i.w13-q5 { fill: color-mix(in srgb, var(--accent) 94%, var(--surface-2)); background: color-mix(in srgb, var(--accent) 94%, var(--surface-2)); }
.w-w13 .w13-q0 text, .w-w13 .w13-q1 text, .w-w13 .w13-q2 text { fill: var(--text); }
.w-w13 .w13-q3 text, .w-w13 .w13-q4 text, .w-w13 .w13-q5 text { fill: var(--accent-ink); }
.w-w13 .w13-leg { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 10px 0 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--text-2); }
.w-w13 .w13-leg i { display: inline-block; width: 16px; height: 16px; border-radius: 3px; border: 1px solid var(--line-2); vertical-align: -3px; margin-right: 4px; }
.w-w13 .w13-seg { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.w-w13 .w13-seg 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-w13 .w13-seg button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); font-weight: 650; }
.w-w13 .w13-read { margin: 10px 0 0; padding: 10px 12px; min-height: 3.2em; border-radius: 6px; background: var(--surface-2); font-size: .9375rem; }
/* heat cells */
.w-w13 td.w13-h0 { background: transparent; }
.w-w13 td.w13-h1 { background: color-mix(in srgb, var(--warn) 12%, transparent); }
.w-w13 td.w13-h2 { background: color-mix(in srgb, var(--warn) 28%, transparent); }
.w-w13 td.w13-h3 { background: color-mix(in srgb, var(--warn) 46%, transparent); }
.w-w13 td.w13-h4 { background: color-mix(in srgb, var(--warn) 64%, transparent); }
.w-w13 td.w13-c1 { background: color-mix(in srgb, var(--c1) 14%, transparent); }
.w-w13 td.w13-c2 { background: color-mix(in srgb, var(--c1) 30%, transparent); }
.w-w13 td.w13-c3 { background: color-mix(in srgb, var(--c1) 48%, transparent); }
.w-w13 td.w13-c4 { background: color-mix(in srgb, var(--c1) 66%, transparent); }
.w-w13 .w13-kpis { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); margin: 0; padding: 0; list-style: none; }
.w-w13 .w13-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius, 10px); padding: 14px 16px; min-width: 0; }
.w-w13 .w13-kpi b { display: block; font-size: clamp(1.4rem, 1.15rem + 1vw, 1.9rem); line-height: 1.1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; overflow-wrap: anywhere; }
.w-w13 .w13-kpi span { display: block; margin-top: 4px; font-size: .8125rem; color: var(--text-2); }
.w-w13 .w13-hook { margin: 0 0 var(--s5, 24px); padding: 16px 18px; border: 1px solid var(--line-2); border-left: 4px solid var(--warn); border-radius: var(--radius, 10px); background: var(--surface); font-size: 1.0625rem; }
.w-w13 .w13-hook b { font-variant-numeric: tabular-nums; }
.w-w13 .data td.num, .w-w13 .data th.r { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: no-preference) { .w-w13 .w13-tile rect { transition: stroke .12s; } }
/* wave 10 additions */
.w-w13 .w13-zero { stroke: var(--text-2); stroke-width: 1.2; }
.w-w13 .w13-bar.alt { fill: var(--c2); }
.w-w13 .w13-map-lab { fill: var(--text-2); font: 10.5px var(--font, system-ui, sans-serif); pointer-events: none; }
.w-w13 .w13-map-lab--b { fill: var(--text); font-weight: 650; }
.w-w13 .w13-land { fill: none; stroke: var(--line); stroke-width: 1; stroke-dasharray: 2 4; }
.w-w13 .w13-pt { cursor: pointer; }
.w-w13 .w13-pt circle { fill: color-mix(in srgb, var(--accent) 45%, transparent); stroke: var(--accent); stroke-width: 1.5; }
.w-w13 .w13-pt:hover circle { fill: color-mix(in srgb, var(--accent) 70%, transparent); }
.w-w13 .w13-pt.is-sel circle { fill: var(--warn); stroke: var(--text); stroke-width: 2.5; }
.w-w13 .w13-pt:focus { outline: none; }
.w-w13 .w13-pt:focus-visible circle { stroke: var(--focus); stroke-width: 3.5; }
.w-w13 .w13-cl { cursor: pointer; }
.w-w13 .w13-cl polyline { fill: none; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.w-w13 .w13-cl .w13-under { stroke: transparent; stroke-width: 12; }
.w-w13 .w13-cl.is-sel .w13-under { stroke: var(--text); stroke-width: 11; opacity: .55; }
.w-w13 .w13-cl0 polyline.w13-top { stroke: var(--line-2); }
.w-w13 .w13-cl1 polyline.w13-top { stroke: color-mix(in srgb, var(--accent) 30%, var(--surface-3)); }
.w-w13 .w13-cl2 polyline.w13-top { stroke: color-mix(in srgb, var(--accent) 55%, var(--surface-3)); }
.w-w13 .w13-cl3 polyline.w13-top { stroke: color-mix(in srgb, var(--accent) 80%, var(--surface-3)); }
.w-w13 .w13-cl4 polyline.w13-top { stroke: var(--bad); }
.w-w13 .w13-clx polyline.w13-top { stroke: var(--line-2); stroke-dasharray: 3 5; }
.w-w13 .w13-cl:focus { outline: none; }
.w-w13 .w13-cl:focus-visible .w13-under { stroke: var(--focus); stroke-width: 13; opacity: 1; }
.w-w13 .w13-wp { fill: var(--surface); stroke: var(--text-2); stroke-width: 1.4; }
.w-w13 .w13-hrow { cursor: pointer; }
.w-w13 .w13-hrow rect.w13-hb { fill: var(--c1); }
.w-w13 .w13-hrow rect.w13-hb--neg { fill: var(--c2); }
.w-w13 .w13-hrow.is-sel rect.w13-hb { fill: var(--warn); }
.w-w13 .w13-hrow:focus { outline: none; }
.w-w13 .w13-hrow:focus-visible rect.w13-hit { stroke: var(--focus); stroke-width: 2.5; fill: none; }
.w-w13 .w13-hrow rect.w13-hit { fill: transparent; }
.w-w13 .w13-tl-r { fill: var(--c1); stroke: var(--surface); stroke-width: 1; }
.w-w13 .w13-tl-p { fill: var(--warn); stroke: var(--surface); stroke-width: 1; }
.w-w13 .w13-tl-today { stroke: var(--text); stroke-width: 1.4; stroke-dasharray: 4 3; }
.w-w13 .w13-list { margin: 8px 0 0; padding-left: 1.1em; font-size: .9rem; display: grid; gap: 4px; }
.w-w13 .w13-list a { overflow-wrap: anywhere; }
.w-w13 .w13-cal { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); margin: 0; padding: 0; list-style: none; }
.w-w13 .w13-cal li { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius, 10px); padding: 12px 14px; min-width: 0; }
.w-w13 .w13-cal h3 { margin: 0 0 6px; font-size: 1rem; }
.w-w13 .w13-cal ul { margin: 0; padding-left: 1.1em; font-size: .875rem; }
.w-w13 .w13-cal .w13-empty { color: var(--text-2); font-size: .875rem; margin: 0; }
/* wave 10 additions: ladders, dot plots, heat map, detail blocks */
.w-w13 .w13-fig { margin: 0; }
.w-w13 .w13-fig figcaption { margin-top: 8px; font-size: .8125rem; color: var(--text-2); }
.w-w13 .w13-wh { stroke: var(--text-2); stroke-width: 1.6; }
.w-w13 .w13-bx { fill: color-mix(in srgb, var(--accent) 40%, var(--surface-2)); stroke: var(--accent); stroke-width: 1; }
.w-w13 .w13-md { stroke: var(--text); stroke-width: 2.4; }
.w-w13 .w13-mk { stroke: var(--warn); stroke-width: 2.4; stroke-dasharray: 4 3; }
.w-w13 .w13-pt { fill: var(--accent); stroke: var(--surface); stroke-width: 2; }
.w-w13 .w13-hm { stroke: none; }
.w-w13 rect.w13-q0 { fill: var(--surface-3); }
.w-w13 rect.w13-q1 { fill: color-mix(in srgb, var(--accent) 18%, var(--surface-2)); }
.w-w13 rect.w13-q2 { fill: color-mix(in srgb, var(--accent) 38%, var(--surface-2)); }
.w-w13 rect.w13-q3 { fill: color-mix(in srgb, var(--accent) 58%, var(--surface-2)); }
.w-w13 rect.w13-q4 { fill: color-mix(in srgb, var(--accent) 78%, var(--surface-2)); }
.w-w13 rect.w13-q5 { fill: color-mix(in srgb, var(--accent) 96%, var(--surface-2)); }
.w-w13 rect.w13-hm.is-win { stroke: var(--warn); stroke-width: 2.2; }
.w-w13 .w13-det { margin-top: 12px; }
.w-w13 .w13-det summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 650; }
.w-w13 .w13-det .data th, .w-w13 .w13-det .data td { padding: 4px 6px; font-size: .8125rem; }
