/* Portal MKT e IM — complementos ao padrão visual Max Mohr v1.0 (tokens.css + componentes.css).
   Só variáveis --mm-*: nenhum hex fixo, para o tema escuro funcionar sozinho. */

[hidden]{display:none!important}

/* ---------- layout ---------- */
.mm-app{grid-template-columns:260px minmax(0,1fr)}
.mm-menu{position:sticky;top:0;height:100vh;overflow-y:auto;padding-bottom:var(--mm-esp-4);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
.mm-menu .mm-menu-logo{height:34px;margin:0 var(--mm-esp-2) var(--mm-esp-2)}
.menu-sub{font-size:var(--mm-texto-xs);color:rgba(255,255,255,.62);margin:0 var(--mm-esp-2) var(--mm-esp-5);letter-spacing:.04em}
.menu-grupo{font-size:11px;font-weight:var(--mm-peso-semi);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:var(--mm-esp-4) var(--mm-esp-3) var(--mm-esp-1)}
.mm-menu a{line-height:1.3}
.mm-menu a .tag-obra{margin-left:auto;flex:none;white-space:nowrap;font-size:9px;font-weight:var(--mm-peso-semi);letter-spacing:.06em;padding:2px 6px;border-radius:var(--mm-raio-sm);background:rgba(255,255,255,.12);color:rgba(255,255,255,.75);text-transform:uppercase}
.mm-menu a .tag-obra svg{width:11px;height:11px}
.menu-rodape{margin-top:auto;padding-top:var(--mm-esp-5);position:relative;z-index:1}
.menu-usuario{display:flex;align-items:center;gap:var(--mm-esp-3);padding:var(--mm-esp-3);border-radius:var(--mm-raio);background:rgba(255,255,255,.08);margin-top:var(--mm-esp-3)}
.menu-usuario .avatar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;font-weight:var(--mm-peso-forte);font-size:13px;flex:none}
.menu-usuario .quem{min-width:0;line-height:1.25}
.menu-usuario .quem b{display:block;font-size:var(--mm-texto-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-usuario .quem small{font-size:11px;color:rgba(255,255,255,.65)}
.menu-usuario form{margin-left:auto}
.menu-usuario button{background:none;border:0;color:rgba(255,255,255,.8);cursor:pointer;padding:6px;border-radius:6px;display:grid;place-items:center}
.menu-usuario button:hover{background:rgba(255,255,255,.12);color:#fff}
.menu-usuario button svg{width:18px;height:18px}
.mm-conteudo{padding:var(--mm-esp-6) var(--mm-esp-7) var(--mm-esp-8)}
.mm-topo{flex-wrap:wrap}
.acoes{display:flex;gap:var(--mm-esp-3);flex-wrap:wrap;align-items:center}
.mm h1{font-size:30px}
.mm-conteudo a:not(.mm-btn):not(.mm-card):not(.cal-evento){color:var(--mm-link)}
.mm-btn{text-decoration:none;white-space:nowrap}
a.mm-btn-primario,a.mm-btn-primario:visited{color:var(--mm-primario-texto)}
a.mm-btn-secundario,a.mm-btn-secundario:visited{color:var(--mm-titulo)}
a.mm-btn-texto{color:var(--mm-link)}
.mm-btn-pequeno{height:32px;padding:0 var(--mm-esp-3);font-size:var(--mm-texto-xs)}
.mm-btn-perigo{background:var(--mm-superficie);color:var(--mm-erro-texto);border-color:var(--mm-borda-forte)}
.mm-btn-perigo:hover{background:var(--mm-erro-fundo)}
.mm-btn[disabled]{opacity:.5;cursor:not-allowed}
.botao-menu{display:none}

/* ---------- mensagens ---------- */
.mensagens{display:flex;flex-direction:column;gap:var(--mm-esp-2)}
.msg{display:flex;gap:var(--mm-esp-3);align-items:flex-start;padding:var(--mm-esp-3) var(--mm-esp-4);border-radius:var(--mm-raio);border-left:4px solid;font-size:var(--mm-texto-sm)}
.msg svg{width:18px;height:18px;flex:none;margin-top:2px}
.msg.sucesso{background:var(--mm-sucesso-fundo);border-color:var(--mm-sucesso-texto);color:var(--mm-texto)} .msg.sucesso svg{color:var(--mm-sucesso-texto)}
.msg.erro{background:var(--mm-erro-fundo);border-color:var(--mm-erro-texto);color:var(--mm-texto)} .msg.erro svg{color:var(--mm-erro-texto)}
.msg.info{background:var(--mm-info-fundo);border-color:var(--mm-info-texto);color:var(--mm-texto)} .msg.info svg{color:var(--mm-info-texto)}
.msg.alerta{background:var(--mm-alerta-fundo);border-color:var(--mm-alerta);color:var(--mm-texto)} .msg.alerta svg{color:var(--mm-alerta-texto)}

/* ---------- indicadores ---------- */
.mm-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.mm-kpi .mm-kpi-valor{font-size:32px}
.mm-kpi .mm-kpi-valor.medio{font-size:24px;white-space:nowrap;padding:6px 0 4px}
.kpi-nota{font-size:var(--mm-texto-xs);color:var(--mm-texto-2)}
.kpi-nota.alerta{color:var(--mm-alerta-texto);font-weight:var(--mm-peso-semi)}
.kpi-nota.erro{color:var(--mm-erro-texto);font-weight:var(--mm-peso-semi)}
a.mm-kpi{text-decoration:none;color:inherit;transition:box-shadow var(--mm-transicao)}
a.mm-kpi:hover{box-shadow:var(--mm-sombra-2)}

/* ---------- abas ---------- */
.abas{display:flex;gap:var(--mm-esp-1);border-bottom:1.5px solid var(--mm-borda);overflow-x:auto}
.abas a{padding:10px var(--mm-esp-4);font-size:var(--mm-texto-sm);font-weight:var(--mm-peso-semi);color:var(--mm-texto-2);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1.5px;white-space:nowrap;display:inline-flex;gap:8px;align-items:center}
.abas a:hover{color:var(--mm-titulo)}
.abas a[aria-current="page"]{color:var(--mm-titulo);border-image:var(--mm-grad-assinatura) 1}
.abas .conta{font-size:11px;background:var(--mm-superficie-alt);border-radius:10px;padding:1px 7px;color:var(--mm-texto-2)}

/* ---------- filtros e formulários ---------- */
.filtros{display:flex;gap:var(--mm-esp-3);flex-wrap:wrap;align-items:flex-end}
.filtros .mm-campo label{font-size:var(--mm-texto-xs);color:var(--mm-texto-2)}
.form-grade{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--mm-esp-4)}
.form-grade .c12{grid-column:span 12}.form-grade .c8{grid-column:span 8}.form-grade .c6{grid-column:span 6}
.form-grade .c4{grid-column:span 4}.form-grade .c5{grid-column:span 5}.form-grade .c9{grid-column:span 9}.form-grade .c3{grid-column:span 3}.form-grade .c2{grid-column:span 2}
.form-secao{grid-column:span 12;margin-top:var(--mm-esp-3);padding-top:var(--mm-esp-4);border-top:1px solid var(--mm-grade)}
.form-secao:first-child{margin-top:0;padding-top:0;border-top:0}
.form-secao h3{font-size:var(--mm-texto-lg)}
.form-secao p{margin:4px 0 0;color:var(--mm-texto-2);font-size:var(--mm-texto-sm)}
textarea.mm-input{height:auto;min-height:88px;padding:10px var(--mm-esp-3);resize:vertical;line-height:1.45}
select.mm-input{appearance:auto;padding-right:var(--mm-esp-2)}
.mm-input[type=file]{height:auto;padding:8px}
.ajuda{font-size:var(--mm-texto-xs);color:var(--mm-texto-2)}
.obrigatorio::after{content:" *";color:var(--mm-erro-texto)}
.form-acoes{display:flex;gap:var(--mm-esp-3);justify-content:flex-end;align-items:center;margin-top:var(--mm-esp-5);flex-wrap:wrap}
.form-acoes .esquerda{margin-right:auto}
.check{display:flex;gap:10px;align-items:center;font-size:var(--mm-texto-sm);cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--mm-primario)}
.form-inline{display:flex;gap:var(--mm-esp-3);flex-wrap:wrap;align-items:flex-end}
.form-inline .mm-campo{flex:1 1 160px}
.form-inline .mm-campo.largo{flex:3 1 260px}

/* ---------- tabelas ---------- */
.tabela-rolagem{overflow-x:auto;margin:0 calc(var(--mm-esp-5) * -1);padding:0 var(--mm-esp-5)}
.mm-tabela td.quebra{white-space:normal;min-width:220px}
.mm-tabela td a{text-decoration:none;font-weight:var(--mm-peso-semi)}
.mm-tabela td a:hover{text-decoration:underline}
.mm-tabela tr.inativo td{color:var(--mm-texto-3)}
.mm-tabela tfoot td{font-weight:var(--mm-peso-forte);border-bottom:0;border-top:1.5px solid var(--mm-borda)}
.sub{display:block;font-size:var(--mm-texto-xs);color:var(--mm-texto-2);font-weight:var(--mm-peso-normal)}
.vazio{padding:var(--mm-esp-6) var(--mm-esp-4);text-align:center;color:var(--mm-texto-2)}
.vazio svg{width:36px;height:36px;color:var(--mm-texto-3);margin-bottom:var(--mm-esp-2)}
.vazio p{margin:0 0 var(--mm-esp-3)}
.positivo{color:var(--mm-sucesso-texto)} .negativo{color:var(--mm-erro-texto)}

/* ---------- cards de detalhe ---------- */
.grade-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--mm-esp-4)}
.grade-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--mm-esp-4)}
.grade-2-1{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--mm-esp-4);align-items:start}
.dados{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--mm-esp-4) var(--mm-esp-5);margin:0}
.dados div{min-width:0}
.dados dt{font-size:var(--mm-texto-xs);font-weight:var(--mm-peso-semi);letter-spacing:.1em;text-transform:uppercase;color:var(--mm-texto-2);margin-bottom:2px}
.dados dd{margin:0;font-size:var(--mm-texto-md);overflow-wrap:anywhere}
.texto-livre{white-space:pre-wrap;font-size:var(--mm-texto-sm);margin:0}
.card-titulo{display:flex;justify-content:space-between;align-items:center;gap:var(--mm-esp-3);margin-bottom:var(--mm-esp-4);flex-wrap:wrap}
.card-titulo h3{font-size:var(--mm-titulo-sm)}
.lista-anexos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lista-anexos li{display:flex;align-items:center;gap:8px;font-size:var(--mm-texto-sm)}
.lista-anexos svg{width:16px;height:16px;color:var(--mm-texto-2);flex:none}
.lista-anexos form{margin-left:auto}
.lista-anexos button{background:none;border:0;color:var(--mm-texto-3);cursor:pointer;padding:4px;border-radius:4px}
.lista-anexos button:hover{color:var(--mm-erro-texto);background:var(--mm-erro-fundo)}
.barra-progresso{height:8px;border-radius:4px;background:var(--mm-superficie-alt);overflow:hidden;margin-top:6px}
.barra-progresso i{display:block;height:100%;background:var(--mm-serie-1);border-radius:4px}
.migalha{font-size:var(--mm-texto-sm);margin-bottom:4px}
.migalha a{text-decoration:none;color:var(--mm-texto-2)}
.migalha a:hover{color:var(--mm-link)}

