@charset "UTF-8";
/* Plataforma SENTINELA · Menu (js/plataforma.js), avisos compactos, tabelas em cartões no telemóvel, ecrã inteiro, relatório
 * impresso, modo parede e margens de segurança do ecrã quando instalada (PWA). Ficheiro igual na raiz e nas três ferramentas.
 * O cabeçalho, a barra de parâmetros e os separadores estão em css/estilo-decir.css. */

/* Ecrã instalado (PWA) e telemóveis com entalhe: com «viewport-fit=cover» e a barra de estado translúcida do iPhone,
 * a página começa por baixo da barra de estado e da barra de gestos. Os env() valem 0 num navegador normal, por isso
 * nada muda fora desses casos. O cabeçalho cresce o que a barra de estado ocupa; o LiveOps e o MeteoOps medem-no
 * (headerFit) e o Cicatriz soma-o aqui a --top. */
:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}
html body,html body[data-module]{--top:calc(var(--head) + var(--sec) + var(--sat));--footer:calc(28px + var(--sab));padding-left:var(--sal);padding-right:var(--sar)}
html body .topbar{height:calc(var(--head) + var(--sat))!important;padding-top:var(--sat)!important}
html body .statusbar{padding-bottom:var(--sab)}
html body .workspace .pane.expanded,html body .workspace .pane:fullscreen{top:var(--sat);height:auto}
@media(max-width:760px){html body .info-dialog{padding-top:var(--sat);padding-bottom:var(--sab)}}

/* Menu (js/plataforma.js): preferências, ligação, partilhar (página de entrada) e instalar. Abre no botão Menu do cabeçalho
 * (css/estilo-decir.css); os botões originais da faixa de cima ficam escondidos e o Menu carrega neles. */
