/* ============================================================
   Plataforma IA Fabiana Concursos — design system v2
   ============================================================ */
:root{
  --rosa:#e6005c; --rosa-vivo:#ff2e77; --rosa-escuro:#a80345;
  --rosa-claro:#ffe9f2; --rosa-borda:#ffd0e2;
  --grad-rosa:linear-gradient(135deg,#ff2e77 0%,#e6005c 55%,#c40053 100%);
  --ink:#151929; --ink-2:#454c66; --ink-3:#8b92a9;
  --bg:#f3f4f9; --card:#ffffff; --borda:#e7e9f2; --borda-suave:#eef0f7;
  --verde:#0c8f52; --verde-bg:#e2f6ec;
  --amarelo:#b57a00; --amarelo-bg:#fff3d6;
  --vermelho:#d5382c; --vermelho-bg:#fdeaea;
  --azul:#2b5cd9; --azul-bg:#e9effc;
  --nav:#12162a; --nav-2:#181d36; --nav-hover:#232a4d; --nav-txt:#9aa2c2;
  --sombra-1:0 1px 2px rgba(18,22,42,.06),0 2px 8px rgba(18,22,42,.05);
  --sombra-2:0 4px 10px rgba(18,22,42,.07),0 14px 34px rgba(18,22,42,.09);
  --raio:14px;
  font-size:15px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--rosa);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit}
