:root{--bg: #ffffff;--ink: #1b2733;--ink-2: #4a5866;--muted: #6b7885;--line: #d9dfe5;--line-soft: #eceff3;--wash: #f6f8fa;--navy: #0b2a4a;--navy-2: #123d6a;--steel: #3f78b5;--steel-wash: #eaf1f9;--brick: #a23b3b;--brick-wash: #f9ecec;--amber: #b7791f;--amber-wash: #fbf3e2;--green: #1e7a5c;--green-wash: #e8f4ef;--font: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--serif: "Cambria", "Georgia", "Times New Roman", serif;--radius: 8px;--shadow: 0 1px 2px rgba(11, 42, 74, .06)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14.5px;line-height:1.5;font-variant-numeric:tabular-nums}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--steel);outline-offset:2px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:12.5px}.app{min-height:100vh;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:10px 24px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;min-width:280px}.brand h1{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--navy);letter-spacing:.1px;line-height:1.15}.brand .sub{font-size:12px;color:var(--muted)}.view-tabs{display:flex;gap:4px}.view-tabs button{border:0;background:transparent;padding:7px 12px;border-radius:6px;cursor:pointer;color:var(--ink-2);font-weight:600}.view-tabs button:hover{background:var(--wash)}.view-tabs button.on{background:var(--navy);color:#fff}.top-stats{margin-left:auto;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.team{display:flex;flex-direction:column;font-size:11.5px;color:var(--muted);gap:2px}.team input{border:1px solid var(--line);border-radius:6px;padding:5px 8px;width:170px;font-size:14px;color:var(--ink);background:#fff}.stat{display:flex;flex-direction:column;line-height:1.2}.stat span{font-size:11.5px;color:var(--muted)}.stat strong{font-size:18px;font-weight:650;color:var(--navy)}.stat strong.low{color:var(--brick)}.stat.score strong{font-size:24px}main{flex:1;padding:16px 24px 8px;width:100%;max-width:1760px;margin:0 auto}.scn-bar{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.scn-bar button{border:1px solid var(--line);background:#fff;padding:7px 14px;border-radius:999px;cursor:pointer;font-weight:600;color:var(--ink-2)}.scn-bar button:hover{border-color:var(--steel)}.scn-bar button.on{background:var(--navy);border-color:var(--navy);color:#fff}.scn-bar button em{font-style:normal;font-weight:500;opacity:.85}.scn-bar button.active-round:not(.on){border-color:var(--steel);box-shadow:inset 0 0 0 1px var(--steel)}.grid{display:grid;grid-template-columns:318px minmax(0,1fr) 340px;gap:16px;align-items:start}.col-left,.col-center,.col-right{display:flex;flex-direction:column;gap:14px;min-width:0}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.panel h2{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--navy);margin-bottom:8px}.panel h3{font-size:14px;color:var(--navy)}.scn-title{margin:12px 0 4px}.empty{color:var(--muted)}.empty.tall{padding:70px 0;text-align:center}.mode-seg,.seg{display:flex;gap:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;flex-wrap:wrap}.mode-seg button,.seg button{flex:1;border:0;background:#fff;padding:7px 8px;cursor:pointer;font-weight:600;font-size:13px;color:var(--ink-2);border-right:1px solid var(--line)}.mode-seg button:last-child,.seg button:last-child{border-right:0}.mode-seg button:hover:not(.on),.seg button:hover:not(.on){background:var(--wash)}.mode-seg button.on,.seg button.on{background:var(--navy);color:#fff}.seg.small button{font-size:12.5px;padding:5px 9px}.locked-mode{margin-bottom:6px;color:var(--ink-2)}.param{padding:10px 0 8px;border-top:1px solid var(--line-soft)}.param:first-of-type{border-top:0}.param.locked{opacity:.55}.param-head{display:flex;justify-content:space-between;align-items:center}.param-head label{font-weight:600}.param-head .sym{font-family:var(--serif);font-style:italic;color:var(--navy);margin-right:4px}.info-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--steel);cursor:pointer;font-weight:700;font-size:12px;line-height:1}.info-btn:hover,.info-btn[aria-expanded=true]{background:var(--steel-wash);border-color:var(--steel)}.meaning{background:var(--steel-wash);border-left:3px solid var(--steel);padding:7px 10px;margin:6px 0;font-size:12.8px;color:var(--ink-2)}.slider-row{display:flex;align-items:center;gap:10px;margin-top:4px}.slider-row input[type=range]{flex:1;min-width:0;accent-color:var(--navy);height:22px}.num{display:flex;align-items:center;gap:4px}.num input{width:66px;border:1px solid var(--line);border-radius:6px;padding:4px 6px;text-align:right;background:#fff}.num input:disabled{background:var(--wash)}.unit{color:var(--muted);font-size:12.5px;min-width:20px}.range{font-size:11.8px;color:var(--muted);margin-top:2px}.unit-tag{font-size:11.8px;color:var(--muted);margin-top:6px}.link-toggle{display:block;margin-top:8px;padding-top:10px;border-top:1px solid var(--line-soft);font-size:13px;font-weight:600}.link-toggle input{margin-right:6px;accent-color:var(--navy)}.link-toggle .hint{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:3px}.btn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 14px;cursor:pointer;font-weight:600;color:var(--ink-2);transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:var(--wash);border-color:#b9c3cd}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primary:hover:not(:disabled){background:var(--navy-2)}.btn.accent{background:var(--steel-wash);border-color:var(--steel);color:var(--navy)}.btn.accent:hover:not(:disabled){background:#dbe8f6}.btn.danger{background:var(--brick);border-color:var(--brick);color:#fff}.btn.on{background:var(--green-wash);border-color:var(--green);color:var(--green)}.btn.big{padding:11px 16px;font-size:16px}.btn.small{padding:5px 10px;font-size:12.5px}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.actions{display:flex;flex-direction:column;gap:8px}.link{background:none;border:0;color:var(--steel);cursor:pointer;font-weight:600;padding:0;text-decoration:underline}.note{padding:7px 10px;border-left:3px solid var(--line);background:var(--wash);margin:6px 0;font-size:13.2px;border-radius:0 6px 6px 0}.note.good{border-color:var(--green);background:var(--green-wash)}.note.bad{border-color:var(--brick);background:var(--brick-wash)}.note.warn{border-color:var(--amber);background:var(--amber-wash)}.note.info{border-color:var(--steel);background:var(--steel-wash)}.warn-text{color:var(--brick);font-size:13px}.objective p+p{margin-top:5px}.objective .event .scr{display:inline-block;margin-left:8px;padding:1px 8px;background:var(--wash);border-radius:999px;font-size:12px;color:var(--ink-2)}.diagram{padding:8px 10px 10px}.unifilar{width:100%;height:auto;display:block}.svg-big{font-size:16px;font-weight:700;font-family:var(--font)}.svg-label{font-size:14.5px;font-weight:600;fill:var(--ink)}.svg-small{font-size:13.5px;fill:var(--ink-2)}.svg-num{font-size:14px;fill:var(--ink);font-variant-numeric:tabular-nums}.sat-text{fill:var(--brick);font-weight:700}.flow{fill:none;stroke:var(--steel);stroke-linecap:round;stroke-dasharray:5 9;animation:flow 1s linear infinite}.flow.rev{animation-direction:reverse}@keyframes flow{to{stroke-dashoffset:-28}}.sat-blink{animation:blink 1s ease-in-out infinite}@keyframes blink{50%{stroke-opacity:.35}}.pulse-once{animation:pulse 1.4s ease-out 1}@keyframes pulse{0%{stroke-width:6}to{stroke-width:2}}.playbar{display:flex;align-items:center;gap:12px;padding:4px 6px 0}.playbar input[type=range]{flex:1;accent-color:var(--navy)}.playbar .t{min-width:84px;text-align:right;color:var(--ink-2);font-size:13px}.pred-row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px}.pred-row .seg{max-width:100%}.judged{margin:10px 0 0;padding:0;list-style:none}.judged li{padding:5px 9px;margin-top:4px;border-radius:6px;font-size:13px}.judged li.good{background:var(--green-wash);color:#14543e}.judged li.bad{background:var(--brick-wash);color:#7d2c2c}.score-box{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.score-label{font-size:12px;color:var(--muted)}.score-num{font-family:var(--serif);font-size:44px;line-height:1;color:var(--navy);font-weight:700}.score-num span{font-size:16px;color:var(--muted);margin-left:3px;font-weight:400}.score-meta{font-size:12px;color:var(--ink-2);text-align:right}.cap{color:var(--brick);font-weight:700;margin-top:3px}.groups{padding:10px 0 4px;display:flex;flex-direction:column;gap:7px}.grp-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2)}.bar{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden;margin-top:2px}.bar>div{height:100%;background:var(--navy);border-radius:3px;transition:width .5s cubic-bezier(.2,.7,.2,1)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.card{border:1px solid var(--line);border-radius:7px;padding:7px 9px;background:#fff;transition:border-color .4s,background .4s}.card.tick{border-color:var(--steel);background:var(--steel-wash)}.card.warn{border-color:var(--amber)}.card.bad{border-color:var(--brick);background:var(--brick-wash)}.card-label{font-size:11.5px;color:var(--muted);line-height:1.25}.card-value{display:flex;align-items:baseline;gap:4px}.card-value .v{font-size:17px;font-weight:650;color:var(--navy)}.card-value .u{font-size:11.5px;color:var(--muted)}.delta{font-size:11.5px}.delta.good{color:var(--green)}.delta.bad{color:var(--brick)}.delta.same{color:var(--muted)}.crit{margin-top:10px;font-size:12.5px}.crit summary{cursor:pointer;color:var(--steel);font-weight:600}.crit table,table.lb{width:100%;border-collapse:collapse;margin-top:6px}.crit th,.crit td,table.lb th,table.lb td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line-soft)}.crit th,table.lb th{color:var(--muted);font-weight:600;font-size:12px}.charts{min-width:0}.more-notes{margin-top:6px}.more-notes summary{cursor:pointer;color:var(--steel);font-weight:600;font-size:13px}.charts-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.charts-head h2{margin:0}.tabs{display:flex;flex-wrap:wrap;max-width:100%;gap:2px;border-bottom:2px solid var(--line-soft)}.tabs button{white-space:nowrap;border:0;background:transparent;padding:7px 13px;cursor:pointer;font-weight:600;color:var(--ink-2);border-bottom:3px solid transparent;margin-bottom:-2px}.tabs button:hover{color:var(--navy)}.tabs button.on{color:var(--navy);border-bottom-color:var(--navy)}.plot{width:100%}.legend-note{font-size:12px;color:var(--muted);margin-top:4px}.inst-main{max-width:1500px}.instructor{display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);gap:16px;align-items:start}.instructor .wide{grid-column:1 / -1}.timer-row{display:flex;align-items:center;gap:18px;margin:10px 0;flex-wrap:wrap}.clock{font-family:var(--serif);font-size:46px;font-weight:700;color:var(--navy);line-height:1;min-width:130px}.clock.low{color:var(--brick)}.dur,.pin{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--muted);margin-top:6px}.dur input,.pin input{width:120px;border:1px solid var(--line);border-radius:6px;padding:5px 8px}.pin input{width:100%}table.lb tr.sel{background:var(--steel-wash)}.proj-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.proj-head h2{margin:0}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b2a4a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:#fff;border-radius:10px;max-width:920px;width:100%;max-height:92vh;overflow:auto;padding:24px 28px;box-shadow:0 20px 50px #00000040}.modal h2{font-family:var(--serif);font-size:26px;color:var(--navy);margin-bottom:6px}.modal h3{margin:14px 0 4px}.modal .lead{font-size:15.5px;color:var(--ink-2);margin-bottom:4px}.modal ol,.modal ul{margin:4px 0;padding-left:20px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px}.modal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:12px;border-top:1px solid var(--line-soft);color:var(--muted)}.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 24px 16px;margin-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}.foot .credit{font-family:var(--serif);font-size:14px;color:var(--navy);font-weight:700}@media (max-width: 1280px){.grid{grid-template-columns:300px minmax(0,1fr)}.col-right{grid-column:1 / -1}.col-right .cards{grid-template-columns:repeat(4,1fr)}}@media (max-width: 860px){.top{padding:10px 14px}main{padding:12px 14px 4px}.grid{grid-template-columns:1fr}.col-right .cards{grid-template-columns:1fr 1fr}.two-col,.instructor{grid-template-columns:1fr}.top-stats{margin-left:0;gap:14px}.brand{min-width:0}}@media (prefers-reduced-motion: reduce){.flow,.sat-blink,.pulse-once{animation:none}.bar>div,.card{transition:none}}.entry{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px;background:var(--wash)}.entry-card{width:100%;max-width:460px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:26px 28px;box-shadow:var(--shadow)}.entry-brand{display:flex;gap:14px;align-items:center;margin-bottom:16px}.entry-brand h1{font-family:var(--serif);font-size:24px;color:var(--navy);line-height:1.15}.entry-brand p{color:var(--muted);font-size:13px}.entry-seg{margin-bottom:14px}.entry-form{display:flex;flex-direction:column;gap:12px}.entry-form label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13.5px;color:var(--ink-2)}.entry-form input{border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:15px;font-weight:400;color:var(--ink)}.entry-foot{font-size:12px;color:var(--muted);text-align:center}.student{min-height:100vh;display:flex;flex-direction:column}.student-body{flex:1;display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;width:100%;max-width:1760px;margin:0 auto;padding:16px 24px 8px;align-items:start}.rail{position:sticky;top:84px;display:flex;flex-direction:column;gap:10px}.rail-h{font-family:var(--serif);font-size:16px;color:var(--navy)}.rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;position:relative}.rail-extra{display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--line-soft)}.rail-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid transparent;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--ink)}.rail-item:hover:not(:disabled){background:var(--wash);border-color:var(--line)}.rail-item.sel{background:var(--steel-wash);border-color:var(--steel)}.rail-item.locked{opacity:.5;cursor:not-allowed}.rail-item .dot{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--navy);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--navy);background:#fff}.rail-item.done .dot{background:var(--green);border-color:var(--green);color:#fff}.rail-item.locked .dot{border-color:var(--line);color:var(--muted)}.rail-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}.rail-t strong{font-size:13.5px}.rail-t em{font-style:normal;font-size:11.8px;color:var(--muted)}.chip{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--wash);color:var(--ink-2);vertical-align:middle}.chip.good{background:var(--green-wash);color:#14543e}.chip.live{background:var(--brick-wash);color:var(--brick);margin-left:auto;flex:none}.student-main{display:flex;flex-direction:column;gap:14px;min-width:0}.module-head h2{margin-bottom:2px}.concept{margin-top:8px}.concept summary{cursor:pointer;font-weight:600;color:var(--steel)}.concept ul{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:5px;color:var(--ink-2)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.steps li button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font-weight:600;color:var(--ink-2)}.steps li button em{font-style:normal;font-weight:400;font-size:11.8px;color:var(--muted);margin-left:6px}.steps li.sel button{border-color:var(--navy);background:var(--navy);color:#fff}.steps li.sel button em{color:#cfd9e4}.step-card h2{margin-bottom:4px}.step-card.done{border-color:var(--green)}.predict-block{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}.predict-block h3,.challenge h2{margin-bottom:4px}.challenge .btn{margin-top:8px}.reflection label{display:flex;flex-direction:column;gap:6px;font-weight:600}.reflection textarea{border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:inherit;font-weight:400;resize:vertical}.reflection .btn{margin-top:8px}.module-done{border-color:var(--green);background:var(--green-wash)}.nb-cards{grid-template-columns:repeat(3,1fr)}.refl-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.best-cell{background:var(--green-wash);font-weight:600}.compare{display:flex;flex-direction:column;gap:14px}.lab{min-width:0}.lab .grid{grid-template-columns:280px minmax(0,1fr) 300px}.class-code{font-family:var(--serif);font-size:54px;letter-spacing:6px;font-weight:700;color:var(--navy);line-height:1.1;margin:4px 0 8px}.table-scroll{overflow-x:auto}table.teams td,table.teams th{white-space:nowrap}.dur select{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff;max-width:100%}.proj-seg{margin:10px 0}@media (max-width: 1280px){.lab .grid{grid-template-columns:270px minmax(0,1fr)}.lab .col-right{grid-column:1 / -1}.lab .col-right .cards{grid-template-columns:repeat(4,1fr)}}@media (max-width: 1000px){.student-body{grid-template-columns:1fr;padding:12px 14px 4px}.rail{position:static}.rail-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.rail-item{min-width:190px}.rail-extra{flex-direction:row;overflow-x:auto}}@media (max-width: 860px){.lab .grid{grid-template-columns:1fr}.lab .col-right .cards,.nb-cards{grid-template-columns:1fr 1fr}.class-code{font-size:40px}}.step-checklist{list-style:none;margin:8px 0 0;padding:0;font-size:.95em;display:grid;gap:2px}.step-checklist li{color:var(--muted, #5b6b7d)}.step-checklist li.ok{color:var(--good, #1a7f4b);font-weight:600}.lesson{margin:10px 0;padding:10px 12px;background:#f3f7fb;border-left:3px solid #0B2A4A;border-radius:4px}.lesson h3{margin:0 0 6px;font-size:.95em}.lesson dl{margin:0;display:grid;gap:2px}.lesson dt{font-weight:700;font-size:.85em;color:#0b2a4a;margin-top:6px}.lesson dd{margin:0;font-size:.93em;line-height:1.45}.review{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}.review h3{margin:0 0 6px}.review-why{margin:6px 0}.review-table{width:100%;border-collapse:collapse;font-size:.9em}.review-table th,.review-table td{padding:4px 8px;text-align:left;border-bottom:1px solid var(--line-soft)}.review-table tr.better td:last-child{color:#1a7f4b;font-weight:600}.review-table tr.worse td:last-child{color:#b3261e;font-weight:600}.review-table tr.same td{color:var(--muted)}.review-flags{margin:8px 0;padding-left:18px;color:#b3261e}.scn-context{margin-top:10px;padding:10px 14px;background:#f6f9fc;border:1px solid var(--line-soft);border-radius:6px}.scn-context>summary{cursor:pointer;font-weight:700}.scn-context h3{margin:12px 0 4px;font-size:.95em;color:#0b2a4a}.scn-context p,.scn-context li{line-height:1.5}.start-table{border-collapse:collapse;margin:6px 0;font-size:.92em}.start-table th,.start-table td{padding:4px 12px 4px 0;text-align:left;border-bottom:1px solid var(--line-soft)}:root{--bg: #f3f6fa;--radius: 12px;--shadow: 0 1px 2px rgba(11, 42, 74, .06), 0 6px 18px rgba(11, 42, 74, .05);--focus: #1d6fd1}body{background:linear-gradient(180deg,#eef3f9 0,#f6f8fb 320px,#f6f8fb);background-attachment:fixed}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.top{background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 1px #0b2a4a0a}.brand h1{letter-spacing:.2px}.panel{border-radius:var(--radius);border:1px solid #dde5ed}.panel.charts{border-top:3px solid var(--navy)}.panel.diagram{border-top:3px solid var(--steel);background:linear-gradient(180deg,#fbfdff,#fff)}.step-card{border-left:4px solid var(--steel)}.step-card.done{border-left-color:var(--green)}.btn.primary.big{box-shadow:0 4px 14px #0b2a4a47;transition:transform .12s,box-shadow .2s,background .15s}.btn.primary.big:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #0b2a4a52}.btn.primary.big:active:not(:disabled){transform:translateY(0)}.btn.primary.big:disabled{background:#8493a3;border-color:#8493a3;box-shadow:none}.btn.primary.big:not(:disabled){animation:ready-pulse 2.4s ease-out 1}@keyframes ready-pulse{0%{box-shadow:0 0 #3f78b58c}70%{box-shadow:0 0 0 14px #3f78b500}to{box-shadow:0 4px 14px #0b2a4a47}}.pred-row .seg button{padding:8px 16px;font-size:14px;min-height:40px}.pred-row .seg button.on{box-shadow:inset 0 -3px 0 var(--steel)}.review-table{font-size:.88em}.review-table td,.review-table th{padding:5px 10px}.review-table tr.better td:first-child{border-left:3px solid var(--green)}.review-table tr.worse td:first-child{border-left:3px solid var(--brick)}.review-table tr.same td:first-child{border-left:3px solid transparent}.student-main{container-type:inline-size;container-name:studio}.lab .grid{grid-template-columns:290px minmax(0,1fr) 300px}@container studio (max-width: 1179px){.lab .grid{grid-template-columns:290px minmax(0,1fr)}.lab .col-right{grid-column:1 / -1}.lab .col-right .cards{grid-template-columns:repeat(4,1fr)}}@container studio (max-width: 799px){.lab .grid{grid-template-columns:1fr}.lab .col-left{order:2}.lab .col-center{order:1}.lab .col-right{order:3}.lab .col-right .cards{grid-template-columns:1fr 1fr}}@container studio (min-width: 1180px){.lab .col-left{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 92px);overflow-y:auto}}.sim-fab{display:none}@media (max-width: 860px){.sim-fab{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffff7;border-top:1px solid var(--line);box-shadow:0 -6px 18px #0b2a4a1f}.sim-fab .btn{width:100%}.sim-fab-hint{font-size:12.5px;color:#7a4b00;background:var(--amber-wash);border-left:3px solid var(--amber);padding:5px 8px;margin-bottom:6px;border-radius:0 6px 6px 0}.lab .actions>.btn.primary.big,.lab .actions>.note.warn{display:none}.foot{padding-bottom:120px}.rail-list{display:flex;overflow-x:auto;gap:6px;scroll-snap-type:x proximity;padding-bottom:6px}.rail-list li{flex:0 0 auto;scroll-snap-align:start}}.offline-bar{position:sticky;top:0;z-index:40;background:#7a1f1f;color:#fff;padding:8px 16px;font-size:13.5px;text-align:center}@media (prefers-reduced-motion: reduce){.btn.primary.big:not(:disabled){animation:none}.btn.primary.big{transition:none}}.student-body>*,.student-main,.rail{min-width:0}@media (max-width: 860px){.rail{max-width:100%;overflow:hidden}.rail-list{max-width:100%}.rail-extra{display:flex;gap:6px;flex-wrap:wrap}.rail-extra .rail-item{flex:1 1 140px}}@media (max-width: 640px){.panel.diagram{overflow-x:auto;-webkit-overflow-scrolling:touch}.panel.diagram .unifilar{min-width:600px}.panel.diagram:before{content:"Desliza para ver todo el diagrama";display:block;font-size:11.5px;color:var(--muted);margin:0 0 4px;position:sticky;left:0}}.lesson p{margin:0 0 8px;line-height:1.6;font-size:.95em}.lesson p:last-child{margin-bottom:0}.concept p{margin:0 0 8px;line-height:1.6}.scn-context p,.compare-summary{line-height:1.6}.student-body{grid-template-columns:minmax(0,1fr);gap:12px}.rail{position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 10px;background:#fff;border:1px solid #dde5ed;border-radius:var(--radius);box-shadow:var(--shadow);max-width:100%;overflow:visible}.rail-h{font-size:13px;margin:0;white-space:nowrap}.rail-list{flex-direction:row;flex-wrap:wrap;gap:6px;overflow:visible;padding:0;max-width:none}.rail-list li{flex:0 1 auto}.rail-item{width:auto;min-width:0;padding:5px 10px;gap:8px}.rail-item .dot{width:22px;height:22px;font-size:12px}.rail-extra{flex-direction:row;flex-wrap:wrap;gap:6px;padding:0 0 0 12px;border-top:0;border-left:1px solid var(--line-soft);margin-left:auto}.rail-extra .rail-item{flex:0 1 auto}.rail>.note{flex-basis:100%}@media (max-width: 860px){.rail{padding:6px 8px}.rail-h{display:none}.rail-extra{margin-left:0;border-left:0;padding-left:0}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.steps-panel h2{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.steps-count{font-family:inherit;font-size:12.5px;font-weight:500;color:var(--muted)}.steps{gap:10px}.steps li button,.steps li .step-now{display:flex;align-items:center;gap:9px;text-align:left;border-radius:10px;padding:7px 12px;font-weight:600}.steps li button{border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer}.steps li button:hover{border-color:var(--steel);background:var(--steel-wash)}.steps li .step-now{border:0;border-bottom:3px solid var(--navy);border-radius:4px 4px 0 0;background:transparent;color:var(--navy);cursor:default;-webkit-user-select:none;user-select:none}.steps li.sel button,.steps li.sel .step-now{background:transparent;color:var(--navy)}.steps .dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.steps li.ok .dot{background:var(--green);border-color:var(--green);color:#fff}.steps .step-t{display:flex;flex-direction:column;line-height:1.25}.steps li button em,.steps li .step-now em{margin:0;font-size:11.8px;font-weight:400;color:var(--muted)}.steps li.ok:not(.sel) button{border-color:var(--green);color:#14543e;background:var(--green-wash)}.steps li.ok:not(.sel) button em{color:#3d6b58}.linklike{background:none;border:0;padding:0;color:var(--steel);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.panel.feedback{border-top:3px solid var(--green);scroll-margin-top:90px}.panel.feedback:focus{outline:none}.panel.feedback .judged{margin:6px 0 10px}.checks{margin-top:16px;padding-top:12px;border-top:1px solid var(--line-soft)}.checks h3{margin:0 0 4px}.check-q{margin:14px 0}.check-q>p{margin:0 0 6px;line-height:1.5}.check-opts{display:flex;flex-direction:column;gap:6px}.check-opt{text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 12px;line-height:1.45;cursor:pointer;color:var(--ink);font:inherit}.check-opt:hover:not(:disabled){border-color:var(--steel);background:var(--steel-wash)}.check-opt:disabled{cursor:default}.check-opt.on{box-shadow:inset 3px 0 0 var(--steel)}.check-opt.right{border-color:var(--green);background:var(--green-wash);color:#14543e}.check-opt.wrong{border-color:var(--brick);background:var(--brick-wash);color:var(--brick)}.rail-extra .rail-item em{display:none}@media (max-width: 1500px){.rail-h{display:none}.rail-t strong{font-size:13px}}.cmp-note{display:block;font-size:11.5px;font-weight:400;color:var(--muted);line-height:1.35;margin-top:2px}.ref-note{margin:4px 0 8px}.panel.run-id{border-left:4px solid var(--steel);background:#f6f9fc;line-height:1.5}.panel.run-id.empty{border-left-color:var(--amber);background:var(--amber-wash)}
