* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: #f6f7f9;
    color: #1f2430;
}

.topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    background: #14171f;
    color: #fff;
}

.marca { font-weight: 600; }

.topo nav a {
    color: #b7bcc9;
    text-decoration: none;
    margin-left: 20px;
    font-size: 14px;
}

.topo nav a.ativo, .topo nav a:hover { color: #fff; }

.conteudo {
    max-width: 960px;
    margin: 0 auto;
    padding: 28px 20px 60px;
}

h1 { font-size: 22px; margin-bottom: 4px; }
h2 { font-size: 16px; margin-top: 32px; }

.texto-fraco { color: #6b7280; font-size: 13px; }
.texto-erro { color: #b42318; }

.cabecalho-secao {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.cartoes { display: flex; gap: 16px; margin: 20px 0; }

.cartao {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 20px;
    min-width: 140px;
}

.cartao-numero { display: block; font-size: 24px; font-weight: 700; }
.cartao-legenda { font-size: 12px; color: #6b7280; }

.tabela {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    font-size: 14px;
}

.tabela th, .tabela td {
    text-align: left;
    padding: 10px 14px;
    border-bottom: 1px solid #f0f1f3;
}

.tabela th { background: #fafafa; font-weight: 600; color: #4b5563; }
.tabela tr:last-child td { border-bottom: none; }

.badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: #e5e7eb;
    color: #374151;
}

.badge-ok { background: #dcfce7; color: #166534; }
.badge-erro { background: #fee2e2; color: #991b1b; }
.badge-pendente { background: #fef3c7; color: #92400e; }
.badge-neutro { background: #e5e7eb; color: #374151; }

.botao {
    display: inline-block;
    background: #14171f;
    color: #fff;
    border: none;
    padding: 9px 16px;
    border-radius: 8px;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
}

.botao-secundario { background: #fff; color: #14171f; border: 1px solid #d1d5db; }
.botao-perigo { background: #b42318; }

.formulario {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 560px;
}

.formulario label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
}

.formulario input, .formulario select, .formulario textarea {
    font-size: 14px;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-weight: 400;
}

.formulario-inline { display: flex; gap: 8px; align-items: center; }
.formulario-inline input { flex: 1; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; }

.linha-form { display: flex; gap: 14px; }
.linha-form label { flex: 1; }

.aviso {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
    margin: 14px 0;
}

.aviso-erro { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

.grade-detalhe {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 18px 20px;
    font-size: 14px;
    margin-top: 16px;
}

.acoes { display: flex; gap: 10px; margin: 20px 0; flex-wrap: wrap; }

.xml-caixa {
    background: #0f1117;
    color: #d1d5db;
    padding: 16px;
    border-radius: 8px;
    font-size: 12px;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

@media (max-width: 600px) {
    .grade-detalhe { grid-template-columns: 1fr; }
    .linha-form { flex-direction: column; }
}
.card-cnaes{max-width:760px;margin-top:22px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.card-cnaes h2{margin-top:0}.lista-cnaes{margin-top:16px;border-top:1px solid #e5e7eb}.cnae-item{padding:11px 0;border-bottom:1px solid #e5e7eb;line-height:1.4}.texto-suave{color:#64748b}.check-linha{display:flex!important;align-items:center;gap:8px}.check-linha input{width:auto!important}.botao-secundario{margin-top:6px}
.tributacao-item{margin-top:16px;padding:16px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.tributacao-item .linha-form{margin-top:12px}.tributacao-item .botao{margin-top:10px}.formulario small{font-weight:400;color:#64748b}

.formulario fieldset { min-width: 0; box-sizing: border-box; width: 100%; }
.formulario .linha-form { flex-wrap: wrap; }
.formulario .linha-form label { min-width: 0; }

/* Painel Girion inspirado na organização do portal municipal. */
:root { --azul-painel:#213342; --azul-topo:#172733; --azul-acao:#2383a5; }
body { background:var(--azul-painel); color:#233446; }
.topo { background:var(--azul-topo); min-height:70px; gap:20px; }
.marca { font-size:19px; letter-spacing:.2px; }
.conta-atual { font-size:13px; overflow-wrap:anywhere; }
.painel { display:grid; grid-template-columns:230px minmax(0,1fr); gap:28px; max-width:1550px; margin:28px auto; padding:0 24px; align-items:start; }
.menu-lateral { background:#fff; border-radius:8px; overflow:hidden; }
.menu-lateral nav>a { display:block; padding:15px 18px; border-bottom:1px solid #e2e8f0; color:#234c68; text-decoration:none; font-size:14px; }
.menu-lateral nav>a.ativo,.menu-lateral nav>a:hover { background:#e2edf4; border-left:4px solid var(--azul-acao); padding-left:14px; }
.menu-lateral p { font-size:12px; line-height:1.6; padding:0 18px; color:#607084; }
.menu-lateral form { padding:0 18px 18px; }
.conteudo { background:#edf1f5; border-top:5px solid #3a5368; border-radius:4px; width:100%; max-width:none; padding:24px; margin:0; min-width:0; overflow-x:auto; }
h1 { margin-top:0; margin-bottom:18px; }
h2 { color:#344e65; border-bottom:1px solid #cbd5e1; padding-bottom:10px; }
.botao { background:var(--azul-acao); border-radius:5px; }
.botao-secundario { background:#fff; color:#234c68; }
.botao-perigo { background:#b42318; }
.formulario { max-width:100%; border-radius:6px; }
.formulario fieldset { min-width:0; border:1px solid #cbd5e1; padding:16px; border-radius:4px; }
.formulario legend { font-size:14px; font-weight:600; color:#344e65; padding:0 8px; }
.formulario input,.formulario select,.formulario textarea { max-width:100%; min-width:0; width:100%; }
.formulario input[readonly] { background:#edf1f5; }
.formulario .linha-form>label { flex:1 1 180px; }
.tabela { min-width:650px; }
.tabela th { background:#3a5368; color:#fff; }
.cartoes { flex-wrap:wrap; }
.cartao { flex:1; border-top:3px solid var(--azul-acao); }
.card-cnaes { max-width:none; }
.pagina-login { display:grid; min-height:100vh; place-items:center; padding:24px; }
.login-caixa { background:#edf1f5; width:100%; max-width:440px; border-radius:10px; padding:28px; box-shadow:0 15px 45px #0003; }
.login-caixa .formulario { padding:0; background:transparent; border:0; }
@media(max-width:900px) { .painel { grid-template-columns:1fr; gap:16px; padding:0 12px; margin:16px auto; } .menu-lateral nav { display:flex; flex-wrap:wrap; align-items:center; } .menu-lateral nav>a { flex:1 1 auto; } .menu-lateral p { display:none; } .menu-lateral form { padding:10px; margin:0; } .conteudo { padding:18px; } }
@media(max-width:600px) { .topo { flex-direction:column; align-items:flex-start; padding:16px; gap:8px; } .formulario { padding:14px; } .formulario .linha-form>label { flex-basis:auto; } .cartao { min-width:120px; } }
