:root{
  /* ESCURO é o padrão */
  --bg:#0a0d1a;--card:#131830;--card2:#171d3a;--tx:#eceffc;--mut:#8b94b8;--bd:#222949;
  --pri:#7c7cff;--pri2:#a07bff;--pri-s:#7c7cff1f;
  --ok:#3ccf82;--ok-s:#3ccf8220;--err:#ff6b70;--err-s:#ff6b7020;--warn:#f2b441;--warn-s:#f2b44122;--info:#5ea1ff;--info-s:#5ea1ff20;
  --side:#070a15;--side-tx:#aab2d5;--side-on:#ffffff;
  --sombra:0 1px 2px #0006,0 8px 24px #0004;--raio:16px;
  --term:#070a14;--termtx:#cfd6f5;
  color-scheme:dark;
}
:root[data-tema="light"]{
  --bg:#f5f6fb;--card:#ffffff;--card2:#f8f9fd;--tx:#12172b;--mut:#6a7390;--bd:#e6e9f2;
  --pri:#5b5bf0;--pri2:#8a5cf6;--pri-s:#5b5bf014;
  --ok:#12a150;--ok-s:#12a15015;--err:#e5484d;--err-s:#e5484d15;--warn:#d98a00;--warn-s:#d98a0017;--info:#2f7df6;--info-s:#2f7df617;
  --side:#0e1226;
  --sombra:0 1px 2px #1b1f3a0d,0 6px 20px #1b1f3a0a;
  --term:#0b0e1c;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14.5px/1.5 Inter,"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
a{color:var(--pri)}
.mut{color:var(--mut)}small{font-size:12px;color:var(--mut)}
i[data-ico]{display:inline-flex;width:18px;height:18px;flex:none}
i[data-ico] svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.login-hero{background:radial-gradient(1200px 600px at 0% 0%,#6d5df6 0%,transparent 60%),radial-gradient(900px 500px at 100% 100%,#8a3df0 0%,transparent 55%),#0e1226;color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.login-hero .brand{position:absolute;top:36px;left:56px}
.login-hero h2{font-size:34px;line-height:1.15;letter-spacing:-.02em}
.login-hero p{color:#cdd2f3;max-width:430px;font-size:16px}
.login-hero ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:12px;color:#e8ebff}
.login-hero li{display:flex;align-items:center;gap:10px}
.login-hero li i{background:#ffffff1f;border-radius:8px;padding:5px;width:28px;height:28px}
.login-lado{display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:370px}
.login-card h1{font-size:26px;letter-spacing:-.02em;margin-bottom:4px}
.login-card label{display:block;margin:16px 0 0}
.login-card input{width:100%;margin-top:6px;padding:12px 14px;font-size:15px}
.login-card .btn{width:100%;margin-top:20px}
@media(max-width:820px){.login{grid-template-columns:1fr}.login-hero{display:none}}

/* ---------- estrutura ---------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.side{background:var(--side);color:var(--side-tx);padding:22px 14px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:11px;color:#fff;padding:0 6px}
.brand b{display:block;letter-spacing:.14em;font-size:15px;line-height:1.1}.brand small{color:#9aa3cc;font-size:11.5px}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--pri),var(--pri2));display:grid;place-items:center;font-weight:800;font-size:19px;box-shadow:0 6px 18px #5b5bf055}
#menu{display:grid;gap:4px}
#menu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;color:var(--side-tx);padding:11px 12px;border-radius:11px;font:inherit;font-weight:500;cursor:pointer;transition:.15s}
#menu button:hover{background:#ffffff0f;color:#fff}
#menu button.on{background:linear-gradient(135deg,#5b5bf0,#7a5cf3);color:#fff;box-shadow:0 6px 16px #5b5bf044}
.side-rodape{margin-top:auto;font-size:12.5px;display:flex;align-items:center;gap:8px;padding:0 8px;color:#8f98c2}
.ponto-ok{width:8px;height:8px;border-radius:50%;background:#3ccf82;box-shadow:0 0 0 4px #3ccf8226}
.conteudo{min-width:0;padding:26px 34px 60px;max-width:1240px;width:100%}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.topbar h1{font-size:25px;letter-spacing:-.02em}
.top-user{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--bd);border-radius:999px;padding:5px 6px 5px 6px;box-shadow:var(--sombra)}
.top-user-txt{display:flex;flex-direction:column;line-height:1.2;padding-right:4px}.top-user-txt b{font-size:13.5px}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.avatar.g{width:40px;height:40px;font-size:15px}
.icone{border:0;background:none;color:var(--mut);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.icone:hover{background:var(--pri-s);color:var(--pri)}

/* ---------- componentes ---------- */
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--raio);padding:20px;margin-bottom:18px;box-shadow:var(--sombra)}
.card-topo{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}
h2{font-size:16.5px;letter-spacing:-.01em}
.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:11px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;box-shadow:0 6px 16px #5b5bf033;transition:.15s}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:default;transform:none;filter:none;box-shadow:none}
.btn.sec{background:var(--card);color:var(--tx);border:1px solid var(--bd);box-shadow:none}
.btn.sec:hover{border-color:var(--pri);color:var(--pri)}
.btn.perigo{background:var(--err);box-shadow:0 6px 16px #e5484d33}
.btn.peq{padding:6px 12px;font-size:13px;border-radius:9px}
.btn.grande{padding:13px 18px;font-size:15px}
.btn i{width:16px;height:16px}
.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.t-ok{background:var(--ok-s);color:var(--ok)}.t-erro{background:var(--err-s);color:var(--err)}.t-atencao{background:var(--warn-s);color:var(--warn)}
.t-rodando{background:var(--info-s);color:var(--info)}.t-rodando::before{animation:pulso 1.2s infinite}
.t-neutro{background:var(--bd);color:var(--mut)}
@keyframes pulso{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.5)}}
select,input{font:inherit;padding:9px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--tx);max-width:100%;outline:none;transition:.15s}
select:focus,input:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-s)}
input:disabled,select:disabled{opacity:.6}
.erro{color:var(--err);font-size:13px;margin-top:10px}
label{font-size:12.5px;color:var(--mut);font-weight:500}
.note{border:1px solid var(--warn);background:var(--warn-s);padding:10px 14px;border-radius:12px;font-size:13px;margin-bottom:16px}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--raio);padding:16px 18px;box-shadow:var(--sombra);display:flex;gap:14px;align-items:center}
.kpi-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}
.kpi-ico i{width:20px;height:20px}
.kpi .rot{font-size:12.5px;color:var(--mut)}.kpi .val{font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.25}.kpi .sub{font-size:12px;color:var(--mut)}
.k-pri .kpi-ico{background:var(--pri-s);color:var(--pri)}.k-ok .kpi-ico{background:var(--ok-s);color:var(--ok)}
.k-info .kpi-ico{background:var(--info-s);color:var(--info)}.k-warn .kpi-ico{background:var(--warn-s);color:var(--warn)}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}}

