.lab-nav{display:flex;align-items:center;gap:26px;margin:-7px 0 24px;border-bottom:1px solid #dce5da}.lab-nav a{text-decoration:none;font-size:12px;padding:13px 0;display:flex;gap:8px;align-items:center;color:#7c8d7f;border-bottom:2px solid transparent}.lab-nav a.selected{color:#214c3d;border-bottom-color:#258779;font-weight:700}.nav-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#369378}.reaction-lab{overflow:hidden;scroll-margin-top:20px}.reaction-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 19px;gap:15px}.reaction-header h2{font-size:24px;margin-top:4px;letter-spacing:-.8px}.reaction-header-end{display:flex;gap:14px;align-items:center}.vessel-tag{color:#7e8c7d;font-size:10px}.simulation-status{font-size:10px;font-weight:700;border:1px solid #d9e4d8;background:#f2f6ee;border-radius:20px;padding:5px 11px;white-space:nowrap}.simulation-status.running{color:#217560;border-color:#a7d3bd;background:#e9f7ef}.reaction-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 26px;background:#f7f9f5;border-top:1px solid #e8ede4;border-bottom:1px solid #e8ede4}.playback{display:flex;gap:7px}.button.primary{background:#214e3e;color:#fff;border:1px solid #214e3e}.button.primary:hover{background:#2e6853}.simulation-settings{display:flex;align-items:center;gap:18px}.simulation-settings>label{display:flex;align-items:center;gap:7px;color:#788772;font-size:10px}.simulation-settings select{padding:6px 8px;border:1px solid #dce5d6;border-radius:6px;color:#37503c;background:#fff;font-size:10px}.motion-label input{accent-color:var(--teal);margin:0}.reaction-body{display:grid;grid-template-columns:1.18fr 1fr;min-width:0}.molecular-view{padding:19px 24px 12px;border-right:1px solid #e6ece2;min-width:0;background:linear-gradient(145deg,#f9fcf7,#f1f7f3)}.vessel-topline{display:flex;justify-content:space-between;align-items:center;color:#789180;font-size:9px;letter-spacing:1.4px}.vessel-topline>span:first-child{display:flex;align-items:center;gap:7px}#sim-clock{font-family:Manrope,var(--font);font-weight:700;font-size:20px;letter-spacing:.2px;color:#305a46;font-variant-numeric:tabular-nums}#sim-clock small{font:9px var(--font);color:#8a9d88;margin-left:4px;letter-spacing:0}.molecule-canvas-wrap{height:330px;position:relative;margin:5px -5px 0}#molecule-canvas{cursor:pointer;touch-action:pan-y}.molecule-empty{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);text-align:center;background:#f5faf2df;border:1px solid #dce7d7;padding:16px;border-radius:10px;font-size:16px;width:240px;font-weight:600;color:#36563f;pointer-events:none}.molecule-empty span{font-size:10px;color:#80917a;font-weight:400}.molecular-legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;padding-top:10px;border-top:1px solid #e0e9db;color:#7d8b77;font-size:9px}.molecular-legend>span{display:flex;gap:5px;align-items:center}.species-icon{display:inline-block;width:11px;height:11px}.enzyme-icon{background:#3c9981;border-radius:4px 6px 2px 6px}.substrate-icon{background:#df8056;border-radius:3px;transform:rotate(20deg);height:9px;width:9px}.product-icon{background:#7882d9;transform:rotate(45deg);border-radius:3px;width:8px;height:8px}.inhibitor-icon{background:#ca5f9d;clip-path:polygon(50% 0,95% 26%,95% 74%,50% 100%,5% 74%,5% 26%)}.pulse-button{font:600 9px var(--font);color:#2a6952;border:1px solid #c9dcc5;border-radius:6px;background:#f3f9ed;padding:6px 9px;margin-left:auto;cursor:pointer}.pulse-button:hover{background:#e4f0db}.molecule-caption{font-size:8px;color:#94a38c;margin-top:8px}.concentration-view{min-width:0;padding:22px 24px 16px}.concentration-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.concentration-header .eyebrow{font-size:8px;letter-spacing:1.5px}.concentration-header h3{font:700 16px Manrope,var(--font);margin-top:4px;letter-spacing:-.4px}.chart-toggle{display:flex;background:#edf2e9;padding:3px;border-radius:7px}.chart-toggle button{border:0;background:transparent;color:#829179;font:600 9px var(--font);padding:6px 9px;border-radius:5px}.chart-toggle button.active{background:white;color:#2d654b;box-shadow:0 1px 3px #243f2714}.progress-canvas-wrap{height:181px;margin:8px 0 0}.progress-legend{display:flex;gap:14px;font-size:9px;color:#7d8c75;padding:3px 0 15px}.progress-legend span{display:flex;align-items:center;gap:5px}.progress-legend i{width:13px;height:2px;display:inline-block}.concentration-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.concentration-cards>div{border:1px solid #e2eadd;border-radius:7px;padding:10px 8px;background:#fbfcf9;min-width:0}.concentration-cards>div>span{display:flex;align-items:center;gap:3px;font-size:7px;letter-spacing:.35px;color:#86947d;white-space:nowrap}.concentration-cards strong{display:block;font:700 19px Manrope,var(--font);letter-spacing:-.4px;margin-top:5px;font-variant-numeric:tabular-nums}.concentration-cards small{font:8px var(--font);letter-spacing:0;display:block;color:#8b9b80}.species-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0}.enzyme-populations{margin-top:17px}.population-title{display:flex;justify-content:space-between;font-size:8px;color:#82927c;margin-bottom:6px}.population-title>span:first-child{font-weight:600}.population-bar{display:flex;height:7px;gap:2px;border-radius:5px;overflow:hidden;background:#ecf1e7}.population-bar i{height:100%;transition:width .12s linear}#bar-e{background:#258779}#bar-es{background:#4b98bf}#bar-ei{background:#ce67a5}#bar-esi{background:#9b70ba}.population-legend{display:flex;justify-content:space-between;margin-top:6px;color:#8a9781;font-size:8px}.population-legend b{font-weight:500;color:#506b4b;margin-left:5px}.reaction-bottom{display:flex;align-items:center;gap:32px;justify-content:space-between;padding:17px 26px;border-top:1px solid #e4ebdf}.reaction-equation{display:flex;align-items:center;gap:12px;font:500 21px Georgia,serif;color:#71806a;flex-shrink:0;min-height:60px}.reaction-e{color:#258779}.reaction-s{color:#d2794f}.reaction-es{color:#4b98bf}.reaction-p{color:#7882d9}.reaction-arrow{font:25px var(--font);position:relative;padding:0 20px;line-height:1;margin-top:-8px;transition:color .2s}.reaction-arrow small{display:block;position:absolute;top:34px;left:50%;transform:translateX(-50%);font:8px var(--font);color:#87947e;white-space:nowrap}.reaction-arrow.flowing{color:#31906e;text-shadow:0 0 12px #3ba97b50}.reaction-insight{border-left:1px solid #e1e9db;padding-left:28px;flex:1;min-width:0}.reaction-insight strong{font-size:11px;color:#44643d}.reaction-insight p{font-size:10px;color:#829278;margin-top:4px;line-height:1.7}.balance-strip{padding:11px 26px;background:#f7f9f4;display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#86947c;border-top:1px solid #e6ede0;align-items:center}.balance-strip #live-rate{color:#4b6f45;font-weight:600;white-space:nowrap;margin-left:auto}.data-export{border:0;background:transparent;font:600 9px var(--font);color:#597b4c;white-space:nowrap}.kinetics-section-title{display:flex;align-items:center;justify-content:space-between;margin:29px 0 17px;scroll-margin-top:15px}.kinetics-section-title h2{font-size:20px;margin-top:4px}.kinetics-section-title p{font-size:10px;color:#8b9783}.class-mode .reaction-header{padding-top:16px;padding-bottom:13px}.class-mode .reaction-header h2{font-size:21px}.class-mode .lab-nav{margin-bottom:17px}.class-mode .molecule-canvas-wrap{height:330px}.class-mode .progress-canvas-wrap{height:185px}.class-mode .kinetics-section-title{margin-top:22px}html{scroll-behavior:smooth}section,details{scroll-margin-top:20px}@media(min-width:1500px){.molecule-canvas-wrap{height:345px}.progress-canvas-wrap{height:196px}.concentration-cards strong{font-size:22px}}@media(max-width:1150px){.reaction-header,.reaction-toolbar{padding-left:20px;padding-right:20px}.simulation-settings{gap:10px}.motion-label{display:none!important}.molecular-view{padding-left:18px;padding-right:18px}.concentration-view{padding-left:18px;padding-right:18px}.concentration-cards{grid-template-columns:repeat(2,1fr)}.concentration-cards>div{padding:7px 10px}.concentration-cards strong{font-size:18px}.concentration-cards small{display:inline;margin-left:4px}.molecule-canvas-wrap{height:375px}.reaction-equation{gap:7px;font-size:19px}.reaction-arrow{padding:0 14px}.reaction-bottom{gap:20px}.reaction-insight{padding-left:20px}.progress-canvas-wrap{height:185px}.vessel-tag{font-size:9px}}@media(max-width:900px){.reaction-toolbar{flex-wrap:wrap;gap:10px}.simulation-settings{margin-left:auto}.reaction-body{grid-template-columns:1fr 1fr}.reaction-header-end{flex-direction:column;gap:5px;align-items:flex-end}.molecule-canvas-wrap{height:366px}.reaction-bottom{flex-wrap:wrap;gap:17px}.reaction-insight{border-left:0;border-top:1px solid #e4ebdd;padding:13px 0 0;flex-basis:100%}.reaction-equation{margin:auto;gap:12px}.balance-strip{flex-wrap:wrap;gap:6px 15px}.balance-strip>span:first-child{flex-basis:100%}.balance-strip #live-rate{margin-left:0}.data-export{margin-left:auto}.molecular-legend{gap:9px}.pulse-button{margin-left:0}.concentration-header{flex-wrap:wrap;gap:7px}.progress-canvas-wrap{height:160px}.class-mode .molecule-canvas-wrap{height:375px}.class-mode .progress-canvas-wrap{height:160px}}@media(max-width:650px){.intro p{max-width:260px}.lab-nav{gap:19px;overflow:auto;margin:0 0 17px;white-space:nowrap}.lab-nav a{font-size:10px;padding:9px 0}.lab-nav a:last-child{display:none}.reaction-header{padding:18px 17px 14px;align-items:flex-start}.reaction-header h2{font-size:21px}.reaction-header .eyebrow{font-size:8px;letter-spacing:1px}.vessel-tag{display:none}.simulation-status{font-size:8px;padding:5px 9px}.reaction-toolbar{padding:12px 15px;gap:11px}.playback{gap:6px;width:100%}.playback .button{font-size:10px;padding:8px 10px;min-height:35px}#sim-play{flex:1}.simulation-settings{margin:0;width:100%;justify-content:space-between;gap:12px}.simulation-settings>label{font-size:9px;gap:6px}.simulation-settings select{font-size:9px;padding:6px}.reaction-body{grid-template-columns:1fr}.molecular-view{border-right:0;border-bottom:1px solid #e5eddf;padding:15px 16px 12px}.molecule-canvas-wrap{height:280px}.vessel-topline{font-size:8px}.molecular-legend{gap:10px;font-size:8px}.pulse-button{margin-left:auto;font-size:8px}.molecule-caption{font-size:7px}.concentration-view{padding:18px 17px 17px}.concentration-header{flex-wrap:nowrap}.concentration-header h3{font-size:15px}.concentration-header .eyebrow{font-size:7px}.progress-canvas-wrap{height:185px}.progress-legend{font-size:8px}.concentration-cards{grid-template-columns:repeat(4,1fr)}.concentration-cards>div{padding:9px 6px}.concentration-cards>div>span{font-size:6px;letter-spacing:0}.concentration-cards strong{font-size:17px}.concentration-cards small{display:block;margin:0}.reaction-bottom{padding:13px 16px;gap:10px}.reaction-equation{gap:8px;font-size:20px}.reaction-arrow{padding:0 13px}.reaction-insight{padding-top:12px}.balance-strip{padding:10px 16px;font-size:8px}.data-export{font-size:8px}.kinetics-section-title{margin:23px 0 15px;align-items:flex-start;gap:12px}.kinetics-section-title h2{font-size:18px}.kinetics-section-title .eyebrow{font-size:8px;letter-spacing:1px}.kinetics-section-title p{font-size:8px;max-width:110px;padding-top:10px}.class-mode .molecule-canvas-wrap{height:300px}.class-mode .progress-canvas-wrap{height:185px}.class-mode .reaction-header{padding:15px}.reaction-equation small{font-size:7px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.live-conditions{display:flex;align-items:center;gap:14px;padding:12px 26px;border-bottom:1px solid #e5ecdf;flex-wrap:wrap;background:#fdfefb}.live-conditions>span{font-size:8px;letter-spacing:1px;color:#9aa58e;margin-right:2px}.live-conditions>label{display:flex;align-items:center;gap:5px;font-size:10px;color:#6d8260}.live-conditions input{width:49px;min-width:0;border:1px solid #dae4d1;background:#f8fbf4;border-radius:5px;padding:5px 4px;font-size:11px;color:#3d6330;font-weight:600;font-variant-numeric:tabular-nums}.live-conditions small{font-size:8px;color:#96a286}.live-conditions select{font-size:10px;padding:5px;border:1px solid #dae4d1;border-radius:5px;color:#47633b;background:#fff}.reaction-method{margin-top:10px;font-size:10px;padding:0 20px;color:#7c8e70}.reaction-method summary{padding:11px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px}.reaction-method summary::-webkit-details-marker{display:none}.reaction-method summary>span{font-size:14px}.reaction-method>div{padding:3px 0 16px;max-width:1100px;font-size:11px;line-height:1.9}.reaction-method p+p{margin-top:10px}.reaction-method a{text-underline-offset:3px}.class-mode .reaction-method{display:none}@media(max-width:1150px){.live-conditions{padding-left:20px;padding-right:20px;gap:9px 13px}}@media(max-width:650px){.live-conditions{padding:11px 15px;gap:9px 13px}.live-conditions>span{display:none}.live-conditions>label{font-size:9px}.live-conditions input{width:42px;font-size:10px}.live-conditions small{font-size:7px}.live-inhibitor-label{flex-basis:100%}.reaction-method{padding:0 16px;font-size:9px}.reaction-method>div{font-size:10px}}
/* Keep the saturation curve beside the molecular animation. */
.reaction-body>.live-mm-chart{border:0;border-radius:0;padding:22px 24px 0;min-width:0}.reaction-body>.live-mm-chart .chart-container{height:330px;margin-top:14px}.reaction-body>.live-mm-chart .chart-note{font-size:10px;padding:12px 0 14px}.reaction-body>.live-mm-chart .chart-heading h2{font-size:20px}.reaction-body>.concentration-view{grid-column:1/-1;border-top:1px solid #e4ebdf;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;padding:21px 24px 17px}.reaction-body>.concentration-view>.concentration-header{grid-area:1/1/2/3}.reaction-body>.concentration-view>.progress-canvas-wrap{grid-area:2/1/4/2;height:175px}.reaction-body>.concentration-view>.progress-legend{grid-area:4/1/5/2;padding-bottom:0}.reaction-body>.concentration-view>.concentration-cards{grid-area:2/2/3/3;margin-top:17px}.reaction-body>.concentration-view>.enzyme-populations{grid-area:3/2/5/3;align-self:center;margin-top:10px}.charts.lb-only{grid-template-columns:minmax(0,1fr)}.kinetics-section-title h2{font-size:19px}@media(max-width:1150px){.reaction-body>.live-mm-chart{padding:20px 17px 0}.reaction-body>.concentration-view{column-gap:22px;padding-left:20px;padding-right:20px}.reaction-body>.live-mm-chart .chart-container{height:365px}.reaction-body>.concentration-view>.concentration-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.reaction-body>.concentration-view .concentration-cards strong{font-size:17px}.reaction-body>.concentration-view .concentration-cards small{display:block;margin-left:0}}@media(max-width:900px){.reaction-body>.concentration-view>.concentration-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.reaction-body>.concentration-view .concentration-cards small{display:inline;margin-left:3px}.kinetics-section-title h2{font-size:17px}}@media(max-width:650px){.reaction-body>.live-mm-chart{padding:20px 17px 0;border-top:1px solid #e4ebdf}.reaction-body>.live-mm-chart .chart-container{height:290px}.reaction-body>.concentration-view{display:block;padding:19px 17px 17px}.reaction-body>.concentration-view>.concentration-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}.reaction-body>.concentration-view>.progress-canvas-wrap{height:185px}.reaction-body>.concentration-view>.progress-legend{padding-bottom:15px}.reaction-body>.concentration-view .concentration-cards small{display:block;margin-left:0}.reaction-body>.concentration-view>.enzyme-populations{margin-top:17px}.kinetics-section-title h2{font-size:15px;max-width:220px}}

.language-switch{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}
.language-switch select{border:1px solid #d5dfd5;border-radius:7px;padding:8px 9px;color:var(--ink);background:#fff;font:600 12px var(--font)}
.point-count{color:#397765;background:#edf5ef;border-radius:20px;padding:5px 9px;font-size:9px;text-align:center}
.measurement-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 11px}
.measurement-actions .button{font-size:10px;padding:7px 10px}
#measurement-stage{font-size:9px;color:#58775f}
.reaction-body>.live-mm-chart .chart-note{padding:9px 0;min-height:0}
.fit-summary{font-size:9px;color:#527756;padding-bottom:11px;line-height:1.6}
.balance-strip button:disabled{opacity:.45;cursor:default}
.stat p{line-height:1.5}
.reading-content p+p{margin-top:10px}
#mm-chart{cursor:default}
.concentration-cards>div>span{white-space:normal}
@media(max-width:650px){.language-switch>span{display:none}.language-switch select{font-size:10px;padding:6px}.header-actions{gap:5px}.header-actions .button{max-width:85px;line-height:1.2}.intro>.button .reset-text{display:none}.reaction-body>.live-mm-chart .chart-heading h2{font-size:18px}.point-count{font-size:8px}.vessel-tag{display:none}}
.rate-key{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:10px;color:#475a50;margin:0 0 9px}
.rate-key span{display:inline-flex;align-items:center;gap:6px}
.rate-key span::before{content:"";width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#687787}
.rate-key .rate-key-initial::before{background:#a74b24}
.progress-legend{display:block}
#progress-legend{display:flex;gap:5px 14px;flex-wrap:wrap}
#v0-progress-note{color:#864329;font-size:11px;line-height:1.45;margin-top:5px}
.chart-toggle{flex-shrink:0}
.substrate-resolution{font-size:11px;color:#4d5e51}
.live-conditions .substrate-resolution{flex-basis:100%;margin:0}
.control .substrate-resolution{grid-column:1/-1}
.progress-legend,.molecule-caption,.simulation-settings>label,.formula-label{color:#4d5e51}
.molecule-caption{font-size:10px;line-height:1.45}
.formula-grid>div{min-width:0}
.formula{flex-wrap:wrap}
@media(max-width:650px){
  .reaction-header{flex-wrap:wrap;gap:8px}
  .reaction-header-end{min-width:0;max-width:100%}
  .simulation-status{white-space:normal;max-width:100%;overflow-wrap:anywhere}
  .simulation-settings{flex-wrap:wrap;justify-content:flex-start;gap:8px 12px}
  .simulation-settings>label{min-width:0;max-width:100%}
  .simulation-settings select{min-width:0;max-width:100%}
  .concentration-header{flex-wrap:wrap}
  .formula{font-size:clamp(17px,5vw,21px);column-gap:6px;row-gap:2px}
}
