*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#243d58;font:14px/1.5 system-ui}main{padding:18px;max-width:1450px;margin:auto}header{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#617c98;letter-spacing:.06em}header b{color:#996324;font-weight:500}h1{font-size:24px;letter-spacing:-.5px;margin:10px 0 5px}.lead{font-size:13px;color:#5b7490;margin:0 0 16px}.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:white;border:1px solid #d8e2ed;border-radius:10px;padding:14px}.controls label{font-size:11px;display:flex;flex-direction:column;gap:6px}output{font-weight:700;color:#28639b}input{accent-color:#326d9f;width:100%;margin:0}select,button{font:12px system-ui;background:white;color:#284c70;border:1px solid #c5d4e4;border-radius:6px;padding:8px;cursor:pointer}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:15px}.stage{background:#fff;border:1px solid #cedcea;border-radius:9px;padding:12px}.stage:has(input:checked){background:#eaf3fd;border-color:#6894bd}.stage button{border:0;background:transparent;padding:0;text-align:left;display:block;font-weight:650;font-size:13px;min-height:40px}.stage small{display:block;color:#637d96;margin:7px 0}.stage label{display:flex;align-items:center;gap:8px;font-size:11px}.stage input{width:auto}.hint{font-size:10px;color:#698098;margin:7px 0}.detail{min-height:85px;padding:13px 16px;background:#143451;color:#dce8f6;border-radius:9px;font-size:12px}.detail strong{display:block;color:#fff;font-size:14px;margin-bottom:4px}.results{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:12px}.results section,.operator{background:white;border:1px solid #d8e2ed;border-radius:10px;padding:14px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metrics small{display:block;font-size:10px;color:#6b8097}.metrics strong{font:20px ui-monospace,monospace}svg{display:block;width:100%}#bars{height:180px}#amdahl{height:220px}svg text{fill:#607894;font:10px system-ui}h2{font-size:14px;margin:0 0 7px}#verdict,#limit,.operator p{font-size:12px;color:#526f8b;margin:6px 0}.operator{margin-top:12px}.operator-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.operator-flow{display:flex;gap:10px;align-items:center;margin:15px 0}.operator-flow div{flex:1;padding:12px;border:1px solid #cddcea;background:#eff5fb;border-radius:7px;text-align:center;font-size:12px}.operator-flow b{display:block;font:19px Georgia,serif;color:#285984}.operator-flow span{color:#8a9fb5}footer{font-size:10px;color:#6c8095;margin-top:10px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #bf7a2f;outline-offset:2px}@media(max-width:700px){main{padding:10px}.controls{grid-template-columns:1fr 1fr;gap:12px}.pipeline{grid-template-columns:1fr 1fr}.stage:last-child{grid-column:1/-1}.results{grid-template-columns:1fr}.operator-flow{flex-wrap:wrap}.operator-flow div{flex:1 1 110px}header{flex-direction:column;gap:4px}.metrics strong{font-size:17px}}

.stage button[aria-pressed=true]{color:#174c7c;text-decoration:underline;text-underline-offset:4px}

.time-entry{margin:7px 0 12px;display:flex;justify-content:space-between}.time-entry input{width:80px;min-width:0;border:1px solid #bed0e3;border-radius:5px;padding:5px;color:#284e76;font:12px system-ui}#measured-time{font-size:12px;font-weight:600;color:#2e618d}.roofline,.residency{margin-top:12px;padding:16px;background:#fff;border:1px solid #d8e2ed;border-radius:10px}.badge{font-size:10px;color:#8e6b38}.roof-grid{display:grid;grid-template-columns:1fr 1.7fr;gap:25px;margin-top:14px}.roof-grid label{display:block;font-size:11px;margin-top:10px}.roof-grid input[type=number]{padding:7px;border:1px solid #c4d4e5;border-radius:5px;font:13px system-ui;color:#264968;width:100%;margin-top:5px}.roof-grid output{display:block}.roof-grid input[type=range]{margin-top:10px}#roof-plot{height:280px}#roof-result{font-size:12px;background:#edf4fb;padding:10px;border-radius:6px}.roof-note,.residency p{font-size:11px;color:#637c95}.resident-flow{display:flex;align-items:center;gap:12px;margin-top:15px}.resident-flow div{padding:13px;background:#eff4fa;border:1px solid #d3deea;border-radius:8px;font-size:12px}.resident-flow .device-loop{flex:1;background:#173b5e;color:white}.resident-flow small{font-size:10px}.resident-flow>span{font-size:10px;color:#627d97}@media(max-width:700px){.roof-grid{grid-template-columns:1fr}.resident-flow{flex-direction:column;align-items:stretch}.resident-flow>span{text-align:center}.operator-head{flex-wrap:wrap}.time-entry input{width:70px}}

.fem-3d{background:white;border:1px solid #d4dfed;border-radius:12px;padding:14px;margin:14px 0 20px}.demo-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.demo-controls label{font-size:11px;display:flex;gap:7px;align-items:center}.demo-controls input{width:90px}.demo-steps{display:flex;gap:5px;margin-bottom:10px}.demo-steps button{flex:1}.demo-steps button[aria-pressed=true]{background:#244f79;color:white}.demo-layout{display:grid;grid-template-columns:1.5fr 1fr;border:1px solid #dbe3ee;border-radius:10px;overflow:hidden}#fem-scene{position:relative;min-height:390px;touch-action:none;background:#0b1d31}#fem-scene canvas{display:block;width:100%;height:100%}#fem-scene>span{position:absolute;top:12px;left:14px;font-size:10px;color:#bfd1e6;pointer-events:none}#demo-error{position:absolute;top:60px;left:20px;color:white}.demo-layout aside{padding:15px;min-width:0}.demo-layout h3{margin:0 0 6px;font-size:15px}#demo-description{font-size:12px;min-height:58px;margin:0 0 10px}#demo-values{font:11px/1.8 ui-monospace,monospace;background:#eef4fb;border-radius:6px;padding:9px;white-space:pre-line;min-height:118px}#demo-matrix{height:155px}.demo-note,#demo-caption{font-size:10px;color:#627b94}#demo-caption{margin-top:10px}@media(max-width:700px){.demo-layout{grid-template-columns:1fr}#fem-scene{height:320px;min-height:320px}.demo-steps button{font-size:10px;padding:7px 4px}}
