.xsec { min-width: 640px; }
.xs-ground { fill: var(--geo-mio); }
.xs-lining { fill: var(--concrete); stroke: var(--ink); stroke-width: 1.5; }
.xs-void { fill: var(--surface); stroke: var(--ink); stroke-width: 1; }
.xs-slab { fill: var(--concrete); stroke: var(--ink); stroke-width: 1; }
.xs-train { fill: var(--surface-2); stroke: var(--ink); stroke-width: 1.5; }
.xs-window { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 1; }
.xs-walk { fill: var(--line-strong); }
.xs-rail3 { fill: var(--accent); }
.xs-rail { stroke: var(--ink); stroke-width: 3; }
.xs-cable { fill: var(--ink-2); }
.xs-cp { fill: var(--surface); stroke: var(--ink); stroke-width: 1; stroke-dasharray: 5 3; }
.xs-dim line { stroke: var(--ink); stroke-width: 1; }
.xs-dim .xs-axis { stroke: var(--accent); stroke-dasharray: 8 3 2 3; }
.xs-t { font: 12px var(--font-mono); fill: var(--ink); paint-order: stroke; stroke: var(--surface); stroke-width: 3px; }
.xs-callouts line { stroke: var(--ink-2); stroke-width: 1; }
table.matrix tr.total td { border-top: 1px solid var(--line-strong); }
.mx { margin: var(--space-4) 0; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.mx-sliders { display: grid; gap: var(--space-2); }
.mx-row { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(6rem, 2fr) 2ch; gap: var(--space-3); align-items: center; font-size: var(--step--1); }
.mx-row input { width: 100%; accent-color: var(--accent); }
.mx-result { margin: var(--space-4) 0 var(--space-3); }
.mx-bar { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(6rem, 2fr) auto; gap: var(--space-3); align-items: center; font-size: var(--step--1); padding: var(--space-1) 0; }
.mx-track { height: 10px; background: var(--surface-2); border-radius: 5px; overflow: hidden; }
.mx-track span { display: block; height: 100%; background: var(--line-strong); }
.mx-bar.win .mx-track span { background: var(--accent); }
.mx-bar.win .mx-name { font-weight: 600; }
@media print { .xsec { min-width: 0; } .mx { display: none; } }
