/* ============================================================
   XMLCofre — identidade lilás
   ============================================================ */
:root{
  --xc-50:#faf7fd; --xc-100:#f1eafa; --xc-200:#e2d4f5; --xc-300:#c9aeea;
  --xc-400:#ab84da; --xc-500:#9165cb; --xc-600:#7a4cb8; --xc-700:#633a98;
  --xc-800:#4b2b74; --xc-900:#341d52; --xc-ink:#241833;
  --xc-ok:#1f9d55; --xc-alerta:#b7791f; --xc-erro:#c53030;
  --xc-radius:14px;
  --xc-sombra:0 10px 30px rgba(52,29,82,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:var(--xc-ink);background:#fff;line-height:1.55}
a{color:var(--xc-600);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1120px;margin:0 auto;padding:0 20px}

/* topo público */
.xc-topo{position:sticky;top:0;background:#fffdfffa;border-bottom:1px solid var(--xc-100);backdrop-filter:blur(8px);z-index:50}
.xc-topo .container{display:flex;align-items:center;gap:26px;height:64px}
.xc-topo nav{display:flex;gap:22px;margin-left:auto;align-items:center}
.xc-topo nav a{color:var(--xc-ink);font-weight:500;font-size:.95rem}
.xc-logo{display:flex;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;color:var(--xc-ink)}
.xc-logo b{color:var(--xc-600)}
.xc-logo svg{display:block}

/* botões */
.btn{display:inline-block;border:none;cursor:pointer;border-radius:10px;padding:11px 22px;font-weight:700;font-size:.95rem;transition:.15s;text-decoration:none!important}
.btn-lilas{background:linear-gradient(135deg,var(--xc-500),var(--xc-700));color:#fff!important;box-shadow:0 6px 18px rgba(122,76,184,.35)}
.btn-lilas:hover{filter:brightness(1.08)}
.btn-borda{background:#fff;color:var(--xc-700)!important;border:2px solid var(--xc-300)}
.btn-borda:hover{border-color:var(--xc-500)}
.btn-grande{padding:15px 30px;font-size:1.05rem;border-radius:12px}

/* hero */
.xc-hero{background:radial-gradient(1100px 500px at 70% -10%,var(--xc-200),transparent),linear-gradient(180deg,var(--xc-50),#fff 85%);padding:72px 0 56px;text-align:center}
.xc-hero h1{font-size:2.6rem;line-height:1.15;margin:0 0 14px;font-weight:800}
.xc-hero h1 em{font-style:normal;color:var(--xc-600)}
.xc-hero p.sub{font-size:1.18rem;color:#5a4a75;max-width:640px;margin:0 auto 30px}
.xc-chave{display:flex;max-width:680px;margin:0 auto;box-shadow:var(--xc-sombra);border-radius:14px;overflow:hidden;border:2px solid var(--xc-300);background:#fff}
.xc-chave input{flex:1;border:none;padding:16px 18px;font-size:1.02rem;outline:none;font-family:ui-monospace,Menlo,monospace;letter-spacing:.4px}
.xc-chave button{border:none;background:linear-gradient(135deg,var(--xc-500),var(--xc-700));color:#fff;font-weight:700;padding:0 28px;font-size:1rem;cursor:pointer}
.xc-selo{margin-top:14px;color:#6b5a86;font-size:.92rem}

/* seções */
.xc-secao{padding:64px 0}
.xc-secao h2{text-align:center;font-size:1.9rem;margin:0 0 8px;font-weight:800}
.xc-secao p.lead{text-align:center;color:#6b5a86;max-width:640px;margin:0 auto 40px}
.xc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.xc-card{background:#fff;border:1px solid var(--xc-100);border-radius:var(--xc-radius);padding:22px;box-shadow:0 3px 14px rgba(52,29,82,.05)}
.xc-card .ico{font-size:1.7rem}
.xc-card h3{margin:10px 0 6px;font-size:1.05rem}
.xc-card p{margin:0;color:#6b5a86;font-size:.92rem}

/* passos */
.xc-passos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;counter-reset:passo}
.xc-passo{background:var(--xc-50);border-radius:var(--xc-radius);padding:26px;position:relative}
.xc-passo::before{counter-increment:passo;content:counter(passo);position:absolute;top:-16px;left:22px;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--xc-500),var(--xc-700));color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.xc-passo h3{margin:8px 0 6px;font-size:1.05rem}
.xc-passo p{margin:0;color:#6b5a86;font-size:.93rem}

/* planos */
.xc-planos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:stretch}
.xc-plano{background:#fff;border:2px solid var(--xc-100);border-radius:18px;padding:28px;display:flex;flex-direction:column}
.xc-plano.destaque{border-color:var(--xc-500);box-shadow:var(--xc-sombra);position:relative}
.xc-plano.destaque::before{content:'MAIS ESCOLHIDO';position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--xc-500),var(--xc-700));color:#fff;font-size:.7rem;font-weight:800;padding:4px 14px;border-radius:20px;letter-spacing:.5px}
.xc-plano h3{margin:0;font-size:1.15rem}
.xc-preco{font-size:2.1rem;font-weight:800;margin:10px 0 2px}
.xc-preco small{font-size:.95rem;color:#6b5a86;font-weight:500}
.xc-plano ul{list-style:none;margin:16px 0 22px;padding:0;flex:1}
.xc-plano li{padding:6px 0 6px 26px;position:relative;font-size:.93rem;color:#453461}
.xc-plano li::before{content:'✓';position:absolute;left:2px;color:var(--xc-500);font-weight:800}

/* FAQ */
.xc-faq{max-width:760px;margin:0 auto}
.xc-faq details{border-bottom:1px solid var(--xc-100);padding:14px 4px}
.xc-faq summary{cursor:pointer;font-weight:600;font-size:1rem;list-style:none;display:flex;justify-content:space-between}
.xc-faq summary::after{content:'+';color:var(--xc-500);font-weight:800;font-size:1.2rem}
.xc-faq details[open] summary::after{content:'–'}
.xc-faq details p{color:#6b5a86;font-size:.95rem;margin:10px 0 4px}

/* rodapé */
.xc-rodape{background:var(--xc-900);color:#cbb8e8;padding:40px 0 30px;margin-top:40px}
.xc-rodape a{color:#e2d4f5}
.xc-rodape .container{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:center}
.xc-rodape small{color:#9d86c2}

/* formulários (login/cadastro/app) */
.xc-form{max-width:420px;margin:56px auto;background:#fff;border:1px solid var(--xc-100);border-radius:18px;padding:34px;box-shadow:var(--xc-sombra)}
.xc-form h1{font-size:1.4rem;margin:0 0 18px;text-align:center}
.xc-form label{display:block;font-weight:600;font-size:.88rem;margin:14px 0 5px}
.xc-form input,.xc-form select{width:100%;border:1.5px solid var(--xc-200);border-radius:10px;padding:11px 13px;font-size:.98rem;outline:none}
.xc-form input:focus{border-color:var(--xc-500)}
.xc-erro{background:#fdeaea;color:var(--xc-erro);border-radius:10px;padding:10px 14px;font-size:.9rem;margin-bottom:6px}
.xc-aviso{background:var(--xc-100);color:var(--xc-800);border-radius:10px;padding:10px 14px;font-size:.9rem;margin-bottom:6px}

/* app (área logada) */
.xc-app{display:flex;min-height:100vh;background:var(--xc-50)}
.xc-menu{width:230px;background:var(--xc-900);color:#e2d4f5;padding:18px 0;flex-shrink:0}
.xc-menu .xc-logo{color:#fff;padding:6px 20px 18px;font-size:1.1rem}
.xc-menu .xc-logo b{color:var(--xc-300)}
.xc-menu a{display:flex;gap:10px;align-items:center;color:#cbb8e8;padding:10px 20px;font-size:.93rem}
.xc-menu a:hover,.xc-menu a.ativo{background:var(--xc-800);color:#fff;text-decoration:none}
.xc-conteudo{flex:1;padding:26px 30px;min-width:0}
.xc-conteudo h1{font-size:1.45rem;margin:0 0 18px}
.xc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:24px}
.xc-kpi{background:#fff;border:1px solid var(--xc-100);border-radius:var(--xc-radius);padding:18px}
.xc-kpi .num{font-size:1.7rem;font-weight:800;color:var(--xc-700)}
.xc-kpi .rot{color:#6b5a86;font-size:.86rem}
.xc-tabela{width:100%;background:#fff;border-collapse:collapse;font-size:.8rem;white-space:nowrap}
.xc-tabela th{background:var(--xc-100);text-align:left;padding:7px 10px;font-size:.68rem;letter-spacing:.5px;text-transform:uppercase;color:var(--xc-800);border-bottom:1px solid var(--xc-200);position:sticky;top:0}
.xc-tabela td{padding:5px 10px;border-bottom:1px solid var(--xc-50);vertical-align:middle}
.xc-tabela tbody tr:hover{background:var(--xc-50)}
.btn-mini{display:inline-block;border:1px solid var(--xc-200);background:#fff;color:var(--xc-800);border-radius:7px;padding:3px 10px;font-size:.74rem;font-weight:600;cursor:pointer}
.btn-mini:hover{border-color:var(--xc-500);color:var(--xc-700);text-decoration:none}
.btn-mini.perigo:hover{border-color:var(--xc-erro);color:var(--xc-erro)}
.xc-menu svg{width:16px;height:16px;flex-shrink:0;opacity:.85}

@media (max-width:760px){
  .xc-hero h1{font-size:1.9rem}
  .xc-topo nav{display:none}
  .xc-app{flex-direction:column}
  .xc-menu{width:100%;display:flex;overflow-x:auto;padding:0}
  .xc-menu .xc-logo{display:none}
  .xc-menu a{white-space:nowrap}
}

/* ============ grade profissional (padrão Livrão): densa, sem quebra ============ */
.xc-gradewrap{background:#fff;border:1px solid var(--xc-100);border-radius:var(--xc-radius);overflow:auto;max-width:100%}
.xc-grade{width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap}
.xc-grade th{position:sticky;top:0;background:var(--xc-100);color:var(--xc-800);text-align:left;padding:7px 10px;
  font-size:.68rem;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;user-select:none;border-bottom:1px solid var(--xc-200)}
.xc-grade th.num{text-align:right}
.xc-grade th .seta{opacity:.35;font-size:.6rem;margin-left:3px}
.xc-grade th.ord .seta{opacity:1;color:var(--xc-600)}
.xc-grade td{padding:5px 10px;border-bottom:1px solid var(--xc-50);vertical-align:middle}
.xc-grade tbody tr:hover{background:var(--xc-50)}
.xc-grade td.num{text-align:right;font-variant-numeric:tabular-nums}
.xc-grade td.corta{max-width:240px;overflow:hidden;text-overflow:ellipsis}
.xc-grade td.corta2{max-width:150px;overflow:hidden;text-overflow:ellipsis;color:#6b5a86}
/* chips de estado, sem emoji */
.xc-chip{display:inline-block;padding:1px 8px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.3px}
.xc-chip.ok{background:#e4f6ec;color:#0a6b32}
.xc-chip.erro{background:#fdeaea;color:#a12020}
.xc-chip.alerta{background:#fff4d6;color:#8a6d00}
.xc-chip.neutro{background:var(--xc-100);color:var(--xc-800)}
/* select de ações por linha */
.xc-acoes{border:1px solid var(--xc-200);border-radius:7px;padding:3px 6px;font-size:.76rem;background:#fff;color:var(--xc-800);max-width:110px}
.xc-acoes:focus{border-color:var(--xc-500);outline:none}
/* barra de filtros compacta */
.xc-filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.xc-filtros input,.xc-filtros select{border:1.5px solid var(--xc-200);border-radius:8px;padding:6px 10px;font-size:.84rem}
.xc-filtros input[type=date]{width:132px}
