:root{--atlas-navy:#062a33;--atlas-deep:#073d48;--atlas-mint:#6ee7bc;--atlas-gold:#f6bd5d;--atlas-cream:#fbf6eb;--atlas-ink:#0b2b36}.game-atlas{min-height:calc(100vh - 84px);background:radial-gradient(circle at 48% 30%,#155565 0,#083946 34%,#062a33 78%);color:#eefcf7;padding:22px 28px 28px;overflow-x:hidden}.atlas-title{max-width:1500px;margin:auto;display:flex;justify-content:space-between;align-items:end}.atlas-title span,.panel-kicker,.preflight-route span{font:700 12px/1.2 DM Mono;letter-spacing:.18em;color:var(--atlas-mint)}.atlas-title h1,.preflight-route h1{font-size:clamp(28px,3vw,48px);margin:3px 0}.atlas-title p{color:#b8d0ce}.atlas-layout{max-width:1500px;margin:18px auto 0;display:grid;grid-template-columns:230px minmax(470px,1fr) 320px;gap:16px;min-height:610px}.pilot-card,.atlas-mission-panel,.preflight-panel{background:rgba(251,246,235,.97);color:var(--atlas-ink);border:1px solid #b9d9d0;border-radius:18px;padding:20px;box-shadow:0 18px 45px #001b2280}.pilot-card{align-self:start;display:grid;grid-template-columns:52px 1fr;gap:12px}.pilot-avatar{width:50px;height:50px;border-radius:50%;background:var(--atlas-gold);display:grid;place-items:center;font-size:24px;font-weight:800}.pilot-card h2{font-size:16px;margin:3px 0;overflow-wrap:anywhere}.pilot-card small{font:700 12px DM Mono;letter-spacing:.12em;color:#55716f}.rank-stripe{color:var(--atlas-gold);font-size:22px}.pilot-card dl{grid-column:1/-1;margin:14px 0;display:grid;gap:8px}.pilot-card dl div{display:flex;justify-content:space-between;border-top:1px solid #d9e2db;padding-top:10px}.pilot-card dt{font:700 12px DM Mono}.pilot-card dd{font-weight:800}.pilot-card .aircraft-reward{grid-column:1/-1;margin:0;background:#e8f7f1;border-radius:12px;padding:12px;display:flex;gap:12px}.aircraft-reward>span{font-size:30px;color:#128f6a}.aircraft-reward strong{display:block;font-size:13px}.atlas-map{position:relative;min-height:610px;border:1px solid #39717c;border-radius:20px;overflow:hidden;background:radial-gradient(circle,#18586644 1px,transparent 1px);background-size:24px 24px}.map-grid{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,#84cfbd15 50%,transparent 50.2%),linear-gradient(transparent 49.8%,#84cfbd15 50%,transparent 50.2%)}.world-lines{position:absolute;inset:0;width:100%;height:100%}.continent{fill:#0d5963;stroke:#287b7d;stroke-width:2}.continent.europe{fill:#104e5a}.route{fill:none;stroke-width:4;stroke-linecap:round}.route.available{stroke:var(--gold);stroke-dasharray:10 11;animation:routePulse 2s linear infinite}.route.locked{stroke:#69868a;stroke-dasharray:5 12}.atlas-mission-panel{align-self:start}.atlas-mission-panel h2{font:800 26px Manrope,system-ui,sans-serif;color:#128f6a;margin:12px 0 2px}.atlas-mission-panel .destination{font-size:25px;font-weight:800;margin-top:0;margin-bottom:14px}.route-progress{margin:22px 0}.route-progress>span,.stars span{font:700 12px DM Mono;letter-spacing:.1em}.route-progress>strong{float:right}.route-progress div{height:8px;background:#dce2df;border-radius:9px;margin-top:8px}.route-progress i{display:block;width:0;height:100%;background:var(--gold)}.stars{display:flex;justify-content:space-between;align-items:center;background:#fff5dd;padding:10px;border-radius:9px}.stars b{font-size:25px;color:#c18a2c}.skill-chips{display:flex;gap:6px;flex-wrap:wrap}.skill-chips span,.command-preview code{border:1px solid #a9c9c0;border-radius:99px;padding:5px 8px;font:700 11px DM Mono}.primary-flight-action{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin-top:22px;padding:10px 14px;border-radius:9px;background:#0a956b;color:white;text-decoration:none;font-weight:800}.atlas-route-list{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.preflight-screen{padding-top:18px}.back-atlas{color:#d7ece6;display:inline-flex;min-height:44px;align-items:center}.preflight-route{max-width:1450px;margin:4px auto 12px}.preflight-route p{margin:0;color:#b8d0ce}.preflight-layout{max-width:1450px;margin:auto;display:grid;grid-template-columns:minmax(480px,1fr) 430px;gap:18px}.preflight-map{min-height:655px;position:relative;overflow:hidden;border-radius:20px;border:1px solid #3a7180;background:radial-gradient(circle at 30% 55%,#176372,#073843 55%,#062a33)}.preflight-radar{position:absolute;width:500px;height:500px;border:1px solid #71d5b64d;border-radius:50%;left:-80px;top:60px;box-shadow:0 0 0 80px #6ee7bc0a,0 0 0 160px #6ee7bc0a}.preflight-plane{position:absolute;left:22%;top:47%;font-size:62px;color:var(--gold);filter:drop-shadow(0 0 14px #f6bd5d88)}.preflight-plane span{display:block;font:800 12px DM Mono;background:var(--gold);color:#092e36;padding:7px;border-radius:6px}.preflight-destination{position:absolute;right:18%;top:30%;display:grid;color:var(--mint);text-align:center;font-size:35px}.preflight-destination b{font:800 24px DM Mono}.preflight-destination span{font-size:13px}.preflight-line{position:absolute;left:30%;top:50%;width:48%;border-top:3px dashed #76cdb1;transform:rotate(-18deg);transform-origin:left}.preflight-map>p{position:absolute;bottom:25px;left:25px;color:#b8d0ce}.preflight-panel{padding:22px;max-height:655px;overflow:auto;display:flex;flex-direction:column}.preflight-panel .primary-flight-action{position:sticky;bottom:-22px;margin-top:auto;margin-left:-22px;margin-right:-22px;margin-bottom:-22px;padding:20px 22px;border-radius:0 0 18px 18px;box-shadow:0 -10px 16px -4px #00000030}.preflight-panel h2{font-size:30px;margin:8px 0 14px}.mission-objective{border-left:4px solid var(--gold);padding:9px 13px;background:#fff9ec}.preflight-panel ol{padding:0;list-style:none}.preflight-panel li{display:grid;grid-template-columns:30px 1fr;gap:8px;margin:9px 0;align-items:start}.preflight-panel li i{font-style:normal;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#d8f7eb;color:#076d50;font-weight:800}.star-objectives,.command-preview{display:grid;gap:6px;background:#eaf7f2;padding:12px;border-radius:10px;margin:12px 0}.command-preview{grid-template-columns:1fr 1fr}.command-preview b{grid-column:1/-1;font:700 10px DM Mono}.command-preview code{border-radius:5px;background:white}.preflight-state{display:flex;justify-content:space-between;font:800 13px DM Mono}
@keyframes routePulse{to{stroke-dashoffset:-42}}
.route.completed{stroke:var(--atlas-mint)}
@media(min-width:721px) and (max-height:800px){.atlas-layout{min-height:0}.atlas-map{height:calc(100vh - 205px);min-height:480px}.game-atlas{padding-top:14px}.atlas-title h1{font-size:34px}.atlas-layout{margin-top:10px}.preflight-map,.preflight-panel{max-height:calc(100vh - 260px);min-height:380px}}
@media(max-width:1100px){.atlas-layout{grid-template-columns:190px 1fr}.atlas-mission-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.atlas-mission-panel .primary-flight-action{grid-column:1/-1}.preflight-layout{grid-template-columns:1fr 380px}}
@media(max-width:720px){.game-atlas{padding:16px 12px}.atlas-title{align-items:start}.atlas-title p{display:none}.atlas-layout{display:flex;flex-direction:column;min-height:0}.pilot-card{order:2}.atlas-map{min-height:430px;order:1}.atlas-mission-panel{order:3;display:block;border-radius:18px 18px 0 0}.preflight-layout{display:flex;flex-direction:column}.preflight-map{min-height:350px}.preflight-panel{max-height:none}.topbar{min-height:70px}.primary-flight-action,.back-atlas{min-height:44px}.command-preview{grid-template-columns:1fr}.preflight-plane{left:18%;top:52%}.preflight-destination{right:12%;top:25%}}
@media(prefers-reduced-motion:reduce){.route.available{animation:none}}

/* Atlas cartográfico aprovado: mapa é o palco, painéis são instrumentos. */
.game-atlas{padding:0;background:#032833;min-height:calc(100dvh - 84px)}
.atlas-title{height:72px;max-width:none;padding:0 28px;border-bottom:1px solid #6e958f;align-items:center;background:#042832}
.atlas-title h1{display:inline;font:800 18px/1.2 Arial,sans-serif;letter-spacing:.14em;margin-left:20px}.atlas-title>div:first-child span{font:700 11px/1.2 DM Mono;color:var(--atlas-mint);letter-spacing:.15em}.campaign-progress{width:360px}.campaign-progress span{display:block;color:#eaf7f3;letter-spacing:0;font:500 12px Manrope,system-ui,sans-serif}.campaign-progress i{display:block;height:2px;background:#557b78;margin-top:10px;position:relative}.campaign-progress i b{display:block;height:2px;background:var(--atlas-mint)}.campaign-progress i .dot{position:absolute;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.campaign-progress i .dot:before{content:'';width:6px;height:6px;border-radius:50%;background:#042832;border:2px solid #557b78}.campaign-progress i .dot.done:before{border-color:var(--atlas-mint);background:var(--atlas-mint)}.campaign-progress i a.dot{cursor:pointer}.campaign-progress i a.dot:hover:before,.campaign-progress i a.dot:focus-visible:before{border-color:#fff;background:#fff}.campaign-progress i a.dot:focus-visible{outline:2px solid var(--atlas-mint);outline-offset:1px;border-radius:50%}
.route-history{max-width:1500px;margin:0 auto;padding:20px 28px 28px;background:var(--atlas-navy)}.route-history h2{font:700 12px/1.2 DM Mono,monospace;letter-spacing:.18em;color:var(--atlas-mint);text-transform:uppercase;margin:0 0 12px}.route-history ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.route-pill{display:flex;flex-direction:column;gap:3px;background:#073d48;border:1px solid #2f5b61;border-radius:12px;padding:10px 14px;color:#eefcf7;text-decoration:none}.route-pill i{font-style:normal;font-size:13px;line-height:1}.route-pill b{font-size:14px}.route-pill small{font:500 11px DM Mono,monospace;color:#9fc6c0;letter-spacing:.02em}.route-pill .route-stars{color:var(--atlas-gold);font-size:12px}.route-pill.current{border-color:var(--atlas-gold)}.route-pill.locked{opacity:.5}a.route-pill:hover,a.route-pill:focus-visible{border-color:var(--atlas-mint);outline:none}
.atlas-layout{max-width:none;margin:0;grid-template-columns:280px minmax(500px,1fr) 435px;gap:0;height:calc(100dvh - 156px);min-height:620px}.pilot-card,.atlas-mission-panel{border-radius:0;background:#042d37e8;color:#f2f6ef;border:1px solid #2c756f;box-shadow:none}.pilot-card{height:100%;align-self:stretch;padding:18px;display:grid;grid-template-columns:64px 1fr;align-content:start}.profile-label{grid-column:1/-1;font:500 13px DM Mono;letter-spacing:.16em}.pilot-avatar{width:72px;height:72px;border:2px solid #d7eee8;background:#194651;position:relative}.pilot-avatar span:before{content:'';position:absolute;width:27px;height:34px;background:#d4e8e4;border-radius:50% 50% 44% 44%;left:21px;top:17px}.pilot-avatar span:after{content:'';position:absolute;width:52px;height:28px;background:#d4e8e4;border-radius:50% 50% 15% 15%;left:10px;top:48px}.profile-stars{font-size:22px;color:var(--atlas-gold);margin-top:8px}.pilot-card .aircraft-reward{grid-column:1/-1;background:transparent;border-radius:0;border-top:1px solid #56746f;border-bottom:1px solid #56746f;margin-top:14px;padding:16px 0}.aircraft-reward svg{width:88px;height:55px;color:#f2ead9;transform:rotate(90deg)}.aircraft-reward p{margin:4px 0;color:#adc4c2;font-size:13px}.epaulette{grid-column:1/-1;display:flex;gap:18px;border-bottom:1px solid #56746f;padding:17px 0}.epaulette>i{width:58px;height:86px;background:linear-gradient(90deg,#111 0,#343b3c 48%,#111 100%);border-radius:22px 22px 5px 5px;position:relative}.epaulette .stripe{position:absolute;left:6px;right:6px;height:4px;background:var(--atlas-gold)}.epaulette .stripe:nth-child(1){bottom:16px}.epaulette .stripe:nth-child(2){bottom:23px}.epaulette .stripe:nth-child(3){bottom:30px}.epaulette .stripe:nth-child(4){bottom:37px}.epaulette span{color:#acc3c2;font-size:13px}.epaulette small{display:block;color:#f1f5ef;margin-bottom:14px}.compact-legend{grid-column:1/-1;display:grid;gap:8px;padding-top:16px;font-size:13px}.compact-legend b{letter-spacing:.12em}.compact-legend span{color:#bfd1cd}
.atlas-map{border:0;border-radius:0;min-height:0;height:100%;background-image:linear-gradient(#002d39aa,#002d3944),url("../images/atlas-map-background-v1.ece70a724fc8.png");background-size:cover;background-position:center}.map-grid{display:none}.world-lines{z-index:1}
.atlas-mission-panel{margin:16px 14px;align-self:start;border-radius:18px;background:#fbf6eb;color:var(--atlas-ink);overflow:hidden;padding:0;max-height:calc(100% - 32px);overflow-y:auto}.destination-banner{height:126px;padding:18px;background:linear-gradient(180deg,#f7cf8dcc,#174f5c),radial-gradient(circle at 70% 70%,#d49451 0 9%,transparent 10%),linear-gradient(150deg,#9bd4d4,#f4c580);display:flex;flex-direction:column;justify-content:space-between;color:#092c36}.destination-banner span{align-self:end;background:#0c594e;color:#fff;border-radius:99px;padding:7px 12px;font:700 11px DM Mono;letter-spacing:.14em}.destination-banner b{font-size:20px;color:#fff}.atlas-mission-panel>.panel-kicker,.atlas-mission-panel>p,.atlas-mission-panel>dl,.atlas-mission-panel>.route-progress,.atlas-mission-panel>.stars,.atlas-mission-panel>.primary-flight-action{margin-left:22px;margin-right:22px}.atlas-mission-panel>.panel-kicker{display:block;margin-top:18px}.atlas-mission-panel .destination{font-size:27px;line-height:1.05}.mission-facts{border-top:1px solid #d8d5cc;border-bottom:1px solid #d8d5cc;padding:10px 0}.mission-facts div{display:flex;justify-content:space-between;gap:10px;padding:5px 0}.mission-facts dt{font-size:13px}.mission-facts dd{font:700 13px DM Mono;margin:0}.atlas-mission-panel .primary-flight-action{background:linear-gradient(90deg,#ffd879,#e9aa3f);color:#092c36;margin-bottom:18px}.primary-flight-action svg{width:23px;height:23px}.atlas-mission-panel h3,.atlas-mission-panel .skill-chips{display:none}
@media(min-width:721px) and (max-height:800px){.atlas-layout{height:calc(100dvh - 140px)}.atlas-title{height:56px}.atlas-map{height:100%;min-height:0}.atlas-mission-panel{font-size:13px}.destination-banner{height:92px}.atlas-mission-panel .destination{font-size:22px;margin-top:8px;margin-bottom:8px}.atlas-mission-panel>.panel-kicker{margin-top:10px}.mission-facts{padding:5px 0}.route-progress{margin-top:10px!important;margin-bottom:10px!important}.atlas-mission-panel .primary-flight-action{margin-top:12px}.pilot-card{font-size:13px}.epaulette{padding:9px 0}.compact-legend{padding-top:9px}}
@media(max-width:1100px){.atlas-layout{grid-template-columns:210px 1fr}.atlas-mission-panel{position:absolute;right:0;top:145px;width:360px;z-index:5;display:block}.pilot-card{display:grid}}
@media(max-width:720px){.atlas-title{height:64px;padding:0 14px}.atlas-title h1{font-size:12px}.atlas-title>div:first-child span{font-size:16px}.campaign-progress,.atlas-title>p{display:none}.atlas-layout{height:auto;display:flex}.atlas-map{height:54dvh;min-height:390px;order:1}.pilot-card{order:3;height:auto}.atlas-mission-panel{position:relative;top:auto;right:auto;width:auto;margin:-30px 10px 12px;z-index:6;max-height:none;order:2}.destination-banner{height:90px}.compact-legend,.epaulette{display:none}}
body:has(.game-atlas) #main-content{min-height:calc(100dvh - 84px)}.game-atlas{min-height:calc(100dvh - 84px)}.campaign-strip{height:64px;padding:0 30px;display:flex;align-items:center;justify-content:flex-end;gap:70px;border-bottom:1px solid #6e958f;background:#042832;color:#eefcf7}.campaign-strip p{margin:0;font-size:18px}.atlas-layout{height:calc(100dvh - 148px);min-height:0}
.atlas-map{background:none}.geo-atlas{inset:0;width:100%;height:100%}.geo-atlas>image{filter:brightness(.68) saturate(.92)}.geo-atlas .route{fill:none;stroke-width:5}.geo-atlas .route.available{stroke:var(--atlas-mint);stroke-dasharray:14 12}.geo-atlas .route.completed{stroke:var(--atlas-mint);stroke-width:7;stroke-dasharray:none}.geo-atlas .route.locked{stroke:#9daaa8;stroke-dasharray:8 14}.geo-node circle{fill:#123e48;stroke:#a5b9b5;stroke-width:5}.geo-node text{fill:#f4f7ef;font:700 15px DM Mono;paint-order:stroke;stroke:#07303a;stroke-width:4px}.geo-node.current circle{fill:var(--atlas-gold);stroke:#fff1c7;stroke-width:6}.geo-node.current use{color:#092f38}.geo-node.completed circle,.geo-node.available circle{fill:#6ee7bc;stroke:#effff9}.geo-node .check{fill:#07343e;stroke:none;font-size:16px}.geo-node .head-tag{fill:var(--atlas-gold)}.geo-node .head-text{fill:#082d36;stroke:none;font-size:16px}.geo-node.locked{opacity:.72}
@media(min-width:721px) and (max-height:800px){.campaign-strip{height:56px}.atlas-layout{height:calc(100dvh - 140px)}}
@media(max-width:720px){.campaign-strip{height:58px;padding:0 14px;justify-content:space-between;gap:12px}.campaign-strip .campaign-progress{width:min(65vw,320px)}.campaign-strip p{font-size:13px;white-space:nowrap}}
.game-atlas{min-height:0;display:flex;flex-direction:column}.campaign-strip{flex:0 0 56px}.atlas-layout{grid-template-columns:240px minmax(0,1fr) 380px;flex:1 1 auto;height:auto!important;min-height:0;padding:0 28px;box-sizing:border-box}.atlas-map,.pilot-card{min-width:0;min-height:0}.atlas-mission-panel{max-width:352px}.geo-node .head-tag{stroke:#092f38;stroke-width:1}.geo-node .head-text{font-size:15px}
@media(max-width:720px){.game-atlas{height:auto;min-height:calc(100dvh - 70px)}.atlas-layout{display:flex;padding:0 12px}.atlas-mission-panel{max-width:none}}
.geo-atlas .local-route.available{stroke:var(--atlas-mint);stroke-width:5;stroke-dasharray:11 9;filter:drop-shadow(0 0 5px #6ee7bc99);animation:routePulse 2s linear infinite}.geo-atlas .head-leader{stroke:var(--atlas-gold);stroke-width:3}
.game-atlas.preflight-screen{padding:18px 28px 28px;box-sizing:border-box}
@media(max-width:720px){.game-atlas.preflight-screen{padding:16px 12px}}
.route-note{margin:14px 22px 0;font-size:12px;color:inherit;opacity:.75;line-height:1.4}
/* Tablet (721-1100 px), 2026-09-22: a regra sem media query da linha 25 (3 colunas 240/1fr/380) vem depois da de tablet da linha 19 e a anulava -- o mapa ficava com 62 px em 760 e 302 px em 1000 (medido com getBoundingClientRect). Nessa faixa, empilha como no celular: mapa em cima, painel da missão, depois o perfil. */
@media(min-width:721px) and (max-width:1100px){.atlas-layout{display:flex;flex-direction:column;height:auto!important;padding:0 20px}.atlas-map{height:58dvh;min-height:420px;order:1}.atlas-mission-panel{position:relative;top:auto;right:auto;width:auto;max-width:none;margin:-30px 16px 12px;z-index:6;order:2}.pilot-card{order:3;height:auto}.game-atlas{height:auto}}
/* Mapa estreito (celular), 2026-09-22: _atlas_route_map.html desenha dois SVGs; ≤720 px mostra o `meet` (perna inteira visível), acima disso o `slice` de sempre. */
.geo-atlas--narrow{display:none}@media(max-width:720px){.geo-atlas--wide{display:none}.geo-atlas--narrow{display:block}}

/* Trilha da jornada rolável (WCAG 2.5.8). Regras no fim do arquivo de
   propósito: `.campaign-progress`/`.dot` já têm gerações anteriores acima
   (inclusive dentro de @media), e uma regra escrita antes perderia por ordem.
   O alvo de toque vai de 16px para 24px e cada ponto ganha uma faixa mínima de
   24px na trilha -- com 40 rotas em 320px eles ficavam a ~8px um do outro, com
   as áreas de toque sobrepostas. O ponto continua desenhado em 6px (o :before);
   só a área clicável cresce. */
.journey-track{overflow-x:auto;overflow-y:hidden;padding-block:12px;margin-block:-12px;scrollbar-width:none}
.journey-track::-webkit-scrollbar{display:none}
.campaign-progress .journey-track i{min-width:calc(var(--journey-nodes,1)*24px)}
.campaign-progress i .dot{width:24px;height:24px}
.campaign-progress i a.dot.current:before{border-color:#fff;box-shadow:0 0 0 3px #6ce0ad55}

/* Plano de acesso (2 perfis: 3 rotas grátis / 40 rotas). A faixa fica no
   cabeçalho da campanha, ao lado da patente -- é onde o aluno já olha para
   saber "onde estou", e o passo seguinte ("o que falta") pertence ali. */
.plan-badge.full{margin:6px 0 0;font:600 11px Manrope,system-ui,sans-serif;color:#9fe8cd}
.plan-upsell{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;padding:10px 14px;border:1px solid #2f6f6a;border-radius:10px;background:#0b3a3f}
.plan-upsell b{display:block;font:700 12px Manrope,system-ui,sans-serif;color:#eaf7f3}
.plan-upsell small{display:block;margin-top:2px;font:11px/1.45 Manrope,system-ui,sans-serif;color:#9fc4bd}
.plan-cta{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-radius:8px;background:var(--atlas-mint);color:#05262c;font:700 12px Manrope,system-ui,sans-serif;text-decoration:none}
.plan-cta:hover,.plan-cta:focus-visible{filter:brightness(1.08)}
@media(max-width:720px){.plan-upsell{width:100%;padding:10px 12px}.plan-cta{width:100%;justify-content:center}}
