/* New station workspaces extend the established Fallakte design. */
.station-intro{margin-bottom:32px}.station-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}.station-work>*{min-width:0}.station-work h2,.packet-comparison h2{font-size:var(--lead);margin-bottom:22px}.station-work h3{font-size:22px;margin:20px 0 12px}.station-work p{margin-bottom:20px}.station-work form>.button{margin-top:24px}.station-work label{margin-top:20px}.station-work input,.station-work select{min-width:0}.station-work label span{color:var(--muted)}.station-lock{margin-top:32px}.station-lock input{max-width:16ch}.station-lock .button{display:flex}.station-info h2{font-size:var(--lead)}.station-info h3{font-size:24px;margin:28px 0 18px}.station-document{padding:28px;background:var(--surface);margin-top:28px}.station-hint{font-size:16px;margin:24px 0}.station-hint summary{cursor:pointer;min-height:44px;padding:10px 0}.station-hint p{margin:16px 0}.station-test-results{margin-top:28px;padding:22px;background:var(--surface);font-size:16px}.station-test-results h3{margin:0 0 18px}.station-test-results details{margin-top:12px}.station-test-results summary{cursor:pointer;padding:8px 0}.station-test-results p{margin:14px 0}.station-release{margin:24px 0;background:var(--raised);padding:24px}.station-release h3{margin-top:0}.station-release p:last-child{margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Turning grille: the bright cells are openings in the physical key. */
.grille-position{font-size:16px;margin-bottom:20px;color:var(--muted)}.cipher-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;background:var(--muted);border:2px solid var(--muted);margin:24px 0;max-width:540px;position:relative}.cipher-cell{min-width:0;aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;background:var(--surface);color:var(--muted)}.cipher-cell>strong{font-size:clamp(22px,3vw,36px);visibility:hidden}.cipher-cell.open{background:var(--ink);color:var(--bg)}.cipher-cell.open>strong{visibility:visible}.cipher-cell small{position:absolute;left:6px;top:3px;font-size:12px}.cipher-cell.open small{color:#48505f}
/* Nassi–Shneiderman diagram: nested selection rectangles, no flowchart arrows. */
.ns-diagram{border:2px solid var(--muted);margin:24px 0;font-size:16px;line-height:1.4;overflow-wrap:anywhere;background:var(--surface)}.ns-cell{padding:16px;border-bottom:1px solid var(--muted);min-height:62px;display:flex;align-items:center;justify-content:center;text-align:center;position:relative}.ns-cell:last-child{border-bottom:0}.ns-branch{border-bottom:1px solid var(--muted)}.ns-arms{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ns-arms>div{min-width:0}.ns-arms>div+div{border-left:1px solid var(--muted)}.ns-arms>div>.ns-cell{height:100%}.ns-arms .ns-branch{height:100%;border-bottom:0}.ns-decision{display:block;min-height:106px;padding:12px 12px 32px;border-bottom:1px solid var(--muted)!important}.ns-decision svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ns-decision svg path{stroke:var(--muted);stroke-width:.6;fill:none}.ns-condition{position:relative;z-index:1;max-width:80%;margin:auto;background:var(--surface);padding:2px 5px}.ns-labels{position:absolute;bottom:7px;left:10px;right:10px;display:flex;justify-content:space-between;font-size:14px}.ns-slot{display:block;width:100%;background:var(--raised);color:var(--ink);padding:12px 8px;min-height:44px;font:inherit;text-align:center;border:2px solid transparent}.ns-slot.selected{border-color:var(--accent)}.ns-cell.executing{background:#23476b;color:var(--ink)}.ns-cell.executing .ns-condition{background:#23476b}.block-palette{padding:22px;background:var(--surface);margin-bottom:20px}.block-palette h3{margin-top:0}.block-palette p{font-size:16px}.code-block{display:block;width:100%;min-height:48px;padding:14px 18px;background:var(--raised);text-align:left;color:var(--ink);margin:10px 0;font-size:16px;border-left:4px solid var(--accent);cursor:grab}.code-block[aria-pressed=true]{background:var(--ink);color:var(--bg)}.prediction-case{padding:22px;background:var(--surface);margin-bottom:20px}.prediction-case h3{margin-top:0}.prediction-case p{font-size:16px}.prediction-case label{margin-top:14px}.boolean-inputs,.packet-checks{border:0;padding:0;margin:24px 0}.boolean-inputs legend,.packet-checks legend{font-size:16px;margin-bottom:8px}.boolean-inputs label,.packet-checks label{display:flex;align-items:center;gap:12px;margin:0;min-height:48px}.boolean-inputs input,.packet-checks input{width:22px;height:22px;min-height:22px;accent-color:var(--accent);flex:0 0 22px}.execution-log{padding:22px;background:var(--surface);font-size:16px;min-height:120px;margin:24px 0}.execution-log ol{margin:0;padding-left:22px}.execution-log li{padding:7px 0}.execution-log p{margin:0}.energy-work{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
/* Packet copies and routing diagram. */
.network-map{background:var(--surface);padding:24px;margin:24px 0 36px}.network-map svg{display:block;width:100%;height:auto;max-height:380px;color:var(--muted);overflow:visible}.network-map line{stroke:var(--muted);stroke-width:2}.network-map circle{fill:var(--raised);stroke:var(--muted);stroke-width:2}.network-map text{fill:var(--ink);font:18px var(--font)}.network-map .node-caption{font-size:15px}.network-map .route-active line,.network-map line.route-active{stroke:var(--accent);stroke-width:4}.network-map .route-active circle{fill:var(--accent);stroke:var(--accent)}.network-map .route-active text:not(.node-caption){fill:var(--bg)}.network-map figcaption{font-size:16px;margin-top:16px}.packet-comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;margin:32px 0}.packet-comparison>section>p{font-size:16px;margin-bottom:24px}.packet-list{display:grid;gap:16px}.packet{background:var(--surface);padding:24px;font-size:16px}.packet-top{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center}.packet-top h3{font-size:24px;margin:0}.packet-top span{color:var(--muted)}.packet dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.packet dt{color:var(--muted);font-size:14px}.packet dd{margin:4px 0 0;overflow-wrap:anywhere}.packet-payload{background:var(--raised);padding:14px;font-family:ui-monospace,monospace;letter-spacing:.04em;overflow-wrap:anywhere;margin:0!important}.route-controls{display:flex;flex-wrap:wrap;gap:10px}.route-readout{font-size:18px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}
@media(max-width:1000px){.station-work,.energy-work{gap:28px}.ns-cell{padding:12px 7px}.ns-decision{padding:12px 6px 32px}.ns-condition{max-width:90%}.ns-slot{padding:10px 4px}.packet{padding:20px}}
@media(max-width:800px){.station-work,.energy-work{grid-template-columns:1fr}.packet-comparison{gap:18px}.ns-diagram{max-width:650px}.cipher-grid{max-width:480px}.network-map{padding:18px}.network-map .node-caption{font-size:17px}}
@media(max-width:500px){.packet-comparison{grid-template-columns:1fr}.station-document,.prediction-case,.block-palette{padding:20px}.cipher-cell small{font-size:10px;left:3px;top:2px}.ns-diagram{font-size:14px}.ns-slot{font-size:14px}.ns-decision{min-height:124px}.ns-condition{max-width:100%;padding:0 1px}.network-map{padding:12px}.network-map figcaption{font-size:14px}.network-map .node-caption{display:none}.packet-comparison>section+section{margin-top:16px}.packet-top h3{font-size:22px}.energy-console h2{margin-top:15px}}
/* Print windows keep physical grids identical in size and diagrams legible in ink. */
.station-print{--bg:white;--surface:white;--raised:#eee;--ink:#111;--muted:#555;--accent:#111;--font:Arial,sans-serif;--lead:18pt}.station-print .paper-grid{width:108mm;max-width:none;height:108mm;gap:0;border:1px solid #111;margin:8mm 0}.station-print .cipher-cell{border:.25mm solid #555;aspect-ratio:auto;background:white;color:#111}.station-print .cipher-cell strong{visibility:visible;font-size:22pt}.station-print .cipher-cell small{font-size:8pt}.station-print .cipher-cell.mask{background:#eee}.station-print .cipher-cell.mask.open{background:white;border:1px dashed #111}.station-print .cipher-cell.mask small{display:none}.station-print .ns-diagram{font-size:11pt;max-width:180mm}.station-print .ns-cell{min-height:45px;padding:12px}.station-print .ns-decision{min-height:80px;padding:10px 10px 30px}.station-print .ns-condition{background:white}.station-print .packet-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:4mm}.station-print .packet{border:1px solid #777;padding:3mm;font-size:10pt}.station-print .packet dl{grid-template-columns:1fr;margin:3mm 0;gap:2mm}.station-print .packet dt{font-size:9pt}.station-print .packet dd{margin:0}.station-print .packet-top h3{font-size:13pt}.station-print .packet-payload{font-size:10pt;padding:2mm;letter-spacing:0}.station-print .network-map{margin:6mm 0;padding:4mm}.station-print .network-map svg{max-height:70mm}.station-print .network-map .node-caption{display:block}.station-print .network-map figcaption{font-size:10pt}
@media print{.station-info{break-before:page}.station-print .paper-page{break-before:page}}
.ns-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;margin:24px 0}.ns-scroll .ns-diagram{margin:0}.ns-scroll-hint{display:none}.ns-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:600px){.ns-scroll .ns-diagram{min-width:540px}.ns-scroll-hint{display:block;font-size:14px;color:var(--muted);margin:12px 0!important}}
.station-print .ns-scroll{overflow:visible;break-inside:avoid}.station-print .ns-scroll .ns-diagram{min-width:0}.station-print .ns-scroll-hint{display:none}
.grille-mark{position:absolute;left:-7px;top:-23px;color:var(--accent);font:20px/1 Arial,sans-serif;z-index:2}.grille-mark[data-turn="1"]{left:auto;right:-7px}.grille-mark[data-turn="2"]{left:auto;right:-7px;top:auto;bottom:-23px}.grille-mark[data-turn="3"]{top:auto;bottom:-23px}.station-print .grille-mark{color:#111}