::selection{background:var(--rosa-claro)}
:focus-visible{outline:2.5px solid var(--rosa-vivo);outline-offset:2px;border-radius:6px}
*::-webkit-scrollbar{height:9px;width:9px}
*::-webkit-scrollbar-thumb{background:#cdd2e2;border-radius:99px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

h1,h2,h3,h4,.logo,.card-kpi .valor{font-family:'Manrope','Inter',sans-serif;letter-spacing:-.02em}

/* ---------------- login (split-screen) ---------------- */
.tela-login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}
.login-lado{position:relative;overflow:hidden;background:
  radial-gradient(900px 500px at 15% -10%,rgba(255,46,119,.35),transparent 60%),
  radial-gradient(700px 600px at 110% 110%,rgba(230,0,92,.28),transparent 55%),
  linear-gradient(160deg,#141830 0%,#1c1030 55%,#3a0b2a 100%);
  color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:52px 56px}
.login-lado:before{content:"";position:absolute;inset:0;background-image:
  radial-gradient(2px 2px at 20% 30%,rgba(255,255,255,.25),transparent 40%),
  radial-gradient(2px 2px at 70% 60%,rgba(255,255,255,.18),transparent 40%),
  radial-gradient(1.5px 1.5px at 40% 80%,rgba(255,255,255,.2),transparent 40%),
  radial-gradient(2px 2px at 85% 20%,rgba(255,255,255,.22),transparent 40%);pointer-events:none}
.login-lado .marca-grande{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.5rem;letter-spacing:-.02em}
.login-lado .marca-grande em{color:var(--rosa-vivo);font-style:normal}
.login-lado h2{font-size:2.05rem;line-height:1.2;font-weight:800;max-width:26ch;margin-top:24px}
.login-lado h2 span{background:linear-gradient(90deg,#ff2e77,#ff8ab5);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-lado .pontos{display:grid;gap:14px;margin-top:34px}
.login-lado .ponto{display:flex;gap:12px;align-items:flex-start;color:#c9cfe6;font-size:.92rem;max-width:44ch}
.login-lado .ponto .dot{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,46,119,.16);color:#ff7aa8;border:1px solid rgba(255,46,119,.25)}
.login-lado .pe{color:#7d84a5;font-size:.8rem}
.login-form-lado{display:flex;align-items:center;justify-content:center;padding:36px}
.login-card{width:100%;max-width:400px;background:var(--card);border-radius:22px;box-shadow:var(--sombra-2);padding:40px 38px;border:1px solid var(--borda-suave)}
.login-card .marca{margin-bottom:26px}
.login-card .marca .logo{font-size:1.35rem;font-weight:800}
.login-card .marca .logo em{color:var(--rosa);font-style:normal}
.login-card .marca small{color:var(--ink-3);display:block;margin-top:5px;font-size:.86rem}

.campo{margin-bottom:16px}
.campo label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.campo input,.campo select,.campo textarea{width:100%;padding:11px 14px;border:1.5px solid var(--borda);border-radius:11px;font-size:.94rem;font-family:inherit;background:#fbfbfe;color:var(--ink);transition:border .15s,box-shadow .15s,background .15s}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--rosa);background:#fff;box-shadow:0 0 0 3.5px rgba(230,0,92,.10)}
.campo textarea{min-height:110px;resize:vertical}
.campo input[type=file]{padding:9px;background:#fff}

/* ---------------- botões ---------------- */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border:none;border-radius:11px;font-size:.88rem;font-weight:650;cursor:pointer;white-space:nowrap;transition:transform .08s,box-shadow .15s,filter .15s,background .15s;line-height:1.2}
.btn:hover{filter:brightness(1.04)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-rosa{background:var(--grad-rosa);color:#fff;box-shadow:0 3px 10px rgba(230,0,92,.28),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-rosa:hover{box-shadow:0 5px 16px rgba(230,0,92,.36)}
.btn-claro{background:#fff;color:var(--ink);border:1.5px solid var(--borda);box-shadow:var(--sombra-1)}
.btn-claro:hover{border-color:#d4d9ea;background:#fafbff}
.btn-contorno{background:transparent;border:1.5px solid var(--borda);color:var(--ink-2)}
.btn-contorno:hover{border-color:var(--rosa-borda);color:var(--rosa);background:var(--rosa-claro)}
.btn-verde{background:linear-gradient(135deg,#12a35f,#0c8f52);color:#fff;box-shadow:0 3px 10px rgba(12,143,82,.25)}
.btn-vermelho{background:linear-gradient(135deg,#e2483b,#c93327);color:#fff}
.btn-amarelo{background:linear-gradient(135deg,#d99a1b,#b57a00);color:#fff}
.btn-mini{padding:5.5px 11px;font-size:.77rem;border-radius:9px;font-weight:600}
.btn-bloco{width:100%;justify-content:center}
.btn[disabled]{opacity:.55;cursor:not-allowed;filter:grayscale(.3)}

/* ---------------- layout ---------------- */
.app{display:grid;grid-template-columns:252px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,var(--nav) 0%,var(--nav-2) 100%);color:var(--nav-txt);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:40;border-right:1px solid rgba(255,255,255,.04)}
.sidebar .marca{padding:22px 20px 14px;color:#fff;font-family:'Manrope',sans-serif;font-weight:800;font-size:1.14rem;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}
.sidebar .marca:before{content:"";width:30px;height:30px;border-radius:9px;background:var(--grad-rosa);box-shadow:0 3px 10px rgba(230,0,92,.5);flex-shrink:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='.8' fill='white'/%3E%3C/svg%3E") center/72% no-repeat #000;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='.8' fill='white'/%3E%3C/svg%3E") center/72% no-repeat;background:var(--grad-rosa)}
.sidebar .marca em{color:var(--rosa-vivo);font-style:normal}
.sidebar nav{flex:1;padding:2px 12px 18px}
.nav-grupo{font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:#565e82;margin:18px 12px 7px;font-weight:800}
.nav-item{display:flex;align-items:center;gap:11px;padding:8.5px 12px;border-radius:10px;color:var(--nav-txt);cursor:pointer;font-size:.875rem;margin-bottom:2px;border:none;background:none;width:100%;text-align:left;font-weight:500;transition:background .12s,color .12s;position:relative}
.nav-item .ico{opacity:.75;transition:opacity .12s}
.nav-item:hover{background:var(--nav-hover);color:#eef0fb}
.nav-item:hover .ico{opacity:1}
.nav-item.ativo{background:linear-gradient(90deg,rgba(230,0,92,.22),rgba(230,0,92,.08));color:#fff;font-weight:650}
.nav-item.ativo:before{content:"";position:absolute;left:-12px;top:6px;bottom:6px;width:3.5px;border-radius:0 4px 4px 0;background:var(--grad-rosa);box-shadow:0 0 12px rgba(255,46,119,.8)}
.nav-item.ativo .ico{opacity:1;color:var(--rosa-vivo)}
.sidebar .rodape{padding:14px 16px;border-top:1px solid rgba(255,255,255,.06);font-size:.8rem;display:flex;align-items:center;gap:11px;background:rgba(0,0,0,.14)}
.sidebar .rodape .avatar{width:36px;height:36px;border-radius:11px;background:var(--grad-rosa);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0;box-shadow:0 2px 8px rgba(230,0,92,.4)}
.sidebar .rodape .quem{min-width:0;flex:1}
.sidebar .rodape .nome{color:#fff;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .rodape .perfil-tag{color:#7d84a5;font-size:.72rem}
.sidebar .rodape .sair{color:var(--nav-txt);background:none;border:none;cursor:pointer;font-size:.72rem;padding:6px;border-radius:8px;transition:color .12s,background .12s}
.sidebar .rodape .sair:hover{color:#ff7aa8;background:rgba(255,46,119,.1)}

.principal{display:flex;flex-direction:column;min-width:0}
.topo{display:flex;align-items:center;gap:14px;padding:13px 28px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--borda-suave);position:sticky;top:0;z-index:30}
.topo-titulos{flex:1;min-width:0}
.topo h1{font-size:1.14rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.subtitulo{font-size:.79rem;color:var(--ink-3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hamburguer{display:none;background:none;border:none;font-size:1.35rem;cursor:pointer;color:var(--ink);padding:4px 8px;border-radius:9px}
.hamburguer:hover{background:var(--borda-suave)}
.conteudo{padding:26px 28px 70px;max-width:1500px;width:100%;animation:surge .25s ease}
@keyframes surge{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------------- cards / KPIs ---------------- */
.grade-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:16px;margin-bottom:24px}
.card{background:var(--card);border:1px solid var(--borda-suave);border-radius:var(--raio);box-shadow:var(--sombra-1);padding:18px 20px;transition:box-shadow .18s,transform .18s,border-color .18s}
.card-kpi{position:relative;overflow:hidden}
.card-kpi:hover{box-shadow:var(--sombra-2);transform:translateY(-2px);border-color:var(--rosa-borda)}
.card-kpi:after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--grad-rosa);opacity:0;transition:opacity .18s}
.card-kpi:hover:after{opacity:1}
.card-kpi .rotulo{font-size:.72rem;color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.07em;display:flex;align-items:center;gap:6px}
.card-kpi .rotulo .ico-svg{color:var(--rosa);background:var(--rosa-claro);border-radius:8px;padding:4px;width:24px;height:24px;vertical-align:middle}
.card-kpi .valor{font-size:2rem;font-weight:800;margin-top:8px;letter-spacing:-.03em}
.card-kpi .extra{font-size:.79rem;color:var(--ink-3);margin-top:3px}

.painel{background:var(--card);border:1px solid var(--borda-suave);border-radius:var(--raio);box-shadow:var(--sombra-1);margin-bottom:20px;overflow:hidden}
.painel-cab{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--borda-suave);flex-wrap:wrap;background:linear-gradient(180deg,#fdfdff, #fafbfe)}
.painel-cab h2{font-size:.98rem;font-weight:750;flex:1}
.painel-cab h2 .ico-svg{color:var(--rosa);background:var(--rosa-claro);border-radius:8px;padding:4px;width:25px;height:25px;vertical-align:-7px;margin-right:7px}
.painel-corpo{padding:18px 20px}
.painel-corpo.sem-pad{padding:0}

/* ---------------- tabelas ---------------- */
.rolagem{overflow-x:auto}
table.tabela{width:100%;border-collapse:collapse;font-size:.865rem}
.tabela th{padding:11px 16px;text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);border-bottom:1px solid var(--borda);white-space:nowrap;font-weight:750;background:#fbfcfe;position:sticky;top:0}
.tabela td{padding:12px 16px;border-bottom:1px solid var(--borda-suave);vertical-align:middle;overflow-wrap:break-word}
.tabela tr:last-child td{border-bottom:none}
.tabela tbody tr{cursor:pointer;transition:background .1s,box-shadow .1s;position:relative}
.tabela tbody tr:hover{background:#fbf5f8}
.tabela tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--rosa)}
.tabela .sem-click,.tabela tbody tr.sem-click:hover td:first-child{cursor:default;box-shadow:none}
.tabela tbody tr.sem-click:hover{background:transparent}

/* ---------------- pills ---------------- */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:.71rem;font-weight:700;white-space:nowrap;letter-spacing:.01em}
.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.pill-verde{background:var(--verde-bg);color:var(--verde)}
.pill-amarela{background:var(--amarelo-bg);color:var(--amarelo)}
.pill-vermelha{background:var(--vermelho-bg);color:var(--vermelho)}
.pill-azul{background:var(--azul-bg);color:var(--azul)}
.pill-cinza{background:#eef0f6;color:var(--ink-2)}
.pill-rosa{background:var(--rosa-claro);color:var(--rosa-escuro)}

/* ---------------- abas (segmented) ---------------- */
.abas{display:inline-flex;gap:4px;background:#e9ebf3;border-radius:12px;padding:4px;margin-bottom:20px;overflow-x:auto;max-width:100%;scrollbar-width:none}
.abas::-webkit-scrollbar{display:none}
.aba{padding:8px 16px;border:none;background:transparent;font-size:.86rem;font-weight:650;color:var(--ink-2);cursor:pointer;border-radius:9px;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s;font-family:inherit}
.aba:hover{color:var(--ink)}
.aba.ativa{background:#fff;color:var(--rosa);box-shadow:0 1px 4px rgba(18,22,42,.12)}

/* ---------------- filtros ---------------- */
.filtros{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;align-items:center}
.filtros input,.filtros select{padding:9px 13px;border:1.5px solid var(--borda);border-radius:11px;font-size:.87rem;background:#fff;font-family:inherit;color:var(--ink);box-shadow:var(--sombra-1);transition:border .15s,box-shadow .15s}
.filtros input:focus,.filtros select:focus{outline:none;border-color:var(--rosa);box-shadow:0 0 0 3.5px rgba(230,0,92,.10)}
.filtros input[type=search]{min-width:230px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238b92a9' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center;padding-left:34px}

/* ---------------- modal ---------------- */
.modal-fundo{position:fixed;inset:0;background:rgba(15,18,35,.55);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:4vh 16px;overflow-y:auto;animation:aparece .15s ease}
@keyframes aparece{from{opacity:0}to{opacity:1}}
.modal{background:var(--card);border-radius:18px;width:100%;max-width:640px;box-shadow:0 30px 90px rgba(0,0,0,.35);animation:sobe .2s cubic-bezier(.2,.9,.3,1.2)}
.modal.larga{max-width:920px}
@keyframes sobe{from{transform:translateY(16px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.modal-cab{display:flex;align-items:center;padding:18px 24px;border-bottom:1px solid var(--borda-suave)}
.modal-cab h3{font-size:1.04rem;flex:1;font-weight:750}
.modal-cab .fechar{background:var(--borda-suave);border:none;width:30px;height:30px;border-radius:9px;font-size:1.15rem;cursor:pointer;color:var(--ink-2);line-height:1;transition:background .12s,color .12s}
.modal-cab .fechar:hover{background:var(--vermelho-bg);color:var(--vermelho)}
.modal-corpo{padding:20px 24px;max-height:70vh;overflow-y:auto}
.modal-pe{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--borda-suave);background:#fbfcfe;border-radius:0 0 18px 18px}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.form-2col .campo.cheio{grid-column:1/-1}

/* ---------------- kanban ---------------- */
.kanban{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 14px;align-items:flex-start}
.kanban-col{min-width:256px;width:256px;background:#eceef5;border-radius:14px;padding:10px;flex-shrink:0;border:1px solid var(--borda-suave)}
.kanban-col h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);padding:6px 8px 10px;display:flex;justify-content:space-between;align-items:center;font-weight:800}
.kanban-col h4 .cont{background:#fff;border-radius:99px;padding:1px 9px;font-size:.72rem;color:var(--ink-3);box-shadow:var(--sombra-1)}
.kanban-cartao b,.kanban-col h4{overflow-wrap:break-word}
.kanban-cartao{background:#fff;border-radius:11px;padding:12px 13px;margin-bottom:9px;box-shadow:var(--sombra-1);cursor:pointer;border-left:3px solid var(--rosa);font-size:.85rem;transition:transform .12s,box-shadow .12s}
.kanban-cartao:hover{transform:translateY(-2px);box-shadow:var(--sombra-2)}
.kanban-cartao .meta{color:var(--ink-3);font-size:.74rem;margin-top:7px;display:flex;gap:8px;flex-wrap:wrap;overflow-wrap:break-word}
.kanban-cartao.atrasada{border-left-color:var(--vermelho);background:linear-gradient(90deg,#fff5f4,#fff)}

/* ---------------- linha do tempo ---------------- */
.timeline{list-style:none;position:relative;padding-left:28px}
.timeline:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--rosa),var(--borda))}
.timeline li{position:relative;padding:0 0 20px 10px}
.timeline li:before{content:"";position:absolute;left:-26px;top:3px;width:13px;height:13px;border-radius:50%;background:#fff;border:3px solid var(--borda);transition:border .15s}
.timeline li.feito:before{border-color:var(--rosa);background:var(--rosa);box-shadow:0 0 0 4px var(--rosa-claro)}
.timeline .quando{font-size:.76rem;color:var(--ink-3);margin-top:2px}

/* ---------------- utilidades ---------------- */
.linha{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.esticar{flex:1}
.mt{margin-top:16px}.mb{margin-bottom:16px}
.texto-suave{color:var(--ink-3);font-size:.84rem}
.vazio{padding:48px 20px;text-align:center;color:var(--ink-3)}
.vazio .ico{margin-bottom:12px;color:#c3c8da;opacity:1}
.vazio .ico .ico-svg{width:52px;height:52px;background:var(--borda-suave);border-radius:16px;padding:11px}
.grade-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grade-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pre-md{white-space:pre-wrap;overflow-wrap:break-word;font-size:.87rem;line-height:1.6;background:#fafbfe;border:1px solid var(--borda-suave);border-radius:12px;padding:16px 18px;max-height:480px;overflow-y:auto}
.aviso{background:#fff8e6;border:1px solid #f0d896;color:#7a5b00;padding:10px 14px;border-radius:12px;font-size:.82rem;line-height:1.5}
.aviso-ok{background:#eefaf1;border-color:#a9dcb8;color:#20603a}
.aviso-ia{display:flex;gap:9px;align-items:center;background:linear-gradient(90deg,var(--rosa-claro),#fff2f7);color:var(--rosa-escuro);padding:10px 15px;border-radius:12px;font-size:.8rem;font-weight:650;margin-bottom:16px;border:1px solid var(--rosa-borda)}
.toast-area{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--ink);color:#fff;padding:13px 18px;border-radius:12px;font-size:.87rem;box-shadow:var(--sombra-2);animation:sobe .22s ease;max-width:380px;border-left:3px solid #6c7390}
.toast.erro{background:#3d1512;border-left-color:var(--vermelho)}
.toast.ok{background:#0d2b1d;border-left-color:var(--verde)}
.carregando{display:flex;justify-content:center;padding:56px}
.spinner{width:36px;height:36px;border:3.5px solid var(--borda);border-top-color:var(--rosa);border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.badge-num{background:var(--grad-rosa);color:#fff;border-radius:99px;font-size:.68rem;padding:1px 7px;margin-left:auto}
.check-lista{list-style:none}
.check-lista li{display:flex;align-items:center;gap:11px;padding:10px 6px;border-bottom:1px solid var(--borda-suave);font-size:.9rem;transition:background .1s}
.check-lista li:hover{background:#fbfcfe}
.check-lista li:last-child{border:none}
.check-lista input[type=checkbox]{width:17px;height:17px;accent-color:var(--rosa);cursor:pointer}
.critico-tag{font-size:.64rem;font-weight:800;color:var(--vermelho);background:var(--vermelho-bg);padding:2px 7px;border-radius:6px;letter-spacing:.05em}
code{background:var(--borda-suave);padding:2px 7px;border-radius:6px;font-size:.82em}

/* ---------------- calendário ---------------- */
.cal-grade{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.cal-dia{background:#fff;border:1px solid var(--borda-suave);border-radius:11px;min-height:92px;padding:7px 8px;font-size:.72rem;box-shadow:var(--sombra-1);transition:box-shadow .12s}
.cal-dia:hover{box-shadow:var(--sombra-2)}
.cal-dia .num{font-weight:750;color:var(--ink-2);font-size:.78rem}
.cal-dia.fora{opacity:.38;box-shadow:none}
.cal-evento{background:var(--rosa-claro);color:var(--rosa-escuro);border-radius:6px;padding:2.5px 6px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font-weight:600;border-left:2px solid var(--rosa);transition:filter .1s}
.cal-evento:hover{filter:brightness(.96)}
.cal-cab{font-size:.67rem;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:4px 0 8px;font-weight:800;letter-spacing:.08em}

/* ---------------- ícones SVG ---------------- */
.ico-svg{vertical-align:-3px;flex-shrink:0}
.nav-item .ico{display:inline-flex;align-items:center;justify-content:center}
.btn .ico-svg{margin-right:1px}
.vazio .ico{color:var(--ink-3)}
.aviso-ia .ico-svg{flex-shrink:0}
.sair .ico-svg{vertical-align:-2px}

/* ---------------- responsivo ---------------- */
@media (max-width:1100px){
  .tela-login{grid-template-columns:1fr}
  .login-lado{display:none}
}
@media (max-width:960px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;transform:translateX(-100%);transition:transform .24s cubic-bezier(.2,.8,.3,1);height:100dvh}
  .sidebar.aberta{transform:none;box-shadow:0 0 70px rgba(0,0,0,.55)}
  .hamburguer{display:block}
  .conteudo{padding:16px 14px 70px}
  .topo{padding:11px 14px}
  .grade-2,.grade-3,.form-2col{grid-template-columns:1fr}
  .cal-grade{gap:3px}
  .cal-dia{min-height:64px;border-radius:8px}
  .abas{width:100%}
}
.fundo-menu{display:none}
@media (max-width:960px){
  .fundo-menu.aberta{display:block;position:fixed;inset:0;background:rgba(10,12,25,.5);backdrop-filter:blur(2px);z-index:35}
}

/* ---------------- ajuda contextual e tour ---------------- */
.btn-ajuda{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--borda);background:#fff;color:var(--ink-2);font-weight:800;font-size:.95rem;cursor:pointer;flex-shrink:0;box-shadow:var(--sombra-1);transition:border .15s,color .15s,background .15s}
.btn-ajuda:hover{border-color:var(--rosa-borda);color:var(--rosa);background:var(--rosa-claro)}
.ajuda-btn-demo{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--borda);background:#fff;color:var(--ink-2);font-size:.8rem}

.guia-novato{display:flex;gap:12px;align-items:center;background:linear-gradient(90deg,#fffbeb,#fff);border:1px solid #f3e3b3;border-left:4px solid #e8b931;border-radius:12px;padding:12px 16px;margin-bottom:18px;font-size:.87rem;flex-wrap:wrap;animation:surge .25s ease}
.guia-novato .guia-lampada{font-size:1.25rem;flex-shrink:0}
.guia-novato .guia-texto{flex:1;min-width:220px;color:var(--ink-2)}
.guia-novato .guia-texto b{color:var(--ink)}
.guia-novato .guia-acoes{display:flex;gap:8px;flex-shrink:0}

.ajuda-passos{margin:0 0 0 20px;display:grid;gap:8px;font-size:.9rem}
.ajuda-passos li::marker{color:var(--rosa);font-weight:800}

.fluxo-etapas{display:flex;align-items:stretch;gap:6px;margin-top:16px;flex-wrap:wrap}
.fluxo-etapa{flex:1;min-width:96px;background:#fbfcfe;border:1px solid var(--borda-suave);border-radius:12px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;gap:3px;font-size:.82rem}
.fluxo-etapa small{color:var(--ink-3);font-size:.68rem;line-height:1.35}
.fluxo-etapa .fluxo-ico{font-size:1.2rem}
.fluxo-etapa.destaque{border-color:var(--rosa-borda);background:var(--rosa-claro)}
.fluxo-seta{align-self:center;color:var(--ink-3);font-weight:700}

.tour-modal{max-width:560px}
.tour-pe{align-items:center}
.tour-bolinhas{display:flex;gap:6px}
.tour-bolinhas span{width:8px;height:8px;border-radius:50%;background:var(--borda)}
.tour-bolinhas span.atual{background:var(--rosa);box-shadow:0 0 0 3px var(--rosa-claro)}

@media (max-width:640px){
  .fluxo-seta{display:none}
  .fluxo-etapas{display:grid;grid-template-columns:1fr 1fr}
  .guia-novato .guia-acoes{width:100%}
}

/* ---------------- mobile (telefones) ---------------- */
@media (max-width:700px){
  /* iOS dá zoom em campo com fonte < 16px */
  .campo input,.campo select,.campo textarea,.filtros input,.filtros select{font-size:16px}

  /* filtros: busca em linha própria, selects aos pares, botões confortáveis */
  .filtros{gap:8px}
  .filtros input[type=search]{min-width:0;flex:1 1 100%}
  .filtros select{flex:1 1 calc(50% - 4px);min-width:0}
  .filtros>.btn:not(.btn-mini){flex:1 1 auto;justify-content:center}

  /* tabelas geradas por UI.tabela viram cartões empilhados */
  .tabela.empilhavel thead{display:none}
  .tabela.empilhavel,.tabela.empilhavel tbody,.tabela.empilhavel tr{display:block;width:100%}
  .tabela.empilhavel tr{padding:12px 16px;border-bottom:1px solid var(--borda)}
  .tabela.empilhavel tr:last-child{border-bottom:none}
  .tabela.empilhavel td{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 8px;padding:3px 0;border:none;text-align:right}
  .tabela.empilhavel td:before{content:attr(data-rotulo);font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:750;flex-shrink:0;margin-right:auto}
  .tabela.empilhavel td[data-rotulo=""]:before{content:none}
  .tabela.empilhavel td:first-child{display:block;text-align:left;padding-bottom:6px}
  .tabela.empilhavel td:first-child:before{content:none}
  .tabela.empilhavel tbody tr:hover{background:#fbf5f8}
  .tabela.empilhavel tbody tr.sem-click:hover{background:transparent}
  .tabela.empilhavel tbody tr:hover td:first-child{box-shadow:none}

  /* modais ocupam quase a tela toda */
  .modal-fundo{padding:10px 8px}
  .modal{border-radius:14px}
  .modal-cab{padding:14px 16px}
  .modal-corpo{padding:16px;max-height:74vh}
  .modal-pe{padding:12px 16px;border-radius:0 0 14px 14px}
  .modal-pe .btn{flex:1 1 auto;justify-content:center}

  /* toasts em largura total */
  .toast-area{left:14px;right:14px;bottom:14px}
  .toast{max-width:none;width:100%}

  /* calendário rola na horizontal em vez de espremer 7 colunas */
  .cal-grade{min-width:600px}

  /* kanban: coluna um pouco mais estreita para insinuar a próxima */
  .kanban-col{min-width:236px;width:236px}

  /* login respira */
  .login-card{padding:28px 22px;border-radius:18px}
  .conteudo{padding:14px 12px 70px}
}

/* selo "Powered by Netlify": o CDN injeta um script depois do </html> que cria
   um iframe (#nl-badge-frame / #nl-hud-frame). Escondido aqui e removido em app.js. */
#nl-badge-frame,
#nl-hud-frame,
netlify-hud,
[data-nf-variant],
iframe[src*="netlify"] { display: none !important; }

/* ficha da aula: player lado a lado com a transcrição */
.aula-lado-a-lado{align-items:start}
.aula-player{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#000}
.aula-texto{max-height:420px}

/* ---------------- select com busca (combobox) ---------------- */
.cbusca{position:relative;display:inline-block;vertical-align:middle;max-width:100%}
.campo .cbusca{display:block;width:100%}
.tabela .cbusca{display:block;width:100%}
.cbusca-nativo{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.cbusca-input{width:100%;padding:9px 32px 9px 13px;border:1.5px solid var(--borda);border-radius:11px;font-size:.87rem;font-family:inherit;background:#fff;color:var(--ink);box-shadow:var(--sombra-1);transition:border .15s,box-shadow .15s;cursor:pointer;text-overflow:ellipsis;min-width:90px;max-width:100%}
.cbusca-input:focus{outline:none;border-color:var(--rosa);box-shadow:0 0 0 3.5px rgba(230,0,92,.10);cursor:text}
.campo .cbusca-input,.filtros .cbusca-input,.tabela .cbusca-input{padding-right:32px}
.campo .cbusca-input,.tabela .cbusca-input{min-width:0}
.cbusca-seta{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-3);font-size:.72rem;line-height:1}
.cbusca.aberta .cbusca-seta{color:var(--rosa)}
.cbusca-lista{position:fixed;z-index:400;max-height:290px;overflow-y:auto;background:#fff;border:1.5px solid var(--borda);border-radius:12px;box-shadow:var(--sombra-2);padding:5px;list-style:none;margin:0}
.cbusca-lista li{padding:8px 10px;border-radius:8px;font-size:.89rem;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbusca-lista li.sel{font-weight:650}
.cbusca-lista li.marcado,.cbusca-lista li:hover{background:var(--rosa-claro);color:var(--rosa-escuro)}
.cbusca-vazio{padding:10px;color:var(--ink-3);font-size:.85rem}

@media (max-width:700px){
  .cbusca-input{font-size:16px}
  .filtros .cbusca{flex:1 1 calc(50% - 4px);min-width:0}
  .filtros .cbusca-input{min-width:0;width:100%}
  .cbusca-lista li{white-space:normal}
}

/* ficha da aula quase tela cheia: video grande + transcricao na mesma altura */
.modal.modal-aula{max-width:min(1560px,96vw)}
.modal.modal-aula .modal-corpo{max-height:88vh}
.modal.modal-aula .aula-lado-a-lado{grid-template-columns:3fr 2fr}
.modal.modal-aula .aula-texto{max-height:min(62vh,640px)}
@media (max-width: 900px){.modal.modal-aula .aula-lado-a-lado{grid-template-columns:1fr}}
