:root{color-scheme:light;--ink:#193b37;--dark:#112d2a;--board:#1c4641;--cream:#eee7d3;--paper:#f5efdb;--muted:#a9b7a0;--orange:#db8146;--gold:#e5bf67;--green:#9fca8b;--red:#f68871;font-family:Arial,Helvetica,sans-serif;background:#142f2c;color:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#3b5148,transparent 70%),#142f2c;min-height:100vh}button{font:inherit;cursor:pointer;touch-action:manipulation;min-height:46px;border-radius:3px}button:focus-visible,a:focus-visible{outline:3px solid #efb76a;outline-offset:4px}button:disabled{cursor:default;opacity:.5}button:active:not(:disabled){transform:translateY(2px)}h1,h2,h3,p{margin:0}button,a{-webkit-tap-highlight-color:transparent}.small-caps,.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;text-transform:uppercase}.loading{padding:40px}.frame{max-width:1480px;margin:auto;padding:26px 34px 18px}.masthead{display:flex;align-items:center;gap:18px;padding-bottom:20px}.crest{width:43px;height:43px;display:grid;place-items:center;border:1px solid #b4b699;color:var(--gold);font-family:Georgia,serif;font-size:24px;border-radius:50%}.brand{flex:1}.brand h1{font-family:Georgia,serif;font-weight:400;font-size:26px;letter-spacing:.5px}.brand p{font-size:10px;text-transform:uppercase;letter-spacing:2.8px;color:#aab5a1;margin-top:6px}.masthead-actions{display:flex;gap:8px}.quiet{border:1px solid #71816c;background:transparent;color:var(--cream);padding:0 15px;font-size:12px}.quiet:hover{background:#ffffff0c}.desk{border:1px solid #0a2422;box-shadow:0 15px 60px #00181599,0 0 0 4px #536057;overflow:hidden;border-radius:5px}.desk-top{background:#d9d6c4;color:var(--ink);display:flex;align-items:center;gap:22px;padding:12px 24px;border-bottom:7px solid #5d6a59;box-shadow:inset 0 2px #fff7}.station-name{font-family:Georgia,serif;font-size:24px}.station-name small{display:block;font:9px Arial,sans-serif;font-weight:bold;letter-spacing:2px;margin-top:5px}.shift-strip{margin-left:auto;font-size:11px;border-right:1px solid #a5aa98;padding-right:20px;text-align:right;line-height:1.6}.clock{background:#20342e;border:3px solid #65705a;color:#e9d8a3;font-family:monospace;font-size:26px;letter-spacing:1px;padding:6px 12px;box-shadow:inset 0 2px 6px #0008;white-space:nowrap}.run-button{background:var(--ink);color:var(--cream);padding:0 18px;border:1px solid #566c54;font-size:12px;min-width:100px}.board{position:relative;background:linear-gradient(115deg,#214b45,#183c38);padding:22px 26px 10px;box-shadow:inset 0 4px 18px #001b1966}.board:before,.board:after{content:'+';position:absolute;top:8px;color:#8b9c80;font:16px monospace}.board:before{left:9px}.board:after{right:9px}.board-meta{display:flex;justify-content:space-between;align-items:center;color:#bbc4a8;font-size:10px;letter-spacing:2px}.board-meta b{font-size:11px;color:#dedcc1;letter-spacing:1px}.board svg{width:100%;height:auto;display:block;max-height:270px;min-height:180px}.rail{fill:none;stroke:#9eb49a;stroke-width:5;stroke-linecap:square}.rail.occupied{stroke:#f3bc66;filter:drop-shadow(0 0 4px #e89e42)}.rail.reserved{stroke:#bfe0a3;stroke-dasharray:8 4}.rail.closed{stroke:#cf9c73;stroke-dasharray:6 5}.board svg text{font-family:Arial,sans-serif;fill:#d6ddbe;letter-spacing:1px}.berth{fill:#102925;stroke:#72866b;stroke-width:1}.train-num{fill:#f3bb78!important;font-family:monospace!important;font-size:17px;letter-spacing:2px!important}.signal-stop{fill:#bd705b}.signal-go{fill:#c1dc8f;filter:drop-shadow(0 0 4px #d6f5a9)}.legend{display:flex;justify-content:center;gap:24px;font-size:10px;color:#bdc7ad;padding-bottom:12px}.legend span{display:flex;align-items:center;gap:7px}.legend i{display:inline-block;width:17px;height:3px;background:#9eb49a}.legend i.amber{background:#f3bc66}.legend i.dashed{background:repeating-linear-gradient(90deg,#bfe0a3 0 4px,transparent 4px 6px)}.legend i.rose{background:#cf9c73}.status-line{display:flex;gap:12px;background:#123430;padding:11px 22px;align-items:center;border-top:1px solid #4a6254;font-size:12px;min-height:48px}.status-line .lamp{width:8px;height:8px;border-radius:50%;background:#9fca8b;box-shadow:0 0 8px #a3d68c77;flex-shrink:0}.status-line.refused .lamp{background:var(--orange)}.status-line .feedback{line-height:1.5;flex:1}.status-line .time-label{font:10px monospace;color:#a8bba0;white-space:nowrap}.lower-desk{display:grid;grid-template-columns:1.17fr 1fr;background:#d3d1bd;color:var(--ink);gap:0}.controls{padding:22px 24px;border-right:1px solid #a1ad98;background:linear-gradient(105deg,#d9dac7,#c8ceba)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-heading h2{font-size:11px;text-transform:uppercase;letter-spacing:2px}.panel-heading span{font:11px monospace;color:#596c59}.points{display:grid;grid-template-columns:1fr 1fr;gap:16px}.point-bank{border:1px solid #99a68f;padding:12px;background:#e2dfcb;box-shadow:inset 0 0 0 2px #f6f0dd55}.point-bank header{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;font-weight:700;margin-bottom:10px;align-items:center}.lock-label{font-size:9px;background:#bbc7ae;padding:3px 5px;border-radius:2px}.lock-label.locked{background:#d8b580;color:#463d24}.toggle-pair{display:flex;gap:8px}.point-button{flex:1;border:1px solid #8f9c82;border-bottom:3px solid #829078;background:#eeebd9;color:#415342;font-size:12px;box-shadow:0 2px 2px #243c2722}.point-button.active{background:#566d52;color:#fff7d7;border-color:#324f3f;box-shadow:inset 0 3px 6px #142a2866}.selected-card{margin-top:17px;background:#e9e6d2;padding:14px 15px;border:1px solid #a1ad97;display:flex;align-items:center;gap:14px}.selected-id{background:#193b34;color:#edbf7e;font:25px monospace;padding:7px 10px;border:3px solid #7a866b;min-width:86px;text-align:center}.selected-info{flex:1}.selected-info b{display:block;font-size:13px}.selected-info span{display:block;font-size:11px;line-height:1.5;color:#596751;margin-top:4px}.route-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}.route-button{border:1px solid #345d4d;border-bottom:4px solid #244635;background:#547555;color:#fff7dc;font-size:12px;min-height:53px;box-shadow:0 2px 3px #1b3d2a22;padding:8px}.route-button.departure{grid-column:1/-1;background:#eee5c8;border-color:#a79e7c;color:#233d31}.hint{margin-top:14px;border-top:1px solid #a4b096;padding-top:13px;display:flex;gap:10px;align-items:flex-start;min-height:63px}.hint-icon{color:#6f815e;border:1px solid #879b78;border-radius:50%;font:14px Georgia,serif;width:21px;height:21px;display:grid;place-items:center;flex-shrink:0}.hint p{font-size:12px;line-height:1.5;color:#465c46}.hint-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:bold;display:block;margin-bottom:4px}.paper-area{padding:21px 24px;background:linear-gradient(100deg,#bac3ad,#c7cbb7)}.paper{background:var(--paper);color:#354b3b;padding:18px 19px 16px;box-shadow:0 2px 6px #1c3d2a33;transform:rotate(-.3deg);border-top:5px solid #65725b;position:relative}.paper:after{content:'';position:absolute;right:12px;top:-9px;width:35px;height:12px;border:2px solid #92947a;border-radius:5px;transform:rotate(5deg);pointer-events:none}.paper-title{display:flex;align-items:flex-start;justify-content:space-between}.paper-title h2{font-family:Georgia,serif;font-size:21px;font-weight:400}.paper-title p{font-size:9px;letter-spacing:1.5px;margin-top:6px}.paper-title .stamp{font:9px monospace;border:1px solid #a28560;color:#94724c;padding:4px 5px;transform:rotate(7deg)}.timetable{width:100%;border-collapse:collapse;margin-top:16px;font-size:12px;table-layout:fixed}.timetable th{font-size:9px;letter-spacing:1px;text-transform:uppercase;text-align:left;border-top:1px solid #a9b099;border-bottom:1px solid #a9b099;padding:8px 5px;color:#60725a}.timetable th:nth-child(1){width:42%}.timetable th:nth-child(2){width:28%}.timetable td{padding:0 5px;border-bottom:1px solid #d7dbc3;height:56px}.train-select{border:0;background:transparent;text-align:left;padding:5px 4px;width:100%;color:#294834;font:14px monospace;min-height:49px}.train-select small{display:block;font:9px Arial,sans-serif;margin-top:4px;letter-spacing:.5px}.timetable tr.selected{background:#d9dfbf;box-shadow:inset 3px 0 #647e4d}.timetable tr.done{opacity:.6}.train-status{font-size:10px;line-height:1.5}.time-cell{font:12px monospace}.paper-note{font-family:Georgia,serif;font-style:italic;font-size:12px;line-height:1.5;color:#6e795c;padding-top:13px}.bottom-row{display:grid;grid-template-columns:1.17fr 1fr;background:#b8c0ab;color:var(--ink);border-top:1px solid #9fac96}.utilities{padding:17px 24px;border-right:1px solid #94a18a}.utility-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.utility-heading h2{font-size:10px;letter-spacing:2px;text-transform:uppercase}.power-badge{font:10px monospace;text-transform:uppercase;color:#496348}.power-badge.failed{color:#863d27;font-weight:bold}.utility-buttons{display:flex;gap:8px;flex-wrap:wrap}.utility-button{padding:7px 10px;background:#dce0cb;border:1px solid #899a80;border-bottom:3px solid #899a80;color:#2a4536;font-size:11px;flex:1;min-width:105px}.utility-button.ringing{background:#e8be79;border-color:#a68651;animation:ring 1.8s infinite}.utility-button .button-sub{display:block;font:9px monospace;margin-top:4px}.operating-log{padding:16px 22px}.log-heading{display:flex;justify-content:space-between;margin-bottom:9px}.log-heading h2{font-size:10px;letter-spacing:2px;text-transform:uppercase}.log-heading button{min-height:44px;min-width:44px;padding:0;background:transparent;border:0;color:#465d45;text-decoration:underline;font-size:10px}.log-entry{font-size:10px;line-height:1.5;display:flex;gap:10px;margin-top:6px}.log-entry time{font:10px monospace;white-space:nowrap;color:#5c7157}.log-entry span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.footer{display:flex;justify-content:space-between;align-items:center;padding:16px 2px 0;color:#a4b29b;font-size:10px;gap:20px;line-height:1.5}.footer button{font-size:10px;min-height:44px;border:0;padding:0;color:#b9c5ac;background:none;text-decoration:underline}.pause-notice{color:#d9ba74;font-size:10px;letter-spacing:1px;font-weight:bold}.save-warning{padding:8px 14px;background:#f2d6a3;color:#584521;font-size:12px}.overlay{position:fixed;inset:0;background:#0a211fde;backdrop-filter:blur(7px);z-index:10;padding:32px 20px;display:flex;align-items:center;justify-content:center;overflow-y:auto}.dialog{background:#ede8d4;color:#263f34;width:min(800px,100%);max-height:calc(100dvh - 64px);overflow-y:auto;box-shadow:0 20px 100px #001411;border:1px solid #b8b99c;position:relative}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:19px 27px;border-bottom:1px solid #bfc4a8}.dialog-top .eyebrow{color:#758063;font-size:9px}.close{background:transparent;border:1px solid #a8b59b;min-width:46px;font-size:21px;color:#354d3e}.dialog-body{padding:30px}.title-art{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;margin-bottom:25px}.title-block h2{font:52px/.98 Georgia,serif;letter-spacing:-2px;margin:12px 0 19px}.title-block .subtitle{font:italic 17px Georgia,serif;color:#7a7d60}.title-art figure{margin:0;position:relative}.title-art img{width:100%;height:230px;object-fit:cover;filter:sepia(.28) saturate(.65);border:7px solid #f6f0dc;box-shadow:0 3px 9px #2c492e33;transform:rotate(3deg)}.title-art figcaption{font:italic 11px Georgia,serif;color:#77795d;text-align:center;margin-top:10px}.intro-copy{font-size:13px;line-height:1.7;color:#52634d;max-width:610px}.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:23px 0}.mode-card{text-align:left;background:#e4e4cd;border:1px solid #bac5a6;padding:14px;color:#294734;min-height:82px}.mode-card.active{border:2px solid #54704d;background:#d8dfc1;padding:13px}.mode-card b{display:block;font-size:13px;margin-bottom:6px}.mode-card span{font-size:11px;line-height:1.4;display:block;color:#5d7053}.primary{border:1px solid #2b503b;border-bottom:4px solid #1b3d2b;background:#45694a;color:#fff7dc;padding:12px 24px;font-size:13px;min-height:50px}.secondary{border:1px solid #a4b096;background:#e8e8d2;color:#35513b;padding:10px 18px;font-size:12px;min-height:48px}.dialog-actions{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}.chapter-list{display:grid;gap:9px;margin-top:24px}.chapter-card{display:flex;align-items:center;gap:16px;background:#e4e5ce;border:1px solid #b6c1a2;color:#38513a;padding:13px 16px;text-align:left;min-height:74px;width:100%}.chapter-card .chapter-no{font:24px Georgia,serif;color:#7d8d66}.chapter-card .chapter-text{flex:1}.chapter-card b{font-size:14px;display:block}.chapter-card small{font-size:11px;color:#6e7a5d;display:block;margin-top:5px}.chapter-card .chapter-record{font:11px monospace}.brief-title{font:38px Georgia,serif;margin:8px 0 14px}.brief-copy{font-size:14px;line-height:1.7;max-width:640px;color:#53644f}.lesson{border-left:3px solid #aa884e;padding:12px 16px;background:#e3e2c9;margin-top:20px;font:italic 17px/1.5 Georgia,serif}.instruction-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.instruction-step{border:1px solid #b9c3a5;padding:14px}.instruction-step b{display:block;font-size:12px;margin:7px 0}.instruction-step p{font-size:12px;line-height:1.6;color:#66745a}.instruction-step .number{font:24px Georgia,serif;color:#a08b5d}.result-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.result-numbers div{border-top:1px solid #b2bda0;padding-top:16px}.result-numbers strong{display:block;font:35px Georgia,serif}.result-numbers span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:8px}.museum-card{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;border-top:1px solid #b6c0a4;padding-top:24px}.museum-card img{width:100%;height:180px;object-fit:cover;display:block}.museum-card h3{font:22px Georgia,serif;margin:4px 0 10px}.museum-card p{font-size:12px;line-height:1.7;color:#617156}.museum-card .eyebrow{color:#8b7c57;font-size:9px}.full-log{display:grid;gap:12px;margin-top:20px}.full-log .log-entry{font-size:12px;border-bottom:1px solid #cbd1b6;padding:7px 0}.full-log .log-entry span{display:block;overflow:visible}.full-log .log-entry time{font-size:12px}.handbook-list{padding-left:20px;margin:18px 0;font-size:13px;line-height:1.8;color:#58694f}.dialog a{color:#365b40}.alert-tag{padding:8px 12px;background:#ddbd83;color:#4f462b;font-size:11px;line-height:1.6;margin-top:15px}@keyframes ring{0%,100%{box-shadow:0 0 0 0 #d29c3f00}50%{box-shadow:0 0 0 4px #d29c3f55}}@media(min-width:1400px){.board svg{max-height:300px}.controls,.paper-area{padding:25px 30px}}@media(max-width:1000px){.frame{padding:18px 18px 14px}.desk-top{padding:12px 17px;gap:13px}.station-name{font-size:21px}.shift-strip{padding-right:12px}.controls,.paper-area,.utilities{padding:18px}.paper{padding:15px}.point-bank{padding:10px}.route-button{font-size:11px}.board{padding:20px 16px 8px}.selected-info b{font-size:12px}.masthead{padding-bottom:17px}.lower-desk,.bottom-row{grid-template-columns:1.1fr 1fr}.clock{font-size:22px}.brand h1{font-size:24px}}@media(max-width:760px){.frame{padding:13px 12px}.masthead{gap:10px;flex-wrap:wrap}.brand h1{font-size:22px}.brand p{font-size:8px;letter-spacing:1.7px}.crest{width:35px;height:35px;font-size:20px}.masthead-actions{gap:6px}.quiet{padding:0 10px;font-size:11px;min-height:44px}.desk-top{flex-wrap:wrap;gap:10px;padding:12px}.station-name{font-size:22px;flex:1}.shift-strip{font-size:10px;border:0;padding:0}.clock{font-size:21px;flex:1;text-align:center}.run-button{flex:1}.lower-desk,.bottom-row{grid-template-columns:1fr}.controls,.utilities{border-right:0}.paper-area{border-top:1px solid #9fac96;padding:18px}.paper{transform:none}.board-meta{font-size:8px;letter-spacing:1px;gap:12px}.board-meta b{font-size:9px}.board svg{min-height:155px}.legend{gap:12px;font-size:8px}.legend span{gap:4px}.legend i{width:12px}.status-line{padding:10px 13px;font-size:11px;min-height:58px}.status-line .time-label{display:none}.controls{padding:18px}.hint{min-height:53px}.bottom-row{border-top:0}.operating-log{border-top:1px solid #94a18a;padding:17px 18px}.footer{font-size:9px;align-items:flex-start}.overlay{padding:16px 12px;align-items:flex-start}.dialog{max-height:calc(100dvh - 32px);margin:auto}.dialog-top{padding:13px 18px}.dialog-body{padding:23px 20px}.title-art{gap:15px;grid-template-columns:1.25fr 1fr}.title-block h2{font-size:43px;letter-spacing:-1px}.title-art img{height:185px}.title-block .subtitle{font-size:14px}.intro-copy{font-size:12px}.mode-card{padding:12px}.mode-card.active{padding:11px}.museum-card{grid-template-columns:1fr}.museum-card img{height:190px}.instruction-grid{gap:10px}.brief-title{font-size:32px}.brief-copy{font-size:13px}.result-numbers strong{font-size:29px}.result-numbers span{font-size:9px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}@media(max-width:420px){.masthead-actions{width:100%;justify-content:flex-end;margin-top:-5px}.masthead{padding-bottom:10px}.title-art{grid-template-columns:1fr}.title-art figure{display:none}.title-block h2{font-size:48px}.mode-choice,.instruction-grid{grid-template-columns:1fr}.shift-strip{max-width:140px}.station-name{font-size:20px}.board svg{min-height:130px}.points{gap:10px}.point-bank header{font-size:9px;letter-spacing:0}.point-bank{padding:8px}.point-button{font-size:11px}.selected-id{min-width:73px;font-size:22px}.selected-card{padding:11px;gap:10px}.legend{gap:9px;font-size:7px}.footer{flex-direction:column;gap:5px}}

.dialog-tools{display:flex;gap:8px;align-items:center}.dialog-tools .quiet{color:#354d3e;border-color:#a8b59b;white-space:nowrap}.dialog-top{gap:12px}
/* Connected district desk: the views share one simulation and clock. */
.net-frame{max-width:1500px}.net-global{display:flex;align-items:center;gap:15px;padding:15px 20px;background:#d6d7c2;color:#233f32;border-radius:4px 4px 0 0;flex-wrap:wrap}.net-global>div:first-child{flex:1;min-width:170px}.net-global .eyebrow{color:#65765a;display:block;margin-bottom:7px}.net-global b{font:18px Georgia,serif}.net-mode{font-size:11px}.net-clock-state{width:100%;font:10px monospace;color:#586b4d;letter-spacing:1px}.net-strip{display:grid;grid-template-columns:1fr 1fr 1.05fr;border:1px solid #8b9d7f;background:#aebba1;gap:1px}.net-strip>button{padding:14px 18px;text-align:left;border:0;background:#d4d9bd;color:#3b533a;min-height:76px;border-bottom:4px solid transparent}.net-strip>button.active{background:#e5e5c8;border-bottom-color:#ddaa58;box-shadow:inset 0 0 0 2px #f1edce}.net-strip button>span{font:21px Georgia,serif;display:block}.net-strip button>small{display:block;font-size:10px;margin-top:7px}.net-link-status{padding:13px 16px;background:#254b3e;color:#d1dfb6;display:flex;flex-direction:column;justify-content:center;gap:6px}.net-link-status>span{font-size:9px;letter-spacing:1.5px}.net-link-status>b{font:13px monospace}.net-link-status>small{font-size:9px;color:#adc19b}.net-link-status.busy{color:#f1cf8d;background:#3c5038}.net-feedback{padding:13px 20px;background:#112f29;font-size:12px;line-height:1.6;min-height:47px;border-bottom:1px solid #60765d}.net-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;background:#a8b89d;border:1px solid #819975;align-items:start}.net-main{min-width:0}.net-board{background:linear-gradient(115deg,#224b40,#153b34);padding:20px 16px 13px;color:#dfe6c6;border-bottom:4px solid #7e8e73}.net-board>header{display:flex;justify-content:space-between;align-items:center;padding:0 6px}.net-board header .eyebrow{color:#a3b695;font-size:9px}.net-board h2{font:25px Georgia,serif;margin-top:5px}.net-board header>span{font:9px monospace;letter-spacing:1px;color:#a9be9d}.net-diagram{position:relative;height:320px;margin-top:2px}.net-diagram svg{position:absolute;inset:0;width:100%;height:100%}.net-endpoint{position:absolute;top:105px;width:19%;min-height:59px;padding:7px 3px;background:#143128;color:#d3e0b9;border:2px solid #718c68;box-shadow:0 3px 0 #09251f;font:11px monospace;z-index:1}.net-endpoint small{display:block;font:9px Arial,sans-serif;margin-top:7px;color:#a9bea0}.net-endpoint.west{left:0}.net-endpoint.east{right:0}.net-track{position:absolute;left:35%;width:30%;height:62px;min-width:80px;background:#163429;border:3px solid #839773;border-bottom-width:5px;color:#dae3be;box-shadow:0 3px 5px #09271b99;z-index:1;padding:5px 3px}.net-track.track-1{top:48px}.net-track.track-2{top:151px}.net-track strong{display:block;font:19px monospace;color:#e9bd76;margin:4px 0}.net-track .net-track-label{position:absolute;left:6px;top:-16px;font:9px Arial,sans-serif;color:#b7caa2;letter-spacing:1px}.net-track small{font-size:9px;display:block}.net-track.occupied{border-color:#b99450}.net-track.reserved{border-color:#9fbe7e;border-style:dashed}.net-track.closed{border-color:#ae8561}.net-track.closed strong{font:12px monospace}.net-track.selected{outline:1px solid #e3d994;outline-offset:3px}.net-board-points{position:absolute;left:3%;right:3%;bottom:0;display:flex;justify-content:space-between;gap:15px}.net-point-bank{width:42%;max-width:260px;background:#c5cdb2;color:#2a4433;padding:9px;border:2px solid #8e9f7b;box-shadow:0 3px 4px #09271b66}.net-point-label{font-size:9px;font-weight:bold;letter-spacing:1px;display:flex;justify-content:space-between;gap:5px;margin-bottom:7px}.net-point-label>span{font:9px monospace;letter-spacing:0}.net-selector{display:flex;gap:5px;align-items:center}.net-selector>button{flex:1;min-height:44px;background:#eee9cd;border:1px solid #8b9879;border-bottom:3px solid #7d8d6f;color:#3f563c;font-size:11px;min-width:44px;padding:4px}.net-selector>button.active{background:#5f7653;color:#fff6cf;box-shadow:inset 0 2px 4px #233e3577}.net-lever{display:block;flex:0 0 36px;width:36px;height:36px;background:#183c30;border:3px solid #768c67;border-radius:50%;position:relative}.net-lever:after{content:'';position:absolute;left:13px;top:-7px;width:6px;height:31px;background:linear-gradient(90deg,#d5b35e,#f5dfa1,#bc964d);border:1px solid #a08545;border-radius:3px;transform-origin:50% 100%;transform:rotate(-38deg);box-shadow:1px 2px 2px #001b1988}.net-lever.position-2:after{transform:rotate(38deg)}.net-board-legend{font-size:9px;color:#b8caa5;display:flex;justify-content:center;gap:18px;padding-top:15px}.net-operation{padding:21px 24px;background:linear-gradient(100deg,#d9dcc2,#c3ceb0);color:#244133;border-bottom:1px solid #99ac8c}.net-operation .panel-heading h2,.net-operation .panel-heading h3{font-size:10px;letter-spacing:1.5px}.net-operation .panel-heading>span{font:9px monospace}.net-selected{display:flex;gap:16px;align-items:center;border:1px solid #9daa8a;background:#e8e6cc;padding:12px}.net-selected>strong{font:27px monospace;background:#193e2e;color:#e6bb79;border:3px solid #7f916d;padding:8px}.net-selected>div{flex:1}.net-selected b{font-size:13px}.net-selected span{display:block;font-size:11px;margin-top:6px;color:#607151}.net-selected .secondary{min-height:44px;font-size:11px;padding:8px 12px}.net-actions{display:flex;gap:10px;margin-top:12px}.net-actions .route-button{flex:1;font-size:12px}.net-preview{margin-top:15px;background:#f2ecd0;padding:16px;border:2px solid #c7ac70;box-shadow:0 3px 7px #314d2d22}.net-preview p{font-size:13px;line-height:1.6}.net-preview-note{display:block;font:11px/1.6 Arial,sans-serif;color:#687956;margin-top:9px}.net-proof-steps{display:flex;gap:10px;margin-top:13px}.net-proof-steps>button{flex:1;text-align:left;padding:10px 12px;background:#e4e4c6;border:1px solid #a6b58d;color:#4d633f;min-height:60px}.net-proof-steps span{display:block;font-size:10px}.net-proof-steps b{display:block;font-size:13px;margin-top:6px}.net-proof-steps .proved{background:#d7dfb8;border-color:#839d64}.net-path-check{padding:10px;background:#ead6aa;color:#74592d;margin:12px 0;font-size:11px!important}.net-path-check.ready{background:#dbe3bd;color:#3f5c34}.net-text-button{min-height:44px;padding:5px 7px;border:0;background:transparent;color:#506d43;font-size:11px;text-decoration:underline}.net-layout>aside{padding:20px 16px;color:#29472e;min-width:0}.net-attention .panel-heading{margin-bottom:4px;min-height:44px}.net-attention .panel-heading h2{font-size:11px;letter-spacing:1.5px}.net-attention-note{font-size:10px;line-height:1.6;color:#607a51;margin-bottom:13px}.net-alert{border:1px solid #8da77b;background:#dbe1c0;margin-bottom:12px;padding:13px}.net-alert.important{background:#eee1b5;border-color:#b59a5d;border-left:4px solid #a7833d}.net-alert .eyebrow{font-size:8px;letter-spacing:1px;line-height:1.7;color:#7b7149}.net-alert h3{font:19px/1.2 Georgia,serif;margin:7px 0}.net-alert p{font-size:11px;line-height:1.7;color:#5e6d48}.net-alert-actions{display:flex;gap:7px;margin-top:12px}.net-alert .secondary{padding:8px;font-size:10px;min-height:44px;flex:1}.net-alert>small{display:block;font-size:9px;line-height:1.5;color:#7e7652;margin-top:10px}.net-alert .utility-button{width:100%;margin-top:10px;white-space:normal}.net-no-alert{font:italic 17px/1.6 Georgia,serif;color:#687f55;border:1px dashed #8da77b;padding:17px}.net-work-status{font-size:10px;line-height:1.6;color:#735a30;background:#dcc694;padding:10px;margin:14px 0}.net-handover-check{padding:15px;border-top:1px solid #7f9a6c;margin-top:18px}.net-handover-check h3{font-size:10px;letter-spacing:1px;text-transform:uppercase}.net-handover-check p{font-size:11px;line-height:1.8;margin-top:8px}.net-timetable{margin:20px 24px;transform:none;padding:19px}.net-timetable .timetable th:first-child{width:34%}.net-timetable .timetable th:nth-child(2){width:26%}.net-timetable .timetable th:nth-child(3){width:40%}.net-setting-group{margin-top:23px}.net-setting-group .mode-choice{margin:10px 0 18px}.network-desk .dialog .net-attention{color:#29472e}.network-desk .footer{padding-bottom:15px}.network-intro-link{margin-top:20px;border-top:1px solid #b6c0a4;padding-top:19px}.network-intro-link p{font-size:12px;line-height:1.7;color:#637451;margin:9px 0 13px}
@media(max-width:1100px){.net-layout{grid-template-columns:1fr}.net-layout>aside{display:grid;grid-template-columns:1fr;gap:0;padding:16px 20px}.net-attention{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.net-attention>.panel-heading,.net-attention>.net-attention-note,.net-attention>.net-work-status,.net-attention>.net-no-alert{grid-column:1/-1}.net-alert{margin:0}.net-alert-actions{flex-wrap:wrap}.net-attention .net-work-status{margin-bottom:0}.net-handover-check{display:flex;gap:20px;align-items:center;margin-top:12px;padding:12px 0}.net-handover-check p{margin:0}.network-desk .dialog .net-attention{display:block}.network-desk .dialog .net-alert{margin-bottom:12px}.net-main .net-board{padding-top:17px}}
@media(max-width:760px){.net-global{padding:13px;gap:10px}.net-mode{font-size:10px}.net-global .clock{flex:0 1 auto;min-width:125px}.net-global .run-button{flex:0 0 100px}.net-strip{grid-template-columns:1fr 1fr}.net-strip>button{padding:11px 13px;min-height:70px}.net-strip button>span{font-size:21px}.net-link-status{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:11px 14px;gap:5px}.net-link-status>small{grid-column:1/-1}.net-board{padding:14px 10px 12px}.net-board>header{gap:12px}.net-board h2{font-size:23px}.net-board header>span{font-size:8px}.net-diagram{height:310px}.net-endpoint{font-size:9px;width:20%}.net-endpoint small{font-size:8px}.net-track{left:33%;width:34%}.net-track strong{font-size:18px}.net-track small{font-size:8px}.net-board-points{left:0;right:0;gap:10px}.net-point-bank{width:45%;padding:8px}.net-point-label{font-size:8px;letter-spacing:0}.net-point-label>span{font-size:8px}.net-lever{flex-basis:26px;width:26px;height:26px;border-width:2px}.net-lever:after{left:9px;width:5px;height:24px;top:-8px}.net-selector{gap:4px}.net-selector>button{font-size:10px;padding:3px;min-width:44px}.net-operation{padding:18px}.net-operation .panel-heading{align-items:flex-start;gap:10px}.net-operation .panel-heading>span{font-size:8px;text-align:right;max-width:130px}.net-selected{padding:10px;gap:10px;flex-wrap:wrap}.net-selected>strong{font-size:22px;padding:7px}.net-selected b{font-size:11px}.net-selected span{font-size:10px;line-height:1.5}.net-selected .secondary{padding:6px 10px}.net-actions{gap:8px}.net-actions .route-button{font-size:11px;line-height:1.5;padding:9px 5px}.net-proof-steps{flex-direction:column}.net-proof-steps>button{display:flex;justify-content:space-between;align-items:center;min-height:48px}.net-proof-steps b{margin:0;font-size:12px}.net-proof-steps span{font-size:10px}.net-timetable{margin:18px;padding:15px}.net-timetable .train-select{font-size:13px}.net-timetable .train-select small{font-size:8px;line-height:1.5}.net-timetable .train-status{font-size:9px}.net-timetable .time-cell{font-size:11px}.net-attention{grid-template-columns:1fr}.net-layout>aside{padding:14px 18px}.net-alert{padding:13px}.net-alert-actions{max-width:300px}.net-handover-check{display:block}.net-handover-check p{margin-top:7px}.net-preview{padding:13px}.net-preview>p{font-size:12px}.net-feedback{padding:12px 14px;font-size:11px}}
@media(max-width:420px){.net-point-bank{width:48%;padding:6px}.net-selector>button{font-size:9px}.net-lever{flex-basis:23px;width:23px;height:23px}.net-lever:after{left:7px}.net-point-label{font-size:7px}.net-point-label>span{font-size:7px}.net-board header>span{max-width:100px;line-height:1.6;text-align:right}.net-diagram svg text{font-size:9px}.net-timetable{margin:16px 12px;padding:12px}.net-track strong{font-size:16px}.network-desk .masthead-actions{flex-wrap:wrap;justify-content:flex-start}.net-selected .secondary{flex:1}.net-selected>div{min-width:150px}}
.net-sticky{position:sticky;top:0;z-index:5;box-shadow:0 4px 14px #08291d55}.net-global-button{min-height:44px;border:1px solid #819c6f;background:#edf0ce;color:#365335;padding:8px 12px;font-size:11px;white-space:nowrap}.net-service-picker{position:absolute;top:100%;right:0;width:min(600px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#8da47b;padding:8px;box-shadow:0 8px 20px #092d1bcc}.net-service-picker>button{background:#e5e7c7;border:1px solid #8b9f77;text-align:left;padding:11px;color:#2c4d32;min-height:63px}.net-service-picker>button.active{background:#c3d29f}.net-service-picker b{font:17px monospace;display:block}.net-service-picker small{font-size:10px;line-height:1.5;display:block;margin-top:5px}.net-preview{scroll-margin-top:170px}.net-report-clock{font:13px monospace;color:#345137}.network-desk .dialog-tools{flex-wrap:wrap;justify-content:flex-end}.network-desk .dialog-tools>.secondary{padding:7px 11px;min-height:44px}
@media(min-width:900px){.net-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start}.net-main>.net-timetable{grid-column:1/-1}.net-board{min-width:0}.net-operation{padding:17px 16px;border-left:1px solid #92a67d}.net-operation .panel-heading>span{font-size:8px;max-width:120px;text-align:right}.net-selected{gap:10px;flex-wrap:wrap;padding:10px}.net-selected>strong{font-size:24px;padding:6px}.net-selected>div{min-width:155px}.net-selected .secondary{width:100%;min-height:44px}.net-selected b{font-size:11px}.net-proof-steps{flex-direction:column;gap:7px}.net-proof-steps>button{min-height:46px;display:flex;justify-content:space-between;align-items:center;padding:8px 10px}.net-proof-steps b{margin:0;font-size:12px}.net-proof-steps span{font-size:10px}.net-operation .hint{min-height:0}.net-operation:has(.net-preview) .hint{display:none}.net-actions .route-button{font-size:10px;padding:7px 4px}.net-actions{margin-top:10px}.net-preview{padding:12px;margin-top:10px}.net-preview .panel-heading{margin-bottom:6px}.net-preview-note{font-size:10px;line-height:1.5}.net-preview p{font-size:11px}.net-path-check{font-size:10px!important;padding:8px;margin:8px 0}.net-preview .primary{width:100%;padding:9px 12px;min-height:46px}.net-board-points{left:0;right:0;gap:8px}.net-point-bank{width:47%;padding:7px}.net-selector{gap:4px}.net-selector>button{font-size:10px;padding:3px;min-width:44px}.net-lever{flex-basis:27px;width:27px;height:27px}.net-lever:after{left:9px;height:25px;top:-8px}.net-point-label{font-size:8px;letter-spacing:0}.net-point-label>span{font-size:8px}.net-track{left:33%;width:34%}.net-track strong{font-size:17px}.net-track small{font-size:8px}}
@media(min-width:1101px) and (max-width:1350px){.net-layout{grid-template-columns:1fr}.net-layout>aside{display:grid;grid-template-columns:1fr;padding:16px 20px}.net-attention{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.net-attention>.panel-heading,.net-attention>.net-attention-note,.net-attention>.net-work-status,.net-attention>.net-no-alert{grid-column:1/-1}.network-desk .dialog .net-attention{display:block}}
@media(max-width:1100px){.net-global{padding:8px 13px;gap:9px}.net-global>div:first-child{min-width:130px}.net-global>div:first-child .eyebrow{display:none}.net-global>div:first-child b{font-size:15px}.net-global .clock{font-size:21px;padding:5px 9px}.net-global .run-button{min-width:88px;padding:0 10px}.net-clock-state{width:auto;max-width:150px;font-size:8px;line-height:1.5}.net-strip>button{min-height:61px;padding:8px 13px}.net-strip button>span{font-size:20px}.net-strip button>small{margin-top:4px}.net-link-status{padding:8px 12px}.net-link-status>small{display:none}.net-preview{scroll-margin-top:150px}.net-mode{font-size:9px}}
@media(max-width:899px){.net-global>div:first-child{display:none}.net-clock-state{display:none}.net-global .clock{flex:1}.net-mode{font-size:9px}.net-global-button{font-size:10px;padding:7px 10px}.net-preview{scroll-margin-top:210px}.net-operation:has(.net-preview) .hint{display:none}.net-attention{grid-template-columns:1fr 1fr}.net-attention .net-alert:nth-of-type(3){grid-column:1/-1}}
@media(max-width:760px){.net-attention{grid-template-columns:1fr}.net-attention .net-alert:nth-of-type(3){grid-column:auto}.net-service-picker{grid-template-columns:1fr 1fr}.net-global .net-mode{display:none}.net-global .run-button{flex:0 0 83px;min-width:83px}.net-global .clock{min-width:108px;font-size:18px}.net-global{gap:6px}.net-global-button{padding:6px 8px}.net-strip>button{min-height:54px}.net-strip button>span{font-size:18px}.net-link-status{display:flex;flex-direction:row;justify-content:space-between;padding:8px 12px}.net-link-status>span{font-size:8px}.net-link-status>b{font-size:11px}.net-preview{scroll-margin-top:180px}}
.net-board{scroll-margin-top:150px}@media(max-width:760px){.net-board{scroll-margin-top:180px}}
.net-board:focus-visible{outline:2px solid #e4c16b;outline-offset:-3px}
