/* ═══════════════════════════════════════════════════════════════
   AKKU PARTNER PROGRAM — Design System (Light default + Dark mode)
   Brand: Violet #7C4FE8 · Sea #0ABAB5 · Coral #FF7F50
   Toggle: [data-theme="dark"] on <html>
   ═══════════════════════════════════════════════════════════════ */

/* ── Light Mode (default) ───────────────────────────────────── */
:root {
  /* Brand palette */
  --lavender:      #F0EAFF;
  --violet:        #7C4FE8;
  --violet-light:  #9B76F5;
  --violet-dark:   #5C34C4;
  --violet-subtle: #F3EEFF;
  --ultramarine:   #2F1298;
  --ink:           #1E1040;
  --coral:         #FF7F50;
  --coral-dark:    #E65F35;
  --sea:           #0ABAB5;
  --sea-dark:      #088884;

  /* Aliases (used in JS inline styles) */
  --primary: var(--violet);
  --text:    #1E1040;
  --bg:      #FFFFFF;

  /* Page backgrounds */
  --bg-primary:   #F7F5FF;
  --bg-secondary: #FFFFFF;
  --bg-tertiary:  #F0ECFE;

  /* Surface colors — use these for all cards, panels, modals */
  --bg-surface:   #FFFFFF;        /* base card / panel / modal bg  */
  --bg-surface-2: #F9F7FF;        /* slightly tinted header / thead */
  --bg-surface-3: #F3F0FB;        /* tabs bar, hover tint           */
  --bg-inset:     #F7F5FF;        /* inset bg (sidebar header, etc) */
  --input-bg:     #FFFFFF;        /* form inputs                    */
  --card-bg:      #FFFFFF;
  --bg-card:      #FFFFFF;

  /* Interactions */
  --surface:        rgba(124, 79, 232, 0.06);
  --surface-hover:  rgba(124, 79, 232, 0.10);
  --surface-active: rgba(124, 79, 232, 0.12);

  /* Borders */
  --border:       #E4DFEE;
  --border-hover: #C8BCEF;
  --border-focus: var(--violet);

  /* Text */
  --text-primary:   #1E1040;
  --text-secondary: #4B3E72;
  --text-muted:     #8B7FB8;
  --text-inverse:   #FFFFFF;

  /* Glassmorphism (light) */
  --glass-bg:     rgba(255, 255, 255, 0.88);
  --glass-border: rgba(124, 79, 232, 0.13);
  --glass-shadow: 0 4px 24px rgba(124, 79, 232, 0.09);
  --glass-blur:   blur(12px);

  /* Shadows */
  --shadow-xs: 0 1px 3px  rgba(30, 16, 64, 0.06);
  --shadow-sm: 0 2px 8px  rgba(30, 16, 64, 0.08);
  --shadow-md: 0 4px 20px rgba(30, 16, 64, 0.10);
  --shadow-lg: 0 8px 36px rgba(30, 16, 64, 0.13);
  --shadow-xl: 0 16px 56px rgba(30, 16, 64, 0.16);
  --shadow-violet: 0 6px 24px rgba(124, 79, 232, 0.28);
  --shadow-teal:   0 6px 24px rgba(10, 186, 181, 0.22);

  /* Border radius */
  --radius-xs:   6px;
  --radius-sm:   10px;
  --radius-md:   14px;
  --radius-lg:   18px;
  --radius-xl:   24px;
  --radius-2xl:  30px;
  --radius-full: 9999px;

  /* Spacing */
  --space-1:4px;  --space-2:8px;   --space-3:12px;
  --space-4:16px; --space-5:20px;  --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px;

  /* Typography */
  --font-sans:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Georama', 'Inter', sans-serif;
  --font-body:    var(--font-sans);
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  /* Transitions */
  --transition-fast:   120ms ease;
  --transition-base:   200ms ease;
  --transition-slow:   340ms ease;
  --transition-spring: 260ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Theme-toggle specific */
  --toggle-bg:       #EEEBFF;
  --toggle-border:   rgba(124, 79, 232, 0.25);
  --toggle-icon:     '🌙';
}

/* ── Dark Mode overrides ────────────────────────────────────── */
[data-theme="dark"] {
  --violet:        #8D58FE;
  --violet-light:  #A67DFF;
  --violet-dark:   #6B3FE0;
  --violet-subtle: rgba(141, 88, 254, 0.14);

  --text:  #F0ECFF;
  --bg:    #0F0C28;
  --ink:   #F0ECFF;

  --bg-primary:   #080620;
  --bg-secondary: #0F0C28;
  --bg-tertiary:  #17133A;

  --bg-surface:   #131030;
  --bg-surface-2: #1a1640;
  --bg-surface-3: rgba(0, 0, 0, 0.30);
  --bg-inset:     rgba(141, 88, 254, 0.08);
  --input-bg:     rgba(0, 0, 0, 0.32);
  --card-bg:      rgba(255, 255, 255, 0.04);
  --bg-card:      rgba(255, 255, 255, 0.04);

  --surface:        rgba(141, 88, 254, 0.08);
  --surface-hover:  rgba(141, 88, 254, 0.14);
  --surface-active: rgba(141, 88, 254, 0.18);

  --border:       rgba(242, 231, 255, 0.10);
  --border-hover: rgba(242, 231, 255, 0.22);

  --text-primary:   #F0ECFF;
  --text-secondary: rgba(240, 236, 255, 0.72);
  --text-muted:     rgba(240, 236, 255, 0.45);
  --text-inverse:   #0F0C28;

  --glass-bg:     rgba(15, 12, 40, 0.85);
  --glass-border: rgba(242, 231, 255, 0.12);
  --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.50);

  --shadow-xs: 0 1px 4px  rgba(0,0,0,0.28);
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.35);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.45);
  --shadow-lg: 0 8px 36px rgba(0,0,0,0.55);
  --shadow-xl: 0 16px 56px rgba(0,0,0,0.65);

  --toggle-bg:     rgba(141, 88, 254, 0.18);
  --toggle-border: rgba(141, 88, 254, 0.40);
}

/* ═══════════════════════════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; text-size-adjust:100%; }

body {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-primary);
  background: var(--bg-primary);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color var(--transition-slow), color var(--transition-slow);
}

a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }
img { max-width:100%; display:block; }

:focus-visible { outline:2px solid var(--violet); outline-offset:2px; border-radius:var(--radius-xs); }
:focus:not(:focus-visible) { outline:none; }

::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(124,79,232,0.22); border-radius:var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background:rgba(124,79,232,0.40); }

/* ═══════════════════════════════════════════════════════════════
   NAVBAR LOGO  — black in light mode, white in dark mode
   ═══════════════════════════════════════════════════════════════ */
