
.track-card,.module-card,.mission-card{position:relative;transition:transform .2s,box-shadow .2s}.track-card:hover,.module-card:hover,.mission-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.module-card{border-top:8px solid var(--accent,var(--yellow))}.module-icon{font-size:2rem}.progress{height:10px;background:#dfe4e8;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#72dfa0);width:var(--progress,0%)}.dashboard-layout{display:grid;grid-template-columns:280px 1fr;gap:24px}.agent-card{background:linear-gradient(145deg,var(--navy),#193756);color:#fff;border-radius:22px;padding:24px;box-shadow:var(--shadow-lg);position:sticky;top:110px;height:max-content}.agent-avatar{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);color:var(--navy);font-size:2.5rem;margin-bottom:16px}.module-map{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mission-list{display:grid;gap:12px}.mission-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px}.mission-number{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:var(--font-mono)}.mission-row.completed .mission-number{background:var(--green);color:var(--navy)}.mission-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.mission-page .legacy-content>.hero{border-radius:22px;padding:26px}.mission-page .legacy-content section{margin:24px 0}.mission-page .legacy-content .panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.mission-page .legacy-content .expert{border-left:6px solid var(--red)}.mission-page .legacy-content .safe{border-left:6px solid var(--green)}.mission-page .legacy-content .signal{border-left:6px solid var(--yellow)}.mission-page .carousel-card{display:none}.mission-page .carousel-card.active{display:block}.mission-page .controls{display:flex;gap:10px}.mission-page .choice{display:block;width:100%;text-align:left;margin:8px 0}.mission-page .feedback{margin-top:10px;background:#eef3f7;border-radius:10px;padding:12px}.mission-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.mission-aside{position:sticky;top:112px;height:max-content}.mission-aside .card-body>*:first-child{margin-top:0}.mission-complete{background:linear-gradient(145deg,#ecfff3,#fff);border:2px solid var(--green);padding:22px;border-radius:18px}.reflection-box textarea{width:100%;min-height:120px;padding:12px;border:2px solid var(--slate);border-radius:12px}.aura-panel{background:#fff;border:3px solid var(--yellow);border-radius:18px;overflow:hidden}.aura-head{background:var(--navy);color:#fff;padding:14px 16px}.aura-body{padding:16px}.aura-prompts{display:flex;flex-wrap:wrap;gap:8px}.aura-prompts button{border:1px solid var(--slate);background:#fff;border-radius:999px;padding:8px 11px}.aura-chat{margin-top:14px}.aura-chat textarea{width:100%;min-height:80px}.aura-answer{margin-top:12px;background:#f0f4f7;padding:12px;border-radius:10px}.quiz .q{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}.quiz label{display:block;padding:7px;border-radius:8px}.quiz label:has(input:focus-visible){outline:3px solid var(--yellow)}.certificate{background:#fff;border:14px double var(--navy);padding:44px;text-align:center;aspect-ratio:1.414/1;display:grid;place-items:center}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.setting-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.source-list li{margin:8px 0}.legal-copy{max-width:78ch}.legal-copy h2{margin-top:1.6em}.legal-copy table{width:100%;border-collapse:collapse}.legal-copy th,.legal-copy td{border:1px solid var(--line);padding:10px;text-align:left}.audio-controls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.audio-controls button{border:0;border-radius:10px;padding:9px 12px;background:var(--navy);color:#fff}.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.badge-card{text-align:center;padding:20px;background:#fff;border:1px solid var(--line);border-radius:18px}.badge-icon{font-size:2.6rem;filter:grayscale(1);opacity:.45}.badge-card.earned .badge-icon{filter:none;opacity:1}.badge-card.earned{border-color:var(--green);background:#effff5}.offline-banner{background:#fff8d8;padding:10px 16px;text-align:center;border-bottom:2px solid var(--yellow)}
@media(max-width:980px){.dashboard-layout,.mission-shell{grid-template-columns:1fr}.agent-card,.mission-aside{position:static}.module-map{grid-template-columns:1fr 1fr}.badge-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.module-map,.settings-grid,.badge-grid{grid-template-columns:1fr}.mission-row{grid-template-columns:auto 1fr}.mission-row .btn{grid-column:1/-1}}
.mission-track-image{display:block;margin-bottom:14px}.mission-track-image img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}