/* checklist */
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:var(--mm-esp-3);align-items:center;padding:10px 0;border-bottom:1px solid var(--mm-grade);font-size:var(--mm-texto-sm)}
.checklist li:last-child{border-bottom:0}
.checklist li.feito .desc{text-decoration:line-through;color:var(--mm-texto-3)}
.checklist .desc{flex:1;min-width:0}
.checklist button.marcar{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--mm-borda-forte);background:var(--mm-superficie);cursor:pointer;display:grid;place-items:center;padding:0;color:var(--mm-primario-texto)}
.checklist li.feito button.marcar{background:var(--mm-primario);border-color:var(--mm-primario)}
.checklist button.marcar svg{width:14px;height:14px}
.icone-btn{background:none;border:0;cursor:pointer;color:var(--mm-texto-3);padding:6px;border-radius:6px;display:inline-grid;place-items:center}
.icone-btn:hover{color:var(--mm-erro-texto);background:var(--mm-erro-fundo)}
.icone-btn svg{width:16px;height:16px}

/* ---------- calendário ---------- */
.cal-cab{display:flex;align-items:center;justify-content:space-between;gap:var(--mm-esp-3);margin-bottom:var(--mm-esp-4);flex-wrap:wrap}
.cal-cab h2{font-size:var(--mm-titulo-md);text-transform:capitalize}
.calendario{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--mm-borda);border-radius:var(--mm-raio);overflow:hidden;background:var(--mm-borda);gap:1px}
.calendario .dia-semana{background:var(--mm-superficie-alt);padding:8px;font-size:var(--mm-texto-xs);font-weight:var(--mm-peso-semi);letter-spacing:.1em;text-transform:uppercase;color:var(--mm-texto-2);text-align:center}
.calendario .dia{background:var(--mm-superficie);min-height:112px;padding:6px;display:flex;flex-direction:column;gap:3px;position:relative}
.calendario .dia.fora{background:var(--mm-superficie-alt)}
.calendario .dia.fora .num{color:var(--mm-texto-3)}
.calendario .num{font-size:var(--mm-texto-xs);font-weight:var(--mm-peso-semi);color:var(--mm-texto-2);display:flex;justify-content:space-between;align-items:center}
.calendario .dia.hoje .num b{background:var(--mm-primario);color:var(--mm-primario-texto);border-radius:10px;padding:1px 7px}
.calendario .novo-dia{opacity:0;color:var(--mm-link);text-decoration:none;font-size:16px;line-height:1;padding:0 4px}
.calendario .dia:hover .novo-dia{opacity:1}
.cal-evento{display:block;font-size:12px;line-height:1.3;padding:3px 6px;border-radius:4px;background:var(--mm-info-fundo);color:var(--mm-texto);text-decoration:none;border-left:3px solid var(--mm-serie-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-evento:hover{filter:brightness(.96)}
.cal-evento.argamassa{border-left-color:var(--mm-linha-argamassa)}
.cal-evento.express{border-left-color:var(--mm-linha-express)}
.cal-evento.institucional{border-left-color:var(--mm-texto-3)}
.cal-evento.cancelado{text-decoration:line-through;opacity:.6}
.cal-evento.realizado{background:var(--mm-superficie-alt)}

/* ---------- página inicial ---------- */
.boas-vindas{position:relative;overflow:hidden;border-radius:var(--mm-raio);padding:var(--mm-esp-6);background:var(--mm-grad-marca);color:#fff}
.boas-vindas h1{color:#fff;font-size:30px}
.boas-vindas p{margin:var(--mm-esp-2) 0 0;color:rgba(255,255,255,.82);max-width:640px}
.boas-vindas .mm-rotulo{color:rgba(255,255,255,.7)}
.cards-paineis{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--mm-esp-4)}
.card-painel{display:flex;flex-direction:column;gap:var(--mm-esp-2);text-decoration:none;color:inherit;transition:box-shadow var(--mm-transicao),transform var(--mm-transicao)}
.card-painel:hover{box-shadow:var(--mm-sombra-2);transform:translateY(-1px)}
.card-painel .icone{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--mm-info-fundo);color:var(--mm-titulo)}
.card-painel .icone svg{width:22px;height:22px}
.card-painel h3{font-size:var(--mm-texto-lg)}
.card-painel p{margin:0;font-size:var(--mm-texto-sm);color:var(--mm-texto-2)}
.card-painel .rodape{margin-top:auto;padding-top:var(--mm-esp-2)}
.card-painel.em-obra{opacity:.82}
.atencao{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.atencao li{display:flex;gap:var(--mm-esp-3);align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--mm-grade);font-size:var(--mm-texto-sm)}
.atencao li:last-child{border-bottom:0}
.atencao li .mm-status{flex:none}
.atencao li a{text-decoration:none;font-weight:var(--mm-peso-semi)}

/* ---------- em construção ---------- */
.construcao{position:relative;overflow:hidden;text-align:center;padding:var(--mm-esp-8) var(--mm-esp-5)}
.construcao .icone-grande{width:72px;height:72px;border-radius:18px;margin:0 auto var(--mm-esp-4);display:grid;place-items:center;background:var(--mm-info-fundo);color:var(--mm-titulo)}
.construcao .icone-grande svg{width:36px;height:36px}
.construcao h2{font-size:28px}
.construcao p{color:var(--mm-texto-2);max-width:560px;margin:var(--mm-esp-3) auto 0}
.construcao ul{text-align:left;max-width:520px;margin:var(--mm-esp-5) auto 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.construcao li{display:flex;gap:10px;font-size:var(--mm-texto-sm)}
.construcao li svg{width:18px;height:18px;flex:none;color:var(--mm-link);margin-top:1px}

/* ---------- login ---------- */
.tela-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,1fr)}
.login-marca{position:relative;overflow:hidden;background:var(--mm-grad-marca);color:#fff;padding:var(--mm-esp-8);display:flex;flex-direction:column;justify-content:space-between}
.login-marca img{height:44px;align-self:flex-start;position:relative;z-index:1}
.login-marca h1{color:#fff;font-size:40px;line-height:1.1;position:relative;z-index:1}
.login-marca p{color:rgba(255,255,255,.8);max-width:440px;position:relative;z-index:1}
.login-form{display:flex;align-items:center;justify-content:center;padding:var(--mm-esp-6)}
.login-form .caixa{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--mm-esp-4)}

/* ---------- radar ---------- */
.moldura-radar{width:100%;height:calc(100vh - 210px);min-height:560px;border:1px solid var(--mm-borda);border-radius:var(--mm-raio);background:var(--mm-superficie);box-shadow:var(--mm-sombra-1)}

/* ---------- redes sociais ---------- */
.kpis-compactos{grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:var(--mm-esp-3)}
.kpis-compactos .mm-kpi{padding:var(--mm-esp-4)}
.kpis-compactos .mm-kpi .mm-kpi-valor{font-size:26px}
.kpis-compactos .mm-delta,.kpis-compactos .kpi-nota{font-size:11px}
.grade-redes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--mm-esp-4)}
.conta-rede{display:flex;gap:var(--mm-esp-3);align-items:center;flex-wrap:wrap}
.conta-rede b{display:block;font-size:var(--mm-texto-lg)}
.conta-rede b a{text-decoration:none}
.conta-rede .direita{text-align:right}
.conta-alerta{flex-basis:100%;display:flex;gap:8px;align-items:flex-start;padding-top:8px;border-top:1px solid var(--mm-grade)}
.marca-rede{width:10px;align-self:stretch;min-height:40px;border-radius:5px;flex:none}
.grafico{min-height:260px}
.grafico svg{display:block;width:100%;height:auto}
.barra-h{margin-bottom:14px}
.barra-h .rot{display:flex;justify-content:space-between;gap:8px;font-size:var(--mm-texto-sm);margin-bottom:4px}
.barra-h .rot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barra-h .trilho{height:10px;border-radius:5px;background:var(--mm-superficie-alt);overflow:hidden}
.barra-h .trilho i{display:block;height:100%;border-radius:5px}
.dica-grafico{position:fixed;pointer-events:none;background:var(--mm-texto);color:var(--mm-superficie);font-size:12px;padding:6px 10px;border-radius:6px;opacity:0;transition:opacity .1s;z-index:60}
.passo-a-passo{margin-top:var(--mm-esp-4);border-top:1px solid var(--mm-grade);padding-top:var(--mm-esp-3)}
.passo-a-passo summary{cursor:pointer;font-weight:var(--mm-peso-semi);color:var(--mm-link)}
.passo-a-passo ol{margin:12px 0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:var(--mm-texto-sm)}
.passo-a-passo code{background:var(--mm-superficie-alt);padding:2px 6px;border-radius:4px;font-size:12px;user-select:all}

