:root{font-family:Inter,system-ui,Arial,sans-serif;color:#e5f1e5;background:#07110c;line-height:1.4}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#173525,#07110c 40%)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
.hidden{display:none!important}.topbar{min-height:73px;border-bottom:1px solid #23402e;padding:14px 29px;display:flex;align-items:center;justify-content:space-between;background:#0b1910f2}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:#b3e83f;color:#112105;border-radius:10px;font-size:30px}.brand strong{display:block;letter-spacing:2px;font-size:14px}.brand small{display:block;color:#91a792;letter-spacing:2px;font-size:9px;margin-top:2px}
.server-badge,.live{font-size:11px;font-weight:800;letter-spacing:1.3px;color:#b1ef49;border:1px solid #486f30;background:#182b16;padding:8px 11px;border-radius:7px}
.entry-layout{padding:7vh 5%;max-width:1380px;min-height:calc(100vh - 73px);margin:auto;display:grid;grid-template-columns:1.2fr 420px;gap:80px;align-items:center}
.eyebrow{font-size:11px;color:#b4e75b;letter-spacing:3px;font-weight:800}.entry-hero h1{font-size:clamp(40px,5vw,70px);letter-spacing:-2px;line-height:1.07;margin:19px 0}.entry-hero h1 span{color:#b4e75b}
.entry-hero p{max-width:590px;font-size:17px;line-height:1.8;color:#a9b8a9}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px;gap:18px;margin-top:32px;color:#d3dfcf;font-size:14px}.safety-note{margin-top:48px;color:#bd9d63;font-size:12px}
.entry-forms{display:flex;flex-direction:column;gap:15px}.panel{background:#102018;border:1px solid #294233;border-radius:15px;padding:20px;box-shadow:0 18px 45px #00000019;min-width:0}.panel h2{font-size:17px;letter-spacing:.1px;margin:0 0 17px}.panel p{color:#a4b6a9;font-size:13px;line-height:1.6;margin-top:-4px}
label{display:block;color:#95ad9d;font-size:12px;margin:13px 0 7px;font-weight:600}input,select,textarea{display:block;width:100%;border:1px solid #36503e;border-radius:9px;background:#071710;color:#e3f5e8;padding:12px;margin-top:7px;outline:none}input:focus,select:focus,textarea:focus{border-color:#a5d44c;box-shadow:0 0 0 2px #8fb53b33}
.primary,.outline{padding:11px 12px;border-radius:9px;font-weight:800;letter-spacing:.6px;font-size:12px}.primary{background:#afe142;border:1px solid #afe142;color:#102209}.outline{background:transparent;color:#dbead1;border:1px solid #45634a}.wide{width:100%;margin-top:15px}.subtle{border:0;background:transparent;color:#b2e365;padding:4px 0;text-decoration:underline;text-underline-offset:4px;font-size:12px}.message{font-size:12px;min-height:18px;color:#f8d277}
.dashboard{max-width:1850px;margin:auto;padding:25px}.overview{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 22px}.overview h1{font-size:31px;margin:5px 0}.roomline{font-size:11px;color:#89a18d;letter-spacing:1.3px}.roomline strong{color:#b1e644;font-size:15px;margin-left:9px;letter-spacing:2px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stats>div{background:#12251a;border:1px solid #284432;min-width:100px;padding:12px 17px;border-radius:11px}.stats small{font-size:9px;white-space:nowrap;color:#97ac98;letter-spacing:1px}.stats b{font-size:28px;display:block}.stats>div:nth-child(2) b{color:#a8d64b}.stats>div:nth-child(3) b{color:#e5bb55}.stats>div:nth-child(4) b{color:#ed6c67}
.three-col{display:grid;grid-template-columns:minmax(260px,320px) minmax(380px,1fr) minmax(290px,335px);gap:17px;align-items:start}.left-col,.right-col{display:grid;gap:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{margin:0 0 8px}.panel-heading small,.muted{color:#8ba18e;font-size:11px}.legend{display:flex;gap:12px;font-size:11px;color:#91a592;margin:10px 0}.legend span{display:flex;align-items:center;gap:5px}.dot{display:inline-block;border-radius:50%;width:7px;height:7px;background:#647b6d}.dot.blue{background:#54aaff}.dot.red{background:#f16e69}
.roster{display:grid;gap:9px;max-height:620px;overflow:auto;margin-top:16px}.player{border:1px solid #294431;background:#0a1911;padding:12px;border-radius:10px}.player-top{display:flex;align-items:center;gap:9px}.player-code{background:#263b2d;color:#b6d99b;font-size:12px;font-weight:bold;padding:7px;border-radius:7px}.player-main{min-width:0;flex:1}.player-name{font-size:13px;font-weight:750;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-desc{font-size:10px;color:#8ca58f}.status{font-weight:800;font-size:9px;text-transform:uppercase}.status.wounded{color:#ffd16e}.status.eliminated{color:#f47c73}.status.active{color:#b2e85a}.player-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.player-actions button{font-size:10px;background:#1b3323;border:1px solid #3b573f;color:#c9e6c9;border-radius:6px;padding:7px}.player-actions button.selected{background:#accd3a;color:#142511}.player-meta{font-size:10px;color:#789382;margin-top:6px}
.map-panel{min-height:680px}.tactical-map{height:min(53vw,560px);min-height:350px;position:relative;overflow:hidden;border:1px solid #476345;border-radius:11px;background:radial-gradient(circle at center,#234331 0%,#11281c 72%)}.map-grid{position:absolute;inset:0;opacity:.36;background-image:linear-gradient(#66826f44 1px,transparent 1px),linear-gradient(90deg,#66826f44 1px,transparent 1px);background-size:40px 40px}.map-grid:before,.map-grid:after{content:'';position:absolute;background:#b6dd7922}.map-grid:before{left:50%;height:100%;width:1px}.map-grid:after{top:50%;width:100%;height:1px}
.map-extras{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 15px;margin:7px 0 12px;align-items:center}.map-extras small{font-size:10px;color:#91ac98}.satellite-link{color:#b9e872;background:#244126;border:1px solid #53803b;padding:9px 12px;border-radius:8px;font-size:11px;font-weight:800;text-decoration:none}.satellite-link.unavailable{color:#758a78;background:#15231a;border-color:#334b38;pointer-events:none;cursor:not-allowed}
.marker{position:absolute;transform:translate(-50%,-50%);z-index:4;display:grid;place-items:center;gap:3px}.marker span{font-size:9px;white-space:nowrap;color:#f5fff5;background:#08130bce;border:1px solid #4c684c;padding:2px 5px;border-radius:4px}.marker b{display:grid;place-items:center;font-size:11px;width:28px;height:28px;background:#297bb7;border:2px solid #bbecff;border-radius:50%;box-shadow:0 0 0 8px #6caaf21c}.marker.red b{background:#a33c43;border-color:#ffc2b6}.marker.wounded b{background:#8d6e20;border-color:#f7cc61}.marker.eliminated b{background:#595f5c;border-color:#929692}.marker.stale{opacity:.4}.mission-marker b{background:#b2e35a;border-color:#f5ff9d;border-radius:4px;color:#102109}.mission-marker.case b{background:#d3a860}
.compass{position:absolute;right:14px;top:12px;color:#bce47b;font-weight:800;font-size:13px}.map-caption{position:absolute;bottom:13px;left:14px;color:#a2b69f;font-size:10px;background:#0a1711bb;padding:7px;border-radius:4px}.map-foot{display:flex;justify-content:space-between;gap:9px;color:#819a8a;font-size:11px;margin:9px 0 18px}.spaced{margin-top:24px}
.events{max-height:230px;overflow:auto}.event{padding:9px 0;border-bottom:1px solid #2b4435;color:#d3e6d5;font-size:12px}.event time{color:#9fb392;margin-right:10px;font-size:10px}
.player-actions .remove-player{border-color:#7e514b;color:#f7aba5;background:#2b1c1b}
.team-tabs{display:flex;gap:5px;margin-top:13px;flex-wrap:wrap}.team-tab{display:flex;justify-content:center;align-items:center;gap:5px;flex:1;min-width:0;padding:8px 4px;background:#0b1b13;border:1px solid #36513f;border-radius:7px;color:#a7bfae;font-weight:800;font-size:9px;letter-spacing:.15px}.team-tab span{border-radius:4px;background:#24372a;padding:1px 5px;color:#d6eed6}.team-tab.selected{background:#31522a;border-color:#a2d43e;color:#eaffd7}.team-tab.azul.selected{background:#173d62;border-color:#6ab6ff;color:#d1edff}.team-tab.vermelho.selected{background:#57242c;border-color:#ff8790;color:#ffdae0}.team-tab .dot{flex-shrink:0}
.team-roster{display:grid;gap:8px;min-width:0}.team-roster-heading{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:6px;align-items:center;border-radius:7px;padding:8px 9px;border:1px solid #36513f;background:#17261d}.team-roster-heading strong{font-size:11px;letter-spacing:.4px}.team-roster-heading span{font-size:10px;color:#a5b9a7}.team-roster.azul .team-roster-heading{border-color:#3a75a1;background:#112c42;color:#9cdaff}.team-roster.vermelho .team-roster-heading{border-color:#98515d;background:#3c1d26;color:#ffadb7}.team-roster .player.azul{border-left:3px solid #58adf9}.team-roster .player.vermelho{border-left:3px solid #ef7178}.team-roster .player.azul .player-code{background:#214263;color:#b6e1ff}.team-roster .player.vermelho .player-code{background:#522830;color:#ffc3c8}.empty-team{color:#95a897;font-size:11px;padding:2px 8px;margin:1px 0 10px}
.map-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:12px 0 6px}.map-choice{font-size:10px;font-weight:800;letter-spacing:.2px;color:#cfdfca;background:#173022;border:1px solid #3d6545;border-radius:7px;padding:9px 11px}.map-choice.selected{color:#142309;background:#ace142;border-color:#ace142}
.satellite-config{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin:3px 0 9px}.satellite-config label{flex:1;min-width:200px;margin:0}.satellite-config input{padding:8px 10px;font-size:11px}.satellite-config button{font-size:10px;padding:9px 12px;margin-bottom:1px}.satellite-config small{width:100%;font-size:10px}
.tactical-map{cursor:grab;touch-action:none}.tactical-map.dragging{cursor:grabbing}.map-tiles{position:absolute;inset:0;z-index:1;pointer-events:none}.map-tiles img{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none}.tactical-map .map-grid{z-index:0;pointer-events:none}.tactical-map #mapMarkers{position:absolute;inset:0;z-index:2;pointer-events:none}.tactical-map .marker{pointer-events:none}.map-attribution{position:absolute;bottom:0;right:0;z-index:5;color:#182415;background:#f2f7e3df;font-size:10px;padding:2px 5px}.tactical-map .map-caption{z-index:5;bottom:25px;pointer-events:none}.tactical-map .compass{z-index:5;pointer-events:none}
.coord{display:grid;grid-template-columns:1fr 1fr;gap:9px}.coord label{min-width:0}.coord input{padding:10px 7px;font-size:12px}.pill{color:#d8e4d0;border:1px solid #4a654e;background:#23342a;border-radius:6px;padding:5px 7px;font-size:10px}.pill.armed,.pill.sealed{color:#ffc66a;border-color:#856730}.pill.disarmed,.pill.opened{color:#b0eb6b;border-color:#547d3a}
@media(max-width:1300px){.three-col{grid-template-columns:270px 1fr}.right-col{grid-column:2;grid-row:2}.map-panel{grid-column:2}.left-col{grid-row:1 / span 2}}
@media(max-width:900px){.entry-layout{grid-template-columns:1fr;padding:35px 20px;gap:30px}.entry-forms{max-width:520px}.overview{flex-direction:column;align-items:stretch}.stats{grid-template-columns:repeat(4,1fr)}.three-col{grid-template-columns:1fr}.left-col,.right-col,.map-panel{grid-column:auto;grid-row:auto}.tactical-map{height:450px}}
@media(max-width:560px){.dashboard{padding:14px}.stats{grid-template-columns:repeat(2,1fr)}.overview h1{font-size:25px}.topbar{padding:12px}.server-badge{font-size:9px}.feature-grid{grid-template-columns:1fr}.brand small{font-size:8px}.brand strong{font-size:11px}}

/* Central 0.7: mapa ampliado, objetivos abaixo e operadores compactos. */
.three-col{grid-template-columns:minmax(220px,265px) minmax(0,1fr);gap:15px}
.main-col,.left-col{display:grid;gap:15px;align-content:start;min-width:0}
.main-col{grid-column:2;grid-row:1}
.left-col{grid-column:1;grid-row:1}
.map-panel{grid-column:auto;grid-row:auto;min-height:unset}
.tactical-map{height:min(69vh,760px);min-height:455px}
.missions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}
.mission-panel{min-width:0}
.events-panel{min-width:0}
.map-settings{margin:9px 0;padding:9px 13px;background:#0c1c13;border:1px solid #2d4c35;border-radius:8px}
.map-settings summary{cursor:pointer;font-size:11px;font-weight:750;color:#a2c7ab}
.map-settings[open] summary{padding-bottom:11px}
.map-location-tools{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin:11px 0}
.map-location-tools label{flex:1 1 140px;max-width:225px;margin:0}
.map-location-tools input{padding:9px;font-size:12px}
.map-location-tools button{padding:11px 12px;flex:0 0 auto;font-size:11px}
.map-placement-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;margin:9px 0;background:#25361a;border:1px solid #a8db46;border-radius:8px;color:#ddf5a5;font-size:12px;font-weight:750}
.tactical-map.placing{cursor:crosshair;outline:3px solid #b2e35a;outline-offset:2px}
.objective-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:7px}
.objective-actions .map-pick{font-size:10px;padding:9px 10px}
.objective-actions .map-pick.selected{border-color:#b2e35a;color:#d9fb9e;background:#2d4a1f}
.mission-panel .primary.wide{margin-top:9px}
.mission-panel .outline.wide{margin-top:18px}
.pill.staged{background:#2a381d;color:#c1e97a;border-color:#80a53c}
.marker.vermelho b{background:#a93744;border-color:#ffb7c4;box-shadow:0 0 0 8px #ef718222}
.marker.vermelho.wounded b{background:#8d6e20;border-color:#f7cc61}
.marker.vermelho.eliminated b{background:#595f5c;border-color:#929692}
.drop-marker b{background:#5b3944;border:2px dashed #ff9894;color:#ffe8e7;box-shadow:0 0 0 5px #d06a4e26}
.drop-marker span{border-color:#a65e5b}
.mission-marker.staged b{border-style:dashed;background:#67743c;color:#fff9d2}
.mission-marker.preview{opacity:.88}
.mission-marker.preview b{border-style:dashed;outline:2px solid #ebfa8f;outline-offset:3px}
.marker.preview span{font-weight:800}
.roster{max-height:700px;gap:6px}
.team-roster{gap:5px}
.team-roster-heading{padding:7px 9px}
.player{padding:8px 9px;border-radius:8px}
.player-trigger{width:100%;padding:0;border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:7px;text-align:left}
.player-trigger:focus-visible{outline:2px solid #bbec7b;outline-offset:4px;border-radius:4px}
.player-code{font-size:10px;min-width:31px;padding:6px 4px;text-align:center}
.player-name{font-size:12px}
.player-desc{font-size:9px}
.player-trigger .status{text-align:right;white-space:nowrap;font-size:8px}
.expand-symbol{font-size:16px;color:#8bb0a0;min-width:9px;text-align:center}
.player-role-list{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0 0 38px}
.role-badge{border:1px solid #49604b;background:#213427;padding:2px 4px;border-radius:4px;color:#a9c9a8;font-size:8px;letter-spacing:.1px}
.player-meta{margin:5px 0 0 39px;font-size:9px}
.player:not(.expanded) .player-meta{opacity:.8}
.player-editor{padding-top:10px;margin-top:10px;border-top:1px solid #31503a;display:grid;gap:3px}
.editor-caption{font-size:9px;letter-spacing:1px;color:#9dbbaa;margin-top:5px}
.player-editor .player-actions{margin:4px 0 8px}
.player-editor .player-actions button{padding:7px 6px}
.player-editor .remove-player{background:#2b1c1b;border:1px solid #7e514b;border-radius:6px;color:#f7aba5;padding:8px;margin-top:9px;font-size:10px}
.player-editor .drop-shortcut{font-size:10px;padding:9px;margin-top:6px}
.dot.gray{background:#81958a}
@media(max-width:1180px){.missions-grid{grid-template-columns:1fr}.three-col{grid-template-columns:minmax(208px,235px) minmax(0,1fr)}}
@media(max-width:780px){.three-col{grid-template-columns:minmax(0,1fr)}.left-col,.main-col{grid-column:1;grid-row:auto}.missions-grid{grid-template-columns:1fr}.tactical-map{height:440px;min-height:370px}.map-location-tools label{max-width:none}}

/* Status visual no cartão inteiro, sem confundir com a cor da equipe. */
.player.status-active{background:linear-gradient(115deg,rgba(44,122,76,.33),rgba(16,35,24,.75));border-color:#386e51}
.player.status-wounded{background:linear-gradient(115deg,rgba(164,107,27,.34),rgba(43,33,20,.8));border-color:#80602d}
.player.status-eliminated{background:linear-gradient(115deg,rgba(140,59,67,.33),rgba(42,24,27,.79));border-color:#78434c}
.team-roster .player.azul{border-left:4px solid #58adf9}
.team-roster .player.vermelho{border-left:4px solid #ef7178}
.player-trigger .status{font-size:8px;border:1px solid transparent;border-radius:5px;padding:3px 5px}
.player-trigger .status.active{color:#c2f4a6;background:#254f2c;border-color:#4e9d50}
.player-trigger .status.wounded{color:#ffe2a4;background:#63491f;border-color:#b18039}
.player-trigger .status.eliminated{color:#ffc4bb;background:#69343b;border-color:#b45b67}
.player-detail-row{display:flex;gap:4px 9px;flex-wrap:wrap;align-items:center;margin:7px 0 0 37px}
.player-detail-row .player-role-list{display:flex;gap:4px;flex-wrap:wrap;margin:0;min-width:0}
.player-detail-row .player-meta{margin:0;font-size:9px;color:#a5bca7}
.role-badge{font-size:8px;padding:2px 5px;white-space:nowrap;font-weight:800}
.role-badge.combatente{color:#a5b6a6;background:#243228;border-color:#4a6150}
.role-badge.medico{color:#c9fae1;background:#1e4b36;border-color:#438e64}
.role-badge.engenheiro{color:#ffdaa1;background:#523d22;border-color:#a47b39}
.role-badge.inteligencia{color:#bce8fa;background:#25455a;border-color:#5280a6}
.role-badge.comandante{color:#ead1ff;background:#463453;border-color:#8f66a8}

/* Indicadores por equipe logo abaixo dos quatro números gerais. */
.team-summaries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:-7px 0 17px}
.team-summary{min-width:0;background:#101e17;border:1px solid #385242;border-radius:11px;padding:11px 14px;display:flex;flex-direction:column;gap:10px}
.team-summary.azul{background:linear-gradient(90deg,rgba(25,75,110,.32),rgba(14,32,25,.95));border-color:#3b6585}
.team-summary.vermelho{background:linear-gradient(90deg,rgba(101,35,48,.32),rgba(14,32,25,.95));border-color:#744050}
.team-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.team-summary-head strong{font-size:11px;letter-spacing:.7px;display:flex;align-items:center;gap:7px}
.team-summary.azul .team-summary-head strong{color:#a3dcff}
.team-summary.vermelho .team-summary-head strong{color:#ffc0c5}
.team-summary-head>span{font-size:9px;color:#99b39f;letter-spacing:.5px}
.team-summary-head b{font-size:13px;color:#e4f1e6}
.team-summary-numbers{display:flex;gap:9px 19px;align-items:center;flex-wrap:wrap}
.team-summary-numbers span{font-size:9px;color:#bed1bf;white-space:nowrap;display:inline-flex;align-items:baseline;gap:4px}
.team-summary-numbers b{font-size:17px;font-weight:850;font-variant-numeric:tabular-nums}
.team-summary-numbers .summary-active b{color:#abe55a}
.team-summary-numbers .summary-wounded b{color:#f1c66e}
.team-summary-numbers .summary-eliminated b{color:#ee8b89}
@media(max-width:700px){.team-summaries{grid-template-columns:1fr;margin-top:0}.team-summary-numbers{gap:10px 20px}}

/* Central 0.8: comandante, socorro e missões encadeadas. */
.command-link{display:block;padding:11px 12px;margin:9px 0 12px;text-align:center;border-radius:8px;background:#1e3a2a;border:1px solid #65964b;color:#c8f196;font-size:11px;font-weight:850;text-decoration:none}
.case-chain-panel{margin:0}.chain-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(210px,1fr);gap:19px}.chain-board{background:#0b1a13;border:1px solid #3b5f41;border-radius:11px;padding:16px;align-self:start}.chain-board>strong{font-size:11px;letter-spacing:1.3px;color:#b3d88d}.chain-fields{min-width:0}.stage-list{max-height:440px;overflow:auto;padding:8px 0}.stage-row{padding:11px 8px;border-bottom:1px solid #314936;display:grid;gap:3px}.stage-row strong{font-size:12px;color:#e3f1dc}.stage-row small{font-size:10px;color:#9ab2a1}.chain-board button{margin:8px 0}.pill.active{color:#c6f99d;background:#245b29;border-color:#51a357}.pill.completed{color:#e1fdb6;background:#32633a}.pill.paused{color:#ffe1a0;background:#665022}.help-list{display:grid;gap:7px}.support-item{display:grid;gap:4px;background:#242015;border:1px solid #79622e;border-radius:8px;padding:10px}.support-item strong{color:#ffe1a9;font-size:11px}.support-item small{font-size:10px;color:#b9b6a4}.support-actions{display:flex;gap:5px;flex-wrap:wrap}.support-actions button{font-size:9px;padding:6px}.marker.stage b{background:#7c65ca;border-color:#dccfff}.marker.waypoint b{background:#b7db60;border-color:#f0fab0}
@media(max-width:800px){.chain-layout{grid-template-columns:1fr}}
