:root { --azul:#1f4fd8; --texto:#1d2433; --suave:#6b7488; --linha:#e3e7ef; --fundo:#f5f7fb; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, Arial, sans-serif; color:var(--texto); background:var(--fundo); }
a { color:var(--azul); }
.topo { display:flex; flex-wrap:wrap; gap:8px 24px; align-items:center; justify-content:space-between;
        padding:12px 16px; background:#fff; border-bottom:1px solid var(--linha); }
.topo nav { display:flex; flex-wrap:wrap; gap:16px; }
.conteudo { max-width:1100px; margin:0 auto; padding:16px; }
h1 { font-size:1.4rem; margin:.2em 0 .6em; }
h2 { font-size:1rem; margin:1em 0 .4em; color:var(--suave); text-transform:uppercase; letter-spacing:.04em; }
.suave { color:var(--suave); font-weight:400; }
.cartao { background:#fff; border:1px solid var(--linha); border-radius:10px; padding:16px; margin-bottom:16px; }
.grade { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; margin-bottom:16px; }
.grade .cartao { margin-bottom:0; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:4px 12px; margin:0; }
dt { color:var(--suave); } dd { margin:0; overflow-wrap:anywhere; }
.filtros { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-bottom:16px; }
.filtros label, .pilha label { display:flex; flex-direction:column; font-size:.85rem; color:var(--suave); gap:4px; }
input, select { font:inherit; padding:8px 10px; border:1px solid var(--linha); border-radius:8px; background:#fff; }
.btn { font:inherit; padding:8px 14px; border:0; border-radius:8px; background:var(--azul); color:#fff; cursor:pointer;
       text-decoration:none; display:inline-block; }
.btn.secundario { background:#fff; color:var(--azul); border:1px solid var(--azul); }
.tabela-rolavel { overflow-x:auto; background:#fff; border:1px solid var(--linha); border-radius:10px; }
table { border-collapse:collapse; width:100%; }
th, td { padding:8px 12px; text-align:left; border-bottom:1px solid var(--linha); white-space:nowrap; }
th { font-size:.8rem; color:var(--suave); text-transform:uppercase; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
tfoot th { border-top:2px solid var(--linha); color:var(--texto); }
.selo { font-size:.75rem; padding:2px 8px; border-radius:999px; background:#e8eefc; color:var(--azul); vertical-align:middle; }
.alerta { padding:10px 14px; border-radius:8px; margin:12px 0; }
.alerta.erro { background:#fdecec; color:#8a1c1c; border:1px solid #f5c2c2; }
.alerta.aviso { background:#eaf6ee; color:#1d5a34; border:1px solid #bfe3cc; }
.paginas { display:flex; gap:16px; justify-content:center; padding:16px; }
.acoes form { margin:12px 0; }
.acoes .linha { display:flex; flex-wrap:wrap; gap:8px; }
.login { max-width:380px; margin:10vh auto 0; }
.pilha { display:flex; flex-direction:column; gap:10px; }
@media (max-width:600px) { .conteudo { padding:12px; } dl { grid-template-columns:1fr; } dt { margin-top:6px; } }

/* funil por etapa, ficha e métricas (Task 18) */
.pequeno { font-size:.8rem; margin:.2em 0; }
.kanban { display:flex; gap:12px; overflow-x:auto; align-items:flex-start; padding-bottom:12px; }
.coluna { flex:0 0 260px; background:#eef1f8; border-radius:10px; padding:8px 10px; }
.coluna h2 { margin:.3em 0; }
.card-lead { background:#fff; border:1px solid var(--linha); border-radius:8px; padding:8px 10px; margin:8px 0; }
.card-lead details { margin-top:6px; }
.mover { margin-top:8px; }
.destaque { border-color:#e8b4b4; background:#fff6f6; }
.lista-destaque { margin:0; padding-left:18px; }
.aviso-selo { background:#fdecec; color:#8a1c1c; }
.metricas { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; }
.metrica { display:flex; flex-direction:column; gap:4px; margin:0; border-left:6px solid var(--linha); }
.metrica .valor { font-size:1.5rem; }
.metrica.ok { border-left-color:#2e9e5b; }
.metrica.alerta { border-left-color:#d64545; }
.ficha fieldset { border:1px solid var(--linha); border-radius:10px; background:#fff; margin:0 0 16px; padding:12px 16px; }
.ficha legend { font-weight:600; padding:0 6px; }
.ficha .campos { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:10px 16px; }
.ficha label { display:flex; flex-direction:column; font-size:.85rem; color:var(--suave); gap:4px; }
.ficha label.obrigatorio { color:var(--texto); font-weight:600; }
.ficha textarea { font:inherit; padding:8px 10px; border:1px solid var(--linha); border-radius:8px; min-height:60px; }
.btn[disabled] { background:#b9c0d0; cursor:not-allowed; }
.plano { border-left:6px solid var(--azul); }
