/* ===================================================================
   Portal Notarial — Design System "Sneat" (base do painel), AZUL da marca.
   Fonte unica de verdade dos componentes. Carregar DEPOIS de
   calculator-shell.css. Fonte Public Sans deve ser incluida na pagina.
   Prefixo .sn-* para os componentes; nao colide com o CSS legado.
   =================================================================== */

:root{
  --sn-primary:#1273ea;
  --sn-primary-hover:#0f5fc2;
  --sn-primary-050:#e8f1ff;
  --sn-text:#566a7f;
  --sn-ink:#44546a;
  --sn-muted:#697a8d;
  --sn-faint:#8a93a3;
  --sn-bg:#f5f5f9;
  --sn-surface:#ffffff;
  --sn-line:#e4e6ec;
  --sn-line-soft:#eef0f3;
  --sn-field:#d9dee3;
  --sn-radius:.5rem;
  --sn-radius-sm:.375rem;
  --sn-shadow:0 2px 6px rgba(67,89,113,.08);
  --sn-shadow-sm:0 1px 2px rgba(67,89,113,.05);
  --sn-font:"Public Sans",-apple-system,system-ui,"Segoe UI",Roboto,Arial,sans-serif;
}

body.sn{
  margin:0;
  background:var(--sn-bg);
  color:var(--sn-text);
  font:400 15px/1.5 var(--sn-font);
  letter-spacing:0;
}

/* container de pagina */
.sn-page{width:100%;max-width:1180px;margin:0 auto;padding:26px 24px 48px}

/* cabecalho de pagina */
.sn-pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.sn-pagehead h1{margin:0;font-size:24px;font-weight:700;color:var(--sn-ink);letter-spacing:-.01em}
.sn-pagehead .sn-sub{margin:4px 0 0;font-size:15px;line-height:1.55;color:var(--sn-muted);max-width:90ch}

/* botoes */
.sn-btn,.sn-btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:38px;border-radius:var(--sn-radius-sm);padding:0 16px;
  font:600 13.5px/1 var(--sn-font);text-decoration:none;white-space:nowrap;cursor:pointer;
  border:1px solid transparent;
}
.sn-btn{background:var(--sn-primary);color:#fff}
.sn-btn:hover{background:var(--sn-primary-hover);color:#fff;text-decoration:none}
.sn-btn-outline{background:#fff;color:var(--sn-text);border-color:var(--sn-field)}
.sn-btn-outline:hover{background:var(--sn-bg);color:var(--sn-ink);text-decoration:none}
.sn-btn[disabled],.sn-btn-outline[disabled]{opacity:.7;cursor:default}
.sn-btn-lg,.sn-btn-outline.sn-btn-lg{height:44px;padding:0 20px;font-size:15px}
.sn-btn-block{width:100%}

/* cards */
.sn-card{background:var(--sn-surface);border-radius:var(--sn-radius);box-shadow:var(--sn-shadow)}
.sn-card + .sn-card{margin-top:18px}
.sn-card-pad{padding:22px 24px}
.sn-card-head{padding:18px 22px 0}
.sn-card-title{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--sn-ink)}

/* badges "soft" (estilo Sneat bg-label-*), texto legivel */
.sn-badge{display:inline-block;padding:4px 9px;border-radius:var(--sn-radius-sm);font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.4;text-transform:uppercase;white-space:nowrap;background:#ebeef0;color:var(--sn-muted)}
.sn-badge-success{background:#e8fadf;color:#0f8a4a}
.sn-badge-info{background:#d7f5fc;color:#0894b4}
.sn-badge-primary{background:#e8f1ff;color:#0f63c9}
.sn-badge-danger{background:#ffe0db;color:#d32b10}
.sn-badge-warning{background:#fff2d6;color:#a66a00}
.sn-badge-secondary{background:#ebeef0;color:#8592a3}

/* formularios */
.sn-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.sn-field label,.sn-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--sn-muted)}
.sn-input,.sn-select,.sn-field input,.sn-field select,.sn-field textarea{
  width:100%;min-width:0;height:38px;border:1px solid var(--sn-field);border-radius:var(--sn-radius-sm);
  background:#fff;color:var(--sn-text);font:400 14px/1.4 var(--sn-font);padding:8px 11px;
}
.sn-field textarea{height:auto;min-height:96px;resize:vertical}
.sn-input:focus,.sn-select:focus,.sn-field input:focus,.sn-field select:focus,.sn-field textarea:focus{
  outline:0;border-color:var(--sn-primary);box-shadow:0 0 0 2px var(--sn-primary-050)
}

/* tabela */
.sn-tablewrap{overflow-x:auto}
table.sn-table{width:100%;border-collapse:collapse;background:#fff;table-layout:fixed}
.sn-table th,.sn-table td{padding:13px 14px;text-align:left;vertical-align:middle;font-size:13.5px}
.sn-table thead th{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sn-muted);border-bottom:1px solid var(--sn-line);white-space:nowrap;background:#fff}
.sn-table thead th.num{text-align:right}
.sn-table tbody td{border-bottom:1px solid var(--sn-line-soft);color:var(--sn-text)}
.sn-table tbody tr:last-child td{border-bottom:0}
.sn-table tbody tr:hover{background:var(--sn-bg)}
.sn-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* paginacao */
.sn-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 4px 0;color:var(--sn-muted);font-size:13px}
.sn-pager{display:flex;align-items:center;gap:6px}
.sn-pager a,.sn-pager span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border:1px solid var(--sn-line);border-radius:var(--sn-radius-sm);background:#fff;color:var(--sn-text);font-size:13px;font-weight:600;text-decoration:none}
.sn-pager a:hover{border-color:var(--sn-primary);color:var(--sn-primary)}
.sn-pager .is-current{background:var(--sn-primary);border-color:var(--sn-primary);color:#fff}
.sn-pager .is-disabled{color:var(--sn-faint);opacity:.7}

.sn-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (max-width:600px){
  .sn-page{padding:22px 16px 40px}
  .sn-pagehead .sn-btn,.sn-pagehead .sn-btn-outline{width:100%}
}
