[hidden]{display:none!important}
:root{--ink:#173c43;--muted:#56706d;--paper:#f6f6ed;--panel:#fffef7;--line:#d5dfd0;--mint:#b7ead4;--gold:#f0cb80;--coral:#bd6057;--green:#246758;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,.portal,.import-button{min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:9px 14px;cursor:pointer;font-weight:700}button:hover,.import-button:hover{border-color:var(--green);background:#edf7e9}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd7a19;outline-offset:3px}a{color:var(--green)}.primary{background:var(--ink);color:#fffef7;border-color:var(--ink)}.primary:hover{background:#285a58;color:white}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 4vw;border-bottom:1px solid var(--line);background:#fbfbf3}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:21px;font-weight:850}.brand small{display:block;font-size:9px;letter-spacing:1.8px}.tools{display:flex;gap:7px}.portal{text-decoration:none;display:inline-flex;align-items:center}.skip{position:fixed;top:-100px;background:white;padding:14px;z-index:100}.skip:focus{top:10px}main{max-width:1360px;margin:auto;padding:32px 4vw}.eyebrow{font-size:11px;font-weight:850;letter-spacing:1.8px;color:var(--green);margin:0 0 10px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(34px,4.5vw,65px);line-height:1.05;letter-spacing:-2px;margin-bottom:20px}.welcome{display:grid;grid-template-columns:1.05fr 1fr;gap:30px;align-items:center}.welcome h1 span{color:#438171}.intro-copy{max-width:520px;color:var(--muted);font-size:18px}.welcome-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:25px}.welcome-tags span{border-radius:30px;background:#e9efdf;padding:5px 12px;font-size:12px;font-weight:700}#team-form{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;max-width:540px}#team-form label{font-size:12px;font-weight:750}#team-form label[for=team]{grid-column:1}#team-form #team{grid-column:1;grid-row:2}#team-form label[for=grade]{grid-column:2;grid-row:1}#team-form #grade{grid-column:2;grid-row:2}#team-form button{grid-column:1/-1;margin-top:6px}input,select,textarea{background:white;border:1px solid #a7beb1;border-radius:10px;padding:10px;min-height:44px;width:100%;color:var(--ink);min-width:0}textarea{resize:vertical}.small{font-size:12px;color:var(--muted)}#resume-copy{font-size:13px;color:var(--green);margin:12px 0 5px}.cover{width:100%;max-height:650px}.welcome-bottom{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:22px;gap:18px}.welcome-bottom b{font-size:11px;letter-spacing:1.5px}.welcome-bottom p{font-size:14px;color:var(--muted);margin-top:8px}.lab-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.lab-heading h1{font-size:28px;letter-spacing:-.5px;margin:0}.lab-heading .eyebrow{margin-bottom:4px}.saved{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--green)}.saved button{font-size:11px}.role-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:10px 16px;background:#e9efdf;border:1px solid var(--line);border-radius:14px;font-size:13px;margin-bottom:15px}.role-bar #role-copy{font-size:11px;color:var(--muted);margin-left:8px}.role-bar button{font-size:12px}#steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}#steps button{display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;font-size:13px}#steps button.current{background:var(--ink);color:white;border-color:var(--ink)}#steps button.complete:not(.current){background:#e2f0df;border-color:#91b79b}.lab-grid{display:grid;grid-template-columns:minmax(250px,.76fr) minmax(0,1.24fr);gap:24px;align-items:start}.machine-panel{position:sticky;top:18px;background:#e7eee0;border:1px solid var(--line);border-radius:22px;padding:18px;overflow:hidden}.panel-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:9px;font-weight:800;letter-spacing:1.4px}.panel-label button{font-size:11px;letter-spacing:0}.machine{background:linear-gradient(135deg,#2b6470,#143942);border-radius:18px;max-width:350px;margin:auto;padding:16px 20px 8px;box-shadow:8px 12px 0 #b6cdb333;color:#f5f5e3}.machine-top{display:flex;align-items:center;justify-content:space-between;font-size:14px;letter-spacing:2px;font-weight:850;margin-bottom:25px}.machine-light{height:8px;width:8px;background:var(--mint);border-radius:50%;box-shadow:0 0 9px var(--mint)}.machine-front{position:relative;background:#0f2930;padding:12px;border-radius:12px;margin-right:17px}.width-label{position:absolute;top:-22px;left:0;text-align:center;width:100%;font-size:12px;color:var(--gold)}.height-label{position:absolute;right:-30px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--gold);writing-mode:vertical-rl}.slots{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:5px}.slots button{min-height:44px;padding:2px;border-radius:6px;background:#183943;border-color:#82b2ac80;aspect-ratio:1;font-size:22px;color:#a4c4b3;position:relative}.slots button:disabled{opacity:1;cursor:default}.slots button.filled{background:#a9ccac;color:var(--ink);border-color:#d7e1b8}.slots button.filled:hover{background:var(--gold)}.slots button small{position:absolute;right:4px;bottom:1px;font-size:8px}.sensor-display{font-size:10px;text-align:center;margin:12px 0;color:var(--mint);padding:7px;border:1px solid #79b5a53b;border-radius:8px}.chute{display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:67px;max-width:190px;margin:5px auto 3px;background:#0b2730;border-radius:10px;box-shadow:inset 0 8px 8px #0002;overflow:hidden}.chute span:first-child{font-size:29px;line-height:1.25}.chute span:last-child{font-size:8px;letter-spacing:1.2px;color:#a6c6bc}.machine-feet{display:flex;justify-content:space-between;margin:0 10px;transform:translateY(17px)}.machine-feet i{height:18px;width:28px;border-radius:0 0 5px 5px;background:#183e45}.machine-caption{text-align:center;font-size:12px;margin:28px 0 12px;color:var(--green);font-weight:700}.model-note{margin:13px 0 0;line-height:1.55}#inventory-chart{display:grid;gap:4px}.chart-row{display:grid;grid-template-columns:76px 1fr 15px;align-items:center;gap:8px;font-size:10px}.chart-track{height:8px;background:#cbd9c7;border-radius:6px}.chart-track i{display:block;height:8px;width:calc(var(--count)*100%/12);background:var(--green);border-radius:6px}.work-panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:24px;min-width:0}.task-header{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:12px}.task-header h2{font-size:25px;letter-spacing:-.5px;margin:0;line-height:1.2}.task-header .eyebrow{margin-bottom:4px;font-size:9px}.task-header button{font-size:12px;white-space:nowrap}.task-copy{font-size:14px;color:var(--muted);margin-bottom:20px}.shape-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shape-choice{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12px}.mini-grid{display:grid;grid-template-columns:repeat(var(--cols),8px);gap:2px;min-height:60px;align-content:center}.mini-grid i{height:8px;background:#94b79a;border-radius:1px}.shape-choice[aria-pressed=true],.choice[aria-pressed=true]{background:#e2f1df;border-color:#397365;box-shadow:inset 0 0 0 1px #397365}.formula-strip{display:flex;gap:10px;flex-wrap:wrap;padding:15px;background:#eff2e6;border-radius:12px;margin:18px 0;font-size:13px}.formula-strip b{color:var(--green)}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer-grid label,.text-label{display:block;font-size:13px;font-weight:700}.input-unit{display:flex;gap:6px;align-items:center;margin-top:6px}.input-unit span{font-weight:500;font-size:12px}.calculation-note{font-size:12px;color:var(--muted);margin:12px 0}.targets{background:#eff2e6;border-radius:14px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;margin-bottom:18px;font-size:12px}.target{display:flex;gap:6px}.target i{font-style:normal;color:var(--coral)}.target.ok i{color:var(--green)}.food-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.food-card{border:1px solid var(--line);border-radius:14px;padding:12px;min-width:0}.food-heading{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:7px}.food-heading span{font-size:27px}.food-heading small{display:block;font-size:10px;color:var(--muted);font-weight:400}.food-card select{font-size:12px;padding:6px;margin-bottom:8px;max-width:100%}.quantity{display:grid;grid-template-columns:44px 1fr 44px;gap:5px;align-items:center}.quantity button{padding:0;font-size:23px}.quantity output{text-align:center;font-size:18px;font-weight:800}.fraction-entry{margin-top:20px;padding:16px;border-radius:14px;background:#f4eedb}.fraction-entry p{font-size:13px;margin-bottom:8px}.fraction-fields{display:flex;align-items:center;gap:9px}.fraction-fields input{max-width:80px;text-align:center}.fraction-fields span{font-size:25px;color:var(--muted)}.cost-strip{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;margin-top:12px}.cost-strip strong{font-size:18px}.cost-strip.over{color:#a84b40}.feedback{background:#f7eccc;border-left:4px solid #cca345;color:#543f1d;border-radius:10px;padding:12px;font-size:13px;margin:20px 0 0}.feedback.success{background:#e1f0e0;border-color:#438171;color:#1d554a}.work-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:20px;margin-top:15px;border-top:1px solid var(--line)}.work-footer span{font-size:11px;color:var(--muted);max-width:190px}.work-footer button{font-size:13px}.lab-footer{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:24px 0}.lab-footer button,.import-button{font-size:11px}.lab-footer .small{margin-left:auto}.site-footer{padding:24px 4vw;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.site-footer span{font-size:10px}dialog{color:var(--ink);background:var(--panel);border:1px solid #94b6a0;border-radius:20px;padding:22px;width:min(720px,94vw);max-height:90dvh;overflow:auto;box-shadow:0 20px 70px #10232d44}dialog::backdrop{background:#163c45a8;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px}.dialog-head h2{margin:0;font-size:22px}.dialog-head button{min-width:44px;padding:2px;font-size:24px}dialog p,dialog li{font-size:14px}dialog ol{padding-left:24px}.example-eq{background:#e9efdf;border-radius:12px;padding:15px;font-size:20px;font-weight:800;color:var(--green)}.example-note{color:var(--muted);font-size:12px}.guide-copy{line-height:1.7}.guide-copy p{margin-bottom:18px}.control-group{margin-bottom:20px}.control-group h3{font-size:14px;margin-bottom:8px}.control-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice{text-align:left;font-size:13px}.choice small{display:block;font-size:11px;font-weight:400;margin-top:4px}.trial-card{border:1px solid #adc3ad;border-radius:15px;padding:18px;background:#eff3e5}.trial-label{font-size:10px;letter-spacing:1px;color:var(--green);font-weight:850}.trial-card h3{margin:6px 0;font-size:21px}.trial-card p{font-size:13px;margin-bottom:12px}.order-emoji{font-size:36px}.receipt{padding:12px 0;border-bottom:1px dashed #b7cbb1;display:flex;gap:10px;align-items:center;font-size:12px}.receipt span{font-size:24px}.receipt b{display:block}.receipt .mark{margin-left:auto;font-size:19px}.trial-summary{padding:12px;background:#e1ebd9;font-size:12px;margin-top:12px;border-radius:10px}.trial-history{font-size:12px;color:var(--muted);padding:12px 0}.trial-history summary{cursor:pointer;min-height:44px;padding:10px 0}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary-tile{background:#eff2e6;padding:12px;border-radius:12px;font-size:11px}.summary-tile b{display:block;font-size:21px;color:var(--green)}.reflection-form label{margin:16px 0 6px}.reflection-form textarea{font-size:14px;min-height:100px}.report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.bitacora h3{font-size:16px;margin:24px 0 10px}.bitacora table{border-collapse:collapse;width:100%;font-size:12px}.bitacora th,.bitacora td{text-align:left;border-bottom:1px solid var(--line);padding:8px}.bitacora .note{white-space:pre-wrap;background:#eff2e6;padding:12px;border-radius:10px}.dispensing{animation:drop .6s ease-out}@keyframes drop{from{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}body.expanded{overflow:hidden}body.expanded #lab{position:fixed;inset:0;overflow:auto;background:var(--paper);z-index:20;padding:18px max(18px,env(safe-area-inset-right)) 24px max(18px,env(safe-area-inset-left))}body.expanded .topbar{position:fixed;top:0;right:0;z-index:25;background:transparent;border:0;padding:8px}body.expanded .topbar .brand,body.expanded .tools #guide,body.expanded .tools .portal{display:none}body.expanded .tools #fullscreen{background:#fffefaed;box-shadow:0 2px 15px #143b3e22}body.expanded #fullscreen span{display:none}body.expanded .lab-heading{padding-right:50px}body.expanded #lab .saved button{display:none}body.expanded dialog{position:fixed;z-index:30}#lab:fullscreen{overflow:auto;background:var(--paper);padding:20px 3vw}#lab:fullscreen .fullscreen-exit{display:block}.fullscreen-exit{display:none;position:fixed;right:12px;top:12px;z-index:30}#lab:fullscreen .lab-heading{padding-right:50px}
@media(max-width:1000px){main{padding:24px 3vw}.lab-grid{gap:16px;grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr)}.work-panel{padding:18px}.saved{flex-direction:column;align-items:end;gap:4px}.food-card{padding:9px}.role-bar #role-copy{display:none}.welcome h1{font-size:44px}.tools button,.portal{font-size:12px}}
@media(max-width:730px){.welcome{grid-template-columns:1fr;gap:20px}.cover{grid-row:2;max-height:390px}.welcome-bottom{gap:12px}.welcome-bottom p{font-size:12px}.welcome h1{font-size:42px}.intro-copy{font-size:16px}.lab-grid{grid-template-columns:1fr}.machine-panel{position:static;padding:14px}.machine{max-width:245px;padding:12px 17px 6px}.machine-top{font-size:11px;margin-bottom:24px}.machine-front{padding:8px;margin-right:15px}.slots{gap:4px}.slots button{aspect-ratio:1;min-height:44px;font-size:21px}.chute{min-height:49px;margin:0 auto}.chute span:first-child{font-size:22px}.sensor-display{margin:7px 0;padding:5px;font-size:9px}.machine-caption{margin-top:22px;margin-bottom:6px}#inventory-chart{grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:10px}.chart-row{grid-template-columns:62px 1fr 12px;font-size:9px}.model-note{font-size:10px;max-width:430px;margin:10px auto 0}.lab-heading h1{font-size:24px}.lab-heading .eyebrow{font-size:9px}.saved button{font-size:10px}.role-bar{padding:8px 12px;font-size:12px;margin-bottom:10px}.role-bar button{padding:6px 10px}.task-header h2{font-size:22px}.task-header button{padding:8px 10px;font-size:11px}.targets{font-size:11px}.task-copy{font-size:13px}.food-grid{gap:8px}.food-heading{font-size:12px}.food-heading span{font-size:24px}.work-footer{flex-direction:column;align-items:stretch}.work-footer span{max-width:none}.lab-footer .small{margin-left:0}.topbar{padding:12px 3vw;gap:8px}.brand{font-size:18px}.brand small{letter-spacing:1px;font-size:7px}.brand img{width:35px;height:35px}.tools #fullscreen span{display:none}.tools{gap:5px}.tools button,.portal{padding:6px 10px}.welcome-bottom b{font-size:9px;letter-spacing:.5px}#steps{gap:5px;margin-bottom:14px}#steps button{font-size:11px;padding:6px;gap:4px}body.expanded #lab{padding:14px}body.expanded .lab-heading{padding-right:40px}.site-footer{font-size:10px}}
@media(max-width:365px){.brand small{display:none}.welcome h1{font-size:36px}.welcome-tags span{font-size:10px}#team-form{grid-template-columns:1fr}#team-form label[for=grade]{grid-column:1;grid-row:3}#team-form #grade{grid-column:1;grid-row:4}.food-grid{grid-template-columns:1fr}.targets{grid-template-columns:1fr}.work-panel{padding:14px}.answer-grid{gap:8px}.task-header button{padding:6px}.task-header h2{font-size:20px}.control-choices{grid-template-columns:1fr}.saved{max-width:110px;font-size:9px}#steps button{font-size:10px}.topbar .brand img{width:30px}.topbar .brand{gap:5px;font-size:15px}.topbar .tools{gap:4px}.tools button,.portal{font-size:11px;padding:6px 8px}}
@media(max-height:500px) and (min-width:731px){.machine{max-width:260px}.slots button{font-size:20px;aspect-ratio:auto}.machine-panel{position:static}.machine-top{margin-bottom:22px}.chute{min-height:45px}.machine-caption{margin-bottom:5px}.model-note{font-size:10px}.work-panel{padding:16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
@media print{body>*{display:none!important}body:has(#report-dialog[open]) #report-dialog{display:block!important;position:static;max-height:none;width:100%;border:0;box-shadow:none;margin:0;padding:0;background:white}#report-dialog .dialog-head button,.report-actions{display:none!important}.bitacora table,.bitacora p,.bitacora h3{break-inside:avoid}#report-dialog .dialog-head h2{font-size:24px}body:has(#report-dialog[open]){background:white}.bitacora{color:#173c43}}
button{min-width:44px}
#lab[data-step="2"] .machine-panel{position:sticky;top:12px;z-index:2}
@media(max-width:730px){#lab[data-step="2"] .machine-panel{top:6px;padding:8px 12px;box-shadow:0 6px 16px #28432b1a;background:#e7eee0f5}#lab[data-step="2"] .machine-panel .panel-label,#lab[data-step="2"] .machine-front,#lab[data-step="2"] .machine-top,#lab[data-step="2"] .machine-feet,#lab[data-step="2"] .model-note,#lab[data-step="2"] #inventory-chart{display:none}#lab[data-step="2"] .machine{max-width:none;padding:6px 12px;border-radius:12px;display:grid;grid-template-columns:1fr 100px;gap:8px;align-items:center;box-shadow:none}#lab[data-step="2"] .sensor-display{font-size:10px;margin:0;text-align:left;border:0;line-height:1.7}#lab[data-step="2"] .chute{min-height:52px;width:100px;margin:0}#lab[data-step="2"] .machine-caption{margin:5px 0 0;font-size:11px}body.expanded #lab[data-step="2"] .machine-panel{top:53px}}
@media(max-width:730px) and (max-height:500px){body.expanded #lab[data-step="2"] .machine-panel{top:0;padding-right:52px}#lab[data-step="2"] .machine-caption{display:none}}
:root{--ink:#173750;--muted:#546e7b;--paper:#f4f5ef;--panel:#fffdf5;--line:#d3dfdc;--mint:#bce6de;--gold:#f4c568;--green:#257884}.welcome h1 span{color:#32848b}.role-bar{background:#e5efeb}.welcome-tags span{background:#e2ebe6}.example-eq{background:#e4ede8}.energy-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}.visual-panel{position:sticky;top:14px;border:1px solid #b9ced0;background:#e4eee8;border-radius:22px;padding:16px;min-width:0}.visual-panel .panel-label{font-size:10px}.visual-panel .panel-label span:last-child{letter-spacing:0;font-variant-numeric:tabular-nums}#scene{border-radius:15px;overflow:hidden;background:#173b50}#scene svg{display:block;width:100%;height:auto}.live-meters{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.live-meters>div{background:#fcfbf3;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:9px}.live-meters b{display:block;font-size:20px;line-height:1.2;margin:4px 0;color:var(--green)}.live-meters small{font-size:8px;display:block}.hour-status{font-size:11px;padding:9px 11px;background:#d2e5dd;border-radius:10px;color:#1b555b;min-height:45px;margin:9px 0}.hour-status.deficit{background:#f8e5cd;color:#75462b}.time-controls{display:grid;grid-template-columns:44px 1fr 44px;gap:5px;align-items:center}.time-controls button{font-size:13px;padding:6px}.time-controls label{font-size:10px;margin:4px 0 0;grid-column:1/-1}.time-controls input{grid-column:1/-1;width:100%;padding:0;accent-color:#317c89;min-height:34px;border:0;background:transparent}.graph-tools{display:flex;gap:5px;margin:6px 0}.graph-tools button{flex:1;font-size:10px;padding:7px}.graph-tools button[aria-pressed=true]{background:#d2e5dd;border-color:#348494}#chart svg{display:block;width:100%;background:#fffcf2;border:1px solid #d2dfd8;border-radius:12px}#chart .legend{font-size:9px;display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}#chart .legend i{display:inline-block;width:12px;height:3px;margin-right:3px;vertical-align:middle}.model-note{font-size:10px;margin:12px 0 0;line-height:1.6}.unit-example{background:#e4eee8;padding:15px;border-radius:14px;margin-bottom:15px}.unit-example b{font-size:19px;display:block}.unit-example p{font-size:12px;margin:7px 0 0}.goal-list{display:grid;gap:7px;font-size:12px;padding:0;list-style:none;margin:15px 0}.goal-list li{padding:8px 10px;background:#f0f0e5;border-radius:8px}.profile-choices{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:15px}.profile-choice{font-size:12px;text-align:left}.profile-choice small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:3px}.profile-choice[aria-pressed=true]{background:#dfeee8;border-color:#327c88}.parts-grid{display:grid;gap:9px}.part-card{border:1px solid #cfdbd4;border-radius:14px;padding:12px;display:grid;grid-template-columns:1fr 135px;gap:10px;align-items:center}.part-card h3{font-size:14px;margin:0 0 4px}.part-card p{font-size:11px;margin:0;color:var(--muted)}.part-card .quantity{grid-template-columns:44px 1fr 44px}.part-card output{font-variant-numeric:tabular-nums}.efficiency-field{display:flex;align-items:center;gap:12px;padding:15px 0;font-size:12px}.efficiency-field select{width:100px;font-size:12px}.mini-cost{display:flex;justify-content:space-between;padding:12px;border-radius:10px;background:#f0eedc;font-size:12px;margin:8px 0}.mini-cost b{font-size:17px}.mini-cost.over{color:#a04f34;background:#f9e8d7}.math-model{font-size:11px;line-height:1.8;background:#e6eee9;padding:12px;border-radius:10px}.test-controls{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.test-controls button{font-size:11px}.test-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px}.test-summary>div{border:1px solid var(--line);border-radius:10px;padding:9px;font-size:10px}.test-summary b{display:block;font-size:18px}.test-summary .pass{border-color:#5c9b84;background:#e5f0e3}.criteria-list{padding:0;list-style:none;font-size:12px}.criteria-list li{padding:6px 0;display:flex;gap:8px}.criteria-list .pass{color:#256b59}.criteria-list .fail{color:#9a5c36}.records{display:grid;gap:9px}.record-card{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fafcf5}.record-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;font-size:12px}.record-head b{font-size:13px}.record-card.selected{border-color:#2c8293;background:#e5f1ef}.record-card p{font-size:11px;margin:5px 0}.record-card .record-metrics{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;font-size:11px}.record-metrics span{background:#ecf0e5;border-radius:6px;padding:4px 7px}.record-actions{display:flex;gap:6px}.record-actions button{font-size:10px;flex:1}.record-badge{font-size:9px;background:#e3e8df;padding:4px 7px;border-radius:20px;white-space:nowrap}.record-badge.pass{background:#cde8d5;color:#235d48}.comparison-hint{font-size:12px;background:#e3eee8;padding:14px;border-radius:12px;margin-bottom:14px}.prediction-block{font-size:12px;color:var(--muted);background:#edf1e7;border-radius:10px;padding:12px;white-space:pre-wrap}.data-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}.hour-table{width:100%;border-collapse:collapse;font-size:11px;min-width:570px}.hour-table th,.hour-table td{padding:8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.hour-table th:first-child,.hour-table td:first-child{text-align:left}.hour-table .unmet{background:#fff0dc;color:#8c4931}.hour-table thead{background:#e6eee8}.day-caption{font-size:12px;margin:9px 0}.bitacora .data-scroll{overflow-x:auto}.bitacora .hour-table{font-size:10px;min-width:570px}.turbine-spin{transform-origin:225px 90px;animation:spin 3s linear infinite}.paused-turbine{animation-play-state:paused}@keyframes spin{to{transform:rotate(360deg)}}.playing .turbine-spin{animation-play-state:running}#lab:fullscreen{position:relative}body.expanded .visual-panel{top:8px}body.expanded .lab-heading{padding-right:55px}
@media(max-width:1000px){.energy-grid{gap:16px;grid-template-columns:minmax(260px,.88fr) minmax(0,1.12fr)}.part-card{grid-template-columns:1fr 130px;padding:10px}.part-card h3{font-size:12px}}
@media(max-width:730px){.energy-grid{grid-template-columns:1fr}.visual-panel{position:static;padding:12px}#scene svg{max-height:220px;object-fit:contain;background:#173b50}.live-meters b{font-size:18px}.live-meters>div{padding:7px}.part-card{grid-template-columns:1fr 130px}.part-card h3{font-size:13px}.part-card p{font-size:10px}.part-card .quantity output{font-size:18px}.graph-tools button{font-size:11px}.model-note{font-size:10px}.test-summary b{font-size:17px}.record-card .record-metrics{font-size:10px}.time-controls input{min-height:44px}.time-controls button{min-height:44px}.visual-panel .panel-label{font-size:9px}}
@media(max-width:365px){.part-card{grid-template-columns:1fr;gap:8px}.part-card .quantity{max-width:175px}.efficiency-field{flex-wrap:wrap}.live-meters b{font-size:16px}.graph-tools button{font-size:9px}.task-header h2{font-size:20px}}
@media(max-height:500px) and (min-width:731px){.visual-panel{position:static}#scene svg{max-height:205px}.live-meters b{font-size:18px}}
@media print{#report-dialog .hour-table{font-size:8px}.hour-table th,.hour-table td{padding:4px}.bitacora .data-scroll{overflow:visible;border:0}.bitacora .hour-table{min-width:0}.bitacora table{break-inside:auto}.bitacora tr{break-inside:avoid}}

.comparison-table{min-width:530px}
@media print{.comparison-table{min-width:0}}

.grade-summary{display:flex;gap:6px 16px;flex-wrap:wrap;padding:12px 15px;border:1px solid var(--line,#cbdedb);border-radius:14px;background:#e8f2ea;margin:-6px 0 18px;font-size:13px;color:var(--ink,#163f4b)}.grade-summary span{font-size:12px}.grade-preview{font-size:13px;color:var(--green,#0e6572);margin:12px 0}.grade-task{border:1px solid #8fb7a6;background:#eef7ee;border-radius:16px;padding:18px;margin:0 0 22px}.grade-task h3{font-size:21px;line-height:1.25;margin:5px 0 13px}.grade-task p{font-size:14px}.grade-given{background:white;border-radius:10px;padding:12px;white-space:pre-line}.grade-entry{display:flex;align-items:center;gap:8px;margin:7px 0 10px}.grade-entry input{font-size:16px!important;min-width:0;flex:1}.grade-entry span{font-size:13px;white-space:nowrap}.grade-entry button{min-width:44px;padding:8px}.grade-task>button{width:100%;min-height:44px}.grade-help{margin:10px 0}.grade-help summary{min-height:44px;cursor:pointer;padding:10px;font-size:13px;font-weight:750}.grade-help ol{padding-left:24px;font-size:13px}.grade-help li{margin:7px 0}.grade-nav{display:flex;justify-content:space-between;gap:8px;align-items:center}.grade-nav button{min-height:44px}.grade-task #grade-status{font-size:13px;margin:12px 0 0}.grade-report{margin-top:26px}.grade-report p{white-space:pre-line}#grade-example-dialog{max-height:calc(100dvh - 24px);overflow:auto}@media(max-width:730px){.grade-task{padding:14px}.grade-summary{display:block}.grade-summary span{display:block;margin-top:4px}.grade-entry{flex-wrap:wrap}.grade-entry input{width:50%}.grade-nav button{font-size:12px;padding:9px}.grade-task h3{font-size:20px}}@media print{.grade-task,.grade-summary,.grade-preview{display:none}.grade-report{display:block}}

input,select,textarea{font-size:16px}
