/* ===== RESERVA · design system (branco + azul-escuro) ===== */
:root{
  --navy-900:#0B1B34; --navy-800:#0F2547; --navy-700:#15325E; --navy-600:#1C3E70;
  --azure:#2F6BFF; --azure-400:#4C82FF; --sky:#EAF1FF;
  --ink:#0E1B30; --muted:#5B6B84; --line:#E4EAF2; --bg:#F5F8FC; --white:#fff;
  --success:#16A34A; --whats:#25D366; --amber:#F0A030; --danger:#E24C4C;
  --shadow:0 1px 2px rgba(11,27,52,.04),0 8px 24px rgba(11,27,52,.06);
  --shadow-lg:0 12px 40px rgba(11,27,52,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.brand{font-family:'Plus Jakarta Sans',sans-serif}
button{font-family:inherit;cursor:pointer;border:none;background:none}
a{color:inherit}
::selection{background:var(--sky)}

/* botões */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;font-weight:600;font-size:14px;transition:.15s;white-space:nowrap;justify-content:center}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--azure);color:#fff;box-shadow:0 6px 16px rgba(47,107,255,.3)}
.btn-primary:hover{background:#245bea;transform:translateY(-1px)}
.btn-ghost{background:var(--sky);color:var(--azure)}
.btn-ghost:hover{background:#dbe6ff}
.btn-line{border:1px solid var(--line);color:var(--ink);background:#fff}
.btn-line:hover{border-color:var(--azure);color:var(--azure)}
.btn-danger{background:#FDECEC;color:var(--danger)}
.btn-danger:hover{background:#fbdada}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:9px}

/* cards / campos */
.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}
.field input,.field select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;transition:.15s}
.field input:focus,.field select:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 3px rgba(47,107,255,.13)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* chips */
.chip{font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--sky);color:var(--azure);display:inline-block}
.chip.ok{background:#E7F6EC;color:var(--success)}
.chip.warn{background:#FFF4E0;color:var(--amber)}
.chip.mut{background:#EDF1F7;color:var(--muted)}

/* switch */
.switch{width:42px;height:24px;border-radius:20px;background:var(--line);position:relative;transition:.2s;flex-shrink:0;cursor:pointer;display:inline-block}
.switch::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on{background:var(--azure)}
.switch.on::after{left:21px}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(11,27,52,.5);backdrop-filter:blur(3px);display:none;place-items:center;z-index:100;padding:20px}
.modal-bg.show{display:grid}
.modal{background:#fff;border-radius:20px;max-width:460px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .2s ease}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.modal-head{padding:22px 24px 4px}.modal-head h3{font-size:18px;font-weight:800}
.modal-body{padding:14px 24px 20px}
.modal-foot{padding:16px 24px;background:#FAFBFE;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(120px);background:var(--navy-900);color:#fff;padding:13px 20px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);z-index:200;display:flex;align-items:center;gap:10px;transition:.3s;max-width:90vw}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast svg{width:18px;height:18px;color:#5EE89A;flex-shrink:0}
.toast.err svg{color:#FF8B8B}

@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
