:root{color-scheme:dark;--bg:#101a20;--panel:#15252c;--card:#1b2e36;--line:#334850;--text:#edf4f1;--muted:#a1b6bf;--accent:#d9f36e;--blue:#69bcf1;--red:#f18678;--orange:#efbb68;--purple:#c5a1e9;font:16px/1.5 Inter,Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit;transition:background .15s,border-color .15s}button:hover{filter:brightness(1.17)}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.2}h1{font-size:27px;letter-spacing:-1px;margin:9px 0}h2{font-size:25px;font-weight:550;letter-spacing:-.6px}h3{font-size:17px;font-weight:550}h4{font-size:16px}.masthead{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 26px;gap:22px;background:#111e24}.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:750;letter-spacing:1.7px}.brand-icon{height:39px;width:43px;display:grid;place-items:center;border-radius:10px;background:var(--accent);color:#15251b;font-size:23px;letter-spacing:-3px;padding-right:3px}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:1.5px;margin-top:4px}.masthead nav{display:flex;gap:7px;background:#1c2c34;padding:4px;border-radius:9px}.masthead nav a{font-size:14px;padding:7px 17px;border-radius:6px;color:var(--muted)}.masthead nav .current{background:#344638;color:var(--accent)}.quiet{background:transparent;border:1px solid var(--line);border-radius:7px;padding:9px 13px;font-size:14px;white-space:nowrap}.quiet>span{margin-left:10px}.small{padding:6px 11px;font-size:13px}.lab{display:grid;grid-template-columns:315px minmax(0,1fr);align-items:start;max-width:1900px;margin:auto}.controls{border-right:1px solid var(--line);padding:25px 19px 24px;position:sticky;top:0;max-height:100dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#435b64 transparent}.controls-heading{padding:0 5px 13px}.controls-heading p{font-size:14px;color:var(--muted);margin:0}.eyebrow{font-size:12px;letter-spacing:1.6px;color:var(--muted)}.control-card{background:#172930;border:1px solid #30454e;border-radius:10px;padding:15px 15px 13px;margin:12px 0}.card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card-title h2{font-size:16px;letter-spacing:-.2px;margin:0;font-weight:550}.number{font-size:12px;color:#8ba5af}.tag{font-size:11px;letter-spacing:.2px;padding:2px 6px;border-radius:4px;margin-left:auto}.tag.blue{background:#244052;color:#91d5ff}.tag.orange{background:#463d2e;color:#efbb68}.tag.purple{background:#3f334d;color:#d4b7ed}.control-sub{font-size:13px;line-height:1.5;color:#a4bbc4;margin:10px 0 0}.lever-box{position:relative;margin:-3px -5px -4px}.lever-box svg{width:100%;height:145px;display:block}.dial-arc{stroke:#395562;stroke-width:3;fill:none}.dial-ticks{stroke:#6c8791;stroke-width:2}.lever-box text{font:10px Arial,sans-serif;letter-spacing:1px;fill:#a0b5bd}#fbv-lever{transition:transform .3s}.lever-output{position:absolute;left:50%;top:58px;transform:translateX(-50%);text-align:center;pointer-events:none}.lever-output strong{font-size:25px;font-weight:550;letter-spacing:-1px;display:block;line-height:1}.lever-output span{font-size:10px;color:#a0b7c2}.range-label{font-size:13px;display:flex;justify-content:space-between;gap:8px;align-items:center;margin:8px 0 11px}.range-label span{color:var(--accent);font-size:12px}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;height:7px;display:block;margin:4px 0 8px;touch-action:pan-y}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);vertical-align:middle;flex-shrink:0}.range-ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.position-buttons,.two-buttons,.three-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px}.three-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.position-buttons button,.two-buttons button,.three-buttons button,.three-actions button,.service-tools button{background:#20353e;border:1px solid #3a5360;border-radius:6px;padding:8px 5px;font-size:12px}.position-buttons button.active,.two-buttons button.active,.three-buttons button.active{border-color:#7d914a;background:#384931;color:var(--accent)}.emergency{border:1px solid #a6544b;background:#5b302e;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:9px 12px;border-radius:6px;font-size:13px;margin-top:8px}.emergency span{font-size:11px;color:#e9b4ab}.emergency.active{background:#a54639;border-color:#ffb0a5}.control-note{font-size:12px;color:var(--muted);margin:11px 0 0;line-height:1.55}.settings{padding:6px 3px 0}.settings>label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin:10px 0}.settings select{width:155px}.settings .two-buttons button{font-size:13px}.settings .two-buttons button[aria-pressed=true]{color:var(--accent)}select{border:1px solid #49606b;background:#20323b;color:var(--text);border-radius:5px;padding:6px;font-size:13px;max-width:100%}.workbench{padding:25px 28px 28px;min-width:0}.workbench-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.workbench-head h2{font-size:24px;margin:7px 0 0;letter-spacing:-.7px}.live-indicator{border:1px solid #52624a;border-radius:20px;padding:5px 10px;color:var(--accent);font-size:12px;white-space:nowrap}.gauges{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:23px}.gauge{background:#172830;border:1px solid #30464f;border-radius:8px;position:relative;padding:12px 10px 9px;overflow:hidden}.gauge-label{font-size:12px;display:flex;justify-content:space-between;color:#afc3cc;white-space:nowrap}.gauge-label b{font-weight:500;font-size:11px;color:var(--color)}.gauge svg{display:block;width:100%;height:63px;margin:6px 0 -8px}.gauge strong{font-size:21px;font-weight:550;letter-spacing:-.7px;display:block;text-align:center;font-variant-numeric:tabular-nums}.gauge small{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0}.gauge .gauge-line{position:absolute;height:2px;bottom:0;left:0;background:var(--color);width:var(--value,0%)}.view-nav{display:flex;gap:6px;border-bottom:1px solid #3b525c;margin-bottom:0;overflow-x:auto;scrollbar-width:thin}.view-nav button{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 14px;font-size:14px;color:#a7bec8;white-space:nowrap}.view-nav button[aria-selected=true]{border-color:var(--accent);color:var(--accent);background:#1e302e}.visual-panel{background:radial-gradient(ellipse at 50% 44%,#233b46,#172b34);border:1px solid #354c57;border-top:0;border-radius:0 0 10px 10px;overflow:hidden}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px 8px}.panel-top h3{margin:0;color:#d3e3e8;font-size:15px}.panel-top p{margin:6px 0 0;font-size:13px;color:var(--muted)}.diagram-scroll{width:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#52717e #152b34}#air-diagram{min-width:870px}#air-diagram svg,#valve-diagram svg{display:block;width:100%;height:auto}#valve-diagram{min-width:800px}.diagram-scroll svg text{font-family:Arial,Helvetica,sans-serif}.diagram-scroll svg .component{cursor:pointer;outline:0}.diagram-scroll svg .component:hover .node-bg,.diagram-scroll svg .component:focus .node-bg{stroke:#d9f36e;stroke-width:2.5}.diagram-scroll svg .component.selected .node-bg{stroke:#d9f36e;stroke-width:2.5}.node-title{fill:#e6eff2;font-size:14px;font-weight:500}.node-sub{fill:#a0bac6;font-size:11px}.node-value{font-size:17px;fill:#e5eff2;font-variant-numeric:tabular-nums}.section-text{font-size:11px;letter-spacing:2px;fill:#91aebb}.pipe{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.flow{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:5 13;stroke-linejoin:round;opacity:0}.flow.active{opacity:1;animation:flowMove .72s linear infinite}.flow.reverse{animation-direction:reverse}.flow.still{animation-play-state:paused}.exhaust-icon{stroke:#91a8b2;stroke-width:1.5;fill:none}@keyframes flowMove{to{stroke-dashoffset:-36}}.legend{display:flex;gap:10px 18px;flex-wrap:wrap;padding:12px 20px 5px}.legend span{font-size:12px;color:#b7cbd4;display:flex;align-items:center;gap:7px}.legend span:before{content:'';display:block;width:15px;height:3px;background:var(--c);border-radius:2px}.diagram-tip{font-size:12px;color:#91abb7;margin:9px 20px 17px;line-height:1.6}.inline-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.valve-states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 20px}.valve-states>div{background:#122630;border:1px solid #3d5662;border-radius:7px;padding:10px 12px}.valve-states span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.valve-states strong{font-size:15px;font-weight:550}.equation{display:flex;gap:8px;flex-wrap:wrap;padding:13px 20px 18px;font-size:13px;color:#a9c0ca}.equation strong{font-size:16px;color:#dfe8d4;font-weight:500;letter-spacing:.2px}.equation>span:last-child{display:block;flex-basis:100%;font-size:12px}.live-explanation{display:flex;gap:15px;padding:21px 18px 18px;border-bottom:1px solid #34494f}.flow-icon{font-size:27px;color:var(--accent);line-height:1}.live-explanation h3{margin:0 0 7px;font-size:17px;color:#edf4dd}.live-explanation p{font-size:16px;line-height:1.6;color:#a8c0ca;margin:0;max-width:940px}.time-label{margin-left:auto;font-size:12px;color:#8ca7b5;white-space:nowrap;font-variant-numeric:tabular-nums}.component-details{padding:22px 18px 20px;border-bottom:1px solid #34494f}.detail-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.component-details h3{font-size:20px;margin-bottom:9px}.component-details>p{font-size:16px;line-height:1.65;color:#aec5cd;margin-bottom:12px}.text-button{border:0;background:transparent;font-size:12px;color:var(--muted)}.source-note{font-size:12px!important;color:#8ba7b3!important}.component-list{display:flex;gap:6px;flex-wrap:wrap}.component-list button{border:1px solid #3b5661;background:#1d313a;border-radius:5px;color:#b5ccd5;font-size:12px;padding:6px 10px}.component-list button.active{border-color:var(--accent);color:var(--accent)}.experiments{padding:23px 0 10px}.section-title h3{font-size:19px;margin-bottom:7px}.section-title p{font-size:14px;color:var(--muted);margin-bottom:15px}.experiment-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.experiment-buttons button{background:#172c35;border:1px solid #3c5662;border-radius:7px;color:#bfd0d9;padding:12px 10px;text-align:left;font-size:13px}.experiment-buttons button.active{border-color:#8a9e4f;background:#2a3d2d;color:var(--accent)}.experiment-guide{border-left:3px solid var(--accent);background:#1b302c;padding:15px 20px;margin-top:15px;border-radius:0 7px 7px 0}.experiment-guide h4{font-size:17px;margin-bottom:7px;color:var(--accent)}.experiment-guide p{font-size:16px;line-height:1.6;margin:0;color:#c1d2c9}.faults{margin-top:10px;border:1px solid #3c5059;border-radius:8px;background:#17272f}.faults summary{cursor:pointer;font-size:14px;color:#b1c5ce;padding:14px 16px}.fault-grid{padding:2px 17px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.fault-grid label{display:flex;align-items:start;gap:10px;font-size:14px}.fault-grid small{display:block;font-size:12px;color:#9bb5c1;margin-top:4px}.model-footer{font-size:12px;color:#91a9b4;margin-top:22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px}.model-footer button{border:0;padding:0;background:transparent;font-size:12px;color:var(--accent)}.three-viewport{height:400px;position:relative;touch-action:none;min-width:0}.three-viewport canvas{display:block;width:100%;height:100%}.three-viewport .fallback{position:absolute;inset:20px;display:flex;align-items:center;justify-content:center;color:#afc5d0;font-size:16px;text-align:center}.three-label{position:absolute;font-size:12px;color:#e2f0e9;background:#152c34dd;border:1px solid #56717d;padding:4px 8px;border-radius:4px;pointer-events:none;max-width:180px}.three-actions{padding:0 20px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:var(--muted)}.three-actions button{padding:6px 12px;font-size:13px}.force-strip{padding:15px 20px;background:#122630;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #344e59}.force-strip span{display:block;font-size:12px;color:#9db7c4;margin-bottom:5px}.force-strip strong{font-size:21px;font-weight:550;color:#d9f36e}.state-badge{font-size:13px;color:var(--accent);border:1px solid #708849;padding:4px 10px;border-radius:20px}.spring-explain{padding:18px 20px}.spring-explain h4{margin:0 0 8px}.spring-explain p{font-size:16px;line-height:1.6;color:#adc6d1;margin-bottom:13px}.service-tools{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.service-tools button{padding:7px 12px;font-size:13px}.service-tools span{font-size:12px;color:#c4a5dc}.service-tools button:disabled{opacity:.45;cursor:default}#pressure-chart{display:block;width:100%;height:380px}.mechanical-panel .panel-top{padding-bottom:0}dialog{max-width:740px;width:92vw;max-height:88dvh;padding:36px;background:#172b34;border:1px solid #506773;color:#e1edf0;border-radius:13px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#071016b9;backdrop-filter:blur(4px)}dialog .dialog-close{position:absolute;right:12px;top:10px;background:transparent;border:0;color:#c0d4dd;font-size:28px;cursor:pointer}dialog h2{margin:14px 0 20px;font-size:27px}dialog h3{margin:26px 0 13px;font-size:20px}dialog p,dialog li{font-size:16px;line-height:1.7;color:#b4cbd4}dialog ul{padding-left:20px}dialog li{margin:8px 0}dialog table{border-collapse:collapse;width:100%;font-size:14px}dialog th,dialog td{padding:10px 12px;text-align:left;border-bottom:1px solid #425b66;font-weight:400}dialog td{color:#adc7d2}dialog a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.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}
@media(min-width:1600px){.lab{grid-template-columns:335px minmax(0,1fr)}.workbench{padding:30px 35px}.controls{padding:30px 23px}.control-card{padding:17px}.three-viewport{height:500px}.gauge svg{height:77px}.gauge strong{font-size:25px}.view-nav button{padding:13px 21px;font-size:15px}.control-card .card-title h2{font-size:18px}.experiment-buttons button{font-size:14px}}
@media(max-width:1150px){.lab{grid-template-columns:290px minmax(0,1fr)}.controls{padding:21px 12px}.workbench{padding:24px 18px}.workbench-head h2{font-size:21px}.live-indicator{display:none}.gauges{gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.gauge{padding:8px 12px}.gauge svg{height:48px;margin-top:0}.gauge strong{font-size:19px}.gauge-label{font-size:12px}.view-nav button{padding:11px;font-size:13px}.experiment-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.three-viewport{height:360px}.panel-top{padding:15px 15px 10px}.force-strip strong{font-size:18px}.force-strip{padding:14px}.live-explanation{padding-left:7px;padding-right:7px}.time-label{display:none}}
@media(max-width:760px){.masthead{height:auto;min-height:68px;flex-wrap:wrap;gap:12px;padding:13px 16px}.brand{font-size:15px}.brand-icon{width:36px;height:36px;font-size:20px}.brand small{font-size:10px}.masthead nav{margin-left:auto;gap:0}.masthead nav a{font-size:12px;padding:7px 9px}.masthead>.quiet{border:0;padding:0;font-size:12px;color:#afc6d1;position:absolute;right:17px;top:71px;z-index:1}.lab{display:flex;flex-direction:column}.controls{position:static;max-height:none;width:100%;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:22px 13px 17px}.controls-heading{grid-column:1/-1;padding:0 3px}.controls-heading h1{font-size:25px}.controls-heading p{font-size:14px}.controls-heading .eyebrow{font-size:11px;letter-spacing:1px}.control-card{margin:0;padding:12px}.fbv-card{grid-column:1/-1}.fbv-card .lever-box{float:left;width:42%;margin:0 12px 0 -5px}.fbv-card .lever-box svg{height:130px}.fbv-card .lever-output{top:55px}.fbv-card .control-sub{margin-bottom:9px}.fbv-card .range-label{padding-top:10px}.fbv-card input[type=range]{width:54%;margin-left:auto}.fbv-card .range-ticks{width:54%;margin-left:auto}.fbv-card .position-buttons{margin-top:12px}.fbv-card .emergency{clear:both;margin-top:14px}.fbv-card .card-title{flex-wrap:nowrap}.card-title h2{font-size:14px;flex:1}.card-title .tag{font-size:10px}.controls>.control-card:not(.fbv-card) .card-title{gap:5px}.controls>.control-card:not(.fbv-card) .tag{margin:3px 0 0 20px}.controls>.control-card:not(.fbv-card) .control-sub{font-size:12px;line-height:1.5}.three-buttons{grid-template-columns:1fr;gap:5px}.three-buttons button{padding:6px;font-size:12px}.two-buttons{grid-template-columns:1fr;gap:7px}.settings{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:center;padding:0}.settings>label{margin:0;display:block;font-size:12px}.settings select{display:block;margin-top:5px;width:100%;font-size:13px}.settings>.two-buttons{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1px}.workbench{width:100%;padding:21px 13px}.workbench-head .eyebrow{font-size:11px;letter-spacing:1px}.workbench-head h2{font-size:21px;max-width:320px;line-height:1.25}.workbench-head{margin-bottom:15px}.gauges{gap:6px}.gauge{padding:8px}.gauge-label{font-size:11px}.gauge-label b{font-size:10px}.gauge svg{height:43px}.gauge strong{font-size:19px}.view-nav{margin:0 -2px}.view-nav button{font-size:13px;padding:11px 10px}.panel-top{padding:16px 13px 10px;align-items:flex-start}.panel-top h3{font-size:14px}.panel-top p{font-size:12px}.panel-top .small{font-size:11px;padding:5px 7px}.legend{padding:12px 13px 4px;gap:8px 13px}.legend span{font-size:11px}.diagram-tip{font-size:12px;margin:9px 13px 15px}.live-explanation{padding:18px 3px;gap:10px}.live-explanation p{font-size:16px}.component-details{padding:18px 3px}.component-details h3{font-size:19px}.component-details p{font-size:16px}.experiment-buttons{gap:7px}.experiment-buttons button{font-size:13px;padding:12px}.fault-grid{grid-template-columns:1fr;gap:16px}.faults summary{font-size:13px;padding:14px 12px}.three-viewport{height:300px}.three-actions{padding:0 12px 12px;gap:8px;font-size:12px;align-items:flex-start;flex-wrap:wrap}.three-actions button{font-size:12px}.force-strip{gap:7px;padding:12px}.force-strip span{font-size:11px}.force-strip strong{font-size:17px}.valve-states{padding:8px 12px;gap:5px}.valve-states>div{padding:8px}.valve-states span{font-size:11px}.valve-states strong{font-size:13px}.equation{padding:12px;font-size:12px}.equation strong{font-size:14px}.spring-explain{padding:16px 13px}.spring-explain p{font-size:16px}.inline-label{font-size:11px;flex-direction:column;gap:4px;align-items:flex-start}.inline-label select{font-size:12px}#pressure-chart{height:310px}dialog{padding:28px 22px}dialog th,dialog td{padding:9px 6px;font-size:13px}dialog h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.flow.active{animation:none;stroke-dasharray:7 7}}

.diagram-scroll.fit #air-diagram{min-width:0}
.train-panel .panel-top{align-items:center;padding-bottom:18px}.train-panel .panel-top h3{font-size:18px;line-height:1.35}.train-panel .panel-top p{font-size:14px}.train-cockpit{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(170px,1fr));gap:12px;padding:0 18px 16px;border-bottom:1px solid #3a515e;background:#142a3380}.train-cockpit fieldset{min-width:0;margin:0;padding:12px;border:1px solid #3f5a67;border-radius:7px;background:#162e38}.train-cockpit legend{font-size:14px;padding:0 5px;color:#c9dce4}.train-cockpit p{font-size:14px;line-height:1.5;color:#a9c2ce;margin:10px 0 0}.train-fbv label{font-size:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.train-fbv output{font-variant-numeric:tabular-nums;color:var(--accent)}.train-fbv input[type=range]{margin:16px 0;height:10px}.train-buttons{display:flex;gap:6px;flex-wrap:wrap}.train-buttons button{border:1px solid #496675;border-radius:5px;background:#223b47;color:#d5e4ea;font-size:14px;line-height:1.35;padding:9px 10px;min-height:39px}.train-buttons button.active,.train-buttons button[aria-pressed=true]{background:#3b4e36;color:var(--accent);border-color:#849b53}.train-buttons .train-emergency{border-color:#ab6458;background:#58352f;color:#ffc5b4}.train-buttons .train-emergency.active{background:#943e2e;border-color:#fcb394}.train-viewport{height:550px;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#294553,#132833)}.train-viewport .three-label{transform:translate(-50%,-50%);font-size:14px;line-height:1.25;max-width:240px;background:#122732ed;border-color:#5c7a89;padding:5px 8px}.train-toolbar{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#152b34;border-top:1px solid #3b5260}.train-view-settings{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.train-view-settings label{display:flex;align-items:center;gap:5px;font-size:14px;color:#b6ccd5}.train-view-settings select{font-size:14px}.train-readings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 18px 15px;background:#152b34}.train-readings article{border:1px solid #4a6570;border-top:3px solid #769eaf;border-radius:6px;padding:13px;background:#122730}.train-readings article.braking{border-top-color:var(--red)}.train-readings article>div{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px}.train-readings h4{font-size:16px;margin:0}.train-readings article>div>span{font-size:13px;color:#9fbbc8}.train-readings dl{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:13px 0}.train-readings dl>div{min-width:60px}.train-readings dt{font-size:13px;color:#aac4cf}.train-readings dd{font-size:17px;font-variant-numeric:tabular-nums;color:#e0edf1;margin:2px 0 0}.train-readings p{margin:0;font-size:14px;line-height:1.5;color:#adc6ce}.train-readings strong{color:#d4e5de;font-weight:500}.train-readings .braking strong{color:#f5bba7}.train-selection{font-size:16px;line-height:1.65;color:#bbd1d9;margin:15px 20px}.train-wide{grid-template-columns:minmax(0,1fr)}.train-wide>.controls{display:none}.train-wide .train-viewport{height:600px}.train-wide .workbench{width:100%}
@media(max-width:1350px){.train-cockpit{grid-template-columns:repeat(2,minmax(0,1fr))}.train-fbv{grid-column:1/-1}.train-viewport{height:450px}.train-readings{gap:7px;padding-left:12px;padding-right:12px}.train-readings article{padding:10px}.train-readings dd{font-size:16px}}
@media(max-width:760px){.train-cockpit{padding:0 12px 13px;gap:9px}.train-cockpit fieldset{padding:10px}.train-cockpit legend{font-size:14px}.train-buttons button{font-size:14px;padding:8px;flex:1}.train-viewport{height:390px}.train-panel .panel-top{flex-wrap:wrap;padding:16px 13px}.train-panel .panel-top h3{font-size:17px}.train-readings{grid-template-columns:minmax(0,1fr)}.train-readings dl{justify-content:flex-start;gap:25px}.train-toolbar{padding:12px}.train-viewport .three-label{font-size:12px;max-width:155px}.train-wide .train-viewport{height:430px}.train-selection{margin:13px;font-size:16px}}
.brake-type-card select{width:100%;font-size:14px;padding:9px}.brake-type-card .range-label{font-size:14px;margin-top:0}.angleicher-controls{border-top:1px solid #3c535b;margin-top:14px;padding-top:5px;clear:both}.angleicher-controls .range-label{font-size:14px}.angleicher-controls output{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px}.angleicher-controls input[type=range]{width:100%!important}.angleicher-controls>button:first-of-type{display:block;width:100%;padding:10px 7px;margin-top:12px;border:1px solid #709cbb;border-radius:6px;background:#244256;color:#bfdef2;font-size:14px;touch-action:none;user-select:none}.angleicher-controls>button[aria-pressed=true]{background:#376845;border-color:var(--accent);color:var(--accent)}.angleicher-controls>button:disabled{opacity:.48;cursor:default}.angleicher-controls .text-button{padding:5px 0;font-size:12px}.valve3d-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:stretch}.valve3d-layout>div{min-width:0}.valve-viewport{height:470px;overflow:hidden}.valve3d-tools{background:#152b34;border-left:1px solid #3d5663;margin-top:14px;padding:18px 15px}.valve3d-tools>label{font-size:14px;display:block;margin-bottom:8px}.valve3d-tools select{width:100%;font-size:14px;padding:8px}.valve3d-tools .two-buttons{grid-template-columns:1fr}.valve3d-tools .two-buttons button{font-size:14px;padding:9px}.valve3d-tools button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.valve3d-tools button:disabled{opacity:.45;cursor:default}.valve3d-tools .text-button{padding:10px 0;color:#c3d6de;font-size:13px}.valve3d-tools .explosion-label{display:flex;justify-content:space-between;margin-top:18px}.explosion-label output{color:var(--accent);font-variant-numeric:tabular-nums}.valve3d-tools>p{font-size:13px;line-height:1.6;color:#a7c0cc;margin-top:17px}.valve3d-readings{display:flex;flex-wrap:wrap;gap:10px 22px;padding:15px 20px;background:#122630;border-top:1px solid #344e59}.valve3d-readings>div{flex:1;min-width:100px}.valve3d-readings span{display:block;font-size:12px;color:#9db7c4;margin-bottom:5px}.valve3d-readings strong{font-size:18px;color:#d9f36e;font-weight:500;white-space:nowrap}.valve-viewport .three-label{font-size:12px;line-height:1.4;max-width:260px;padding:5px 8px;border-color:#617d8a;background:#122933ed;transform:translate(-50%,-50%)}
@media(max-width:1250px){.valve3d-layout{grid-template-columns:minmax(0,1fr)}.valve3d-tools{border-left:0;border-top:1px solid #3d5663;margin-top:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.valve3d-tools>label:first-child{grid-column:1/-1;margin:0}.valve3d-tools .two-buttons{grid-template-columns:1fr 1fr;margin:0}.valve3d-tools .explosion-label{margin:0;align-self:end}.valve3d-tools>p{grid-column:1/-1;margin:0}.valve3d-tools .text-button{padding:0;text-align:left}.valve-viewport{height:430px}}
@media(max-width:760px){.brake-type-card{grid-column:1/-1}.angleicher-controls .range-label{padding-top:0!important}.angleicher-controls input[type=range]{width:100%!important;margin-left:0!important}.angleicher-controls{margin-top:12px;padding-top:9px}.valve-viewport{height:360px}.valve3d-tools{grid-template-columns:1fr;padding:14px}.valve3d-tools>label:first-child,.valve3d-tools>p{grid-column:1}.valve3d-tools .explosion-label{margin-top:8px}.valve3d-tools .two-buttons button{font-size:14px}.valve3d-readings{gap:11px 18px;padding:13px}.valve3d-readings>div{min-width:85px}.valve3d-readings strong{font-size:17px}.valve-viewport .three-label{font-size:11px;max-width:205px}}

/* Guided stops and functional tracing share the existing brake workbench. */
.learning{padding:18px 20px;margin:0 0 22px;border:1px solid #536b65;border-radius:10px;background:#192e34}
.learning h3{font-size:20px;margin:5px 0 0}.learning-start{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.learning-start>div{margin-right:auto}
.learning label{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.learning select{font-size:14px;padding:8px;max-width:100%}
.learning button{font-size:14px;padding:9px 13px;border-radius:6px;border:1px solid #627843;background:#34492e;color:#e8f7c1;min-height:40px}.learning button:disabled{opacity:.4;cursor:default}.learning .quiet{background:transparent;border-color:#536b76;color:var(--text)}
.learning-hint,.trace-caption{font-size:14px;color:#b1c7ce;line-height:1.6;margin:12px 0 0}
#lesson-body{border-top:1px solid #435d64;margin-top:16px;padding-top:15px}.lesson-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:#d9f36e}.learning h4{font-size:19px;margin:12px 0 8px}#lesson-text{font-size:16px;max-width:85ch;margin-bottom:10px}.lesson-readings{font-size:14px;color:#b8d2dc;font-variant-numeric:tabular-nums}.lesson-actions{display:flex;gap:8px;flex-wrap:wrap}.trace-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:17px;padding-top:15px;border-top:1px solid #38535b}.trace-choice{flex:1}.trace-tools button{margin-left:auto}
.trace-caption .trace-key{display:inline-block;margin-right:14px;color:var(--trace-color)}
[data-pipe].path-traced{stroke-width:7!important;opacity:1!important;filter:drop-shadow(0 0 3px var(--trace-color))}.component.path-traced>.node-bg{stroke:var(--trace-color);stroke-width:3}.component.path-traced{filter:drop-shadow(0 0 3px var(--trace-color))}
.three-viewport{position:relative}
.guide-callout{position:absolute;z-index:5;max-width:min(290px,80%);padding:8px 12px;background:#12242bf2;border:1px solid #d9f36e;border-left:4px solid #d9f36e;border-radius:6px;color:#f0f6e9;font-size:14px;line-height:1.4;transform:translate(-50%,-100%);pointer-events:none;box-shadow:0 4px 18px #0005}
@media(max-width:760px){.learning{padding:15px}.learning-start{gap:12px}.learning-start>div{width:100%}.learning-start>label{flex:1;min-width:0}.learning select{min-width:0}.trace-tools{align-items:stretch}.trace-choice{flex-basis:100%}.trace-tools button{margin-left:0}.lesson-actions button{flex:1}.lesson-actions .quiet{flex-basis:100%}}

@media(max-width:760px){.masthead nav{flex-wrap:wrap;gap:4px}.masthead nav a{font-size:12px;padding:7px 6px}}