.topbar>.module-chip,.topbar .top-actions>.hub-link,.topbar .top-actions>.net-state,.topbar .top-actions>.info-button{display:none!important}
.plat-menu{position:fixed;z-index:1950;right:max(8px,calc(var(--sar) + 8px));width:min(400px,calc(100vw - 16px));max-height:calc(100dvh - var(--menu-top,60px) - 12px - var(--sab));overflow:auto;overscroll-behavior:contain;padding:4px 8px 8px;background:#0d141e;border:1px solid var(--line2);border-radius:2px;box-shadow:0 18px 50px #000c;font-family:var(--mono)}
.plat-menu[hidden]{display:none!important}
.plat-menu .pm-head{position:sticky;top:-4px;z-index:1;display:flex;align-items:center;gap:10px;margin:0 -8px;padding:10px 8px 10px 14px;background:#0d141e;border-bottom:1px solid var(--line)}
.plat-menu .pm-head img{flex:none;object-fit:contain}
.plat-menu .pm-head .pm-txt>span{font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--text)}
.plat-menu .pm-head .pm-txt b{color:var(--accent)}
.plat-menu .pm-head .pm-txt small{font-size:10.5px}
.plat-menu .pm-x{flex:none;width:36px;height:36px;margin:0;padding:0;border:0;border-radius:2px;background:none;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.plat-menu .pm-x:hover{background:#16212e;color:var(--accent)}
.plat-menu .pm-sec{padding:8px 0 6px;border-bottom:1px solid var(--line)}
.plat-menu .pm-sec:last-child{border-bottom:0}
.plat-menu .pm-sec[hidden]{display:none}
.plat-menu .pm-sec h4{margin:2px 6px 6px;font:800 9.5px/1.2 var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.plat-menu .pm-sec>button{display:flex;align-items:center;gap:11px;width:100%;min-height:44px;margin:0;padding:7px 9px;border:0;border-radius:2px;background:transparent;color:var(--text);font:600 12.5px/1.3 var(--mono);text-align:left;text-decoration:none;cursor:pointer}
.plat-menu .pm-sec>button:hover,.plat-menu .pm-sec>button:focus-visible{background:#16212e}
.plat-menu .pm-ico{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:2px;background:#121c28;color:var(--accent)}
.plat-menu .pm-ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.plat-menu .pm-ico svg .fill{fill:currentColor;stroke:none}
.plat-menu .pm-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.plat-menu .pm-txt small{font-size:10px;font-weight:500;color:var(--muted);margin-top:2px}
.plat-menu .pm-net{flex:none;font-size:10px;font-weight:800;letter-spacing:1.2px;color:var(--muted)}
.plat-menu .pm-net.on{color:#8be3bf}.plat-menu .pm-net.off{color:#ff9b93}
.plat-menu .pm-clocks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 2px 4px}
.plat-menu .pm-clocks button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:50px;padding:7px 10px;border:1px solid var(--line);border-radius:2px;background:#0b111a;color:var(--text);font-family:var(--mono);text-align:left;cursor:pointer}
.plat-menu .pm-clocks button span{font-size:9px;font-weight:800;letter-spacing:1px;color:var(--muted);text-transform:uppercase}
.plat-menu .pm-clocks button b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.plat-menu .pm-clocks button[aria-pressed=true]{border-color:var(--accent-line);background:#ffac4c12}
.plat-menu .pm-clocks button[aria-pressed=true] span{color:var(--accent)}
/* Menu · Aplicação: instalar como app (passos por baixo do botão quando o navegador não tem pedido de instalação) */
.plat-menu [data-act=install] .pm-ico{background:var(--accent-soft)}
.plat-menu [data-act=install].pm-hl{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);animation:pmHl 1.4s ease-in-out 3}
@keyframes pmHl{50%{background:#ffac4c38}}
.plat-menu .pm-inst-help{margin:0 8px 6px 50px;font:500 11px/1.5 var(--mono);color:var(--muted)}
.plat-menu .pm-inst-help[hidden]{display:none}
.plat-menu .pm-inst-help ol{margin:0 0 6px;padding-left:17px}
.plat-menu .pm-inst-help li{margin:0 0 4px}
.plat-menu .pm-inst-help p{margin:0 0 6px}
.plat-menu .pm-inst-help b{color:var(--text)}
.plat-menu .pm-inst-help a{color:var(--accent)}
.plat-menu .pm-inst-help .pm-inst-go{display:inline-block;margin:0 0 4px;padding:7px 11px;border:1px solid var(--accent-line);border-radius:2px;font-weight:700;color:var(--accent);text-decoration:none}
.plat-menu .pm-inst-help .pm-inst-go:hover,.plat-menu .pm-inst-help .pm-inst-go:focus-visible{background:var(--accent-soft)}
@media(prefers-reduced-motion:reduce){.plat-menu [data-act=install].pm-hl{animation:none}}
/* barra da funcionalidade: botão Partilhar */
.secbar .pm-share-btn{flex:none}
.secbar .pm-share-btn .sb-ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1100px){.secbar .pm-share-btn .sb-txt{display:none}.secbar .pm-share-btn{width:40px;padding:0;justify-content:center}}
/* telemóvel: o menu ocupa a largura toda, por baixo do cabeçalho */
@media(max-width:560px){.plat-menu{right:0;left:0;width:auto;border-radius:0 0 2px 2px;border-left:0;border-right:0}}
@media print{.plat-menu,.pm-share-btn{display:none!important}}

/* Avisos compactos no telemóvel (js/plataforma.js): título e primeiras linhas, «Ler aviso completo» abre o resto */
.pm-more{display:none}
@media(max-width:700px){
 .pm-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
 .pm-open .pm-clamp,.pm-open.pm-clamp{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
 .pm-more{display:inline-flex;align-items:center;min-height:32px;margin:2px 0 0;padding:4px 10px;border:1px solid var(--accent-line);border-radius:2px;background:transparent;color:#ffc278;font:700 11px/1.2 var(--mono);letter-spacing:.3px;cursor:pointer}
 .pm-more[hidden]{display:none}
 /* o recorte das linhas não esconde o que cai na margem interior de baixo: essa margem passa a borda da cor do fundo */
 .disclaimer.pm-clamp:not(.pm-open){padding-bottom:0;border-bottom:11px solid #1a140d;box-shadow:0 1px 0 #6a4a2a}
 .disclaimer.pm-clamp+.pm-more{margin:-16px 0 18px}
 .live-warning .pm-more{border-color:#ff453a88;color:#ffd0cb}
}

/* Avisos compactos depois da 1.ª visita neste aparelho (js/plataforma.js, pm-brief), em qualquer ecrã */
.pm-more.pm-brief{display:inline-flex;align-items:center;min-height:28px;margin:2px 0 0;padding:3px 10px;border:1px solid var(--accent-line);border-radius:2px;background:transparent;color:#ffc278;font:700 11px/1.2 var(--mono);letter-spacing:.3px;cursor:pointer}
.pm-more.pm-brief[hidden]{display:none}
.disclaimer.pm-brief.pm-clamp:not(.pm-open){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;padding-bottom:0;border-bottom:11px solid #1a140d;box-shadow:0 1px 0 #6a4a2a}
.disclaimer.pm-brief.pm-clamp+.pm-more{margin:-10px 0 16px}
.live-warning.pm-brief:not(.pm-open){align-items:center;padding:8px 12px}
.live-warning.pm-brief:not(.pm-open) .lw-icon{width:24px;height:24px;font-size:14px}
.live-warning.pm-brief:not(.pm-open)>div:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.live-warning.pm-brief:not(.pm-open)>div:last-child>b{font-size:12px}
.live-warning.pm-brief:not(.pm-open) p,.live-warning.pm-brief:not(.pm-open) details{display:none}
.live-warning .pm-more.pm-brief{border-color:#ff453a88;color:#ffd0cb;margin:0}
@media print{.pm-more{display:none!important}}

/* Listas de registos em cartões no telemóvel (js/plataforma.js marca as tabelas com .pm-cards e data-label) */
@media(max-width:700px){
 table.pm-cards,table.pm-cards>tbody,table.pm-cards>tbody>tr{display:block;width:100%!important;min-width:0!important}
 table.pm-cards>thead{display:none}
 table.pm-cards>tbody>tr{margin:0 0 8px;padding:4px 10px;border:1px solid var(--line2);border-left:3px solid var(--lv,var(--line2));border-radius:2px;background:#0b111a}
 table.pm-cards>tbody>tr>td,table.pm-cards>tbody>tr>th{display:grid!important;grid-template-columns:minmax(84px,32%) minmax(0,1fr);align-items:center;gap:10px;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;position:static!important;padding:6px 0!important;border:0!important;border-top:1px solid #1d2835!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere;box-shadow:none!important}
 table.pm-cards>tbody>tr>:first-child{border-top:0!important}
 table.pm-cards>tbody>tr>[data-label]::before{content:attr(data-label);font-size:9.5px;font-weight:700;letter-spacing:.5px;line-height:1.3;text-transform:uppercase;color:var(--muted)}
 table.pm-cards>tbody>tr>[data-label=""]{grid-template-columns:minmax(0,1fr)}
 table.pm-cards>tbody>tr>[data-label=""]::before{display:none}
 .table-wrap:has(>table.pm-cards){overflow-x:visible;border:0;background:none}
}

/* Faixa «Há uma versão nova» (js/plataforma.js) */
.pm-update{position:fixed;left:50%;bottom:calc(48px + var(--sab));z-index:1960;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:min(470px,calc(100vw - 16px));padding:10px 10px 10px 14px;background:#111d2b;border:1px solid var(--accent-line);border-left:3px solid var(--accent);border-radius:2px;box-shadow:0 14px 44px #000c;font-family:var(--mono)}
.pm-update>span{display:flex;flex-direction:column;flex:1;min-width:0;color:var(--text);font-size:12px;line-height:1.35}
.pm-update>span small{margin-top:2px;font-size:10.5px;color:var(--muted)}
.pm-update-go{flex:none;height:36px;padding:0 14px;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:#15100a;font:700 12px/1 var(--mono);cursor:pointer}
.pm-update-x{flex:none;width:32px;height:36px;padding:0;border:0;background:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
@media print{.pm-update{display:none!important}}

/* Ficha da ocorrência (LiveOps) no telemóvel: secções 3 a 10 fechadas, abrem com um toque (js/plataforma.js) */
.pm-fold-btn{display:none}
@media(max-width:700px){
 section.pm-fold:not(.pm-open)>:not(.section-kicker):not(h2):not(.pm-fold-btn){display:none!important}
 section.pm-fold>.section-kicker,section.pm-fold>h2{cursor:pointer;-webkit-tap-highlight-color:transparent}
 section.pm-fold:not(.pm-open)>h2{margin-bottom:6px}
 .pm-fold-btn{display:inline-flex;align-items:center;min-height:36px;margin:0 0 10px;padding:4px 12px;border:1px solid var(--accent-line);border-radius:2px;background:#ffac4c10;color:#ffc278;font:700 11.5px/1.2 var(--mono);letter-spacing:.3px;cursor:pointer}
 section.pm-fold:not(.pm-open){padding-bottom:6px;border-bottom:1px solid var(--line)}
}

/* INFO · erros registados neste aparelho (js/plataforma.js) */
.pm-diag-list{margin:10px 0 0;padding-left:20px}
.pm-diag-list li{margin:0 0 9px}
.pm-diag-list b{display:block;font-size:11px;color:var(--muted);font-weight:600}
.pm-diag-list code{display:block;margin-top:2px;font:12px/1.5 var(--mono);color:#ffd0cb;overflow-wrap:anywhere}
.pm-diag-list small{display:block;font-size:10.5px;color:var(--dim)}
.pm-diag-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pm-diag-actions button{min-height:36px;padding:6px 12px;border:1px solid var(--line2);border-radius:2px;background:#0b111a;color:var(--text);font:600 12px/1.2 var(--mono);cursor:pointer}
.pm-diag-actions .pm-diag-copy{border-color:var(--accent);color:#ffc278}
.pm-diag-text{display:block;width:100%;min-height:140px;margin-top:8px;font:11px/1.4 var(--mono);background:#0b111a;color:var(--text);border:1px solid var(--line2);border-radius:2px}

/* Acessibilidade: o botão de aviso e autoria do rodapé tinha 13–16 px de altura; a área de toque passa à altura do rodapé
 * (o texto fica igual) */
.statusbar .status-credit{padding-top:6px;padding-bottom:6px}

/* Aviso curto («Ligação copiada»), js/plataforma.js */
.pm-toast{position:fixed;left:50%;bottom:calc(52px + var(--sab));z-index:1970;transform:translateX(-50%);max-width:calc(100vw - 24px);padding:9px 14px;border:1px solid var(--accent-line);border-radius:2px;background:#111d2b;color:var(--text);font:600 12px/1.3 var(--mono);box-shadow:0 10px 30px #000b}
.pm-toast[hidden]{display:none}

/* Ecrãs grandes: as páginas de dados ficavam presas a 1280 px, com muito espaço vazio dos lados */
@media(min-width:1480px){
 .data-body{max-width:min(1760px,calc(100vw - 72px))}
 /* páginas iniciais e barras das páginas de dados: a mesma largura útil (antes 1240–1500 px) */
 .home-hero,.home-start,.home-grid,.home-foot,.data-heading,.data-nav{padding-left:max(28px,calc((100vw - 1760px)/2));padding-right:max(28px,calc((100vw - 1760px)/2))}
 .home-logo{right:max(28px,calc((100vw - 1760px)/2))}
}

/* Mapas: ecrã inteiro (js/plataforma.js) e painel de camadas que rola dentro do mapa */
.pm-full-btn svg .fs-out,.pm-full-btn.on svg .fs-in{display:none}
.pm-full-btn.on svg .fs-out{display:inline}
.leaflet-container:fullscreen,.leaflet-container.pm-full{width:100%!important;height:100%!important;max-height:none!important;border-radius:0!important}
.leaflet-container.pm-full{position:fixed!important;inset:0;z-index:4000}
html.pm-full-on,html.pm-full-on body{overflow:hidden}
.pm-full-up{z-index:4000!important}
/* Gráficos, meteogramas e vista 3D em ecrã maior (botão no cabeçalho do cartão) */
.pm-big-btn{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;margin-left:auto;padding:0;border:1px solid #2a3a4c;border-radius:2px;background:#0d1520;color:#9fb3c6;cursor:pointer;align-self:center}
.pm-big-btn:hover,.pm-big-btn:focus-visible{color:#ffb15c;border-color:#ff9a3c}
.pm-big-btn svg{width:15px;height:15px}
.pm-big-btn svg .fs-out,.pm-big-btn.on svg .fs-in{display:none}.pm-big-btn.on svg .fs-out{display:inline}
.pm-bigcard:fullscreen,.pm-bigcard.pm-full{display:flex!important;flex-direction:column;gap:8px;width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;padding:14px 18px calc(14px + env(safe-area-inset-bottom))!important;border-radius:0!important;background:var(--card,#0e1621)!important;overflow:auto;box-sizing:border-box}
.pm-bigcard.pm-full{position:fixed!important;inset:0;z-index:4000}
.pm-bigcard:fullscreen>.meteo-canvas,.pm-bigcard.pm-full>.meteo-canvas,.pm-bigcard:fullscreen .chart-box,.pm-bigcard.pm-full .chart-box,.pm-bigcard:fullscreen .occ-3d,.pm-bigcard.pm-full .occ-3d{flex:1 1 auto;height:auto!important;min-height:260px;max-height:none!important}
.mlc-panel{overscroll-behavior:contain}
/* Sem rede · dados guardados (js/plataforma.js) */
.pm-offline{position:fixed;left:50%;top:calc(var(--menu-top,64px) + 4px);z-index:1940;transform:translateX(-50%);display:flex;align-items:flex-start;gap:10px;width:min(560px,calc(100vw - 16px));padding:9px 10px 9px 13px;background:#2a1d0c;border:1px solid #8a5a1c;border-left:3px solid #ffac4c;border-radius:2px;box-shadow:0 10px 30px #000b;font:12px/1.4 var(--mono);color:#f3dfc2}
.pm-offline[hidden]{display:none}
.pm-offline b{flex:none;color:#ffc278}
.pm-offline span{flex:1;min-width:0}
.pm-offline button{flex:none;border:0;background:none;color:inherit;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}
@media(max-width:560px){.pm-offline{flex-wrap:wrap}.pm-offline span{flex-basis:100%;order:3}}
@media print{.pm-offline{display:none!important}}
/* Cabeçalho e rodapé comuns na impressão e no PDF (js/plataforma.js) */
.pm-print-head,.pm-print-foot{display:none}
@media print{
 /* relatório: cabeçalho, quadro, fontes e avisos (o mesmo aspeto do relatório do Cicatriz) */
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 html,body{background:#fff!important}
 .pm-print-head{display:block!important;position:static!important;margin:0 0 4mm;color:#1f2933;font:8.6pt/1.45 "JetBrains Mono",Consolas,monospace;background:#fff}
 .pmr-top{display:flex;align-items:center;gap:12px;padding:0 0 2.5mm;border-bottom:3px solid #e8762c}
 .pmr-top img{flex:none;width:44px;height:44px}
 .pmr-t{flex:1;min-width:0}.pmr-t small{display:block;font-size:7.5pt;letter-spacing:1.4px;text-transform:uppercase;color:#b5520f;font-weight:700}
 .pmr-t h1{margin:1mm 0 0;font-size:16pt;line-height:1.2;color:#111}.pmr-t p{margin:.8mm 0 0;font-size:8.6pt;color:#4a5561}
 .pmr-when{flex:none;text-align:right;color:#1f2933}.pmr-when small{display:block;font-size:6.8pt;letter-spacing:.8px;text-transform:uppercase;color:#6b7785}.pmr-when b{font-size:10pt}
 .pmr-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6mm 4mm;margin:2.5mm 0;padding:0}
 .pmr-meta div{border-left:3px solid #e3e7eb;padding:.3mm 2.5mm}.pmr-meta dt{font-size:6.6pt;letter-spacing:1px;text-transform:uppercase;color:#6b7785}.pmr-meta dd{margin:0;font-size:8.2pt;font-weight:700;color:#1f2933;overflow-wrap:anywhere}
 .pmr-boxes{display:grid;grid-template-columns:1.3fr 1fr;gap:3mm;margin:1mm 0 0}
 .pmr-boxes section{margin:0;padding:2mm 3mm;border:1px solid #d9dfe5;border-radius:1.6mm;break-inside:avoid;background:#fff}
 .pmr-boxes h2{margin:0 0 .8mm;padding:0;border:0;font-size:7.4pt;letter-spacing:1.4px;text-transform:uppercase;color:#3b4652}
 .pmr-boxes ul{margin:0;padding-left:3.6mm}.pmr-boxes ul.pmr-cols{column-count:2;column-gap:6mm}.pmr-boxes ul.pmr-cols li{break-inside:avoid}.pmr-boxes li{margin:.4mm 0;font-size:7.4pt;line-height:1.4;color:#1f2933}
 .pmr-boxes .pmr-warn{border:1.5px solid #c0281a;background:#fff3f1}.pmr-warn li{color:#5b1a12}
 .pm-print-foot{display:block!important;margin-top:5mm;padding-top:1.5mm;border-top:1px solid #cfd6dd;color:#6b7785;font:7pt/1.4 "JetBrains Mono",Consolas,monospace}
 /* blocos que não se partem entre folhas; títulos sempre com o que vem a seguir */
 .analysis-graphic,.meteo-card,.sum-block,.hl-row,.sev-kpis article,.occ-kpis article,.ofc,figure,img,tr{break-inside:avoid}
 h2,h3,h4,.section-kicker,.live-sub{break-after:avoid}
 /* só para o ecrã: avisos da página (já estão em «Avisos»), navegação, seletores, botões, campos e controlos dos mapas */
 .disclaimer,.live-warning,.pm-more,.live-nav,.wx-filter,.seg,.no-print,.leaflet-control-container,.maplibregl-control-container,.mlc,.pm-big-btn,.mini-btn,.occ-3d-ctl,.pm-share-btn,
 button:not(.sum-row):not(.hl-row):not(.sent-table-row):not(.home-card):not(.mon-row),input,select,textarea,label:has(>input){display:none!important}
 .print-head{display:none!important}
 .pm-cam-btn,.pm-full-btn,.pm-big-btn{display:none!important}
}

/* Páginas iniciais no telemóvel, mais compactas (portal e ferramentas): símbolo pequeno no canto, título e lema, descrição e aviso
 * em 2 linhas; cartões das funcionalidades mais baixos, com a descrição em 2 linhas. O texto completo continua no INFO. */
@media(max-width:700px){
 .home-hero{min-height:0!important;padding:16px 16px 14px!important;align-items:flex-start!important}
 .home-hero .home-logo{position:absolute!important;top:14px!important;right:16px!important;left:auto!important;transform:none!important;width:58px!important;height:58px!important;opacity:1!important;margin:0!important}
 .home-intro{padding-top:0!important;margin-top:0!important}
 .home-intro .eyebrow{display:block;max-width:calc(100% - 70px);font-size:8.5px;line-height:1.5}
 .home-intro h1{font-size:24px!important;margin:4px 0 6px!important;max-width:calc(100% - 70px)}
 .home-intro p{font-size:12.5px!important;line-height:1.5!important;margin:0 0 6px!important}
 .home-intro>p:not(.home-tag):not(.home-warn),.home-intro .home-warn{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
 .home-grid{gap:10px!important;padding-top:12px!important}
 .home-card{padding:12px 14px 30px!important;gap:2px!important;min-height:0!important}
 .home-card b{font-size:16px!important}
 .home-card p{margin-top:4px!important;font-size:12px!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
 .home-card>i{bottom:8px!important}
 .home-card .tool-logo{height:56px!important}
}

/* Tamanho do texto (Menu · Preferências; js/plataforma.js): só os blocos de leitura crescem (zoom), sem mexer nos mapas, nos
 * gráficos nem na disposição; os blocos dentro de outro já aumentado não aumentam outra vez. */
html[data-pm-txt] :is(.data-table,.owx,.sev-kpis,.sent-table-row,.home-card,.home-intro,.disclaimer,.live-warning,.chart-note,.meteo-note,p.hint,.ofc,.mon-row,.info-content,.sum-bars,.side-meta,.occ-state-list):not(:is(.info-content,.home-card,.ofc,.mon-row,.sent-table-row,.disclaimer,.live-warning) *){zoom:var(--pm-txt)}
.pm-size{display:flex;align-items:center;gap:8px;padding:8px 10px}
.pm-size>span:not(.pm-ico){flex:1;min-width:0}
.pm-size button{width:34px;height:30px;border:1px solid #2a3a4c;border-radius:2px;background:#0d1520;color:#e6eef5;font:700 13px var(--mono,monospace);cursor:pointer}
.pm-size button:disabled{opacity:.35;cursor:default}
.pm-size .pm-size-v{min-width:46px;text-align:center;font-size:11px;color:#ffc278}

/* Tipografia mais calma (todas as ferramentas): notas técnicas legíveis (≥ 11,5 px, entrelinha folgada) e etiquetas dos cartões das
 * páginas iniciais em letra normal, em vez de maiúsculas espaçadas. */
.chart-note,.meteo-note,p.hint{font-size:11.5px;line-height:1.55}
.home-card .hc-k{text-transform:none!important;letter-spacing:.2px!important;font-size:11px!important}

/* Rodapé de cada folha impressa: aviso e número da página (as margens de cada ferramenta deixam lugar para ele) */
@page{@bottom-left{content:"SENTINELA · apoio à decisão, não informação oficial · confirme nas fontes oficiais";font:7pt "JetBrains Mono",monospace;color:#6b7785}@bottom-right{content:"Página " counter(page) " de " counter(pages);font:7pt "JetBrains Mono",monospace;color:#6b7785}}

/* Páginas iniciais no computador e tablet mais baixas (como o cabeçalho do painel DECIR): os cartões das funcionalidades ficam
 * logo à vista, sem rolar. O texto é o mesmo; o símbolo encolhe com a faixa. */
@media(min-width:701px){
 .home-hero{min-height:0!important;padding-top:22px!important;padding-bottom:20px!important}
 .home-intro .eyebrow{margin-bottom:2px}
 .home-start{margin-top:14px!important;margin-bottom:10px!important}
}


/* ===== Sala de operações: menos ruído, a mesma informação (computador e tablet, ≥ 701 px) =====
 * · Avisos já lidos neste aparelho (pm-brief): uma linha, com «Ler aviso completo» dentro da caixa, à direita.
 * · Tabelas: a linha por baixo do rato fica marcada à esquerda (as cores das classes oficiais não mudam) e os números alinham.
 * · Gráficos: o local dos valores passa a texto discreto no cabeçalho do cartão (era uma etiqueta com contorno). */
@media(min-width:701px){
 .disclaimer.pm-brief.pm-clamp:not(.pm-open){-webkit-line-clamp:1;line-clamp:1;padding-right:190px;margin-bottom:0!important}
 .disclaimer.pm-brief.pm-clamp:not(.pm-open)+.pm-more{display:flex;width:max-content;margin:-35px 10px 18px auto;position:relative}
 .meteo-head .mc-place{border:0!important;background:none!important;padding:0!important;color:var(--muted)!important;font-weight:600}
}
@media(hover:hover){table tbody tr:hover>:first-child{box-shadow:inset 3px 0 0 var(--accent)}}
table td,table th{font-variant-numeric:tabular-nums}

/* ===== Títulos com a mesma hierarquia em toda a plataforma (todas as larguras) =====
 *  1. Secção: «1 · SITUAÇÃO» (laranja) e o título na mesma linha, com um traço por baixo a toda a largura.
 *  2. Quadro, gráfico ou subsecção (h3, cabeçalho dos gráficos): maiúsculas pequenas, cinzento claro; o complemento
 *     (unidades, «clique para…») fica em minúsculas, mais discreto.
 *  Os textos são os mesmos; muda só o aspeto. INFO e manual (janelas) ficam como estão. */
.section-kicker:has(+h2){float:left;margin:0 14px 0 0;font:800 17px/28px var(--mono);letter-spacing:.6px;color:var(--accent);text-transform:uppercase}
.section-kicker+h2{display:block;margin:0 0 14px;padding:0 0 6px;border-bottom:1px solid var(--line);font:500 13px/28px var(--mono);letter-spacing:0;color:var(--muted)}
@media(max-width:560px){.section-kicker:has(+h2){float:none;display:block;font-size:16px;line-height:22px;margin:0}.section-kicker+h2{line-height:20px}}
:is(main,section,.data-page,.data-body,.live-page,.pane) h3:not(dialog h3):not(.info-section h3):not(#methodContent h3),
.meteo-head>b,.chart-title,.stack-title{font-family:var(--mono);font-size:11px!important;font-weight:800!important;letter-spacing:.9px!important;text-transform:uppercase;color:#c9d5e1}
:is(main,section,.data-page,.data-body,.live-page,.pane) h3:not(dialog h3) small,.chart-title small,.stack-title small{font-size:10.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
/* ícones «!» dos avisos: quadrados, como o resto */
.live-warning .lw-icon{border-radius:2px!important}
/* Números, áreas e datas das tabelas numa só linha (não partem «65 853 / ha» nem «13/08, / 00:00») */
:is(table) td:is([data-label="Área"],[data-label="Início"],[data-label="Fim"],[data-label="Data"],[data-label="Hora"],[data-label^="N.º"]){white-space:nowrap}
/* Modo parede (js/plataforma.js, ?parede=1): sem menus nem barras, rotação automática e barra discreta em cima à direita */
.pm-wallbar{display:none}
html.pm-wall .topbar,html.pm-wall .statusbar,html.pm-wall .pm-update{display:none!important}
html.pm-wall body,html.pm-wall body[data-module]{padding-left:0!important;--head:0px}
html.pm-wall .secbar{border-top:0}
/* nas páginas das áreas a barra fica dentro do cabeçalho (sem tapar nada); os botões de ação saem, ninguém mexe num ecrã de parede */
html.pm-wall .secbar .sec-btn,html.pm-wall .secbar .run-button,html.pm-wall .secbar>.primary{display:none!important}
html.pm-wall .secbar>.pm-wallbar{position:static;flex:none;margin-left:auto;box-shadow:none}
html.pm-wall .pm-wallbar{position:fixed;top:calc(6px + var(--sat,0px));right:10px;z-index:3000;display:flex;align-items:center;gap:8px;padding:4px 4px 4px 10px;border:1px solid #2a3a4c;border-radius:2px;background:#0b111af0;box-shadow:0 6px 18px #0008;font:600 11px/1 var(--mono,monospace);color:#aebccb}
.pm-wallbar .pw-t{font-size:9.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent,#ffac4c)}
.pm-wallbar .pw-clk{font-size:15px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.pm-wallbar button{min-width:30px;height:26px;padding:0 8px;border:1px solid #2a3a4c;border-radius:2px;background:#121c28;color:#dce5ee;font:700 12px/1 var(--mono,monospace);cursor:pointer}
.pm-wallbar button:hover{border-color:var(--accent,#ffac4c);color:var(--accent,#ffac4c)}
@media print{.pm-wallbar{display:none!important}}
/* «Para começar…» no topo da página (js/plataforma.js, placeHint), sem tapar nada */
html .operation-notice.start-hint.pm-inline{position:static!important;transform:none!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;max-width:none!important;margin:0 0 12px!important;box-shadow:none!important}
/* Barra de baixo: o texto curto numa só linha (não cresce para cima nem tapa botões flutuantes) */
.statusbar .sc-short{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}

/* Tabelas largas (classe posta pelo plataforma.js só quando a tabela desliza para o lado): 1.ª coluna presa à esquerda */
table.pm-wide>tbody>tr>:first-child:not([colspan]),table.pm-wide>tfoot>tr>:first-child:not([colspan]){position:sticky;left:0;z-index:1;background:var(--card,#0e1621);box-shadow:1px 0 0 #273547}
table.pm-wide>thead>tr>:first-child{position:sticky;left:0;z-index:3;box-shadow:1px 0 0 #273547}

@media(max-width:899px){
 /* Incêndios rurais: as vistas da funcionalidade (ex.: Sentinel-2 · Mapa) numa linha própria, todas à vista, em vez de apertadas a deslizar */
 .secbar:has(>#viewNav>button:not([hidden])){flex-wrap:wrap;row-gap:6px}
 .secbar>#viewNav:has(>button:not([hidden])){order:9;flex:1 0 100%;display:flex;gap:4px;overflow:visible;margin:0;padding:0}
 .secbar>#viewNav>button:not([hidden]){flex:1 1 0;min-height:36px;justify-content:center;text-align:center}
}