/* ---------- mapeamento de mercado ---------- */
.mapa-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--mm-esp-4);align-items:start}
.mapa-grande{height:calc(100vh - 300px);min-height:520px;border-radius:var(--mm-raio);border:1px solid var(--mm-borda);box-shadow:var(--mm-sombra-1);z-index:0}
.mapa-medio{height:380px;border-radius:var(--mm-raio);border:1px solid var(--mm-borda);z-index:0}
.camadas{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 300px);overflow:auto}
.camadas h4{margin:14px 0 6px;font-size:var(--mm-texto-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--mm-texto-2)}
.camadas h4:first-child{margin-top:0}
.camadas label{display:flex;align-items:center;gap:8px;font-size:var(--mm-texto-sm);padding:4px 2px;cursor:pointer}
.camadas label input{width:16px;height:16px;accent-color:var(--mm-primario)}
.camadas label .n{margin-left:auto;font-size:11px;color:var(--mm-texto-3);flex:none}
.camadas label .txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camadas label.todos{border-bottom:1px solid var(--mm-grade);padding-bottom:6px;margin-bottom:2px}
.camadas label input,.camadas .leg{flex:none}
.pin{display:block;width:18px;height:18px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);margin:2px}
.pin-mm{width:22px;height:22px;margin:0;border-radius:5px;background:var(--mm-primario) url("marca/simbolo-branco.svg") center/14px no-repeat}
.pin-conc{border-radius:50%;background:var(--cor)}
.pin-poi{width:14px;height:14px;margin:4px;transform:rotate(45deg);border-radius:2px;background:var(--mm-texto-2)}
.leg{display:inline-block;width:12px;height:12px;flex:none;border:1.5px solid var(--mm-superficie);box-shadow:0 0 0 1px var(--mm-borda)}
.leg.mm{border-radius:3px;background:var(--mm-primario)}
.leg.conc{border-radius:50%}
.leg.poi{width:9px;height:9px;transform:rotate(45deg);background:var(--mm-texto-2);margin:0 1.5px}
.raio-mm{stroke:var(--mm-primario);fill:var(--mm-primario);fill-opacity:.07;stroke-width:1.5;stroke-dasharray:4 4}
.raio-conc{stroke:var(--mm-serie-2);fill:var(--mm-serie-2);fill-opacity:.04;stroke-width:1;stroke-dasharray:2 5}
.pop{display:flex;flex-direction:column;gap:3px;font-family:var(--mm-fonte);font-size:13px;min-width:200px;max-width:280px}
.pop b{color:var(--mm-titulo)}
.pop-rot{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mm-texto-2)}
.pop-desc{white-space:pre-wrap;color:var(--mm-texto-2);font-size:12px;max-height:110px;overflow:auto}
.pop-dist{margin-top:4px;padding-top:4px;border-top:1px solid var(--mm-grade);font-size:12px}
.pop-link{margin-top:4px;font-size:12px}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--mm-superficie);color:var(--mm-texto)}
.leaflet-container{font-family:var(--mm-fonte);background:var(--mm-superficie-alt)}
:root[data-tema="escuro"] .leaflet-tile-pane{filter:brightness(.75) contrast(1.1) saturate(.7)}
.linha-tempo{list-style:none;margin:0;padding:0}
.linha-tempo li{position:relative;padding:0 0 18px 22px;border-left:2px solid var(--mm-grade);margin-left:6px}
.linha-tempo li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--mm-superficie);border:2px solid var(--mm-link)}
.linha-tempo li:last-child{border-left-color:transparent}
.linha-tempo .cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--mm-texto-xs);color:var(--mm-texto-2)}
.linha-tempo p{margin:4px 0 0;white-space:pre-wrap;font-size:var(--mm-texto-sm)}
.ameaca-Alta{background:var(--mm-erro-fundo);color:var(--mm-erro-texto)}
.ameaca-Média{background:var(--mm-alerta-fundo);color:var(--mm-alerta-texto)}
.ameaca-Baixa{background:var(--mm-sucesso-fundo);color:var(--mm-sucesso-texto)}
@media (max-width:1000px){.mapa-layout{grid-template-columns:1fr}.camadas{max-height:none}}

