:root {
  --wa-green: #25d366;
  --wa-green-dark: #128c7e;
  --bg-soft: #f4f6f8;
}

body { background: var(--bg-soft); }
.brand-mark {
  width: 36px; height: 36px; border-radius: 10px;
  background: linear-gradient(135deg, var(--wa-green), var(--wa-green-dark));
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
}
.btn-success { background: var(--wa-green); border-color: var(--wa-green); }
.btn-success:hover, .btn-success:focus { background: var(--wa-green-dark); border-color: var(--wa-green-dark); }
.btn-outline-success { color: var(--wa-green-dark); border-color: var(--wa-green); }
.btn-outline-success:hover { background: var(--wa-green); border-color: var(--wa-green); color: #fff; }

.card {
  border: 0;
  box-shadow: 0 1px 3px rgba(16,24,40,.06), 0 1px 2px rgba(16,24,40,.04);
  border-radius: .75rem;
}

/* ---- Login ----------------------------------------------------------------*/
.auth-body {
  min-height: 100vh;
  display: grid; place-items: center;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(37,211,102,.10), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(18,140,126,.08), transparent 60%),
    var(--bg-soft);
}
.auth-wrap { width: 100%; max-width: 420px; padding: 1rem; }
.auth-card {
  background: #fff; padding: 2rem; border-radius: 1rem;
  box-shadow: 0 10px 30px -10px rgba(16,24,40,.15), 0 2px 6px rgba(16,24,40,.05);
}
.auth-brand { text-align: center; margin-bottom: 1.5rem; }
.auth-brand .brand-mark { margin-bottom: .5rem; width: 48px; height: 48px; font-size: 1.4rem; }

/* ---- Dashboard ------------------------------------------------------------*/
.dash-body { background: var(--bg-soft); }
.list-group-item {
  cursor: pointer; border-radius: .5rem; margin-bottom: .25rem; border: 0;
  background: transparent; padding: .75rem;
}
.list-group-item:hover { background: rgba(37,211,102,.07); }
.list-group-item.active { background: rgba(37,211,102,.15); color: inherit; }
.list-group-item .dot {
  width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: .4rem;
  background: #adb5bd;
}
.dot.connected   { background: #198754; }
.dot.connecting  { background: #ffc107; }
.dot.qr          { background: #0dcaf0; }
.dot.disconnected, .dot.logged_out { background: #dc3545; }

.badge.bg-status-connected   { background: #198754 !important; }
.badge.bg-status-connecting  { background: #ffc107 !important; color: #212529 !important; }
.badge.bg-status-qr          { background: #0dcaf0 !important; color: #212529 !important; }
.badge.bg-status-disconnected, .badge.bg-status-logged_out { background: #dc3545 !important; }

.log-box {
  height: 240px; overflow-y: auto;
  background: #0b1020; color: #e2e8f0;
  font-family: ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  font-size: .8rem; padding: .75rem 1rem; border-radius: .5rem;
}
.log-box .ts { color: #94a3b8; margin-right: .5rem; }
.log-box .from { color: #67e8f9; }
.log-box .out { color: #86efac; }
.log-box .in  { color: #fde68a; }
