:root{
    --azul:#1d4e89;
    --azul-escuro:#163a66;
    --tinta:#1f2733;
    --cinza:#5b6675;
    --linha:#d9dee5;
    --fundo:#f2f4f7;
    --branco:#fff;
    --ok:#1a7f4b;
    --ok-bg:#e4f4ea;
    --erro:#b3261e;
    --erro-bg:#fbe7e6;
    --info-bg:#e8eef6;
    --raio:12px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--fundo);color:var(--tinta);line-height:1.5;
    -webkit-text-size-adjust:100%;
}

/* Cabeçalho */
.topo{background:var(--azul);color:#fff}
.topo-int{
    max-width:1080px;margin:0 auto;padding:.75rem 1rem;
    display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.marca{font-weight:700;letter-spacing:.02em}
.topo nav{display:flex;gap:.5rem 1rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.topo nav a{color:#fff;text-decoration:none;font-size:.92rem;opacity:.92}
.topo nav a:hover{opacity:1;text-decoration:underline}
.topo nav a.sair{border:1px solid rgba(255,255,255,.5);padding:.25rem .7rem;border-radius:999px}

/* Conteúdo */
.conteudo{max-width:1080px;margin:1.25rem auto;padding:0 1rem}
.rodape{max-width:1080px;margin:2rem auto;padding:0 1rem;color:var(--cinza);font-size:.8rem}

/* Cartões */
.cartao{
    background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);
    padding:1.5rem;margin-bottom:1rem;
}
.cartao-estreito{max-width:420px;margin-left:auto;margin-right:auto}
.cartao.largo{max-width:none}
.centro{text-align:center}
h1{font-size:1.4rem;margin:.2rem 0 1rem}
h2{font-size:1.1rem;margin:1.4rem 0 .6rem}

/* Texto de apoio */
.ajuda{color:var(--cinza);margin:.4rem 0}
.pequena{font-size:.85rem}
.regras{color:var(--cinza);font-size:.85rem;padding-left:1.1rem;margin:.6rem 0 1rem}

/* Formulários */
label{display:block;font-weight:600;margin:.9rem 0 .3rem;font-size:.95rem}
input[type=text],input[type=password],input[type=email],input[type=date],select,textarea{
    width:100%;padding:.7rem .8rem;font-size:1rem;
    border:1px solid var(--linha);border-radius:10px;background:#fff;color:var(--tinta);
}
input:disabled{background:#f2f4f7;color:var(--cinza)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--azul);outline-offset:1px;border-color:var(--azul)}
textarea{font-family:inherit;resize:vertical}

.botao{
    display:inline-block;width:100%;margin-top:1.1rem;padding:.85rem 1rem;
    background:var(--azul);color:#fff;border:0;border-radius:10px;
    font-size:1rem;font-weight:600;cursor:pointer;text-align:center;text-decoration:none;
}
.botao:hover{background:var(--azul-escuro)}
.botao-secundario{background:#eef1f5;color:var(--azul-escuro)}
.botao-secundario:hover{background:#e2e7ee}

/* Alertas */
.alerta{border-radius:10px;padding:.8rem 1rem;margin-bottom:1rem;font-size:.95rem}
.alerta-ok{background:var(--ok-bg);color:var(--ok)}
.alerta-erro{background:var(--erro-bg);color:var(--erro)}
.alerta-info{background:var(--info-bg);color:var(--azul-escuro)}

/* Destaque de valor (mensalidade) */
.destaque-plantao{
    background:var(--info-bg);border-radius:10px;padding:1rem;margin:1rem 0;text-align:center;
}
.destaque-plantao .rotulo{display:block;font-size:.8rem;color:var(--cinza);text-transform:uppercase;letter-spacing:.05em}
.destaque-plantao strong{font-size:1.15rem}

/* Tabelas */
.tabela-rolagem{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabela{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}
.tabela th,.tabela td{padding:.6rem .7rem;text-align:left;border-bottom:1px solid var(--linha)}
.tabela th{background:#f6f8fa;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--cinza)}
.tabela tr.inativo{opacity:.5}
.tabela .vazio{text-align:center;color:var(--cinza);padding:1.2rem}
.tabela td.mat{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.acoes{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.acoes form{margin:0}
button.link,a.link{background:none;border:0;color:var(--azul);cursor:pointer;font-size:.85rem;padding:0;text-decoration:underline;width:auto;margin:0;display:inline-block}

/* Formulário em grade (cadastros com muitos campos) */
.form-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem;margin-top:.8rem}
.form-grade label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;margin:0;gap:.25rem}
.form-grade input,.form-grade select{font-weight:400}
fieldset.bloco{border:1px solid var(--linha);border-radius:10px;padding:.8rem 1rem;margin-bottom:1.2rem}
fieldset.bloco legend{padding:0 .4rem;font-weight:600}

/* Blocos recolhíveis */
.bloco{border:1px solid var(--linha);border-radius:10px;padding:.8rem 1rem;margin-bottom:1rem}
.bloco summary{cursor:pointer;font-weight:600}
.form-linha{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem;align-items:center}
.form-linha input,.form-linha select{width:auto;flex:1 1 160px}
.form-linha .botao{width:auto;margin-top:0}

.escala-topo{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1rem}

@media (max-width:520px){
    .cartao{padding:1.1rem}
    .acoes{flex-direction:column;align-items:flex-start}
}