/* ---------- permissões ---------- */
.grade-permissoes td,.grade-permissoes th{text-align:center}
.grade-permissoes td:first-child,.grade-permissoes th:first-child{text-align:left}
.grade-permissoes input{width:18px;height:18px;accent-color:var(--mm-primario);cursor:pointer}
.grade-permissoes tr.grupo td{background:var(--mm-superficie-alt);font-size:var(--mm-texto-xs);font-weight:var(--mm-peso-semi);letter-spacing:.12em;text-transform:uppercase;color:var(--mm-texto-2);padding:6px 12px}
.senha-mostrada{font-family:Consolas,"Cascadia Mono",monospace;font-size:26px;letter-spacing:.08em;padding:var(--mm-esp-3) var(--mm-esp-4);border:1.5px dashed var(--mm-borda-forte);border-radius:var(--mm-raio);background:var(--mm-superficie-alt);color:var(--mm-titulo);display:inline-block;user-select:all}
details.auditoria summary{cursor:pointer;color:var(--mm-link);font-size:var(--mm-texto-xs)}
details.auditoria pre{white-space:pre-wrap;font-size:12px;background:var(--mm-superficie-alt);padding:8px;border-radius:6px;max-width:520px;margin:6px 0 0}

/* ---------- diálogo de confirmação ---------- */
dialog.confirma{border:1px solid var(--mm-borda);border-radius:var(--mm-raio);padding:var(--mm-esp-5);max-width:440px;background:var(--mm-superficie);color:var(--mm-texto);box-shadow:var(--mm-sombra-2)}
dialog.confirma::backdrop{background:rgba(14,18,36,.45)}
dialog.confirma p{margin:0 0 var(--mm-esp-5)}

/* ---------- responsivo ---------- */
@media (max-width:1100px){.grade-3{grid-template-columns:1fr 1fr}.grade-2-1{grid-template-columns:1fr}}
@media (max-width:900px){
  .mm-app{grid-template-columns:1fr}
  .mm-menu{position:fixed;inset:0 auto 0 0;width:270px;z-index:50;transform:translateX(-100%);transition:transform .2s}
  body.menu-aberto .mm-menu{transform:none;box-shadow:var(--mm-sombra-2)}
  .botao-menu{display:inline-flex}
  .mm-conteudo{padding:var(--mm-esp-4) var(--mm-esp-4) var(--mm-esp-7)}
  .grade-2,.grade-3{grid-template-columns:1fr}
  .form-grade>*{grid-column:span 12!important}
  .tela-login{grid-template-columns:1fr}.login-marca{min-height:220px;padding:var(--mm-esp-5)}.login-marca h1{font-size:28px}
  .calendario .dia{min-height:72px}.cal-evento{font-size:10px;padding:2px 4px}
  .mm h1{font-size:24px}
}
@media print{.mm-menu,.acoes,.botao-menu,.form-acoes{display:none!important}.mm-app{grid-template-columns:1fr}}