/* Visual Metrovale course map */
.city-map-section{scroll-margin-top:110px}.map-heading{align-items:start}.city-map{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"foundations systems" "wellbeing hub" "practice future";gap:22px;padding:34px;border:1px solid var(--line);border-radius:28px;background:radial-gradient(circle at 50% 50%,rgba(232,197,71,.18),transparent 26%),linear-gradient(145deg,#f9fcff,#fff9e9);box-shadow:var(--shadow-lg);overflow:hidden}.city-map::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(107,140,174,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(107,140,174,.08) 1px,transparent 1px);background-size:36px 36px;pointer-events:none}.city-map-lines{position:absolute;inset:15%;border:3px dashed rgba(10,22,40,.16);border-radius:48%;transform:rotate(-4deg);pointer-events:none}.map-hub{grid-area:hub;align-self:center;justify-self:center;z-index:2;width:190px;min-height:190px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,var(--navy),#173c64);color:#fff;border:8px solid #fff;box-shadow:0 18px 40px #0a162840}.hub-icon{font-size:3rem}.map-hub strong{font-family:var(--font-display);font-size:2rem;letter-spacing:.04em}.map-hub small{color:var(--yellow);font-weight:800}.map-zone{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr;gap:14px;padding:20px;border:2px solid var(--zone);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.map-zone:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.map-zone h3{margin:.35rem 0}.map-zone p{color:var(--muted);margin:.35rem 0 .8rem}.zone-number{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--zone);color:#fff;font-weight:900;font-family:var(--font-mono)}.zone-links{display:flex;flex-wrap:wrap;gap:7px}.zone-links a{font-size:.82rem;text-decoration:none;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--zone) 12%,white);border:1px solid color-mix(in srgb,var(--zone) 35%,white)}.zone-links a:hover,.zone-links a:focus-visible{background:var(--zone);color:#fff}.zone-foundations{grid-area:foundations;--zone:#D29C17}.zone-systems{grid-area:systems;--zone:#527DA6}.zone-wellbeing{grid-area:wellbeing;--zone:#268F58}.zone-practice{grid-area:practice;--zone:#6D55B4}.zone-future{grid-area:future;--zone:#D46F25}.map-key{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:16px;color:var(--muted);font-size:.9rem}.map-key span{display:flex;align-items:center;gap:7px}.key-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.key-foundations{background:#D29C17}.key-systems{background:#527DA6}.key-wellbeing{background:#268F58}.key-practice{background:#6D55B4}.key-future{background:#D46F25}.module-directory{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.module-directory>summary{cursor:pointer;padding:18px 22px;font-weight:900;background:linear-gradient(135deg,var(--navy),#173c64);color:#fff}.module-directory[open]>summary{border-bottom:5px solid var(--yellow)}.module-directory>.grid{padding:22px}
@media(max-width:900px){.city-map{grid-template-columns:1fr;grid-template-areas:"hub" "foundations" "systems" "wellbeing" "practice" "future"}.city-map-lines{display:none}.map-hub{width:160px;min-height:160px}.map-zone{grid-template-columns:1fr}.zone-number{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.map-zone{transition:none}}

/* v6: true interactive Metrovale city map */
.metrovale-map-section{scroll-margin-top:110px}
.map-filter-bar{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 16px}
.map-filter{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer;min-height:44px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.map-filter:hover,.map-filter:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow)}
.map-filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.map-filter.foundations.active{background:#A97900;border-color:#A97900}.map-filter.systems.active{background:#456A9D;border-color:#456A9D}.map-filter.wellbeing.active{background:#217C53;border-color:#217C53}.map-filter.practice.active{background:#5A429E;border-color:#5A429E}.map-filter.future.active{background:#B65C1C;border-color:#B65C1C}
.metro-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:stretch}
.metro-map-frame{position:relative;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:26px;padding:12px;box-shadow:var(--shadow-lg)}
.metro-map-frame:focus-visible{outline:4px solid var(--yellow);outline-offset:4px}
.metro-map-svg{display:block;width:100%;min-width:760px;height:auto;border-radius:20px}
.map-instruction{margin:10px 8px 2px;color:var(--muted);font-size:.92rem}
.city-river{fill:none;stroke:#8DD8EC;stroke-width:62;stroke-linecap:round;opacity:.78}
.city-river+path{pointer-events:none}
.city-road{fill:none;stroke:#fff;stroke-width:18;stroke-linecap:round;stroke-dasharray:4 12;opacity:.94;filter:drop-shadow(0 2px 2px rgba(10,22,40,.12))}
.road-two{stroke-width:14;opacity:.8}
.course-route{fill:none;stroke:#0A1628;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 13;opacity:.52;animation:routeMove 18s linear infinite}
@keyframes routeMove{to{stroke-dashoffset:-150}}
.district-shape path{stroke-width:4;opacity:.82;transition:opacity .2s ease,filter .2s ease}
.district-shape text{font-family:var(--font-mono);font-size:17px;font-weight:900;letter-spacing:.06em;fill:var(--navy);opacity:.78}
.foundations-shape path{fill:#FFF0A9;stroke:#C89100}.systems-shape path{fill:#DCE8FF;stroke:#5275AA}.wellbeing-shape path{fill:#DDF7E9;stroke:#278B5D}.practice-shape path{fill:#EAE2FF;stroke:#6850AB}.future-shape path{fill:#FFE4CF;stroke:#C96720}
.metro-hub circle{fill:#0A1628;stroke:#E8C547;stroke-width:10;filter:url(#pinShadow)}
.metro-hub path,.metro-hub rect{fill:#fff}.metro-hub text{font-family:var(--font-mono);font-size:15px;font-weight:900;fill:#0A1628;letter-spacing:.05em}
.metro-pin{cursor:pointer;outline:none}
.metro-pin .pin-core{filter:url(#pinShadow);stroke:#fff;stroke-width:4;transition:transform .18s ease,filter .18s ease,opacity .18s ease;transform-box:fill-box;transform-origin:center}
.metro-pin .pin-halo{fill:transparent;stroke-width:4;opacity:.22;transition:opacity .18s ease,transform .18s ease;transform-box:fill-box;transform-origin:center}
.metro-pin text{font-family:var(--font-mono);font-size:13px;font-weight:900;fill:#fff;pointer-events:none}
.pin-foundations .pin-core{fill:#A97900}.pin-foundations .pin-halo{stroke:#A97900}.pin-systems .pin-core{fill:#456A9D}.pin-systems .pin-halo{stroke:#456A9D}.pin-wellbeing .pin-core{fill:#217C53}.pin-wellbeing .pin-halo{stroke:#217C53}.pin-practice .pin-core{fill:#5A429E}.pin-practice .pin-halo{stroke:#5A429E}.pin-future .pin-core{fill:#B65C1C}.pin-future .pin-halo{stroke:#B65C1C}
.metro-pin:hover .pin-core,.metro-pin:focus .pin-core,.metro-pin.is-active .pin-core{transform:scale(1.32);filter:url(#pinShadow) brightness(1.12)}
.metro-pin:hover .pin-halo,.metro-pin:focus .pin-halo,.metro-pin.is-active .pin-halo{opacity:.8;transform:scale(1.35)}
.metro-pin:focus-visible .pin-halo{stroke:#0A1628;stroke-width:6;opacity:1}
.metro-pin.is-muted{opacity:.16;pointer-events:none}
.district-shape.is-muted{opacity:.22}.district-shape.is-active path{opacity:1;filter:drop-shadow(0 8px 14px rgba(10,22,40,.20))}
.map-module-panel{position:sticky;top:112px;align-self:start;background:linear-gradient(160deg,#0A1628,#173C64);color:#fff;border-radius:24px;padding:24px;box-shadow:var(--shadow-lg);min-height:300px;display:flex;flex-direction:column}
.map-module-panel h3{font-size:1.65rem;margin-top:14px}.map-module-panel p{color:#E5EDF6}.map-module-panel .tag{background:rgba(232,197,71,.18);color:#FFE98E;border-color:rgba(232,197,71,.38);width:max-content}
.map-panel-meta{margin:auto 0 16px;padding:13px 0;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}
.map-panel-meta span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#BFD0E3}.map-panel-meta strong{display:block;margin-top:3px}
.map-module-panel .btn{width:100%}
.district-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.district-card{border-radius:18px;padding:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-top:7px solid var(--district)}
.district-foundations{--district:#D8A51D}.district-systems{--district:#5D7FB8}.district-wellbeing{--district:#2E9B68}.district-practice{--district:#7258B8}.district-future{--district:#D7762D}
.district-card-head{display:flex;gap:10px;align-items:flex-start}.district-symbol{width:14px;height:14px;border-radius:50%;background:var(--district);margin-top:7px;flex:none}.district-card h3{font-size:1rem;margin:.4rem 0}.district-card p{font-size:.87rem;color:var(--muted)}
.district-module-links{display:grid;gap:6px}.district-module-links a{display:block;text-decoration:none;border-radius:9px;padding:7px 8px;background:#F5F7F9;font-size:.8rem}.district-module-links a:hover,.district-module-links a:focus-visible{background:var(--district);color:#fff}.district-module-links strong{font-family:var(--font-mono);margin-right:4px}
.district-card.is-muted{opacity:.35}.district-card.is-active{outline:3px solid var(--district);outline-offset:2px}
@media(max-width:1100px){.metro-map-layout{grid-template-columns:1fr}.map-module-panel{position:static;min-height:auto}.district-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.map-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.map-filter:first-child{grid-column:1/-1}.metro-map-frame{padding:6px}.metro-map-svg{min-width:680px}.district-cards{grid-template-columns:1fr}.map-module-panel{padding:20px}}
@media(prefers-reduced-motion:reduce){.course-route{animation:none}.metro-pin .pin-core,.metro-pin .pin-halo,.map-filter{transition:none}}
