.map-practice{color:#17324d;background:#f5f8fc;font-family:Nunito,system-ui,sans-serif;line-height:1.6}
.map-practice h2,.map-practice h3{color:#0b1c3c;line-height:1.3}
.map-practice h2{font-size:clamp(1.65rem,3vw,2.3rem);margin:0 0 .65rem}
.map-practice h3{font-size:1.16rem;margin:.3rem 0 1rem}
.map-practice .map-intro{max-width:76ch;margin-bottom:1.5rem}
.map-grid{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.4fr);gap:24px;align-items:start}
.map-observation,.map-item{border:1px solid #d7e3ed;border-radius:18px;background:white;padding:clamp(18px,3vw,28px);min-width:0}
.map-item+.map-item{margin-top:18px}
.map-level{display:inline-block;background:#e6f2fd;color:#165486;font-weight:900;font-size:.78rem;letter-spacing:.05em;border-radius:6px;padding:4px 8px;margin-bottom:10px}
.map-practice label{display:block;font-weight:800;margin:16px 0 7px}
.map-practice textarea{display:block;width:100%;min-height:100px;resize:vertical;border:1px solid #9ab0c4;border-radius:9px;padding:12px;background:white;color:#17324d;font:inherit;line-height:1.5}
.map-options{display:grid;gap:9px}
.map-practice button{font:inherit;line-height:1.45;min-height:44px;cursor:pointer;border-radius:9px}
.map-option{display:block;width:100%;text-align:left;padding:12px 15px;color:#17324d;background:#f8fbff;border:1px solid #a6bdcf;font-weight:700;white-space:normal;overflow-wrap:anywhere}
.map-option:hover:not(:disabled){background:#eaf3ff;border-color:#2362a2}
.map-option.correct{background:#e1f4e8;border-color:#23774b;color:#10492a}
.map-option.wrong{background:#fff0e8;border-color:#ae5126;color:#783312}
.map-option:disabled{cursor:default;opacity:1}
.map-feedback{min-height:1.5em;margin:12px 0 0;font-weight:700}
.map-solution{margin-top:16px;border-top:1px solid #d7e3ed;padding-top:12px}
.map-solution summary{cursor:pointer;font-weight:800;color:#175486;min-height:44px;padding:8px 0}
.map-solution p{margin:.5rem 0}
.map-action{padding:11px 16px;background:#165b94;border:1px solid #165b94;color:white;font-weight:800;margin-top:12px}
.map-action.secondary{background:white;color:#165486;border-color:#7f9fb9}
.map-practice :is(button,textarea,summary,a):focus-visible{outline:3px solid #d37300;outline-offset:3px}
.map-practice .map-note{font-size:.88rem;color:#4c6174}
.map-progress{padding:16px 20px;background:#e8f1f9;border-radius:12px;font-weight:800;margin-top:22px}
.map-snapshots{font-size:.85rem;overflow-wrap:anywhere;padding-left:1.2rem;max-height:260px;overflow:auto}
.map-snapshots li+li{margin-top:.7rem}
@media(max-width:820px){.map-grid{grid-template-columns:1fr}.map-observation,.map-item{padding:18px}.map-practice .library-wrap{width:min(100% - 28px,1160px)}}
@media print{.map-practice{background:white}.map-grid{display:block}.map-item{break-inside:avoid}.map-action{display:none}.map-snapshots{max-height:none;overflow:visible}}

/* Contraste dos cartões claros dentro das seções escuras do Mapa.
   A precedência fica limitada ao texto dos laboratórios; botões e SVGs
   mantêm suas próprias cores. Os títulos externos continuam no tema escuro. */
.topic-page [data-map-lab] .simulator-card{color:#17324d!important}
.topic-page [data-map-lab] .simulator-card :is(h3,strong,b){color:#0b2854!important}
.topic-page [data-map-lab] .simulator-card :is(label,small,p,th,td){color:#3a5066!important}
.topic-page [data-map-lab] .simulator-card :is(.equation-readout,.system-equations,.number-formula,.geometry-formula,.measure-formula,.data-formula,.integrative-formula,.finance-value,.factor-lab,.sequence-term){color:#0b2854!important}

/* Ampliação F02 limitada às páginas de tema. */
.topic-page [data-map-lab][hidden]{display:none!important}
.topic-page .map-bridge-nav{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.topic-page .map-bridge-nav a{min-height:46px;display:inline-flex;align-items:center;padding:10px 14px;border:1px solid #9ab9d1;border-radius:10px;background:#edf6fc;color:#0b2854;font-weight:800;line-height:1.4;text-decoration:none}
.topic-page .map-bridge-nav a:focus-visible{outline:3px solid #ad6600;outline-offset:4px}
.map-practice .map-bridge{border:1px solid #b9d1e4;border-left:5px solid #165b94;border-radius:16px;background:white;padding:clamp(18px,3vw,28px);margin-top:22px;min-width:0}
.map-practice .map-bridge textarea{box-sizing:border-box;font-size:16px}
.map-practice .map-independent{margin:14px 0;padding:14px;background:#f0f7fc;border-radius:12px}
.map-practice .map-independent-check>summary{cursor:pointer;min-height:46px;padding:11px 14px;border:1px solid #829db5;border-radius:10px;background:#fff;color:#14517e;font-weight:800;line-height:1.45;margin:12px 0}
.topic-page :is(.map-bridge,.map-item,[data-record], [data-map-lab]){scroll-margin-top:100px}
.topic-page .map-grid>*,.topic-page .map-checks{min-width:0}
.topic-page .topic-hero h1{font-size:clamp(30px,4.8vw,54px);line-height:1.12;overflow-wrap:anywhere}
@media(max-width:600px){.topic-page .map-bridge-nav a{flex:1 1 135px}.map-practice .map-independent{padding:12px}}
@media print{.map-bridge-nav{display:none!important}.map-practice .map-bridge{break-inside:avoid}.map-practice .map-independent-check::details-content{content-visibility:visible!important;display:block!important}.map-practice .map-independent-check>summary{display:none}}
