:root{
  --bg:#f5f8fb;--surface:#fff;--surface2:#f8fbfd;--text:#1c2b3a;--muted:#66788a;
  --line:#dce6ef;--brand:#0e8b7b;--brand2:#19b9a4;--brandSoft:#eafaf7;
  --blueSoft:#edf6ff;--danger:#b42318;--dangerSoft:#fff1f0;
  --shadow:0 14px 35px rgba(53,75,98,.09);--radius:20px
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);
  background:radial-gradient(circle at 12% 0%,#e8faf6 0,transparent 25%),radial-gradient(circle at 100% 6%,#ebf5ff 0,transparent 28%),var(--bg)}
button,input,select{font:inherit}button{cursor:pointer}
.hidden{display:none!important}.shell{min-height:100vh}
.topbar{height:76px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:30;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#32d4bd);color:#fff;font-weight:900}
.brand h1{margin:0;font-size:17px}.brand small{color:var(--muted)}
.top-actions,.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.user-chip{padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);font-size:13px;color:var(--muted)}
.container{width:min(1240px,calc(100% - 32px));margin:auto;padding:30px 0 48px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px}.hero h2{margin:0 0 7px;font-size:clamp(26px,4vw,37px);letter-spacing:-.04em}.hero p{margin:0;color:var(--muted);max-width:720px}
.grid{display:grid;gap:15px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}
.card,.panel{background:rgba(255,255,255,.97);border:1px solid rgba(217,227,237,.95);border-radius:var(--radius);box-shadow:var(--shadow)}
.card{padding:20px}.card.emphasis{background:linear-gradient(145deg,#fff,#ecfcf9)}.card .label{font-size:13px;font-weight:750;color:var(--muted)}.card .value{font-size:31px;font-weight:880;letter-spacing:-.04em;margin-top:6px}.card .hint{font-size:12px;color:var(--muted);margin-top:4px}
.panel{padding:22px;margin-top:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.panel h3{margin:0;font-size:18px}.panel p{margin:5px 0 0;color:var(--muted);font-size:13px}
.btn{border:0;border-radius:13px;padding:11px 15px;font-weight:800;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}.btn-light{background:#fff;color:#334155;border:1px solid var(--line)}.btn-danger{background:var(--dangerSoft);color:var(--danger);border:1px solid #ffc9c5}.btn-small{padding:7px 10px;font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field.three{grid-column:span 1}label{font-size:13px;font-weight:750;color:#475569}
input,select{width:100%;border:1px solid #cfdbe7;border-radius:13px;padding:12px 13px;background:#fff;color:var(--text);outline:none;transition:.18s}
input:focus,select:focus{border-color:var(--brand2);box-shadow:0 0 0 4px rgba(25,185,164,.12)}
.input-action{display:grid;grid-template-columns:1fr auto;gap:8px}.input-action .btn{white-space:nowrap}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:12px 13px;text-align:left;border-bottom:1px solid #edf2f7;font-size:13px;vertical-align:middle}th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}
.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.ok{background:var(--brandSoft);color:#0f766e}.badge.off{background:#f1f5f9;color:#64748b}
.bars{display:grid;gap:11px}.bar-row{display:grid;grid-template-columns:180px 1fr 62px;gap:12px;align-items:center}.bar-name{font-size:13px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:10px;background:#e9f0f5;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#3dd9c3,var(--brand));border-radius:999px}.bar-value{text-align:right;color:var(--muted);font-size:12px}
.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;min-width:220px}
.empty{padding:22px;color:var(--muted);text-align:center}.muted{color:var(--muted)}
.toast{position:fixed;right:20px;bottom:20px;z-index:100;min-width:280px;max-width:420px;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 50px rgba(15,23,42,.17);display:none}.toast.show{display:block}.toast.error{color:var(--danger);border-color:#ffc9c5}
.modal-backdrop{position:fixed;inset:0;background:rgba(26,42,58,.26);display:grid;place-items:center;padding:18px;z-index:80}.modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:23px;box-shadow:0 32px 90px rgba(15,23,42,.24);padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.modal h3{margin:0}.icon-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:20px;color:#64748b}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-box{width:min(940px,100%);display:grid;grid-template-columns:1.1fr .9fr;border-radius:28px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 30px 80px rgba(41,61,80,.13)}.login-info{padding:58px;background:radial-gradient(circle at 0 0,rgba(45,212,191,.25),transparent 30%),linear-gradient(145deg,#f6fffd,#f4f8ff)}.login-info h1{font-size:40px;letter-spacing:-.05em;margin:18px 0 12px}.login-info p{color:var(--muted);line-height:1.65}.login-form{padding:58px 46px;align-self:center}.login-form h2{margin:0 0 6px}.login-form .field{margin-top:14px}
.detail{line-height:1.5}.detail strong{display:block;font-size:12px;color:#64748b}.member-link{border:0;background:none;color:#0f766e;font-weight:850;padding:0}
@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.login-box{grid-template-columns:1fr}.login-info,.login-form{padding:34px}}
@media(max-width:650px){.topbar{height:68px;padding:0 14px}.brand small,.user-chip{display:none}.container{width:min(100% - 20px,1240px);padding-top:20px}.hero{flex-direction:column;align-items:stretch}.cards{gap:10px}.card{padding:16px}.card .value{font-size:25px}.panel{padding:15px;border-radius:17px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.toolbar input,.toolbar select{width:100%;min-width:0}.bar-row{grid-template-columns:110px 1fr 48px}.modal{padding:18px}.input-action{grid-template-columns:1fr}.input-action .btn{width:100%}}
/* =========================================================
   ADMIN - VISITANTES
========================================================= */

.modal-large {
  width: min(900px, 100%);
}


/* tabela administrativa */

.admin-contatos-table {
  min-width: 1250px;
}


/* documentos */

.docs-cell {
  display: grid;
  gap: 3px;
  min-width: 180px;
  line-height: 1.35;
}

.docs-cell strong {
  font-size: 11px;
  color: #64748b;
}


/* evita que os botões fiquem esmagados */

.admin-contatos-table .actions {
  flex-wrap: nowrap;
}


/* endereço */

.admin-contatos-table td {
  vertical-align: top;
}


/* modal com muitos campos */

.modal-large .form-grid {
  align-items: start;
}


@media (max-width: 650px) {

  .modal-large {
    width: 100%;
  }

}