/* cartão da automação */
.auto{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.auto-ico{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 8px 20px #5b5bf040}
.auto-ico i{width:25px;height:25px}
.auto-corpo{flex:1;min-width:230px}
.auto-corpo h2{font-size:18px;margin-bottom:2px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--bd);border-radius:999px;padding:4px 11px;font-size:12.5px;color:var(--mut)}
.chip i{width:14px;height:14px}

/* listas */
.lista{display:grid}
.linha{display:flex;align-items:center;gap:14px;padding:13px 4px;border-top:1px solid var(--bd)}
.linha:first-child{border-top:0}
.linha .corpo{flex:1;min-width:0}
.linha .titulo{font-weight:600}
.linha .sub{font-size:13px;color:var(--mut);overflow-wrap:anywhere}
.linha .meta{font-size:12.5px;color:var(--mut);text-align:right;white-space:nowrap}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.d-ok{background:var(--ok)}.d-erro{background:var(--err)}.d-atencao{background:var(--warn)}.d-rodando{background:var(--info);animation:pulso 1.2s infinite}.d-neutro{background:var(--mut);opacity:.5}
.vazio{padding:26px;text-align:center;color:var(--mut)}
.aviso-cripto{display:flex;gap:12px;align-items:flex-start;background:var(--pri-s);border-radius:12px;padding:12px 14px;margin-bottom:10px;font-size:13.5px}
.aviso-cripto i{color:var(--pri);margin-top:2px}
.arq-ico{width:38px;height:38px;border-radius:10px;background:var(--card2);border:1px solid var(--bd);display:grid;place-items:center;color:var(--pri);flex:none}

/* executar */
.controles{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.controles label{display:grid;gap:5px;flex:1;min-width:200px}
.botoes{display:flex;gap:8px}
.exec-info{margin-top:12px;font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.terminal{background:var(--term);border-radius:var(--raio);overflow:hidden;box-shadow:var(--sombra);border:1px solid #ffffff10}
.term-barra{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#ffffff0a;color:#8f98c2;font-size:12.5px}
.b{width:11px;height:11px;border-radius:50%}.b1{background:#ff5f57}.b2{background:#febc2e}.b3{background:#28c840}
#term-titulo{margin-left:8px;flex:1}
.vivo{color:#3ccf82;font-weight:700;font-size:11px;letter-spacing:.1em;display:flex;align-items:center;gap:6px}
.vivo::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ccf82;animation:pulso 1.2s infinite}
pre{margin:0;padding:16px 18px;color:var(--termtx);font:12.8px/1.65 ui-monospace,"Cascadia Code",Consolas,monospace;overflow:auto;height:420px;white-space:pre-wrap;word-break:break-word}
pre .h{color:#6e7aa8}pre .l-err{color:#ff7b80}pre .l-ok{color:#4fe08f}pre .l-info{color:#8fb7ff}pre .l-warn{color:#f6c35c}

/* agendamentos */
.ag{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}
.ag .campos{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.ag .campos label{display:grid;gap:5px}
.dias{display:flex;gap:5px;flex-wrap:wrap}
.dia{position:relative}
.dia input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.dia span{display:grid;place-items:center;min-width:42px;height:34px;padding:0 6px;border-radius:9px;border:1px solid var(--bd);font-size:12.5px;font-weight:600;color:var(--mut);background:var(--card)}
.dia input:checked+span{background:var(--pri);border-color:var(--pri);color:#fff}
.dia input:disabled{cursor:default}
.switch{position:relative;width:46px;height:26px;flex:none}
.switch input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0;z-index:1}
.switch span{position:absolute;inset:0;background:var(--bd);border-radius:999px;transition:.2s}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0004;transition:.2s}
.switch input:checked+span{background:var(--ok)}
.switch input:checked+span::after{transform:translateX(20px)}
.ag-acoes{display:flex;gap:8px}
@media(max-width:900px){.ag{grid-template-columns:auto 1fr}.ag-acoes{grid-column:1/-1}}

/* equipe */
.papel{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.p-admin{background:var(--pri-s);color:var(--pri)}.p-operador{background:var(--info-s);color:var(--info)}.p-leitura{background:var(--bd);color:var(--mut)}
.form-linha{display:flex;gap:10px;flex-wrap:wrap}.form-linha input{flex:1;min-width:150px}
.timeline{display:grid;gap:0}
.evento{display:flex;gap:12px;padding:9px 0;border-top:1px solid var(--bd);align-items:baseline;font-size:13.5px}
.evento:first-child{border-top:0}
.evento .quando{color:var(--mut);width:112px;flex:none;font-size:12.5px}
.evento b{font-weight:600}
.acoes-linha{display:flex;gap:6px;flex-wrap:wrap}

#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--tx);color:var(--bg);padding:11px 18px;border-radius:12px;font-size:14px;z-index:20;max-width:90vw;box-shadow:0 10px 30px #0004}

/* ---------- celular ---------- */
@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;bottom:0;left:0;right:0;top:auto;height:auto;flex-direction:row;padding:6px 8px;z-index:10;border-top:1px solid #ffffff14;gap:0}
  .side .brand,.side-rodape{display:none}
  #menu{display:flex;width:100%;justify-content:space-around}
  #menu button{flex-direction:column;gap:3px;padding:7px 8px;font-size:11px;text-align:center;width:auto;min-width:56px;align-items:center}
  .conteudo{padding:18px 16px 96px}
  .top-user-txt{display:none}
  .linha{flex-wrap:wrap}.linha .meta{text-align:left;width:100%}
  pre{height:340px}
}

/* abas */
.tab{display:none}.tab.on{display:block}
.kpis>*,.auto-corpo{min-width:0}
@media(max-width:560px){.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:12px;gap:10px}.kpi-ico{display:none}.kpi .val{font-size:18px}.auto-corpo{min-width:0;flex-basis:100%}.card{padding:16px}.conteudo{overflow-x:hidden}}

.icone .sol{display:none}
:root[data-tema="light"] .icone .sol{display:inline-flex}
:root[data-tema="light"] .icone .lua{display:none}

/* abrir relatórios */
.chave-estado{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--ok-s);color:var(--ok);border-radius:12px;padding:8px 12px;margin-bottom:6px;font-size:13px;font-weight:600}
.chave-estado span{display:inline-flex;align-items:center;gap:8px}
.modal{position:fixed;inset:0;background:#05070fcc;display:grid;place-items:center;padding:16px;z-index:30;backdrop-filter:blur(3px)}
.modal-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--raio);padding:24px;width:100%;max-width:460px;box-shadow:0 20px 60px #0008}
.modal-card h2{font-size:19px;margin-bottom:6px}
.modal-card label{display:grid;gap:6px;margin-top:16px}
.modal-card input{width:100%}
.modal-botoes{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.visor-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--raio);width:100%;max-width:1100px;height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0008}
.visor-topo{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bd)}
.visor-topo b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#visor-pdf{flex:1;border:0;width:100%;background:#fff}
#visor-texto{flex:1;height:auto;background:var(--term);border-radius:0}

/* agendamento com repetição */
.previa{margin-top:14px;background:var(--card2);border:1px solid var(--bd);border-radius:12px;padding:12px 14px}
.previa-topo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;margin-bottom:8px}
.previa-topo i{width:16px;height:16px;color:var(--pri)}
.previa .chips{margin-top:0}
.chip.limite{background:var(--warn-s);border-color:var(--warn);color:var(--warn);font-weight:600}
.sugestoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px;font-size:13px}
.chip.botao{cursor:pointer;font:inherit;font-size:12.5px;color:var(--tx)}
.chip.botao:hover{border-color:var(--pri);color:var(--pri)}
