/* DoorBell — shared base styles (identical across all three portals).
 * Portal-specific primaries/tokens live in <portal>.css, loaded after this file.
 * Extracted from header.php inline <style> blocks — verified byte-identical
 * rule-by-rule (not line-by-line) across all three portals before extraction.
 */

*, *::before, *::after { box-sizing: border-box; }

.alert-danger  { background: #fee2e2; color: #991b1b; }

.alert-success { background: #f0fdf4; color: #166534; }

.alert-warning { background: #fef9c3; color: #854d0e; }

.btn-danger  { background: #dc2626; border-color: #dc2626; }

.btn-danger:hover  { background: #b91c1c; border-color: #b91c1c; }

.btn-menu {
      background: none; border: none; padding: 4px 6px; cursor: pointer;
      color: var(--ink-secondary); font-size: 1.25rem; line-height: 1;
      border-radius: var(--radius-sm);
      display: flex; align-items: center; justify-content: center;
    }

.btn-menu:hover { background: var(--page-bg); }

.btn-outline-secondary { color: var(--ink-secondary); border-color: var(--border-strong); }

.btn-success { background: #16a34a; border-color: #16a34a; }

.btn-success:hover { background: #15803d; border-color: #15803d; }

.card { border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: none; }

.card.shadow-sm { box-shadow: none !important; }

.main-content { flex: 1; overflow-x: hidden; min-width: 0; }

.mobile-brand {
      display: flex; align-items: center; gap: 8px;
      font-weight: 700; font-size: 0.9375rem; color: var(--ink);
      text-decoration: none;
    }

.offcanvas-sidebar { width: var(--sidebar-width) !important; background: var(--sidebar-bg) !important; }

.offcanvas-sidebar .offcanvas-header { padding: 16px 16px 12px; border-bottom: 1px solid rgba(255,255,255,.07); }

.sidebar {
      min-height: 100vh;
      background: var(--sidebar-bg);
      width: var(--sidebar-width);
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
    }

.sidebar .nav-link {
      display: flex;
      align-items: center;
      gap: 10px;
      color: #94a3b8;
      border-radius: var(--radius-md);
      padding: 8px 12px;
      font-size: 0.875rem;
      font-weight: 500;
      min-height: 40px;
      transition: background 150ms, color 150ms;
    }

.sidebar .nav-link i { width: 16px; text-align: center; flex-shrink: 0; font-size: 0.9rem; }

.sidebar .nav-link.active { background: rgba(255,255,255,.1); color: #fff; }

.sidebar .nav-link:hover { background: rgba(255,255,255,.06); color: #e2e8f0; }

.sidebar-brand {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 20px 16px 16px;
      font-size: 1.0rem;
      font-weight: 700;
      color: #fff;
      text-decoration: none;
      letter-spacing: -0.01em;
    }

@media (max-width: 768px) { .sidebar { display: none !important; } }

body {
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 0.9375rem;
      background: var(--page-bg);
      color: var(--ink);
      -webkit-font-smoothing: antialiased;
    }

textarea.form-control { height: auto; }