.navbar-logo {
  filter: brightness(0);
  transition: filter var(--transition-base);
}
[data-theme="dark"] .navbar-logo {
  filter: brightness(0) invert(1);
}

/* ═══════════════════════════════════════════════════════════════
   THEME SELECT DROPDOWN  (navbar)
   ═══════════════════════════════════════════════════════════════ */
.theme-select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--bg-surface-3);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  padding: 6px 28px 6px 12px;
  cursor: pointer;
  outline: none;
  min-width: 74px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238B7FB8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  transition: border-color var(--transition-fast), background-color var(--transition-fast),
              box-shadow var(--transition-fast);
}
.theme-select:hover {
  border-color: var(--border-hover);
  background-color: var(--bg-surface-2);
}
.theme-select:focus {
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(124,79,232,0.14);
}
.theme-select option {
  background: var(--bg-surface);
  color: var(--text-primary);
}

/* ═══════════════════════════════════════════════════════════════
   UTILITIES
   ═══════════════════════════════════════════════════════════════ */
.hidden     { display:none !important; }
.sr-only    { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.flex       { display:flex; }
.flex-col   { flex-direction:column; }
.items-center    { align-items:center; }
.justify-between { justify-content:space-between; }
.justify-center  { justify-content:center; }
.gap-1 { gap:8px; } .gap-2 { gap:16px; } .gap-3 { gap:24px; }

.container { max-width:1440px; margin:0 auto; padding:0 var(--space-6); }

/* ═══════════════════════════════════════════════════════════════
   GLASS CARD
   ═══════════════════════════════════════════════════════════════ */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow);
  transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}
.glass-card:hover { border-color:rgba(124,79,232,0.24); box-shadow:var(--shadow-lg); transform:translateY(-2px); }

/* ═══════════════════════════════════════════════════════════════
   LOGIN PAGE
   ═══════════════════════════════════════════════════════════════ */
.login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8) var(--space-4);
  background: var(--bg-primary);
  position: relative;
  overflow: hidden;
}

/* light-mode tinted radials */
.login-container::before {
  content: '';
  position: absolute;
  top: -20%; left: -10%;
  width: 55%; height: 70%;
  background: radial-gradient(ellipse, rgba(124,79,232,0.10), transparent 65%);
  pointer-events: none;
}

.login-container::after {
  content: '';
  position: absolute;
  bottom: -15%; right: -5%;
  width: 50%; height: 60%;
  background: radial-gradient(ellipse, rgba(10,186,181,0.08), transparent 65%);
  pointer-events: none;
}

.login-box {
  width: 100%;
  max-width: 460px;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-2xl);
  padding: var(--space-12) var(--space-10);
  box-shadow: var(--shadow-xl);
  position: relative;
  z-index: 1;
  transition: background var(--transition-slow), border-color var(--transition-slow);
}

.login-box::before {
  content: '';
  position: absolute;
  top: 0; left: 12%; right: 12%;
  height: 3px;
  background: linear-gradient(90deg, var(--violet), var(--sea));
  border-radius: var(--radius-full);
  pointer-events: none;
}

