/* Fontes embutidas no app (licença SIL OFL 1.1 — ver src/fonts/LICENSE-*.txt). Nada é baixado de fora. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("fonts/inter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/inter-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url("fonts/fraunces-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/fraunces-latin-700-normal.woff2") format("woff2")}

:root{
  --navy:#122A47; --navy-2:#0C1E34; --blue:#2D6CDF; --blue-2:#1F57C0; --blue-soft:#E6EEFC;
  --pri-bg:#2D6CDF; --pri-bg-2:#1F57C0; --pri-text:#fff;
  --green:#1E8E5A; --green-soft:#E3F3EA; --yellow:#8A5F00; --yellow-bg:#F6C443; --yellow-soft:#FBF1D6;
  --red:#C0392B; --red-soft:#F9E3E0; --violet:#5B4BC4; --violet-soft:#ECE9FB;
  --bg:#F2F4F7; --panel:#FFFFFF; --panel-2:#F7F8FA; --input:#FFFDF6; --input-border:#998B5C;
  --border:#DDE2E8; --text:#18232F; --muted:#56626F; --muted-2:#6B7785; --forte-texto:#fff;
  --radius:8px; --radius-sm:5px; --shadow:0 1px 2px rgba(16,24,40,.06);
  --serif:'Fraunces',Georgia,'Times New Roman',serif; --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  color-scheme:light;
}
[data-theme="dark"]{
  --navy:#0A1422; --navy-2:#060D17; --blue:#6EA0F2; --blue-2:#8DB4F5; --blue-soft:#17263F;
  --pri-bg:#2D63C9; --pri-bg-2:#3A70D6; --pri-text:#fff;
  --green:#4CC28A; --green-soft:#12301F; --yellow:#E8B84A; --yellow-bg:#E8B84A; --yellow-soft:#33290F;
  --red:#F07264; --red-soft:#3A1B18; --violet:#B0A6F7; --violet-soft:#25204A;
  --bg:#0E151E; --panel:#151F2B; --panel-2:#1B2735; --input:#1C2633; --input-border:#6A778A;
  --border:#2F3D4F; --text:#E6ECF2; --muted:#A3B1BF; --muted-2:#8B99A8; --shadow:none; --forte-texto:#0B1118;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
.pular{position:absolute;left:-999px;top:8px;background:var(--pri-bg);color:#fff;padding:8px 12px;border-radius:6px;z-index:200}
.pular:focus{left:8px}
code{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:12px}

/* ---------- estrutura ---------- */
.app{display:flex;min-height:100vh}
.lateral{width:236px;flex-shrink:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.marca{padding:22px 20px 18px;border-bottom:1px solid #ffffff1f}
.marca-nome{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.2px;line-height:1.15}
.marca-sub{font-size:11.5px;color:#ffffffb3;margin-top:5px}
.nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.nav button{all:unset;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;color:#ffffffcc;cursor:pointer;font-size:13.5px;font-weight:500}
.nav button:hover{background:#ffffff14;color:#fff}
.nav button.ativo{background:var(--pri-bg);color:#fff}
.nav button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.nav .ico{width:18px;text-align:center;opacity:.9}
.ico-svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rodape-botoes{display:flex;gap:6px;flex-wrap:wrap}
.versao{font-size:10.5px;color:#ffffff80}
.topo-movel,.barra-nav,.folha-cab,.folha-fundo{display:none}
.lateral-rodape{margin-top:auto;padding:14px 16px;border-top:1px solid #ffffff1f;display:flex;flex-direction:column;gap:8px;font-size:11.5px;color:#ffffffc0}
.salvo{display:flex;align-items:center;gap:7px}
.salvo .ponto{width:8px;height:8px;border-radius:50%;background:#4CC28A;flex-shrink:0}
.salvo.alerta .ponto{background:#F6C443}.salvo.erro .ponto{background:#F07264}
.btn-tema{all:unset;cursor:pointer;background:#ffffff1c;border-radius:14px;padding:4px 12px;font-size:11.5px;color:#fff;align-self:flex-start}
.btn-tema:focus-visible{outline:2px solid #fff;outline-offset:2px}
.principal{flex:1;min-width:0;padding:28px 36px 64px}
.principal:focus{outline:none}
.topo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.titulo{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.15;margin:0}
.titulo:focus{outline:none}
.subtitulo{color:var(--muted);font-size:13px;margin-top:4px}
.secao{margin-bottom:26px}
.secao-titulo{font-size:15px;font-weight:600;margin:0 0 10px}
.secao-desc{color:var(--muted);font-size:12.5px;margin:-6px 0 12px}
.painel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.pad{padding:16px 18px}
.grade{display:grid;gap:14px;align-items:start}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-auto{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
@media (max-width:1100px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.g2,.g3{grid-template-columns:1fr}}

/* ---------- botões e formulários ---------- */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:7px 13px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;line-height:1.3;text-decoration:none}
.btn:hover{border-color:var(--muted-2)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-pri{background:var(--pri-bg);border-color:var(--pri-bg);color:var(--pri-text);font-weight:600}
.btn-pri:hover{background:var(--pri-bg-2);border-color:var(--pri-bg-2)}
.btn-perigo{color:var(--red);border-color:var(--red);background:transparent}
.btn-sutil{background:transparent;color:var(--text);border-color:var(--border)}
.btn-sutil:hover{background:var(--panel-2)}
.btn-p{padding:5px 10px;font-size:12px}
.acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.campos{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.campo{flex:1;min-width:120px;display:flex;flex-direction:column;gap:4px}
.campo>.seg,.campo>.btn,.campo>.acoes{align-self:flex-start}
.campo.largo{flex:3;min-width:220px}
.campo-seg{flex:2;min-width:200px}
.campo label,.rotulo{font-size:11.5px;color:var(--muted);font-weight:500}
fieldset.campo{border:1px solid var(--border);margin:0 0 12px;padding:10px 12px}
input[type=text],input[type=number],input[type=date],input[type=search],select,textarea{background:var(--input);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:7px 9px;width:100%;font-size:13px;min-width:0}
input[type=color]{width:52px;height:34px;padding:2px;border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
textarea{min-height:64px;resize:vertical}
.erro-campo{color:var(--red);font-size:12.5px;margin-top:6px;font-weight:500}
.erro-campo:empty{display:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:4px 11px;font-size:12px;cursor:pointer;color:var(--muted)}
.chip[aria-pressed=true]{background:var(--pri-bg);border-color:var(--pri-bg);color:#fff}
.chip-fixo{display:inline-flex;align-items:center;gap:6px;color:var(--text);cursor:default}
.chip-x{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;padding:0 2px}
.chip-check{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--border);border-radius:16px;padding:3px 10px;cursor:pointer}
.check{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.check input[type=date]{width:auto}
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:6px;overflow:hidden;max-width:100%}
.seg button{border:0;border-right:1px solid var(--border);background:var(--panel);padding:6px 12px;cursor:pointer;font-size:12.5px;color:var(--muted);white-space:nowrap}
.seg button:last-child{border-right:0}
.seg button[aria-pressed=true]{background:var(--pri-bg);color:#fff}
.seg-largo button{flex:1}
.toggle{position:relative;width:38px;height:22px;border-radius:12px;background:var(--muted-2);border:0;cursor:pointer;flex-shrink:0}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.toggle[aria-pressed=true]{background:var(--pri-bg)}.toggle[aria-pressed=true]::after{transform:translateX(16px)}
.abas-int{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:18px}
.abas-int button{border:0;background:transparent;padding:8px 14px;cursor:pointer;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.abas-int button[aria-selected=true]{color:var(--text);border-bottom-color:var(--pri-bg);font-weight:600}
.linha-lista{align-items:center;margin-bottom:8px}
.num-item{font-weight:600;color:var(--muted);width:22px}
.acoes-ordem{gap:4px;margin-top:4px}
.input-nome{min-width:180px}
.sel-papel{min-width:140px}
.opcoes-cartao{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.cartao-opcao{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:12px 14px;cursor:pointer}
.cartao-opcao span{font-size:12.5px;color:var(--muted)}
.cartao-opcao[aria-pressed=true]{border-color:var(--pri-bg);box-shadow:0 0 0 2px var(--pri-bg) inset}
.passos{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 18px;flex-wrap:wrap;counter-reset:p}
.passos li{counter-increment:p;font-size:12.5px;color:var(--muted);padding:4px 10px;border:1px solid var(--border);border-radius:14px}
.passos li::before{content:counter(p) ". "}
.passos li[aria-current=step]{color:#fff;background:var(--pri-bg);border-color:var(--pri-bg)}

/* ---------- etiquetas de situação (cor + texto) ---------- */
.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:12px;white-space:nowrap}
.pill-critico_grave{background:var(--red);color:var(--forte-texto)}
.pill-critico{background:var(--red-soft);color:var(--red)}
.pill-atencao{background:var(--yellow-soft);color:var(--yellow)}
.pill-satisfatorio{background:var(--green-soft);color:var(--green)}
.pill-dominio_forte{background:var(--green);color:var(--forte-texto)}
.pill-nao_iniciado{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}
.pill-em_andamento{background:var(--blue-soft);color:var(--blue)}
.tag{--tag:#6B7785;display:inline-block;font-size:10.5px;font-weight:700;border:1px solid var(--tag);border-radius:4px;padding:0 6px;color:var(--tag);margin-right:4px;white-space:nowrap;background:var(--panel)}
[data-theme="dark"] .tag{color:color-mix(in srgb,var(--tag) 55%,#fff);border-color:color-mix(in srgb,var(--tag) 70%,#fff)}
.tag-arq{opacity:.6;text-decoration:line-through}
.tag-p{font-size:9.5px;padding:0 4px}
.tag-fase{display:inline-block;font-size:11px;font-weight:600;background:var(--violet-soft);color:var(--violet);border-radius:10px;padding:1px 8px}
.rel-alta{color:var(--red);font-weight:600}.rel-media{color:var(--yellow);font-weight:600}.rel-baixa{color:var(--muted)}
.cor-cont{color:var(--violet)}

/* ---------- Hoje ---------- */
.avisos-globais .aviso:last-child{margin-bottom:18px}
.resumo-dia{display:flex;gap:10px;flex-wrap:wrap;width:100%}
.resumo-dia .kpi{flex:1 1 130px;max-width:220px;min-width:0}
.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;min-width:120px}
.kpi-num{font-size:22px;font-weight:700;line-height:1.1}
.kpi-rot{font-size:11.5px;color:var(--muted);margin-top:2px}
.aviso{border-radius:var(--radius);padding:11px 14px;font-size:13px;margin-bottom:14px;border:1px solid;overflow-wrap:anywhere}
.aviso .btn{margin-top:4px}
.aviso-info{background:var(--blue-soft);border-color:#2D6CDF40}
.aviso-alerta{background:var(--yellow-soft);border-color:#9A6B0040}
.aviso-erro{background:var(--red-soft);border-color:#C0392B40}
.aviso-ok{background:var(--green-soft);border-color:#1E8E5A40}
.lista-aviso{margin:6px 0 0 18px;padding:0}
.bloco{background:var(--panel);border:1px solid var(--border);border-left:5px solid var(--blue);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow)}
.bloco.t-continuacao{border-left-color:var(--violet)}.bloco.t-critico{border-left-color:var(--red)}.bloco.t-atencao{border-left-color:var(--yellow-bg)}.bloco.t-revisao,.bloco.t-adiantamento{border-left-color:var(--green)}.bloco.t-fixa{border-left-color:var(--muted-2)}
.bloco:focus{outline:2px solid var(--blue);outline-offset:2px}
.bloco-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px 6px}
.bloco-rot{font-size:11.5px;color:var(--muted);font-weight:600;letter-spacing:.2px;text-transform:uppercase}
.bloco-rot .nc{text-transform:none}
.bloco-disc{font-size:16px;font-weight:700;margin:2px 0 0}
.bloco-cont{font-size:14px;margin-top:2px}
.bloco-topico{font-size:12px;color:var(--muted)}
.bloco-corpo{padding:6px 18px 16px}
.fatos{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 10px}
.fato .rotulo{display:block}
.fato b{font-size:13.5px}
.caixa{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12.8px;margin-top:8px;overflow-wrap:anywhere}
.caixa-cont{background:var(--violet-soft);border-color:#5B4BC440}
.caixa-nota{background:var(--yellow-soft);border-color:#9A6B0040}
.caixa-anot{background:var(--blue-soft);border-color:#2D6CDF40}
details{margin-top:8px}
summary{cursor:pointer;font-size:12.5px;color:var(--blue);font-weight:500}
.fator{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:3px 0;border-bottom:1px dashed var(--border)}
.fator:last-child{border-bottom:0}
.fator .neg{color:var(--red)}
.form-reg{margin-top:12px;padding:14px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px}
.feito-linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;overflow-wrap:anywhere}
.ok{color:var(--green);font-weight:700}.nao{color:var(--muted);font-weight:700}.parc{color:var(--violet);font-weight:700}
.subbloco{border-top:1px solid var(--border);padding:12px 18px}
.subbloco:first-of-type{border-top:0}
.cron{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.cron-tempo{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;min-width:52px}

/* ---------- tabelas ---------- */
.tabela-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:12.8px}
table.t th{text-align:left;font-size:11.5px;color:var(--muted);font-weight:600;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--panel)}
table.t td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:break-word}
table.t td .btn,td[data-rot="Data"],td[data-rot="Prova"],td[data-rot="Tipo"],td[data-rot="Situação"]{white-space:nowrap}
table.t td .acoes{flex-wrap:nowrap}
@media (max-width:900px){table.t td .acoes{flex-wrap:wrap}}
table.t select{min-width:150px;max-width:100%}
table.t tr:hover td{background:var(--panel-2)}
table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.t td.linha-edicao{background:var(--panel-2);padding:14px}
.col-conteudo{min-width:240px}
.texto-quebra{overflow-wrap:anywhere;max-width:620px}
.linha-apagada{opacity:.6}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.filtros input,.filtros select{width:auto;min-width:150px}
.filtros input[type=checkbox]{min-width:0;width:16px;height:16px;margin:0;flex:none;padding:0}
.filtros input[type=date]{min-width:0}
.filtros label{white-space:nowrap;cursor:pointer}
.paginacao{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;color:var(--muted)}
.vazio{padding:34px 18px;text-align:center;color:var(--muted)}
.vazio b{display:block;color:var(--text);font-size:15px;margin-bottom:4px}
@media (max-width:640px){
  .resumo-dia .kpi{flex-basis:calc(50% - 5px);max-width:none}
  table.t-resp thead{display:none}
  table.t-resp,table.t-resp tbody,table.t-resp tr,table.t-resp td{display:block;width:100%}
  table.t-resp tr{border-bottom:1px solid var(--border);padding:8px 0}
  table.t-resp td{border:0;padding:4px 12px;text-align:left!important;white-space:normal!important}
  table.t-resp td[data-rot]{display:block;text-align:right!important;overflow:hidden}
  table.t-resp td[data-rot]::before{content:attr(data-rot);float:left;margin-right:12px;font-size:11px;color:var(--muted);font-weight:600;padding-top:2px;text-align:left}
  table.t-resp td[data-rot].col-conteudo,table.t-resp td[data-rot].col-larga{text-align:left!important}
  table.t-resp td[data-rot].col-conteudo::before,table.t-resp td[data-rot].col-larga::before{float:none;display:block;margin:0 0 2px}
  table.t select{min-width:0;width:auto}
  .g-auto{grid-template-columns:repeat(2,minmax(0,1fr))}
  table.t-resp td.col-conteudo{display:block}
  table.t-resp td.col-conteudo::before{display:block;margin-bottom:2px}
  .filtros input,.filtros select{min-width:0;flex:1 1 140px}
}

/* ---------- cronograma ---------- */
.dia{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;break-inside:avoid}
.dia-cab{display:flex;justify-content:space-between;align-items:baseline;padding:10px 14px;background:var(--panel-2);border-bottom:1px solid var(--border)}
.dia-cab b{font-size:14px}
.dia-item{display:flex;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);font-size:12.8px;align-items:flex-start;overflow-wrap:anywhere}
.dia-item:last-child{border-bottom:0}
.marca-tipo{width:6px;align-self:stretch;border-radius:3px;flex-shrink:0;background:var(--blue);display:inline-block}
.marca-tipo.t-continuacao{background:var(--violet)}.marca-tipo.t-critico{background:var(--red)}.marca-tipo.t-atencao{background:var(--yellow-bg)}.marca-tipo.t-revisao,.marca-tipo.t-adiantamento{background:var(--green)}.marca-tipo.t-fixa{background:var(--muted-2)}
.legenda{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda .marca-tipo{width:10px;height:10px;align-self:center}

/* ---------- gráficos ---------- */
.barra{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden;border:1px solid var(--border)}
.barra > span{display:block;height:100%;background:var(--blue);border-radius:4px}
.linha-barra{display:grid;grid-template-columns:minmax(120px,1.4fr) 2fr minmax(70px,auto);gap:10px;align-items:center;padding:6px 0;font-size:12.8px}
.colunas{display:flex;align-items:flex-end;gap:8px;height:150px;padding:8px 4px 0;border-bottom:1px solid var(--border)}
.coluna{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}
.coluna span.b{width:70%;max-width:34px;background:var(--blue);border-radius:4px 4px 0 0;min-height:2px}
.coluna:hover span.b,.coluna:focus span.b{background:var(--blue-2)}
.coluna .v{font-size:11px;color:var(--muted);margin-bottom:3px}
.eixo{display:flex;gap:8px;padding:4px 4px 0}
.eixo span{flex:1;text-align:center;font-size:10.5px;color:var(--muted)}
.dica{position:fixed;pointer-events:none;background:var(--navy);color:#fff;font-size:12px;padding:6px 9px;border-radius:5px;z-index:90;max-width:260px;display:none}

/* ---------- modal e aviso flutuante ---------- */
.modal-fundo{position:fixed;inset:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:100;padding:16px}
.modal-fundo.aberto{display:flex}
.modal{background:var(--panel);border-radius:10px;max-width:520px;width:100%;padding:20px 22px;box-shadow:0 10px 40px #0005;max-height:90vh;overflow:auto}
.modal h3{margin:0 0 8px;font-family:var(--serif);font-size:18px}
#modal-texto{color:var(--muted);margin:0 0 14px}
#modal-texto p{margin:0 0 10px}
#modal-extra{margin-bottom:14px}
#modal-extra:empty{display:none}
.toast{position:fixed;bottom:20px;right:20px;background:var(--navy);color:#fff;padding:10px 16px;border-radius:6px;font-size:13px;z-index:110;opacity:0;transform:translateY(8px);transition:all .2s;pointer-events:none;max-width:400px;display:flex;align-items:center;gap:12px;border:1px solid #ffffff26}
.toast.ver{opacity:1;transform:none;pointer-events:auto}
.toast .btn{background:transparent;color:#fff;border-color:#ffffff80;flex-shrink:0}
@media (max-width:640px){.toast{left:12px;right:12px;bottom:12px;max-width:none}}
.muted{color:var(--muted)}.pequeno{font-size:12px}.direita{text-align:right}
.sep{border:0;border-top:1px solid var(--border);margin:16px 0}
.cfg-linha{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border);align-items:center;flex-wrap:wrap}
.cfg-linha>:last-child{margin-left:auto}
.cfg-linha:last-child{border-bottom:0}
.cfg-rot{font-size:13.5px;font-weight:500}
.cfg-desc{font-size:12px;color:var(--muted);max-width:560px}
.cfg-linha input[type=number]{width:110px;text-align:right}
.cfg-linha input[type=text],.cfg-linha input[type=date]{width:220px;max-width:100%}
.cfg-linha select{width:auto;min-width:180px}
.dias-semana{display:flex;gap:8px;flex-wrap:wrap}
.dias-semana label,.dias-semana div{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--muted)}
.dias-semana input{width:66px!important;text-align:center!important}
.dias-largos label{min-width:80px}
.prose{max-width:780px;font-size:14px}
.prose h2{font-size:16px;margin:20px 0 6px}
.prose h2:first-child{margin-top:0}
.prose li{margin-bottom:4px}

/* ---------- impressão ---------- */
@media print{
  :root,[data-theme="dark"]{--bg:#fff;--panel:#fff;--panel-2:#f6f6f6;--text:#000;--muted:#333;--muted-2:#555;--border:#bbb;--blue:#1F57C0;--violet:#4B3BB0;--green:#156B43;--red:#A82C20;--yellow-bg:#C99A12;color-scheme:light}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff}
  .lateral,.barra-nav,.topo-movel,.foco,.folha-fundo,.acoes,.filtros,.btn,.avisos-globais,.toast,.nao-imprime,.cron,details > summary ~ *{display:none!important}
  .principal{padding:0}
  .grade.g3{grid-template-columns:repeat(2,1fr)}
  .bloco,.dia,.painel{box-shadow:none;break-inside:avoid}
}
.texto-alerta{color:var(--yellow)}

.painel.pad>:first-child{margin-top:0}
input[type=file]{font-size:13px;color:var(--muted);max-width:100%}
input[type=file]::file-selector-button{font:inherit;font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;margin-right:10px;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--panel-2)}
details.det-rev{margin:6px 0}
details.det-rev>summary{font-size:12.5px}
.texto-red{color:var(--red);font-weight:600}.texto-yellow{color:var(--yellow);font-weight:600}.texto-green{color:var(--green);font-weight:600}.texto-blue{color:var(--text)}
/* "?" de ajuda das configurações */
.ajuda{position:relative;display:inline-block;margin-left:6px;vertical-align:middle}
.ajuda-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--muted-2);background:var(--panel);color:var(--muted);font-size:11px;font-weight:700;line-height:16px;padding:0;cursor:help;text-align:center}
.ajuda-btn:hover,.ajuda-btn:focus-visible,.ajuda.aberta .ajuda-btn{background:var(--blue);border-color:var(--blue);color:#fff}
.ajuda-pop{display:none;position:absolute;left:-8px;top:24px;z-index:40;width:340px;max-width:calc(100vw - 48px);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(16,24,40,.18);padding:10px 12px;font-size:12.5px;font-weight:400;line-height:1.5;text-transform:none;letter-spacing:0;white-space:normal;text-align:left}
.ajuda:hover .ajuda-pop,.ajuda-btn:focus-visible+.ajuda-pop,.ajuda.aberta .ajuda-pop{display:block}
.ajuda-pop b{color:var(--text)}
.rot-ajuda{display:flex;align-items:center;gap:0}
@media (max-width:640px){.ajuda-pop{position:fixed;left:16px;right:16px;top:auto;bottom:16px;width:auto;max-width:none}}


/* ======================= celular, tablet e toque ======================= */
/* tablet (e janelas estreitas): menu lateral compacto, só ícone + nome curto */
@media (min-width:641px) and (max-width:1023px){
  .lateral{width:88px}
  .marca{display:none}
  .nav{padding:10px 6px;gap:4px}
  .nav button{flex-direction:column;gap:3px;padding:8px 2px;justify-content:center;text-align:center;border-radius:8px}
  .nav .rot{font-size:0;line-height:0}
  .nav .rot::after{content:attr(data-curto);font-size:10.5px;line-height:1.2;font-weight:500}
  .nav .ico-svg{width:22px;height:22px}
  .lateral-rodape{padding:10px 6px;align-items:center;text-align:center;font-size:10px}
  .lateral-rodape .salvo span:last-child{display:none}
  .lateral-rodape .salvo{justify-content:center}
  .rodape-botoes{flex-direction:column;align-items:center}
  .btn-tema{font-size:10px;padding:4px 8px;text-align:center}
  .principal{padding:22px 24px 56px}
}
/* celular: barra de seções embaixo, menu "Mais" em folha que sobe, cabeçalho fino em cima */
@media (max-width:640px){
  .app{display:block}
  .topo-movel{display:flex;position:sticky;top:0;z-index:30;align-items:center;justify-content:space-between;gap:10px;
    background:var(--navy);color:#fff;padding:calc(8px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 8px calc(14px + env(safe-area-inset-left))}
  .topo-movel-nome{font-family:var(--serif);font-weight:600;font-size:16.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topo-movel .salvo{font-size:11.5px;color:#ffffffc0;white-space:nowrap}
  .principal{padding:16px calc(14px + env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left))}
  .barra-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--panel);border-top:1px solid var(--border);
    padding:4px calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));box-shadow:0 -2px 12px #0000000f}
  .barra-nav button{flex:1;min-width:0;border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;
    padding:6px 2px;min-height:52px;font-size:10.5px;font-weight:500;cursor:pointer;border-radius:10px;-webkit-tap-highlight-color:transparent}
  .barra-nav button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .barra-nav .ico-svg{width:24px;height:24px}
  .barra-nav button.ativo{color:var(--blue)}
  .barra-nav button.ativo .ico-svg{stroke-width:2.2}
  .barra-nav button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
  /* a lateral vira a folha "Mais" */
  .lateral{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:auto;max-height:82vh;z-index:60;border-radius:16px 16px 0 0;
    transform:translateY(105%);transition:transform .22s ease;visibility:hidden;overflow-y:auto;
    padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 30px #0006}
  .lateral.aberta{transform:none;visibility:visible}
  .marca{display:none}
  .folha-cab{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px;color:#fff;font-size:15px}
  .btn-fechar{all:unset;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1a}
  .btn-fechar:focus-visible{outline:2px solid #fff}
  .nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 14px 12px;overflow:visible}
  .nav button{flex-direction:column;gap:6px;justify-content:center;text-align:center;padding:12px 4px;min-height:74px;background:#ffffff0f;border-radius:12px;font-size:12px}
  .nav .rot{font-size:0;line-height:0}
  .nav .rot::after{content:attr(data-curto);font-size:12px;line-height:1.2}
  .nav .ico-svg{width:24px;height:24px}
  .lateral-rodape{margin:0;border-top:1px solid #ffffff1f;padding:12px 16px 16px}
  .folha-fundo{display:block;position:fixed;inset:0;background:#0007;z-index:55}
  .folha-fundo[hidden]{display:none}
  .toast{bottom:calc(76px + env(safe-area-inset-bottom))}
  .ajuda-pop{bottom:calc(76px + env(safe-area-inset-bottom))}
  .titulo{font-size:22px}
  .modal-fundo{align-items:flex-end;padding:0}
  .modal{border-radius:16px 16px 0 0;max-height:88vh;padding:20px 18px calc(18px + env(safe-area-inset-bottom))}
}
/* telas de toque: alvos maiores (mínimo ~44 px) e campos com letra de 16 px (o iPhone não dá zoom ao tocar) */
@media (pointer:coarse){
  .btn{min-height:44px;padding:9px 15px;font-size:14px}
  .btn-p{min-height:38px;padding:7px 12px;font-size:13px}
  input[type=text],input[type=number],input[type=date],input[type=search],input[type=email],input[type=url],select,textarea{font-size:16px;min-height:44px;padding:9px 10px}
  .chip,.chip-check{padding:8px 14px;font-size:13.5px;min-height:38px;display:inline-flex;align-items:center}
  .seg button{padding:10px 14px;font-size:13.5px;min-height:42px}
  .toggle{width:50px;height:30px;border-radius:16px}
  .toggle::after{width:24px;height:24px}
  .toggle[aria-pressed=true]::after{transform:translateX(20px)}
  .nav button{min-height:44px}
  .abas-int button{min-height:44px}
  .ajuda{min-width:28px;min-height:28px}
  details>summary{padding:6px 0}
  .btn-tema{padding:8px 14px}
}
/* app instalado (sem a barra do navegador) */
@media (display-mode:standalone){
  body{overscroll-behavior-y:none}
}

/* ======================= cronômetro em tela cheia ======================= */
.cron .btn-cheia{display:inline-flex;align-items:center;gap:5px}
.cron .btn-cheia .ico-svg{width:16px;height:16px}
.foco{position:fixed;inset:0;z-index:120;background:var(--navy-2);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  padding:calc(24px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));text-align:center}
.foco[hidden]{display:none}
.foco .btn-redondo.foco-sair{position:absolute;top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}
.foco-disc{font-size:14px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.foco-cont{font-family:var(--serif);font-size:22px;font-weight:600;max-width:640px;line-height:1.25}
.foco-tempo{font-variant-numeric:tabular-nums;font-weight:700;font-size:clamp(64px,22vw,168px);line-height:1;letter-spacing:-.02em}
.foco-tempo.pausado{opacity:.55}
.foco-meta{font-size:14px;color:#ffffffb3}
.foco-fase{font-size:15px;color:#9CC0FF;min-height:20px}
.foco-barra{width:min(420px,80vw);height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}
.foco-barra i{display:block;height:100%;background:#4CC28A;width:0;transition:width .5s linear}
.foco .acoes{justify-content:center}
.foco .btn{background:transparent;color:#fff;border-color:#ffffff66;min-height:48px;padding:10px 22px;font-size:15px;border-radius:12px}
.foco .btn-pri{background:#2D6CDF;border-color:#2D6CDF}
.foco .btn-redondo{all:unset;cursor:pointer;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff1a}
.foco .btn-redondo:focus-visible,.foco .btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.foco-opcao{display:flex;align-items:center;gap:10px;font-size:13.5px;color:#ffffffcc}
@media (max-height:480px){.foco{gap:10px}.foco-cont{font-size:17px}.foco-tempo{font-size:clamp(48px,16vh,120px)}}

/* ======================= primeiro acesso ======================= */
.boas-vindas{max-width:720px;margin:0 auto}
.bv-cab{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:14px}
.bv-icone{width:64px;height:64px;border-radius:14px}
.boas-vindas .subtitulo{font-size:15px;max-width:640px}
.bv-lista{padding-left:20px;margin:0 0 16px;font-size:14px}
.bv-lista li{margin-bottom:6px}
.caixa-privacidade{background:var(--green-soft);border:1px solid #1E8E5A40;border-radius:var(--radius);padding:12px 16px;font-size:13.5px;margin-bottom:16px}
.caixa-privacidade ul{margin:6px 0 0;padding-left:18px}
.caixa-privacidade li{margin-bottom:4px}
.bv-acoes .btn{min-height:44px}
.onb-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}
.onb-lista>div{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--panel-2)}
.onb-lista ul{margin:4px 0 0;padding-left:18px}
.opcoes-cartao .cartao-opcao b{font-size:14px}
/* ======================= exemplo, ajuda, novidades, diagnóstico ======================= */
.aviso-exemplo{background:var(--violet-soft);border-color:#5B4BC455;color:var(--text)}
.ajuda-cartoes{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.ajuda-cartoes .cartao-opcao{min-height:72px}
.novidade h3{font-size:15px;margin:12px 0 4px}
.novidade ul{margin:0;padding-left:18px;font-size:13.5px}
.novidade li{margin-bottom:4px}
.diag-pre{max-height:260px;overflow:auto;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:8px;font-size:11px;white-space:pre-wrap;word-break:break-all}
.notificacoes-indisp{opacity:.62}
.notificacoes-indisp .toggle:disabled,.notificacoes-indisp .chip:disabled,.notificacoes-indisp input:disabled{cursor:not-allowed}
input[type=time]{background:var(--input);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:6px 8px;font-size:13px}
/* ======================= tour guiado ======================= */
.tour{position:fixed;inset:0;z-index:140}
.tour[hidden]{display:none}
.tour-foco{position:fixed;border-radius:10px;box-shadow:0 0 0 3px #fff,0 0 0 9999px rgba(8,16,28,.62);transition:all .25s ease;pointer-events:none}
.tour-foco.tour-sem-alvo{box-shadow:0 0 0 9999px rgba(8,16,28,.62)}
.tour-balao{position:fixed;background:var(--panel);color:var(--text);border-radius:12px;padding:16px 18px 14px;box-shadow:0 12px 40px #0006;border:1px solid var(--border)}
.tour-num{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.tour-balao h2{font-family:var(--serif);font-size:19px;margin:4px 0 6px}
.tour-balao p{margin:0 0 12px;font-size:14px;line-height:1.5}
.tour-acoes{display:flex;align-items:center;gap:8px}
.tour-acoes span{flex:1}
@media (prefers-reduced-motion: reduce){.tour-foco{transition:none}}
@media (max-width:640px){.em-primeiro-acesso .barra-nav{display:none}.em-primeiro-acesso .principal{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}
/* ======================= Dados e Drive ======================= */
.drive-conta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.drive-conta>div{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;min-width:0;overflow-wrap:anywhere}
.drive-conta .rotulo{display:block;font-size:11.5px;color:var(--muted);margin-bottom:2px}
.bv-google{margin-top:16px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.acoes-fim{justify-content:flex-end}
