/* Python Quest: usable exploration interface */
:root{--quest-ink:#173e37;--quest-muted:#4e6a60;--quest-line:#c6d7cc;--quest-accent:#146650;--quest-lime:#cfed8e;--quest-panel:#fff;--quest-night:#103c35}
body{background-color:#edf2ed;background-image:linear-gradient(#1a574608 1px,transparent 1px),linear-gradient(90deg,#1a574608 1px,transparent 1px);background-size:32px 32px;color:var(--quest-ink)}
body>header:has(.pq-brand){display:grid;grid-template-columns:250px minmax(0,1fr);gap:0 20px;align-items:center;padding:8px max(20px,calc((100vw - 1280px)/2)) 0;border-bottom:2px solid #bad3bf;background:#fbfdf9;min-height:0;height:auto}
header .pq-brand{grid-column:1;grid-row:1}.pq-brand img{width:230px}#identity{grid-column:2;grid-row:1;justify-self:end;font-size:12px;white-space:normal}#identity button{min-height:38px}
header #navigation{grid-column:1/-1;grid-row:2;display:flex;gap:4px;overflow-x:auto;max-width:100%;padding:8px 0 0;scrollbar-width:thin}#navigation:empty{display:none}#navigation a{display:flex;flex-direction:column;flex:0 0 auto;gap:2px;padding:8px 16px 10px;border-bottom:3px solid transparent;min-height:51px;border-radius:8px 8px 0 0;font-size:13px}#navigation a small{font-size:9px;letter-spacing:.11em;color:#476858}#navigation a[aria-current=page]{border-bottom-color:#146650;background:#e3efdc;color:#104c3b}#navigation a:hover{background:#edf5e7}
main{max-width:1280px;margin:24px auto;padding:0 24px}h1{font-size:28px;line-height:1.4}h2{font-size:20px}.eyebrow{font-size:10px;letter-spacing:.14em;color:#416b59}.button,button{min-height:44px;border-radius:10px}.primary{background:#146650;border:1px solid #124f41;box-shadow:0 3px 0 #0c4335}.primary:hover{background:#0d5946}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #177f9c;outline-offset:3px}
.base-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.base-heading h1{margin:6px 0}.base-console{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:18px}.base-mission{border:1px solid #abc8b7;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 5px 0 #d6e1d5}.console-label{background:#123f35;color:#e9f4dc;padding:11px 20px;font-size:11px;letter-spacing:.06em;display:flex;justify-content:space-between;gap:12px}.console-label span:last-child{color:#d0ec91}.base-mission-body{padding:22px 24px}.base-mission-body h2{font-size:26px;line-height:1.4;margin:8px 0}.base-mission-body p{margin:10px 0 16px}.base-mission-body .primary{padding:13px 24px}.base-mission-body .check-note{font-size:12px;margin:12px 0 0}.base-guide-panel{padding:18px;border:1px solid #b9cdbb;border-radius:16px;background:linear-gradient(145deg,#e0edd7,#f4f8ed);position:relative}.explorer-guide{display:flex;align-items:center;gap:12px;min-width:0}.explorer-guide img{width:88px;height:104px;object-fit:contain;flex-shrink:0}.explorer-guide small{font-size:9px;letter-spacing:.08em;color:#466759}.explorer-guide p{font-size:13px;line-height:1.8;margin:6px 0}.explorer-guide.compact{gap:9px;padding:10px 14px;background:#eff5e9;border:1px solid #d0dec9;border-radius:10px;margin:12px 0}.explorer-guide.compact img{width:44px;height:54px}.explorer-guide.compact p{margin:3px 0;font-size:12px}.base-stats{display:grid;grid-template-columns:1fr 1fr;margin:16px 0 10px;gap:12px}.base-stats>div{border-left:2px solid #91b783;padding-left:12px}.base-stats strong{font-size:28px;display:block;line-height:1.2}.base-stats strong small{font-size:13px}.base-stats span{font-size:11px}.base-destinations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.base-destinations>a{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #becfbe;border-radius:12px;background:#fff;min-width:0}.base-destinations>a:hover{background:#f3f9ec;border-color:#146650}.base-destinations strong,.base-destinations span,.base-destinations small{display:block}.base-destinations small{font-size:9px;letter-spacing:.1em;color:#55725e}.base-destinations strong{font-size:17px;margin:3px 0}.base-destinations span{font-size:11px;color:#526c60}.base-destinations b{margin-left:auto}.base-current h2{font-size:18px;margin:8px 0 12px}.base-records{margin:20px 0;border-top:1px solid #c1d4c6;padding:16px 0}.base-records>summary{font-size:14px;font-weight:700;cursor:pointer;min-height:44px;padding:10px 0}
.path-list{position:relative;padding-left:20px;border-left:2px solid #b8cbbd;margin-left:20px;gap:10px}.path-item{position:relative;padding:14px 18px;border-radius:10px;box-shadow:none!important;gap:12px}.path-list .path-item:before{content:'';position:absolute;left:-27px;width:10px;height:10px;background:#f4f8ef;border:2px solid #92af9d;border-radius:50%}.path-list .route-complete:before{background:#b9e679;border-color:#317d57}.path-item .number{width:36px;height:36px;border-radius:10px;background:#e8eee4;color:#345b49;font-size:14px;flex:0 0 36px}.path-item.route-complete{border-color:#85b397;background:#eff8e8}.path-item.route-started{border-left:4px solid #16746c}.path-item .status{margin-left:auto;text-align:right;font-size:11px;white-space:nowrap}.path-item .status small{display:block;font-size:11px}.path-item>div{min-width:0}.path-item strong{font-size:15px}.path-item small{font-size:12px}.map-phase{border:1px solid #bfd2c2;background:#fafff8;border-radius:12px;padding:16px;margin:16px 0}.map-phase>summary{cursor:pointer;font-weight:700;min-height:44px}.chapter-banner{background:#e3eedb;border:1px solid #b7cdb7;border-radius:14px;padding:18px}.mission{border-radius:10px}.mission:hover{border-color:#146650}
body[data-quest-view=terminal] main{max-width:1440px;margin-top:16px}.studio-title h1{font-size:24px;margin:8px 0}.studio-title .row{margin-top:6px}.mission-brief{padding:14px 18px!important;background:#f9fcf4;border:1px solid #bdd1be;border-left:4px solid #16766a;border-radius:12px}.mission-goal{font-size:16px!important;margin:6px 0!important}.lesson-start{display:inline-block;font-size:12px;margin:6px 0}.mission-brief details{font-size:13px}.mission-brief details>summary{min-height:36px;padding:6px 0;cursor:pointer}.workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:16px;align-items:start;margin-top:16px}.pane{min-width:0;border:1px solid #a9c2b2;border-radius:12px;overflow:hidden;background:#fff}.pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#133e35;color:#eff7e9;padding:12px 16px;font-size:12px}.pane-head small,.pane-head .save-state{color:#d6edbd}.pane-head a{color:#ddf4ab;text-decoration:underline;min-height:24px}.pane>.explorer-guide{margin:12px}/* Keep the gutter, editor and following controls in the same layout flow. */
.code-wrap{background:#fbfdf9;height:clamp(290px,41vh,440px);min-height:290px;overflow:hidden}.code-wrap .numbers{flex:0 0 auto;height:100%;font:16px/1.7 ui-monospace,Consolas,monospace;padding-top:18px;padding-bottom:18px}.code-wrap textarea,#editor{font:16px/1.7 ui-monospace,Consolas,monospace;min-height:0;height:100%;margin:0;box-sizing:border-box;background:#fbfdf9;color:#14392f;tab-size:4}.pane .controls{background:#edf4e7;padding:12px;display:flex;gap:10px;flex-wrap:wrap;margin:0;border-top:1px solid #d0dfcb}.pane .controls button{min-height:44px}.pane .output{min-height:150px;max-height:360px;overflow:auto;margin:12px;background:#f4f8ef;color:#183d31;border:1px solid #d4e1cc;border-radius:8px;font:15px/1.7 ui-monospace,Consolas,monospace}.pane>details,.pane>.feedback{margin:12px}.extras{margin-top:16px}.feedback.success{background:#edf7e3;border-color:#9fc38e}.quest-gate-open{height:38px;margin:2px 0}.quest-gate-open i{font-size:28px}.practice-win{font-size:19px}.practice-win>span{font-size:28px}
.card,.skill-card,.stat-card{border-radius:14px;border-color:#c2d4c1}.pq-footer{margin-top:28px;font-size:11px}.login{margin:32px auto;background:#fcfef8;border-top:4px solid #146650}.login h1{font-size:26px}.login .pq-login-symbol{width:58px;height:58px}.login:before{content:'';display:block;float:right;width:105px;height:132px;background:url('assets/quest-helper.png') center/contain no-repeat}.quiz pre{border-left:3px solid #146650}.adventure-home{border-color:#a9c8ac}.title-intro{background:#e5efdd;border-radius:14px}.victory{border-width:1px;border-color:#acc98c;background:#eff7e3}
@media(max-width:1000px){#navigation a{padding:8px 12px}.base-console{grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.base-destinations>a{padding:14px;gap:8px}.base-destinations span{font-size:11px}.base-destinations .quest-unit-icon{width:26px;flex-basis:26px}}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr)}.base-console{grid-template-columns:minmax(0,1fr)}.base-guide-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px}.base-guide-panel .progress{display:none}.base-stats{margin:8px 0}.explorer-guide img{width:58px;height:70px}.base-destinations{gap:10px}.base-destinations>a{flex-wrap:wrap}.base-destinations span{display:none}.pane .output{max-height:260px}body>header:has(.pq-brand){padding-left:16px;padding-right:16px}.base-heading h1{font-size:24px}}
@media(max-width:600px){main{padding:0 14px}.base-heading{align-items:flex-start;flex-direction:column;gap:8px}.base-heading .button{font-size:12px}.base-mission-body{padding:18px}.base-mission-body h2{font-size:22px}.base-guide-panel{display:block}.base-guide-panel .explorer-guide{align-items:center}.base-stats{margin:12px 0 0}.base-destinations{grid-template-columns:1fr;gap:8px}.base-destinations>a{flex-wrap:nowrap}.base-destinations span{display:block}.base-destinations strong{font-size:15px}.base-destinations a>div{display:grid;grid-template-columns:auto 1fr;column-gap:12px}.base-destinations a>div small{grid-column:1/-1}.path-list{padding-left:14px;margin-left:5px}.path-list .path-item:before{left:-21px}.path-item{padding:12px 10px}.path-item .quest-unit-icon{display:none}.path-item strong{font-size:13px}.path-item .number{width:28px;height:28px;flex-basis:28px}header .pq-brand img{width:180px}body>header:has(.pq-brand){grid-template-columns:minmax(0,1fr);padding-top:8px}#identity{grid-column:1;grid-row:2;justify-self:start;margin:8px 0}header #navigation{grid-row:3}#identity:empty{display:none}.pane-head{flex-wrap:wrap}.studio-title h1{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* v2.23: shared editor metrics beat both portal and theme selectors. */
.workspace .code-wrap textarea#editor,.workspace .code-wrap .numbers{font:17px/1.65 ui-monospace,Consolas,monospace;padding-top:14px;padding-bottom:14px;height:100%;min-height:0;margin:0}
.workspace .code-wrap .numbers{flex:0 0 44px;overflow:hidden;user-select:none}
.workspace .code-wrap{height:clamp(180px,27vh,290px);min-height:180px;overflow:hidden}
body[data-quest-view=terminal] main{margin-top:10px}
.studio-title{margin-bottom:10px}.studio-title h1{margin:4px 0;font-size:22px}
.mission-brief{padding:10px 14px!important}.mission-brief details{padding:4px 0}.mission-brief details>summary{min-height:32px;padding:4px 0}.mission-brief .lesson-start{margin:3px 0}.mission-brief .mission-goal{margin:3px 0!important}
.mission-brief>.eyebrow{display:none}.workspace{margin-top:12px}.pane-head{padding:9px 14px}
.pane>.explorer-guide.compact{padding:6px 10px;margin:8px}.pane>.explorer-guide.compact img{width:30px;height:36px}.pane .output{min-height:100px;max-height:240px;margin:8px}
.pane .controls{padding:8px 10px}.pane .controls button:disabled{cursor:default;opacity:.45;box-shadow:none}
.term-note{display:flex;gap:10px;align-items:baseline;font-size:13px;line-height:1.6;padding:4px 0}.term-note>code{flex-shrink:0;background:#e6efdf;border-radius:4px;padding:2px 6px;white-space:pre;font-size:15px}.term-more .term-note{margin:6px 0}.term-note strong{font-weight:600}.change-example{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin:6px 0}.change-example code{font-size:16px;color:#144e3b}.hint-panel{padding:10px 12px;border-top:1px solid #d0dfcb}.hint-panel ol:empty{display:none}.hint-panel li{margin:8px 0;font-size:14px;line-height:1.7}.hint-panel li[hidden],#input-panel[hidden]{display:none!important}.hint-panel ol:has(li[hidden]:first-child){margin:0}.map-current{font-size:14px;line-height:1.7;background:#e5efdc;padding:12px;border-radius:8px}
@media(max-width:850px){.workspace .code-wrap{height:220px}.term-note{flex-wrap:wrap;gap:3px}.workspace .output{min-height:90px}}
@media(max-height:800px) and (min-width:851px){body>header:has(.pq-brand){padding-top:4px}header .pq-brand img{width:190px}header #navigation{padding-top:2px}#navigation a{min-height:40px;padding-top:5px;padding-bottom:5px}.workspace .code-wrap{height:180px}}

.mission-brief .mission-support{display:flex;flex-wrap:wrap;gap:0 16px;margin-top:4px}.mission-support>details{flex:1 1 220px;margin:0!important}.mission-support>details[open]{flex-basis:100%;order:1}.mission-brief>.term-more{margin-top:4px}.mission-brief .term-more>summary{font-size:12px}.mission-brief{margin-bottom:10px}.term-note{padding:2px 0}

@media(max-height:800px) and (min-width:851px){.workspace .code-wrap{height:160px;min-height:160px}body[data-quest-view=terminal] .pq-brand>span{display:none}}