.login-logo { text-align:center; margin-bottom:var(--space-10); }
.login-logo img { height:52px; margin:0 auto var(--space-4); }
.login-logo h1 {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.3px;
  margin-bottom: 6px;
  background: linear-gradient(135deg, var(--ink) 30%, var(--violet) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.login-logo p { color:var(--text-muted); font-size:14px; }

/* Tabs */
.tabs {
  display: flex;
  gap: 4px;
  margin-bottom: var(--space-8);
  background: var(--bg-surface-3);
  padding: 4px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.tab {
  flex:1; padding:10px var(--space-4); border:none;
  background:transparent; color:var(--text-muted);
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  border-radius:var(--radius-xs); cursor:pointer;
  transition:all var(--transition-fast); letter-spacing:0.1px;
}
.tab.active {
  background: var(--bg-surface);
  color: var(--violet);
  box-shadow: var(--shadow-sm);
}
.tab:hover:not(.active) { background:rgba(124,79,232,0.06); color:var(--text-secondary); }

/* ═══════════════════════════════════════════════════════════════
   FORMS
   ═══════════════════════════════════════════════════════════════ */
.form-group { margin-bottom:var(--space-5); }

.form-label,
.field label {
  display:block; margin-bottom:7px;
  font-size:13px; font-weight:600;
  color:var(--text-secondary); letter-spacing:0.1px;
}

.form-input,
.field input,
.field select,
.field textarea {
  width:100%; padding:10px var(--space-4);
  background: var(--input-bg);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 14px; line-height:1.5;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast),
              background var(--transition-fast);
  appearance:auto; outline:none;
}
.form-input:hover,.field input:hover,.field select:hover,.field textarea:hover {
  border-color:var(--border-hover);
}
.form-input:focus,.field input:focus,.field select:focus,.field textarea:focus {
  outline:none; border-color:var(--violet);
  box-shadow:0 0 0 3px rgba(124,79,232,0.16);
  background: var(--input-bg);
}
.form-input::placeholder { color:var(--text-muted); }
textarea.form-input,.field textarea { resize:vertical; min-height:96px; }
select.form-input,.field select { cursor:pointer; }
.form-input option,select.form-input option,.field select option {
  background:var(--bg-surface); color:var(--text-primary);
}

/* Date input */
input[type="date"].form-input,
.field input[type="date"] {
  cursor:pointer; color-scheme:light; position:relative; overflow:hidden;
}
[data-theme="dark"] input[type="date"].form-input,
[data-theme="dark"] .field input[type="date"] { color-scheme:dark; }

.field input[type="date"]::-webkit-calendar-picker-indicator {
  position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer;
}

.field input.invalid,.field textarea.invalid,.form-input.invalid {
  border-color:#ef4444; box-shadow:0 0 0 3px rgba(239,68,68,0.12);
}
.field .input-readonly { opacity:0.55; cursor:default; background:var(--bg-surface-3); }
.field-error   { font-size:12px; color:#ef4444; margin-top:5px; }
.field-hint-warn { font-size:12px; color:#d97706; margin-top:5px; }
.req { color:#ef4444; }

.form-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
  gap:var(--space-4); margin-bottom:var(--space-4);
}
.field-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin-bottom:var(--space-3); }
.field-row-1 { margin-bottom:var(--space-3); }
.field { display:flex; flex-direction:column; gap:5px; }

.toggle-label {
  display:flex; align-items:center; gap:var(--space-2);
  cursor:pointer; font-size:13.5px; color:var(--text-secondary); user-select:none;
}
.toggle-label input[type="checkbox"] { width:16px; height:16px; cursor:pointer; accent-color:var(--violet); }

/* ═══════════════════════════════════════════════════════════════
   ADMIN SIDEBAR
   ═══════════════════════════════════════════════════════════════ */
.admin-layout { display:flex; min-height:calc(100vh - 64px); }

.admin-sidebar {
  width:232px; min-width:232px;
  background: var(--bg-surface);
  border-right: 1px solid var(--border);
  display:flex; flex-direction:column;
  position:sticky; top:64px;
  height:calc(100vh - 64px);
  overflow-y:auto; scrollbar-width:none;
  transition: background var(--transition-slow);
}
.admin-sidebar::-webkit-scrollbar { display:none; }
/* Stronger sidebar border — light and dark explicit overrides */
[data-theme="light"] .admin-sidebar          { border-right-color: #C8BCEF; }
[data-theme="light"] .admin-sidebar-header   { border-bottom-color: #C8BCEF; }
[data-theme="dark"]  .admin-sidebar          { border-right-color: rgba(242, 231, 255, 0.22); }
[data-theme="dark"]  .admin-sidebar-header   { border-bottom-color: rgba(242, 231, 255, 0.22); }

.admin-sidebar-header {
  padding: var(--space-5);
  border-bottom: 1px solid var(--border);
  background: var(--bg-inset);
}
.admin-sidebar-title {
  font-family:var(--font-display); font-size:14px; font-weight:800;
  color:var(--violet); margin:0 0 2px; letter-spacing:0.1px;
}
.admin-sidebar-sub { font-size:11px; color:var(--text-muted); margin:0; }

.admin-sidebar nav { padding:var(--space-3) var(--space-2); flex:1; }

.admin-nav-btn {
  display:flex; align-items:center; gap:10px;
  width:100%; padding:9px 13px;
  background:none; border:none;
  border-radius:var(--radius-sm);
  color:var(--text-muted);
  font-family:var(--font-sans); font-size:13.5px; font-weight:500;
  cursor:pointer; text-align:left;
  transition:background var(--transition-fast), color var(--transition-fast);
  margin-bottom:1px;
}
.admin-nav-btn:hover { background:var(--surface); color:var(--text-primary); }
.admin-nav-btn.active { background:var(--surface-active); color:var(--violet); font-weight:700; }
.admin-nav-btn .nav-icon { font-size:15px; width:20px; text-align:center; flex-shrink:0; }

.admin-main {
  flex:1; padding:var(--space-8); overflow-y:auto; min-width:0;
  background: var(--bg-primary);
  transition: background var(--transition-slow);
}

/* ═══════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 20px;
  border:1.5px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--bg-surface);
  color:var(--text-primary);
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast),
             box-shadow var(--transition-fast), transform var(--transition-fast),
             color var(--transition-fast);
  text-decoration:none; white-space:nowrap; user-select:none; letter-spacing:0.1px;
}
.btn:hover { background:var(--bg-surface-3); border-color:var(--border-hover); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.btn:active { transform:translateY(0); box-shadow:none; }
.btn:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }
.btn:disabled { opacity:0.45; cursor:not-allowed; transform:none !important; box-shadow:none !important; }

.btn-primary {
  background:var(--violet); border-color:var(--violet-dark);
  color:#FFF; box-shadow:var(--shadow-violet);
}
.btn-primary:hover { background:var(--violet-dark); border-color:var(--violet-dark); color:#FFF; box-shadow:0 8px 28px rgba(124,79,232,0.38); transform:translateY(-1px); }

.btn-success { background:var(--sea); border-color:var(--sea-dark); color:#FFF; box-shadow:var(--shadow-teal); }
.btn-success:hover { background:var(--sea-dark); color:#FFF; box-shadow:0 8px 28px rgba(10,186,181,0.30); transform:translateY(-1px); }

.btn-danger { background:var(--coral); border-color:var(--coral-dark); color:#FFF; box-shadow:0 4px 16px rgba(255,127,80,0.24); }
.btn-danger:hover { background:var(--coral-dark); color:#FFF; box-shadow:0 8px 28px rgba(255,127,80,0.30); transform:translateY(-1px); }

.btn-outline { background:transparent; border-color:var(--violet); color:var(--violet); }
.btn-outline:hover { background:var(--violet-subtle); border-color:var(--violet); color:var(--violet-dark); }

.btn-sm  { padding:6px 13px; font-size:12.5px; gap:5px; }
.btn-lg  { padding:13px 28px; font-size:15px; }
.btn-xl  { padding:15px 34px; font-size:16px; }

.btn-icon {
  width:32px; height:32px; padding:0;
  border-radius:var(--radius-xs);
  border:1.5px solid var(--border);
  background:var(--bg-surface);
  color:var(--text-secondary);
  font-size:14px;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background var(--transition-fast), border-color var(--transition-fast),
             color var(--transition-fast), transform var(--transition-fast);
  flex-shrink:0;
}
.btn-icon:hover { background:var(--bg-surface-3); border-color:var(--border-hover); color:var(--violet); transform:scale(1.06); }
.btn-icon-delete { border-color:rgba(239,68,68,0.28); background:rgba(239,68,68,0.05); color:#ef4444; }
.btn-icon-delete:hover { background:rgba(239,68,68,0.12); border-color:rgba(239,68,68,0.50); color:#dc2626; }

/* ═══════════════════════════════════════════════════════════════
   NAVBAR
   ═══════════════════════════════════════════════════════════════ */
.navbar {
  position:sticky; top:0; z-index:50;
  height:64px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center;
  box-shadow: 0 1px 8px rgba(124,79,232,0.07);
  transition: background var(--transition-slow), border-color var(--transition-slow);
}
[data-theme="dark"] .navbar {
  box-shadow: 0 1px 12px rgba(0,0,0,0.35);
}

.navbar-content {
  display:flex; align-items:center; justify-content:space-between;
  width:100%; padding:0 var(--space-6);
}
.navbar-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.navbar-brand img { height:38px; }
.navbar-brand-text { display:flex; flex-direction:column; gap:1px; }
.navbar-title { font-family:var(--font-display); font-size:18px; font-weight:800; color:var(--ink); letter-spacing:-0.2px; line-height:1.2; }
.navbar-subtitle { font-size:11px; color:var(--text-muted); letter-spacing:0.3px; }
.navbar-actions { display:flex; align-items:center; gap:10px; }

/* Profile Dropdown */
.profile-wrapper { position:relative; }

.profile-trigger {
  display:flex; align-items:center; gap:9px;
  padding:5px 11px 5px 5px;
  background:var(--bg-inset);
  border:1.5px solid var(--border);
  border-radius:var(--radius-full);
  cursor:pointer; color:var(--text-primary);
  transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
  white-space:nowrap;
}
.profile-trigger:hover,
.profile-wrapper.active .profile-trigger {
  background:var(--bg-surface-3);
  border-color:rgba(124,79,232,0.40);
  box-shadow:0 0 0 3px rgba(124,79,232,0.10);
}

.profile-avatar {
  width:32px; height:32px; border-radius:50%;
  background:linear-gradient(135deg, var(--violet), var(--sea));
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#FFF; flex-shrink:0; letter-spacing:0.5px;
}
.profile-avatar-lg { width:44px; height:44px; font-size:15px; }

.profile-trigger-info { display:flex; flex-direction:column; align-items:flex-start; gap:2px; line-height:1; }
.profile-trigger-name { font-size:12.5px; font-weight:600; color:var(--text-primary); }
.profile-trigger-role { font-size:10px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; padding:2px 6px; border-radius:var(--radius-full); }

.profile-role-admin   { background:rgba(124,79,232,0.12); color:var(--violet-dark); }
.profile-role-rsm     { background:rgba(10,186,181,0.12);  color:var(--sea-dark); }
.profile-role-partner { background:rgba(255,127,80,0.12);  color:#d45a2a; }
.profile-role-support { background:rgba(22,163,74,0.12);   color:#166534; }

[data-theme="dark"] .profile-role-admin   { color:#c4b5fd; }
[data-theme="dark"] .profile-role-rsm     { color:#5eead4; }
[data-theme="dark"] .profile-role-partner { color:#fb923c; }
[data-theme="dark"] .profile-role-support { color:#34d399; }

.profile-chevron { width:14px; height:14px; color:var(--text-muted); transition:transform var(--transition-fast); flex-shrink:0; }
.profile-wrapper.active .profile-chevron { transform:rotate(180deg); }

.profile-dropdown {
  position:absolute; top:calc(100% + 10px); right:0; width:256px;
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xl);
  opacity:0; visibility:hidden;
  transform:translateY(-8px) scale(0.96); transform-origin:top right;
  transition:opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
  z-index:1000; overflow:hidden;
}
.profile-dropdown.open { opacity:1; visibility:visible; transform:translateY(0) scale(1); }

.profile-dropdown-header {
  display:flex; align-items:center; gap:12px;
  padding:15px 14px 13px;
  background:var(--bg-surface-2);
  border-bottom:1px solid var(--border);
}
.profile-dropdown-info { display:flex; flex-direction:column; gap:4px; min-width:0; }
.profile-dropdown-name { font-size:13.5px; font-weight:700; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-dropdown-email { font-size:11.5px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-dropdown-badge { font-size:10px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; padding:2px 8px; border-radius:var(--radius-full); align-self:flex-start; }
.profile-dropdown-divider { height:1px; background:var(--border); }

.profile-dropdown-item {
  display:flex; align-items:center; gap:10px; width:100%; padding:11px 14px;
  background:none; border:none; color:var(--text-secondary);
  font-family:var(--font-sans); font-size:13.5px; font-weight:500;
  cursor:pointer; text-align:left;
  transition:background var(--transition-fast), color var(--transition-fast);
}
.profile-dropdown-item:hover { background:var(--bg-surface-2); color:var(--text-primary); }
.profile-dropdown-item-danger { color:#ef4444; }
.profile-dropdown-item-danger:hover { background:rgba(239,68,68,0.07); color:#dc2626; }
.profile-dropdown-item-icon { font-size:15px; width:18px; text-align:center; flex-shrink:0; }

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD LAYOUT
   ═══════════════════════════════════════════════════════════════ */
.dashboard { padding:var(--space-8) 0 80px; }
.dashboard-header { margin-bottom:var(--space-8); }
.dashboard-header h1 { font-family:var(--font-display); font-size:28px; font-weight:800; letter-spacing:-0.4px; margin-bottom:6px; color:var(--ink); }
.dashboard-header p  { color:var(--text-secondary); font-size:15px; }

.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-5); flex-wrap:wrap; gap:var(--space-3); }
.section-title { font-family:var(--font-display); font-size:19px; font-weight:800; color:var(--text-primary); letter-spacing:-0.2px; }

/* ═══════════════════════════════════════════════════════════════
   STATS GRID
   ═══════════════════════════════════════════════════════════════ */
.stats-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
  gap:var(--space-5); margin-bottom:var(--space-8);
}

.stat-card {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  padding:var(--space-6);
  box-shadow:var(--shadow-sm);
  transition:border-color var(--transition-base), box-shadow var(--transition-base),
             transform var(--transition-base), background var(--transition-slow);
  position:relative; overflow:hidden;
}
.stat-card::after {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  border-radius:var(--radius-full) var(--radius-full) 0 0;
  background:linear-gradient(90deg, var(--violet), var(--sea));
  opacity:0; transition:opacity var(--transition-base);
}
.stat-card:hover { border-color:rgba(124,79,232,0.30); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.stat-card:hover::after { opacity:1; }
.stat-card-clickable { cursor:pointer; }

.stat-icon {
  width:44px; height:44px; border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  font-size:20px; margin-bottom:var(--space-4);
  background:var(--violet-subtle);
  border:1px solid rgba(124,79,232,0.18); flex-shrink:0;
}
.stat-icon.teal  { background:rgba(10,186,181,0.10);  border-color:rgba(10,186,181,0.20); }
.stat-icon.coral { background:rgba(255,127,80,0.10);  border-color:rgba(255,127,80,0.20); }
.stat-icon.amber { background:rgba(217,119,6,0.10);   border-color:rgba(217,119,6,0.20); }
.stat-icon.green { background:rgba(22,163,74,0.10);   border-color:rgba(22,163,74,0.20); }

.stat-label  { font-size:11px; text-transform:uppercase; letter-spacing:0.7px; color:var(--text-muted); font-weight:700; margin-bottom:5px; }
.stat-value  { font-family:var(--font-display); font-size:32px; font-weight:900; line-height:1; margin-bottom:5px; color:var(--ink); }
.stat-meta   { font-size:12.5px; color:var(--text-muted); }

/* ═══════════════════════════════════════════════════════════════
   ACCOUNT CARDS
   ═══════════════════════════════════════════════════════════════ */
.accounts-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px,1fr));
  gap:var(--space-5); margin-top:var(--space-4); margin-bottom:var(--space-8);
}

.account-card {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  padding:var(--space-5); cursor:pointer;
  transition:border-color var(--transition-base), box-shadow var(--transition-base),
             transform var(--transition-base), background var(--transition-slow);
}
.account-card:hover { border-color:rgba(124,79,232,0.35); box-shadow:var(--shadow-md); transform:translateY(-2px); }

.account-header  { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:var(--space-4); }
.account-title,.account-name { font-size:15px; font-weight:700; color:var(--text-primary); margin-bottom:3px; }
.account-meta    { font-size:11.5px; color:var(--text-muted); }
.account-body    { display:flex; flex-direction:column; gap:8px; }
.account-field   { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.account-field-label { color:var(--text-muted); font-weight:500; font-size:12px; }
.account-field-value { font-size:13px; font-weight:600; color:var(--text-primary); }
.account-details { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:var(--space-4); }
.account-notes   { font-size:13px; color:var(--text-secondary); padding-top:10px; margin-top:10px; border-top:1px solid var(--border); }
.account-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:var(--space-4); }

/* Tier badges */
.tier-badge { display:inline-block; padding:3px 10px; border-radius:var(--radius-xs); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; white-space:nowrap; }
.tier-a,.tier-badge.tier-a { background:rgba(10,186,181,0.10); border:1px solid rgba(10,186,181,0.25); color:#0e8c89; }
.tier-b,.tier-badge.tier-b { background:rgba(124,79,232,0.10); border:1px solid rgba(124,79,232,0.25); color:var(--violet); }
.tier-c,.tier-badge.tier-c { background:var(--bg-surface-3); border:1px solid var(--border); color:var(--text-secondary); }

[data-theme="dark"] .tier-a,.tier-badge.tier-a { color:#0ABAB5; }
[data-theme="dark"] .tier-b,.tier-badge.tier-b { color:#A67DFF; }

/* List items */
.list-group { display:flex; flex-direction:column; gap:8px; }
.list-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:11px var(--space-4);
  background:var(--bg-surface); border:1.5px solid var(--border);
  border-radius:var(--radius-sm); cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.list-item:hover { background:var(--bg-surface-2); border-color:rgba(124,79,232,0.28); }

/* ═══════════════════════════════════════════════════════════════
   MODAL
   ═══════════════════════════════════════════════════════════════ */
.modal-overlay {
  position:fixed; inset:0;
  background:rgba(30,16,64,0.45);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  display:flex; align-items:center; justify-content:center;
  z-index:200; padding:var(--space-5);
  animation:fadeIn 0.16s ease;
}
[data-theme="dark"] .modal-overlay { background:rgba(2,0,26,0.75); }

.modal {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-top:3px solid var(--violet);
  border-radius:var(--radius-xl);
  padding:var(--space-8); max-width:580px; width:100%;
  max-height:90vh; overflow-y:auto; scrollbar-width:none;
  box-shadow:var(--shadow-xl);
  animation:slideUp 0.24s cubic-bezier(0.22,1,0.36,1);
  transition:background var(--transition-slow);
}
.modal::-webkit-scrollbar { display:none; }

.modal-header  { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-6); gap:var(--space-4); }
.modal-title   { font-family:var(--font-display); font-size:21px; font-weight:800; letter-spacing:-0.2px; color:var(--ink); }
.modal-close   {
  width:34px; height:34px; flex-shrink:0; border-radius:50%;
  border:1.5px solid var(--border); background:var(--bg-surface-2);
  color:var(--text-secondary); font-size:18px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
.modal-close:hover { background:var(--violet-subtle); color:var(--violet); transform:rotate(90deg); }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:var(--space-6); flex-wrap:wrap; }

/* ═══════════════════════════════════════════════════════════════
   PROGRESS BAR
   ═══════════════════════════════════════════════════════════════ */
.progress-container { margin:var(--space-5) 0; }
.progress-label { display:flex; justify-content:space-between; margin-bottom:7px; font-size:12.5px; color:var(--text-secondary); font-weight:500; }
.progress-bar { height:8px; background:var(--bg-surface-3); border-radius:var(--radius-full); overflow:hidden; border:1px solid var(--border); }
.progress-fill { height:100%; background:linear-gradient(90deg, var(--violet), var(--sea)); border-radius:var(--radius-full); transition:width var(--transition-slow); box-shadow:0 0 8px rgba(124,79,232,0.35); }

/* ═══════════════════════════════════════════════════════════════
   TOAST
   ═══════════════════════════════════════════════════════════════ */
.toast {
  position:fixed; bottom:var(--space-6); right:var(--space-6);
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  padding:13px var(--space-5);
  box-shadow:var(--shadow-lg); z-index:300;
  min-width:280px; max-width:400px;
  display:flex; align-items:flex-start; gap:12px;
  animation:slideInRight 0.26s cubic-bezier(0.22,1,0.36,1);
  font-size:14px;
  transition:background var(--transition-slow);
}
.toast-icon    { font-size:18px; flex-shrink:0; margin-top:1px; }
.toast-body    { flex:1; min-width:0; }
.toast-title   { font-weight:700; color:var(--text-primary); font-size:13.5px; margin-bottom:2px; }
.toast-message { color:var(--text-secondary); font-size:13px; }
.toast.success { border-left:4px solid var(--sea); }
.toast.error   { border-left:4px solid var(--coral); }
.toast.info    { border-left:4px solid var(--violet); }
.toast.warning { border-left:4px solid #d97706; }

/* ═══════════════════════════════════════════════════════════════
   EMPTY / LOADING / ERROR STATES
   ═══════════════════════════════════════════════════════════════ */
.empty-state { text-align:center; padding:72px var(--space-6); }
.empty-icon  { font-size:52px; margin-bottom:var(--space-4); opacity:0.30; display:block; line-height:1; }
.empty-title { font-size:18px; font-weight:700; color:var(--text-primary); margin-bottom:8px; font-family:var(--font-display); }
.empty-description { font-size:14px; color:var(--text-muted); max-width:360px; margin:0 auto var(--space-6); line-height:1.6; }
.empty-action { margin-top:var(--space-5); }

.skeleton {
  background:linear-gradient(90deg, var(--bg-surface-2) 25%, var(--bg-surface-3) 50%, var(--bg-surface-2) 75%);
  background-size:400% 100%;
  animation:shimmer 1.5s ease-in-out infinite;
  border-radius:var(--radius-sm);
}
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.skeleton-text  { height:14px; margin-bottom:10px; }
.skeleton-title { height:22px; width:60%; margin-bottom:12px; }
.skeleton-card  { height:140px; border-radius:var(--radius-md); }

.error-state { text-align:center; padding:var(--space-10) var(--space-6); background:rgba(239,68,68,0.04); border:1.5px solid rgba(239,68,68,0.18); border-radius:var(--radius-lg); }
.error-state .error-icon { font-size:38px; margin-bottom:var(--space-4); }
.error-state h3 { font-size:17px; font-weight:700; color:#dc2626; margin-bottom:6px; }
.error-state p  { font-size:13.5px; color:var(--text-muted); }

/* ═══════════════════════════════════════════════════════════════
   TABLES
   ═══════════════════════════════════════════════════════════════ */
.table-container {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow-sm);
  transition:background var(--transition-slow);
}
.table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; }

.table { width:100%; border-collapse:collapse; font-size:13.5px; }
.table thead { background:var(--bg-surface-2); border-bottom:1.5px solid var(--border); }
.table th { padding:12px var(--space-4); text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; color:var(--text-muted); white-space:nowrap; }
.table td { padding:13px var(--space-4); border-bottom:1px solid var(--border); color:var(--text-secondary); vertical-align:middle; }
.table tbody tr { transition:background var(--transition-fast); }
.table tbody tr:hover { background:var(--bg-surface-2); }
.table tbody tr:last-child td { border-bottom:none; }
.table td.text-primary { color:var(--text-primary); font-weight:600; }

/* ═══════════════════════════════════════════════════════════════
   BADGES
   ═══════════════════════════════════════════════════════════════ */
.badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:var(--radius-full); font-size:11.5px; font-weight:600; border:1px solid; white-space:nowrap; letter-spacing:0.1px; }

.badge-success  { background:rgba(10,186,181,0.10); border-color:rgba(10,186,181,0.25); color:#0a7e7a; }
.badge-warning  { background:rgba(217,119,6,0.10);  border-color:rgba(217,119,6,0.25);  color:#92400e; }
.badge-danger   { background:rgba(239,68,68,0.10);  border-color:rgba(239,68,68,0.25);  color:#b91c1c; }
.badge-info     { background:rgba(124,79,232,0.10); border-color:rgba(124,79,232,0.25); color:var(--violet-dark); }
.badge-neutral  { background:var(--bg-surface-3);   border-color:var(--border);         color:var(--text-secondary); }

.badge-active        { background:rgba(22,163,74,0.09);   border-color:rgba(22,163,74,0.22);   color:#15803d; font-weight:700; }
.badge-inactive      { background:rgba(107,114,128,0.09); border-color:rgba(107,114,128,0.22); color:#6b7280; font-weight:700; }
.badge-suspended     { background:rgba(239,68,68,0.09);   border-color:rgba(239,68,68,0.22);   color:#b91c1c; font-weight:700; }
.badge-contacted     { background:rgba(37,99,235,0.09);   border-color:rgba(37,99,235,0.22);   color:#1d4ed8; font-weight:700; }
.badge-demo_scheduled{ background:rgba(234,88,12,0.09);   border-color:rgba(234,88,12,0.22);   color:#c2410c; font-weight:700; }
.badge-deal_closed   { background:rgba(22,163,74,0.09);   border-color:rgba(22,163,74,0.22);   color:#15803d; font-weight:700; }
.badge-lost          { background:rgba(107,114,128,0.09); border-color:rgba(107,114,128,0.22); color:#6b7280; font-weight:700; }
.badge-archived          { background:rgba(100,116,139,0.09); border-color:rgba(100,116,139,0.22); color:#475569; font-weight:700; }
.badge-joint_discovery_call { background:rgba(14,165,233,0.09);  border-color:rgba(14,165,233,0.22);  color:#0369a1; font-weight:700; }
.badge-appointment_inprogress { background:rgba(8,145,178,0.09);   border-color:rgba(8,145,178,0.22);   color:#0891b2; font-weight:700; }
.badge-appointment_done       { background:rgba(124,79,232,0.09);  border-color:rgba(124,79,232,0.22);  color:#6d28d9; font-weight:700; }

.badge-strong { background:rgba(10,186,181,0.10); border-color:rgba(10,186,181,0.22); color:#0a7e7a; }
.badge-medium { background:rgba(217,119,6,0.10);  border-color:rgba(217,119,6,0.22);  color:#92400e; }
.badge-weak   { background:rgba(239,68,68,0.10);  border-color:rgba(239,68,68,0.22);  color:#b91c1c; }

.badge-ticket-open     { background:rgba(37,99,235,0.09);  border-color:rgba(37,99,235,0.22);  color:#1d4ed8; }
.badge-ticket-progress { background:rgba(217,119,6,0.09);  border-color:rgba(217,119,6,0.22);  color:#92400e; }
.badge-ticket-resolved { background:rgba(22,163,74,0.09);  border-color:rgba(22,163,74,0.22);  color:#15803d; }
.badge-ticket-closed   { background:rgba(107,114,128,0.09);border-color:rgba(107,114,128,0.22);color:#6b7280; }

/* dark-mode badge text adjustments for readability */
[data-theme="dark"] .badge-active         { color:#4ade80; }
[data-theme="dark"] .badge-inactive       { color:#9ca3af; }
[data-theme="dark"] .badge-suspended      { color:#f87171; }
[data-theme="dark"] .badge-contacted      { color:#60a5fa; }
[data-theme="dark"] .badge-demo_scheduled { color:#fb923c; }
[data-theme="dark"] .badge-deal_closed         { color:#4ade80; }
[data-theme="dark"] .badge-appointment_inprogress { color:#22d3ee; }
[data-theme="dark"] .badge-appointment_done       { color:#a78bfa; }
[data-theme="dark"] .badge-strong         { color:#2dd4bf; }
[data-theme="dark"] .badge-success        { color:#2dd4bf; }
[data-theme="dark"] .badge-info           { color:var(--violet-light); }
[data-theme="dark"] .badge-warning        { color:#fbbf24; }
[data-theme="dark"] .badge-ticket-open    { color:#60a5fa; }
[data-theme="dark"] .badge-ticket-resolved{ color:#4ade80; }

/* ═══════════════════════════════════════════════════════════════
   PLAYBOOK VIEWER
   ═══════════════════════════════════════════════════════════════ */
.playbook-container { display:grid; grid-template-columns:290px 1fr; gap:var(--space-5); align-items:start; }

.playbook-sidebar {
  position:sticky; top:80px;
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  max-height:calc(100vh - 108px); display:flex; flex-direction:column;
  transition:background var(--transition-slow);
}
.playbook-sidebar-header { padding:var(--space-4); border-bottom:1px solid var(--border); background:var(--bg-inset); }
.playbook-sidebar-header h3 { margin:0; font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--violet); }
.playbook-nav { padding:10px; overflow-y:auto; flex:1; }

.playbook-nav-item {
  display:flex; gap:11px; align-items:center;
  padding:10px 11px; margin-bottom:5px;
  border-radius:var(--radius-sm); border:1.5px solid var(--border);
  background:var(--bg-surface); cursor:pointer;
  transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}
.playbook-nav-item:hover   { background:var(--bg-surface-2); border-color:rgba(124,79,232,0.28); transform:translateX(3px); }
.playbook-nav-item.active  { background:var(--violet-subtle); border-color:rgba(124,79,232,0.38); box-shadow:0 2px 10px rgba(124,79,232,0.14); }

.playbook-nav-number { width:28px; height:28px; border-radius:50%; background:rgba(124,79,232,0.12); border:1.5px solid rgba(124,79,232,0.25); display:flex; align-items:center; justify-content:center; font-weight:800; font-family:var(--font-display); font-size:12px; flex-shrink:0; color:var(--violet); }
.playbook-nav-title  { font-size:13px; font-weight:600; line-height:1.35; color:var(--text-primary); }

.playbook-content { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); transition:background var(--transition-slow); }
.playbook-section { padding:var(--space-8); border-bottom:1px solid var(--border); scroll-margin-top:88px; }
.playbook-section:last-child { border-bottom:none; }
.playbook-section-header { margin-bottom:var(--space-6); }

.playbook-section-badge { display:inline-block; padding:4px 11px; border-radius:var(--radius-full); background:rgba(124,79,232,0.10); border:1px solid rgba(124,79,232,0.22); color:var(--violet-dark); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; margin-bottom:10px; }
[data-theme="dark"] .playbook-section-badge { color:var(--violet-light); }

.playbook-section-header h2 { font-family:var(--font-display); font-size:24px; font-weight:800; margin:0; color:var(--ink); letter-spacing:-0.3px; }

.playbook-section-body { color:var(--text-secondary); line-height:1.75; }
.playbook-section-body h3 { font-size:17px; font-weight:700; margin:20px 0 10px; color:var(--text-primary); }
.playbook-section-body h4 { font-size:15px; font-weight:700; margin:16px 0 8px;  color:var(--text-primary); }
.playbook-section-body p  { margin:10px 0; }
.playbook-section-body ul,.playbook-section-body ol { margin:10px 0; padding-left:22px; }
.playbook-section-body li { margin:7px 0; }
.playbook-section-body strong { color:var(--text-primary); font-weight:700; }
.playbook-section-body em     { color:var(--text-muted); font-style:italic; }

.playbook-section-footer { display:flex; justify-content:space-between; gap:12px; margin-top:var(--space-8); padding-top:var(--space-6); border-top:1px dashed var(--border); }
.playbook-navigation-controls { display:flex; justify-content:space-between; gap:var(--space-4); margin-top:var(--space-8); padding:var(--space-6) var(--space-8) var(--space-8); border-top:2px solid rgba(124,79,232,0.14); }
.playbook-navigation-controls .btn { flex:1; max-width:220px; font-size:14px; font-weight:600; }

/* ═══════════════════════════════════════════════════════════════
   CONTRACTS & QUOTES MODULE
   ═══════════════════════════════════════════════════════════════ */
.contracts-page { padding:0; }
.contracts-header { display:flex; align-items:center; gap:var(--space-4); margin-bottom:var(--space-6); flex-wrap:wrap; }
.contracts-header-title { display:flex; align-items:center; gap:12px; }
.contracts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:var(--space-4); }

.contract-card { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:var(--space-5); cursor:pointer; display:flex; flex-direction:column; gap:8px; transition:transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-slow); }
.contract-card:hover { transform:translateY(-3px); border-color:rgba(124,79,232,0.38); box-shadow:var(--shadow-md); }
.contract-card-icon  { font-size:1.8rem; line-height:1; }
.contract-card-title { font-size:14px; font-weight:600; color:var(--text-primary); margin:0; }
.contract-card-desc  { font-size:12px; color:var(--text-muted); line-height:1.45; flex:1; }
.contract-card-badge { display:inline-block; padding:2px 9px; border-radius:var(--radius-full); font-size:10.5px; font-weight:700; letter-spacing:0.04em; width:fit-content; }

.quote-layout { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:start; }
.quote-form-col,.quote-preview-col { display:flex; flex-direction:column; gap:0; }

.form-section { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:var(--space-5); margin-bottom:var(--space-4); transition:background var(--transition-slow); }
.form-section-title { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.07em; color:var(--violet); border-bottom:1px solid var(--border); padding-bottom:9px; margin-bottom:var(--space-4); }
.form-section-title-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }

.pricing-context-block { background:var(--bg-surface-2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:11px; margin-top:9px; }
.pricing-hint-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; font-size:12px; margin-bottom:9px; }
.ph-item   { color:var(--text-muted); }
.ph-sep    { color:var(--text-muted); opacity:0.5; }
.ph-disc   { color:var(--sea-dark); font-weight:600; }
.ph-client { color:var(--violet); font-weight:600; }
[data-theme="dark"] .ph-disc   { color:#5eead4; }
[data-theme="dark"] .ph-client { color:#a78bfa; }

.extra-disc-field { margin-top:0; }
.mdm-platforms { display:flex; flex-direction:column; gap:9px; }
.platform-row  { display:flex; align-items:flex-end; gap:var(--space-4); flex-wrap:wrap; }
.platform-check-label { display:flex; align-items:center; gap:6px; cursor:pointer; font-size:13px; min-width:110px; color:var(--text-secondary); }
.platform-field { flex:1; min-width:150px; }
.quote-action-bar { display:flex; gap:9px; flex-wrap:wrap; align-items:center; padding-top:8px; }

/* Quote preview — always light (it's a print document) */
.quote-preview-card { background:#FFFFFF; color:#1a2035; border-radius:var(--radius-md); padding:var(--space-5); font-family:Arial,Helvetica,sans-serif; font-size:12.5px; box-shadow:var(--shadow-md); border:1px solid #E0DCEF; position:sticky; top:20px; }
.qp-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }

/* ═══════════════════════════════════════════════════════════════
   BELL NOTIFICATIONS
   ═══════════════════════════════════════════════════════════════ */
.notif-bell-wrapper { position:relative; display:flex; align-items:center; margin-right:10px; }

.notif-bell-btn {
  background:var(--bg-inset); border:1.5px solid var(--border); border-radius:var(--radius-xs);
  cursor:pointer; font-size:17px; position:relative; padding:7px 10px;
  color:var(--text-secondary); line-height:1;
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.notif-bell-btn:hover { background:var(--bg-surface-3); color:var(--violet); border-color:rgba(124,79,232,0.28); }

.notif-badge { position:absolute; top:-4px; right:-4px; background:#ef4444; color:#fff; border-radius:50%; font-size:9.5px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; font-weight:700; padding:0 3px; border:2px solid var(--bg-surface); }

.notif-dropdown {
  position:absolute; right:0; top:calc(100% + 10px);
  width:360px; max-height:480px; display:flex; flex-direction:column;
  background:var(--bg-surface); border:1.5px solid var(--border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-xl);
  z-index:1000; overflow:hidden;
  transition:background var(--transition-slow);
}
.notif-dropdown-header { padding:13px 16px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; font-weight:700; font-size:13.5px; flex-shrink:0; background:var(--bg-surface-2); color:var(--text-primary); }
.notif-dropdown-header .notif-mark-all { font-size:12px; background:none; border:none; color:var(--violet); cursor:pointer; padding:4px 8px; border-radius:var(--radius-xs); font-weight:600; transition:background var(--transition-fast); font-family:inherit; }
.notif-dropdown-header .notif-mark-all:hover { background:rgba(124,79,232,0.10); }

.notif-list-scroll { overflow-y:auto; flex:1; }
.notif-list-scroll::-webkit-scrollbar { width:4px; }
.notif-list-scroll::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.notif-item { display:flex; align-items:flex-start; gap:11px; padding:13px 16px; border-bottom:1px solid var(--border); cursor:pointer; transition:background var(--transition-fast); position:relative; }
.notif-item:last-child { border-bottom:none; }
.notif-item:hover { background:var(--bg-surface-2); }
.notif-item.unread { background:var(--violet-subtle); }
.notif-item.unread:hover { background:var(--bg-surface-2); }
.notif-item.unread::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--violet); border-radius:0 2px 2px 0; }

.notif-icon { width:34px; height:34px; border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; margin-top:1px; }
.notif-icon-created  { background:rgba(124,79,232,0.10); }
.notif-icon-resolved { background:rgba(22,163,74,0.10); }
.notif-icon-default  { background:rgba(107,114,128,0.08); }
.notif-body { flex:1; min-width:0; }
.notif-item-title { font-weight:600; font-size:13px; color:var(--text-primary); line-height:1.35; }
.notif-item-msg   { font-size:12px; color:var(--text-secondary); margin-top:3px; line-height:1.45; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.notif-item-time  { font-size:11px; color:var(--text-muted); margin-top:5px; font-weight:500; }
.notif-unread-dot { width:7px; height:7px; border-radius:50%; background:var(--violet); flex-shrink:0; margin-top:5px; }

/* ═══════════════════════════════════════════════════════════════
   CONTENT CARDS / INFO PANELS
   ═══════════════════════════════════════════════════════════════ */
.content-card { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; transition:background var(--transition-slow); }
.content-card-header { display:flex; align-items:center; justify-content:space-between; padding:var(--space-5) var(--space-6); border-bottom:1px solid var(--border); background:var(--bg-surface-2); flex-wrap:wrap; gap:var(--space-3); }
.content-card-title  { font-family:var(--font-display); font-size:16px; font-weight:800; color:var(--text-primary); letter-spacing:-0.1px; }
.content-card-body   { padding:var(--space-6); }

.info-panel { background:rgba(124,79,232,0.06); border:1px solid rgba(124,79,232,0.16); border-radius:var(--radius-md); padding:var(--space-4) var(--space-5); font-size:13.5px; color:var(--text-secondary); line-height:1.6; }
.info-panel.info-teal    { background:rgba(10,186,181,0.06); border-color:rgba(10,186,181,0.18); }
.info-panel.info-warning { background:rgba(217,119,6,0.06);  border-color:rgba(217,119,6,0.18); }
.info-panel.info-danger  { background:rgba(239,68,68,0.06);  border-color:rgba(239,68,68,0.18); }

.filter-bar { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-bottom:var(--space-5); }
.search-input-wrapper { position:relative; flex:1; min-width:200px; }
.search-input-wrapper .search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:14px; pointer-events:none; }
.search-input-wrapper .form-input  { padding-left:36px; }

/* ═══════════════════════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════════════════════ */
@keyframes fadeIn       { from{opacity:0}               to{opacity:1} }
@keyframes slideUp      { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideInRight { from{opacity:0;transform:translateX(60px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideInLeft  { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} }
@keyframes pulse        { 0%,100%{opacity:1} 50%{opacity:0.45} }
@keyframes spin         { to{transform:rotate(360deg)} }


.loading  { animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }
.spinning { animation:spin 1s linear infinite; }
.fade-in  { animation:fadeIn 0.3s ease; }
.slide-up { animation:slideUp 0.28s cubic-bezier(0.22,1,0.36,1); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .admin-sidebar { width:200px; min-width:200px; }
  .quote-layout  { grid-template-columns:1fr; }
}

@media (max-width: 980px) {
  .playbook-container { grid-template-columns:1fr; }
  .playbook-sidebar   { position:relative; top:0; max-height:none; }
  .playbook-section   { padding:var(--space-5); }

  .admin-layout { flex-direction:column; }
  .admin-sidebar { width:100%; min-width:unset; height:auto; position:static; border-right:none; border-bottom:1px solid var(--border); }
  .admin-sidebar nav { display:flex; flex-direction:row; flex-wrap:wrap; padding:var(--space-2) var(--space-3); }
  .admin-nav-btn  { flex:1; min-width:120px; border-radius:var(--radius-sm); justify-content:center; }
  .admin-main     { padding:var(--space-5); }
}

@media (max-width: 768px) {
  .container       { padding:0 var(--space-4); }
  .login-box       { padding:var(--space-8) var(--space-5); border-radius:var(--radius-xl); }
  .dashboard       { padding:var(--space-5) 0 60px; }
  .dashboard-header h1 { font-size:22px; }
  .stats-grid      { grid-template-columns:1fr 1fr; gap:var(--space-3); }
  .navbar-title    { font-size:16px; }
  .navbar-subtitle { display:none; }
  .modal           { padding:var(--space-5); border-radius:var(--radius-lg); }
  .modal-title     { font-size:18px; }
  .account-details { grid-template-columns:1fr; }
  .accounts-grid   { grid-template-columns:1fr; }
  .contracts-grid  { grid-template-columns:1fr 1fr; }
  .field-row-2     { grid-template-columns:1fr; }
  .toast           { min-width:unset; right:var(--space-4); left:var(--space-4); }
  .notif-dropdown  { width:320px; right:-60px; }
  .playbook-navigation-controls { flex-direction:column; }
  .playbook-navigation-controls .btn { max-width:none; }
  /* theme select — compact on mobile */
  .theme-select { font-size:12px; padding:5px 24px 5px 10px; min-width:64px; }
}

@media (max-width: 480px) {
  .stats-grid     { grid-template-columns:1fr; }
  .contracts-grid { grid-template-columns:1fr; }
  .navbar-content { padding:0 var(--space-4); }
  .profile-trigger-info { display:none; }
  .modal-actions  { flex-direction:column-reverse; }
  .modal-actions .btn { width:100%; justify-content:center; }
}
