.lesson-main{max-width:1060px!important}.lesson-main h2{margin:28px 0 14px}.lesson-main h3{margin:8px 0 12px}.lesson-main .panel{margin-bottom:25px}.intro{max-width:780px}.steps,.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.step-card,.science-card{border:3px solid var(--navy);padding:20px;background:var(--ice);box-shadow:var(--shadow);min-width:0}.step-card:nth-child(2),.science-card:nth-child(2){background:var(--amber)}.step-card:nth-child(3),.science-card:nth-child(3){background:#b0e8cb}.step-card:nth-child(4){background:var(--coral)}.step-card a{display:inline-block;margin-top:12px;font-weight:900}.step-num{display:inline-grid;place-items:center;width:38px;height:38px;background:var(--navy);color:#fff;font:900 22px Consolas,monospace}.lesson-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 25px}.lesson-tabs a{padding:8px 12px;border:2px solid var(--navy);background:var(--amber);text-decoration:none;font-size:15px}.lesson-tabs [aria-current=page]{background:var(--green);font-weight:900}.dna,.mono{font-family:Consolas,"Courier New",monospace;direction:ltr;unicode-bidi:isolate;display:inline-block;letter-spacing:.08em}.tiles{display:flex;flex-wrap:wrap;gap:12px;direction:ltr;margin:15px 0}.fragment{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:2px solid var(--navy);background:var(--amber);font:900 21px Consolas,monospace;direction:ltr}.fragment small{font:600 12px Arial;letter-spacing:0}.fragment.current{background:var(--coral);outline:3px solid var(--navy);outline-offset:2px}.fragment.done{background:var(--green)}.question-line{border-inline-start:5px solid var(--navy);padding:10px 14px;background:#ffffff55;margin:14px 0}.small,.source{font-size:14px}.source{display:block;margin-top:12px}.diagram{display:block;width:100%;height:auto;max-height:250px;margin:15px auto;background:#e0f8f8;border:2px solid var(--navy)}.diagram text{font-family:Arial,sans-serif;fill:#112640}.diagram .base{font-family:Consolas,monospace;font-weight:900}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:14px}.legend span{display:inline-flex;gap:6px;align-items:center}.swatch{width:15px;height:15px;border:2px solid var(--navy);background:var(--amber)}.swatch.used{background:var(--green)}.swatch.active{background:var(--coral)}.flow{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin:20px 0;direction:ltr}.flow-box{border:2px solid var(--navy);padding:12px 18px;background:var(--amber);text-align:center;direction:rtl}.flow-arrow{font-size:28px}.base-a{background:#ffd19a}.base-t{background:#ffa294}.base-c{background:#a5edff}.base-g{background:#60e99a}.base-letter{display:inline-grid;place-items:center;border:2px solid var(--navy);width:40px;height:45px;font:900 26px Consolas,monospace}.base-row{display:flex;gap:5px;flex-wrap:wrap;direction:ltr;justify-content:center;margin:15px 0}.read-strip{display:grid;grid-template-columns:1fr 1fr;gap:14px}.read-box{border:2px solid var(--navy);background:#c3f0df;padding:15px}.overlap{color:#7b233b;text-decoration:underline;text-decoration-thickness:3px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{display:block;text-align:right;width:100%;margin:10px 0}.feedback{min-height:1.7em;padding:8px 0;font-weight:800}.feedback[data-kind=error]{color:#792238}.feedback[data-kind=success]{color:#164d3c}.controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.toolbar label,.field{display:grid;gap:6px;min-width:0}.toolbar input{width:160px;max-width:100%}.toolbar select{max-width:200px}input,textarea,select{max-width:100%}textarea{width:100%;resize:vertical;min-height:90px}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.editor-side{display:grid;gap:14px}.mini-panel{border:2px solid var(--navy);background:#b0e8cb;padding:14px}.mini-panel h3{font-size:17px}.mini-panel label{display:grid;gap:5px;margin:9px 0}.mini-panel input,.mini-panel select{width:100%;min-width:0}.mini-panel button{margin-top:5px}.graph-wrap{border:2px solid var(--navy);background:#e0f8f8;position:relative;min-width:0}.graph-svg{display:block;width:100%;height:auto;aspect-ratio:800/460;touch-action:none}.graph-svg text{font-family:Consolas,monospace;user-select:none;fill:#112640;pointer-events:none;direction:ltr;unicode-bidi:isolate}.graph-svg .edge-text{font-size:18px;font-weight:900;paint-order:stroke;stroke:#e0f8f8;stroke-width:7px;stroke-linejoin:round}.edge-line{fill:none;stroke:#263e61;stroke-width:3}.edge-hit{fill:none;stroke:transparent;stroke-width:22;cursor:pointer}.edge-group.used .edge-line{stroke:#15764d;stroke-width:5}.edge-group.selected .edge-line{stroke:#9c3351;stroke-width:5}.node-circle{fill:#ffd19a;stroke:#15274b;stroke-width:3}.node-group{cursor:grab}.node-group.selected .node-circle{fill:#ffa294;stroke-width:5}.node-group.current .node-circle{fill:#60e99a;stroke-width:5}.node-label{font-weight:900;font-size:22px}.graph-svg [role=button]:focus-visible{outline:none}.graph-svg [role=button]:focus-visible .node-circle{stroke:#9c3351;stroke-width:6}.graph-svg [role=button]:focus-visible .edge-hit{stroke:#ffa29480}.graph-help{font-size:14px;color:var(--muted)}.empty-graph{padding:15px;text-align:center;border-top:1px solid var(--navy);margin:0!important}.selection-list{max-height:190px;overflow:auto}.selection-list button{display:block;width:100%;margin:6px 0;font-size:14px;overflow-wrap:anywhere}.degree-table{width:100%;margin:15px 0;text-align:center}.table-wrap{overflow:auto}.sequence-display{font:900 clamp(23px,4vw,35px)/1.8 Consolas,monospace;direction:ltr;unicode-bidi:isolate;overflow-wrap:anywhere;letter-spacing:.1em;min-height:65px;background:#c3f0df;border:2px solid var(--navy);padding:8px 15px}.route-display{direction:ltr;unicode-bidi:isolate;font:700 17px/1.8 Consolas,monospace;overflow-wrap:anywhere;min-height:35px}.phase-tag{display:inline-block;border:2px solid var(--navy);background:var(--amber);padding:5px 10px;font-size:14px}.build-mapping{display:flex;justify-content:center;gap:15px;align-items:center;flex-wrap:wrap;font:900 23px Consolas,monospace;direction:ltr;min-height:60px}.demo-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.7fr);gap:20px}.demo-split .graph-wrap{align-self:start}.remaining-list{min-height:50px}.lesson-main details{margin:15px 0}.lesson-main details>div{padding-top:10px}.lesson-main details summary{font-weight:900}.lesson-main dialog{max-width:420px}.lesson-main .note{font-size:14px;color:var(--muted)}.dna-scan{animation:scan 5s ease-in-out infinite}@keyframes scan{0%,100%{transform:translateX(0)}50%{transform:translateX(150px)}}.lesson-main footer{border-top:2px solid var(--navy);margin-top:30px;padding-top:16px;font-size:14px}@media(max-width:850px){.editor-layout,.demo-split{grid-template-columns:1fr}.editor-side{grid-template-columns:1fr 1fr}.cards.three{grid-template-columns:1fr}.science-card{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.science-card h3,.science-card .question-line,.science-card .source{grid-column:1/-1}.science-card .diagram{max-height:200px}.science-card p{align-self:center}}@media(max-width:600px){.steps,.cards,.read-strip,.compare,.editor-side{grid-template-columns:1fr}.science-card{display:block}.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar input{width:100%}.toolbar button{grid-column:1/-1}.graph-svg .edge-text{font-size:20px}.lesson-tabs a{font-size:14px;padding:8px}.controls button{flex-grow:1}.degree-table th,.degree-table td{padding:6px}.step-card,.science-card{padding:17px}.base-letter{width:34px;height:40px}.fragment{font-size:19px}.flow{gap:8px}}@media print{.lesson-tabs,.controls,.toolbar,.editor-side,.no-print{display:none!important}.steps,.cards{display:block}.step-card,.science-card{box-shadow:none;margin-bottom:20px;break-inside:avoid}.dna-scan{animation:none}}@media(prefers-reduced-motion:reduce){.dna-scan{animation:none}}
.graph-wrap{user-select:none}.toolbar #task{max-width:100%;width:310px}.walk-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.walk-layout>#walk-graph-host{position:sticky;top:16px}.demo-split:has(>#build-graph-host[hidden]){grid-template-columns:1fr}.walk-layout h3{font-size:18px}.walk-layout .controls{gap:10px}.walk-layout .controls button{font-size:14px;padding:8px}.walk-layout .toolbar{display:flex}.walk-layout .question-line{font-size:15px}@media(max-width:850px){.walk-layout{grid-template-columns:1fr}.walk-layout>#walk-graph-host{position:static}}
.diagram .base{direction:ltr;unicode-bidi:isolate}p.dna{display:block;text-align:left}.walk-layout .graph-wrap{margin-bottom:14px}
.toolbar:has(#task){display:block;max-width:100%}.toolbar:has(#task) label{width:100%;max-width:310px}.toolbar #task{width:100%;min-width:0}

.pisga .science-explainer{width:620px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow:auto;padding:24px;line-height:1.65}
.science-explainer .explainer-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:15px}
.science-explainer .explainer-heading h2{font-size:24px;line-height:1.3;margin:0}
.science-explainer .close-explainer{flex:0 0 44px;min-width:44px;padding:4px;font-size:25px;line-height:1}
.science-explainer form{margin-top:18px}.science-explainer .note{margin-top:18px}
.science-card .explain-button{margin-top:12px;justify-self:start;align-self:end}
@media(max-width:600px){.pisga .science-explainer{padding:18px}.science-explainer .explainer-heading h2{font-size:21px}.science-card .explain-button{grid-column:1/-1}}

/* The graph is the workspace; creation, editing and discussion live in dialogs. */
.pisga.builder-page{padding-bottom:12px}
.builder-page .course-header{padding:12px 0;margin-bottom:10px}
.builder-page main{margin-top:0;padding-bottom:0}
.builder-page .course-back,.builder-page .eyebrow,.builder-page main>footer{display:none}
.builder-page main>header{margin:0 0 8px}
.builder-page h1{font-size:26px;margin:0}
.builder-page .lesson-tabs{margin:8px 0 12px;gap:8px}
.builder-page .lesson-tabs a{padding:6px 10px;font-size:14px}
.graph-workspace{border:3px solid var(--navy);background:#83d6ed;padding:12px;box-shadow:var(--shadow)}
.workspace-taskbar{display:flex;align-items:center;gap:14px;min-width:0}
.task-picker{flex:0 1 245px;min-width:0}.task-picker select{width:100%;font-size:14px!important;min-height:40px!important;padding:6px 9px!important}
.sr-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.workspace-taskbar .tiles{flex:1;gap:7px;margin:0;min-width:0}
.workspace-taskbar .fragment{font-size:17px;min-height:35px;padding:5px 8px;letter-spacing:0}
.workspace-rule{font-size:13px;color:var(--muted);margin:7px 0!important}
.workspace-toolbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:10px 0}
.workspace-toolbar button{font-size:14px!important;padding:7px 8px!important;min-height:40px!important}
.workspace-canvas{position:relative;overflow:hidden}
.workspace-canvas .graph-svg{height:clamp(220px,calc(100dvh - 390px),460px);aspect-ratio:auto}
.canvas-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;text-align:center;pointer-events:none;font-size:18px;line-height:1.8}
.canvas-empty span{font-size:14px;color:var(--muted)}
.workspace-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0}
.workspace-bottom .feedback{font-size:14px;padding:5px 0;margin:0!important;min-height:30px}
.workspace-bottom .note{font-size:12px;white-space:nowrap}
.workspace-save{font-size:11px;color:var(--muted);margin:0!important;min-height:15px}
.builder-footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:12px 0 0;font-size:14px}
.builder-footer a{min-height:32px;display:inline-flex;align-items:center}
.pisga .builder-dialog{width:570px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 36px);overflow:auto;padding:22px}
.builder-dialog .dialog-heading{display:flex;gap:15px;align-items:start;justify-content:space-between;margin-bottom:15px}
.builder-dialog .dialog-heading h2{font-size:23px;line-height:1.3;margin:0}
.dialog-heading>[data-close]{flex:0 0 42px;font-size:24px!important;padding:4px!important;min-width:42px}
.dialog-field{display:grid;gap:6px;margin:12px 0;min-width:0}
.dialog-field input,.dialog-field select,.dialog-field textarea{width:100%;min-width:0}
.dialog-field textarea{min-height:180px}
.dialog-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.dialog-actions .remove-item{margin-inline-start:auto;background:var(--coral)}
.tools-grid,.item-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tools-grid button,.item-list button{font-size:15px!important;min-width:0;overflow-wrap:anywhere;text-align:right}
.item-list{max-height:340px;overflow:auto;padding:5px}
.thinking-questions{padding-inline-start:25px;padding-inline-end:0}.thinking-questions li{margin:12px 0}
.edge-direction{margin:2px 0!important;overflow-wrap:anywhere;max-width:100%}
@media(max-width:700px){.workspace-taskbar{align-items:stretch;flex-direction:column;gap:8px}.task-picker{flex:auto}.workspace-taskbar .tiles{flex:auto}.workspace-canvas .graph-svg{height:clamp(230px,calc(100dvh - 420px),360px)}.workspace-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.workspace-toolbar button{font-size:13px!important}.workspace-bottom{align-items:start;flex-direction:column;gap:0}.workspace-bottom .note{margin:0!important}.workspace-rule{font-size:12px}.builder-page h1{font-size:24px}.graph-workspace{padding:9px}.builder-page .course-header{padding:12px 0}.builder-page .lesson-tabs a{padding:6px 8px;font-size:13px}.builder-footer{font-size:13px}.builder-page .lesson-tabs{gap:6px}}
@media(max-width:400px){.tools-grid,.item-list{grid-template-columns:1fr}.pisga .builder-dialog{padding:17px}.builder-dialog .dialog-heading h2{font-size:20px}.dialog-pair{gap:10px}}

/* Keep the graph readable while the item editor is open. */
.builder-page #item-dialog::backdrop{background:#15274b33}
.item-drag-handle{cursor:grab;touch-action:none;user-select:none}
.item-drag-handle.dragging{cursor:grabbing}
.item-drag-handle>[data-close]{cursor:pointer;touch-action:manipulation}
.item-drag-handle .drag-hint{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:5px}
.item-drag-handle h2:focus-visible{outline:3px dashed var(--navy);outline-offset:4px}
