:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f0f3f1;--surface:#fbfcfb;--surface-muted:#f3f6f4;--surface-strong:#e8eeeb;--ink:#17201c;--ink-soft:#52605a;--ink-faint:#75817b;--line:#d5ddd9;--line-strong:#b9c5bf;--accent:#087a55;--accent-bright:#12b77b;--accent-soft:#e2f4ec;--selection:#336fd1;--selection-soft:#e9f1ff;--danger:#b14343;--danger-soft:#fbeaea;--warning:#9a6517;--warning-soft:#fff1d7;--shadow:0 8px 24px #19261f14;--font-ui:"Ubuntu Sans", "Trebuchet MS", "Noto Sans", "Segoe UI", sans-serif;--font-code:"Ubuntu Sans Mono", "DejaVu Sans Mono", ui-monospace, monospace;background:var(--canvas);color:var(--ink);font-family:var(--font-ui)}*{box-sizing:border-box}html{background:var(--canvas)}body{background:var(--canvas);min-width:320px;font-family:var(--font-ui);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}button,input,select,textarea{font-family:var(--font-ui);font:inherit}button,summary,select,label[for]{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #336fd147}.lab-shell{min-height:100vh;padding-bottom:76px}.topbar{z-index:30;border-bottom:1px solid var(--line);background:#fbfcfbf5;grid-template-columns:minmax(230px,1fr) minmax(280px,420px) minmax(230px,1fr);align-items:center;min-height:64px;padding:10px 20px;display:grid;position:sticky;top:0}.brand-lockup,.brand-lockup>span:last-child,.draft-status,.draft-status>span:last-child{align-items:center;display:flex}.brand-lockup{gap:11px;min-width:0}.brand-lockup>span:last-child,.draft-status>span:last-child{flex-direction:column;align-items:flex-start;min-width:0}.brand-lockup strong,.draft-status strong{font-size:.88rem;line-height:1.2}.brand-lockup small,.draft-status small{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;line-height:1.35;overflow:hidden}.brand-mark{border-radius:7px;flex:none;width:38px;height:38px;display:block}.topbar-progress{color:var(--ink-soft);grid-template-columns:auto minmax(100px,1fr) auto;align-items:center;gap:10px;font-size:.75rem;font-weight:700;display:grid}.topbar-progress>div{background:var(--surface-strong);border-radius:2px;height:4px;overflow:hidden}.topbar-progress i{background:var(--accent-bright);height:100%;transition:width .22s;display:block}.topbar-progress strong{color:var(--ink);font-variant-numeric:tabular-nums}.model-disclosure{position:relative}.topbar-actions{justify-self:end;align-items:center;gap:8px;display:flex}.tutor-button{background:var(--accent-soft);min-height:34px;color:var(--accent);border:1px solid #a9cabb;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font-size:.76rem;font-weight:800;display:inline-flex}.tutor-button:hover{border-color:var(--accent);background:#d8eee5}.model-disclosure summary{border:1px solid var(--line);min-height:34px;color:var(--ink-soft);border-radius:5px;align-items:center;gap:7px;padding:7px 10px;font-size:.76rem;font-weight:700;list-style:none;display:inline-flex}.model-disclosure summary::-webkit-details-marker{display:none}.model-disclosure[open] summary{border-color:var(--line-strong);color:var(--ink)}.model-disclosure p{border:1px solid var(--line);background:var(--surface);width:min(340px,100vw - 32px);box-shadow:var(--shadow);color:var(--ink-soft);border-radius:6px;margin:0;padding:14px;font-size:.82rem;line-height:1.5;position:absolute;top:39px;right:0}.mobile-nav{display:none}.lab-workbench{border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);grid-template-rows:auto minmax(0,1fr);grid-template-columns:264px minmax(500px,1fr) minmax(360px,410px);width:min(1640px,100%);height:calc(100vh - 140px);min-height:620px;margin:0 auto;display:grid}.learning-rail{border-right:1px solid var(--line);background:var(--surface-muted);grid-row:1/3;min-width:0;padding:18px;overflow-y:auto}.ledger-pane{border-bottom:1px solid var(--line);grid-area:1/2}.builder-pane{grid-area:2/2;overflow-y:auto}.result-pane{border-left:1px solid var(--line);background:#f9fbfa;grid-area:1/3/3;overflow-y:auto}.pane{min-width:0;padding:18px 20px}.pane-heading,.rail-heading,.section-heading,.hint-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pane-heading,.rail-heading{margin-bottom:14px}.pane-heading h2,.rail-heading h2,.section-heading h3,.lesson-title h3,.sandbox-copy h3{color:var(--ink);letter-spacing:0;margin:0;font-size:1rem;line-height:1.3}.heading-with-help,.field-label{align-items:center;gap:6px;min-width:0;display:inline-flex}.help-tip{text-transform:none;flex:none;display:inline-flex;position:relative}.help-tip>button{width:22px;height:22px;color:var(--ink-faint);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.help-tip>button:hover,.help-tip>button:focus-visible,.help-tip.is-open>button{background:var(--surface-strong);color:var(--accent)}.help-tip-bubble{z-index:55;border:1px solid var(--line-strong);background:var(--ink);width:230px;box-shadow:var(--shadow);color:#f5f8f6;text-align:left;text-transform:none;border-radius:5px;padding:9px 10px;font-size:.7rem;font-weight:500;line-height:1.45;display:none;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)}.help-tip-bubble:before{border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);background:var(--ink);content:"";width:9px;height:9px;position:absolute;top:-5px;left:calc(50% - 5px);transform:rotate(45deg)}.help-tip:hover .help-tip-bubble,.help-tip:focus-within .help-tip-bubble,.help-tip.is-open .help-tip-bubble{display:block}.eyebrow{color:var(--ink-faint);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.65rem;font-weight:800}.progress-count{border:1px solid var(--line);background:var(--surface);min-width:34px;min-height:28px;color:var(--ink-soft);font-variant-numeric:tabular-nums;border-radius:4px;place-items:center;padding:4px 7px;font-size:.72rem;font-weight:800;display:inline-grid}.progress-tools{align-items:center;gap:5px;display:inline-flex}.progress-reset{border:1px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--ink-faint);border-radius:4px;place-items:center;padding:0;display:inline-grid}.progress-reset:hover{border-color:var(--line-strong);color:var(--ink)}.challenge-nav,.criteria-list,.trace-list{margin:0;padding:0;list-style:none}.challenge-nav{gap:3px;display:grid}.challenge-nav button{width:100%;min-height:50px;color:var(--ink-soft);text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:7px 8px;display:grid}.challenge-nav button:hover,.challenge-nav button.is-active{background:var(--surface);color:var(--ink)}.challenge-nav button:disabled{cursor:not-allowed}.challenge-nav button.is-locked{color:var(--ink-faint);opacity:.72}.challenge-nav button.is-complete:not(.is-active){color:var(--ink)}.challenge-nav button.is-active{border-color:var(--line)}.challenge-nav button>span:last-child{gap:2px;min-width:0;display:grid}.challenge-nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1.25;overflow:hidden}.challenge-nav small{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;overflow:hidden}.challenge-step{border:1px solid var(--line-strong);background:var(--surface);width:26px;height:26px;color:var(--ink-soft);border-radius:50%;place-items:center;font-size:.7rem;font-weight:800;display:inline-grid}.challenge-step.is-complete{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.challenge-step.is-locked{border-color:var(--line);background:var(--surface-strong);color:var(--ink-faint)}.sandbox-link{border:1px dashed var(--line-strong);width:100%;min-height:38px;color:var(--ink-soft);background:0 0;border-radius:5px;align-items:center;gap:9px;margin-top:8px;padding:8px 11px;font-size:.76rem;font-weight:750;display:flex}.sandbox-link:hover,.sandbox-link.is-active{background:var(--surface);color:var(--ink);border-style:solid}.lesson-content{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.lesson-title{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:9px;display:grid}.lesson-title>svg{color:var(--accent);margin-top:1px}.lesson-title span{color:var(--accent);text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:800;display:block}.lesson-prompt{color:var(--ink-soft);margin:13px 0 0;font-size:.82rem;line-height:1.5}.criteria-section,.hint-section{margin-top:18px}.criteria-section h4,.hint-section h4{text-transform:uppercase;margin:0 0 9px;font-size:.71rem}.criteria-list{gap:8px;display:grid}.criteria-list li{color:var(--ink-soft);grid-template-columns:17px minmax(0,1fr);align-items:center;gap:8px;font-size:.76rem;line-height:1.35;display:grid}.criteria-list li svg{color:var(--line-strong)}.criteria-list li.is-complete{color:var(--ink)}.criteria-list li.is-complete svg{color:var(--accent)}.hint-heading{align-items:center}.hint-heading button,.challenge-feedback button{border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--ink-soft);border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:5px 7px;font-size:.68rem;font-weight:750;display:inline-flex}.hint-section>p,.hint-section ol{color:var(--ink-faint);margin:2px 0 0;font-size:.73rem;line-height:1.45}.hint-section ol{gap:6px;padding-left:19px;display:grid}.challenge-feedback{border-left:3px solid var(--danger);background:var(--danger-soft);gap:5px;margin-top:18px;padding:11px;display:grid}.challenge-feedback.success{border-color:var(--accent);background:var(--accent-soft)}.challenge-feedback strong{font-size:.76rem}.challenge-feedback span{color:var(--ink-soft);font-size:.72rem;line-height:1.4}.challenge-feedback button{border-color:var(--accent);background:var(--accent);color:#fff;width:100%;margin-top:4px}.sandbox-copy{color:var(--ink-soft)}.sandbox-copy>svg{color:var(--accent);margin-bottom:10px}.sandbox-copy p{margin:9px 0 0;font-size:.79rem;line-height:1.5}.docs-link{border-top:1px solid var(--line);color:var(--ink-soft);justify-content:space-between;align-items:center;gap:8px;margin-top:18px;padding-top:14px;font-size:.72rem;font-weight:750;text-decoration:none;display:flex}.docs-link:hover{color:var(--accent)}.metric-pair{align-items:center;gap:10px;display:flex}.metric-pair span{color:var(--ink-faint);white-space:nowrap;font-size:.7rem;font-weight:750}.metric-pair span:first-child{color:var(--accent)}.cell-list{gap:8px;display:grid}.ledger-empty{border:1px dashed var(--line-strong);min-height:68px;color:var(--ink-faint);border-radius:5px;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:10px;padding:11px 13px;display:grid}.ledger-empty>span{gap:3px;display:grid}.ledger-empty strong{color:var(--ink-soft);font-size:.78rem}.ledger-empty small{font-size:.71rem;line-height:1.35}.cell-row{border:1px solid var(--line);border-left:3px solid var(--accent-bright);background:var(--surface);border-radius:5px;grid-template-columns:18px 24px minmax(0,1fr) minmax(120px,auto) auto;align-items:center;gap:10px;min-height:72px;padding:10px 11px;transition:border-color .15s,background .15s;display:grid}.cell-row:hover{border-color:var(--line-strong);border-left-color:var(--accent-bright)}.cell-row.is-selected{border-color:var(--selection);border-left-color:var(--selection);background:var(--selection-soft)}.cell-row.is-consumed{border-left-color:var(--line-strong);background:var(--surface-muted);color:var(--ink-faint)}.cell-row input,.check-control input{width:16px;height:16px;accent-color:var(--selection);margin:0}.cell-row-icon{color:var(--accent);display:inline-flex}.cell-row.is-consumed .cell-row-icon{color:var(--ink-faint)}.cell-row-main,.cell-row-meta{gap:4px;min-width:0;display:grid}.cell-row-title,.cell-row-data,.mini-cell strong{overflow-wrap:anywhere}.cell-row-title{font-family:var(--font-code);font-size:.76rem;font-weight:800}.cell-row-data{color:var(--ink-faint);font-family:var(--font-code);font-size:.7rem}.cell-row-meta{color:var(--ink-soft);font-size:.68rem}.cell-row-meta span{white-space:nowrap;justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.status-pill{text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:4px 7px;font-size:.62rem;font-weight:850;display:inline-flex}.status-pill.success,.trace-item.success .trace-icon{background:var(--accent-soft);color:var(--accent)}.status-pill.danger,.trace-item.error .trace-icon{background:var(--danger-soft);color:var(--danger)}.status-pill.neutral,.trace-item.info .trace-icon{background:var(--surface-strong);color:var(--ink-soft)}.segmented-control{border:1px solid var(--line);background:var(--surface-muted);border-radius:5px;grid-template-columns:1fr 1fr;gap:3px;max-width:360px;margin-bottom:10px;padding:3px;display:grid}.segmented-control button{min-height:34px;color:var(--ink-soft);background:0 0;border:0;border-radius:3px;padding:7px 10px;font-size:.77rem;font-weight:750}.segmented-control button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #17201c1a}.mode-note{border-left:3px solid var(--accent-bright);background:var(--accent-soft);color:#285446;max-width:680px;padding:8px 10px;font-size:.75rem;line-height:1.4}.control-group{border:0;border-top:1px solid var(--line);min-width:0;margin:17px 0 0;padding:14px 0 0}.control-group legend{background:var(--surface);color:var(--ink);align-items:center;gap:6px;padding:0 8px 0 0;font-size:.76rem;font-weight:800;display:inline-flex}.checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:480px;display:grid}.check-control{min-height:34px;color:var(--ink-soft);align-items:center;gap:8px;font-size:.77rem;display:inline-flex}.output-toggle{margin-bottom:8px}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.editor-grid label:not(.check-control){min-width:0;color:var(--ink-soft);text-transform:uppercase;gap:5px;font-size:.67rem;font-weight:800;display:grid}.editor-grid input,.editor-grid select,.editor-grid textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:38px;color:var(--ink);border-radius:4px;padding:8px 9px;font-size:.78rem}.editor-grid input:focus,.editor-grid select:focus,.editor-grid textarea:focus{border-color:var(--selection)}.editor-grid textarea{resize:vertical;text-transform:none;min-height:72px}.data-field{grid-column:1/-1}.lock-toggle{align-self:end;padding-bottom:2px}.capacity-note,.type-note{border:1px solid var(--line);min-height:34px;color:var(--ink-soft);border-radius:4px;justify-content:space-between;align-items:center;gap:10px;margin-top:7px;padding:7px 9px;font-size:.71rem;display:flex}.capacity-note strong{color:var(--ink);font-variant-numeric:tabular-nums}.type-note{justify-content:flex-start}.type-note.lock-present{color:var(--accent);border-color:#aed5c4}.type-note.lock-missing{background:var(--danger-soft);color:var(--danger);border-color:#e4baba}.is-guided-fix{z-index:2;outline-offset:4px;border-radius:5px;outline:3px solid #336fd152;position:relative}.journey-section{border-bottom:1px solid var(--line);padding-bottom:18px}.journey-heading,.journey-subheading,.journey-replay-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.journey-heading{margin-bottom:10px}.journey-heading h3,.journey-subheading h4{margin:0;font-size:.86rem;line-height:1.3}.journey-language{border:1px solid var(--line);background:var(--surface-muted);border-radius:4px;grid-template-columns:1fr 1fr;gap:2px;padding:2px;display:grid}.journey-language button{min-height:27px;color:var(--ink-faint);background:0 0;border:0;border-radius:3px;padding:4px 7px;font-size:.62rem;font-weight:800}.journey-language button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #17201c1a}.journey-prediction{border:1px solid #c5d3cc;border-left:3px solid var(--selection);background:#f4f8ff;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;min-height:55px;margin-bottom:12px;padding:9px 10px;display:flex}.journey-prediction.has-result{border-left-color:var(--accent);background:var(--accent-soft);justify-content:flex-start}.journey-prediction>p{gap:2px;min-width:0;margin:0;display:grid}.journey-prediction strong{font-size:.7rem}.journey-prediction small{color:var(--ink-soft);font-size:.65rem;line-height:1.35}.journey-prediction>span.correct,.journey-prediction>span.missed{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;display:inline-grid}.journey-prediction>span.missed{background:var(--warning)}.prediction-actions{flex:none;gap:5px;display:flex}.prediction-actions button{border:1px solid var(--line-strong);background:var(--surface);min-height:29px;color:var(--ink-soft);border-radius:4px;padding:5px 7px;font-size:.62rem;font-weight:800}.prediction-actions button.is-active{border-color:var(--selection);background:var(--selection-soft);color:var(--selection)}.journey-map{grid-template-columns:minmax(0,1fr) 15px minmax(82px,.82fr) 15px minmax(0,1fr);align-items:center;gap:4px;min-width:0;display:grid}.journey-zone{align-content:start;align-self:stretch;gap:5px;min-width:0;display:grid}.journey-zone>span{color:var(--ink-faint);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.58rem;font-weight:850;overflow:hidden}.journey-cell-node{border:1px solid var(--line);border-left:3px solid var(--selection);background:var(--surface);width:100%;min-width:0;height:126px;color:var(--ink);text-align:left;border-radius:5px;grid-template-rows:auto auto auto minmax(22px,auto);align-content:start;gap:7px;padding:8px;transition:border-color .16s,background .16s,opacity .16s;display:grid}.journey-cell-node:hover,.journey-cell-node.is-active{border-color:var(--selection);border-left-color:var(--selection);background:var(--selection-soft)}.journey-cell-node:disabled{opacity:1}.journey-cell-node.live{border-left-color:var(--accent-bright)}.journey-cell-node.live:hover,.journey-cell-node.live.is-active{border-color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}.journey-cell-node.consumed{border-left-color:var(--line-strong);background:var(--surface-muted);color:var(--ink-faint)}.journey-cell-node.consumed code,.journey-cell-node.consumed .journey-cell-owner{text-decoration:line-through}.journey-cell-node.blocked{border-color:#e2b5b5;border-left-color:var(--danger);background:var(--danger-soft)}.journey-cell-node.empty{border-left-color:var(--line-strong);background:var(--surface-muted);color:var(--ink-faint)}.journey-cell-topline{grid-template-columns:15px minmax(0,1fr);align-items:center;gap:4px;min-width:0;display:grid}.journey-cell-topline strong{font-family:var(--font-code);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.journey-cell-topline small{background:var(--surface-strong);color:var(--ink-faint);text-transform:uppercase;border-radius:3px;grid-column:1/-1;justify-self:start;padding:2px 4px;font-size:.54rem;font-weight:850}.journey-cell-node.live .journey-cell-topline small{background:var(--accent-soft);color:var(--accent)}.journey-cell-node.blocked .journey-cell-topline small{color:var(--danger);background:#f3cccc}.journey-cell-capacity{gap:3px;display:grid}.journey-cell-capacity>span{background:var(--surface-strong);border-radius:2px;height:4px;overflow:hidden}.journey-cell-capacity i{background:var(--accent-bright);height:100%;display:block}.journey-cell-capacity small,.journey-cell-owner,.journey-cell-node code{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;line-height:1.25;overflow:hidden}.journey-cell-owner{align-items:center;gap:3px;display:flex}.journey-cell-node code{border-top:1px solid var(--line);font-family:var(--font-code);align-self:end;padding-top:4px}.journey-cell-empty{color:var(--ink-faint);align-self:center;font-size:.62rem;line-height:1.4}.journey-arrow{color:var(--line-strong);justify-self:center}.journey-gate{border:1px solid var(--line);background:var(--surface-muted);width:100%;min-width:0;height:100px;color:var(--ink-soft);text-align:center;border-radius:5px;align-content:center;justify-items:center;gap:5px;padding:7px 5px;display:grid}.journey-gate.success{background:var(--accent-soft);color:var(--accent);border-color:#a8d7c1}.journey-gate.error{background:var(--danger-soft);color:var(--danger);border-color:#e2b5b5}.journey-gate small{text-transform:uppercase;font-size:.55rem;font-weight:850}.journey-gate strong{overflow-wrap:anywhere;color:currentColor;max-width:100%;font-size:.66rem;line-height:1.25}.journey-mental-note{border-left:3px solid var(--accent-bright);background:var(--accent-soft);color:#285446;margin:9px 0 0;padding:8px 9px;font-size:.65rem;line-height:1.4}.journey-replay-heading{align-items:center;margin-top:15px}.journey-replay-heading>span{gap:2px;display:grid}.journey-replay-heading strong{font-size:.7rem}.journey-replay-heading small{color:var(--ink-faint);font-size:.61rem}.replay-controls{align-items:center;gap:3px;display:flex}.replay-controls button{border:1px solid var(--line);background:var(--surface);width:27px;height:27px;color:var(--ink-soft);border-radius:4px;place-items:center;padding:0;display:inline-grid}.journey-checkpoints{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:9px 0 0;padding:0;list-style:none;display:grid;position:relative}.journey-checkpoints:before{z-index:0;background:var(--line);content:"";height:1px;position:absolute;top:12px;left:9%;right:9%}.journey-checkpoints li{z-index:1;min-width:0;position:relative}.journey-checkpoints button{width:100%;min-width:0;color:var(--ink-faint);background:0 0;border:0;justify-items:center;gap:5px;padding:0 2px;display:grid}.journey-checkpoints button>span{border:2px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:25px;height:25px;font-size:.58rem;font-weight:850;display:inline-grid}.journey-checkpoints button.success>span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.journey-checkpoints button.error>span{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.journey-checkpoints button.is-active>span{border-color:var(--selection);box-shadow:0 0 0 3px #336fd12e}.journey-checkpoints small{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.56rem;line-height:1.2;overflow:hidden}.journey-stage-detail{border:1px solid var(--line);background:var(--surface);border-radius:5px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:58px;margin-top:10px;padding:8px;display:grid}.journey-stage-detail>span{background:var(--surface-strong);width:27px;height:27px;color:var(--ink-faint);border-radius:50%;place-items:center;display:inline-grid}.journey-stage-detail.success>span{background:var(--accent-soft);color:var(--accent)}.journey-stage-detail.error>span{background:var(--danger-soft);color:var(--danger)}.journey-stage-detail p{gap:2px;min-width:0;margin:0;display:grid}.journey-stage-detail strong{font-size:.68rem}.journey-stage-detail small{color:var(--ink-soft);font-size:.61rem;line-height:1.35}.journey-stage-detail>button{border:1px solid var(--danger);background:var(--surface);min-height:29px;color:var(--danger);border-radius:4px;align-items:center;gap:5px;padding:5px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.journey-anatomy{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.journey-subheading{align-items:center;margin-bottom:8px}.journey-subheading>span{background:var(--surface-strong);color:var(--ink-soft);text-transform:uppercase;border-radius:3px;padding:3px 6px;font-size:.56rem;font-weight:850}.anatomy-grid{border:1px solid var(--line);background:var(--line);border-radius:5px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.anatomy-field{background:var(--surface);min-height:58px;color:var(--ink-soft);grid-template-columns:18px minmax(0,1fr);align-items:start;gap:6px;padding:8px;display:grid}.anatomy-field>svg{color:var(--accent);margin-top:1px}.anatomy-field>span{gap:2px;min-width:0;display:grid}.anatomy-field small,.anatomy-field em{color:var(--ink-faint);font-size:.59rem;font-style:normal}.anatomy-field strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.69rem;line-height:1.3;overflow:hidden}.anatomy-data{font-family:var(--font-code)}.flow-strip{grid-template-columns:minmax(0,1fr) 18px minmax(78px,.72fr) 18px minmax(0,1fr);align-items:stretch;gap:6px;display:grid}.flow-column{align-content:start;gap:7px;min-width:0;display:grid}.flow-column>span{color:var(--ink-faint);text-transform:uppercase;font-size:.64rem;font-weight:800}.flow-arrow{color:var(--line-strong);place-self:center}.mini-cell{border:1px solid var(--line);border-left:3px solid var(--accent-bright);background:var(--surface);min-width:0;min-height:76px;color:var(--ink-soft);border-radius:5px;gap:5px;padding:10px;display:grid}.mini-cell strong{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;line-height:1.3}.mini-cell span{overflow-wrap:anywhere;font-size:.67rem;line-height:1.4}.mini-cell.muted{border-left-color:var(--line-strong);background:var(--surface-muted);color:var(--ink-faint)}.validation-state{text-align:center;border-left-width:1px;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex}.validation-state.success{background:var(--accent-soft);color:var(--accent);border-color:#aed5c4}.validation-state.danger{background:var(--danger-soft);color:var(--danger);border-color:#e4baba}.result-summary{border:1px solid var(--line);background:var(--line);border-radius:5px;grid-template-columns:1fr 1fr;gap:1px;margin:16px 0 0;display:grid;overflow:hidden}.result-summary div{background:var(--surface);gap:3px;padding:9px 11px;display:grid}.result-summary span{color:var(--ink-faint);text-transform:uppercase;font-size:.64rem;font-weight:800}.result-summary strong{font-size:.78rem}.trace-section{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.section-heading{margin-bottom:10px}.section-heading>span{color:var(--ink-faint);font-size:.68rem;font-weight:750}.empty-state{border:1px dashed var(--line-strong);color:var(--ink-faint);border-radius:5px;margin:0;padding:12px;font-size:.76rem;line-height:1.5}.trace-list{display:grid}.trace-item{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr);gap:9px;padding:9px 0;display:grid}.trace-item:last-child{border-bottom:0}.trace-icon{border-radius:50%;justify-content:center;align-items:center;width:27px;height:27px;display:inline-flex}.trace-item.warning .trace-icon{background:var(--warning-soft);color:var(--warning)}.trace-item strong,.trace-item span span{display:block}.trace-item strong{color:var(--ink);margin:1px 0 2px;font-size:.75rem}.trace-item span span{color:var(--ink-soft);font-size:.71rem;line-height:1.4}.command-dock{z-index:40;border-top:1px solid var(--line-strong);background:#fbfcfbf7;justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:10px max(20px,50vw - 800px);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #18261e0f}.draft-status{gap:9px;min-width:0}.status-dot{border:2px solid var(--line-strong);background:var(--surface);border-radius:50%;width:9px;height:9px}.status-dot.success{border-color:var(--accent);background:var(--accent-bright)}.status-dot.error{border-color:var(--danger);background:var(--danger)}.dock-actions{align-items:center;gap:8px;display:flex}.dock-actions button{border:1px solid var(--line-strong);border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 14px;font-size:.78rem;font-weight:800;display:inline-flex}.dock-actions .dock-icon-button{background:var(--surface);width:42px;color:var(--ink-soft);padding:8px}.start-building-button{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:42px;margin-left:auto;padding:9px 14px;font-size:.78rem;font-weight:800;display:inline-flex}.tour-layer{z-index:100;position:fixed;inset:0}.tour-layer.is-centered{background:#101b16a3}.tour-spotlight{pointer-events:none;border:2px solid #72dbac;border-radius:7px;transition:top .18s,left .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #101b16a3}.tour-card{z-index:102;background:var(--surface);width:min(330px,100vw - 24px);color:var(--ink);border:1px solid #9eb7ab;border-radius:7px;padding:15px;position:fixed;box-shadow:0 18px 48px #07140e42}.tour-card.is-centered{top:50%;left:50%;transform:translate(-50%,-50%)}.tour-card:focus{outline:none}.tour-card>header{border-bottom:1px solid var(--line);grid-template-columns:34px minmax(0,1fr) 30px;align-items:center;gap:9px;padding-bottom:12px;display:grid}.tour-guide-mark{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:5px;place-items:center;display:inline-grid}.tour-card>header>span:nth-child(2){gap:1px;display:grid}.tour-card>header strong{font-size:.78rem}.tour-card>header small{color:var(--ink-faint);font-size:.67rem}.tour-card>header button,.tour-back{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--ink-soft);border-radius:4px;place-items:center;padding:0;display:inline-grid}.tour-step-count{color:var(--accent);text-transform:uppercase;margin:13px 0 5px;font-size:.65rem;font-weight:850}.tour-card h2{letter-spacing:0;margin:0;font-size:1.05rem;line-height:1.3}.tour-description{color:var(--ink-soft);margin:8px 0 0;font-size:.78rem;line-height:1.5}.tour-progress{grid-template-columns:repeat(6,1fr);gap:4px;margin-top:14px;display:grid}.tour-progress i{background:var(--surface-strong);border-radius:2px;height:3px}.tour-progress i.is-active{background:var(--accent-bright)}.tour-card>footer{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.tour-card>footer>span{align-items:center;gap:6px;display:flex}.tour-skip{color:var(--ink-faint);background:0 0;border:0;padding:6px 0;font-size:.7rem;font-weight:700}.tour-next{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:7px 11px;font-size:.72rem;font-weight:800;display:inline-flex}.tour-back:disabled{opacity:.4}.simulate-button{background:var(--ink);color:#fff;border-color:var(--ink)!important}.apply-button{background:var(--accent);color:#fff;border-color:var(--accent)!important}.apply-button:disabled{background:var(--surface-strong);color:var(--ink-faint);border-color:var(--line)!important}@media (max-width:1120px) and (min-width:861px){.lab-workbench{grid-template-rows:auto auto auto;grid-template-columns:244px minmax(0,1fr);height:auto;min-height:calc(100vh - 140px)}.learning-rail{grid-area:1/1/4;max-height:calc(100vh - 140px);position:sticky;top:64px}.ledger-pane,.builder-pane,.result-pane{grid-column:2;overflow:visible}.ledger-pane{grid-row:1}.builder-pane{grid-row:2}.result-pane{border-top:1px solid var(--line);border-left:0;grid-row:3}}@media (max-width:860px){.lab-shell{padding-bottom:70px}.topbar{grid-template-columns:minmax(0,1fr) auto;min-height:58px;padding:9px 14px}.brand-lockup small,.topbar-progress{display:none}.model-disclosure summary,.tutor-button{min-height:32px;padding:6px 8px}.tutor-button span,.model-disclosure summary span{display:none}.mobile-nav{z-index:25;border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:sticky;top:58px}.mobile-nav button{min-width:0;min-height:48px;color:var(--ink-faint);background:0 0;border:0;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:7px 4px;font-size:.67rem;font-weight:750;display:inline-flex}.mobile-nav button.is-active{border-bottom-color:var(--accent);color:var(--ink)}.lab-workbench{border:0;width:100%;height:auto;min-height:calc(100vh - 176px);display:block}.lab-workbench>.learning-rail,.lab-workbench>.ledger-pane,.lab-workbench>.builder-pane,.lab-workbench>.result-pane{border:0;min-height:calc(100vh - 176px);display:none;overflow:visible}.lab-workbench[data-mobile-view=mission]>.learning-rail,.lab-workbench[data-mobile-view=cells]>.ledger-pane,.lab-workbench[data-mobile-view=build]>.builder-pane,.lab-workbench[data-mobile-view=result]>.result-pane{display:block}.learning-rail,.pane{padding:18px}.learning-rail{background:var(--surface-muted)}.result-pane{background:var(--surface)}.command-dock{min-height:70px;padding:9px 12px}.tour-card{max-height:calc(100vh - 98px);padding:14px;overflow-y:auto}.help-tip-bubble{width:auto;position:fixed;inset:auto 12px 80px;transform:none}.help-tip-bubble:before{display:none}.dock-actions{flex:1;justify-content:flex-end}.dock-actions button{min-height:42px}.draft-status small{max-width:92px}}@media (max-width:560px){.model-disclosure p{top:38px}.brand-mark{width:38px}.cell-row{grid-template-columns:18px 24px minmax(0,1fr) auto;align-items:start}.cell-row-main{padding-top:1px}.cell-row-meta{grid-column:3/5}.cell-row-meta span{justify-content:flex-start}.cell-row .status-pill{grid-area:1/4}.checkbox-grid,.editor-grid{grid-template-columns:1fr}.data-field{grid-column:auto}.flow-strip{grid-template-columns:1fr;gap:8px}.flow-arrow{transform:rotate(90deg)}.mini-cell{min-height:66px}.draft-status{display:none}.dock-actions{grid-template-columns:42px 42px minmax(102px,1fr) minmax(88px,1fr);width:100%;display:grid}.dock-actions button{width:100%;padding:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.mobile-nav{z-index:25;border:1px solid var(--line);background:var(--surface);border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(520px,100% - 32px);margin:12px auto 0;display:grid;position:sticky;top:64px;overflow:hidden}.mobile-nav button{border:0;border-right:1px solid var(--line);min-width:0;min-height:42px;color:var(--ink-faint);background:0 0;justify-content:center;align-items:center;gap:7px;padding:7px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.mobile-nav button:last-child{border-right:0}.mobile-nav button.is-active{background:var(--accent-soft);color:var(--accent)}.lab-workbench{border:1px solid var(--line);background:var(--surface);border-radius:7px;width:min(900px,100% - 32px);height:calc(100vh - 216px);min-height:540px;margin:12px auto 0;display:block;overflow:hidden}.lab-workbench>.learning-rail,.lab-workbench>.build-workspace,.lab-workbench>.result-pane{width:100%;height:100%;display:none;overflow-y:auto}.lab-workbench[data-mobile-view=mission]>.learning-rail,.lab-workbench[data-mobile-view=build]>.build-workspace,.lab-workbench[data-mobile-view=result]>.result-pane{display:block}.learning-rail{background:var(--surface);border:0;padding:28px}.learning-rail>*,.builder-pane>*,.ledger-pane>*{width:min(700px,100%);margin-left:auto;margin-right:auto}.result-pane>*{width:min(760px,100%);margin-left:auto;margin-right:auto}.challenge-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.challenge-nav button{border-color:var(--line);background:var(--surface);min-height:46px}.challenge-nav button.is-active{border-color:var(--accent);background:var(--accent-soft)}.challenge-nav strong{font-size:.72rem}.sandbox-link{width:min(700px,100%);min-height:36px;margin:8px auto 0}.lesson-content{width:min(620px,100%);margin:24px auto 0;padding-top:24px}.lesson-title h3,.sandbox-copy h3{font-size:1.18rem}.lesson-prompt{max-width:520px;margin-top:14px;font-size:.9rem}.criteria-section{border:1px solid var(--line);border-radius:5px;margin-top:18px}.criteria-section summary,.journey-anatomy summary,.secondary-details>summary{min-height:40px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:.72rem;font-weight:800;list-style:none;display:flex}.criteria-section summary::-webkit-details-marker{display:none}.journey-anatomy summary::-webkit-details-marker{display:none}.secondary-details>summary::-webkit-details-marker{display:none}.criteria-section summary small,.journey-anatomy summary small,.secondary-details>summary small{background:var(--surface-strong);min-width:25px;min-height:23px;color:var(--ink-faint);border-radius:3px;place-items:center;font-size:.6rem;display:inline-grid}.criteria-list{gap:7px;padding:0 10px 10px}.hint-section{border-left:2px solid var(--line-strong);margin-top:12px;padding:9px 10px}.hint-section h4{color:var(--ink-soft);margin:0;font-size:.68rem}.hint-section>p{color:var(--ink-soft);margin-top:8px}.docs-link{width:min(620px,100%);margin:20px auto 0}.build-workspace{background:var(--surface)}.build-workspace .pane{background:var(--surface);border:0;width:100%;padding:22px 28px;display:block}.build-workspace .ledger-pane{border-bottom:1px solid var(--line)}.build-workspace .builder-pane{overflow:visible}.builder-pane>.control-group{margin:16px auto 0}.segmented-control{max-width:300px}.result-pane{background:var(--surface);border:0;padding:24px 28px}.journey-heading{align-items:center}.journey-heading h3{font-size:.92rem}.journey-anatomy,.secondary-details{border:1px solid var(--line);border-radius:5px;margin-top:12px}.journey-anatomy{padding:0}.journey-anatomy .anatomy-grid{margin:0 8px 8px}.secondary-details>.trace-section{margin:0 10px 10px;padding-top:10px}.tour-progress{grid-template-columns:none;grid-auto-columns:1fr;grid-auto-flow:column}@media (max-width:860px){.mobile-nav{border-width:0 0 1px;border-radius:0;width:100%;margin:0;top:58px}.mobile-nav button{border-bottom:2px solid #0000;border-right:0;min-height:48px}.mobile-nav button.is-active{border-bottom-color:var(--accent);background:0 0}.lab-workbench{border:0;border-radius:0;width:100%;height:auto;min-height:calc(100vh - 176px);margin:0}.lab-workbench>.learning-rail,.lab-workbench>.build-workspace,.lab-workbench>.result-pane{height:auto;min-height:calc(100vh - 176px);overflow:visible}.learning-rail,.result-pane,.build-workspace .pane{padding:20px 18px}.challenge-nav{gap:5px}.challenge-nav button{grid-template-columns:26px minmax(0,1fr);gap:6px;min-height:45px;padding:6px}.challenge-nav strong{font-size:.66rem}.lesson-content{margin-top:20px;padding-top:20px}}@media (max-width:420px){.journey-prediction:not(.has-result){flex-direction:column;align-items:flex-start}.prediction-actions{width:100%}.prediction-actions button{flex:1}}.brand-lockup strong,.pane-heading h2,.rail-heading h2,.section-heading h3,.lesson-title h3,.sandbox-copy h3,.journey-heading h3,.journey-subheading h4,.challenge-nav strong,.criteria-section summary,.journey-anatomy summary,.secondary-details>summary,.dock-actions button,.start-building-button{font-weight:700}.lesson-prompt,.journey-prediction small,.journey-stage-detail small,.trace-item span span{line-height:1.55}
