/*
 * Evrim Tender Radar — Design System v3
 * Full ground-up rewrite. No override stacks.
 * Light/dark via CSS custom properties.
 */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800;900&family=Geist+Mono:wght@400;500;600;700&display=swap');

/* ════════════════════════════════════════════════
   TOKENS — dark default
   ════════════════════════════════════════════════ */
:root {
  /* Surfaces */
  --bg:    #09090f;
  --s1:    #111118;
  --s2:    #18181f;
  --s3:    #202029;
  --float: #252532;

  /* Borders */
  --b1: rgba(255,255,255,0.07);
  --b2: rgba(255,255,255,0.12);
  --b3: rgba(255,255,255,0.20);
  --bf: rgba(232,4,126,0.40);

  /* Text */
  --t1: #eeeef8;
  --t2: rgba(238,238,248,0.60);
  --t3: rgba(238,238,248,0.36);
  --t4: rgba(238,238,248,0.16);

  /* Accent — brand pink */
  --pink:     #e8047e;
  --pink-hi:  #ff2d91;
  --pink-dim: rgba(232,4,126,0.10);
  --pink-glo: rgba(232,4,126,0.22);

  /* Semantic */
  --green:  #2ecc6e; --green-dim:  rgba(46,204,110,0.10);
  --orange: #f59e0b; --orange-dim: rgba(245,158,11,0.10);
  --red:    #ef4444; --red-dim:    rgba(239,68,68,0.10);
  --blue:   #3b82f6; --blue-dim:   rgba(59,130,246,0.10);
  --cyan:   #22d3ee; --cyan-dim:   rgba(34,211,238,0.10);

  /* Geometry */
  --r:    14px;
  --r-sm: 10px;
  --r-xs: 8px;
  --r-lg: 20px;

  /* Typography */
  --font:      'Geist', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-mono: 'Geist Mono', 'SF Mono', ui-monospace, monospace;

  /* Easing */
  --ease:    cubic-bezier(0.23, 1, 0.32, 1);
  --ease-io: cubic-bezier(0.77, 0, 0.175, 1);

  /* Elevation shadows */
  --sh-sm: 0 1px 4px rgba(0,0,0,0.45);
  --sh-md: 0 4px 20px rgba(0,0,0,0.55);
  --sh-lg: 0 16px 48px rgba(0,0,0,0.65);
  --sh-xl: 0 32px 80px rgba(0,0,0,0.75);

  /* Sticky glass */
  --glass: rgba(9,9,15,0.92);
}

/* ════════════════════════════════════════════════
   LIGHT THEME — variable overrides only
   ════════════════════════════════════════════════ */
[data-theme="light"] {
  --bg:    #f4f4f9;
  --s1:    #ffffff;
  --s2:    #f0f0f6;
  --s3:    #e8e8f0;
  --float: #ffffff;

  --b1: rgba(0,0,0,0.08);
  --b2: rgba(0,0,0,0.13);
  --b3: rgba(0,0,0,0.22);
  --bf: rgba(232,4,126,0.38);

  --t1: #111118;
  --t2: rgba(17,17,24,0.62);
  --t3: rgba(17,17,24,0.38);
  --t4: rgba(17,17,24,0.18);

  --pink-dim: rgba(232,4,126,0.07);
  --pink-glo: rgba(232,4,126,0.14);

  --green-dim:  rgba(46,204,110,0.08);
  --orange-dim: rgba(245,158,11,0.08);
  --red-dim:    rgba(239,68,68,0.07);
  --blue-dim:   rgba(59,130,246,0.07);
  --cyan-dim:   rgba(34,211,238,0.07);

  --sh-sm: 0 1px 3px rgba(0,0,0,0.06);
  --sh-md: 0 4px 16px rgba(0,0,0,0.09);
  --sh-lg: 0 12px 40px rgba(0,0,0,0.12);
  --sh-xl: 0 24px 64px rgba(0,0,0,0.16);

  --glass: rgba(244,244,249,0.95);
}

/* ════════════════════════════════════════════════
   RESET
   ════════════════════════════════════════════════ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Ensure [hidden] is never overridden by component display rules */
[hidden] { display: none !important; }

html {
  font-family: var(--font);
  background: var(--bg);
  color: var(--t1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body { padding: 0; }

#app {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px 80px;
}

/* ════════════════════════════════════════════════
   USER BAR
   ════════════════════════════════════════════════ */
.user-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 32px;
  margin: 0 -32px;
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--glass);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--b1);
}

.user-avatar {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  color: var(--t2);
  padding: 5px 12px;
  border-radius: 980px;
  background: var(--s2);
  border: 1px solid var(--b1);
  letter-spacing: -0.01em;
}
.user-avatar::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 8px var(--green);
  flex-shrink: 0;
}

.user-bar-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.user-bar-divider {
  width: 1px;
  height: 18px;
  background: var(--b1);
  margin: 0 6px;
}

.user-mgmt-btn {
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 11px;
  border-radius: 8px;
  transition: color 140ms cubic-bezier(0.23,1,0.32,1),
              background-color 140ms cubic-bezier(0.23,1,0.32,1),
              transform 120ms cubic-bezier(0.23,1,0.32,1);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
@media (hover: hover) and (pointer: fine) {
  .user-mgmt-btn:hover { color: var(--t1); background: var(--s2); }
}
.user-mgmt-btn:active { transform: scale(0.97); }

.theme-toggle-btn .theme-icon-dark,
.theme-toggle-btn .theme-icon-light { display: block; }
[data-theme="light"] .theme-toggle-btn .theme-icon-dark  { display: none; }
[data-theme="light"] .theme-toggle-btn .theme-icon-light { display: block; }
.theme-toggle-btn .theme-icon-light { display: none; }

.logout-btn {
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 11px;
  border-radius: 8px;
  transition: color 140ms cubic-bezier(0.23,1,0.32,1),
              background-color 140ms cubic-bezier(0.23,1,0.32,1),
              transform 120ms cubic-bezier(0.23,1,0.32,1);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
@media (hover: hover) and (pointer: fine) {
  .logout-btn:hover { color: var(--red); background: var(--red-dim); }
}
.logout-btn:active { transform: scale(0.97); }

/* ════════════════════════════════════════════════
   PAGE TABS
   ════════════════════════════════════════════════ */
.page-tabs {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 32px;
  margin: 0 -32px;
  background: var(--glass);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--b1);
  position: sticky;
  top: 45px;
  z-index: 99;
}

.page-tab {
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 13px 18px;
  border-bottom: 2px solid transparent;
  border-radius: 6px 6px 0 0;
  transition: color 140ms cubic-bezier(0.23,1,0.32,1),
              border-color 160ms cubic-bezier(0.23,1,0.32,1),
              background-color 140ms cubic-bezier(0.23,1,0.32,1),
              transform 120ms cubic-bezier(0.23,1,0.32,1);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  letter-spacing: -0.01em;
  margin-bottom: -1px;
}
@media (hover: hover) and (pointer: fine) {
  .page-tab:not(.active):hover {
    color: var(--t2);
    background: color-mix(in srgb, var(--s1) 60%, transparent);
  }
}
.page-tab.active { color: var(--pink); border-bottom-color: var(--pink); }
.page-tab:active:not(.active) { transform: scale(0.96); }

/* ════════════════════════════════════════════════
   HERO — premium glassmorphism
   ════════════════════════════════════════════════ */
.hero {
  padding: 36px 0 32px;
  position: relative;
}
/* Subtle gradient backdrop behind hero */
.hero::before {
  content: '';
  position: absolute;
  top: -60px; left: -80px; right: -80px;
  height: 260px;
  background: radial-gradient(ellipse 70% 120% at 20% 20%, rgba(232,4,126,0.08) 0%, transparent 70%),
              radial-gradient(ellipse 50% 100% at 80% 10%, rgba(99,102,241,0.06) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.hero > * { position: relative; z-index: 1; }

.hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}

.hero-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.evrim-wordmark {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.20em;
  color: var(--t3);
  text-transform: uppercase;
  line-height: 1;
}

.hero-divider-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--pink);
  flex-shrink: 0;
}

.hero-title {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--t1);
  background: linear-gradient(135deg, var(--t1) 40%, var(--pink) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Refresh button */
.refresh-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: var(--r-sm);
  padding: 9px 18px;
  background: var(--pink);
  color: hsl(299, 62%, 71%);
  font-family: var(--font);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: -0.01em;
  transition: opacity 0.16s, transform 0.12s var(--ease), box-shadow 0.16s var(--ease);
  box-shadow: 0 1px 0 rgba(0,0,0,0.22) inset, 0 4px 14px var(--pink-glo);
}
@media (hover: hover) and (pointer: fine) {
  .refresh-btn:hover {
    opacity: 0.90;
    transform: translateY(-1px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.22) inset, 0 6px 22px var(--pink-glo);
  }
}
.refresh-btn:active  { transform: scale(0.97) !important; box-shadow: 0 1px 0 rgba(0,0,0,0.28) inset !important; }
.refresh-btn:disabled { opacity: 0.38; cursor: wait; transform: none; box-shadow: none; }

@keyframes spin { to { transform: rotate(360deg) } }
.refresh-btn svg.spin { animation: spin 0.8s linear infinite; }

/* Schedule */
.schedule-info {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-label {
  font-size: 12px;
  color: var(--t3);
  font-weight: 500;
}

.schedule-edit-btn {
  border: 0;
  background: none;
  color: var(--pink);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 6px;
  transition: background-color 0.16s var(--ease);
}
.schedule-edit-btn:hover { background: var(--pink-dim); }

.schedule-editor {
  display: flex;
  align-items: center;
  gap: 6px;
}

.schedule-select {
  padding: 6px 28px 6px 10px;
  border-radius: var(--r-xs);
  border: 1px solid var(--b2);
  background: var(--s2);
  color: var(--t1);
  font-size: 12px;
  font-family: var(--font);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  cursor: pointer;
}
[data-theme="light"] .schedule-select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.schedule-save-btn, .schedule-cancel-btn {
  border: 0;
  border-radius: var(--r-xs);
  padding: 6px 12px;
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.16s, transform 0.12s var(--ease);
}
.schedule-save-btn   { background: var(--pink); color: #fff; }
.schedule-cancel-btn { background: var(--s3); color: var(--t2); }
.schedule-save-btn:active, .schedule-cancel-btn:active { transform: scale(0.97); }

/* ════════════════════════════════════════════════
   KPI STRIP — glassmorphism cards
   ════════════════════════════════════════════════ */
.kpi-strip {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.kpi {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 20px 24px;
  border-radius: var(--r);
  background: linear-gradient(135deg, color-mix(in srgb, var(--s1) 90%, var(--pink) 10%) 0%, var(--s1) 100%);
  border: 1px solid var(--b2);
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.16s var(--ease);
}
.kpi::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 100% 0%, var(--pink-glo) 0%, transparent 70%);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .kpi:hover {
    border-color: var(--bf);
    box-shadow: 0 4px 24px var(--pink-glo), 0 0 0 1px var(--bf);
    transform: translateY(-2px);
  }
}

.kpi-divider { display: none; }

.kpi-value {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}

.kpi-value--small {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--t2);
}

.kpi-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t3);
}

/* ════════════════════════════════════════════════
   TOAST
   ════════════════════════════════════════════════ */
.toast {
  padding: 13px 18px;
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t2);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  margin: 12px 0;
  animation: slideIn 180ms var(--ease) both;
}
.toast.success { border-color: rgba(46,204,110,0.25); color: var(--green); background: var(--green-dim); }
.toast.error   { border-color: rgba(239,68,68,0.22);  color: var(--red);   background: var(--red-dim); }
.toast.info    { border-color: rgba(232,4,126,0.18);  color: var(--pink);  background: var(--pink-dim); }
.hidden { display: none; }

@keyframes slideIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}

/* ════════════════════════════════════════════════
   FILTERS BAR
   ════════════════════════════════════════════════ */
.filters-bar {
  position: sticky;
  top: 90px;
  z-index: 90;
  margin: 0 -32px;
  padding: 11px 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--glass);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--b1);
}

.filter-chips {
  display: flex;
  gap: 6px;
  align-items: center;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.filter-chips::-webkit-scrollbar { display: none; }

.search-field {
  position: relative;
  flex: 1;
}

.search-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--t3);
  pointer-events: none;
  width: 15px;
  height: 15px;
}

.search-field input {
  width: 100%;
  padding: 8px 14px 8px 34px;
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s1);
  color: var(--t1);
  font-size: 13px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease);
  letter-spacing: -0.01em;
}
.search-field input:focus {
  border-color: var(--bf);
  box-shadow: 0 0 0 3px var(--pink-dim);
}
.search-field input::placeholder { color: var(--t3); }

/* ── Placeholder overflow hardening ──────────────────────────────────────
   A narrow input with a long placeholder used to crop mid-word. Give every
   text/search/email input a proper text-overflow so anything that doesn't
   fit ends cleanly in an ellipsis instead of "organizati". */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="password"] {
  text-overflow: ellipsis;
}
input[type="text"]::placeholder,
input[type="search"]::placeholder,
input[type="email"]::placeholder,
input[type="url"]::placeholder,
input[type="tel"]::placeholder,
input[type="password"]::placeholder,
textarea::placeholder {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  opacity: 1;
}

/* Dark arrow for dark mode */
.filter-chips select {
  padding: 7px 26px 7px 10px;
  border-radius: 8px;
  border: 1px solid var(--b1);
  background-color: var(--s1);
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.35)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  color: var(--t2);
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font);
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.16s var(--ease), color 0.16s, box-shadow 0.16s var(--ease);
  white-space: nowrap;
}
[data-theme="light"] .filter-chips select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.filter-chips select:hover { border-color: var(--b2); color: var(--t1); }
.filter-chips select:focus { border-color: var(--bf); box-shadow: 0 0 0 2px var(--pink-dim); color: var(--t1); }

/* ════════════════════════════════════════════════
   RESULTS BAR
   ════════════════════════════════════════════════ */
.results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  margin-bottom: 8px;
}

.results-hint {
  font-size: 12px;
  color: var(--t3);
  font-weight: 500;
}

.results-bar-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.per-page-select {
  background-color: var(--s1);
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.35)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  border: 1px solid var(--b1);
  color: var(--t2);
  border-radius: var(--r-xs);
  padding: 5px 26px 5px 10px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  transition: border-color 0.16s var(--ease), color 0.16s;
}
[data-theme="light"] .per-page-select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.per-page-select:hover { border-color: var(--b2); color: var(--t1); }

.export-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--b1);
  border-radius: var(--r-xs);
  padding: 5px 12px;
  background: var(--s1);
  color: var(--t2);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.16s var(--ease), background-color 0.16s var(--ease), color 0.16s;
}
.export-btn:hover  { border-color: var(--b2); background: var(--s2); color: var(--t1); }
.export-btn:active { transform: scale(0.97); }

/* ════════════════════════════════════════════════
   TENDER CARDS
   ════════════════════════════════════════════════ */
.tender-list {
  display: grid;
  gap: 6px;
}

.tender-card {
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s1);
  overflow: hidden;
  position: relative;
  transition: border-color 0.18s var(--ease), background-color 0.18s var(--ease),
              box-shadow 0.18s var(--ease), transform 0.16s var(--ease);
}
/* Urgency left stripe */
.tender-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  border-radius: 10px 0 0 10px;
  background: transparent;
  transition: background-color 0.18s var(--ease);
}
.tender-card--urgent::before { background: var(--red); }
.tender-card--soon::before   { background: var(--orange); }
.tender-card--normal::before { background: var(--green); opacity: 0.45; }

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b2);
    background: var(--s2);
    transform: translateY(-1px);
    box-shadow: var(--sh-md);
  }
}

.tender-card--claimed    { border-color: rgba(245,158,11,0.14); }
.tender-card--bookmarked { border-color: rgba(232,4,126,0.18); }

.tc-main {
  display: flex;
  gap: 14px;
  padding: 16px 18px 12px;
  align-items: flex-start;
}

.tc-body { flex: 1; min-width: 0; }

.tc-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
  gap: 10px;
}

.tc-meta-line {
  font-size: 10.5px;
  font-weight: 500;
  color: var(--t3);
  letter-spacing: 0.025em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

/* Deadline badge */
.tc-deadline-inline {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
}
.tc-deadline-inline.urgent { background: var(--red-dim); }
.tc-deadline-inline.soon   { background: var(--orange-dim); }
.tc-deadline-inline.normal { background: var(--green-dim); }

.dl-date { font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
.tc-deadline-inline.urgent .dl-date,
.tc-deadline-inline.urgent .dl-left { color: var(--red); }
.tc-deadline-inline.soon .dl-date,
.tc-deadline-inline.soon .dl-left   { color: var(--orange); }
.tc-deadline-inline.normal .dl-date,
.tc-deadline-inline.normal .dl-left { color: var(--green); }
.dl-left { font-size: 10px; font-weight: 600; letter-spacing: 0.02em; opacity: 0.8; }

/* Side column */
.tc-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding-top: 2px;
}

.tc-title {
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.38;
  letter-spacing: -0.015em;
  margin-bottom: 4px;
  color: var(--t1);
}

.tc-org {
  font-size: 11.5px;
  color: var(--t3);
  line-height: 1.4;
}
.tc-org code {
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--s3);
  color: var(--t2);
}

.tc-ai-summary {
  font-size: 12px;
  color: var(--t2);
  line-height: 1.45;
  margin-top: 6px;
  padding: 6px 10px;
  background: var(--s2);
  border-radius: 7px;
  border-left: 2px solid rgba(232,4,126,0.25);
}
.tc-description {
  font-size: 12px;
  color: var(--t3);
  line-height: 1.45;
  margin-top: 5px;
}
.tc-action-hint {
  font-size: 10.5px;
  color: var(--pink);
  margin-top: 3px;
  font-weight: 500;
  padding-left: 12px;
}
.tc-details[hidden] { display: none; }

/* Score badge */
.score-badge {
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 2px solid;
  flex-shrink: 0;
}
.score-badge.high { color: var(--green);  border-color: var(--green);  background: var(--green-dim); }
.score-badge.mid  { color: var(--pink);   border-color: var(--pink);   background: var(--pink-dim); }
.score-badge.low  { color: var(--t3);     border-color: var(--b2);     background: var(--s2); }

/* Bookmark */
.bookmark-btn {
  border: 0;
  background: none;
  color: var(--t3);
  cursor: pointer;
  padding: 3px;
  border-radius: 6px;
  line-height: 0;
  transition: color 0.16s var(--ease), transform 0.12s var(--ease);
}
.bookmark-btn:hover { color: var(--pink); }
.bookmark-btn:active { transform: scale(0.88); }
.bookmark-btn.bookmarked svg { fill: var(--pink); stroke: var(--pink); }

/* Legacy compat */
.pill { display: none; }
.tc-meta-row { display: none; }
.score-row { display: none; }
.tc-deadline { display: none; }
.tc-pills { display: none; }

/* Details expand */
.tc-details {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0 1px;
  background: var(--b1);
  border-top: 1px solid var(--b1);
}
.tc-details[hidden] { display: none; }

.tc-detail {
  padding: 11px 18px;
  background: var(--bg);
}
[data-theme="light"] .tc-detail { background: var(--s2); }

.tc-detail-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t3);
  margin-bottom: 4px;
}
.tc-detail-value {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.5;
  word-break: break-word;
}
.tc-detail--wide { grid-column: 1 / -1; }

.tc-req-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tc-req-list li {
  font-size: 12.5px;
  color: var(--t2);
  padding-left: 14px;
  position: relative;
}
.tc-req-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 6px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--pink);
}

/* Card footer */
.tc-action-bar { display: contents; }

.tc-footer {
  display: flex;
  align-items: center;
  padding: 8px 18px 10px;
  gap: 8px;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,0.04);
}
[data-theme="light"] .tc-footer { border-top-color: var(--b1); }

.tc-footer-right {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  flex-shrink: 0;
}

.tc-expand-btn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 6px;
  transition: color 0.16s var(--ease), background-color 0.16s var(--ease);
}
.tc-expand-btn:hover { color: var(--t1); background: var(--s2); }
.tc-expand-btn:active { transform: scale(0.97); }
.tc-expand-btn.expanded { color: var(--pink); }
.tc-expand-btn.expanded svg { transform: rotate(180deg); }
.tc-expand-btn svg { transition: transform 0.2s var(--ease); }

.tc-tags { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; min-width: 0; }
.tc-tag {
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 500;
  color: var(--pink);
  background: var(--pink-dim);
}
.tc-tag--pdf  { color: var(--cyan);  background: var(--cyan-dim); }
.tc-tag--more { color: var(--t3);    background: var(--s2); cursor: help; }

.tc-links { display: flex; gap: 5px; flex-shrink: 0; align-items: center; }

.tc-link {
  font-size: 11px;
  font-weight: 600;
  color: var(--pink);
  text-decoration: none;
  transition: opacity 0.16s;
  white-space: nowrap;
}
.tc-link:hover { opacity: 0.7; }

.tc-link--doc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 7px;
  background: var(--pink-dim);
  font-size: 11px;
  transition: background-color 0.16s var(--ease);
}
.tc-link--doc:hover { background: rgba(232,4,126,0.17); }

/* ════════════════════════════════════════════════
   ASSIGNMENT
   ════════════════════════════════════════════════ */
.assign-section {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.assign-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.assign-badge--me    { color: var(--green);  background: var(--green-dim); }
.assign-badge--other { color: var(--orange); background: var(--orange-dim); }

.assign-btn {
  border: 0;
  border-radius: 6px;
  padding: 4px 10px;
  font-family: var(--font);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.16s var(--ease), background-color 0.16s var(--ease);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.assign-btn:active   { transform: scale(0.97); }
.assign-btn:disabled { opacity: 0.4; cursor: wait; }

.assign-btn--claim {
  background: transparent;
  color: var(--t3);
}
.assign-btn--claim:hover { background: var(--pink-dim); color: var(--pink); }

.assign-btn--unclaim {
  background: transparent;
  color: var(--t3);
}
.assign-btn--unclaim:hover { background: var(--red-dim); color: var(--red); }

/* ════════════════════════════════════════════════
   STATUS / PRIORITY BADGES
   ════════════════════════════════════════════════ */
.status-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 6px;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.status-badge--claimed     { color: var(--orange); background: var(--orange-dim); }
.status-badge--in_progress { color: var(--cyan);   background: var(--cyan-dim); }
.status-badge--submitted   { color: var(--pink);   background: var(--pink-dim); }
.status-badge--won         { color: var(--green);  background: var(--green-dim); }
.status-badge--lost        { color: var(--t3);     background: var(--s2); }

.pill--status-claimed     { color: var(--orange); background: var(--orange-dim); }
.pill--status-in_progress { color: var(--cyan);   background: var(--cyan-dim); }
.pill--status-submitted   { color: var(--pink);   background: var(--pink-dim); }
.pill--status-won         { color: var(--green);  background: var(--green-dim); }
.pill--status-lost        { color: var(--t3);     background: var(--s2); text-decoration: line-through; }

.priority-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 6px;
  letter-spacing: 0.01em;
}
.priority-badge--high   { color: var(--red);    background: var(--red-dim); }
.priority-badge--medium { color: var(--orange); background: var(--orange-dim); }
.priority-badge--low    { color: var(--t3);     background: var(--s2); }

.pill--priority-high   { color: var(--red);    background: var(--red-dim); }
.pill--priority-medium { color: var(--orange); background: var(--orange-dim); }
.pill--priority-low    { color: var(--t3);     background: var(--s2); }

/* Status/priority/reassign selects */
.status-select, .priority-select, .reassign-select {
  padding: 5px 26px 5px 10px;
  border-radius: 7px;
  border: 1px solid var(--b1);
  background-color: var(--s1);
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.35)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 7px center;
  color: var(--t1);
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  transition: border-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}
[data-theme="light"] .status-select,
[data-theme="light"] .priority-select,
[data-theme="light"] .reassign-select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.status-select:focus,
.priority-select:focus,
.reassign-select:focus { border-color: var(--bf); box-shadow: 0 0 0 3px var(--pink-dim); }

/* ════════════════════════════════════════════════
   NOTES
   ════════════════════════════════════════════════ */
.notes-section {
  border-top: 1px solid var(--b1);
  padding: 0 16px;
}

.notes-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  padding: 8px 0;
  transition: color 0.16s var(--ease);
}
.notes-toggle:hover { color: var(--t1); }

.notes-panel { padding-bottom: 14px; }

.note-item {
  position: relative;
  padding: 9px 14px;
  margin-bottom: 5px;
  border-radius: 9px;
  background: var(--s2);
  border: 1px solid var(--b1);
}
.note-meta {
  font-size: 11px;
  color: var(--t3);
  margin-bottom: 3px;
}
.note-meta strong { color: var(--t2); font-weight: 600; }
.note-text { font-size: 13px; color: var(--t2); line-height: 1.5; word-break: break-word; }
.note-del {
  position: absolute;
  top: 8px;
  right: 10px;
  border: 0;
  background: none;
  color: var(--t3);
  font-size: 16px;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
  transition: color 0.16s, background-color 0.16s;
}
.note-del:hover { color: var(--red); background: var(--red-dim); }

.note-add { display: flex; gap: 7px; margin-top: 8px; }
.note-input {
  flex: 1;
  padding: 9px 13px;
  border-radius: 9px;
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t1);
  font-size: 13px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease);
}
.note-input:focus { border-color: var(--bf); box-shadow: 0 0 0 3px var(--pink-dim); }
.note-input::placeholder { color: var(--t3); }
.note-send {
  border: 0;
  border-radius: 9px;
  padding: 9px 16px;
  background: var(--pink);
  color: #fff;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.16s, transform 0.12s var(--ease);
  white-space: nowrap;
}
.note-send:hover { opacity: 0.88; }
.note-send:active { transform: scale(0.97); }
.note-send:disabled { opacity: 0.38; cursor: wait; }

/* ════════════════════════════════════════════════
   PAGINATION
   ════════════════════════════════════════════════ */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 20px 0 32px;
  flex-wrap: wrap;
}

.pg-btn {
  background: var(--s1);
  border: 1px solid var(--b1);
  color: var(--t2);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  font-family: var(--font);
  transition: border-color 0.16s var(--ease), color 0.16s, background-color 0.16s var(--ease);
}
.pg-btn:hover:not(.disabled):not(.pg-active) { border-color: var(--b2); color: var(--t1); }
.pg-btn.pg-active { background: var(--pink); border-color: var(--pink); color: #fff; font-weight: 700; }
.pg-btn.disabled  { opacity: 0.3; cursor: default; }
.pg-dots { color: var(--t3); padding: 0 4px; font-size: 14px; }

/* ════════════════════════════════════════════════
   SECTION HEADERS
   ════════════════════════════════════════════════ */
.section-block { margin-top: 48px; }
.section-header { margin-bottom: 18px; }
.section-header-title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-header h2 {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--t1);
}

/* ════════════════════════════════════════════════
   SOURCE CARDS
   ════════════════════════════════════════════════ */
.sources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
  margin-bottom: 64px;
}

/* ── Source group dividers ─────────────────────────────────────── */
.sources-section-label {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0 8px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--t3);
  border-bottom: 1px solid var(--b1);
}
.sources-section-label--bank { margin-top: 14px; }
.sources-section-count {
  font-size: 10px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  padding: 1px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--t3) 10%, transparent);
  color: var(--t2);
}

.source-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  border-radius: var(--r);
  border: 1px solid var(--b1);
  background: var(--s1);
  transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease), transform 0.16s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .source-card:hover { border-color: var(--b2); transform: translateY(-1px); box-shadow: var(--sh-md); }
}
.source-card.down { border-color: rgba(239,68,68,0.18); }

.src-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.src-dot.ok  { background: var(--green); box-shadow: 0 0 8px rgba(46,204,110,0.4); }
.src-dot.bad { background: var(--red);   box-shadow: 0 0 8px rgba(239,68,68,0.4); }

.src-info { flex: 1; min-width: 0; }
.src-name     { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; color: var(--t1); }
.src-province { font-size: 12px; color: var(--t3); margin-top: 2px; }
.src-error {
  font-size: 10.5px;
  color: var(--red);
  margin-top: 4px;
  line-height: 1.45;
  word-break: break-all;
  /* No truncation — when a portal fails we need to SEE the actual error
     (net::ERR_CONNECTION_RESET, TLS handshake, etc.) so we can diagnose. */
}
.src-link {
  font-size: 11px;
  color: var(--pink);
  text-decoration: none;
  margin-top: 3px;
  display: inline-block;
  font-weight: 500;
  opacity: 0.7;
  transition: opacity 0.16s;
}
.src-link:hover { opacity: 1; }
.src-num--verified strong { color: var(--green); }

.src-nums { display: flex; gap: 14px; flex-shrink: 0; }
.src-num  { text-align: center; }
.src-num strong {
  display: block;
  font-size: 17px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--t1);
}
.src-num span {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--t3);
}

/* ════════════════════════════════════════════════
   EMPTY STATE
   ════════════════════════════════════════════════ */
.empty-state {
  padding: 56px 32px;
  text-align: center;
  border: 1px dashed var(--b2);
  border-radius: var(--r);
  color: var(--t2);
}
.empty-state strong {
  display: block;
  margin-bottom: 8px;
  color: var(--t1);
  font-size: 16px;
  font-weight: 600;
}
.empty-state p { font-size: 14px; color: var(--t3); }
.empty-state-icon { margin-bottom: 16px; opacity: 0.78; }

/* ════════════════════════════════════════════════
   TEAM DASHBOARD
   ════════════════════════════════════════════════ */
.team-dashboard { margin-bottom: 28px; }

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 10px;
}

.team-card {
  padding: 18px 22px;
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s1);
  transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease), transform 0.16s var(--ease);
  animation: fadeUp 240ms var(--ease) both;
}
@media (hover: hover) and (pointer: fine) {
  .team-card:hover { border-color: var(--b2); transform: translateY(-1px); box-shadow: var(--sh-md); }
}

.team-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.team-user  { font-size: 14px; font-weight: 600; color: var(--t1); }
.team-count { font-size: 12px; color: var(--t3); font-weight: 500; }

.team-statuses { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }

.team-next-deadline {
  font-size: 12px;
  color: var(--t2);
  line-height: 1.5;
  border-top: 1px solid var(--b1);
  padding-top: 10px;
  margin-top: 4px;
}
.team-next-deadline strong { color: var(--t1); }

.team-tender-list {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  border-top: 1px solid var(--b1);
  padding-top: 8px;
  max-height: 200px;
  overflow-y: auto;
}
.team-tender-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
  font-size: 12px;
  line-height: 1.4;
}
.team-tender-item + .team-tender-item { border-top: 1px solid var(--b1); }
.team-tender-title {
  color: var(--t1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.team-tender-link {
  color: var(--blue);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.team-tender-link:hover { text-decoration: underline; color: var(--pink); }
.team-tender-deadline { font-size: 11px; color: var(--t2); flex-shrink: 0; margin-left: auto; }

.status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--orange); }
.status-dot.status-badge--in_progress { background: var(--cyan); }
.status-dot.status-badge--submitted   { background: var(--pink); }
.status-dot.status-badge--won         { background: var(--green); }
.status-dot.status-badge--lost        { background: var(--t3); }

.priority-pip { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; background: var(--t3); }
.priority-pip.priority-badge--high   { background: var(--red); }
.priority-pip.priority-badge--medium { background: var(--orange); }

/* ════════════════════════════════════════════════
   ACTIVITY LOG
   ════════════════════════════════════════════════ */
.activity-list {
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s1);
  overflow: hidden;
  margin-bottom: 14px;
  max-height: 400px;
  overflow-y: auto;
}
.activity-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 18px;
  border-bottom: 1px solid var(--b1);
  font-size: 13px;
}
.activity-item:last-child { border-bottom: 0; }
.activity-icon { font-size: 14px; flex-shrink: 0; }
.activity-text { flex: 1; color: var(--t2); min-width: 0; }
.activity-text strong { color: var(--t1); font-weight: 600; }
.activity-time { font-size: 11px; color: var(--t3); white-space: nowrap; flex-shrink: 0; }

/* ════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════ */
.site-footer {
  text-align: center;
  padding: 48px 20px 32px;
  margin-top: 48px;
  border-top: 1px solid var(--b1);
  color: var(--t3);
  font-size: 12.5px;
  line-height: 1.7;
}
.site-footer strong { color: var(--t2); font-weight: 600; }
.footer-brand { margin-bottom: 10px; opacity: 0.5; }
.footer-sub   { margin-top: 4px; font-size: 11px; }

/* ════════════════════════════════════════════════
   REFRESH OVERLAY
   ════════════════════════════════════════════════ */
.refresh-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.2s var(--ease);
}
.refresh-overlay--closing { opacity: 0; transition: opacity 0.4s ease; }

.refresh-panel {
  background: var(--s2);
  border: 1px solid var(--b2);
  border-radius: var(--r);
  width: 420px;
  max-width: 92vw;
  padding: 24px;
  box-shadow: var(--sh-xl);
}
.refresh-panel-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: 14px;
}
.refresh-timer { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--pink); font-variant-numeric: tabular-nums; }
.refresh-close-btn {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-left: 6px;
  border: 1px solid var(--b1);
  border-radius: 999px;
  background: rgba(255,255,255,0.03);
  color: var(--t3);
  font-family: var(--font);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease, color 140ms ease, transform 120ms var(--ease);
}
.refresh-close-btn:hover {
  border-color: var(--b2);
  background: rgba(255,255,255,0.06);
  color: var(--t1);
}
.refresh-close-btn:active {
  transform: scale(0.96);
}
.refresh-progress-bar {
  height: 5px;
  background: var(--b1);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 10px;
}
.refresh-progress-fill {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--pink), var(--pink-hi));
  border-radius: 3px;
  transition: width 0.4s ease;
}
.refresh-status { font-size: 13px; color: var(--t2); margin-bottom: 10px; font-weight: 500; }
.refresh-log {
  max-height: 180px;
  overflow-y: auto;
  border-top: 1px solid var(--b1);
  padding-top: 10px;
}
.refresh-log-item { font-size: 11.5px; color: var(--t3); padding: 3px 0; line-height: 1.4; }
.refresh-log--ok    { color: var(--green); }
.refresh-log--error { color: var(--red); }
[data-theme="light"] .refresh-close-btn {
  background: rgba(17,17,24,0.03);
  border-color: rgba(17,17,24,0.08);
}

/* ════════════════════════════════════════════════
   ANIMATIONS
   ════════════════════════════════════════════════ */
.source-card {
  animation: fadeUp 0.30s var(--ease) both;
}
.tender-card {
  animation: cardIn 0.42s cubic-bezier(0.23,1,0.32,1) both;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Staggered entry */
.tender-card:nth-child(1)  { animation-delay: calc(1  * 30ms); }
.tender-card:nth-child(2)  { animation-delay: calc(2  * 30ms); }
.tender-card:nth-child(3)  { animation-delay: calc(3  * 30ms); }
.tender-card:nth-child(4)  { animation-delay: calc(4  * 30ms); }
.tender-card:nth-child(5)  { animation-delay: calc(5  * 30ms); }
.tender-card:nth-child(6)  { animation-delay: calc(6  * 30ms); }
.tender-card:nth-child(7)  { animation-delay: calc(7  * 30ms); }
.tender-card:nth-child(8)  { animation-delay: calc(8  * 30ms); }
.tender-card:nth-child(9)  { animation-delay: calc(9  * 30ms); }
.tender-card:nth-child(10) { animation-delay: calc(10 * 30ms); }
.tender-card:nth-child(11) { animation-delay: calc(11 * 30ms); }
.tender-card:nth-child(12) { animation-delay: calc(12 * 30ms); }
.tender-card:nth-child(13) { animation-delay: calc(13 * 30ms); }
.tender-card:nth-child(14) { animation-delay: calc(14 * 30ms); }
.tender-card:nth-child(15) { animation-delay: calc(15 * 30ms); }
.tender-card:nth-child(16) { animation-delay: calc(16 * 30ms); }

/* ════════════════════════════════════════════════
   LOGIN PAGE — v5 (radar command console)
   Asymmetric split + rotating sweep + live portal marquee.
   ════════════════════════════════════════════════ */
.login-page {
  position: relative;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  background: var(--bg);
  color: var(--t1);
  overflow: hidden;
  isolation: isolate;
  /* Subtle vignette that pulls focus toward the form card on the right */
  background-image:
    radial-gradient(120% 80% at 82% 50%, color-mix(in srgb, var(--pink) 6%, transparent) 0%, transparent 60%),
    radial-gradient(100% 60% at 18% 100%, color-mix(in srgb, var(--blue) 5%, transparent) 0%, transparent 55%);
}
[data-theme="light"] .login-page {
  background-image:
    radial-gradient(120% 80% at 82% 50%, color-mix(in srgb, var(--pink) 4%, transparent) 0%, transparent 60%),
    radial-gradient(100% 60% at 18% 100%, color-mix(in srgb, var(--blue) 3%, transparent) 0%, transparent 55%);
}

/* Atmosphere — radar sweep + mesh orbs + grid + grain. Fixed, never scrolls. */
.login-atmos {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

/* Radar sweep — rotating conic gradient centered in the left panel.
   Homage to the product name without being literal. */
.login-radar {
  position: absolute;
  left: -30%;
  top: 50%;
  width: 140vmin;
  height: 140vmin;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background:
    conic-gradient(from 0deg,
      transparent 0deg,
      color-mix(in srgb, var(--pink) 16%, transparent) 18deg,
      color-mix(in srgb, var(--pink) 8%, transparent) 32deg,
      transparent 60deg,
      transparent 360deg);
  opacity: 0.55;
  filter: blur(30px);
  animation: loginRadarSweep 16s linear infinite;
  will-change: transform;
}
[data-theme="light"] .login-radar { opacity: 0.28; filter: blur(40px); }
@keyframes loginRadarSweep {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

.login-orb {
  position: absolute;
  border-radius: 999px;
  filter: blur(90px);
  opacity: 0.5;
  will-change: transform;
}
.login-orb--1 {
  width: 540px; height: 540px;
  top: -180px; left: -160px;
  background: radial-gradient(circle at 30% 30%, var(--pink) 0%, transparent 70%);
  animation: loginOrbDrift 22s ease-in-out infinite alternate;
}
.login-orb--2 {
  width: 440px; height: 440px;
  bottom: -140px; left: 24%;
  background: radial-gradient(circle at 50% 50%, var(--blue) 0%, transparent 72%);
  opacity: 0.28;
  animation: loginOrbDrift 28s ease-in-out -6s infinite alternate;
}
.login-orb--3 {
  width: 380px; height: 380px;
  top: 10%; right: -110px;
  background: radial-gradient(circle at 40% 40%, var(--cyan) 0%, transparent 72%);
  opacity: 0.2;
  animation: loginOrbDrift 32s ease-in-out -12s infinite alternate;
}

/* Soft mesh that layers over the orbs — pulls warm + cool in gently. */
.login-mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 50% at 16% 22%, color-mix(in srgb, var(--pink) 8%, transparent) 0%, transparent 60%),
    radial-gradient(50% 45% at 84% 72%, color-mix(in srgb, var(--cyan) 5%, transparent) 0%, transparent 60%);
  mix-blend-mode: screen;
  opacity: 0.9;
}
[data-theme="light"] .login-mesh { mix-blend-mode: multiply; opacity: 0.55; }

/* Precision dot grid — very subtle, only across the left panel.
   Masked horizontally so it fades past the split. */
.login-grid {
  position: absolute;
  inset: 0 38% 0 0;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 26px 26px;
  background-position: 0 0;
  mask-image: linear-gradient(90deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.7) 55%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.7) 55%, transparent 100%);
  opacity: 0.9;
}
[data-theme="light"] .login-grid {
  background-image: radial-gradient(rgba(17,17,24,0.06) 1px, transparent 1px);
  opacity: 0.65;
}

.login-grain {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 3px 3px;
  mix-blend-mode: overlay;
  opacity: 0.55;
}
[data-theme="light"] .login-grain { opacity: 0.2; }
[data-theme="light"] .login-orb--1 { opacity: 0.26; }
[data-theme="light"] .login-orb--2 { opacity: 0.16; }
[data-theme="light"] .login-orb--3 { opacity: 0.12; }

@keyframes loginOrbDrift {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  100% { transform: translate3d(40px, -30px, 0) scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
  .login-radar, .login-orb { animation: none; }
}

/* LEFT column — editorial canvas with real breathing room. */
.login-left {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  gap: 36px;
  padding: 44px 64px 36px;
  border-right: 1px solid var(--b1);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--s1) 78%, transparent) 0%,
    color-mix(in srgb, var(--bg) 92%, transparent) 100%);
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  /* Inner right-edge refraction — a 1px specular highlight that mimics glass. */
  box-shadow:
    inset -1px 0 0 color-mix(in srgb, var(--b2) 70%, transparent);
}

.login-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.login-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
  line-height: 1;
}
.login-brand-logo {
  display: block;
  width: clamp(150px, 14vw, 190px);
  height: auto;
  border-radius: 8px;
  object-fit: contain;
}
.login-evrim-word {
  font-family: 'Michroma', 'Geist', 'Inter', ui-sans-serif, system-ui, sans-serif;
  font-weight: 400;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: var(--t1);
  line-height: 1;
  text-transform: none; /* Michroma is inherently uppercase */
  -webkit-font-smoothing: antialiased;
}
.login-evrim-tagline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-left: 1px;
}
.login-evrim-tag {
  font-family: 'Geist', 'Inter', ui-sans-serif, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--t3);
  text-transform: lowercase;
  line-height: 1;
}
.login-evrim-bars {
  display: inline-flex;
  gap: 2px;
  align-items: center;
}
.login-evrim-bar {
  width: 10px;
  height: 5px;
  border-radius: 1px;
  display: inline-block;
}
.login-evrim-bar--1 { background: #3b3b44; }
.login-evrim-bar--2 { background: #a54a73; }
.login-evrim-bar--3 { background: var(--pink); }
.login-evrim-bar--4 { background: var(--pink-hi); box-shadow: 0 0 8px color-mix(in srgb, var(--pink) 55%, transparent); }
[data-theme="light"] .login-evrim-bar--1 { background: #c9c9d2; }
[data-theme="light"] .login-evrim-bar--2 { background: #d58fae; }

.login-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px 7px 12px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s2) 70%, transparent);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.005em;
  color: var(--t2);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 1px 0 rgba(0,0,0,0.20);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.login-status-dot {
  position: relative;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 22%, transparent);
}
.login-status-dot::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  border: 1px solid var(--green);
  opacity: 0;
  animation: loginStatusRipple 2.2s var(--ease) infinite;
}
@keyframes loginStatusRipple {
  0%   { transform: scale(0.6); opacity: 0.55; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* Hero — generous type with a subtle gradient italic accent. */
.login-hero {
  align-self: center;
  max-width: 560px;
  animation: loginRise 0.9s var(--ease) both;
}
.login-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 10px;
  border-radius: 999px;
  background: var(--pink-dim);
  border: 1px solid color-mix(in srgb, var(--pink) 22%, transparent);
  color: var(--pink);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 24px;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--pink) 16%, transparent);
}
.login-eyebrow::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--pink-hi);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 28%, transparent);
  animation: loginEyebrowPulse 1.8s ease-in-out infinite;
}
@keyframes loginEyebrowPulse {
  0%, 100% { opacity: 0.85; transform: scale(1); }
  50%      { opacity: 1;    transform: scale(1.18); }
}

.login-headline {
  font-size: clamp(40px, 5.2vw, 64px);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1.0;
  color: var(--t1);
  margin-bottom: 22px;
  text-wrap: balance;
}
.login-headline em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(110deg, var(--pink) 0%, var(--pink-hi) 48%, var(--cyan) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  /* Slight glyph-level shift so the italic feels intentional, not broken. */
  letter-spacing: -0.05em;
  padding-right: 2px;
}
.login-lede {
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--t2);
  max-width: 46ch;
}

/* Signal — 3 metric tiles inside a frosted panel, bottom-aligned. */
/* Live coverage signal grid removed — section retained below only for any legacy pages that still reference it. */
.login-signal { display: none !important; }
.login-signal-legacy {
  border-top: 1px solid var(--b1);
  padding-top: 24px;
  display: grid;
  gap: 14px;
  animation: loginRise 1s var(--ease) 0.12s both;
}
.login-signal-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.login-signal-kicker {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}
.login-signal-meta {
  font-size: 11px;
  font-family: var(--font-mono);
  color: var(--t3);
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.login-signal-meta::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 22%, transparent);
  animation: loginEyebrowPulse 1.8s ease-in-out infinite;
}

.login-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--b1);
  border-radius: var(--r);
  background: color-mix(in srgb, var(--s2) 55%, transparent);
  overflow: hidden;
  position: relative;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 10px 30px rgba(0,0,0,0.18);
}
[data-theme="light"] .login-signal-grid {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.6),
    0 4px 18px rgba(17,17,24,0.05);
}
.login-signal-grid::before {
  /* Top-edge pink highlight — a single 1px seam that ties the card into the page accent. */
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in srgb, var(--pink) 30%, transparent) 30%,
    color-mix(in srgb, var(--pink) 45%, transparent) 50%,
    color-mix(in srgb, var(--pink) 30%, transparent) 70%,
    transparent 100%);
  opacity: 0.75;
}
.login-signal-card {
  padding: 22px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-right: 1px solid var(--b1);
  position: relative;
  transition: background 0.25s var(--ease);
}
.login-signal-card:last-child { border-right: 0; }
.login-signal-card:hover { background: color-mix(in srgb, var(--s3) 40%, transparent); }

.login-signal-card--accent::before {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--pink), transparent);
  opacity: 0.9;
}
.login-signal-card--accent::after {
  /* Faint accent glow underneath the numeric — pulls the eye without a card. */
  content: '';
  position: absolute;
  inset: auto 0 -20px 0;
  height: 40px;
  background: radial-gradient(60% 100% at 50% 0%, var(--pink-glo) 0%, transparent 70%);
  pointer-events: none;
  opacity: 0.7;
}
.login-signal-label {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--t3);
}
.login-signal-value {
  font-family: var(--font-mono);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.login-signal-card--accent .login-signal-value { color: var(--pink); }

/* Portals marquee — single-line endlessly scrolling chip rail.
   Drives the "continuous sweep" narrative without a spinner. */
.login-portals {
  display: grid;
  gap: 10px;
  animation: loginRise 1.1s var(--ease) 0.2s both;
}
.login-portals-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.login-portals-kicker {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}
.login-portals-count-badge {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--pink-hi);
  background: color-mix(in srgb, var(--pink) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--pink) 22%, transparent);
  border-radius: 999px;
  padding: 1px 7px;
  line-height: 1.6;
}
.login-portals-hint {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: -0.01em;
  color: var(--t3);
  margin-left: auto;
}
.login-portals-track {
  position: relative;
  overflow: hidden;
  /* Fade edges via mask so chips dissolve gracefully. */
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.login-portals-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  padding: 2px 0;
  /* 14 chips × ~4.2s per chip ≈ 60s for a comfortable reading scroll */
  animation: loginPortalsScroll 60s linear infinite;
  will-change: transform;
}
.login-portals-track:hover .login-portals-row { animation-play-state: paused; }

.login-portal-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s2) 65%, transparent);
  color: var(--t2);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
  flex: 0 0 auto;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
.login-portal-chip::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--green);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--green) 24%, transparent);
}

@keyframes loginPortalsScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .login-portals-row { animation: none; }
}

.login-foot {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.02em;
  padding-top: 16px;
  border-top: 1px solid var(--b1);
}
.login-foot-dot {
  width: 3px; height: 3px;
  border-radius: 999px;
  background: var(--t4);
}
.login-foot-build {
  font-family: var(--font-mono);
  font-size: 10.5px;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  color: var(--t3);
  letter-spacing: -0.01em;
  margin-left: auto;
}

/* RIGHT column — floating form card with chromatic edge. */
.login-right {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 48px 48px 40px;
}
.login-form-shell {
  position: relative;
  width: 100%;
  max-width: 440px;
  display: grid;
  gap: 28px;
  padding: 36px 32px 32px;
  border-radius: var(--r-lg);
  border: 1px solid var(--b1);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--s1) 92%, transparent) 0%,
      color-mix(in srgb, var(--s1) 78%, transparent) 100%);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 24px 60px rgba(0,0,0,0.35),
    0 2px 10px rgba(0,0,0,0.20);
  animation: loginRise 0.9s var(--ease) 0.08s both;
  isolation: isolate;
}
[data-theme="light"] .login-form-shell {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.74) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 14px 44px rgba(17,17,24,0.09),
    0 2px 8px rgba(17,17,24,0.04);
}
/* Chromatic halo — sits behind the card, drawn via ::before. */
.login-form-shell::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(140deg,
    color-mix(in srgb, var(--pink) 55%, transparent) 0%,
    transparent 35%,
    transparent 65%,
    color-mix(in srgb, var(--cyan) 25%, transparent) 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.55;
  z-index: -1;
}
[data-theme="light"] .login-form-shell::before { opacity: 0.35; }

.login-form-head { display: grid; gap: 8px; }
.login-form-kicker {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.login-form-kicker::before {
  content: '';
  width: 18px;
  height: 1px;
  background: var(--pink);
  opacity: 0.85;
}
.login-form-title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: var(--t1);
  text-wrap: balance;
}
.login-form-sub {
  font-size: 14px;
  color: var(--t2);
  line-height: 1.55;
}

.login-form {
  display: grid;
  gap: 18px;
}
.login-field {
  display: grid;
  gap: 8px;
}
.login-field label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--t3);
}
.login-field-hint {
  font-size: 11.5px;
  color: var(--t3);
  letter-spacing: 0.005em;
}

.login-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.login-input-wrap input { padding-right: 44px; }

.login-field input {
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--r-sm);
  border: 1px solid var(--b2);
  background: color-mix(in srgb, var(--s2) 60%, transparent);
  color: var(--t1);
  font-size: 15px;
  font-family: var(--font);
  outline: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    inset 0 0 0 1px transparent;
  transition:
    border-color 0.18s var(--ease),
    box-shadow 0.18s var(--ease),
    background 0.18s var(--ease);
}
[data-theme="light"] .login-field input {
  background: rgba(255,255,255,0.8);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.6),
    0 1px 0 rgba(17,17,24,0.02);
}
.login-field input::placeholder { color: var(--t4); }
.login-field input:hover { border-color: var(--b3); }
.login-field input:focus {
  border-color: var(--bf);
  background: color-mix(in srgb, var(--s1) 88%, var(--pink-dim));
  box-shadow:
    0 0 0 4px var(--pink-dim),
    inset 0 1px 0 rgba(255,255,255,0.04);
}
[data-theme="light"] .login-field input:focus {
  background: #ffffff;
  box-shadow:
    0 0 0 4px var(--pink-dim),
    inset 0 1px 0 rgba(255,255,255,0.7);
}

.login-reveal {
  position: absolute;
  right: 6px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--t3);
  cursor: pointer;
  transition: color 0.15s var(--ease), background 0.15s var(--ease);
}
.login-reveal:hover { color: var(--t1); background: var(--s2); }
.login-reveal[aria-pressed="true"] { color: var(--pink); }

.login-error {
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: var(--red-dim);
  border: 1px solid color-mix(in srgb, var(--red) 28%, transparent);
  color: var(--red);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  animation: loginShake 0.34s var(--ease);
}
.login-error::before {
  content: '';
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--red);
  margin-top: 7px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--red) 22%, transparent);
}
@keyframes loginShake {
  0%   { transform: translateX(0); }
  30%  { transform: translateX(-6px); }
  60%  { transform: translateX(4px); }
  100% { transform: translateX(0); }
}

.login-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 15px 18px;
  margin-top: 4px;
  border: 0;
  border-radius: var(--r-sm);
  background: linear-gradient(180deg, var(--pink-hi) 0%, var(--pink) 100%);
  color: #fff;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
  cursor: pointer;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.18),
    0 8px 28px var(--pink-glo);
  transition: transform 0.16s var(--ease), box-shadow 0.22s var(--ease), filter 0.2s var(--ease);
}
.login-cta-label { position: relative; z-index: 1; }
.login-cta-arrow {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  transition: transform 0.22s var(--ease), background 0.22s var(--ease);
}
.login-cta-sheen {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,0.28) 50%, transparent 65%);
  transform: translateX(-120%);
  transition: transform 0.9s var(--ease);
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .login-cta:hover {
    transform: translateY(-1px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.22),
      inset 0 -1px 0 rgba(0,0,0,0.22),
      0 14px 34px var(--pink-glo);
    filter: saturate(1.08);
  }
  .login-cta:hover .login-cta-arrow { transform: translateX(3px); background: rgba(255,255,255,0.28); }
  .login-cta:hover .login-cta-sheen { transform: translateX(120%); }
}
.login-cta:active { transform: translateY(0) scale(0.985); }
.login-cta:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
  filter: grayscale(0.25);
}
.login-cta.is-loading .login-cta-arrow {
  background: rgba(255,255,255,0.08);
}
.login-cta.is-loading .login-cta-arrow::after {
  content: '';
  width: 12px; height: 12px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  animation: loginSpin 0.7s linear infinite;
}
.login-cta.is-loading .login-cta-arrow svg { display: none; }
@keyframes loginSpin { to { transform: rotate(360deg); } }

/* Keyboard hint — small, quiet, only appears on pointer-fine viewports. */
.login-kbd-hint {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 2px;
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.02em;
}
.login-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 6px;
  border: 1px solid var(--b2);
  background: color-mix(in srgb, var(--s2) 70%, transparent);
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--t2);
  box-shadow:
    inset 0 -1px 0 rgba(0,0,0,0.25),
    inset 0 1px 0 rgba(255,255,255,0.05);
}
[data-theme="light"] .login-kbd {
  background: #ffffff;
  box-shadow:
    inset 0 -1px 0 rgba(17,17,24,0.08),
    inset 0 1px 0 rgba(255,255,255,1);
}
@media (hover: hover) and (pointer: fine) {
  .login-kbd-hint { display: inline-flex; }
}

.login-legal { display: grid; gap: 14px; }
.login-divider {
  display: flex;
  align-items: center;
  gap: 12px;
}
.login-divider-rule {
  flex: 1;
  height: 1px;
  background: var(--b1);
}
.login-divider-label {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}
.login-legal-body {
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--t3);
  text-align: center;
  max-width: 36ch;
  margin: 0 auto;
}

@keyframes loginRise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 1060px) {
  .login-page { grid-template-columns: 1fr 1fr; }
  .login-left { padding: 40px 36px 32px; gap: 28px; }
  .login-right { padding: 40px 36px 32px; }
}
@media (max-width: 900px) {
  .login-page { grid-template-columns: 1fr; }
  .login-radar { width: 200vmin; height: 200vmin; opacity: 0.32; }
  .login-grid { inset: 0; mask-image: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 60%); -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 60%); }
  .login-left {
    order: 2;
    border-right: 0;
    border-top: 1px solid var(--b1);
    padding: 36px 24px 32px;
    gap: 28px;
    box-shadow: none;
  }
  .login-right {
    order: 1;
    padding: 56px 20px 32px;
  }
  .login-form-shell { padding: 28px 22px 26px; }
  .login-hero { max-width: none; }
  .login-signal-grid { grid-template-columns: 1fr 1fr; }
  .login-signal-card:nth-child(2) { border-right: 0; }
  .login-signal-card:last-child {
    grid-column: 1 / -1;
    border-top: 1px solid var(--b1);
  }
}
@media (max-width: 560px) {
  .login-left { padding: 32px 20px 28px; }
  .login-right { padding: 44px 16px 28px; }
  .login-form-shell { padding: 26px 18px 22px; border-radius: var(--r); }
  .login-signal-grid { grid-template-columns: 1fr; }
  .login-signal-card { border-right: 0; border-bottom: 1px solid var(--b1); }
  .login-signal-card:last-child { border-bottom: 0; border-top: 0; }
  .login-topbar { flex-direction: column; align-items: flex-start; gap: 12px; }
  .login-headline { font-size: clamp(36px, 10vw, 48px); }
  .login-portals-row { animation-duration: 45s; }
  .login-foot-build { margin-left: 0; }
}

/* Login v6 - operational command surface */
.login-command-shell {
  --login-panel: color-mix(in srgb, var(--s1) 86%, transparent);
}

.login-command-shell .login-left {
  justify-content: space-between;
}

.login-topbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.login-theme-toggle {
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s2) 72%, transparent);
  color: var(--t2);
  border-radius: 999px;
  height: 34px;
  padding: 0 4px;
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  font: 700 11px/1 var(--font);
  cursor: pointer;
}

.login-theme-toggle span {
  min-width: 42px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  transition: color 180ms var(--ease), background-color 180ms var(--ease);
}

[data-theme="dark"] .login-theme-toggle [data-theme-icon="dark"],
[data-theme="light"] .login-theme-toggle [data-theme-icon="light"] {
  color: var(--t1);
  background: var(--pink-dim);
}

.login-live-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: min(680px, 100%);
}

.login-live-card {
  min-height: 112px;
  display: grid;
  align-content: space-between;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--b1);
  background: linear-gradient(180deg, color-mix(in srgb, var(--s2) 84%, transparent), color-mix(in srgb, var(--s1) 78%, transparent));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), var(--sh-sm);
  border-radius: 10px;
}

.login-live-card-wide {
  grid-column: span 3;
  min-height: 78px;
  grid-template-columns: 1fr auto;
  align-items: center;
}

.login-stat-label {
  font: 700 11px/1 var(--font-mono);
  color: var(--t3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.login-stat-value {
  font: 800 clamp(24px, 4vw, 44px)/0.95 var(--font);
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}

.login-stat-date {
  font-size: clamp(18px, 2vw, 28px);
  color: var(--pink-hi);
}

.login-capability-grid {
  width: min(720px, 100%);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.login-capability-card {
  min-height: 136px;
  display: grid;
  align-content: space-between;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--b1);
  border-radius: 12px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--s2) 82%, transparent), color-mix(in srgb, var(--s1) 72%, transparent)),
    repeating-linear-gradient(90deg, transparent 0 18px, color-mix(in srgb, var(--pink) 8%, transparent) 18px 19px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), var(--sh-sm);
}

.login-capability-card span {
  font: 700 11px/1 var(--font-mono);
  color: var(--pink-hi);
  letter-spacing: 0.08em;
}

.login-capability-card strong {
  color: var(--t1);
  font: 800 15px/1.15 var(--font);
}

.login-capability-card p {
  margin: 0;
  color: var(--t3);
  font: 600 12px/1.45 var(--font);
}

.login-system-strip {
  width: min(720px, 100%);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.login-system-strip span {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--b1);
  border-radius: 999px;
  background: color-mix(in srgb, var(--s2) 62%, transparent);
  color: var(--t2);
  padding: 0 11px;
  font: 700 11px/1 var(--font);
}

.login-system-strip span::before {
  content: '';
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 2px;
  background: var(--pink);
  box-shadow: 0 0 12px var(--pink-glo);
}

.login-access-card {
  max-width: 460px;
}

.login-access-card .login-form-title {
  max-width: 360px;
}

.login-security-strip {
  display: grid;
  gap: 8px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--b1);
}

.login-security-strip span {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--t2);
  font: 600 12px/1.4 var(--font);
}

.login-security-strip span::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: var(--pink);
  box-shadow: 0 0 12px var(--pink-glo);
}

.login-access-card .login-legal-body {
  margin-top: 16px;
}

@media (hover: hover) and (pointer: fine) {
  .login-theme-toggle:hover,
  .login-live-card:hover,
  .login-capability-card:hover {
    border-color: var(--b2);
  }
}

@media (max-width: 760px) {
  .login-topbar-actions {
    width: 100%;
    justify-content: space-between;
  }

  .login-live-grid {
    grid-template-columns: 1fr 1fr;
  }

  .login-capability-grid {
    grid-template-columns: 1fr;
  }

  .login-live-card-wide {
    grid-column: span 2;
  }
}

@media (max-width: 480px) {
  .login-live-grid {
    grid-template-columns: 1fr;
  }

  .login-live-card-wide {
    grid-column: span 1;
    grid-template-columns: 1fr;
  }
}

/* ════════════════════════════════════════════════
   CRM PAGE
   ════════════════════════════════════════════════ */
.crm-page {
  background: var(--bg);
  min-height: 60vh;
}

.crm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 0 20px;
  border-bottom: 1px solid var(--b1);
  gap: 16px;
}
.crm-header-left { flex: 1; min-width: 0; }

.crm-title {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--t1);
  line-height: 1;
  margin-bottom: 4px;
}
.crm-subtitle { font-size: 13px; color: var(--t3); font-weight: 400; }

.crm-header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

.crm-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  border-radius: var(--r-sm);
  padding: 9px 16px;
  background: var(--pink);
  color: #fff;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.16s, transform 0.12s var(--ease), box-shadow 0.16s var(--ease);
  box-shadow: 0 1px 0 rgba(0,0,0,0.20) inset, 0 3px 12px var(--pink-glo);
}
.crm-add-btn:hover  { opacity: 0.90; transform: translateY(-1px); }
.crm-add-btn:active { transform: scale(0.97) !important; }

/* CRM KPI strip */
.crm-kpi-strip {
  display: flex;
  align-items: stretch;
  background: var(--s1);
  border: 1px solid var(--b1);
  border-radius: var(--r-sm);
  margin: 20px 0 16px;
  overflow: hidden;
}
.crm-kpi {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 28px;
  flex: 1;
}
.crm-kpi + .crm-kpi { border-left: 1px solid var(--b1); }
.crm-kpi-divider { width: 1px; background: var(--b1); flex-shrink: 0; align-self: stretch; }
.crm-kpi-value {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--t1);
  font-variant-numeric: tabular-nums;
}
.crm-kpi--won  .crm-kpi-value { color: var(--green); }
.crm-kpi--lost .crm-kpi-value { color: var(--t3); }
.crm-kpi-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--t3);
}

/* CRM Filters */
.crm-filters {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 10px 0 14px;
  flex-wrap: wrap;
}
.crm-search { flex: 1; min-width: 200px; }

/* CRM Board */
.crm-board {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 20px;
  align-items: flex-start;
  scrollbar-width: thin;
  scrollbar-color: var(--b2) transparent;
  min-height: 300px;
}
.crm-board::-webkit-scrollbar { height: 5px; }
.crm-board::-webkit-scrollbar-track { background: transparent; }
.crm-board::-webkit-scrollbar-thumb { background: var(--b2); border-radius: 4px; }

.crm-col {
  flex-shrink: 0;
  width: 280px;
  border-radius: var(--r-sm);
  border: 1px solid var(--b1);
  background: var(--s1);
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 320px);
  min-height: 120px;
  overflow: hidden;
}

.crm-col-header {
  padding: 12px 14px 10px;
  background: var(--s2);
  border-bottom: 1px solid var(--b1);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.crm-col-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--stage-color, var(--t1));
  letter-spacing: -0.01em;
  flex: 1;
}
.crm-col-desc {
  font-size: 11px;
  color: var(--t3);
  margin-top: 1px;
}
.crm-col-count {
  font-size: 11px;
  font-weight: 700;
  min-width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: color-mix(in srgb, var(--stage-color, var(--t3)) 15%, var(--s3));
  color: var(--stage-color, var(--t2));
  padding: 0 6px;
}

.crm-col-body {
  padding: 8px 8px;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  scrollbar-width: thin;
  scrollbar-color: var(--b1) transparent;
}
.crm-col-body::-webkit-scrollbar { width: 4px; }
.crm-col-body::-webkit-scrollbar-thumb { background: var(--b2); border-radius: 4px; }

.crm-col-body-drop {
  min-height: 40px;
  border: 2px dashed transparent;
  border-radius: 8px;
  transition: border-color 0.16s, background-color 0.16s;
  padding: 2px;
}
.crm-col-body-drop.drag-over {
  border-color: color-mix(in srgb, var(--stage-color, var(--pink)) 60%, transparent);
  background: color-mix(in srgb, var(--stage-color, var(--pink)) 5%, transparent);
}

/* CRM Cards */
.crm-card {
  background: var(--s2);
  border: 1px solid var(--b1);
  border-radius: var(--r-xs);
  padding: 12px 13px;
  cursor: pointer;
  transition: border-color 0.16s var(--ease), box-shadow 0.16s var(--ease), transform 0.14s var(--ease);
  user-select: none;
}
@media (hover: hover) and (pointer: fine) {
  .crm-card:hover {
    border-color: var(--b2);
    box-shadow: var(--sh-sm);
    transform: translateY(-1px);
  }
}
.crm-card:active { transform: scale(0.98); }

.crm-card-company {
  font-size: 13px;
  font-weight: 700;
  color: var(--t1);
  letter-spacing: -0.01em;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.crm-card-project {
  font-size: 11.5px;
  color: var(--t3);
  margin-bottom: 8px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.crm-card-chips {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.crm-card-chip {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 5px;
}
.crm-card-chip--industry { background: rgba(99,102,241,0.12); color: #818cf8; }
.crm-card-chip--deal     { background: var(--green-dim);       color: var(--green); }
.crm-card-chip--contact  { background: var(--s3); color: var(--t2); border: 1px solid var(--b1); }

.crm-card-next {
  font-size: 11px;
  color: var(--t3);
  margin-bottom: 6px;
  line-height: 1.4;
}

.crm-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  border-top: 1px solid var(--b1);
  padding-top: 7px;
  margin-top: 6px;
}
.crm-card-age { font-size: 10px; color: var(--t4); font-variant-numeric: tabular-nums; }

.crm-empty-lane {
  padding: 24px 16px;
  text-align: center;
  color: var(--t4);
  font-size: 12px;
  border: 1px dashed var(--b2);
  border-radius: 8px;
  margin: 4px;
}

/* CRM Table */
.crm-table-wrap { overflow-x: auto; margin-top: 8px; }
.crm-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--s1);
}
.crm-table th {
  padding: 10px 14px;
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--t3);
  border-bottom: 1px solid var(--b1);
  background: var(--s2);
  white-space: nowrap;
}
.crm-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--b1);
  color: var(--t2);
  vertical-align: middle;
}
.crm-row:hover td { background: var(--s2); }

/* ════════════════════════════════════════════════
   MODALS — CRM
   ════════════════════════════════════════════════ */
.crm-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn 0.18s var(--ease);
}
.crm-modal-overlay[hidden] { display: none; }

.crm-modal {
  background: var(--float);
  border: 1px solid var(--b2);
  border-radius: var(--r-lg);
  width: 700px;
  max-width: 100%;
  max-height: 90dvh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--sh-xl);
  overflow: hidden;
  animation: modalIn 0.22s var(--ease) both;
}
.crm-modal--sm { width: 440px; }
.crm-modal--resources { width: 580px; }

@keyframes modalIn {
  from { opacity: 0; transform: scale(0.96) translateY(6px); }
  to   { opacity: 1; transform: scale(1)    translateY(0); }
}

.crm-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--b1);
  background: var(--s2);
  flex-shrink: 0;
}
.crm-modal-title-group { display: flex; flex-direction: column; gap: 4px; }
.crm-modal-header h3   { font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: var(--t1); }

.crm-tender-banner {
  font-size: 12px;
  color: var(--t3);
  line-height: 1.4;
}

.crm-modal-body {
  padding: 20px 22px;
  overflow-y: auto;
  flex: 1;
  background: var(--float);
}

.crm-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.crm-form-group { display: flex; flex-direction: column; gap: 5px; }
.crm-form-group--full { grid-column: 1 / -1; }
.crm-form-group label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--t3); }

.crm-required { color: var(--pink); }

.crm-input, .crm-textarea {
  width: 100%;
  padding: 9px 13px;
  border-radius: var(--r-xs);
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t1);
  font-size: 13px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}
.crm-input:focus, .crm-textarea:focus {
  border-color: var(--bf);
  box-shadow: 0 0 0 3px var(--pink-dim);
}
.crm-input::placeholder, .crm-textarea::placeholder { color: var(--t4); }
.crm-textarea { resize: vertical; min-height: 80px; line-height: 1.5; }

.crm-select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.35)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  cursor: pointer;
}
[data-theme="light"] .crm-select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.crm-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--t3); }

.crm-section-heading {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t3);
  margin-bottom: 10px;
}

.crm-section { border-top: 1px solid var(--b1); padding-top: 16px; margin-top: 16px; }

/* Timeline */
.crm-timeline { border-top: 1px solid var(--b1); padding-top: 16px; margin-top: 16px; }
.crm-timeline-list { display: flex; flex-direction: column; gap: 8px; }
.crm-tl-entry {
  display: flex;
  gap: 10px;
  padding-left: 16px;
  border-left: 2px solid var(--b2);
  position: relative;
}
.crm-tl-dot {
  position: absolute;
  left: -5px;
  top: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--b2);
}
.crm-tl-stage { font-size: 13px; font-weight: 600; color: var(--t1); }
.crm-tl-meta  { font-size: 11px; color: var(--t3); margin-top: 2px; }
.crm-tl-note  { font-size: 12px; color: var(--t2); margin-top: 4px; padding: 6px 10px; background: var(--s2); border-radius: 6px; }

/* Doc list */
.crm-docs-section { border-top: 1px solid var(--b1); padding-top: 14px; margin-top: 14px; }
.crm-docs-header  { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.crm-doc-list     { display: flex; flex-direction: column; gap: 5px; }
.crm-doc-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--s2);
  border: 1px solid var(--b1);
}
.crm-doc-name { font-size: 13px; color: var(--t1); font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-doc-size { font-size: 11px; color: var(--t3); flex-shrink: 0; }
.crm-doc-del  { border: 0; background: none; color: var(--t3); cursor: pointer; padding: 2px 6px; border-radius: 4px; font-size: 14px; transition: color 0.16s, background-color 0.16s; }
.crm-doc-del:hover { color: var(--red); background: var(--red-dim); }

.crm-doc-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--b1);
  border-radius: 7px;
  padding: 5px 12px;
  background: var(--s2);
  color: var(--t2);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.16s var(--ease), color 0.16s, background-color 0.16s;
}
.crm-doc-upload-btn:hover { border-color: var(--b2); color: var(--t1); background: var(--s3); }

.crm-form-error { font-size: 12.5px; color: var(--red); padding: 8px 0 0; }

.crm-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--b1);
  margin-top: 18px;
}

.crm-cancel-btn {
  border: 1px solid var(--b1);
  border-radius: var(--r-xs);
  padding: 9px 16px;
  background: var(--s2);
  color: var(--t2);
  font-family: var(--font);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 140ms cubic-bezier(0.23,1,0.32,1),
              background-color 140ms cubic-bezier(0.23,1,0.32,1),
              transform 120ms cubic-bezier(0.23,1,0.32,1);
}
.crm-cancel-btn:hover  { border-color: var(--b2); background: var(--s3); }
.crm-cancel-btn:active { transform: scale(0.97); }

.crm-save-btn {
  border: 0;
  border-radius: var(--r-xs);
  padding: 9px 18px;
  background: var(--pink);
  color: #fff;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 140ms cubic-bezier(0.23,1,0.32,1),
              transform 120ms cubic-bezier(0.23,1,0.32,1),
              box-shadow 140ms cubic-bezier(0.23,1,0.32,1);
  box-shadow: 0 1px 0 rgba(0,0,0,0.2) inset;
}
.crm-save-btn:hover  { opacity: 0.88; }
.crm-save-btn:active { transform: scale(0.97); }

.crm-ft-tender-name {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.45;
  padding: 10px 13px;
  background: var(--s2);
  border-radius: 8px;
  border: 1px solid var(--b1);
  margin-bottom: 4px;
}

/* Resources modal */
.resources-section { margin-bottom: 20px; }
.resources-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.resources-team-list { display: flex; flex-direction: column; gap: 6px; }
.resources-team-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  background: var(--s2);
  border: 1px solid var(--b1);
}
.resources-team-name { font-size: 13px; color: var(--t1); font-weight: 500; flex: 1; }
.resources-team-role { font-size: 11px; color: var(--t3); }
.resources-team-notes { font-size: 11px; color: var(--t3); margin-left: auto; }
.resources-del { border: 0; background: none; color: var(--t3); cursor: pointer; padding: 2px 6px; border-radius: 4px; font-size: 14px; transition: color 0.16s, background-color 0.16s; }
.resources-del:hover { color: var(--red); background: var(--red-dim); }

.resources-add-form { display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--s2); border-radius: 10px; border: 1px solid var(--b1); margin-top: 8px; }
.resources-form-actions { display: flex; justify-content: flex-end; gap: 6px; }

/* ════════════════════════════════════════════════
   ADMIN / USER MODAL
   ════════════════════════════════════════════════ */
.user-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn 0.18s var(--ease);
}
.user-modal-overlay[hidden] { display: none; }

.user-modal {
  background: var(--float);
  border: 1px solid var(--b2);
  border-radius: var(--r-lg);
  width: 680px;
  max-width: 100%;
  max-height: 88dvh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--sh-xl);
  overflow: hidden;
  animation: modalIn 0.22s var(--ease) both;
}

.user-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--b1);
  background: var(--s2);
  flex-shrink: 0;
}
.user-modal-header h3 { font-size: 16px; font-weight: 700; letter-spacing: -0.02em; color: var(--t1); }

.admin-tabs {
  display: flex;
  gap: 0;
  padding: 0 22px;
  background: var(--s1);
  border-bottom: 1px solid var(--b1);
  flex-shrink: 0;
}

.admin-tab {
  border: 0;
  background: none;
  color: var(--t3);
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  padding: 11px 14px;
  border-bottom: 2px solid transparent;
  transition: color 0.16s var(--ease), border-color 0.16s var(--ease);
  margin-bottom: -1px;
  letter-spacing: -0.01em;
}
.admin-tab:hover { color: var(--t1); }
.admin-tab.active { color: var(--pink); border-bottom-color: var(--pink); }

.user-modal-body {
  padding: 20px 22px;
  overflow-y: auto;
  flex: 1;
  background: var(--float);
}

.admin-tab-panel[hidden] { display: none; }
.admin-tab-desc { font-size: 13px; color: var(--t3); margin-bottom: 16px; line-height: 1.5; }

/* ── User table ── */
.user-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.user-table th {
  padding: 6px 14px;
  text-align: left;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t4);
  border-bottom: 1px solid var(--b1);
}
.user-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--b1);
  vertical-align: middle;
}
.user-table tr:last-child td { border-bottom: 0; }
.ut-row:hover td { background: color-mix(in srgb, var(--s3) 40%, transparent); }

/* Identity cell */
.ut-identity { display: flex; align-items: center; gap: 10px; }
.ut-avatar {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--s3);
  border: 1px solid var(--b2);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  color: var(--t2);
  flex-shrink: 0;
  letter-spacing: 0.02em;
}
.ut-name-wrap { display: flex; flex-direction: column; gap: 3px; }
.ut-name-row { display: flex; align-items: center; gap: 6px; }
.ut-username { font-size: 13px; font-weight: 600; color: var(--t1); }
.ut-you {
  font-size: 10px; font-weight: 600;
  padding: 1px 7px; border-radius: 980px;
  background: var(--pink-dim); color: var(--pink);
  letter-spacing: 0.03em;
}
.ut-meta-row { display: flex; align-items: center; gap: 5px; }
.ut-role-badge {
  font-size: 10px; font-weight: 600; letter-spacing: 0.04em;
  padding: 1px 7px; border-radius: 4px;
  text-transform: uppercase;
  background: var(--s3); color: var(--t3); border: 1px solid var(--b2);
}
.ut-role-badge--master { background: color-mix(in srgb, var(--pink) 12%, transparent); color: var(--pink); border-color: color-mix(in srgb, var(--pink) 22%, transparent); }
.ut-org {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 10px; font-weight: 600; letter-spacing: 0.04em;
  padding: 1px 7px; border-radius: 4px;
  text-transform: uppercase;
  white-space: nowrap;
}
.ut-org-clickable { cursor: pointer; transition: opacity 120ms; }
.ut-org-clickable:hover { opacity: 0.75; }
.ut-org--evrim { background: color-mix(in srgb, var(--pink) 12%, transparent); color: var(--pink); border: 1px solid color-mix(in srgb, var(--pink) 22%, transparent); }
.ut-org--ais   { background: color-mix(in srgb, #3b82f6 12%, transparent); color: #60a5fa; border: 1px solid color-mix(in srgb, #3b82f6 22%, transparent); }

/* Inline org/office edit */
.ut-org-edit-row { display: flex; align-items: center; gap: 5px; margin-top: 3px; flex-wrap: wrap; }
.ut-inline-select {
  appearance: none; -webkit-appearance: none;
  background: var(--s2); border: 1px solid var(--b2);
  border-radius: 6px; color: var(--t2);
  font-family: var(--font); font-size: 11px; font-weight: 600;
  padding: 3px 10px; cursor: pointer; outline: none;
  transition: border-color 100ms;
}
.ut-inline-select:focus { border-color: var(--pink); }
.ut-inline-save {
  font-family: var(--font); font-size: 11px; font-weight: 600;
  padding: 3px 10px; border-radius: 6px; cursor: pointer;
  background: var(--pink); color: #fff; border: none;
  transition: opacity 100ms;
}
.ut-inline-save:hover { opacity: 0.85; }
.ut-inline-cancel {
  font-family: var(--font); font-size: 11px; font-weight: 600;
  padding: 3px 8px; border-radius: 6px; cursor: pointer;
  background: transparent; color: var(--t4);
  border: 1px solid var(--b2);
  transition: color 100ms, border-color 100ms;
}
.ut-inline-cancel:hover { color: var(--t2); border-color: var(--b3); }

.ut-date { font-size: 12px; color: var(--t3); white-space: nowrap; }
.ut-na { color: var(--t4); font-size: 13px; }

/* Actions cell */
.ut-actions { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; }

/* Role select */
.ut-role-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.ut-role-select {
  appearance: none; -webkit-appearance: none;
  background: var(--s2); border: 1px solid var(--b2);
  border-radius: 8px; color: var(--t2);
  font-family: var(--font); font-size: 12px; font-weight: 600;
  padding: 5px 28px 5px 10px;
  cursor: pointer; outline: none;
  transition: border-color 120ms, background 120ms;
}
.ut-role-select:hover { border-color: var(--b3, var(--t4)); background: var(--s3); }
.ut-role-select:focus { border-color: var(--pink); box-shadow: 0 0 0 3px var(--pink-dim); }
.ut-role-chevron {
  position: absolute; right: 8px;
  pointer-events: none; color: var(--t3);
}

/* Password reset button */
.ut-pw-btn {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid var(--b2); border-radius: 8px;
  background: var(--s2); color: var(--t2);
  font-family: var(--font); font-size: 12px; font-weight: 600;
  padding: 5px 11px; cursor: pointer;
  transition: border-color 120ms, background 120ms, transform 110ms;
  white-space: nowrap;
}
.ut-pw-btn:hover { border-color: var(--t3); background: var(--s3); color: var(--t1); }
.ut-pw-btn:active { transform: scale(0.96); }

/* Delete button */
.ut-del-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; flex-shrink: 0;
  border: 1px solid var(--b1); border-radius: 8px;
  background: transparent; color: var(--t4);
  cursor: pointer;
  transition: border-color 120ms, background 120ms, color 120ms, transform 110ms;
}
.ut-del-btn:hover { border-color: rgba(239,68,68,0.4); background: var(--red-dim); color: var(--red); }
.ut-del-btn:active { transform: scale(0.94); }

/* Org/office badge in user table — legacy alias */
.ut-badges { display: flex; align-items: center; gap: 5px; margin-top: 2px; }

/* CRM pool badge on cards */
.crm-card-pool-row { display: flex; align-items: center; gap: 6px; margin: 4px 0 2px; }
.crm-pool-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 600; letter-spacing: 0.02em;
  padding: 2px 7px; border-radius: 4px;
  text-transform: uppercase; user-select: none;
}
.crm-pool-badge--private {
  background: color-mix(in srgb, #a78bfa 12%, transparent);
  color: #a78bfa;
  border: 1px solid color-mix(in srgb, #a78bfa 22%, transparent);
}
.crm-pool-badge--common {
  background: color-mix(in srgb, #34d399 12%, transparent);
  color: #34d399;
  border: 1px solid color-mix(in srgb, #34d399 22%, transparent);
}

/* "Share to Common" promote button on private cards */
.crm-card-promote-btn {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 500;
  padding: 2px 8px; border-radius: 4px;
  border: 1px solid color-mix(in srgb, #34d399 25%, transparent);
  background: color-mix(in srgb, #34d399 8%, transparent);
  color: #34d399; cursor: pointer;
  transition: background 120ms, border-color 120ms, transform 110ms;
}
.crm-card-promote-btn:hover { background: color-mix(in srgb, #34d399 16%, transparent); border-color: color-mix(in srgb, #34d399 40%, transparent); }
.crm-card-promote-btn:active { transform: scale(0.95); }

.user-add-form {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--b1);
}
.user-add-form h4 {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--t3);
  margin-bottom: 10px;
}

.user-add-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.user-add-input, .user-add-select {
  flex: 1;
  min-width: 120px;
  padding: 8px 12px;
  border-radius: var(--r-xs);
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t1);
  font-size: 13px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}
.user-add-input:focus, .user-add-select:focus {
  border-color: var(--bf);
  box-shadow: 0 0 0 3px var(--pink-dim);
}
.user-add-input::placeholder { color: var(--t4); }
.user-add-select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(238,238,248,0.35)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  cursor: pointer;
  padding-right: 28px;
}
[data-theme="light"] .user-add-select {
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(17,17,24,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.user-add-btn {
  border: 0;
  border-radius: var(--r-xs);
  padding: 8px 16px;
  background: var(--pink);
  color: #fff;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.16s, transform 0.12s var(--ease);
  white-space: nowrap;
}
.user-add-btn:hover  { opacity: 0.90; }
.user-add-btn:active { transform: scale(0.97); }

.user-form-error { font-size: 12px; color: var(--red); padding-top: 8px; }

/* Permissions cards */
.perms-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.perms-card {
  background: var(--s1);
  border: 1px solid var(--b1);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.perms-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  background: var(--s2);
  border-bottom: 1px solid var(--b1);
}
.perms-card-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--pink-dim);
  color: var(--pink);
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.perms-card-info { flex: 1; min-width: 0; }
.perms-card-name { font-size: 13px; font-weight: 700; color: var(--t1); letter-spacing: -0.01em; }
.perms-card-role { font-size: 11px; color: var(--t3); margin-top: 1px; }
.perms-card-access {
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  max-width: 100%;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t2);
  font-size: 10.75px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.perms-card-access--evrim {
  border-color: rgba(239,68,68,0.18);
  background: rgba(239,68,68,0.08);
  color: #fca5a5;
}
.perms-card-access--ais {
  border-color: rgba(96,165,250,0.18);
  background: rgba(96,165,250,0.08);
  color: #93c5fd;
}
.perms-card-access--muted {
  border-color: rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t3);
}
.perms-card-access--full {
  border-color: rgba(232,4,126,0.2);
  background: rgba(232,4,126,0.08);
  color: #f9a8d4;
}

.perms-card-body {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.perms-groups {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.perms-group {
  padding: 12px 14px;
  border-right: 1px solid var(--b1);
}
.perms-group:last-child { border-right: 0; }
.perms-group-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t3);
  margin-bottom: 8px;
}

.perms-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
}
.perms-row-label {
  font-size: 12px;
  color: var(--t2);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Toggle switch */
.perm-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
}
.perm-switch input { position: absolute; opacity: 0; width: 0; height: 0; }

.perm-switch-track {
  width: 30px;
  height: 17px;
  border-radius: 9px;
  background: var(--s3);
  border: 1px solid var(--b2);
  transition: background-color 0.18s var(--ease), border-color 0.18s var(--ease);
}
.perm-switch input:checked ~ .perm-switch-track {
  background: var(--pink);
  border-color: var(--pink);
}

.perm-switch-thumb {
  position: absolute;
  left: 3px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  transition: transform 0.18s var(--ease);
  pointer-events: none;
  opacity: 0.5;
}
.perm-switch input:checked ~ .perm-switch-thumb {
  transform: translateX(13px);
  opacity: 1;
}

/* Perms table (legacy) */
.perms-table { display: none; }
.perms-user-name { color: var(--t1); }
.perms-user-role { color: var(--t3); }

/* ════════════════════════════════════════════════
   DOCUMENT PREVIEW MODAL
   ════════════════════════════════════════════════ */
.preview-overlay {
  position: fixed;
  inset: 0;
  z-index: 300;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fadeIn 0.18s var(--ease);
}
.preview-overlay[hidden] { display: none; }

.preview-chrome {
  background: var(--float);
  border: 1px solid var(--b2);
  border-radius: var(--r-lg);
  width: 860px;
  max-width: 100%;
  height: 80dvh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--sh-xl);
  overflow: hidden;
  animation: modalIn 0.22s var(--ease) both;
}
.preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--b1);
  background: var(--s2);
  flex-shrink: 0;
  gap: 12px;
}
.preview-title { font-size: 13px; font-weight: 600; color: var(--t1); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.preview-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.preview-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--b1);
  border-radius: 7px;
  padding: 5px 11px;
  background: var(--s1);
  color: var(--t2);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.16s, color 0.16s;
}
.preview-download-btn:hover { border-color: var(--b2); color: var(--t1); }

.preview-close-btn {
  border: 0;
  background: none;
  color: var(--t3);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 7px;
  transition: color 0.16s, background-color 0.16s;
}
.preview-close-btn:hover { background: var(--s3); color: var(--t1); }

.preview-body {
  flex: 1;
  overflow: auto;
  padding: 20px;
  color: var(--t2);
  font-size: 14px;
  line-height: 1.6;
}
.preview-body iframe { width: 100%; height: 100%; border: 0; }

/* ════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════ */
@media (max-width: 768px) {
  #app { padding: 0 16px 40px; }

  .user-bar, .page-tabs, .filters-bar { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }

  .hero-top { flex-direction: column; align-items: flex-start; gap: 12px; }
  .hero-title { font-size: 22px; }

  .kpi { padding: 12px 18px; }
  .kpi-value { font-size: 22px; }
  .kpi-strip { flex-direction: column; gap: 0; }
  .kpi-divider { width: auto; height: 1px; }

  .crm-kpi-strip { flex-direction: column; }
  .crm-kpi + .crm-kpi { border-left: 0; border-top: 1px solid var(--b1); }

  .tc-main { padding: 12px 14px 10px; }
  .tc-header-row { flex-wrap: wrap; }
  .tc-details { grid-template-columns: 1fr 1fr; }
  .tc-footer { padding: 7px 14px 9px; flex-wrap: wrap; }
  .tc-footer-right { flex-wrap: wrap; }
  .tc-links { flex-wrap: wrap; }

  .sources-grid { grid-template-columns: 1fr; }
  .section-header h2 { font-size: 20px; }
  .user-bar-actions { gap: 2px; }

  .crm-modal, .user-modal { border-radius: var(--r-sm); }
  .crm-form-grid { grid-template-columns: 1fr; }
  .perms-groups { grid-template-columns: 1fr; }
  .perms-group { border-right: 0; border-bottom: 1px solid var(--b1); }
  .perms-group:last-child { border-bottom: 0; }

  .crm-header { flex-direction: column; align-items: flex-start; }
  .crm-filters { flex-direction: column; align-items: stretch; }
  .crm-search { min-width: auto; }

  .results-bar { flex-wrap: wrap; gap: 6px; }
  .results-bar-right { gap: 5px; }
}

@media (max-width: 480px) {
  .kpi { padding: 10px 14px; }
  .kpi-value { font-size: 20px; }
  .hero-title { font-size: 20px; }
  .tc-title { font-size: 14px; }
}

/* ════════════════════════════════════════════════
   WOW FACTOR v1 — Visual elevation layer
   ════════════════════════════════════════════════ */

/* ── Fix: KPI stacks only on very small screens ── */
@media (max-width: 580px) {
  .kpi-strip { flex-direction: column; }
  .kpi-divider { width: auto !important; height: 1px !important; }
  .kpi { padding: 12px 18px; }
  .kpi-value { font-size: 22px; }
}

/* ── Hero: bigger typographic presence ── */
.hero {
  padding: 36px 0 32px;
}

.hero-title {
  font-size: 36px;
  font-weight: 900;
  background: linear-gradient(135deg, var(--t1) 40%, rgba(238,238,248,0.55));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Pink accent on first KPI number (tender count) */
.kpi:first-child .kpi-value { color: var(--pink); }

/* KPI strip: left border accent on first cell */
.kpi:first-child { border-left: 3px solid var(--pink); }

/* KPI strip baseline shadow */
.kpi-strip {
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
}

/* ── Tender cards: richer hover, cleaner structure ── */
.tender-card {
  background: var(--s1);
  border-radius: 12px;
}
@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: rgba(232,4,126,0.2);
    background: var(--s2);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.4), 0 0 0 1px rgba(232,4,126,0.1);
  }
}

/* Title slightly larger */
.tc-title { font-size: 15px; }

/* Score badge: bigger, more impactful */
.score-badge {
  width: 36px;
  height: 36px;
  font-size: 12px;
  font-weight: 800;
}

/* ── Filters bar: slightly more visual weight ── */
.filters-bar {
  box-shadow: 0 4px 20px rgba(0,0,0,0.25);
}

/* Search input: full contrast on dark */
.search-field input {
  background: var(--s2);
  border-color: var(--b2);
}

/* ── "NEW" badge on tender cards ── */
.tc-new-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 5px;
  background: var(--green-dim);
  color: var(--green);
  margin-right: 6px;
  vertical-align: middle;
  animation: pulseNew 2.4s ease-in-out infinite;
}
@keyframes pulseNew {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}

/* ── Page tabs: subtle background on active ── */
.page-tab.active {
  color: var(--pink);
  border-bottom-color: var(--pink);
}
.page-tab {
  position: relative;
  transition: color 0.16s var(--ease), border-color 0.16s var(--ease);
}

/* ── User bar avatar: elevated ── */
.user-avatar {
  background: var(--s2);
  border-color: var(--b2);
}

/* ── Source cards: status dot pulse ── */
.src-dot.ok {
  animation: dotPulse 3s ease-in-out infinite;
}
@keyframes dotPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(46,204,110,0); }
  50%       { box-shadow: 0 0 0 4px rgba(46,204,110,0.18); }
}

/* ── CRM title (overridden below) ── */

/* ── KPI strip: no vertical stacking on tablets ── */
@media (min-width: 581px) {
  .kpi-strip { flex-direction: row; }
  .kpi-divider { width: 1px; height: auto; align-self: stretch; }
  .kpi { padding: 18px 28px; flex: 1; }
  .crm-kpi-strip { flex-direction: row; }
  .crm-kpi + .crm-kpi { border-left: 1px solid var(--b1); border-top: 0; }
  .crm-kpi { flex: 1; padding: 16px 28px; }
}

/* ── Light mode: hero title ── */
[data-theme="light"] .hero-title {
  background: linear-gradient(135deg, #111118 40%, rgba(17,17,24,0.5));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-theme="light"] .kpi:first-child .kpi-value { color: var(--pink); }
[data-theme="light"] .tender-card { background: var(--s1); }
[data-theme="light"] .search-field input {
  background: var(--s1);
  border-color: var(--b1);
}

/* ── Verified pill ── */
.verified-pill {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 980px;
  color: var(--green);
  background: var(--green-dim);
  letter-spacing: 0.01em;
}

/* ════════════════════════════════════════════════
   REDESIGN v2 — Premium Visual Overhaul
   Three separate KPI cards, dramatic typography
   ════════════════════════════════════════════════ */

/* ── Background: subtle dot grid ── */
html {
  background-image: radial-gradient(rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 28px 28px;
}
[data-theme="light"] html {
  background-image: radial-gradient(rgba(0,0,0,0.04) 1px, transparent 1px);
}

/* ── Hero: more presence ── */
.hero {
  padding: 40px 0 0;
  border-bottom: none;
  margin-bottom: 0;
}

.hero-top {
  margin-bottom: 0;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--b1);
}

.evrim-wordmark {
  font-size: 10px;
  letter-spacing: 0.28em;
  color: var(--t4);
  font-weight: 500;
}

.hero-divider-dot {
  background: var(--t4);
  width: 4px;
  height: 4px;
}

.hero-title {
  font-size: 42px;
  font-weight: 900;
  letter-spacing: -0.05em;
  background: linear-gradient(160deg, #ffffff 30%, rgba(238,238,248,0.45));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

[data-theme="light"] .hero-title {
  background: linear-gradient(160deg, #0a0a12 30%, rgba(17,17,24,0.45));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── KPI: three separate floating cards ── */
.kpi-strip {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 24px 0 0 !important;
  margin-bottom: 0;
  border-radius: 0 !important;
  overflow: visible !important;
}

.kpi-divider { display: none !important; }

.kpi {
  flex: 1;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  padding: 22px 24px !important;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  border-left: none !important;
  position: relative;
  overflow: hidden;
  transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease);
}

/* Top accent bar per card */
.kpi::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  width: auto !important;
  height: 2px !important;
  background: var(--b2) !important;
  border-radius: 0 !important;
  opacity: 1 !important;
}
.kpi:first-child::before  { background: var(--pink) !important; }
.kpi:nth-child(3)::before { background: var(--blue) !important; }
.kpi:nth-child(5)::before { background: var(--green) !important; }

/* No card accent for card already using ::before for stripe */
.kpi:first-child { border-left: none !important; }

.kpi-value {
  font-size: 44px !important;
  font-weight: 900 !important;
  letter-spacing: -0.06em !important;
  line-height: 1 !important;
  color: var(--t1) !important;
}
.kpi:first-child .kpi-value { color: var(--pink) !important; }

.kpi-value--small {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--t2) !important;
  letter-spacing: -0.02em !important;
}

.kpi-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  color: var(--t4) !important;
}

/* ── Filters: more defined ── */
.filters-bar {
  margin-top: 20px;
  border-radius: 0;
  background: var(--glass) !important;
}

.search-field input {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  padding: 10px 14px 10px 36px;
  font-size: 13.5px;
  border-radius: 10px;
}

/* ── Tender cards: bolder left stripe, richer hover ── */
.tender-card {
  border-radius: 12px;
  background: var(--s1) !important;
}
.tender-card::before { width: 3px !important; border-radius: 12px 0 0 12px !important; }

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    background: var(--s2) !important;
    border-color: rgba(232,4,126,0.18) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(232,4,126,0.08) !important;
  }
}

.tc-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* Score badge bigger */
.score-badge {
  width: 36px;
  height: 36px;
  font-size: 12px;
  font-weight: 800;
  border-width: 2px;
}

/* ── CRM: title ── */
.crm-title {
  font-size: 36px !important;
  font-weight: 900 !important;
  letter-spacing: -0.05em !important;
  color: var(--t1) !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  -webkit-text-fill-color: unset !important;
  background-clip: unset !important;
}

/* ── Add to CRM button on tender cards ── */
.tc-crm-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--b2);
  border-radius: 6px;
  padding: 5px 10px;
  background: transparent;
  color: var(--t3);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.14s, color 0.14s, background 0.14s, transform 0.1s var(--ease);
  white-space: nowrap;
}
.tc-crm-btn:hover {
  border-color: var(--pink);
  color: var(--pink);
  background: var(--pink-dim);
}
.tc-crm-btn:active { transform: scale(0.96); }
.tc-crm-btn--added {
  border-color: var(--green);
  color: var(--green);
  background: var(--green-dim);
  cursor: default;
}
.tc-crm-btn--added:hover {
  border-color: var(--green);
  color: var(--green);
  background: var(--green-dim);
}

/* CRM KPI: same card treatment */
.crm-kpi-strip {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 20px 0 !important;
  overflow: visible !important;
}
.crm-kpi-divider { display: none !important; }
.crm-kpi {
  flex: 1;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  padding: 20px 24px !important;
  flex-direction: column !important;
  position: relative;
  overflow: hidden;
}
.crm-kpi + .crm-kpi { border-left: 1px solid var(--b1) !important; border-top: none !important; }

.crm-kpi-value {
  font-size: 40px !important;
  font-weight: 900 !important;
  letter-spacing: -0.06em !important;
  line-height: 1 !important;
  color: var(--t1) !important;
}
.crm-kpi--won .crm-kpi-value  { color: var(--green) !important; }
.crm-kpi--lost .crm-kpi-value { color: var(--t3) !important; }

.crm-kpi-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  color: var(--t4) !important;
}

/* ── Light mode KPI cards ── */
[data-theme="light"] .kpi  { background: #fff !important; box-shadow: 0 1px 6px rgba(0,0,0,0.07) !important; }
[data-theme="light"] .crm-kpi { background: #fff !important; box-shadow: 0 1px 6px rgba(0,0,0,0.07) !important; }
[data-theme="light"] .tender-card { background: #fff !important; box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important; }
[data-theme="light"] .kpi-value { color: var(--t1) !important; }
[data-theme="light"] .kpi:first-child .kpi-value { color: var(--pink) !important; }

/* ── Mobile: stack KPI cards ── */
@media (max-width: 600px) {
  .kpi-strip, .crm-kpi-strip { flex-direction: column !important; gap: 8px !important; }
  .kpi, .crm-kpi { padding: 16px 18px !important; }
  .kpi-value { font-size: 32px !important; }
  .crm-kpi-value { font-size: 32px !important; }
}

/* ── Page-tabs: slightly taller ── */
.page-tab { padding: 14px 18px; }

/* ── Refresh button: slightly more air ── */
.refresh-btn { padding: 10px 20px; }

/* ════════════════════════════════════════════════
   PREMIUM OVERHAUL v4 — Logo · Tender Cards · CRM
   ════════════════════════════════════════════════ */

/* ── Evrim logomark — three equal-height blocks, grey→rose→pink ── */
.evrim-logomark {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
}
.evrim-bar {
  display: block;
  width: 14px;
  height: 8px;
  border-radius: 2px;
}
.evrim-bar--1 { background: rgba(255,255,255,0.22); }
.evrim-bar--2 { background: rgba(232,4,126,0.55); }
.evrim-bar--3 { background: var(--pink-hi); }

[data-theme="light"] .evrim-bar--1 { background: rgba(0,0,0,0.18); }

.hero-brand {
  display: flex;
  align-items: center;
  gap: 16px;
}
.hero-brand-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.evrim-wordmark {
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.32em !important;
  color: var(--pink) !important;
  text-transform: uppercase;
  line-height: 1;
}
.hero-title {
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
  color: var(--t1) !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  -webkit-text-fill-color: unset !important;
  background-clip: unset !important;
}

/* ── User bar logo ── */
.user-bar {
  padding: 0 32px;
  height: 48px;
}

/* ── Page tabs — elevated active indicator ── */
.page-tab {
  padding: 16px 20px !important;
  font-size: 12.5px !important;
  letter-spacing: -0.01em;
}
.page-tab.active {
  color: var(--t1) !important;
  border-bottom-color: var(--pink) !important;
}
.page-tab:not(.active):hover { color: var(--t2) !important; }

/* ══════════════════════════════════════
   TENDER CARD — Full redesign
   ══════════════════════════════════════ */
.tender-card {
  border-radius: 12px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s1) !important;
  overflow: hidden !important;
  position: relative !important;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.16s var(--ease) !important;
}

/* Top accent bar (replaces left stripe) */
.tender-card::before {
  content: '' !important;
  position: absolute !important;
  top: 0; left: 0; right: 0 !important;
  bottom: auto !important;
  width: auto !important;
  height: 2px !important;
  border-radius: 0 !important;
  background: var(--b1) !important;
  transition: background 0.2s !important;
}
.tender-card--urgent::before { background: var(--red) !important; }
.tender-card--soon::before   { background: var(--orange) !important; }
.tender-card--normal::before { background: var(--green) !important; opacity: 1 !important; }

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b3) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
  }
  .tender-card--urgent:hover  { box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(239,68,68,0.15) !important; }
  .tender-card--soon:hover    { box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(245,158,11,0.15) !important; }
  .tender-card--normal:hover  { box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(46,204,110,0.12) !important; }
}

[data-theme="light"] .tender-card { background: #fff !important; }
[data-theme="light"] .tender-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important; }

.tc-main {
  padding: 20px 22px 14px !important;
  gap: 16px !important;
}

/* Title — bigger, tighter */
.tc-title {
  font-size: 15.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.35 !important;
  margin-bottom: 6px !important;
  color: var(--t1) !important;
}

/* Organization — cleaner chip */
.tc-org {
  font-size: 11px !important;
  color: var(--t3) !important;
}

/* Meta line — slightly more visible */
.tc-meta-line {
  font-size: 10px !important;
  color: var(--t4) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* AI summary — glass panel */
.tc-ai-summary {
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--t2) !important;
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid var(--b1) !important;
  border-left: 2px solid var(--pink) !important;
  border-radius: 8px !important;
  padding: 9px 12px !important;
  margin-top: 10px !important;
}
[data-theme="light"] .tc-ai-summary { background: rgba(0,0,0,0.02) !important; }

/* Score badge — bigger presence */
.score-badge {
  width: 40px !important;
  height: 40px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  border-width: 2px !important;
  letter-spacing: -0.02em !important;
}
.score-badge.high { box-shadow: 0 0 12px var(--green-dim) !important; }
.score-badge.mid  { box-shadow: 0 0 12px var(--pink-dim) !important; }

/* Footer bar */
.tc-footer {
  padding: 10px 22px 12px !important;
  border-top: 1px solid var(--b1) !important;
  background: rgba(0,0,0,0.12) !important;
}
[data-theme="light"] .tc-footer { background: rgba(0,0,0,0.02) !important; }

/* Deadline badge */
.tc-deadline-inline {
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 4px 10px !important;
  border-radius: 8px !important;
  gap: 5px !important;
}

/* Footer buttons — more refined */
.tc-expand-btn {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--t3) !important;
  padding: 5px 10px !important;
  border-radius: 7px !important;
  border: 1px solid var(--b1) !important;
  background: transparent !important;
  transition: color 0.14s, border-color 0.14s, background 0.14s, transform 0.1s var(--ease) !important;
}
.tc-expand-btn:hover { color: var(--t1) !important; border-color: var(--b2) !important; background: var(--s2) !important; }
.tc-expand-btn:active { transform: scale(0.96) !important; }

/* Details grid */
.tc-details {
  border-top: 1px solid var(--b1) !important;
  background: rgba(0,0,0,0.14) !important;
}
[data-theme="light"] .tc-details { background: rgba(0,0,0,0.02) !important; }

/* Tender list gap */
.tender-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* ══════════════════════════════════════
   CRM KANBAN — Full redesign
   ══════════════════════════════════════ */
.crm-board {
  padding-top: 4px !important;
  gap: 12px !important;
}

.crm-col {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  width: 288px !important;
  overflow: hidden !important;
  position: relative !important;
}

/* Stage top accent */
.crm-col::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--stage-color, var(--b2));
  border-radius: 0;
}

.crm-col-header {
  background: transparent !important;
  padding: 18px 16px 14px !important;
  border-bottom: 1px solid var(--b1) !important;
}

.crm-col-label {
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--stage-color, var(--t2)) !important;
}

.crm-col-desc {
  font-size: 10.5px !important;
  color: var(--t4) !important;
  margin-top: 2px !important;
}

.crm-col-count {
  font-size: 12px !important;
  font-weight: 800 !important;
  color: var(--stage-color, var(--t3)) !important;
  background: color-mix(in srgb, var(--stage-color, transparent) 10%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--stage-color, var(--b1)) 25%, transparent) !important;
  border-radius: 6px !important;
  padding: 2px 8px !important;
  min-width: auto !important;
}

.crm-col-body {
  padding: 10px !important;
  gap: 8px !important;
  display: flex !important;
  flex-direction: column !important;
}

/* CRM cards */
.crm-card {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 10px !important;
  border-left: 3px solid var(--stage-color, var(--b2)) !important;
  transition: border-color 0.16s, box-shadow 0.16s, transform 0.12s var(--ease) !important;
}
.crm-card:hover {
  border-color: var(--b2) !important;
  border-left-color: var(--stage-color, var(--pink)) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.35) !important;
  transform: translateY(-1px) !important;
}
[data-theme="light"] .crm-card { background: #fff !important; }

/* CRM title */
.crm-title {
  font-size: 28px !important;
  font-weight: 900 !important;
  letter-spacing: -0.04em !important;
  color: var(--t1) !important;
  background: none !important;
  -webkit-text-fill-color: unset !important;
  line-height: 1 !important;
}

/* CRM subtitle more visible */
.crm-subtitle {
  font-size: 12px !important;
  color: var(--t3) !important;
  margin-top: 3px !important;
}

/* CRM add button — stronger presence */
.crm-add-btn {
  padding: 10px 18px !important;
  font-size: 13px !important;
  border-radius: var(--r-sm) !important;
  box-shadow: 0 2px 16px var(--pink-glo) !important;
}

/* Empty lane */
.crm-empty-lane {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 28px 16px !important;
  color: var(--t4) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

/* Legacy login override block removed — canonical styles live in the
   "LOGIN PAGE — v4 (asymmetric signal)" block earlier in this file. */

/* ════════════════════════════════════════
   SKELETON LOADERS + STAGGER ANIMATIONS
   ════════════════════════════════════════ */
@keyframes shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position: 600px 0; }
}
@keyframes cardIn {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

.tender-card--skeleton {
  pointer-events: none;
  padding: 18px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  animation: cardIn 0.28s cubic-bezier(0.23,1,0.32,1) both !important;
}

.sk-block {
  border-radius: 6px;
  background: linear-gradient(
    90deg,
    var(--s2) 0%, var(--s3) 40%, var(--s2) 100%
  );
  background-size: 600px 100%;
  animation: shimmer 1.4s ease-in-out infinite;
}

.sk-row { display: flex; gap: 8px; align-items: center; }
.sk-row--chips { gap: 6px; flex-wrap: wrap; }
.sk-tag  { height: 18px; width: 80px; border-radius: 4px; }
.sk-tag--sm { width: 50px; }
.sk-title { height: 20px; width: 75%; border-radius: 6px; }
.sk-line  { height: 13px; width: 90%; border-radius: 4px; }
.sk-line--short { width: 55%; }
.sk-chip  { height: 22px; width: 70px; border-radius: 980px; }
.sk-chip--sm { width: 50px; }

/* ════════════════════════════════════════
   CRM INLINE EDITING
   ════════════════════════════════════════ */
.crm-card-pri-btn {
  font-size: 10px; font-weight: 700;
  font-family: var(--font);
  padding: 3px 8px; border-radius: 6px;
  border: 1px solid var(--b2);
  background: transparent; cursor: pointer;
  color: var(--t3);
  transition: all 0.12s var(--ease);
  white-space: nowrap; flex-shrink: 0;
  letter-spacing: 0.02em;
}
.crm-card-pri-btn:hover { border-color: var(--t3); color: var(--t2); }
.crm-card-pri-btn--high { background: rgba(239,68,68,0.12); border-color: rgba(239,68,68,0.35); color: #f87171; }
.crm-card-pri-btn--high:hover { background: rgba(239,68,68,0.2); }
.crm-card-pri-btn--medium { background: rgba(251,146,60,0.12); border-color: rgba(251,146,60,0.35); color: #fb923c; }
.crm-card-pri-btn--medium:hover { background: rgba(251,146,60,0.2); }
.crm-card-pri-btn--low { background: rgba(96,165,250,0.12); border-color: rgba(96,165,250,0.35); color: #60a5fa; }
.crm-card-pri-btn--low:hover { background: rgba(96,165,250,0.2); }
.crm-card-pri-btn:active { transform: scale(0.94); }

.crm-card-next--editable {
  cursor: text;
  border-radius: 6px;
  padding: 4px 6px;
  margin: 0 -6px;
  transition: background 0.12s;
}
.crm-card-next--editable:hover { background: var(--s3); }

.crm-next-inline-input {
  width: 100%; background: var(--s1);
  border: 1px solid var(--pink);
  border-radius: 6px; padding: 4px 8px;
  font-family: var(--font); font-size: 11px;
  color: var(--t1); outline: none;
  box-shadow: 0 0 0 3px var(--pink-dim);
}

/* ════════════════════════════════════════
   CHANGE PASSWORD MODAL
   ════════════════════════════════════════ */
.cpw-overlay {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  animation: cpwBackdropIn 0.12s ease-out both;
}
@keyframes cpwBackdropIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.cpw-modal {
  background: var(--s2);
  border: 1px solid var(--b2);
  border-radius: 16px;
  width: 100%; max-width: 420px;
  animation: cpwModalIn 0.22s cubic-bezier(0.23,1,0.32,1) both;
}
@keyframes cpwModalIn {
  from { opacity: 0; transform: scale(0.95) translateY(12px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.cpw-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--b1);
}
.cpw-title {
  font-size: 16px; font-weight: 700;
  letter-spacing: -0.02em; color: var(--t1);
}
.cpw-title span { color: var(--pink); }
.cpw-body { padding: 20px 24px; display: flex; flex-direction: column; gap: 14px; }
.cpw-field { display: flex; flex-direction: column; gap: 6px; }
.cpw-label {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--t3);
}
.cpw-input {
  width: 100%;
  background: var(--s1);
  border: 1px solid var(--b2);
  border-radius: 10px;
  padding: 10px 14px;
  font-family: var(--font); font-size: 14px;
  color: var(--t1);
  transition: border-color 110ms cubic-bezier(0.23,1,0.32,1),
              box-shadow 90ms cubic-bezier(0.23,1,0.32,1);
  outline: none;
}
.cpw-input:focus {
  border-color: var(--pink);
  box-shadow: 0 0 0 3px var(--pink-dim);
}
.cpw-error {
  font-size: 12px; color: var(--red);
  background: var(--red-dim);
  border: 1px solid rgba(239,68,68,0.2);
  border-radius: 8px;
  padding: 8px 12px;
}
.cpw-footer {
  display: flex; align-items: center; justify-content: flex-end;
  gap: 8px;
  padding: 16px 24px 20px;
  border-top: 1px solid var(--b1);
}

/* Legacy .login-btn / divider / footer / mobile rules removed — canonical
   styles live in the v4 login block earlier in this file. */

/* ════════════════════════════════════════════════════════════════
   PREMIUM OVERHAUL v5 — Full visual transformation
   Nav · Tabs · Filters · Cards · CRM · Global polish
   ════════════════════════════════════════════════════════════════ */

/* ── NAV BAR — elevated glass with accent edge ── */
.user-bar {
  background: linear-gradient(180deg, rgba(9,9,15,0.96) 0%, rgba(9,9,15,0.88) 100%) !important;
  backdrop-filter: blur(24px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.8) !important;
  border-bottom: 1px solid rgba(232,4,126,0.08) !important;
  box-shadow: 0 1px 24px rgba(0,0,0,0.4), 0 1px 0 rgba(232,4,126,0.06) !important;
}
[data-theme="light"] .user-bar {
  background: linear-gradient(180deg, rgba(255,255,255,0.97) 0%, rgba(244,244,249,0.92) 100%) !important;
  box-shadow: 0 1px 12px rgba(0,0,0,0.06), 0 1px 0 rgba(232,4,126,0.04) !important;
}

.user-avatar {
  background: linear-gradient(135deg, var(--s2) 0%, var(--s3) 100%) !important;
  border: 1px solid var(--b2) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}
.user-avatar:hover {
  border-color: var(--bf) !important;
  box-shadow: 0 0 12px var(--pink-glo) !important;
}

.user-mgmt-btn {
  border-radius: 10px !important;
  transition: color 0.16s, background 0.16s, transform 0.12s, box-shadow 0.16s !important;
}
.user-mgmt-btn:hover {
  background: var(--s2) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}

/* ── PAGE TABS — pill-style with glow active ── */
.page-tabs {
  background: linear-gradient(180deg, rgba(9,9,15,0.94) 0%, rgba(9,9,15,0.86) 100%) !important;
  backdrop-filter: blur(20px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.6) !important;
  border-bottom: 1px solid var(--b1) !important;
  padding: 6px 32px !important;
  gap: 4px !important;
}
[data-theme="light"] .page-tabs {
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(244,244,249,0.90) 100%) !important;
}

.page-tab {
  border-radius: 10px !important;
  border-bottom: none !important;
  padding: 10px 20px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 0 !important;
  transition: color 0.18s, background 0.18s, box-shadow 0.18s, transform 0.12s !important;
}
.page-tab.active {
  color: #fff !important;
  background: var(--pink) !important;
  border-bottom-color: transparent !important;
  box-shadow: 0 2px 16px var(--pink-glo), 0 0 0 1px rgba(232,4,126,0.3) !important;
}
.page-tab:not(.active):hover {
  color: var(--t1) !important;
  background: var(--s2) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15) !important;
}

/* ── HERO — refined presence ── */
.hero {
  padding: 40px 0 36px !important;
}
.hero::before {
  height: 300px !important;
  background: radial-gradient(ellipse 80% 140% at 15% 15%, rgba(232,4,126,0.10) 0%, transparent 65%),
              radial-gradient(ellipse 60% 110% at 85% 5%, rgba(99,102,241,0.07) 0%, transparent 55%),
              radial-gradient(ellipse 40% 80% at 50% 60%, rgba(232,4,126,0.03) 0%, transparent 50%) !important;
}

/* ── KPI STRIP — solid, clean, no gradients ── */
.kpi {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  padding: 20px 24px !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2) !important;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.16s var(--ease) !important;
}
.kpi::before {
  display: none !important;
}
.kpi:first-child::before, .kpi:nth-child(3)::before, .kpi:nth-child(5)::before {
  display: none !important;
}
@media (hover: hover) and (pointer: fine) {
  .kpi:hover {
    border-color: var(--b2) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important;
    transform: translateY(-1px) !important;
  }
}
.kpi:first-child .kpi-value { color: var(--pink) !important; }
.kpi-value {
  font-size: 36px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
}
.kpi-value--small {
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}
[data-theme="light"] .kpi {
  background: #fff !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
}
[data-theme="light"] .kpi:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.08) !important;
}

/* ── FILTER BAR — floating glass panel ── */
.filters-bar {
  margin: 12px -20px 0 !important;
  padding: 16px 24px !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, rgba(17,17,24,0.85) 0%, rgba(17,17,24,0.75) 100%) !important;
  backdrop-filter: blur(24px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.6) !important;
  border: 1px solid var(--b1) !important;
  border-bottom: 1px solid var(--b1) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  position: sticky !important;
  top: 100px !important;
  z-index: 90 !important;
  gap: 12px !important;
}
[data-theme="light"] .filters-bar {
  background: linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(244,244,249,0.88) 100%) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.9) !important;
}

.search-field input {
  border-radius: 12px !important;
  padding: 10px 16px 10px 38px !important;
  font-size: 13.5px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s !important;
}
.search-field input:focus {
  background: var(--s1) !important;
  border-color: var(--pink) !important;
  box-shadow: 0 0 0 3px var(--pink-dim), 0 2px 12px var(--pink-glo) !important;
}

.filter-chips select {
  border-radius: 10px !important;
  padding: 9px 30px 9px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  background-color: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  transition: border-color 0.16s, box-shadow 0.16s, background 0.16s, color 0.16s !important;
}
.filter-chips select:hover {
  border-color: var(--b3) !important;
  background-color: var(--s3) !important;
}
.filter-chips select:focus {
  border-color: var(--pink) !important;
  box-shadow: 0 0 0 2px var(--pink-dim) !important;
  background-color: var(--s1) !important;
}

/* ── RESULTS BAR — refined ── */
.results-bar {
  padding: 14px 0 !important;
  margin-bottom: 4px !important;
}
.results-hint {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: var(--t3) !important;
}

/* ── TENDER CARDS — premium depth & visual hierarchy ── */
.tender-list {
  gap: 12px !important;
}

.tender-card {
  border-radius: 14px !important;
  border: 1px solid var(--b1) !important;
  background: linear-gradient(165deg, var(--s1) 0%, color-mix(in srgb, var(--s1) 96%, var(--bg) 4%) 100%) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  transition: border-color 0.22s var(--ease), box-shadow 0.22s var(--ease), transform 0.18s var(--ease) !important;
}

/* Top accent bar — thicker, more vivid */
.tender-card::before {
  height: 3px !important;
  background: linear-gradient(90deg, var(--b2) 0%, var(--b1) 100%) !important;
}
.tender-card--urgent::before {
  background: linear-gradient(90deg, var(--red) 0%, rgba(239,68,68,0.4) 100%) !important;
  box-shadow: 0 1px 8px rgba(239,68,68,0.3) !important;
}
.tender-card--soon::before {
  background: linear-gradient(90deg, var(--orange) 0%, rgba(245,158,11,0.4) 100%) !important;
  box-shadow: 0 1px 8px rgba(245,158,11,0.2) !important;
}
.tender-card--normal::before {
  background: linear-gradient(90deg, var(--green) 0%, rgba(46,204,110,0.3) 100%) !important;
  opacity: 1 !important;
}

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b3) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04), inset 0 1px 0 rgba(255,255,255,0.05) !important;
  }
  .tender-card--urgent:hover {
    border-color: rgba(239,68,68,0.2) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.45), 0 0 24px rgba(239,68,68,0.08) !important;
  }
  .tender-card--soon:hover {
    border-color: rgba(245,158,11,0.2) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.45), 0 0 24px rgba(245,158,11,0.06) !important;
  }
}
[data-theme="light"] .tender-card {
  background: #fff !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8) !important;
}
[data-theme="light"] .tender-card:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,0.1), 0 0 0 1px rgba(0,0,0,0.04) !important;
}

.tc-main {
  padding: 22px 24px 16px !important;
  gap: 18px !important;
}

.tc-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.35 !important;
}

/* Score badge — glowing ring */
.score-badge {
  width: 44px !important;
  height: 44px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  border-width: 2.5px !important;
  transition: transform 0.2s var(--ease), box-shadow 0.2s !important;
}
.score-badge.high {
  box-shadow: 0 0 16px var(--green-dim), 0 0 4px rgba(46,204,110,0.2) !important;
}
.score-badge.mid {
  box-shadow: 0 0 16px var(--pink-dim), 0 0 4px rgba(232,4,126,0.2) !important;
}
.tender-card:hover .score-badge { transform: scale(1.08) !important; }

/* AI summary — refined glass */
.tc-ai-summary {
  background: linear-gradient(135deg, rgba(232,4,126,0.04) 0%, rgba(255,255,255,0.02) 100%) !important;
  border: 1px solid rgba(232,4,126,0.1) !important;
  border-left: 3px solid var(--pink) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  margin-top: 10px !important;
}

/* Deadline badge — more prominent */
.tc-deadline-inline {
  padding: 5px 12px !important;
  border-radius: 10px !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  gap: 6px !important;
}
.tc-deadline-inline.urgent {
  background: linear-gradient(135deg, var(--red-dim) 0%, rgba(239,68,68,0.06) 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(239,68,68,0.15) !important;
}
.tc-deadline-inline.soon {
  background: linear-gradient(135deg, var(--orange-dim) 0%, rgba(245,158,11,0.06) 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(245,158,11,0.12) !important;
}

/* Footer — subtle depth separator */
.tc-footer {
  padding: 12px 24px 14px !important;
  border-top: 1px solid var(--b1) !important;
  background: rgba(0,0,0,0.08) !important;
}
[data-theme="light"] .tc-footer {
  background: rgba(0,0,0,0.015) !important;
}

/* Tags — refined pills */
.tc-tag {
  padding: 3px 10px !important;
  border-radius: 8px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
}

/* Expand button */
.tc-expand-btn {
  border: 1px solid var(--b1) !important;
  border-radius: 8px !important;
  padding: 6px 12px !important;
  font-weight: 600 !important;
  transition: all 0.16s var(--ease) !important;
}
.tc-expand-btn:hover {
  border-color: var(--pink) !important;
  color: var(--pink) !important;
  background: var(--pink-dim) !important;
}

/* Doc link button */
.tc-link--doc {
  border-radius: 8px !important;
  padding: 5px 12px !important;
  font-weight: 700 !important;
  transition: background 0.16s, transform 0.12s, box-shadow 0.16s !important;
}
.tc-link--doc:hover {
  background: rgba(232,4,126,0.2) !important;
  box-shadow: 0 2px 8px var(--pink-glo) !important;
  transform: translateY(-1px) !important;
}

/* Details panel */
.tc-details {
  background: rgba(0,0,0,0.1) !important;
  border-top: 1px solid var(--b1) !important;
}

/* Add to CRM button on tender cards */
.tc-crm-btn {
  border-radius: 8px !important;
  padding: 5px 12px !important;
  font-weight: 700 !important;
  transition: all 0.16s var(--ease) !important;
}
.tc-crm-btn:hover {
  box-shadow: 0 2px 8px var(--pink-glo) !important;
  transform: translateY(-1px) !important;
}

/* ── CRM PAGE — full premium treatment ── */
.crm-header {
  padding: 32px 0 24px !important;
  border-bottom: 1px solid var(--b1) !important;
}

.crm-title {
  font-size: 30px !important;
  font-weight: 900 !important;
  letter-spacing: -0.045em !important;
  background: linear-gradient(135deg, var(--t1) 50%, var(--pink) 120%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

.crm-subtitle {
  font-size: 13px !important;
  color: var(--t3) !important;
  margin-top: 4px !important;
}

/* CRM Add button — premium presence */
.crm-add-btn {
  padding: 11px 22px !important;
  font-size: 13.5px !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 20px var(--pink-glo), 0 0 0 1px rgba(232,4,126,0.2) !important;
  transition: opacity 0.16s, transform 0.14s var(--ease), box-shadow 0.2s !important;
}
.crm-add-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 28px var(--pink-glo), 0 0 0 1px rgba(232,4,126,0.3) !important;
}

/* CRM KPI strip — glassmorphism cards matching tender page */
.crm-kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 24px 0 !important;
  overflow: visible !important;
}
.crm-kpi-divider { display: none !important; }
.crm-kpi {
  background: linear-gradient(145deg, color-mix(in srgb, var(--s1) 88%, var(--pink) 12%) 0%, var(--s1) 100%) !important;
  border: 1px solid var(--b2) !important;
  border-radius: 16px !important;
  padding: 22px 26px !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04) !important;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.16s var(--ease) !important;
}
.crm-kpi::before {
  content: '' !important;
  position: absolute !important;
  top: 0; right: 0 !important;
  width: 70px; height: 70px !important;
  background-image: radial-gradient(circle at 100% 0%, rgba(232,4,126,0.15) 0%, transparent 70%) !important;
  background-color: transparent !important;
  pointer-events: none !important;
}
.crm-kpi + .crm-kpi { border-left: none !important; }
@media (hover: hover) and (pointer: fine) {
  .crm-kpi:hover {
    border-color: var(--bf) !important;
    box-shadow: 0 4px 24px var(--pink-glo), 0 0 0 1px var(--bf) !important;
    transform: translateY(-2px) !important;
  }
}
.crm-kpi-value {
  font-size: 38px !important;
  font-weight: 900 !important;
  letter-spacing: -0.06em !important;
}
.crm-kpi--won .crm-kpi-value { color: var(--green) !important; }
.crm-kpi--lost .crm-kpi-value { color: var(--t4) !important; }
.crm-kpi-label {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  color: var(--t4) !important;
}
[data-theme="light"] .crm-kpi {
  background: #fff !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.8) !important;
}

/* CRM Filters — floating glass panel to match tender page */
.crm-filters {
  margin: 0 -20px !important;
  padding: 14px 24px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(17,17,24,0.85) 0%, rgba(17,17,24,0.75) 100%) !important;
  backdrop-filter: blur(20px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.4) !important;
  border: 1px solid var(--b1) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  gap: 10px !important;
}
[data-theme="light"] .crm-filters {
  background: linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(244,244,249,0.88) 100%) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06) !important;
}
.crm-filters select {
  border-radius: 10px !important;
  padding: 9px 30px 9px 14px !important;
  font-weight: 600 !important;
  background-color: var(--s2) !important;
  border: 1px solid var(--b1) !important;
}
.crm-search input {
  border-radius: 12px !important;
  padding: 10px 16px 10px 38px !important;
}

/* CRM Board — more spacing */
.crm-board {
  padding-top: 8px !important;
  gap: 14px !important;
}

/* CRM Columns — elevated glass lanes */
.crm-col {
  background: linear-gradient(180deg, var(--s1) 0%, color-mix(in srgb, var(--s1) 96%, var(--bg) 4%) 100%) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 16px !important;
  width: 296px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  transition: box-shadow 0.2s, border-color 0.2s !important;
}
.crm-col:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}
[data-theme="light"] .crm-col {
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Stage top accent — gradient */
.crm-col::before {
  height: 3px !important;
  background: linear-gradient(90deg, var(--stage-color, var(--b2)) 0%, color-mix(in srgb, var(--stage-color, var(--b2)) 30%, transparent) 100%) !important;
  box-shadow: 0 1px 6px color-mix(in srgb, var(--stage-color, transparent) 25%, transparent) !important;
}

.crm-col-header {
  padding: 20px 18px 16px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
}

.crm-col-label {
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
}

.crm-col-count {
  font-size: 11.5px !important;
  font-weight: 800 !important;
  border-radius: 8px !important;
  padding: 3px 10px !important;
}

.crm-col-body {
  padding: 12px !important;
  gap: 10px !important;
}

/* CRM Cards — refined with depth */
.crm-card {
  background: linear-gradient(165deg, var(--s2) 0%, color-mix(in srgb, var(--s2) 94%, var(--bg) 6%) 100%) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 12px !important;
  border-left: 3px solid var(--stage-color, var(--b2)) !important;
  padding: 14px 15px !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15) !important;
  transition: border-color 0.18s, box-shadow 0.22s, transform 0.16s var(--ease) !important;
}
.crm-card:hover {
  border-color: var(--b2) !important;
  border-left-color: var(--stage-color, var(--pink)) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.03) !important;
  transform: translateY(-2px) !important;
}
[data-theme="light"] .crm-card {
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
}
[data-theme="light"] .crm-card:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,0.1) !important;
}

.crm-card-company {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
}
.crm-card-project {
  font-size: 11.5px !important;
  line-height: 1.45 !important;
  color: var(--t3) !important;
}
.crm-card-chip {
  border-radius: 7px !important;
  padding: 3px 9px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}
.crm-card-footer {
  border-top: 1px solid var(--b1) !important;
  padding-top: 8px !important;
  margin-top: 8px !important;
}

/* Empty lane — refined */
.crm-empty-lane {
  border: 1px dashed var(--b2) !important;
  border-radius: 12px !important;
  padding: 32px 18px !important;
  color: var(--t4) !important;
  font-size: 12.5px !important;
}

/* ── GLOBAL POLISH — animations & micro-interactions ── */

/* Smooth page transitions */
.page-content {
  animation: pageFadeIn 0.3s var(--ease) both !important;
}
@keyframes pageFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Card stagger animation */
.tender-card {
  animation: cardSlideIn 0.35s var(--ease) both !important;
}
@keyframes cardSlideIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.tender-card:nth-child(1) { animation-delay: 0s !important; }
.tender-card:nth-child(2) { animation-delay: 0.03s !important; }
.tender-card:nth-child(3) { animation-delay: 0.06s !important; }
.tender-card:nth-child(4) { animation-delay: 0.09s !important; }
.tender-card:nth-child(5) { animation-delay: 0.12s !important; }
.tender-card:nth-child(n+6) { animation-delay: 0.15s !important; }

/* CRM card stagger */
.crm-card {
  animation: cardSlideIn 0.3s var(--ease) both !important;
}

/* KPI number shimmer on load */
.kpi-value, .crm-kpi-value {
  animation: kpiPop 0.5s var(--ease) both !important;
}
@keyframes kpiPop {
  from { opacity: 0; transform: scale(0.8); }
  50% { transform: scale(1.02); }
  to { opacity: 1; transform: scale(1); }
}

/* Bookmark pulse */
.bookmark-btn.bookmarked svg {
  animation: bookmarkPulse 0.35s var(--ease) !important;
}
@keyframes bookmarkPulse {
  0% { transform: scale(1); }
  40% { transform: scale(1.25); }
  100% { transform: scale(1); }
}

/* Smooth scrollbar styling */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--b2);
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover { background: var(--b3); }

/* Focus ring everywhere */
:focus-visible {
  outline: 2px solid var(--pink) !important;
  outline-offset: 2px !important;
}

/* Button press feel */
button:active:not(:disabled),
a:active {
  transition-duration: 0.06s !important;
}

/* Refresh button glow pulse when spinning */
.refresh-btn:disabled {
  opacity: 0.7 !important;
  box-shadow: 0 0 20px var(--pink-glo) !important;
  animation: refreshPulse 1.5s ease-in-out infinite !important;
}
@keyframes refreshPulse {
  0%, 100% { box-shadow: 0 0 16px var(--pink-glo); }
  50% { box-shadow: 0 0 28px rgba(232,4,126,0.35); }
}

/* ════════════════════════════════════════════════════════════════
   TENDER CARD v6 — Complete redesign
   Compact, premium, strong visual hierarchy
   ════════════════════════════════════════════════════════════════ */

/* Card container — clean solid surface */
.tender-card {
  border-radius: 12px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s1) !important;
  box-shadow: none !important;
  transition: border-color 0.18s var(--ease), box-shadow 0.2s var(--ease), transform 0.16s var(--ease) !important;
  animation: none !important;
}

/* Left accent stripe instead of top bar — more elegant */
.tender-card::before {
  top: 0 !important; bottom: 0 !important;
  left: 0 !important; right: auto !important;
  width: 4px !important; height: auto !important;
  border-radius: 12px 0 0 12px !important;
  background: var(--b2) !important;
  box-shadow: none !important;
}
.tender-card--urgent::before {
  background: var(--red) !important;
  box-shadow: 4px 0 16px rgba(239,68,68,0.12) !important;
}
.tender-card--soon::before {
  background: var(--orange) !important;
  box-shadow: 4px 0 16px rgba(245,158,11,0.1) !important;
}
.tender-card--normal::before {
  background: var(--green) !important;
  opacity: 0.7 !important;
}

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b2) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.03) !important;
  }
  .tender-card--urgent:hover { border-color: rgba(239,68,68,0.18) !important; }
  .tender-card--soon:hover   { border-color: rgba(245,158,11,0.18) !important; }
}
[data-theme="light"] .tender-card {
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}
[data-theme="light"] .tender-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
}

/* Main layout — tighter padding */
.tc-main {
  padding: 14px 18px 10px 20px !important;
  gap: 14px !important;
}

/* Side column — score badge prominent, bookmark tucked */
.tc-side {
  gap: 6px !important;
  padding-top: 0 !important;
}

/* Score badge — larger, glowing, center of attention */
.score-badge {
  width: 46px !important;
  height: 46px !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  border-width: 2.5px !important;
  letter-spacing: -0.03em !important;
}
.score-badge.high {
  background: rgba(46,204,110,0.08) !important;
  box-shadow: 0 0 0 4px rgba(46,204,110,0.06), 0 0 16px rgba(46,204,110,0.12) !important;
}
.score-badge.mid {
  background: rgba(232,4,126,0.06) !important;
  box-shadow: 0 0 0 4px rgba(232,4,126,0.05), 0 0 16px rgba(232,4,126,0.1) !important;
}
.score-badge.low {
  box-shadow: 0 0 0 4px rgba(255,255,255,0.02) !important;
}
.tender-card:hover .score-badge {
  transform: scale(1.06) !important;
}

/* Bookmark — smaller, subtle */
.bookmark-btn {
  padding: 2px !important;
  opacity: 0.5 !important;
  transition: opacity 0.16s, color 0.16s, transform 0.12s !important;
}
.bookmark-btn:hover { opacity: 1 !important; }
.bookmark-btn.bookmarked { opacity: 1 !important; }

/* Header row — source metadata + deadline in one tight row */
.tc-header-row {
  margin-bottom: 5px !important;
  gap: 8px !important;
}
.tc-meta-line {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  color: var(--t4) !important;
}

/* Title — impactful but compact */
.tc-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  margin-bottom: 3px !important;
  color: var(--t1) !important;
}

/* NEW badge */
.new-badge {
  display: inline-block !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  padding: 1px 6px !important;
  border-radius: 4px !important;
  background: var(--pink) !important;
  color: #fff !important;
  vertical-align: middle !important;
  margin-right: 6px !important;
  line-height: 1.5 !important;
}

/* Org line — subtle */
.tc-org {
  font-size: 11px !important;
  color: var(--t3) !important;
  margin-bottom: 0 !important;
}

/* Deadline badge — compact pill */
.tc-deadline-inline {
  padding: 3px 8px !important;
  border-radius: 6px !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  gap: 4px !important;
}
.tc-deadline-inline.urgent {
  background: var(--red-dim) !important;
  box-shadow: none !important;
}
.tc-deadline-inline.soon {
  background: var(--orange-dim) !important;
  box-shadow: none !important;
}
.tc-deadline-inline.normal {
  background: var(--green-dim) !important;
}

/* AI summary — integrated, compact */
.tc-ai-summary {
  font-size: 12px !important;
  line-height: 1.45 !important;
  color: var(--t2) !important;
  background: transparent !important;
  border: none !important;
  border-left: 2px solid rgba(232,4,126,0.3) !important;
  border-radius: 0 !important;
  padding: 4px 0 4px 10px !important;
  margin-top: 8px !important;
}

/* Footer — clean action bar with clear hierarchy */
.tc-footer {
  padding: 8px 18px 8px 20px !important;
  border-top: 1px solid var(--b1) !important;
  background: rgba(0,0,0,0.04) !important;
  gap: 6px !important;
}
[data-theme="light"] .tc-footer {
  background: rgba(0,0,0,0.015) !important;
}

/* Claim button — primary action, stands out */
.assign-btn--claim {
  background: transparent !important;
  border: 1px solid var(--b2) !important;
  color: var(--t2) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 4px 10px !important;
  border-radius: 7px !important;
  transition: all 0.16s !important;
}
.assign-btn--claim:hover {
  border-color: var(--pink) !important;
  color: var(--pink) !important;
  background: var(--pink-dim) !important;
}

/* Footer right actions — compact inline row */
.tc-footer-right {
  gap: 5px !important;
}

/* Expand/Details button — ghost */
.tc-expand-btn {
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  padding: 4px 8px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  color: var(--t3) !important;
  background: transparent !important;
}
.tc-expand-btn:hover {
  border-color: var(--b1) !important;
  color: var(--t1) !important;
  background: var(--s2) !important;
}
.tc-expand-btn.expanded {
  color: var(--pink) !important;
  border-color: rgba(232,4,126,0.15) !important;
  background: var(--pink-dim) !important;
}

/* CRM button — ghost */
.tc-crm-btn {
  font-size: 10.5px !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--t3) !important;
}
.tc-crm-btn:hover {
  border-color: var(--b1) !important;
  color: var(--t1) !important;
  background: var(--s2) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* View on Portal link */
.tc-link {
  font-size: 10.5px !important;
  font-weight: 600 !important;
  color: var(--pink) !important;
  opacity: 0.8 !important;
}
.tc-link:hover { opacity: 1 !important; }

/* Doc links — tight pills */
.tc-link--doc {
  padding: 3px 8px !important;
  border-radius: 6px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  gap: 3px !important;
  background: rgba(232,4,126,0.06) !important;
}
.tc-link--doc:hover {
  background: rgba(232,4,126,0.14) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Tags — tighter */
.tc-tag {
  padding: 2px 7px !important;
  border-radius: 5px !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
}

/* Notes section — inline in card, barely visible until hovered */
.notes-section {
  border-top: 1px solid var(--b1) !important;
  padding: 0 18px 0 20px !important;
}
.notes-toggle {
  font-size: 10.5px !important;
  padding: 6px 0 !important;
  color: var(--t4) !important;
  gap: 4px !important;
}
.notes-toggle:hover { color: var(--t2) !important; }

/* Details panel — darker inset */
.tc-details {
  background: rgba(0,0,0,0.06) !important;
  border-top: 1px solid var(--b1) !important;
}
.tc-detail {
  padding: 10px 18px !important;
}
.tc-detail-label {
  font-size: 9px !important;
  letter-spacing: 0.10em !important;
}
.tc-detail-value {
  font-size: 12.5px !important;
}

/* Tender list spacing */
.tender-list {
  gap: 8px !important;
}

/* ════════════════════════════════════════════════════════════════
   ADMIN PANEL v6 — Full premium overhaul
   ════════════════════════════════════════════════════════════════ */

/* Overlay — deep blur, strong dimming */
.user-modal-overlay {
  background: rgba(0,0,0,0.78) !important;
  backdrop-filter: blur(16px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.2) !important;
}

/* Modal — larger, more refined */
.user-modal {
  background: var(--bg) !important;
  border: 1px solid var(--b2) !important;
  border-radius: 20px !important;
  width: 760px !important;
  box-shadow: 0 32px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04) !important;
}
[data-theme="light"] .user-modal {
  background: #fff !important;
  box-shadow: 0 32px 80px rgba(0,0,0,0.15) !important;
}

/* Modal header — sleek */
.user-modal-header {
  padding: 20px 26px 16px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
}
.user-modal-header h3 {
  font-size: 18px !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  background: linear-gradient(135deg, var(--t1) 50%, var(--pink) 150%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* Close button */
.user-modal-header button {
  width: 32px !important;
  height: 32px !important;
  border-radius: 10px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s2) !important;
  transition: background 0.16s, border-color 0.16s, transform 0.12s !important;
}
.user-modal-header button:hover {
  background: var(--s3) !important;
  border-color: var(--b2) !important;
}

/* Admin tabs — pill style matching page tabs */
.admin-tabs {
  padding: 6px 26px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
  gap: 4px !important;
}
.admin-tab {
  border-radius: 8px !important;
  border-bottom: none !important;
  padding: 7px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 0 !important;
  transition: color 0.16s, background 0.16s, box-shadow 0.16s !important;
}
.admin-tab.active {
  color: #fff !important;
  background: var(--pink) !important;
  border-bottom-color: transparent !important;
  box-shadow: 0 2px 10px var(--pink-glo) !important;
}
.admin-tab:not(.active):hover {
  color: var(--t1) !important;
  background: var(--s2) !important;
}

/* Modal body */
.user-modal-body {
  padding: 24px 26px !important;
  background: var(--bg) !important;
}
[data-theme="light"] .user-modal-body {
  background: #fff !important;
}
.admin-tab-desc {
  font-size: 12.5px !important;
  color: var(--t3) !important;
  margin-bottom: 20px !important;
}

/* User table — card-style rows */
.user-table {
  border-collapse: separate !important;
  border-spacing: 0 6px !important;
}
.user-table th {
  padding: 0 16px 8px !important;
  font-size: 9.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  color: var(--t4) !important;
  border-bottom: none !important;
}
.user-table td {
  padding: 12px 16px !important;
  border-bottom: none !important;
  background: var(--s1) !important;
}
.user-table td:first-child {
  border-radius: 10px 0 0 10px !important;
}
.user-table td:last-child {
  border-radius: 0 10px 10px 0 !important;
}
.ut-row:hover td {
  background: var(--s2) !important;
}
[data-theme="light"] .user-table td {
  background: var(--s2) !important;
}
[data-theme="light"] .ut-row:hover td {
  background: var(--s3) !important;
}

/* Avatar — gradient ring */
.ut-avatar {
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  background: linear-gradient(135deg, var(--s3) 0%, var(--s2) 100%) !important;
  border: 2px solid var(--b2) !important;
  color: var(--t2) !important;
}

/* Username */
.ut-username {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* Role badge */
.ut-role-badge {
  font-size: 9px !important;
  font-weight: 700 !important;
  padding: 2px 8px !important;
  border-radius: 5px !important;
  letter-spacing: 0.06em !important;
}
.ut-role-badge--master {
  background: linear-gradient(135deg, rgba(232,4,126,0.15) 0%, rgba(232,4,126,0.08) 100%) !important;
  color: var(--pink) !important;
  border-color: rgba(232,4,126,0.25) !important;
}

/* Org badge */
.ut-org {
  font-size: 9px !important;
  font-weight: 700 !important;
  padding: 2px 8px !important;
  border-radius: 5px !important;
  letter-spacing: 0.06em !important;
}

/* Date */
.ut-date {
  font-size: 11.5px !important;
  font-weight: 500 !important;
  color: var(--t4) !important;
  font-variant-numeric: tabular-nums !important;
}

/* Actions */
.ut-actions {
  gap: 5px !important;
}

/* Role select — refined */
.ut-role-select {
  border-radius: 8px !important;
  font-size: 11.5px !important;
  padding: 6px 28px 6px 10px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  transition: border-color 0.14s, background 0.14s, box-shadow 0.14s !important;
}
.ut-role-select:hover {
  background: var(--s3) !important;
  border-color: var(--b2) !important;
}
.ut-role-select:focus {
  border-color: var(--pink) !important;
  box-shadow: 0 0 0 2px var(--pink-dim) !important;
}

/* Password reset button — refined */
.ut-pw-btn {
  border-radius: 8px !important;
  font-size: 11.5px !important;
  padding: 6px 12px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s2) !important;
}
.ut-pw-btn:hover {
  background: var(--s3) !important;
  border-color: var(--b2) !important;
}

/* Delete button */
.ut-del-btn {
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
}

/* Add user form — card style */
.user-add-form {
  margin-top: 24px !important;
  padding: 18px 20px !important;
  border-top: none !important;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
}
.user-add-form h4 {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  color: var(--t3) !important;
  margin-bottom: 14px !important;
}
[data-theme="light"] .user-add-form {
  background: var(--s2) !important;
}

.user-add-row {
  gap: 8px !important;
}
.user-add-input, .user-add-select {
  border-radius: 10px !important;
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  border: 1px solid var(--b1) !important;
  background: var(--bg) !important;
}
[data-theme="light"] .user-add-input,
[data-theme="light"] .user-add-select {
  background: #fff !important;
}
.user-add-input:focus, .user-add-select:focus {
  border-color: var(--pink) !important;
  box-shadow: 0 0 0 3px var(--pink-dim) !important;
}

.user-add-btn {
  border-radius: 10px !important;
  padding: 9px 18px !important;
  font-size: 12.5px !important;
  box-shadow: 0 2px 12px var(--pink-glo) !important;
  transition: opacity 0.16s, transform 0.12s, box-shadow 0.16s !important;
}
.user-add-btn:hover {
  box-shadow: 0 4px 18px var(--pink-glo) !important;
  transform: translateY(-1px) !important;
}

/* Permissions cards — refined */
.perms-card {
  border-radius: 12px !important;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  padding: 16px 18px !important;
}
[data-theme="light"] .perms-card {
  background: var(--s2) !important;
}

/* Inline org edit */
.ut-org-edit-row {
  gap: 4px !important;
  margin-top: 4px !important;
}
.ut-inline-select {
  border-radius: 6px !important;
  font-size: 10.5px !important;
  padding: 3px 8px !important;
}
.ut-inline-save {
  border-radius: 6px !important;
  font-size: 10.5px !important;
  padding: 3px 10px !important;
}
.ut-inline-cancel {
  border-radius: 6px !important;
  font-size: 10.5px !important;
}

/* ════════════════════════════════════════════════════════════════
   FINAL POLISH — Emil Kowalski principles applied
   No gradients. Solid surfaces. Border-shift hover. Precise transitions.
   ════════════════════════════════════════════════════════════════ */

/* ── FILTER BAR — full-width flush sticky, Linear-style ── */
.filters-bar {
  position: sticky !important;
  top: 100px !important;
  z-index: 90 !important;
  margin: 0 -32px !important;
  padding: 10px 32px !important;
  border-radius: 0 !important;
  background: var(--glass) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: 1px solid var(--b1) !important;
  box-shadow: none !important;
  gap: 8px !important;
}
[data-theme="light"] .filters-bar {
  background: rgba(244,244,249,0.96) !important;
}

/* ── KPI STRIP — no gradients, no glow, strong numbers ── */
.kpi-strip { gap: 10px !important; }
.kpi {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 10px !important;
  padding: 18px 20px !important;
  box-shadow: none !important;
  transition: border-color 120ms ease, transform 140ms cubic-bezier(0.23,1,0.32,1) !important;
}
.kpi::before, .kpi:first-child::before, .kpi:nth-child(3)::before, .kpi:nth-child(5)::before {
  display: none !important;
}
@media (hover: hover) and (pointer: fine) {
  .kpi:hover {
    border-color: var(--b2) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
  }
}
.kpi-value {
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}
.kpi-value--small {
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--t1) !important;
}
.kpi-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  color: var(--t4) !important;
  margin-top: 4px !important;
}
.kpi:first-child .kpi-value { color: var(--pink) !important; }
[data-theme="light"] .kpi { background: #fff !important; }

/* ── TENDER CARDS — Linear-inspired list item ── */
.tender-list { gap: 6px !important; }

.tender-card {
  border-radius: 10px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s1) !important;
  box-shadow: none !important;
  animation: none !important;
  transition: border-color 120ms ease, background-color 120ms ease !important;
}
@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b2) !important;
    background: var(--s2) !important;
    transform: none !important;
    box-shadow: none !important;
  }
  .tender-card--urgent:hover  { border-color: rgba(239,68,68,0.22) !important; }
  .tender-card--soon:hover    { border-color: rgba(245,158,11,0.2) !important; }
  .tender-card--normal:hover  { border-color: rgba(46,204,110,0.18) !important; }
}
[data-theme="light"] .tender-card { background: #fff !important; }
[data-theme="light"] .tender-card:hover { background: var(--s2) !important; box-shadow: none !important; }

/* Left accent stripe — clean, no glow */
.tender-card::before {
  width: 3px !important;
  height: auto !important;
  top: 0 !important; bottom: 0 !important;
  left: 0 !important; right: auto !important;
  border-radius: 10px 0 0 10px !important;
  background: var(--b1) !important;
  box-shadow: none !important;
}
.tender-card--urgent::before { background: var(--red) !important; box-shadow: none !important; }
.tender-card--soon::before   { background: var(--orange) !important; box-shadow: none !important; }
.tender-card--normal::before { background: var(--green) !important; opacity: 0.6 !important; }

/* Main area */
.tc-main { padding: 14px 16px 10px 18px !important; gap: 14px !important; }
.tc-title { font-size: 14.5px !important; font-weight: 600 !important; letter-spacing: -0.015em !important; line-height: 1.35 !important; margin-bottom: 2px !important; }
.tc-org { font-size: 11px !important; color: var(--t3) !important; }
.tc-meta-line { font-size: 9.5px !important; font-weight: 600 !important; letter-spacing: 0.06em !important; color: var(--t4) !important; }

/* Score badge — clean ring, no glow */
.score-badge {
  width: 40px !important;
  height: 40px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  border-width: 2px !important;
  transition: transform 140ms cubic-bezier(0.23,1,0.32,1) !important;
}
.score-badge.high { box-shadow: none !important; }
.score-badge.mid  { box-shadow: none !important; }
.tender-card:hover .score-badge { transform: none !important; }

/* Deadline chip — precise, no heavy background */
.tc-deadline-inline {
  padding: 3px 8px !important;
  border-radius: 5px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  gap: 4px !important;
}
.tc-deadline-inline.urgent { background: rgba(239,68,68,0.12) !important; box-shadow: none !important; border: 1px solid rgba(239,68,68,0.2) !important; }
.tc-deadline-inline.soon   { background: rgba(245,158,11,0.12) !important; box-shadow: none !important; border: 1px solid rgba(245,158,11,0.18) !important; }
.tc-deadline-inline.normal { background: rgba(46,204,110,0.10) !important; border: 1px solid rgba(46,204,110,0.16) !important; }

/* AI summary */
.tc-ai-summary {
  font-size: 12px !important;
  color: var(--t2) !important;
  background: transparent !important;
  border: none !important;
  border-left: 2px solid rgba(232,4,126,0.25) !important;
  border-radius: 0 !important;
  padding: 3px 0 3px 10px !important;
  margin-top: 7px !important;
}

/* Footer */
.tc-footer {
  padding: 7px 16px 8px 18px !important;
  border-top: 1px solid var(--b1) !important;
  background: transparent !important;
  gap: 5px !important;
}
[data-theme="light"] .tc-footer { background: transparent !important; }

/* Buttons — press state on all */
.assign-btn--claim {
  background: transparent !important;
  border: 1px solid var(--b1) !important;
  color: var(--t3) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 4px 9px !important;
  border-radius: 6px !important;
  transition: border-color 120ms ease, color 120ms ease, background 120ms ease, transform 100ms ease !important;
}
.assign-btn--claim:hover { border-color: var(--b2) !important; color: var(--t1) !important; background: var(--s2) !important; }
.assign-btn--claim:active { transform: scale(0.97) !important; }

.tc-expand-btn, .tc-crm-btn {
  font-size: 11px !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
  transition: background 120ms ease, color 120ms ease, transform 100ms ease !important;
}
.tc-expand-btn:active, .tc-crm-btn:active { transform: scale(0.97) !important; }

.tc-link--doc {
  padding: 3px 8px !important;
  border-radius: 5px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  transition: background 120ms ease, transform 100ms ease !important;
}
.tc-link--doc:hover { transform: none !important; box-shadow: none !important; }
.tc-link--doc:active { transform: scale(0.97) !important; }

/* Refresh button */
.refresh-btn {
  transition: opacity 120ms ease, transform 120ms cubic-bezier(0.23,1,0.32,1), box-shadow 120ms ease !important;
}
.refresh-btn:active { transform: scale(0.97) !important; }

/* ── CRM PAGE — clean, no gradients ── */
.crm-title {
  background: none !important;
  -webkit-text-fill-color: var(--t1) !important;
  color: var(--t1) !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
}

/* CRM KPI strip — same clean treatment as tender KPIs */
.crm-kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 10px !important;
  background: transparent !important;
  border: none !important;
  margin: 20px 0 !important;
}
.crm-kpi-divider { display: none !important; }
.crm-kpi {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 10px !important;
  padding: 18px 20px !important;
  position: relative !important;
  overflow: visible !important;
  box-shadow: none !important;
  transition: border-color 120ms ease, transform 140ms cubic-bezier(0.23,1,0.32,1) !important;
}
.crm-kpi::before { display: none !important; }
.crm-kpi + .crm-kpi { border-left: none !important; }
@media (hover: hover) and (pointer: fine) {
  .crm-kpi:hover {
    border-color: var(--b2) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
  }
}
.crm-kpi-value {
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}
.crm-kpi-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  color: var(--t4) !important;
  margin-top: 4px !important;
}
.crm-kpi--won .crm-kpi-value  { color: var(--green) !important; }
.crm-kpi--lost .crm-kpi-value { color: var(--t4) !important; }
[data-theme="light"] .crm-kpi { background: #fff !important; }

/* CRM filters — same full-width flush as tender filter bar */
.crm-filters {
  margin: 0 !important;
  padding: 10px 0 14px !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  gap: 8px !important;
}
.crm-filters select {
  border-radius: 6px !important;
  padding: 7px 28px 7px 10px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  background-color: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  transition: border-color 120ms ease, background 120ms ease !important;
}
.crm-filters select:hover { border-color: var(--b2) !important; }
.crm-search input {
  border-radius: 6px !important;
  padding: 7px 14px 7px 36px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s1) !important;
  transition: border-color 120ms ease, box-shadow 120ms ease !important;
}
.crm-search input:focus {
  border-color: var(--pink) !important;
  box-shadow: 0 0 0 2px rgba(232,4,126,0.12) !important;
}

/* CRM Board */
.crm-board { gap: 10px !important; padding-top: 16px !important; }

/* CRM Columns — clean, no gradient backgrounds */
.crm-col {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 10px !important;
  width: 284px !important;
  box-shadow: none !important;
  transition: border-color 120ms ease !important;
}
.crm-col:hover { box-shadow: none !important; }
[data-theme="light"] .crm-col { background: var(--s2) !important; }

/* Stage top accent — thin line only */
.crm-col::before {
  height: 2px !important;
  background: var(--stage-color, var(--b2)) !important;
  box-shadow: none !important;
}

.crm-col-header {
  padding: 14px 14px 12px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
}
.crm-col-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}
.crm-col-count {
  font-size: 11px !important;
  font-weight: 700 !important;
  border-radius: 5px !important;
  padding: 2px 7px !important;
}
.crm-col-body { padding: 8px !important; gap: 6px !important; }

/* CRM Cards — clean surface, border-shift hover */
.crm-card {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 8px !important;
  border-left: 2px solid var(--stage-color, var(--b2)) !important;
  padding: 12px 13px !important;
  box-shadow: none !important;
  transition: border-color 120ms ease, background-color 120ms ease, transform 120ms cubic-bezier(0.23,1,0.32,1) !important;
}
@media (hover: hover) and (pointer: fine) {
  .crm-card:hover {
    border-color: var(--b2) !important;
    border-left-color: var(--stage-color, var(--b3)) !important;
    background: var(--s3) !important;
    box-shadow: none !important;
    transform: translateY(-1px) !important;
  }
}
.crm-card:active { transform: scale(0.98) !important; }
[data-theme="light"] .crm-card { background: #fff !important; }
[data-theme="light"] .crm-card:hover { background: var(--s2) !important; box-shadow: none !important; }

/* CRM Add button */
.crm-add-btn {
  transition: opacity 120ms ease, transform 120ms cubic-bezier(0.23,1,0.32,1), box-shadow 120ms ease !important;
}
.crm-add-btn:active { transform: scale(0.97) !important; }

/* CRM empty lane */
.crm-empty-lane {
  border: 1px dashed var(--b1) !important;
  border-radius: 8px !important;
  padding: 28px 16px !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* ── NAV / TABS — clean, no unnecessary gradients ── */
.user-bar {
  background: var(--glass) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-bottom: 1px solid var(--b1) !important;
  box-shadow: none !important;
}
[data-theme="light"] .user-bar { background: rgba(255,255,255,0.96) !important; }

.page-tabs {
  background: var(--glass) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-bottom: 1px solid var(--b1) !important;
  padding: 5px 32px !important;
  gap: 2px !important;
}
[data-theme="light"] .page-tabs { background: rgba(255,255,255,0.96) !important; }

.page-tab {
  border-radius: 8px !important;
  padding: 8px 16px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  transition: color 120ms ease, background-color 120ms ease, box-shadow 120ms ease, transform 100ms ease !important;
  margin-bottom: 0 !important;
  border-bottom: none !important;
}
.page-tab.active {
  background: var(--pink) !important;
  color: #fff !important;
  border-bottom-color: transparent !important;
  box-shadow: 0 1px 8px rgba(232,4,126,0.3) !important;
}
.page-tab:not(.active):hover { background: var(--s2) !important; color: var(--t1) !important; }
.page-tab:active { transform: scale(0.97) !important; }

/* ── ADMIN PANEL — fix cuts and alignment ── */
.user-modal-header {
  background: var(--s1) !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 20px 20px 0 0 !important;
}
.user-modal-header h3 {
  background: none !important;
  -webkit-text-fill-color: var(--t1) !important;
  color: var(--t1) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}
.admin-tabs {
  padding: 0 22px !important;
  background: var(--s1) !important;
  border-bottom: 1px solid var(--b1) !important;
  gap: 0 !important;
}
.admin-tab {
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  padding: 11px 14px !important;
  font-size: 12.5px !important;
  margin-bottom: -1px !important;
  box-shadow: none !important;
  transition: color 120ms ease, border-color 120ms ease !important;
}
.admin-tab.active {
  color: var(--pink) !important;
  background: transparent !important;
  border-bottom-color: var(--pink) !important;
  box-shadow: none !important;
}
.admin-tab:not(.active):hover { background: transparent !important; color: var(--t1) !important; }

.user-modal-body { background: var(--float) !important; padding: 20px 22px !important; }
[data-theme="light"] .user-modal-body { background: var(--s2) !important; }

/* Fix table border-collapse cutting issue */
.user-table {
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}
.user-table td {
  background: transparent !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  padding: 11px 14px !important;
}
.user-table td:first-child { border-radius: 0 !important; }
.user-table td:last-child { border-radius: 0 !important; }
.user-table tr:last-child td { border-bottom: 0 !important; }
.ut-row:hover td { background: color-mix(in srgb, var(--s3) 35%, transparent) !important; }

/* ── MOBILE ── */
@media (max-width: 600px) {
  .kpi-strip { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
  .crm-kpi-strip { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
  .filters-bar { margin: 0 -16px !important; padding: 8px 16px !important; top: 88px !important; }
  .tender-list { gap: 4px !important; }
  .tc-main { padding: 12px 14px 10px 16px !important; }
  .tc-footer { padding: 7px 14px 8px 16px !important; }
  .page-tabs { padding: 4px 16px !important; }
  .page-tab { padding: 7px 12px !important; font-size: 11.5px !important; }
  .user-modal { width: 100% !important; border-radius: 14px !important; }
  .crm-kpi-value { font-size: 24px !important; }
}

/* ════════════════════════════════════════════════════════════════
   v24 PATCH — hero cleanup + layout tightening
   ════════════════════════════════════════════════════════════════ */

/* Strip ALL gradients from hero backdrop */
.hero::before {
  display: none !important;
}

/* Tighter hero — less wasted vertical space */
.hero {
  padding: 24px 0 20px !important;
}
.hero-top {
  margin-bottom: 18px !important;
}

/* Hero title — solid white, no gradient text */
.hero-title {
  background: none !important;
  -webkit-background-clip: unset !important;
  -webkit-text-fill-color: var(--t1) !important;
  background-clip: unset !important;
  color: var(--t1) !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}

/* KPI strip — equal 3-col, full width, no extra padding */
.kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 !important;
  flex-direction: unset !important;
}
.kpi-divider { display: none !important; }

/* KPI cards — compact, high-density */
.kpi {
  padding: 16px 18px !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}
.kpi-value {
  font-size: 30px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}
.kpi-value--small {
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--t1) !important;
}
.kpi-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--t4) !important;
  margin-top: 5px !important;
}

/* CRM page header — same treatment */
.crm-header {
  padding-top: 24px !important;
  padding-bottom: 4px !important;
}
.crm-title {
  font-size: 22px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
}

/* Page content wrapper — tighter top padding */
.page-content, #radarPage, #crmPage {
  padding-top: 0 !important;
}

/* ════════════════════════════════════════════════════════════════
   CRM ORG/POOL VISIBILITY — context banner, origin badges, access map
   ════════════════════════════════════════════════════════════════ */

/* Org context banner in CRM header */
.crm-org-context {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.crm-org-badge {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 5px;
  border: 1px solid;
}
.crm-org-badge--evrim {
  color: var(--pink);
  border-color: rgba(232,4,126,0.25);
  background: rgba(232,4,126,0.07);
}
.crm-org-badge--ais {
  color: #60a5fa;
  border-color: rgba(96,165,250,0.25);
  background: rgba(96,165,250,0.07);
}
.crm-office-badge {
  font-size: 11px;
  font-weight: 600;
  color: var(--t3);
  padding: 3px 8px;
  border-radius: 5px;
  border: 1px solid var(--b1);
  background: var(--s2);
}
.crm-access-info-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--t3);
  background: transparent;
  border: 1px solid var(--b1);
  border-radius: 6px;
  padding: 4px 10px;
  cursor: pointer;
  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
}
.crm-access-info-btn:hover {
  border-color: var(--b2);
  color: var(--t1);
  background: var(--s2);
}

/* Origin badge on cards */
.crm-origin-badge {
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid;
}
.crm-origin-badge--evrim {
  color: rgba(232,4,126,0.8);
  border-color: rgba(232,4,126,0.2);
  background: rgba(232,4,126,0.06);
}
.crm-origin-badge--ais {
  color: rgba(96,165,250,0.9);
  border-color: rgba(96,165,250,0.2);
  background: rgba(96,165,250,0.06);
}

/* Pool badges — cleaner labels */
.crm-pool-badge--private {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.crm-pool-badge--common {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* ── ACCESS MAP MODAL ── */
.crm-access-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  padding: 24px;
}
.crm-access-modal[hidden] { display: none; }

.crm-access-modal-inner {
  background: var(--float);
  border: 1px solid var(--b2);
  border-radius: 16px;
  width: 100%;
  max-width: 680px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,0.5);
}
[data-theme="light"] .crm-access-modal-inner {
  background: #fff;
}

.crm-access-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 16px;
  border-bottom: 1px solid var(--b1);
}
.crm-access-modal-header h3 {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--t1);
  margin: 0;
}

/* Diagram layout */
.crm-access-diagram {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 20px 22px;
}
.cam-org {
  flex: 1;
  border-radius: 12px;
  border: 1px solid var(--b1);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cam-org--evrim { border-color: rgba(232,4,126,0.2); background: rgba(232,4,126,0.03); }
.cam-org--ais   { border-color: rgba(96,165,250,0.2); background: rgba(96,165,250,0.03); }

.cam-org-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}
.cam-org--evrim .cam-org-label { color: var(--pink); }
.cam-org--ais .cam-org-label   { color: #60a5fa; }

.cam-pool {
  border-radius: 8px;
  border: 1px solid var(--b1);
  padding: 12px 14px;
  background: var(--s1);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cam-pool--private { border-color: rgba(239,68,68,0.2); background: rgba(239,68,68,0.03); }
.cam-pool--common  { border-color: rgba(46,204,110,0.2); background: rgba(46,204,110,0.03); }
.cam-pool--shared  { border-color: rgba(96,165,250,0.2); background: rgba(96,165,250,0.04); }

.cam-pool-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.cam-pool--private .cam-pool-label { color: rgba(239,68,68,0.85); }
.cam-pool--common .cam-pool-label  { color: rgba(46,204,110,0.85); }
.cam-pool--shared .cam-pool-label  { color: #60a5fa; }

.cam-pool-desc {
  font-size: 11.5px;
  color: var(--t3);
  line-height: 1.5;
  margin: 0;
}
.cam-pool-desc strong { color: var(--t1); }

.cam-promote-hint {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--pink);
  background: rgba(232,4,126,0.07);
  border: 1px solid rgba(232,4,126,0.18);
  border-radius: 5px;
  padding: 4px 9px;
  cursor: default;
  margin-top: 2px;
  align-self: flex-start;
}

.cam-members, .cam-offices {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 2px;
}
.cam-member, .cam-office-pill {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t2);
}
.cam-office-pill {
  color: #60a5fa;
  border-color: rgba(96,165,250,0.2);
  background: rgba(96,165,250,0.06);
}

.cam-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  color: var(--t4);
  flex-shrink: 0;
}

/* Rules list */
.cam-rules {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 22px 20px;
  border-top: 1px solid var(--b1);
}
.cam-rule {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: var(--t2);
  line-height: 1.5;
}
.cam-rule svg { flex-shrink: 0; margin-top: 2px; }

/* ============================================================
   ADMIN PANEL — Control Centre (v26)
   ============================================================ */

.user-modal.admin-modal {
  width: min(1180px, calc(100vw - 48px)) !important;
  max-width: min(1180px, calc(100vw - 48px)) !important;
  max-height: 90dvh !important;
  border-radius: 18px !important;
  border: 1px solid var(--b2) !important;
  background: var(--float) !important;
  box-shadow: 0 28px 70px rgba(0,0,0,0.42), 0 0 0 1px rgba(255,255,255,0.03) !important;
}
[data-theme="light"] .user-modal.admin-modal {
  background: #fff !important;
  box-shadow: 0 22px 60px rgba(15,23,42,0.14) !important;
}

.admin-modal-header {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 18px 24px 16px !important;
  border-bottom: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s1) 90%, transparent) !important;
}
.admin-modal-title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  grid-column: 1;
}
.admin-modal-title h3 {
  margin: 0;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  background: none !important;
  -webkit-text-fill-color: var(--t1) !important;
  color: var(--t1) !important;
}
.admin-modal-title svg {
  color: var(--pink);
  flex-shrink: 0;
}
.admin-modal-summary {
  display: flex;
  justify-content: flex-end;
  grid-column: 2;
  min-width: 0;
}
.admin-modal .preview-close-btn {
  grid-column: 3;
  justify-self: end;
}
.admin-summary-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t2);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.admin-summary-pill--total {
  color: var(--t1);
  border-color: var(--b2);
  background: var(--s1);
}
.admin-summary-pill--evrim {
  color: var(--pink);
  border-color: rgba(232,4,126,0.22);
  background: rgba(232,4,126,0.08);
}
.admin-summary-pill--ais {
  color: #60a5fa;
  border-color: rgba(96,165,250,0.22);
  background: rgba(96,165,250,0.08);
}

.admin-modal .user-modal-body {
  padding: 0 !important;
  background: var(--float) !important;
  overflow-y: auto !important;
}
[data-theme="light"] .admin-modal .user-modal-body {
  background: #fff !important;
}

.admin-tabs {
  display: flex !important;
  gap: 0 !important;
  padding: 0 24px !important;
  border-bottom: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s1) 92%, transparent) !important;
  flex-wrap: wrap;
}
.admin-tab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 12px 14px !important;
  margin-bottom: -1px !important;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  color: var(--t3) !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  transition: color 120ms ease, border-color 120ms ease, background 120ms ease, transform 120ms ease !important;
}
.admin-tab svg {
  flex-shrink: 0;
}
.admin-tab:hover {
  color: var(--t1) !important;
}
.admin-tab:active {
  transform: scale(0.98);
}
.admin-tab.active {
  color: var(--pink) !important;
  background: transparent !important;
  border-bottom-color: var(--pink) !important;
  box-shadow: none !important;
}

.admin-tab-panel {
  padding: 24px 26px 28px;
}
.admin-tab-panel[hidden] {
  display: none !important;
}
.admin-tab-desc {
  margin: 0 0 18px;
  color: var(--t3);
  font-size: 12.5px;
  line-height: 1.6;
}

.admin-org-section,
.admin-add-user-section {
  border-radius: 16px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s1) 95%, transparent);
  padding: 18px;
}
.admin-org-section + .admin-org-section,
.admin-org-section + .admin-add-user-section {
  margin-top: 18px;
}
.admin-org-section--evrim {
  border-color: rgba(232,4,126,0.14);
}
.admin-org-section--ais {
  border-color: rgba(96,165,250,0.16);
}
.admin-org-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.admin-org-label {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.admin-org-label--evrim {
  background: rgba(232,4,126,0.08);
  color: var(--pink);
  border-color: rgba(232,4,126,0.18);
}
.admin-org-label--ais {
  background: rgba(96,165,250,0.08);
  color: #60a5fa;
  border-color: rgba(96,165,250,0.18);
}
.admin-org-hint {
  color: var(--t3);
  font-size: 12px;
  line-height: 1.45;
}

.admin-user-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.admin-empty {
  margin: 0;
  padding: 16px 18px;
  border: 1px dashed var(--b2);
  border-radius: 12px;
  color: var(--t3);
  font-size: 12.5px;
  text-align: center;
  background: color-mix(in srgb, var(--s2) 88%, transparent);
}
.admin-user-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.92fr) minmax(0, 1.55fr);
  gap: 16px;
  padding: 16px;
  border-radius: 14px;
  border: 1px solid var(--b1);
  background: var(--float);
  transition: border-color 120ms ease, transform 120ms ease, background 120ms ease;
}
[data-theme="light"] .admin-user-card {
  background: #fff;
}
.admin-user-card:hover {
  border-color: var(--b2);
  transform: translateY(-1px);
}
.admin-user-card-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.admin-avatar {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  border: 1px solid transparent;
}
.admin-avatar--evrim {
  background: rgba(232,4,126,0.1);
  color: var(--pink);
  border-color: rgba(232,4,126,0.16);
}
.admin-avatar--ais {
  background: rgba(96,165,250,0.1);
  color: #60a5fa;
  border-color: rgba(96,165,250,0.18);
}
.admin-user-info {
  min-width: 0;
}
.admin-user-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.admin-username {
  min-width: 0;
  color: var(--t1);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.admin-you-badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  border: 1px solid rgba(232,4,126,0.2);
  background: rgba(232,4,126,0.08);
  color: var(--pink);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.admin-user-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 5px;
  min-width: 0;
}
.admin-joined {
  color: var(--t4);
  font-size: 11.5px;
}
.admin-pool-hint {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.admin-pool-hint--private {
  color: rgba(239,68,68,0.82);
  border: 1px solid rgba(239,68,68,0.16);
  background: rgba(239,68,68,0.06);
}
.admin-pool-hint--common {
  color: rgba(46,204,110,0.86);
  border: 1px solid rgba(46,204,110,0.16);
  background: rgba(46,204,110,0.06);
}
.admin-pool-hint--owner {
  color: var(--t4);
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
}

.admin-user-card-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  min-width: 0;
}
.admin-control-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.admin-control-label {
  color: var(--t4);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.admin-select,
.admin-input,
.admin-static-val {
  min-height: 38px;
  border-radius: 10px;
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t1);
  font-family: inherit;
  transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
}
.admin-select,
.admin-input {
  padding: 0 12px;
}
.admin-input {
  width: 100%;
  font-size: 13px;
}
.admin-input::placeholder {
  color: var(--t4);
}
.admin-select {
  width: 100%;
  font-size: 12.5px;
  cursor: pointer;
}
.admin-select--sm {
  font-size: 12px;
}
.admin-select:hover,
.admin-input:hover,
.admin-static-val:hover {
  border-color: var(--b2);
}
.admin-select:focus,
.admin-input:focus {
  outline: none;
  border-color: rgba(232,4,126,0.28);
}
.admin-static-val {
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  color: var(--t2);
  font-size: 12px;
  font-weight: 600;
}
.admin-user-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.admin-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 0 12px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--t2);
  font-size: 12px;
  font-weight: 700;
  font-family: inherit;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, color 120ms ease;
}
.admin-action-btn:hover {
  border-color: var(--b2);
}
.admin-action-btn:active {
  transform: scale(0.97);
}
.admin-action-btn:disabled {
  opacity: 0.6;
  cursor: default;
  transform: none;
}
.admin-action-btn--save {
  background: rgba(232,4,126,0.08);
  border-color: rgba(232,4,126,0.16);
  color: var(--pink);
}
.admin-action-btn--save:hover {
  background: rgba(232,4,126,0.14);
  border-color: rgba(232,4,126,0.28);
}
.admin-action-btn--pw {
  background: var(--s2);
  border-color: var(--b1);
}
.admin-action-btn--pw:hover {
  background: var(--s3);
  color: var(--t1);
}
.admin-action-btn--del {
  width: 38px;
  min-width: 38px;
  padding: 0;
  color: rgba(239,68,68,0.76);
  background: rgba(239,68,68,0.06);
  border-color: rgba(239,68,68,0.16);
}
.admin-action-btn--del:hover {
  color: rgb(239,68,68);
  background: rgba(239,68,68,0.12);
  border-color: rgba(239,68,68,0.3);
}

.admin-section-title {
  margin: 0 0 14px;
  color: var(--t2);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.admin-add-user-section {
  margin-top: 18px;
}
.admin-add-user-form {
  display: grid;
  grid-template-columns: minmax(150px, 1.15fr) minmax(160px, 1.2fr) repeat(3, minmax(120px, 0.85fr)) auto;
  gap: 10px;
  align-items: end;
}
.admin-add-user-section .user-add-btn {
  min-height: 38px;
  padding: 0 16px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
}

.admin-pool-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.admin-pool-kpi {
  display: grid;
  gap: 6px;
  padding: 16px;
  border-radius: 16px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s1) 95%, transparent);
}
.admin-pool-kpi svg {
  color: var(--t3);
}
.admin-pool-kpi-value {
  color: var(--t1);
  font-size: 28px;
  font-weight: 750;
  letter-spacing: -0.04em;
  line-height: 1;
}
.admin-pool-kpi-label {
  color: var(--t3);
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.4;
}
.admin-pool-kpi--private {
  border-color: rgba(239,68,68,0.16);
}
.admin-pool-kpi--private .admin-pool-kpi-value {
  color: rgba(239,68,68,0.85);
}
.admin-pool-kpi--common {
  border-color: rgba(46,204,110,0.16);
}
.admin-pool-kpi--common .admin-pool-kpi-value {
  color: rgba(46,204,110,0.86);
}

.admin-access-map {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  margin-top: 18px;
}
.admin-access-org {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s1) 95%, transparent);
}
.admin-access-org--evrim {
  border-color: rgba(232,4,126,0.16);
}
.admin-access-org--ais {
  border-color: rgba(96,165,250,0.18);
}
.admin-access-org-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  color: var(--t1);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.admin-access-org--evrim .admin-access-org-title {
  color: var(--pink);
}
.admin-access-org--ais .admin-access-org-title {
  color: #60a5fa;
}
.admin-user-count {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  background: var(--s2);
  color: var(--t3);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.admin-access-pools {
  display: grid;
  gap: 10px;
}
.admin-access-pool {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--b1);
  background: var(--float);
}
[data-theme="light"] .admin-access-pool {
  background: #fff;
}
.admin-access-pool--private {
  border-color: rgba(239,68,68,0.18);
  background: rgba(239,68,68,0.04);
}
.admin-access-pool--common {
  border-color: rgba(46,204,110,0.18);
  background: rgba(46,204,110,0.04);
}
.admin-access-pool-head {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--t1);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.admin-access-pool-desc {
  margin: 0;
  color: var(--t3);
  font-size: 12.5px;
  line-height: 1.55;
}
.admin-access-pool-desc strong {
  color: var(--t1);
}
.admin-access-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 86px;
  color: var(--t4);
}
.admin-access-arrow span {
  color: var(--t3);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.4;
}
.admin-access-office-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.admin-office-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(96,165,250,0.18);
  background: rgba(96,165,250,0.08);
  color: #60a5fa;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.admin-office-pill strong {
  color: var(--t1);
  font-size: 11px;
}
.admin-access-offices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.admin-access-office {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 136px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(96,165,250,0.16);
  background: rgba(96,165,250,0.06);
}
.admin-access-office--empty {
  opacity: 0.65;
}
.admin-access-office-label {
  color: #60a5fa;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.admin-access-office-count {
  color: var(--t3);
  font-size: 12px;
}
.admin-access-office-users {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}
.admin-mini-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(96,165,250,0.18);
  background: var(--float);
  color: #60a5fa;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
}

@media (max-width: 1100px) {
  .admin-user-card {
    grid-template-columns: 1fr;
  }

  .admin-user-card-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .admin-user-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .admin-add-user-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .admin-add-user-section .user-add-btn {
    width: 100%;
  }

  .admin-access-map {
    grid-template-columns: 1fr;
  }

  .admin-access-arrow {
    min-width: 0;
    flex-direction: row;
  }

  .admin-access-arrow svg {
    transform: rotate(90deg);
  }
}

@media (max-width: 760px) {
  .user-modal.admin-modal {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    border-radius: 16px !important;
  }

  .admin-modal-header {
    padding: 16px 18px 14px !important;
  }

  .admin-modal-summary {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .admin-tabs {
    padding: 0 18px !important;
  }

  .admin-tab-panel {
    padding: 20px 18px 22px;
  }

  .admin-org-section,
  .admin-add-user-section {
    padding: 16px;
  }

  .admin-user-card-controls,
  .admin-pool-kpis,
  .admin-access-offices,
  .admin-add-user-form {
    grid-template-columns: 1fr;
  }

  .admin-access-office {
    min-height: 0;
  }
}

/* ════════════════════════════════════════════════════════════════
   v27 REDESIGN LAYER — coherent final polish
   Radar hierarchy, tender cards, portal status, admin control centre
   ════════════════════════════════════════════════════════════════ */

#app {
  max-width: 1288px;
  padding: 0 36px 96px;
}

.hero {
  padding: 30px 0 24px !important;
}

.hero-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end !important;
  gap: 20px !important;
}

.hero-brand {
  gap: 16px !important;
  align-items: center !important;
}

.hero-brand-text {
  gap: 6px !important;
}

.evrim-wordmark {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  color: var(--pink) !important;
}

.hero-title {
  font-size: clamp(30px, 4vw, 40px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.05em !important;
  line-height: 0.95 !important;
  text-wrap: balance;
}

.hero-actions {
  align-items: center !important;
  gap: 14px !important;
}

.refresh-btn {
  min-height: 46px !important;
  padding: 0 20px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(232,4,126,0.16) !important;
  background: color-mix(in srgb, var(--s2) 84%, var(--pink) 16%) !important;
  color: var(--t1) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.16) !important;
}

.refresh-btn:hover {
  border-color: rgba(232,4,126,0.22) !important;
  background: color-mix(in srgb, var(--s2) 80%, var(--pink) 20%) !important;
  box-shadow: 0 14px 28px rgba(0,0,0,0.18) !important;
}

[data-theme="light"] .refresh-btn {
  background: color-mix(in srgb, #ffffff 88%, var(--pink) 12%) !important;
  border-color: rgba(232,4,126,0.12) !important;
  color: #17171d !important;
  box-shadow: 0 12px 24px rgba(15,23,42,0.08) !important;
}

.schedule-info {
  gap: 10px !important;
}

.schedule-label {
  font-size: 12px !important;
  color: var(--t3) !important;
}

.schedule-edit-btn {
  font-size: 11px !important;
  font-weight: 700 !important;
}

.kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-top: 18px !important;
}

.kpi {
  position: relative;
  overflow: hidden;
  padding: 18px 20px !important;
  border-radius: 18px !important;
  border: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s1) 88%, var(--bg) 12%) !important;
  box-shadow: 0 18px 40px rgba(0,0,0,0.16) !important;
}

.kpi::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, rgba(232,4,126,0.09), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
  pointer-events: none;
}

[data-theme="light"] .kpi {
  background: color-mix(in srgb, #ffffff 92%, var(--pink) 8%) !important;
  box-shadow: 0 18px 34px rgba(15,23,42,0.06) !important;
}

.kpi-value,
.crm-kpi-value,
.score-badge,
.admin-pool-kpi-value {
  font-variant-numeric: tabular-nums;
}

.kpi-value {
  font-size: 34px !important;
}

.kpi-label {
  color: var(--t3) !important;
}

.filters-bar {
  margin: 18px 0 0 !important;
  padding: 14px !important;
  border-radius: 18px !important;
  border: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s1) 90%, var(--bg) 10%) !important;
  box-shadow: 0 18px 34px rgba(0,0,0,0.12) !important;
  top: 82px !important;
}

.search-field input,
.filter-chips select,
.per-page-select,
.export-btn {
  min-height: 38px;
}

.search-field input {
  border-radius: 12px !important;
  padding-left: 40px !important;
}

.filter-chips select,
.per-page-select {
  border-radius: 12px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
}

.export-btn {
  border-radius: 12px !important;
  padding: 0 14px !important;
  font-size: 11.5px !important;
}

.results-bar {
  padding: 18px 4px 12px !important;
  margin-bottom: 10px !important;
}

.results-hint {
  font-size: 12px !important;
  color: var(--t2) !important;
}

.tender-list {
  gap: 14px !important;
}

.tender-card {
  border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%) !important;
  box-shadow: 0 18px 34px rgba(0,0,0,0.12) !important;
  transition: border-color 140ms ease, transform 160ms var(--ease), box-shadow 160ms var(--ease), background 140ms ease !important;
}

[data-theme="light"] .tender-card {
  background: color-mix(in srgb, #ffffff 96%, var(--pink) 4%) !important;
  border-color: rgba(17,17,24,0.08) !important;
  box-shadow: 0 16px 30px rgba(15,23,42,0.06) !important;
}

.tender-card::before {
  width: 4px !important;
  border-radius: 18px 0 0 18px !important;
}

@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    transform: translateY(-2px) !important;
    border-color: rgba(255,255,255,0.14) !important;
    background: color-mix(in srgb, var(--s1) 82%, var(--s2) 18%) !important;
    box-shadow: 0 22px 42px rgba(0,0,0,0.18) !important;
  }

  [data-theme="light"] .tender-card:hover {
    background: color-mix(in srgb, #ffffff 90%, var(--pink) 10%) !important;
    border-color: rgba(17,17,24,0.12) !important;
    box-shadow: 0 20px 34px rgba(15,23,42,0.08) !important;
  }
}

.tc-main {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 20px !important;
  padding: 18px 20px 15px 22px !important;
  align-items: start !important;
}

.tc-header-row {
  margin-bottom: 10px !important;
  gap: 12px !important;
}

.tc-meta-line {
  color: var(--t4) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
}

.tc-title {
  font-size: 16.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.32 !important;
  max-width: 50ch;
  text-wrap: balance;
}

.tc-org {
  font-size: 12px !important;
  color: var(--t2) !important;
  margin-top: 4px !important;
}

.tc-org code {
  background: color-mix(in srgb, var(--s3) 84%, transparent) !important;
}

.tc-ai-summary,
.tc-description {
  max-width: 76ch;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tc-ai-summary {
  margin-top: 10px !important;
  padding: 10px 12px !important;
  border-left: 3px solid rgba(232,4,126,0.28) !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,0.024) !important;
  -webkit-line-clamp: 2;
}

.tc-description {
  margin-top: 10px !important;
  font-size: 12.5px !important;
  color: var(--t2) !important;
  -webkit-line-clamp: 2;
}

.tc-side {
  align-items: flex-end !important;
  gap: 10px !important;
}

.bookmark-btn {
  padding: 4px !important;
  opacity: 0.58;
}

.bookmark-btn:hover,
.bookmark-btn.bookmarked {
  opacity: 1;
}

.score-badge {
  width: 46px !important;
  height: 46px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  background: color-mix(in srgb, var(--s2) 90%, transparent) !important;
}

.score-badge.high {
  border-color: rgba(46,204,110,0.72) !important;
  color: var(--green) !important;
}

.score-badge.mid {
  border-color: rgba(232,4,126,0.72) !important;
  color: var(--pink) !important;
}

.tc-deadline-inline {
  min-height: 32px;
  padding: 0 11px !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
}

.tc-deadline-inline.urgent {
  background: rgba(239,68,68,0.11) !important;
  border-color: rgba(239,68,68,0.18) !important;
}

.tc-deadline-inline.soon {
  background: rgba(245,158,11,0.11) !important;
  border-color: rgba(245,158,11,0.18) !important;
}

.tc-deadline-inline.normal {
  background: rgba(46,204,110,0.1) !important;
  border-color: rgba(46,204,110,0.16) !important;
}

.tc-footer {
  padding: 12px 20px 12px 22px !important;
  border-top: 1px solid var(--b1) !important;
  background: rgba(255,255,255,0.018) !important;
  gap: 12px !important;
}

[data-theme="light"] .tc-footer {
  background: rgba(17,17,24,0.02) !important;
}

.tc-action-bar {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  min-width: 0;
}

.assign-btn,
.status-select,
.priority-select,
.reassign-select,
.tc-expand-btn,
.tc-crm-btn,
.tc-link--doc {
  min-height: 34px;
}

.assign-btn--claim {
  padding: 0 12px !important;
  border: 1px solid rgba(232,4,126,0.18) !important;
  border-radius: 10px !important;
  background: rgba(232,4,126,0.08) !important;
  color: var(--pink) !important;
}

.assign-btn--claim:hover {
  background: rgba(232,4,126,0.12) !important;
  border-color: rgba(232,4,126,0.28) !important;
}

.assign-btn--unclaim {
  padding: 0 12px !important;
  border: 1px solid rgba(239,68,68,0.16) !important;
  border-radius: 10px !important;
  background: rgba(239,68,68,0.06) !important;
  color: rgba(239,68,68,0.88) !important;
}

.status-select,
.priority-select,
.reassign-select {
  min-width: 112px;
  border-radius: 10px !important;
  background-color: var(--s2) !important;
  padding: 0 28px 0 12px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
}

.tc-footer-right {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-left: auto !important;
}

.tc-expand-btn,
.tc-crm-btn {
  padding: 0 12px !important;
  border-radius: 10px !important;
  border: 1px solid var(--b1) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
}

.tc-expand-btn {
  background: transparent !important;
}

.tc-crm-btn {
  background: color-mix(in srgb, var(--s2) 92%, transparent) !important;
  color: var(--t2) !important;
}

.tc-crm-btn:hover,
.tc-expand-btn:hover {
  border-color: var(--b2) !important;
}

.tc-links {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.tc-link {
  font-size: 11px !important;
  font-weight: 700 !important;
}

.tc-link--doc {
  padding: 0 12px !important;
  border-radius: 10px !important;
  background: rgba(232,4,126,0.08) !important;
  border: 1px solid rgba(232,4,126,0.12) !important;
}

.notes-section {
  padding: 0 20px 0 22px !important;
}

.notes-toggle {
  min-height: 36px;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--t3) !important;
}

.notes-toggle:hover {
  color: var(--t1) !important;
}

.section-block {
  margin-top: 58px !important;
}

.section-header {
  margin-bottom: 22px !important;
}

.section-header h2 {
  font-size: 28px !important;
  font-weight: 750 !important;
  letter-spacing: -0.05em !important;
}

.sources-grid {
  gap: 14px !important;
}

.source-card {
  padding: 20px 22px !important;
  border-radius: 18px !important;
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%) !important;
  box-shadow: 0 18px 32px rgba(0,0,0,0.12) !important;
}

[data-theme="light"] .source-card {
  background: color-mix(in srgb, #ffffff 96%, var(--pink) 4%) !important;
  box-shadow: 0 16px 26px rgba(15,23,42,0.06) !important;
}

.user-modal.admin-modal {
  width: min(1320px, calc(100vw - 40px)) !important;
  max-width: min(1320px, calc(100vw - 40px)) !important;
  border-radius: 22px !important;
  background: color-mix(in srgb, var(--float) 94%, var(--bg) 6%) !important;
  box-shadow: 0 26px 60px rgba(0,0,0,0.34) !important;
}

.admin-modal-header {
  padding: 20px 24px 18px !important;
  background: rgba(255,255,255,0.015) !important;
}

.admin-modal-title h3 {
  font-size: 18px !important;
  font-weight: 750 !important;
}

.admin-modal-summary {
  gap: 8px;
}

.admin-summary-pill {
  min-height: 30px !important;
  padding: 0 13px !important;
}

.admin-tabs {
  padding: 0 24px !important;
  background: rgba(255,255,255,0.012) !important;
}

.admin-tab {
  min-height: 44px;
}

.admin-tab.active {
  background: rgba(232,4,126,0.08) !important;
}

.admin-tab-panel {
  padding: 26px !important;
}

.admin-org-section,
.admin-add-user-section {
  padding: 22px !important;
  border-radius: 22px !important;
  background: color-mix(in srgb, var(--s1) 90%, var(--bg) 10%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
}

.admin-user-cards {
  gap: 14px !important;
}

.admin-user-card {
  grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.15fr) !important;
  padding: 18px !important;
  border-radius: 18px !important;
  background: color-mix(in srgb, var(--float) 94%, transparent) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,0.08) !important;
}

.admin-user-card-controls {
  padding: 14px !important;
  border-radius: 16px !important;
  border: 1px solid var(--b1) !important;
  background: rgba(255,255,255,0.022) !important;
}

.admin-control-label {
  color: var(--t3) !important;
  font-size: 10.5px !important;
}

.admin-select,
.admin-input,
.admin-static-val {
  min-height: 40px !important;
  border-radius: 12px !important;
  background: color-mix(in srgb, var(--bg) 76%, var(--s2) 24%) !important;
}

[data-theme="light"] .admin-select,
[data-theme="light"] .admin-input,
[data-theme="light"] .admin-static-val {
  background: rgba(255,255,255,0.92) !important;
}

.admin-user-actions {
  gap: 10px !important;
}

.admin-action-btn {
  min-height: 40px !important;
  border-radius: 12px !important;
  padding: 0 13px !important;
}

.admin-add-user-form {
  grid-template-columns: minmax(160px, 1.3fr) minmax(170px, 1.3fr) repeat(3, minmax(130px, 0.9fr)) auto !important;
}

.admin-pool-kpis {
  gap: 14px !important;
}

.admin-pool-kpi {
  padding: 18px !important;
  border-radius: 18px !important;
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%) !important;
  box-shadow: 0 16px 30px rgba(0,0,0,0.08) !important;
}

.admin-access-map {
  gap: 18px !important;
}

.admin-access-org {
  padding: 20px !important;
  border-radius: 20px !important;
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%) !important;
  box-shadow: 0 16px 30px rgba(0,0,0,0.08) !important;
}

.admin-access-office {
  border-radius: 16px !important;
  min-height: 142px !important;
}

@media (max-width: 1080px) {
  #app {
    padding: 0 22px 80px;
  }

  .hero-top {
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }

  .hero-actions {
    justify-content: flex-start !important;
  }

  .kpi-strip {
    grid-template-columns: 1fr !important;
  }

  .tc-main {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .tc-side {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
  }

  .tc-footer {
    align-items: flex-start !important;
  }

  .tc-footer-right {
    width: 100%;
    margin-left: 0 !important;
    justify-content: flex-start !important;
  }

  .admin-user-card {
    grid-template-columns: 1fr !important;
  }

  .admin-add-user-form {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  #app {
    padding: 0 16px 72px;
  }

  .hero {
    padding: 22px 0 18px !important;
  }

  .hero-title {
    font-size: 28px !important;
  }

  .filters-bar {
    padding: 12px !important;
    border-radius: 16px !important;
  }

  .results-bar {
    gap: 10px !important;
  }

  .results-bar-right {
    width: 100%;
    justify-content: space-between;
  }

  .tc-main {
    padding: 16px 16px 12px 18px !important;
  }

  .tc-footer {
    padding: 12px 16px 12px 18px !important;
  }

  .notes-section {
    padding: 0 16px 0 18px !important;
  }

  .tc-title {
    font-size: 15px !important;
  }

  .user-modal.admin-modal {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    border-radius: 18px !important;
    background: var(--float) !important;
  }

  .admin-modal-header,
  .admin-tab-panel,
  .admin-org-section,
  .admin-add-user-section {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .admin-user-card-controls,
  .admin-add-user-form,
  .admin-pool-kpis,
  .admin-access-offices {
    grid-template-columns: 1fr !important;
  }

  .admin-modal-header {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    background: var(--float) !important;
  }

  .admin-modal-title {
    grid-column: 1 !important;
  }

  .admin-modal .preview-close-btn {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .admin-modal-summary {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    gap: 8px !important;
  }

  .admin-modal .user-modal-body {
    background: var(--float) !important;
  }

  .admin-access-office {
    min-height: 0 !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   v28 TYPOGRAPHY CALIBRATION — better readability across displays
   Higher minimums for 1080p office laptops, mild scaling upward on larger screens
   ════════════════════════════════════════════════════════════════ */

:root {
  --fs-label: clamp(11.5px, 0.08vw + 11.2px, 12.5px);
  --fs-ui: clamp(12.5px, 0.12vw + 12.1px, 14px);
  --fs-body: clamp(13.5px, 0.16vw + 12.9px, 15.25px);
  --fs-title: clamp(17px, 0.3vw + 15.9px, 19.5px);
  --fs-title-lg: clamp(27px, 0.8vw + 24px, 36px);
}

html {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

body {
  font-size: var(--fs-body);
  line-height: 1.5;
  font-kerning: normal;
}

button,
input,
select,
textarea {
  font: inherit;
}

.user-avatar,
.user-mgmt-btn,
.logout-btn,
.page-tab,
.schedule-label,
.schedule-edit-btn,
.results-hint,
.per-page-select,
.export-btn,
.search-field input,
.filter-chips select,
.status-select,
.priority-select,
.reassign-select,
.assign-btn,
.tc-expand-btn,
.tc-crm-btn,
.tc-link,
.tc-link--doc,
.notes-toggle,
.crm-add-btn,
.crm-access-info-btn,
.admin-summary-pill,
.admin-tab,
.admin-select,
.admin-input,
.admin-static-val,
.admin-action-btn,
.admin-office-pill,
.admin-user-count {
  font-size: var(--fs-ui) !important;
}

.evrim-wordmark,
.kpi-label,
.tc-meta-line,
.dl-left,
.admin-control-label,
.admin-section-title,
.admin-pool-kpi-label,
.admin-access-office-label,
.admin-access-arrow span {
  font-size: var(--fs-label) !important;
}

.hero-title,
.crm-title,
.section-header h2 {
  font-size: var(--fs-title-lg) !important;
}

.tc-title,
.crm-card-company,
.admin-username,
.src-name {
  font-size: var(--fs-title) !important;
}

.tc-org,
.tc-ai-summary,
.tc-description,
.note-text,
.src-province,
.src-error,
.admin-org-hint,
.admin-joined,
.admin-tab-desc,
.admin-access-pool-desc,
.admin-access-office-count,
.crm-subtitle,
.crm-card-project,
.crm-card-chip,
.crm-card-footer,
.crm-office-badge {
  font-size: var(--fs-body) !important;
}

.kpi-value,
.crm-kpi-value,
.admin-pool-kpi-value {
  font-size: clamp(32px, 0.7vw + 29px, 40px) !important;
}

.score-badge {
  font-size: clamp(12.5px, 0.14vw + 12px, 14px) !important;
}

.admin-modal-title h3 {
  font-size: clamp(19px, 0.26vw + 18px, 22px) !important;
}

.admin-org-label,
.crm-org-badge {
  font-size: clamp(11.5px, 0.08vw + 11.1px, 12.5px) !important;
}

.tc-title,
.hero-title,
.section-header h2,
.crm-title {
  text-wrap: balance;
}

.tc-ai-summary,
.tc-description,
.crm-subtitle,
.admin-access-pool-desc {
  line-height: 1.58 !important;
}

@media (max-width: 720px) {
  :root {
    --fs-ui: 12.75px;
    --fs-body: 13.5px;
    --fs-title: 16.5px;
    --fs-title-lg: 29px;
  }
}

/* ════════════════════════════════════════════════════════════════
   v30 OPERATIONS UPGRADE
   Saved views, compact tender mode, quick search, source health,
   stronger tender subject framing, and admin assignment queue
   ════════════════════════════════════════════════════════════════ */

.filters-bar,
.crm-filters {
  align-items: center !important;
  gap: 12px !important;
}

.filters-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.filter-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t2);
  font-size: var(--fs-ui);
  font-weight: 650;
  letter-spacing: -0.01em;
  transition: transform 160ms var(--ease), border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.filter-action-btn:hover {
  border-color: rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: var(--t1);
}

.filter-action-btn:active {
  transform: scale(0.98);
}

[data-theme="light"] .filter-action-btn {
  background: rgba(255,255,255,0.92);
  border-color: rgba(17,17,24,0.08);
}

.saved-views {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 18px;
}

.saved-views[hidden] {
  display: none !important;
}

.saved-view-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}

.saved-view-btn,
.saved-view-del {
  border: 0;
  background: transparent;
  color: inherit;
}

.saved-view-btn {
  min-height: 30px;
  padding: 0 10px 0 12px;
  border-radius: 999px;
  color: var(--t2);
  font-size: var(--fs-ui);
  font-weight: 650;
  transition: background 140ms ease, color 140ms ease;
}

.saved-view-btn:hover {
  background: rgba(255,255,255,0.06);
  color: var(--t1);
}

.saved-view-del {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  color: var(--t4);
  font-size: 18px;
  line-height: 1;
}

.saved-view-del:hover {
  background: rgba(239,68,68,0.1);
  color: #f87171;
}

[data-theme="light"] .saved-view-chip {
  border-color: rgba(17,17,24,0.08);
  background: rgba(255,255,255,0.8);
}

.view-toggle {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}

.view-toggle-btn {
  min-height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--t4);
  font-size: var(--fs-ui);
  font-weight: 650;
  transition: background 140ms ease, color 140ms ease, transform 160ms var(--ease);
}

.view-toggle-btn:hover {
  color: var(--t1);
}

.view-toggle-btn.active {
  background: rgba(232,4,126,0.12);
  color: var(--pink);
}

.view-toggle-btn:active {
  transform: scale(0.98);
}

[data-theme="light"] .view-toggle {
  border-color: rgba(17,17,24,0.08);
  background: rgba(255,255,255,0.92);
}

.tc-kicker-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.tc-focus-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(99,102,241,0.12);
  border: 1px solid rgba(99,102,241,0.2);
  color: #a5b4fc;
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.tc-brief {
  margin-top: 10px;
  max-width: 74ch;
  color: var(--t1);
  font-size: var(--fs-body);
  line-height: 1.55;
  text-wrap: pretty;
}

.tc-tags-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 11px;
}

.tc-tag {
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--t2);
  font-size: var(--fs-label);
  font-weight: 650;
}

.tc-tag--pdf {
  color: #f9a8d4;
  border-color: rgba(232,4,126,0.18);
  background: rgba(232,4,126,0.08);
}

.tender-list--compact {
  gap: 10px !important;
}

.tender-list--compact .tender-card {
  border-radius: 16px !important;
}

.tender-list--compact .tc-main {
  grid-template-columns: minmax(0, 1.25fr) auto !important;
  gap: 16px !important;
  padding: 16px 18px 12px 20px !important;
}

.tender-list--compact .tc-header-row {
  margin-bottom: 8px !important;
}

.tender-list--compact .tc-title {
  font-size: clamp(14.5px, 0.16vw + 14px, 16px) !important;
  line-height: 1.28 !important;
  max-width: none;
}

.tender-list--compact .tc-brief {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 6px;
}

.tender-list--compact .tc-org {
  margin-top: 5px !important;
}

.tender-list--compact .tc-tags-row {
  margin-top: 8px;
}

.tender-list--compact .tc-footer {
  padding: 10px 18px 10px 20px !important;
}

.tender-list--compact .notes-section {
  padding: 0 18px 0 20px !important;
}

.source-health-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.source-health-card {
  padding: 18px 18px 16px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.08);
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%);
  box-shadow: 0 16px 30px rgba(0,0,0,0.08);
}

.source-health-label {
  display: block;
  color: var(--t4);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.source-health-value {
  display: block;
  margin-top: 10px;
  color: var(--t1);
  font-size: clamp(24px, 0.3vw + 22px, 30px);
  font-weight: 760;
  letter-spacing: -0.05em;
}

.source-health-copy {
  margin-top: 8px;
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.5;
}

.src-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.src-health-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: var(--fs-label);
  font-weight: 700;
}

.src-health-pill--healthy {
  background: rgba(46,204,110,0.1);
  border: 1px solid rgba(46,204,110,0.18);
  color: var(--green);
}

.src-health-pill--review {
  background: rgba(245,158,11,0.12);
  border: 1px solid rgba(245,158,11,0.18);
  color: #fbbf24;
}

.src-health-pill--down {
  background: rgba(239,68,68,0.12);
  border: 1px solid rgba(239,68,68,0.18);
  color: #f87171;
}

.src-bar {
  position: relative;
  height: 8px;
  margin-top: 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  overflow: hidden;
}

.src-bar span {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(232,4,126,0.78), rgba(99,102,241,0.78));
}

.src-audit-copy {
  margin-top: 8px;
  color: var(--t3);
  font-size: var(--fs-ui);
  line-height: 1.45;
}

.source-card--review {
  border-color: rgba(245,158,11,0.16) !important;
}

.source-card--down {
  border-color: rgba(239,68,68,0.18) !important;
}

.admin-ops-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0;
}

.admin-ops-card,
.admin-access-matrix {
  padding: 20px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%);
  box-shadow: 0 16px 30px rgba(0,0,0,0.08);
}

.admin-ops-card--solo {
  margin: 18px 0;
}

.admin-ops-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.admin-queue-list {
  display: grid;
  gap: 10px;
}

.admin-queue-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.03);
}

.admin-queue-copy {
  display: grid;
  gap: 4px;
}

.admin-queue-copy strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  letter-spacing: -0.02em;
}

.admin-queue-copy span {
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.45;
}

.admin-queue-actions {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.admin-access-matrix {
  margin-top: 18px;
}

.admin-access-matrix-table {
  display: grid;
  gap: 8px;
}

.admin-access-matrix-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(220px, 1.2fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
}

.admin-access-matrix-row strong {
  color: var(--t1);
}

.admin-access-matrix-row span {
  color: var(--t3);
  font-size: var(--fs-body);
}

.crm-timeline {
  border-top: 1px solid var(--b1);
  margin-top: 18px;
  padding-top: 18px;
}

.crm-timeline-list {
  gap: 12px !important;
}

.crm-tl-entry {
  padding: 12px 0 0 2px;
}

.crm-tl-note {
  color: var(--t2);
  font-size: var(--fs-body);
  line-height: 1.52;
}

[data-theme="light"] .source-health-card,
[data-theme="light"] .admin-ops-card,
[data-theme="light"] .admin-access-matrix {
  background: rgba(255,255,255,0.96);
  border-color: rgba(17,17,24,0.08);
}

[data-theme="light"] .admin-queue-item,
[data-theme="light"] .admin-access-matrix-row {
  background: rgba(17,17,24,0.02);
  border-color: rgba(17,17,24,0.06);
}

@media (max-width: 1080px) {
  .source-health-panel,
  .admin-ops-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-queue-item,
  .admin-access-matrix-row {
    grid-template-columns: 1fr;
  }

  .admin-queue-actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .filters-bar,
  .crm-filters {
    align-items: stretch !important;
  }

  .filters-actions {
    width: 100%;
    margin-left: 0;
  }

  .filter-action-btn,
  .view-toggle {
    width: 100%;
  }

  .saved-views {
    overflow-x: auto;
    padding-bottom: 4px;
    flex-wrap: nowrap;
  }

  .saved-view-chip {
    flex: 0 0 auto;
  }

  .results-bar-right {
    width: 100%;
    flex-wrap: wrap;
  }

  .source-health-panel,
  .admin-ops-grid {
    grid-template-columns: 1fr;
  }

  .tender-list--compact .tc-main,
  .tender-list--compact .tc-footer {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* v31 RELEASE POLISH */

:root {
  --fs-label: clamp(11px, 0.06vw + 10.8px, 12px);
  --fs-ui: clamp(12px, 0.1vw + 11.7px, 13.25px);
  --fs-body: clamp(13px, 0.12vw + 12.6px, 14.5px);
  --fs-title: clamp(16.25px, 0.22vw + 15.4px, 18.5px);
  --fs-title-lg: clamp(25.5px, 0.72vw + 23.2px, 34px);
}

.crm-header-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.crm-add-btn--secondary {
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  color: var(--t2);
  box-shadow: none;
}

.crm-add-btn--secondary:hover {
  opacity: 1;
  color: var(--t1);
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.16);
}

.hero-title {
  font-size: clamp(27px, 0.72vw + 24.5px, 37px) !important;
}

.kpi-value {
  font-size: clamp(30px, 0.6vw + 27px, 38px) !important;
}

.crm-kpi-value {
  font-size: clamp(24px, 0.46vw + 22px, 32px) !important;
}

.tc-title {
  font-size: clamp(14.2px, 0.08vw + 13.95px, 15.1px) !important;
}

.results-hint,
.tc-brief,
.crm-subtitle,
.crm-tl-note,
.admin-tab-desc,
.source-health-copy,
.src-audit-copy {
  font-size: var(--fs-body) !important;
}

.user-mgmt-btn,
.logout-btn,
.filter-action-btn,
.crm-add-btn,
.crm-doc-upload-btn,
.crm-cancel-btn,
.crm-save-btn,
.admin-action-btn,
.admin-select,
.per-page-select,
.view-toggle-btn,
.search-field input,
.crm-filters select,
.crm-input,
.crm-textarea {
  font-size: var(--fs-ui) !important;
}

.crm-modal--import {
  width: min(980px, 96vw);
}

.crm-import-top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.crm-import-upload {
  min-width: 132px;
  justify-content: center;
}

.crm-import-file-meta {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.crm-import-file-meta strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.crm-import-file-meta span {
  color: var(--t3);
  font-size: var(--fs-label);
  line-height: 1.45;
}

.crm-import-analyze-btn {
  min-width: 132px;
}

.crm-import-config {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.crm-import-summary {
  margin-top: 20px;
  border-top: 1px solid var(--b1);
  padding-top: 18px;
}

.crm-import-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.crm-import-stat {
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid var(--b1);
  background: color-mix(in srgb, var(--s2) 86%, transparent);
  display: grid;
  gap: 4px;
}

.crm-import-stat-value {
  color: var(--t1);
  font-size: clamp(20px, 0.28vw + 18px, 24px);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.crm-import-stat-label {
  color: var(--t3);
  font-size: var(--fs-label);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.crm-import-detected {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.crm-import-block {
  display: grid;
  gap: 10px;
}

.crm-import-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.crm-import-chip {
  display: inline-grid;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}

.crm-import-chip strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  font-weight: 700;
}

.crm-import-chip span {
  color: var(--t3);
  font-size: var(--fs-label);
  line-height: 1.4;
}

.crm-import-chip--muted {
  background: rgba(255,255,255,0.02);
  border-color: rgba(255,255,255,0.05);
}

.crm-import-preview-wrap {
  margin-top: 16px;
}

.crm-import-preview {
  display: grid;
  gap: 10px;
  max-height: 320px;
  overflow: auto;
  padding-right: 4px;
}

.crm-import-preview-row {
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.07);
  background: rgba(255,255,255,0.025);
  display: grid;
  gap: 8px;
}

.crm-import-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.crm-import-preview-head strong {
  color: var(--t1);
  font-size: var(--fs-title);
  letter-spacing: -0.03em;
}

.crm-import-preview-head span {
  color: var(--t4);
  font-size: var(--fs-label);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  flex-shrink: 0;
}

.crm-import-preview-body {
  display: grid;
  gap: 4px;
}

.crm-import-preview-body span {
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.45;
}

.crm-import-preview-empty {
  padding: 18px 16px;
  border-radius: 14px;
  border: 1px dashed var(--b1);
  color: var(--t3);
  font-size: var(--fs-body);
}

[data-theme="light"] .crm-add-btn--secondary,
[data-theme="light"] .crm-import-stat,
[data-theme="light"] .crm-import-chip,
[data-theme="light"] .crm-import-preview-row {
  background: rgba(17,17,24,0.02);
  border-color: rgba(17,17,24,0.08);
}

@media (max-width: 980px) {
  .crm-import-config,
  .crm-import-stats,
  .crm-import-detected {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .crm-import-top,
  .crm-import-config,
  .crm-import-stats,
  .crm-import-detected {
    grid-template-columns: 1fr;
  }

  .crm-import-analyze-btn,
  .crm-import-upload {
    width: 100%;
  }

  .crm-import-preview-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* v32 FINAL CALIBRATION */

:root {
  --fs-label: clamp(10.85px, 0.05vw + 10.7px, 11.75px);
  --fs-ui: clamp(11.85px, 0.08vw + 11.55px, 13px);
  --fs-body: clamp(12.85px, 0.11vw + 12.45px, 14.2px);
  --fs-title: clamp(16px, 0.2vw + 15.2px, 18.1px);
  --fs-title-lg: clamp(24.75px, 0.66vw + 22.8px, 33px);
}

html {
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
}

body,
input,
button,
select,
textarea {
  letter-spacing: -0.01em;
}

.hero-title {
  font-size: clamp(26px, 0.68vw + 23.8px, 35.5px) !important;
}

.kpi-value {
  font-size: clamp(28px, 0.52vw + 25.9px, 35px) !important;
}

.crm-kpi-value {
  font-size: clamp(23px, 0.38vw + 21.5px, 30px) !important;
}

.tc-title {
  font-size: clamp(13.95px, 0.06vw + 13.7px, 14.8px) !important;
  line-height: 1.32 !important;
}

.tc-brief,
.tc-description,
.crm-subtitle,
.admin-tab-desc,
.source-health-copy,
.src-audit-copy {
  line-height: 1.52 !important;
}

.user-avatar,
.schedule-label,
.admin-user-count,
.crm-import-stat-value,
.kpi-value,
.crm-kpi-value,
.admin-pool-kpi-value,
.score-badge,
.deadline-badge,
.tc-meta-pill,
.crm-origin-badge,
.crm-org-badge,
.crm-office-badge {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 720px) {
  :root {
    --fs-ui: 12px;
    --fs-body: 13px;
    --fs-title: 16px;
    --fs-title-lg: 27px;
  }
}

/* v33 RADAR OPERATOR UPGRADE */

.tender-card--workflow-shortlisted {
  border-color: rgba(16,185,129,0.24) !important;
  box-shadow: 0 20px 40px rgba(3, 18, 13, 0.22);
}

.tender-card--workflow-review {
  border-color: rgba(245,158,11,0.24) !important;
}

.radar-state-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  color: var(--t2);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.radar-state-pill--shortlisted {
  background: rgba(16,185,129,0.12);
  border-color: rgba(16,185,129,0.24);
  color: #6ee7b7;
}

.radar-state-pill--review {
  background: rgba(245,158,11,0.12);
  border-color: rgba(245,158,11,0.24);
  color: #fbbf24;
}

.radar-state-pill--hidden {
  background: rgba(148,163,184,0.1);
  border-color: rgba(148,163,184,0.18);
  color: rgba(226,232,240,0.82);
}

.radar-state-pill--inbox {
  background: rgba(99,102,241,0.1);
  border-color: rgba(99,102,241,0.18);
  color: #a5b4fc;
}

.radar-state-pill--compact {
  min-height: 22px;
  padding: 0 8px;
}

.tc-ops-strip {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.05);
}

.tc-ops-copy {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.tc-fit-note {
  color: var(--t2);
  font-size: var(--fs-body);
  line-height: 1.45;
  text-wrap: pretty;
}

.radar-decision-group {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.radar-decision-group--compact {
  width: 100%;
}

.radar-decision-btn {
  min-height: 28px;
  padding: 0 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  color: var(--t3);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.01em;
  transition: transform 140ms var(--ease), border-color 140ms ease, background 140ms ease, color 140ms ease;
}

.radar-decision-btn:hover {
  color: var(--t1);
  border-color: rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
}

.radar-decision-btn:active {
  transform: scale(0.97);
}

.radar-decision-btn--shortlisted.active {
  background: rgba(16,185,129,0.12);
  border-color: rgba(16,185,129,0.26);
  color: #6ee7b7;
}

.radar-decision-btn--review.active {
  background: rgba(245,158,11,0.12);
  border-color: rgba(245,158,11,0.26);
  color: #fbbf24;
}

.radar-decision-btn--hidden.active {
  background: rgba(148,163,184,0.14);
  border-color: rgba(148,163,184,0.24);
  color: #e2e8f0;
}

.tender-operator-view {
  display: grid;
  gap: 10px;
}

.tender-operator-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px 8px;
}

.tender-operator-copy {
  display: grid;
  gap: 4px;
}

.tender-operator-copy strong {
  color: var(--t1);
  font-size: var(--fs-title);
  letter-spacing: -0.03em;
}

.tender-operator-copy span {
  color: var(--t3);
  font-size: var(--fs-body);
}

.tender-operator-grid-head,
.trv-row {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) minmax(220px, 1.25fr) minmax(160px, 1fr) minmax(110px, 0.8fr) minmax(150px, 0.95fr) minmax(270px, 1.5fr);
  gap: 16px;
}

.tender-operator-grid-head {
  padding: 0 18px 4px;
  color: var(--t4);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.tender-row {
  padding: 0 !important;
  overflow: hidden;
}

.tender-row .notes-section {
  padding: 0 18px 16px !important;
}

.tender-row .tc-details {
  margin: 0 18px 16px;
}

.trv-row {
  align-items: start;
  padding: 16px 18px;
}

.trv-col {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.trv-col strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  line-height: 1.35;
  letter-spacing: -0.02em;
}

.trv-col span {
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.45;
}

.trv-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.trv-title {
  color: var(--t1);
  font-size: 14.6px;
  font-weight: 720;
  line-height: 1.34;
  letter-spacing: -0.025em;
}

.trv-copy {
  color: var(--t2) !important;
}

.trv-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.trv-bookmark {
  width: 32px;
  height: 32px;
  margin-top: 2px;
}

.trv-fit {
  color: var(--t2) !important;
}

.trv-deadline {
  display: inline-flex;
  width: fit-content;
  min-height: 22px;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  font-size: var(--fs-label) !important;
  font-weight: 700;
}

.trv-deadline--urgent {
  background: rgba(239,68,68,0.12);
  color: #fda4af !important;
}

.trv-deadline--soon {
  background: rgba(245,158,11,0.12);
  color: #fbbf24 !important;
}

.trv-deadline--normal {
  background: rgba(16,185,129,0.12);
  color: #6ee7b7 !important;
}

.trv-col--actions {
  gap: 10px;
}

.trv-primary-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.trv-assign-btn,
.tender-row .tc-crm-btn,
.tender-row .tc-expand-btn {
  min-height: 32px;
  padding: 0 12px;
}

.tc-links--compact {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tender-row .tc-link {
  min-height: 30px;
  padding: 0 10px;
}

[data-theme="light"] .radar-decision-btn {
  background: rgba(17,17,24,0.02);
  border-color: rgba(17,17,24,0.08);
}

@media (max-width: 1320px) {
  .tender-operator-grid-head,
  .trv-row {
    grid-template-columns: minmax(0, 2.2fr) minmax(200px, 1.2fr) minmax(150px, 0.9fr) minmax(100px, 0.8fr) minmax(140px, 0.95fr) minmax(220px, 1.25fr);
  }
}

@media (max-width: 1120px) {
  .tender-operator-grid-head {
    display: none;
  }

  .trv-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trv-col--actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .tc-ops-strip,
  .trv-row {
    grid-template-columns: 1fr;
  }

  .tc-ops-strip {
    align-items: stretch;
  }

  .radar-decision-group {
    width: 100%;
  }

  .radar-decision-btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* v34 IMPORT SURFACE POLISH */

.crm-import-top {
  grid-template-columns: minmax(280px, 1.2fr) minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 14px;
}

.crm-import-upload {
  min-width: 0;
  min-height: 74px;
  justify-content: flex-start;
  gap: 12px;
  padding: 0 18px;
  border-style: dashed;
  background: rgba(255,255,255,0.02);
}

.crm-import-upload-copy {
  display: grid;
  gap: 2px;
  text-align: left;
}

.crm-import-upload-copy strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  font-weight: 700;
}

.crm-import-upload-copy span {
  color: var(--t3);
  font-size: var(--fs-label);
  line-height: 1.4;
}

.crm-import-upload.is-dragover {
  border-color: rgba(232,4,126,0.42);
  background: rgba(232,4,126,0.07);
  color: var(--t1);
  box-shadow: inset 0 0 0 1px rgba(232,4,126,0.16), 0 16px 40px rgba(232,4,126,0.08);
}

.crm-import-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.crm-import-template-btn {
  min-width: 96px;
}

.crm-import-stats {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.crm-import-stat:nth-child(3) {
  border-color: rgba(245,158,11,0.14);
  background: rgba(245,158,11,0.05);
}

.crm-import-block--duplicates {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--b1);
}

.crm-import-block-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.crm-import-block-copy {
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.45;
}

.crm-import-chip {
  gap: 4px;
}

.crm-import-chip-meta {
  color: var(--t4);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.crm-import-chip--exact {
  border-color: rgba(46,204,110,0.18);
  background: rgba(46,204,110,0.08);
}

.crm-import-chip--fuzzy {
  border-color: rgba(59,130,246,0.18);
  background: rgba(59,130,246,0.09);
}

.crm-import-chip--heuristic {
  border-color: rgba(245,158,11,0.2);
  background: rgba(245,158,11,0.08);
}

.crm-import-duplicate-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.crm-import-duplicate-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(245,158,11,0.14);
  background: rgba(245,158,11,0.05);
}

.crm-import-duplicate-copy {
  display: grid;
  gap: 3px;
}

.crm-import-duplicate-copy strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  letter-spacing: -0.02em;
}

.crm-import-duplicate-copy span {
  color: var(--t3);
  font-size: var(--fs-body);
  line-height: 1.45;
}

.crm-import-duplicate-meta {
  display: grid;
  gap: 4px;
  justify-items: end;
  text-align: right;
}

.crm-import-duplicate-meta span {
  color: var(--t4);
  font-size: var(--fs-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.crm-import-duplicate-meta strong {
  color: #fbbf24;
  font-size: var(--fs-ui);
  font-weight: 700;
}

[data-theme="light"] .crm-import-upload {
  background: rgba(17,17,24,0.02);
}

[data-theme="light"] .crm-import-upload.is-dragover {
  background: rgba(232,4,126,0.06);
  box-shadow: inset 0 0 0 1px rgba(232,4,126,0.18), 0 16px 32px rgba(232,4,126,0.08);
}

[data-theme="light"] .crm-import-stat:nth-child(3),
[data-theme="light"] .crm-import-chip--exact,
[data-theme="light"] .crm-import-chip--fuzzy,
[data-theme="light"] .crm-import-chip--heuristic,
[data-theme="light"] .crm-import-duplicate-row {
  border-color: rgba(17,17,24,0.08);
}

@media (max-width: 1120px) {
  .crm-import-top {
    grid-template-columns: minmax(0, 1fr) minmax(240px, 0.9fr);
  }

  .crm-import-file-meta {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  .crm-import-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .crm-import-actions {
    width: 100%;
    flex-direction: column;
  }

  .crm-import-template-btn,
  .crm-import-analyze-btn,
  .crm-import-upload {
    width: 100%;
  }

  .crm-import-duplicate-row {
    grid-template-columns: 1fr;
  }

  .crm-import-duplicate-meta {
    justify-items: start;
    text-align: left;
  }
}

/* v35 ADMIN CRM CLARITY */

.admin-rules-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0;
}

.admin-rule-card {
  padding: 20px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  background: color-mix(in srgb, var(--s1) 92%, var(--bg) 8%);
  box-shadow: 0 16px 30px rgba(0,0,0,0.08);
  display: grid;
  gap: 10px;
}

.admin-rule-card--private {
  border-color: rgba(239,68,68,0.16);
}

.admin-rule-card--common {
  border-color: rgba(46,204,110,0.16);
}

.admin-rule-card--ais {
  border-color: rgba(59,130,246,0.16);
}

.admin-rule-kicker {
  color: var(--t4);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.admin-rule-title {
  color: var(--t1);
  font-size: var(--fs-title);
  font-weight: 760;
  letter-spacing: -0.03em;
  line-height: 1.18;
}

.admin-rule-copy {
  color: var(--t2);
  font-size: var(--fs-body);
  line-height: 1.55;
}

.admin-rule-copy strong {
  color: var(--t1);
}

[data-theme="light"] .admin-rule-card {
  background: rgba(255,255,255,0.96);
  border-color: rgba(17,17,24,0.08);
}

@media (max-width: 1080px) {
  .admin-rules-grid {
    grid-template-columns: 1fr;
  }
}

/* v37 UI POLISH SWEEP */

:root {
  --fs-ui: clamp(11.7px, 0.07vw + 11.4px, 12.8px);
  --fs-body: clamp(12.65px, 0.1vw + 12.3px, 13.95px);
  --fs-title: clamp(15.9px, 0.18vw + 15.2px, 17.9px);
}

.file-input-hidden {
  display: none;
}

.admin-tab-desc--spaced {
  margin-top: 12px;
}

.empty-state--compact {
  padding: 24px 16px;
}

.crm-form-group--spaced {
  margin-top: 16px;
}

.resources-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.modal-close-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--b1);
  border-radius: 11px;
  background: color-mix(in srgb, var(--s2) 88%, transparent);
  color: var(--t3);
  cursor: pointer;
  transition: transform 0.14s var(--ease), background-color 0.16s var(--ease), border-color 0.16s var(--ease), color 0.16s var(--ease);
}

.modal-close-btn:hover {
  background: var(--s3);
  border-color: var(--b2);
  color: var(--t1);
}

.modal-close-btn:active {
  transform: scale(0.96);
}

.modal-close-btn:focus-visible,
.crm-card-resources-btn:focus-visible,
.crm-card-del-btn:focus-visible,
.crm-edit-btn:focus-visible,
.crm-del-btn:focus-visible,
.crm-card-tender-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px var(--pink-dim);
}

.crm-filter-actions {
  margin-left: auto;
}

.saved-views--crm {
  margin-top: 14px;
  margin-bottom: 20px;
}

.saved-views--crm:empty {
  display: none;
}

.crm-col-title-wrap {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.crm-empty-lane-icon {
  opacity: 0.42;
  flex-shrink: 0;
}

.crm-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.crm-card-top .crm-card-pri-btn {
  flex-shrink: 0;
}

.crm-next-text {
  min-width: 0;
}

.crm-next-placeholder {
  color: var(--t4);
  font-style: normal;
}

.crm-card-tender-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t2);
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: transform 0.14s var(--ease), background-color 0.16s var(--ease), border-color 0.16s var(--ease), color 0.16s var(--ease);
}

.crm-card-tender-link:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.14);
  color: var(--t1);
}

.crm-card-tender-link:active {
  transform: scale(0.97);
}

.crm-card-meta-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.crm-card-resources-btn,
.crm-card-del-btn,
.crm-edit-btn,
.crm-del-btn {
  width: 31px;
  height: 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t3);
  cursor: pointer;
  transition: transform 0.14s var(--ease), background-color 0.16s var(--ease), border-color 0.16s var(--ease), color 0.16s var(--ease);
}

.crm-card-resources-btn:hover,
.crm-edit-btn:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.14);
  color: var(--t1);
}

.crm-card-del-btn:hover,
.crm-del-btn:hover {
  background: rgba(239,68,68,0.12);
  border-color: rgba(239,68,68,0.24);
  color: #f87171;
}

.crm-card-resources-btn:active,
.crm-card-del-btn:active,
.crm-edit-btn:active,
.crm-del-btn:active {
  transform: scale(0.95);
}

.crm-card-assigned {
  min-width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
  background: color-mix(in srgb, var(--pink) 12%, transparent);
  color: var(--t1);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.crm-table-empty {
  padding: 26px 14px !important;
  text-align: center;
  color: var(--t3);
  font-size: var(--fs-body);
}

.crm-td-company strong {
  color: var(--t1);
  font-size: var(--fs-ui);
  letter-spacing: -0.015em;
}

.crm-td-project,
.crm-td-action {
  max-width: 260px;
  color: var(--t2);
}

.crm-td-date {
  white-space: nowrap;
  color: var(--t3);
  font-variant-numeric: tabular-nums;
}

.crm-deal-badge,
.crm-stage-pill,
.crm-pri-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.crm-deal-badge {
  border: 1px solid rgba(16,185,129,0.2);
  background: rgba(16,185,129,0.1);
  color: #6ee7b7;
}

.crm-stage-pill {
  border: 1px solid color-mix(in srgb, var(--stage-color, #6b7280) 24%, transparent);
  background: color-mix(in srgb, var(--stage-color, #6b7280) 12%, transparent);
  color: var(--stage-color, #9ca3af);
}

.crm-pri-pill {
  text-transform: capitalize;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t2);
}

.crm-pri-pill--high {
  border-color: rgba(239,68,68,0.24);
  background: rgba(239,68,68,0.12);
  color: #fca5a5;
}

.crm-pri-pill--medium {
  border-color: rgba(245,158,11,0.24);
  background: rgba(245,158,11,0.12);
  color: #fcd34d;
}

.crm-pri-pill--low {
  border-color: rgba(96,165,250,0.24);
  background: rgba(96,165,250,0.12);
  color: #93c5fd;
}

.crm-tl-content {
  min-width: 0;
  flex: 1;
  padding-bottom: 14px;
}

.crm-tl-entry:last-child .crm-tl-content {
  padding-bottom: 0;
}

.crm-tl-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.crm-tl-stage {
  color: var(--tl-color, var(--t1));
}

.crm-doc-empty {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px dashed var(--b1);
  background: color-mix(in srgb, var(--s2) 72%, transparent);
  color: var(--t3);
  font-size: var(--fs-body);
}

.crm-doc-icon {
  color: var(--t3);
  flex-shrink: 0;
}

.resources-team-avatar {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 11px;
  border: 1px solid color-mix(in srgb, var(--pink) 24%, transparent);
  background: color-mix(in srgb, var(--pink) 12%, transparent);
  color: var(--pink);
  font-size: var(--fs-label);
  font-weight: 800;
  letter-spacing: 0.06em;
}

.resources-team-info {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.resources-team-name {
  flex: none;
}

.resources-team-notes {
  margin-left: 0;
}

.preview-image {
  display: block;
  max-width: 100%;
  max-height: calc(80dvh - 132px);
  margin: auto;
  object-fit: contain;
  border-radius: 14px;
}

.preview-iframe {
  width: 100%;
  min-height: 100%;
  border: 0;
  border-radius: 14px;
  background: #fff;
}

.crm-import-chip-list--muted .crm-import-chip {
  background: rgba(255,255,255,0.02);
  border-color: rgba(255,255,255,0.05);
}

.crm-import-chip-list--muted .crm-import-chip strong {
  color: var(--t2);
}

.crm-import-chip-list--muted .crm-import-chip span {
  color: var(--t4);
}

.team-tender-deadline--urgent {
  color: var(--red);
}

.team-tender-deadline--soon {
  color: var(--orange);
}

.perms-card-meta {
  color: var(--t3);
  font-size: var(--fs-label);
  margin-top: 2px;
}

.perms-card-bids {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.perms-card-bid {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: var(--t2);
  font-size: var(--fs-label);
  font-weight: 700;
}

.pill--duplicate {
  border-color: rgba(245,158,11,0.22) !important;
  background: rgba(245,158,11,0.12) !important;
  color: #fbbf24 !important;
}

.crm-tl-entry--current .crm-tl-dot {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--tl-color, var(--pink)) 16%, transparent);
}

.crm-tl-entry--current .crm-tl-note {
  border: 1px solid color-mix(in srgb, var(--tl-color, var(--pink)) 16%, transparent);
}

.trv-col--title {
  padding-right: 10px;
}

.trv-col--buyer,
.trv-col--fit,
.trv-col--deadline,
.trv-col--workflow,
.trv-col--actions {
  padding-left: 14px;
  border-left: 1px solid rgba(255,255,255,0.06);
}

[data-theme="light"] .modal-close-btn,
[data-theme="light"] .crm-card-tender-link,
[data-theme="light"] .crm-card-resources-btn,
[data-theme="light"] .crm-card-del-btn,
[data-theme="light"] .crm-edit-btn,
[data-theme="light"] .crm-del-btn,
[data-theme="light"] .crm-card-assigned,
[data-theme="light"] .crm-doc-empty,
[data-theme="light"] .crm-import-chip-list--muted .crm-import-chip {
  background: rgba(17,17,24,0.03);
  border-color: rgba(17,17,24,0.08);
}

[data-theme="light"] .crm-card-tender-link:hover,
[data-theme="light"] .crm-card-resources-btn:hover,
[data-theme="light"] .crm-edit-btn:hover,
[data-theme="light"] .modal-close-btn:hover {
  background: rgba(17,17,24,0.06);
  border-color: rgba(17,17,24,0.12);
}

[data-theme="light"] .crm-card-del-btn:hover,
[data-theme="light"] .crm-del-btn:hover {
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.18);
}

[data-theme="light"] .crm-stage-pill,
[data-theme="light"] .crm-deal-badge,
[data-theme="light"] .crm-pri-pill {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.24);
}

[data-theme="light"] .perms-card-bid {
  background: rgba(17,17,24,0.03);
  border-color: rgba(17,17,24,0.08);
}

[data-theme="light"] .perms-card-access {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}

@media (max-width: 1120px) {
  .trv-col--buyer,
  .trv-col--fit,
  .trv-col--deadline,
  .trv-col--workflow,
  .trv-col--actions {
    padding-left: 0;
    border-left: 0;
  }

  .trv-col--title {
    padding-right: 0;
  }
}

@media (max-width: 720px) {
  .resources-header-actions,
  .crm-filter-actions {
    width: 100%;
  }

  .modal-close-btn {
    width: 34px;
    height: 34px;
  }

  .crm-card-meta-right {
    justify-content: flex-start;
  }
}

/* ════════════════════════════════════════════════
   FINAL SHELL + CRM OPERATOR PASS
   ════════════════════════════════════════════════ */

:root {
  --shell-max-width: 1200px;
  --shell-inline-pad: 32px;
}

.user-bar,
.page-tabs {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: max(var(--shell-inline-pad), calc((100vw - min(var(--shell-max-width), 100vw)) / 2 + var(--shell-inline-pad))) !important;
  padding-right: max(var(--shell-inline-pad), calc((100vw - min(var(--shell-max-width), 100vw)) / 2 + var(--shell-inline-pad))) !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.user-bar {
  box-shadow: 0 16px 36px rgba(7, 8, 15, 0.08), inset 0 -1px 0 rgba(255,255,255,0.02) !important;
}

[data-theme="light"] .user-bar {
  box-shadow: 0 18px 34px rgba(17, 17, 24, 0.05), inset 0 -1px 0 rgba(255,255,255,0.6) !important;
}

.page-tabs {
  box-shadow: 0 8px 22px rgba(7, 8, 15, 0.04) !important;
}

.crm-ops-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin: 14px 0 20px;
  padding: 14px 16px;
  border: 1px solid var(--b1);
  border-radius: 18px;
  background: color-mix(in srgb, var(--s1) 86%, transparent);
  box-shadow: 0 18px 34px rgba(8, 10, 18, 0.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.crm-ops-bar--empty-view {
  grid-template-columns: auto 1fr;
}

[data-theme="light"] .crm-ops-bar {
  background: rgba(255,255,255,0.84);
  box-shadow: 0 14px 30px rgba(17, 17, 24, 0.05);
}

.crm-ops-copy,
.crm-bulk-actions,
.crm-quick-filters,
.crm-card-top-main {
  display: flex;
  align-items: center;
}

.crm-ops-copy,
.crm-bulk-actions,
.crm-quick-filters {
  gap: 8px;
  flex-wrap: wrap;
}

.crm-results-summary,
.crm-selection-summary {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: -0.01em;
  border: 0;
}

.crm-results-summary {
  background: transparent;
  color: var(--t3);
}

.crm-selection-summary {
  padding: 0 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--pink) 10%, transparent);
  color: var(--pink);
}

.crm-quick-filters {
  min-width: 0;
}

.crm-quick-filter,
.crm-bulk-btn {
  min-height: 32px;
  padding: 0 11px;
  border-radius: 10px;
  border: 1px solid var(--b1);
  background: transparent;
  color: var(--t3);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform 140ms var(--ease), border-color 160ms var(--ease), background-color 160ms var(--ease), color 160ms var(--ease), box-shadow 180ms var(--ease);
}

.crm-quick-filter:hover,
.crm-bulk-btn:hover {
  border-color: var(--b2);
  background: rgba(255,255,255,0.06);
  color: var(--t1);
}

.crm-quick-filter:active,
.crm-bulk-btn:active {
  transform: scale(0.97);
}

.crm-quick-filter.is-active {
  background: color-mix(in srgb, var(--pink) 11%, transparent);
  border-color: color-mix(in srgb, var(--pink) 24%, transparent);
  color: var(--pink);
  box-shadow: none;
}

.crm-bulk-actions {
  justify-content: flex-end;
}

.crm-bulk-btn {
  white-space: nowrap;
}

.crm-bulk-btn--ghost {
  background: transparent;
}

.crm-bulk-btn--danger {
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.16);
  color: #f87171;
}

.crm-bulk-btn--danger:hover {
  background: rgba(239,68,68,0.12);
  border-color: rgba(239,68,68,0.24);
  color: #fda4af;
}

.crm-bulk-btn:disabled,
.crm-quick-filter:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

.crm-select-checkbox {
  width: 16px;
  height: 16px;
  accent-color: var(--pink);
  cursor: pointer;
  flex-shrink: 0;
}

.crm-select-checkbox--card {
  margin-top: 2px;
}

.crm-card-top-main {
  gap: 10px;
  min-width: 0;
}

.crm-table-check-col {
  width: 40px;
  text-align: center;
  padding-left: 14px !important;
  padding-right: 8px !important;
}

.crm-card--selected {
  border-color: color-mix(in srgb, var(--pink) 26%, var(--b1)) !important;
  background: color-mix(in srgb, var(--pink) 6%, var(--s1)) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--pink) 12%, transparent), 0 18px 34px rgba(10, 10, 18, 0.12) !important;
}

[data-theme="light"] .crm-card--selected {
  background: color-mix(in srgb, var(--pink) 4%, #fff) !important;
  box-shadow: 0 0 0 1px rgba(232, 4, 126, 0.12), 0 18px 36px rgba(17, 17, 24, 0.06) !important;
}

.crm-row--selected td {
  background: color-mix(in srgb, var(--pink) 7%, var(--s1)) !important;
}

[data-theme="light"] .crm-row--selected td {
  background: color-mix(in srgb, var(--pink) 5%, #fff) !important;
}

.crm-row--selected:hover td {
  background: color-mix(in srgb, var(--pink) 10%, var(--s2)) !important;
}

@media (max-width: 768px) {
  :root {
    --shell-inline-pad: 16px;
  }

  .crm-ops-bar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .crm-bulk-actions {
    justify-content: flex-start;
  }
}

/* ════════════════════════════════════════════════
   CRM DASHBOARD FINAL PASS
   ════════════════════════════════════════════════ */

.crm-kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px !important;
  margin: 20px 0 18px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.crm-kpi-divider {
  display: none !important;
}

.crm-kpi {
  position: relative;
  overflow: hidden;
  min-height: 104px;
  padding: 18px 20px !important;
  border: 1px solid var(--b1) !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--s1) 90%, transparent), color-mix(in srgb, var(--s2) 82%, transparent)) !important;
  box-shadow: 0 18px 34px rgba(7, 9, 16, 0.08);
}

/* v6 CRM: radial glow killed — KPI row is now a flat airy ribbon */
.crm-kpi::after,
.crm-kpi--needs::after,
.crm-kpi--mine::after,
.crm-kpi--shared::after { content: none !important; background: none !important; }

[data-theme="light"] .crm-kpi {
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(250,248,252,0.96)) !important;
  box-shadow: 0 16px 30px rgba(17, 17, 24, 0.05);
}

.crm-kpi-label {
  font-size: 10.5px !important;
  letter-spacing: 0.11em !important;
  color: var(--t4) !important;
}

.crm-kpi-value {
  font-size: clamp(30px, 3vw, 40px) !important;
  letter-spacing: -0.065em !important;
}

.crm-kpi--needs .crm-kpi-value {
  color: #fb923c !important;
}

.crm-kpi--mine .crm-kpi-value {
  color: #60a5fa !important;
}

.crm-kpi--shared .crm-kpi-value {
  color: var(--green) !important;
}

.crm-filter-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.filter-action-btn--ghost {
  background: transparent !important;
  border-color: var(--b1) !important;
  color: var(--t3) !important;
  box-shadow: none !important;
}

.filter-action-btn--ghost:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  color: var(--t1) !important;
}

.crm-stage-digest {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 2px 0 16px;
}

.crm-stage-chip {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  border: 1px solid var(--b1);
  border-radius: 999px;
  background: rgba(255,255,255,0.03);
  color: var(--t3);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform 140ms var(--ease), border-color 160ms var(--ease), background-color 160ms var(--ease), color 160ms var(--ease);
}

.crm-stage-chip:hover {
  background: rgba(255,255,255,0.06);
  border-color: var(--b2);
  color: var(--t1);
}

.crm-stage-chip:active {
  transform: scale(0.97);
}

.crm-stage-chip.is-active {
  color: var(--t1);
  border-color: color-mix(in srgb, var(--stage-accent, var(--pink)) 34%, var(--b1));
  background: color-mix(in srgb, var(--stage-accent, var(--pink)) 11%, transparent);
}

.crm-stage-chip-count {
  min-width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  color: inherit;
  font-size: 10.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.crm-empty-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.9fr);
  gap: 18px;
  margin: 18px 0 10px;
}

.crm-empty-dashboard-main,
.crm-empty-guide {
  border: 1px solid var(--b1);
  border-radius: 22px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--s1) 92%, transparent), color-mix(in srgb, var(--s2) 86%, transparent));
  box-shadow: 0 22px 44px rgba(7, 9, 16, 0.08);
}

[data-theme="light"] .crm-empty-dashboard-main,
[data-theme="light"] .crm-empty-guide {
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,247,251,0.96));
  box-shadow: 0 18px 36px rgba(17, 17, 24, 0.05);
}

.crm-empty-dashboard-main {
  padding: 28px 30px;
}

.crm-empty-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--pink) 12%, transparent);
  color: var(--pink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.crm-empty-dashboard-main h3 {
  margin: 18px 0 10px;
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.02;
  letter-spacing: -0.05em;
  color: var(--t1);
}

.crm-empty-dashboard-main p {
  max-width: 58ch;
  color: var(--t2);
  font-size: 14px;
  line-height: 1.65;
}

.crm-empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.crm-empty-guides {
  display: grid;
  gap: 12px;
}

.crm-empty-guide {
  padding: 18px 18px 16px;
}

.crm-empty-guide-title {
  display: block;
  margin-bottom: 8px;
  color: var(--t1);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.015em;
}

.crm-empty-guide p {
  color: var(--t2);
  font-size: 12.5px;
  line-height: 1.6;
}

@media (max-width: 980px) {
  .crm-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .crm-empty-dashboard {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .crm-kpi-strip {
    grid-template-columns: 1fr !important;
  }

  .crm-stage-digest {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
  }

  .crm-empty-dashboard-main {
    padding: 22px 20px;
  }

  .crm-filter-actions {
    width: 100%;
  }
}

.tc-crm-btn--loading {
  cursor: wait !important;
  opacity: 0.88 !important;
}

/* ════════════════════════════════════════════════════════════════════════
   ADMIN CONTROL CENTRE — v4 (scoped override layer)
   All rules live under .admin-v4 for deterministic specificity.
   ════════════════════════════════════════════════════════════════════════ */
.admin-v4.user-modal-overlay {
  background: radial-gradient(
    ellipse at top, color-mix(in srgb, var(--pink) 18%, transparent) 0%,
    rgba(0,0,0,0.72) 60%, rgba(0,0,0,0.82) 100%
  );
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
}

.admin-v4 .admin-modal {
  width: min(1180px, 96vw) !important;
  max-width: 1180px !important;
  max-height: 92vh !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--s2) 96%, transparent), var(--s1) 45%) !important;
  border: 1px solid var(--b2) !important;
  border-radius: 20px !important;
  box-shadow:
    0 40px 120px rgba(0,0,0,0.6),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
  overflow: hidden !important;
  animation: adminModalIn 0.42s var(--ease) both;
}
@keyframes adminModalIn {
  from { opacity: 0; transform: translateY(18px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Header */
.admin-v4 .admin-modal-header {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 22px 26px 20px !important;
  border-bottom: 1px solid var(--b1) !important;
  background:
    radial-gradient(600px 120px at 0% 0%, color-mix(in srgb, var(--pink) 10%, transparent), transparent 70%),
    color-mix(in srgb, var(--s2) 70%, transparent) !important;
}

.admin-v4 .admin-modal-title {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.admin-v4 .admin-modal-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: linear-gradient(140deg, var(--pink-hi) 0%, var(--pink) 100%);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 6px 20px var(--pink-glo);
}
.admin-v4 .admin-modal-title-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.1;
}
.admin-v4 .admin-modal-kicker {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}
.admin-v4 .admin-modal-title h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--t1);
  margin: 0;
}

.admin-v4 .admin-modal-summary {
  display: inline-flex !important;
  align-items: center;
  gap: 8px !important;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.admin-v4 .admin-summary-pill {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  border: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s3) 50%, transparent) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  color: var(--t2) !important;
  font-family: var(--font) !important;
  text-transform: none !important;
}
.admin-v4 .admin-summary-pill::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.75;
}
.admin-v4 .admin-summary-pill--evrim { color: var(--pink) !important; border-color: color-mix(in srgb, var(--pink) 30%, transparent) !important; }
.admin-v4 .admin-summary-pill--ais   { color: var(--blue) !important; border-color: color-mix(in srgb, var(--blue) 30%, transparent) !important; }
.admin-v4 .admin-summary-pill--total { color: var(--t2) !important; }

.admin-v4 .preview-close-btn {
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  border: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s3) 40%, transparent) !important;
  color: var(--t2) !important;
  font-size: 20px !important;
  line-height: 1 !important;
  cursor: pointer;
  transition: background 0.15s var(--ease), color 0.15s var(--ease), border-color 0.15s var(--ease) !important;
}
.admin-v4 .preview-close-btn:hover {
  background: var(--s3) !important;
  color: var(--t1) !important;
  border-color: var(--b2) !important;
}

/* Tabs — segmented with sliding indicator */
.admin-v4 .admin-tabs {
  position: relative;
  display: flex !important;
  align-items: stretch;
  gap: 4px !important;
  padding: 12px 18px 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  background: color-mix(in srgb, var(--s1) 70%, transparent) !important;
  overflow: visible !important;
}
.admin-v4 .admin-tab {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  gap: 8px !important;
  padding: 11px 16px 12px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--t3) !important;
  font-family: var(--font) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer;
  border-radius: 8px 8px 0 0 !important;
  transition: color 0.16s var(--ease), background 0.16s var(--ease) !important;
}
.admin-v4 .admin-tab svg { stroke-width: 1.8 !important; }
.admin-v4 .admin-tab:hover { color: var(--t2) !important; background: color-mix(in srgb, var(--s3) 30%, transparent) !important; }
.admin-v4 .admin-tab.active { color: var(--t1) !important; background: transparent !important; }

.admin-v4 .admin-tab-indicator {
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 2px;
  width: var(--w, 0);
  transform: translateX(var(--x, 0));
  background: linear-gradient(90deg, var(--pink) 0%, var(--pink-hi) 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px color-mix(in srgb, var(--pink) 70%, transparent);
  transition: transform 0.32s var(--ease), width 0.32s var(--ease);
  pointer-events: none;
}

/* Body */
.admin-v4 .user-modal-body {
  padding: 24px 26px 28px !important;
  background: var(--s1) !important;
  overflow-y: auto !important;
  max-height: calc(92vh - 130px) !important;
}

/* Org sections */
.admin-v4 .admin-org-section {
  background: color-mix(in srgb, var(--s2) 55%, transparent) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  padding: 18px !important;
  margin-bottom: 16px !important;
}
.admin-v4 .admin-org-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px dashed var(--b1) !important;
}
.admin-v4 .admin-org-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  color: var(--t2) !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--s3) 70%, transparent) !important;
  border: 1px solid var(--b1) !important;
}
.admin-v4 .admin-org-label::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 999px;
}
.admin-v4 .admin-org-label--evrim { color: var(--pink) !important; border-color: color-mix(in srgb, var(--pink) 24%, transparent) !important; }
.admin-v4 .admin-org-label--evrim::before { background: var(--pink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 22%, transparent); }
.admin-v4 .admin-org-label--ais { color: var(--blue) !important; border-color: color-mix(in srgb, var(--blue) 24%, transparent) !important; }
.admin-v4 .admin-org-label--ais::before { background: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 22%, transparent); }

/* User cards */
.admin-v4 .admin-user-cards {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}
.admin-v4 .admin-user-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 22px !important;
  padding: 14px 16px !important;
  border: 1px solid var(--b1) !important;
  border-radius: 12px !important;
  background: var(--s1) !important;
  align-items: center !important;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease), transform 0.15s var(--ease) !important;
}
.admin-v4 .admin-user-card:hover {
  border-color: var(--b2) !important;
  box-shadow: 0 6px 22px rgba(0,0,0,0.28) !important;
  transform: translateY(-1px);
}

.admin-v4 .admin-user-card-left {
  display: flex !important;
  align-items: center;
  gap: 12px !important;
  min-width: 0;
}
.admin-v4 .admin-avatar {
  width: 38px !important;
  height: 38px !important;
  border-radius: 10px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  color: #fff !important;
  text-transform: uppercase;
  flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22);
}
.admin-v4 .admin-avatar--evrim { background: linear-gradient(140deg, var(--pink-hi), var(--pink)) !important; }
.admin-v4 .admin-avatar--ais   { background: linear-gradient(140deg, color-mix(in srgb, var(--blue) 110%, white), var(--blue)) !important; }

.admin-v4 .admin-user-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.admin-v4 .admin-username {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--t1) !important;
  letter-spacing: -0.01em !important;
}
.admin-v4 .admin-you-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 7px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--pink) 18%, transparent) !important;
  color: var(--pink) !important;
  border: 1px solid color-mix(in srgb, var(--pink) 32%, transparent) !important;
  margin-left: 8px !important;
}
.admin-v4 .admin-user-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  color: var(--t3);
  flex-wrap: wrap;
}
.admin-v4 .admin-pool-hint--owner {
  padding: 2px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--orange) 14%, transparent);
  color: var(--orange);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid color-mix(in srgb, var(--orange) 28%, transparent);
}

.admin-v4 .admin-user-card-controls {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, auto)) auto !important;
  gap: 12px !important;
  align-items: end !important;
}
.admin-v4 .admin-control-group {
  display: flex !important;
  flex-direction: column;
  gap: 4px !important;
}
.admin-v4 .admin-control-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  color: var(--t3) !important;
}
.admin-v4 .admin-static-val {
  padding: 7px 10px !important;
  border-radius: 8px !important;
  font-size: 12.5px !important;
  color: var(--t2) !important;
  background: color-mix(in srgb, var(--s3) 40%, transparent) !important;
  border: 1px solid var(--b1) !important;
  font-weight: 500;
}
.admin-v4 .admin-select,
.admin-v4 .admin-input {
  padding: 8px 12px !important;
  border-radius: 8px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b2) !important;
  color: var(--t1) !important;
  font-family: var(--font) !important;
  font-size: 12.5px !important;
  min-height: 34px !important;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease) !important;
}
.admin-v4 .admin-select:focus,
.admin-v4 .admin-input:focus {
  border-color: var(--bf) !important;
  box-shadow: 0 0 0 3px var(--pink-dim) !important;
  outline: none;
}
.admin-v4 .admin-select--sm {
  min-width: 116px !important;
  font-size: 12px !important;
}

.admin-v4 .admin-user-actions {
  display: inline-flex !important;
  align-items: center;
  gap: 6px !important;
}
.admin-v4 .admin-action-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 5px !important;
  padding: 7px 11px !important;
  border-radius: 8px !important;
  border: 1px solid var(--b2) !important;
  background: var(--s2) !important;
  color: var(--t2) !important;
  font-family: var(--font) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  cursor: pointer;
  transition: color 0.15s var(--ease), background 0.15s var(--ease), border-color 0.15s var(--ease), transform 0.12s var(--ease) !important;
}
.admin-v4 .admin-action-btn:hover { color: var(--t1) !important; background: var(--s3) !important; border-color: var(--b3) !important; }
.admin-v4 .admin-action-btn:active { transform: scale(0.96); }
.admin-v4 .admin-action-btn--save { background: var(--pink) !important; color: #fff !important; border-color: color-mix(in srgb, var(--pink) 80%, white) !important; }
.admin-v4 .admin-action-btn--save:hover { filter: saturate(1.1); background: var(--pink-hi) !important; }
.admin-v4 .admin-action-btn--del { color: var(--red) !important; border-color: color-mix(in srgb, var(--red) 28%, transparent) !important; background: color-mix(in srgb, var(--red) 8%, transparent) !important; }
.admin-v4 .admin-action-btn--del:hover { color: #fff !important; background: var(--red) !important; }

/* Add user */
.admin-v4 .admin-add-user-section {
  margin-top: 18px !important;
  padding: 18px !important;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--pink) 7%, transparent) 0%, transparent 60%),
    color-mix(in srgb, var(--s2) 70%, transparent) !important;
  border: 1px dashed color-mix(in srgb, var(--pink) 28%, transparent) !important;
  border-radius: 14px !important;
}
.admin-v4 .admin-section-title {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--t3) !important;
  margin-bottom: 12px !important;
}
.admin-v4 .admin-add-user-form {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) auto !important;
  gap: 8px !important;
  align-items: stretch !important;
}
.admin-v4 .user-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px !important;
  border-radius: 8px !important;
  border: 0 !important;
  background: linear-gradient(180deg, var(--pink-hi), var(--pink)) !important;
  color: #fff !important;
  font-family: var(--font) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 6px 18px var(--pink-glo) !important;
  transition: transform 0.12s var(--ease), box-shadow 0.18s var(--ease) !important;
}
.admin-v4 .user-add-btn:hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 10px 28px var(--pink-glo) !important; }
.admin-v4 .user-add-btn:active { transform: scale(0.97); }
.admin-v4 .user-form-error {
  margin-top: 10px !important;
  padding: 8px 12px !important;
  background: var(--red-dim) !important;
  border: 1px solid color-mix(in srgb, var(--red) 28%, transparent) !important;
  border-radius: 8px !important;
  color: var(--red) !important;
  font-size: 12px !important;
}

/* Permissions tab */
.admin-v4 .admin-tab-desc {
  font-size: 13px !important;
  color: var(--t2) !important;
  margin-bottom: 16px !important;
  line-height: 1.55 !important;
}

.admin-v4 .perms-cards {
  display: grid;
  gap: 12px;
}
.admin-v4 .perms-card {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 20px;
  padding: 18px !important;
  border-radius: 14px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
}
.admin-v4 .perms-card:hover { border-color: var(--b2) !important; }

/* Activity tab */
.admin-v4 #adminActivityList {
  display: grid !important;
  gap: 6px !important;
}
.admin-v4 .activity-item {
  display: grid !important;
  grid-template-columns: 28px 1fr auto !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  background: color-mix(in srgb, var(--s2) 55%, transparent) !important;
  border: 1px solid var(--b1) !important;
  font-size: 13px !important;
  color: var(--t2) !important;
  transition: border-color 0.15s var(--ease), background 0.15s var(--ease) !important;
}
.admin-v4 .activity-item:hover {
  border-color: var(--b2) !important;
  background: color-mix(in srgb, var(--s3) 40%, transparent) !important;
}
.admin-v4 .activity-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--s3);
  font-size: 14px;
}
.admin-v4 .activity-text strong {
  color: var(--t1);
  font-weight: 600;
  margin-right: 4px;
}
.admin-v4 .activity-time {
  font-size: 11.5px !important;
  color: var(--t3) !important;
  font-family: var(--font-mono) !important;
  letter-spacing: -0.01em !important;
}

/* Responsive */
@media (max-width: 900px) {
  .admin-v4 .admin-modal-header {
    grid-template-columns: 1fr auto !important;
    row-gap: 10px !important;
  }
  .admin-v4 .admin-modal-summary {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
  .admin-v4 .admin-user-card {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .admin-v4 .admin-user-card-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .admin-v4 .admin-user-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}
@media (max-width: 560px) {
  .admin-v4 .admin-modal {
    width: 100vw !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    border: 0 !important;
  }
  .admin-v4 .admin-user-card-controls {
    grid-template-columns: 1fr !important;
  }
  .admin-v4 .admin-tab span { display: none; }
  .admin-v4 .admin-tab { padding: 12px !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   ADMIN CONTROL CENTRE — v5 DETUNE
   Strips the pink radial washes, dashed borders, elevated cards, and
   glowing indicators. Matches the CRM "airy tracks" direction — divide-y
   rows with quiet accents for Evrim vs AiS grouping.
   ════════════════════════════════════════════════════════════════════════ */

/* Overlay: flat dim instead of pink radial */
.admin-v4.user-modal-overlay {
  background: color-mix(in srgb, var(--bg, #0b0a10) 82%, transparent) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

/* Modal shell: flat fill, subtle shadow */
.admin-v4 .admin-modal {
  width: min(1100px, 96vw) !important;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 80px -20px rgba(0, 0, 0, 0.55) !important;
}

/* Header: lose the pink radial, swap the gradient mark for a quiet glyph chip */
.admin-v4 .admin-modal-header {
  padding: 20px 24px 16px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
}
.admin-v4 .admin-modal-mark {
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  color: var(--t2) !important;
  box-shadow: none !important;
}
.admin-v4 .admin-modal-title h3 {
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}
.admin-v4 .admin-modal-kicker {
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  color: var(--t4, var(--t3)) !important;
}

/* Summary pills: flatten — no background tint, just a colored leading dot */
.admin-v4 .admin-summary-pill {
  background: transparent !important;
  border: 0 !important;
  padding: 4px 10px 4px 4px !important;
  font-size: 12px !important;
  color: var(--t2) !important;
  gap: 8px !important;
}
.admin-v4 .admin-summary-pill + .admin-summary-pill {
  border-left: 1px solid var(--b1) !important;
  padding-left: 12px !important;
}
.admin-v4 .admin-summary-pill::before {
  width: 6px !important;
  height: 6px !important;
  opacity: 1 !important;
}
.admin-v4 .admin-summary-pill--evrim { color: var(--t1) !important; }
.admin-v4 .admin-summary-pill--evrim::before { background: var(--pink) !important; }
.admin-v4 .admin-summary-pill--ais   { color: var(--t1) !important; }
.admin-v4 .admin-summary-pill--ais::before { background: var(--blue) !important; }
.admin-v4 .admin-summary-pill--total { color: var(--t3) !important; }
.admin-v4 .admin-summary-pill--total::before { display: none !important; }

/* Close button: match confirm/ghost style */
.admin-v4 .preview-close-btn {
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: transparent !important;
  border: 1px solid var(--b1) !important;
  font-size: 18px !important;
  color: var(--t3) !important;
}
.admin-v4 .preview-close-btn:hover {
  background: var(--s2) !important;
  color: var(--t1) !important;
}

/* Tabs: flat bottom border rule, flat 2px indicator (no glow) */
.admin-v4 .admin-tabs {
  padding: 0 24px !important;
  background: transparent !important;
  gap: 2px !important;
}
.admin-v4 .admin-tab {
  padding: 14px 16px 12px !important;
  font-size: 12.5px !important;
  border-radius: 0 !important;
  letter-spacing: 0 !important;
}
.admin-v4 .admin-tab:hover { background: transparent !important; color: var(--t2) !important; }
.admin-v4 .admin-tab.active { color: var(--t1) !important; }
.admin-v4 .admin-tab-indicator {
  height: 1.5px !important;
  background: var(--pink) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Body: more breathing room, flat background */
.admin-v4 .user-modal-body {
  padding: 24px !important;
  background: var(--s1) !important;
}

/* Org sections → divide-y tracks, no card box */
.admin-v4 .admin-org-section {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--b1) !important;
  border-radius: 0 !important;
  padding: 18px 0 22px !important;
  margin-bottom: 0 !important;
}
.admin-v4 .admin-org-section:first-of-type { border-top: 0 !important; padding-top: 4px !important; }
.admin-v4 .admin-org-header {
  margin-bottom: 14px !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* Org label → tiny text kicker with a colored leading dot, no pill */
.admin-v4 .admin-org-label {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--t2) !important;
  gap: 10px !important;
}
.admin-v4 .admin-org-label::before {
  width: 6px !important;
  height: 6px !important;
  box-shadow: none !important;
}
.admin-v4 .admin-org-label--evrim { color: var(--t1) !important; }
.admin-v4 .admin-org-label--evrim::before { background: var(--pink) !important; }
.admin-v4 .admin-org-label--ais   { color: var(--t1) !important; }
.admin-v4 .admin-org-label--ais::before { background: var(--blue) !important; }

/* User card rows → flat inline list with divide-y */
.admin-v4 .admin-user-cards {
  gap: 0 !important;
  border-top: 1px solid var(--b1) !important;
  border-bottom: 1px solid var(--b1) !important;
}
.admin-v4 .admin-user-card {
  padding: 14px 2px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.admin-v4 .admin-user-cards .admin-user-card:last-child { border-bottom: 0 !important; }
.admin-v4 .admin-user-card:hover {
  background: color-mix(in srgb, var(--s2) 45%, transparent) !important;
  border-color: var(--b1) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Avatar: flat square chip, no gradient, initial-only */
.admin-v4 .admin-avatar {
  width: 34px !important;
  height: 34px !important;
  border-radius: 8px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  color: var(--t1) !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
}
.admin-v4 .admin-avatar--evrim {
  background: color-mix(in srgb, var(--pink) 10%, var(--s2)) !important;
  border-color: color-mix(in srgb, var(--pink) 22%, var(--b1)) !important;
  color: var(--pink-hi) !important;
}
.admin-v4 .admin-avatar--ais {
  background: color-mix(in srgb, var(--blue) 10%, var(--s2)) !important;
  border-color: color-mix(in srgb, var(--blue) 22%, var(--b1)) !important;
  color: var(--blue) !important;
}

/* "You" badge: subtler */
.admin-v4 .admin-you-badge {
  background: transparent !important;
  border: 1px solid color-mix(in srgb, var(--pink) 26%, transparent) !important;
  color: var(--pink-hi) !important;
}

/* Control inputs: quieter surface */
.admin-v4 .admin-select,
.admin-v4 .admin-input {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  min-height: 32px !important;
  font-size: 12px !important;
}
.admin-v4 .admin-select:focus,
.admin-v4 .admin-input:focus {
  border-color: color-mix(in srgb, var(--pink) 42%, var(--b2)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 14%, transparent) !important;
}

/* Action buttons: thinner, no pink on save (CRM already uses pink for add) */
.admin-v4 .admin-action-btn {
  padding: 6px 10px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-radius: 7px !important;
}
.admin-v4 .admin-action-btn--save {
  background: var(--pink) !important;
  color: #fff !important;
  border-color: transparent !important;
}
.admin-v4 .admin-action-btn--save:hover { background: var(--pink-hi) !important; filter: none !important; }

/* Add-user block → flat toolbar, no dashed pink box */
.admin-v4 .admin-add-user-section {
  margin-top: 8px !important;
  padding: 18px 0 4px !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--b1) !important;
  border-radius: 0 !important;
}
.admin-v4 .admin-section-title {
  font-size: 10.5px !important;
  letter-spacing: 0.16em !important;
  color: var(--t3) !important;
  margin-bottom: 10px !important;
}
.admin-v4 .admin-add-user-form {
  gap: 6px !important;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) auto !important;
}

/* Add-user submit: flat solid pink, no glow, no gradient */
.admin-v4 .user-add-btn {
  background: var(--pink) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
  padding: 8px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.admin-v4 .user-add-btn:hover {
  background: var(--pink-hi) !important;
  transform: none !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
.admin-v4 .user-add-btn:active { transform: translateY(1px) !important; }

/* Activity list → flat divide-y rows, no boxed pills */
.admin-v4 #adminActivityList {
  gap: 0 !important;
  border-top: 1px solid var(--b1) !important;
  border-bottom: 1px solid var(--b1) !important;
}
.admin-v4 .activity-item {
  padding: 12px 2px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
}
.admin-v4 #adminActivityList .activity-item:last-child { border-bottom: 0 !important; }
.admin-v4 .activity-item:hover {
  background: color-mix(in srgb, var(--s2) 40%, transparent) !important;
  border-color: var(--b1) !important;
}
.admin-v4 .activity-icon {
  background: var(--s2);
  border: 1px solid var(--b1);
  font-size: 12px;
}

/* Permissions tab cards → flat divide-y rows, no backgrounds */
.admin-v4 .perms-cards { gap: 0 !important; border-top: 1px solid var(--b1); border-bottom: 1px solid var(--b1); }
.admin-v4 .perms-card {
  padding: 18px 2px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
}
.admin-v4 .perms-cards .perms-card:last-child { border-bottom: 0 !important; }
.admin-v4 .perms-card:hover { border-color: var(--b1) !important; }

/* Modal open animation: slightly softer entry */
.admin-v4 .admin-modal { animation: adminModalInV5 0.24s cubic-bezier(0.23, 1, 0.32, 1) both !important; }
@keyframes adminModalInV5 {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

/* ════════════════════════════════════════════════════════════════════════
   CRM PORTAL — v4 (scoped)
   All rules live under .crm-v4 for deterministic specificity.
   ════════════════════════════════════════════════════════════════════════ */

/* Header */
.crm-v4 .crm-header {
  padding: 28px 0 22px !important;
  border-bottom: 1px solid var(--b1) !important;
  gap: 20px !important;
}
.crm-v4 .crm-title {
  font-size: 30px !important;
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
  color: var(--t1) !important;
  line-height: 1.05 !important;
  background: none !important;
  -webkit-text-fill-color: unset !important;
}
.crm-v4 .crm-title::before {
  content: 'Sales';
  display: inline-block;
  padding: 4px 10px;
  margin-right: 12px;
  border-radius: 999px;
  background: var(--pink-dim);
  border: 1px solid color-mix(in srgb, var(--pink) 24%, transparent);
  color: var(--pink);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  vertical-align: middle;
  transform: translateY(-2px);
}
.crm-v4 .crm-subtitle {
  font-size: 13.5px !important;
  color: var(--t2) !important;
  margin-top: 8px !important;
  line-height: 1.5 !important;
  max-width: 62ch;
}

.crm-v4 .crm-header-actions {
  display: inline-flex !important;
  align-items: center;
  gap: 8px !important;
}
.crm-v4 .crm-add-btn {
  padding: 10px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
  border-radius: 10px !important;
  border: 0 !important;
  background: linear-gradient(180deg, var(--pink-hi), var(--pink)) !important;
  color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 6px 22px var(--pink-glo) !important;
  transition: transform 0.14s var(--ease), box-shadow 0.2s var(--ease) !important;
}
.crm-v4 .crm-add-btn:hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 12px 32px var(--pink-glo) !important; }
.crm-v4 .crm-add-btn:active { transform: scale(0.97); }
.crm-v4 .crm-add-btn--secondary {
  background: color-mix(in srgb, var(--s2) 80%, transparent) !important;
  border: 1px solid var(--b2) !important;
  color: var(--t1) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.03) !important;
}
.crm-v4 .crm-add-btn--secondary:hover {
  background: var(--s3) !important;
  border-color: var(--b3) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.03) !important;
  transform: translateY(-1px);
}

/* KPI ribbon — no cards, no glows. Four stats share one baseline, divided by 1px rules. */
.crm-v4 .crm-kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin: 22px 0 6px !important;
  padding: 20px 0 18px !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--b1) !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.crm-v4 .crm-kpi-divider { display: none !important; }
.crm-v4 .crm-kpi {
  position: relative;
  padding: 4px 22px !important;
  border: 0 !important;
  border-left: 1px solid var(--b1) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  overflow: visible !important;
  transition: none !important;
  flex: none !important;
}
.crm-v4 .crm-kpi:first-child { border-left: 0 !important; padding-left: 0 !important; }
.crm-v4 .crm-kpi::before,
.crm-v4 .crm-kpi::after { content: none !important; background: none !important; }
.crm-v4 .crm-kpi:hover {
  border-color: var(--b1) !important;
  border-left-color: var(--b1) !important;
  transform: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
.crm-v4 .crm-kpi-label {
  order: 1 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--t4) !important;
}
.crm-v4 .crm-kpi-value {
  order: 2 !important;
  font-family: var(--font) !important;
  font-size: 34px !important;
  font-weight: 600 !important;
  letter-spacing: -0.045em !important;
  color: var(--t1) !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums !important;
}
/* Colour only a 4px leading bar — not the whole number — to call out category without shouting. */
.crm-v4 .crm-kpi-value {
  padding-left: 10px !important;
  border-left: 3px solid transparent !important;
}
.crm-v4 .crm-kpi--needs  .crm-kpi-value { border-left-color: var(--orange) !important; }
.crm-v4 .crm-kpi--mine   .crm-kpi-value { border-left-color: var(--blue) !important; }
.crm-v4 .crm-kpi--closed .crm-kpi-value { border-left-color: var(--green) !important; }
.crm-v4 .crm-kpi:first-of-type .crm-kpi-value { border-left-color: var(--pink) !important; }

[data-theme="light"] .crm-v4 .crm-kpi { background: transparent !important; box-shadow: none !important; }

/* ── Kanban: columns are tracks, not boxes ───────────────────────────────
   No outer wrapper fill or border. A 2px stage accent sits above the header
   acting as the only visual anchor. Cards below float on the page gutter,
   so the kanban reads as "six columns of work", not "six rectangles". */
.crm-v4 .crm-board {
  gap: 16px !important;
  padding: 16px 0 20px !important;
  background: transparent !important;
  align-items: flex-start !important;
}
.crm-v4 .crm-col {
  flex: 0 0 296px !important;
  width: 296px !important;
  max-width: 296px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: visible !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 120px !important;
}
.crm-v4 .crm-col:hover { box-shadow: none !important; background: transparent !important; }
.crm-v4 .crm-col::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 44px !important;
  height: 2px !important;
  background: var(--stage-color, var(--b2)) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  opacity: 0.9 !important;
}
.crm-v4 .crm-col-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 14px 2px 12px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  margin-bottom: 12px !important;
}
.crm-v4 .crm-col-title-wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
}
.crm-v4 .crm-col-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--stage-color, var(--t2)) !important;
  line-height: 1.1 !important;
}
.crm-v4 .crm-col-desc {
  font-size: 11px !important;
  color: var(--t4) !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}
.crm-v4 .crm-col-count {
  flex: none !important;
  font-family: var(--font-mono, var(--font)) !important;
  font-variant-numeric: tabular-nums !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--t3) !important;
  background: transparent !important;
  border: 1px solid var(--b1) !important;
  border-radius: 999px !important;
  padding: 2px 8px !important;
  min-width: 28px !important;
  height: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  letter-spacing: 0.02em !important;
}
.crm-v4 .crm-col-body {
  padding: 0 !important;
  gap: 8px !important;
  display: flex !important;
  flex-direction: column !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  max-height: calc(100vh - 380px) !important;
}
.crm-v4 .crm-col-body-drop {
  min-height: 32px !important;
  border-radius: 10px !important;
  padding: 2px !important;
}
.crm-v4 .crm-col-body-drop.drag-over {
  border-color: color-mix(in srgb, var(--stage-color, var(--pink)) 55%, transparent) !important;
  background: color-mix(in srgb, var(--stage-color, var(--pink)) 6%, transparent) !important;
}
[data-theme="light"] .crm-v4 .crm-col { background: transparent !important; box-shadow: none !important; }

/* Empty-lane placeholder: a single dashed pill, not a full dashed card */
.crm-v4 .crm-empty-lane {
  background: transparent !important;
  border: 1px dashed var(--b1) !important;
  border-radius: 10px !important;
  padding: 14px 12px !important;
  color: var(--t4) !important;
  font-size: 11.5px !important;
  text-align: center !important;
  letter-spacing: 0.01em !important;
}

/* Filters */
.crm-v4 .crm-filters {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.25fr) auto auto !important;
  gap: 10px !important;
  padding: 14px !important;
  background: color-mix(in srgb, var(--s2) 55%, transparent) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  margin-bottom: 10px !important;
}
.crm-v4 .crm-search {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 0 !important;
}
.crm-v4 .crm-search .search-icon {
  position: absolute;
  left: 14px;
  width: 15px; height: 15px;
  color: var(--t3);
  pointer-events: none;
}
.crm-v4 .crm-search input {
  width: 100% !important;
  padding: 10px 14px 10px 38px !important;
  background: var(--s1) !important;
  border: 1px solid var(--b2) !important;
  border-radius: 10px !important;
  color: var(--t1) !important;
  font-family: var(--font) !important;
  font-size: 13.5px !important;
  outline: none !important;
  transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease) !important;
}
.crm-v4 .crm-search input::placeholder { color: var(--t4); }
.crm-v4 .crm-search input:focus {
  border-color: var(--bf) !important;
  box-shadow: 0 0 0 3px var(--pink-dim) !important;
}

.crm-v4 .filter-chips {
  display: inline-flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
}
.crm-v4 .filter-chips select {
  padding: 9px 30px 9px 12px !important;
  border-radius: 10px !important;
  background: var(--s1) !important;
  border: 1px solid var(--b2) !important;
  color: var(--t1) !important;
  font-family: var(--font) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer;
  transition: border-color 0.15s var(--ease), background 0.15s var(--ease) !important;
}
.crm-v4 .filter-chips select:hover { border-color: var(--b3) !important; }
.crm-v4 .filter-chips select:focus { border-color: var(--bf) !important; box-shadow: 0 0 0 3px var(--pink-dim) !important; outline: none !important; }

.crm-v4 .filters-actions.crm-filter-actions {
  display: inline-flex !important;
  align-items: center;
  gap: 6px !important;
}
.crm-v4 .filter-action-btn {
  padding: 9px 14px !important;
  border-radius: 10px !important;
  border: 1px solid var(--b2) !important;
  background: var(--s1) !important;
  color: var(--t2) !important;
  font-family: var(--font) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: color 0.15s var(--ease), background 0.15s var(--ease), border-color 0.15s var(--ease) !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.crm-v4 .filter-action-btn:hover { color: var(--t1) !important; border-color: var(--b3) !important; background: var(--s2) !important; }
.crm-v4 .filter-action-btn--ghost {
  background: transparent !important;
  border-color: var(--b1) !important;
}

/* Ops bar */
.crm-v4 .crm-ops-bar {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 8px 4px 14px !important;
}
.crm-v4 .crm-results-summary {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: var(--t2) !important;
  letter-spacing: 0 !important;
}
.crm-v4 .crm-selection-summary {
  font-size: 12.5px;
  color: var(--pink);
  margin-left: 8px;
  font-weight: 600;
}

.crm-v4 .crm-quick-filters {
  display: inline-flex !important;
  gap: 4px !important;
  padding: 3px !important;
  border: 1px solid var(--b1) !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--s2) 50%, transparent) !important;
  justify-self: center;
}
.crm-v4 .crm-quick-filter {
  padding: 7px 14px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--t3) !important;
  font-family: var(--font) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  cursor: pointer;
  transition: color 0.15s var(--ease), background 0.15s var(--ease) !important;
}
.crm-v4 .crm-quick-filter:hover { color: var(--t2) !important; }
.crm-v4 .crm-quick-filter.is-active {
  color: var(--t1) !important;
  background: var(--s1) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.05), 0 2px 6px rgba(0,0,0,0.22);
}

.crm-v4 .crm-bulk-actions {
  display: inline-flex !important;
  gap: 6px !important;
}
.crm-v4 .crm-bulk-btn {
  padding: 8px 12px !important;
  border-radius: 8px !important;
  border: 1px solid var(--b2) !important;
  background: var(--s1) !important;
  color: var(--t2) !important;
  font-family: var(--font) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: color 0.15s var(--ease), background 0.15s var(--ease), border-color 0.15s var(--ease) !important;
}
.crm-v4 .crm-bulk-btn:hover { color: var(--t1) !important; background: var(--s2) !important; }
.crm-v4 .crm-bulk-btn--danger {
  background: color-mix(in srgb, var(--red) 10%, transparent) !important;
  border-color: color-mix(in srgb, var(--red) 30%, transparent) !important;
  color: var(--red) !important;
}
.crm-v4 .crm-bulk-btn--danger:hover { background: var(--red) !important; color: #fff !important; }

/* Empty dashboard — quiet guidance. Both CTAs live in the header, so this is just a sentence. */
.crm-v4 .crm-empty-dashboard {
  margin: 24px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}
.crm-v4 .crm-empty-dashboard-main {
  padding: 28px 30px !important;
  border-radius: 16px !important;
  background:
    radial-gradient(700px 240px at 8% 0%, color-mix(in srgb, var(--pink) 10%, transparent), transparent 72%),
    var(--s2) !important;
  border: 1px solid var(--b1) !important;
  max-width: 720px;
}
.crm-v4 .crm-empty-eyebrow {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--pink-dim);
  border: 1px solid color-mix(in srgb, var(--pink) 24%, transparent);
  color: var(--pink);
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  margin-bottom: 14px !important;
}
.crm-v4 .crm-empty-dashboard-main h3 {
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
  color: var(--t1) !important;
  margin: 0 0 8px 0 !important;
}
.crm-v4 .crm-empty-dashboard-main p {
  font-size: 13.5px !important;
  color: var(--t2) !important;
  line-height: 1.6 !important;
  max-width: 56ch;
  margin: 0 !important;
}
.crm-v4 .crm-empty-dashboard-main p strong {
  color: var(--t1);
  font-weight: 600;
}
/* Legacy rules nulled — the guides sidebar and in-panel buttons were removed. */
.crm-v4 .crm-empty-actions,
.crm-v4 .crm-empty-guides,
.crm-v4 .crm-empty-guide { display: none !important; }

/* Responsive */
@media (max-width: 1080px) {
  .crm-v4 .crm-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .crm-v4 .crm-filters {
    grid-template-columns: 1fr !important;
  }
  .crm-v4 .crm-ops-bar {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .crm-v4 .crm-quick-filters { justify-self: flex-start; }
  .crm-v4 .crm-empty-dashboard { grid-template-columns: 1fr !important; }
}
@media (max-width: 640px) {
  .crm-v4 .crm-header { flex-direction: column; align-items: flex-start !important; }
  .crm-v4 .crm-kpi-strip { grid-template-columns: 1fr 1fr !important; }
  .crm-v4 .crm-kpi-value { font-size: 26px !important; }
  .crm-v4 .filter-chips select { flex: 1 1 auto; }
}

/* ════════════════════════════════════════════════════════════════════════
   CRM PORTAL — v5 DETUNE
   Targets the surfaces the KPI/kanban pass missed: the pink-glow Add
   button, the heavy boxed filter panel, the pink-glow active page tab,
   and the lead-detail modal header.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Title kicker: swap pink "Sales" pill for a quieter lowercase eyebrow ── */
.crm-v4 .crm-title::before {
  content: 'Sales pipeline' !important;
  padding: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 6px !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--t3) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  display: block !important;
  transform: none !important;
}
.crm-v4 .crm-title { font-size: 28px !important; letter-spacing: -0.03em !important; font-weight: 600 !important; }

/* ── Header actions: flat solid pink, no gradient, no glow ── */
.crm-v4 .crm-add-btn {
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  border-radius: 8px !important;
  background: var(--pink) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
  transition:
    background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    transform 120ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-v4 .crm-add-btn:hover {
  background: var(--pink-hi) !important;
  transform: none !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
.crm-v4 .crm-add-btn:active { transform: translateY(1px) !important; }

/* Secondary header action (Import) */
.crm-v4 .crm-add-btn--secondary {
  background: transparent !important;
  border: 1px solid var(--b1) !important;
  color: var(--t2) !important;
  box-shadow: none !important;
}
.crm-v4 .crm-add-btn--secondary:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  color: var(--t1) !important;
  transform: none !important;
  box-shadow: none !important;
}
.crm-v4 .crm-add-btn--secondary:active { transform: translateY(1px) !important; }

/* ── Filter bar: flat row, no boxed container ── */
.crm-v4 .crm-filters {
  padding: 14px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  margin-bottom: 14px !important;
  grid-template-columns: minmax(240px, 1.2fr) auto auto !important;
  gap: 10px !important;
}
.crm-v4 .crm-search input {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  padding: 9px 14px 9px 36px !important;
  font-size: 13px !important;
  height: 36px !important;
}
.crm-v4 .crm-search input:focus {
  border-color: color-mix(in srgb, var(--pink) 42%, var(--b2)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 14%, transparent) !important;
}

.crm-v4 .filter-chips select {
  padding: 7px 28px 7px 12px !important;
  height: 36px !important;
  border-radius: 8px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  font-size: 12px !important;
}
.crm-v4 .filter-chips select:hover { border-color: var(--b2) !important; }
.crm-v4 .filter-chips select:focus {
  border-color: color-mix(in srgb, var(--pink) 42%, var(--b2)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 14%, transparent) !important;
}

.crm-v4 .filter-action-btn {
  padding: 8px 12px !important;
  height: 36px !important;
  border-radius: 8px !important;
  background: transparent !important;
  border: 1px solid var(--b1) !important;
  color: var(--t2) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              border-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              color 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-v4 .filter-action-btn:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  color: var(--t1) !important;
}

/* ── Lead card polish: tighten spacing, quiet priority indicator ── */
.crm-v4 .crm-card {
  border-radius: 10px !important;
  border-left-width: 3px !important;
  padding: 12px 14px !important;
  transition:
    border-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    transform 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
@media (hover: hover) and (pointer: fine) {
  .crm-v4 .crm-card:hover {
    background: var(--s3) !important;
    border-color: var(--b2) !important;
    transform: translateY(-1px) !important;
    box-shadow: none !important;
  }
}

/* ── CRM lead modal header: ditch the s2 fill, flat transparent header ── */
.crm-v4 .crm-modal-overlay,
.crm-modal-overlay {
  background: color-mix(in srgb, var(--bg, #0b0a10) 80%, transparent) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}
.crm-v4 .crm-modal,
.crm-modal {
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 80px -20px rgba(0, 0, 0, 0.55) !important;
}
.crm-v4 .crm-modal-header,
.crm-modal-header {
  background: transparent !important;
  border-bottom: 1px solid var(--b1) !important;
  padding: 18px 22px 14px !important;
}
.crm-v4 .crm-modal-header h3,
.crm-modal-header h3 {
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em !important;
}
.crm-v4 .crm-modal-body,
.crm-modal-body {
  background: var(--s1) !important;
}
.crm-v4 .crm-tender-banner,
.crm-tender-banner {
  font-size: 11.5px !important;
  color: var(--t3) !important;
  letter-spacing: 0 !important;
}

/* Labels inside CRM forms: lowercase, less shouting */
.crm-v4 .crm-form-group label,
.crm-form-group label,
.crm-v4 .crm-label,
.crm-label {
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  color: var(--t3) !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
}

/* Modal footer: flat cancel/ghost + flat solid save */
.crm-v4 .crm-cancel-btn,
.crm-cancel-btn {
  border: 1px solid var(--b1) !important;
  background: transparent !important;
  color: var(--t2) !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              border-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              color 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-v4 .crm-cancel-btn:hover,
.crm-cancel-btn:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  color: var(--t1) !important;
}
.crm-v4 .crm-save-btn,
.crm-save-btn {
  background: var(--pink) !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              transform 120ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-v4 .crm-save-btn:hover,
.crm-save-btn:hover {
  background: var(--pink-hi) !important;
  opacity: 1 !important;
}
.crm-v4 .crm-save-btn:active,
.crm-save-btn:active { transform: translateY(1px) !important; }

/* ── Page tabs (global, affects Radar + CRM header strip): kill the pink glow ── */
.page-tab.active {
  background: var(--pink) !important;
  box-shadow: none !important;
  transform: none !important;
}
.page-tab.active:hover { background: var(--pink-hi) !important; }
.page-tab:not(.active) {
  color: var(--t2) !important;
}
.page-tab:not(.active):hover {
  background: var(--s2) !important;
  color: var(--t1) !important;
}

/* Quick-filter chips (All / My leads / etc): flat pill strip */
.crm-v4 .crm-quick-filters {
  display: inline-flex !important;
  gap: 4px !important;
  padding: 4px !important;
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 10px !important;
}
.crm-v4 .crm-quick-filters button,
.crm-v4 .crm-quick-filters .crm-quick-chip {
  padding: 6px 12px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: var(--t3) !important;
  font-family: var(--font) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  cursor: pointer;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              color 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-v4 .crm-quick-filters button:hover,
.crm-v4 .crm-quick-filters .crm-quick-chip:hover {
  background: var(--s3) !important;
  color: var(--t1) !important;
}
.crm-v4 .crm-quick-filters button.active,
.crm-v4 .crm-quick-filters .crm-quick-chip.active,
.crm-v4 .crm-quick-filters button[aria-pressed="true"] {
  background: var(--s1) !important;
  color: var(--t1) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}

/* Smaller responsive tweaks */
@media (max-width: 900px) {
  .crm-v4 .crm-filters {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   TENDER RADAR — v5 DETUNE  (Phase 6)
   Targets the global tender list, filter strip, source dashboard,
   and refresh log. No markup class changes required — overrides cascade
   on top of the obsidian v3 rules already in this file.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Tender card: flat hover, no pink glow, no translate-y stacking ── */
.tender-card {
  border-radius: 12px !important;
  background: var(--s1) !important;
  box-shadow: none !important;
  transition:
    border-color 160ms cubic-bezier(0.23, 1, 0.32, 1),
    background-color 160ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
@media (hover: hover) and (pointer: fine) {
  .tender-card:hover {
    border-color: var(--b2) !important;
    background: var(--s2) !important;
    transform: none !important;
    box-shadow: none !important;
  }
}

/* Tender card urgency stripes — thicker, cleaner */
.tender-card::before {
  width: 3px !important;
  border-radius: 0 !important;
}

/* Title + meta: tighten tracking, calmer weight */
.tc-title {
  font-size: 14.5px !important;
  font-weight: 600 !important;
  letter-spacing: -0.008em !important;
  line-height: 1.4 !important;
}
.tc-meta-line {
  font-size: 10.5px !important;
  letter-spacing: 0.12em !important;
  color: var(--t3) !important;
}

/* Deadline chip: flat, no shadow */
.tc-deadline-inline {
  padding: 3px 9px !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

/* Score badge: ditch the chunky 800-weight glow look */
.score-badge {
  width: 30px !important;
  height: 30px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

/* "NEW" badge: softer pulse, no dominating colour */
.tc-new-badge {
  font-size: 9.5px !important;
  font-weight: 700 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  animation: pulseNew 3s ease-in-out infinite !important;
}

/* Tags: flat pills */
.tc-tag {
  border-radius: 5px !important;
  padding: 2px 7px !important;
  font-weight: 600 !important;
}

/* Expand button: subtler */
.tc-expand-btn { border: 1px solid var(--b1) !important; border-radius: 7px !important; }
.tc-expand-btn:hover { background: var(--s2) !important; border-color: var(--b2) !important; }
.tc-expand-btn.expanded { color: var(--pink) !important; }

/* ── Filters bar: flat, no heavy drop-shadow ── */
.filters-bar {
  box-shadow: none !important;
  border-bottom: 1px solid var(--b1) !important;
}
.search-field input {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 8px !important;
  height: 34px !important;
  font-size: 13px !important;
}
.search-field input:focus {
  border-color: color-mix(in srgb, var(--pink) 42%, var(--b2)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 14%, transparent) !important;
}

/* ── Source dashboard: flat cards with quiet status dots ── */
.source-card {
  padding: 16px 20px !important;
  border-radius: 10px !important;
  background: var(--s1) !important;
  border: 1px solid var(--b1) !important;
  box-shadow: none !important;
  transition:
    border-color 160ms cubic-bezier(0.23, 1, 0.32, 1),
    background-color 160ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
@media (hover: hover) and (pointer: fine) {
  .source-card:hover {
    border-color: var(--b2) !important;
    background: var(--s2) !important;
    transform: none !important;
    box-shadow: none !important;
  }
}
.source-card.down {
  border-color: color-mix(in srgb, var(--red) 22%, var(--b1)) !important;
}
.src-dot {
  width: 8px !important;
  height: 8px !important;
  box-shadow: none !important;
}
.src-dot.ok  { background: var(--green) !important; box-shadow: none !important; }
.src-dot.bad { background: var(--red) !important;   box-shadow: none !important; }
.src-name { font-size: 13.5px !important; font-weight: 600 !important; letter-spacing: -0.005em !important; }
.src-province { font-size: 11.5px !important; color: var(--t3) !important; }
.src-link { font-size: 10.5px !important; letter-spacing: 0.05em !important; text-transform: uppercase !important; font-weight: 600 !important; opacity: 0.8 !important; }

/* ── Refresh log: clean monospace tick list ── */
.refresh-log {
  max-height: 220px !important;
  border-top: 1px solid var(--b1) !important;
  padding-top: 12px !important;
}
.refresh-log-item {
  font-family: var(--font-mono, var(--font)) !important;
  font-size: 11px !important;
  line-height: 1.55 !important;
  padding: 3px 0 !important;
  letter-spacing: -0.01em !important;
}

/* ── Saved-views / view-toggle affordances: flat pill group ── */
.view-toggle-btn {
  border-radius: 7px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s2) !important;
  color: var(--t2) !important;
  padding: 6px 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              border-color 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.view-toggle-btn:hover { background: var(--s3) !important; color: var(--t1) !important; border-color: var(--b2) !important; }
.view-toggle-btn.active,
.view-toggle-btn[aria-pressed="true"] {
  background: var(--s1) !important;
  color: var(--t1) !important;
  border-color: var(--b2) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

/* Per-page select: flat */
.per-page-select,
.admin-select:not(.admin-v4 *),
select.crm-select {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 8px !important;
  padding: 7px 28px 7px 11px !important;
  font-size: 12px !important;
  height: 34px !important;
}

/* ── CRM docs + timeline inside the lead-detail modal: flat rows ── */
.crm-doc-item {
  padding: 9px 12px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b1) !important;
  border-radius: 0 !important;
}
.crm-doc-list { gap: 0 !important; border-top: 1px solid var(--b1); border-bottom: 1px solid var(--b1); }
.crm-doc-list .crm-doc-item:last-child { border-bottom: 0 !important; }

.crm-doc-upload-btn {
  border-radius: 7px !important;
  background: transparent !important;
  border: 1px solid var(--b1) !important;
}
.crm-doc-upload-btn:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
  color: var(--t1) !important;
}

/* CRM import modal: flatten the analyze CTA and stat pills */
.crm-import-analyze-btn {
  background: var(--pink) !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
  color: #fff !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              transform 120ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.crm-import-analyze-btn:hover { background: var(--pink-hi) !important; }
.crm-import-analyze-btn:active { transform: translateY(1px) !important; }

.crm-import-stat {
  background: transparent !important;
  border: 0 !important;
  border-right: 1px solid var(--b1) !important;
  padding: 10px 18px !important;
  border-radius: 0 !important;
}
.crm-import-stat:last-child { border-right: 0 !important; }
.crm-import-stats {
  border-top: 1px solid var(--b1) !important;
  border-bottom: 1px solid var(--b1) !important;
}

/* Import chips: flat pills */
.crm-import-chip {
  background: var(--s2) !important;
  border: 1px solid var(--b1) !important;
  border-radius: 7px !important;
  padding: 5px 10px !important;
  box-shadow: none !important;
}
.crm-import-chip--muted {
  background: transparent !important;
  color: var(--t3) !important;
}

/* Reassign + assign select: flat */
.assign-btn,
.assign-btn--unclaim,
.claim-btn {
  border-radius: 7px !important;
  border: 1px solid var(--b1) !important;
  background: var(--s2) !important;
  box-shadow: none !important;
  padding: 5px 10px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  transition: background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
              border-color 140ms cubic-bezier(0.23, 1, 0.32, 1) !important;
}
.assign-btn:hover,
.claim-btn:hover { background: var(--s3) !important; border-color: var(--b2) !important; }

/* Priority + status pills: desaturate the default pink; keep semantic coloring */
.pill,
.priority-badge,
.status-badge {
  border-radius: 5px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  padding: 2px 7px !important;
  box-shadow: none !important;
}

/* ── Theme toggle + logout in the user bar: flat ghost ── */
.theme-toggle-btn,
.logout-btn {
  border-radius: 7px !important;
  border: 1px solid var(--b1) !important;
  background: transparent !important;
  box-shadow: none !important;
}
.theme-toggle-btn:hover,
.logout-btn:hover {
  background: var(--s2) !important;
  border-color: var(--b2) !important;
}

/* Global: kill "generic AI" 800-weight headers in the old radar section */
.src-info strong,
.src-name strong { font-weight: 600 !important; }

/* ───────────────────────────────────────────────────────────────
   App-wide confirm dialog (replaces native window.confirm)
   Sits above every other modal; focus-trapped + dismissable on Esc.
─────────────────────────────────────────────────────────────── */
.app-confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 400;
  background: color-mix(in srgb, var(--bg, #0b0a10) 82%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: appConfirmFade 0.16s cubic-bezier(0.23, 1, 0.32, 1);
}
.app-confirm-overlay[hidden] { display: none; }

.app-confirm {
  width: 420px;
  max-width: 100%;
  background: var(--float);
  border: 1px solid var(--b2);
  border-radius: 14px;
  box-shadow:
    0 22px 60px -20px rgba(0, 0, 0, 0.55),
    0 1px 0 rgba(255, 255, 255, 0.04) inset;
  padding: 22px 22px 18px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  row-gap: 14px;
  align-items: start;
  outline: none;
  animation: appConfirmPop 0.22s cubic-bezier(0.23, 1, 0.32, 1) both;
}

@keyframes appConfirmFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes appConfirmPop {
  from { opacity: 0; transform: scale(0.96) translateY(6px); }
  to   { opacity: 1; transform: scale(1)    translateY(0);   }
}

/* Icon bubble — color swaps with tone */
.app-confirm-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid transparent;
  grid-row: 1;
  grid-column: 1;
}
.app-confirm[data-tone="danger"] .app-confirm-icon {
  background: var(--red-dim);
  border-color: color-mix(in srgb, var(--red) 22%, transparent);
  color: var(--red);
}
.app-confirm[data-tone="primary"] .app-confirm-icon {
  background: color-mix(in srgb, var(--pink) 12%, transparent);
  border-color: color-mix(in srgb, var(--pink) 28%, transparent);
  color: var(--pink-hi);
}
.app-confirm[data-tone="neutral"] .app-confirm-icon {
  background: var(--s2);
  border-color: var(--b1);
  color: var(--t3);
}

.app-confirm-copy {
  grid-row: 1;
  grid-column: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.app-confirm-title {
  margin: 0;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--t1);
  letter-spacing: -0.005em;
}
.app-confirm-message {
  margin: 0;
  font-family: var(--font);
  font-size: 13px;
  line-height: 1.55;
  color: var(--t3);
  word-wrap: break-word;
}

.app-confirm-actions {
  grid-row: 2;
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 2px;
}

.app-confirm-btn {
  appearance: none;
  border: 0;
  border-radius: 8px;
  padding: 9px 16px;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.005em;
  cursor: pointer;
  transition:
    background-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    border-color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    color 140ms cubic-bezier(0.23, 1, 0.32, 1),
    transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}
.app-confirm-btn:active { transform: translateY(1px); }
.app-confirm-btn:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 2px;
}

.app-confirm-btn--ghost {
  background: var(--s2);
  color: var(--t2);
  border: 1px solid var(--b1);
}
.app-confirm-btn--ghost:hover {
  background: var(--s3);
  border-color: var(--b2);
  color: var(--t1);
}

.app-confirm-btn--primary {
  background: var(--pink);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}
.app-confirm-btn--primary:hover { background: var(--pink-hi); }

.app-confirm-btn--danger {
  background: var(--red);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}
.app-confirm-btn--danger:hover {
  background: color-mix(in srgb, var(--red) 88%, #000);
}

@media (max-width: 480px) {
  .app-confirm {
    grid-template-columns: 1fr;
    padding: 18px 18px 16px;
  }
  .app-confirm-icon { grid-column: 1; }
  .app-confirm-copy { grid-column: 1; grid-row: 2; }
  .app-confirm-actions { grid-row: 3; }
}

/* ════════════════════════════════════════════════
   CRM MODAL — SECTIONED FORM (v2)
   ════════════════════════════════════════════════ */

/* Wrapper that stacks the 3 sections vertically */
.crm-form-sections {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Individual section block */
.crm-form-section {
  padding: 14px 0 16px;
  border-bottom: 1px solid var(--b1);
}
.crm-form-section:last-child { border-bottom: none; padding-bottom: 4px; }

/* Section label header */
.crm-form-section-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--t3);
  margin-bottom: 12px;
}
.crm-form-section-icon {
  color: var(--pink);
  flex-shrink: 0;
  opacity: 0.8;
}

/* Auto-filled field highlight (from tender prefill) */
.crm-input--prefilled {
  border-color: color-mix(in srgb, var(--pink) 55%, transparent) !important;
  background: color-mix(in srgb, var(--pink) 5%, var(--s2)) !important;
  transition: border-color 0.25s ease, background 0.25s ease;
}
.crm-input--prefilled:focus {
  border-color: var(--pink) !important;
  background: var(--s2) !important;
}

/* Tender banner — inline lightning bolt prefix */
.crm-tender-banner {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: var(--t3);
}
.crm-tender-banner strong { color: var(--t2); font-weight: 600; }
.crm-tender-banner svg { color: var(--pink); }

/* ── CRM Board column header improvements ── */
.crm-col-title-wrap { flex: 1 !important; }

.crm-col-header-right {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* Deal total chip in board column header */
.crm-col-deal-total {
  font-size: 10px;
  font-weight: 700;
  color: var(--t3);
  background: color-mix(in srgb, var(--stage-color, var(--pink)) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--stage-color, var(--pink)) 25%, transparent);
  border-radius: 4px;
  padding: 1px 6px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* ── CRM card deadline badge ── */
.crm-card-deadline-badge {
  display: inline-flex;
  align-items: center;
  font-size: 9.5px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  letter-spacing: 0.03em;
  flex-shrink: 0;
}
.crm-card-deadline-badge--overdue {
  background: color-mix(in srgb, var(--red, #ef4444) 15%, transparent);
  color: var(--red, #ef4444);
  border: 1px solid color-mix(in srgb, var(--red, #ef4444) 30%, transparent);
}
.crm-card-deadline-badge--urgent {
  background: color-mix(in srgb, var(--orange, #f97316) 15%, transparent);
  color: var(--orange, #f97316);
  border: 1px solid color-mix(in srgb, var(--orange, #f97316) 30%, transparent);
}
.crm-card-deadline-badge--soon {
  background: color-mix(in srgb, #eab308 12%, transparent);
  color: #ca8a04;
  border: 1px solid color-mix(in srgb, #eab308 28%, transparent);
}

/* ════════════════════════════════════════════════
   TEAM DASHBOARD v2
   ════════════════════════════════════════════════ */

/* KPI summary bar above team grid */
.team-kpi-bar {
  display: flex;
  gap: 1px;
  margin-bottom: 16px;
  border: 1px solid var(--b1);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--b1);
}

.team-kpi-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 14px 10px;
  background: var(--s1);
  text-align: center;
}
.team-kpi-item--warn { background: color-mix(in srgb, var(--orange, #f97316) 7%, var(--s1)); }

.team-kpi-value {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--t1);
  line-height: 1;
}
.team-kpi-item--warn .team-kpi-value { color: var(--orange, #f97316); }

.team-kpi-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--t3);
}

/* Card header — avatar + identity layout */
.team-card-identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.team-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--pink) 18%, var(--s2));
  border: 1px solid color-mix(in srgb, var(--pink) 30%, transparent);
  color: var(--pink);
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0.03em;
}

.team-identity-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.team-user-role {
  font-size: 11px;
  color: var(--t3);
  font-weight: 400;
}

/* Win rate badge */
.team-win-rate {
  font-size: 12px;
  font-weight: 700;
  color: var(--t3);
  background: var(--s2);
  border: 1px solid var(--b1);
  border-radius: 6px;
  padding: 3px 8px;
  flex-shrink: 0;
  letter-spacing: -0.01em;
}
.team-win-rate--good { color: #16a34a; background: color-mix(in srgb, #22c55e 10%, var(--s1)); border-color: color-mix(in srgb, #22c55e 25%, transparent); }

/* Status distribution mini-bar */
.team-status-bar {
  display: flex;
  height: 4px;
  border-radius: 2px;
  overflow: hidden;
  margin: 10px 0 10px;
  background: var(--b1);
  gap: 1px;
}
.team-status-bar-seg {
  display: block;
  height: 100%;
  border-radius: 1px;
  transition: width 0.3s ease;
  min-width: 3px;
}

/* CRM mini-stats row */
.team-crm-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.team-crm-stat {
  font-size: 11px;
  color: var(--t3);
  background: var(--s2);
  border: 1px solid var(--b1);
  border-radius: 4px;
  padding: 2px 8px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.team-crm-stat--won { color: #16a34a; background: color-mix(in srgb, #22c55e 8%, var(--s1)); border-color: color-mix(in srgb, #22c55e 20%, transparent); }
.team-crm-stat--rate { color: var(--t2); }
.team-crm-stat-val { font-weight: 700; color: var(--t1); }
.team-crm-stat--won .team-crm-stat-val { color: #16a34a; }

/* No tenders placeholder */
.team-tender-empty {
  font-size: 11.5px;
  color: var(--t3);
  padding: 10px 0 4px;
  margin: 0;
  border-top: 1px solid var(--b1);
}

@media (max-width: 600px) {
  .team-kpi-bar { flex-wrap: wrap; }
  .team-kpi-item { flex: 1 1 calc(50% - 1px); }
  .crm-form-section-head { margin-bottom: 10px; }
}

/* v38 CRM COMMAND CENTER + OFFICIAL TENDER PRESENTATION */
.crm-command-center {
  margin: 4px 0 20px;
}

.crm-command-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) minmax(420px, 1.45fr) minmax(300px, 1fr);
  gap: 14px;
  align-items: stretch;
}

.crm-command-panel {
  border: 1px solid var(--b1);
  border-radius: 18px;
  background: color-mix(in srgb, var(--s1) 88%, transparent);
  box-shadow: 0 18px 36px rgba(7, 9, 16, 0.08);
}

.crm-command-panel--primary,
.crm-command-panel--queue {
  padding: 18px;
}

.crm-command-panel--focus {
  padding: 10px;
}

.crm-command-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.crm-command-head > div {
  display: grid;
  gap: 5px;
}

.crm-command-kicker {
  color: var(--t4);
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: 0;
  text-transform: uppercase;
}

.crm-command-head strong,
.crm-risk-title {
  color: var(--t1);
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0;
  line-height: 1.25;
}

.crm-command-value {
  color: var(--green);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 760;
  white-space: nowrap;
}

.crm-command-copy,
.crm-risk-meta,
.crm-risk-empty {
  color: var(--t3);
  font-size: 12px;
  line-height: 1.5;
}

.crm-command-meter,
.crm-health-meter {
  position: relative;
  overflow: hidden;
  height: 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--s3) 72%, transparent);
}

.crm-command-meter {
  margin: 16px 0 12px;
}

.crm-command-meter span,
.crm-health-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--green), var(--pink));
}

.crm-command-focus-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  height: 100%;
}

.crm-focus-card {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 116px;
  padding: 14px;
  border: 1px solid var(--b1);
  border-radius: 14px;
  background: color-mix(in srgb, var(--s2) 70%, transparent);
  color: var(--t2);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms var(--ease), border-color 160ms var(--ease), background-color 160ms var(--ease), color 160ms var(--ease);
}

.crm-focus-card:hover,
.crm-focus-card.is-active {
  border-color: color-mix(in srgb, var(--pink) 28%, var(--b1));
  background: color-mix(in srgb, var(--pink) 8%, var(--s2));
  color: var(--t1);
}

.crm-focus-card:active {
  transform: scale(0.98);
}

.crm-focus-card span,
.crm-focus-card small {
  font-size: 11px;
  letter-spacing: 0;
}

.crm-focus-card span {
  color: var(--t3);
  font-weight: 700;
}

.crm-focus-card strong {
  color: var(--t1);
  font-family: var(--font-mono);
  font-size: 28px;
  font-weight: 780;
  line-height: 1;
}

.crm-focus-card small {
  color: var(--t3);
  line-height: 1.35;
}

.crm-risk-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.crm-risk-item {
  display: grid;
  gap: 4px;
  padding: 12px 13px;
  border: 1px solid var(--b1);
  border-radius: 13px;
  background: color-mix(in srgb, var(--s2) 68%, transparent);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms var(--ease), border-color 160ms var(--ease), background-color 160ms var(--ease);
}

.crm-risk-item:hover {
  transform: translateY(-1px);
  border-color: var(--b2);
}

.crm-risk-item--critical {
  border-color: rgba(239,68,68,0.24);
  background: color-mix(in srgb, var(--red) 8%, var(--s2));
}

.crm-risk-item--watch {
  border-color: rgba(245,158,11,0.24);
  background: color-mix(in srgb, var(--orange) 8%, var(--s2));
}

.crm-card {
  isolation: isolate;
}

.crm-card--risk-critical {
  border-color: rgba(239,68,68,0.24) !important;
}

.crm-card--risk-watch {
  border-color: rgba(245,158,11,0.22) !important;
}

.crm-card--risk-healthy {
  border-color: rgba(46,204,110,0.18) !important;
}

.crm-card-origin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.crm-health-label {
  min-height: 22px;
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  color: var(--t3);
  font-size: 10.5px;
  font-weight: 760;
  letter-spacing: 0;
  white-space: nowrap;
}

.crm-health-label--critical {
  color: #fca5a5;
  border-color: rgba(239,68,68,0.24);
  background: rgba(239,68,68,0.1);
}

.crm-health-label--watch {
  color: #fcd34d;
  border-color: rgba(245,158,11,0.24);
  background: rgba(245,158,11,0.1);
}

.crm-health-label--healthy {
  color: #86efac;
  border-color: rgba(46,204,110,0.22);
  background: rgba(46,204,110,0.08);
}

.crm-health-label--ok {
  color: #93c5fd;
  border-color: rgba(96,165,250,0.22);
  background: rgba(96,165,250,0.08);
}

.crm-health-meter {
  margin: 10px 0 4px;
  height: 6px;
}

.crm-health-meter--critical span {
  background: var(--red);
}

.crm-health-meter--watch span {
  background: var(--orange);
}

.crm-health-meter--ok span {
  background: var(--blue);
}

.crm-health-meter--healthy span {
  background: var(--green);
}

.crm-card-signal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.crm-signal-badge,
.crm-table-health {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid var(--b1);
  color: var(--t3);
  font-size: 10.5px;
  font-weight: 720;
  letter-spacing: 0;
  white-space: nowrap;
}

.crm-signal-badge--critical,
.crm-table-health--critical {
  color: #fca5a5;
  border-color: rgba(239,68,68,0.24);
  background: rgba(239,68,68,0.1);
}

.crm-signal-badge--watch,
.crm-table-health--watch {
  color: #fcd34d;
  border-color: rgba(245,158,11,0.24);
  background: rgba(245,158,11,0.1);
}

.crm-signal-badge--value {
  color: #86efac;
  border-color: rgba(46,204,110,0.22);
  background: rgba(46,204,110,0.08);
}

.crm-signal-badge--muted,
.crm-table-health--ok,
.crm-table-health--healthy {
  color: var(--t2);
  border-color: var(--b1);
  background: color-mix(in srgb, var(--s2) 78%, transparent);
}

.crm-td-company {
  display: grid;
  gap: 5px;
}

.tc-title,
.trv-title {
  text-wrap: pretty;
}

.tc-brief,
.trv-copy {
  color: var(--t2) !important;
}

[data-theme="light"] .crm-command-panel,
[data-theme="light"] .crm-focus-card,
[data-theme="light"] .crm-risk-item {
  background: rgba(255,255,255,0.94);
  border-color: rgba(17,17,24,0.08);
  box-shadow: 0 14px 28px rgba(17,17,24,0.05);
}

@media (max-width: 1180px) {
  .crm-command-grid {
    grid-template-columns: 1fr;
  }

  .crm-command-focus-grid {
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    overflow-x: auto;
  }
}

@media (max-width: 720px) {
  .crm-command-panel--primary,
  .crm-command-panel--queue {
    padding: 16px;
  }

  .crm-command-focus-grid {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
  }

  .crm-command-head,
  .crm-card-origin-row {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Sign-in v7 - Evrim access room */
.signin-page {
  position: relative;
  min-height: 100dvh;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.024) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,0.02) 1px, transparent 1px),
    radial-gradient(1100px 700px at 18% 18%, rgba(232,4,126,0.13), transparent 64%),
    linear-gradient(135deg, #08090f 0%, #111119 48%, #09090f 100%);
  background-size: 42px 42px, 42px 42px, auto, auto;
  color: var(--t1);
}

[data-theme="light"] .signin-page {
  background:
    linear-gradient(90deg, rgba(17,17,24,0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(17,17,24,0.035) 1px, transparent 1px),
    radial-gradient(1000px 620px at 18% 18%, rgba(232,4,126,0.08), transparent 64%),
    linear-gradient(135deg, #f7f7fb 0%, #f1eef4 52%, #ffffff 100%);
  background-size: 42px 42px, 42px 42px, auto, auto;
}

.signin-background {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.signin-sweep {
  position: absolute;
  inset: -22% auto auto -18%;
  width: 66vmax;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(232,4,126,0.15);
  background:
    conic-gradient(from 210deg, transparent 0deg, rgba(232,4,126,0.18) 24deg, transparent 50deg, transparent 360deg),
    repeating-radial-gradient(circle, rgba(255,255,255,0.055) 0 1px, transparent 1px 54px);
  opacity: 0.6;
  filter: blur(0.2px);
  animation: signinSweep 22s linear infinite;
}

.signin-matrix {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(110deg, transparent 0%, rgba(255,255,255,0.035) 42%, transparent 43%),
    linear-gradient(110deg, transparent 0%, rgba(232,4,126,0.08) 60%, transparent 61%);
  mask-image: linear-gradient(90deg, #000 0%, transparent 68%);
  -webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 68%);
}

.signin-noise {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.055) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity: 0.28;
  mix-blend-mode: overlay;
}

[data-theme="light"] .signin-sweep { opacity: 0.32; }
[data-theme="light"] .signin-noise { opacity: 0.16; }

@keyframes signinSweep {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .signin-sweep { animation: none; }
}

.signin-header,
.signin-stage {
  position: relative;
  z-index: 1;
}

.signin-header {
  width: min(1500px, calc(100vw - 48px));
  margin: 0 auto;
  padding: 24px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.signin-brand {
  display: inline-flex;
  align-items: center;
}

.signin-brand img {
  width: clamp(168px, 16vw, 232px);
  height: auto;
  display: block;
  border-radius: 8px;
}

.signin-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.signin-status,
.signin-theme-toggle {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--b1);
  border-radius: 8px;
  background: color-mix(in srgb, var(--s1) 78%, transparent);
  color: var(--t2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.signin-status {
  gap: 9px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 650;
}

.signin-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 3px;
  background: var(--orange);
  box-shadow: 0 0 0 3px rgba(245,158,11,0.12);
}

.signin-status[data-status="online"] .signin-status-dot {
  background: var(--green);
  box-shadow: 0 0 0 3px rgba(46,204,110,0.14);
}

.signin-status[data-status="offline"] .signin-status-dot,
.signin-status[data-status="degraded"] .signin-status-dot {
  background: var(--red);
  box-shadow: 0 0 0 3px rgba(239,68,68,0.14);
}

.signin-theme-toggle {
  gap: 2px;
  padding: 3px;
  color: var(--t3);
  font: 750 12px/1 var(--font);
  cursor: pointer;
}

.signin-theme-toggle span {
  min-width: 48px;
  min-height: 30px;
  display: grid;
  place-items: center;
  border-radius: 6px;
}

[data-theme="dark"] .signin-theme-toggle [data-theme-icon="dark"],
[data-theme="light"] .signin-theme-toggle [data-theme-icon="light"] {
  color: var(--t1);
  background: var(--pink-dim);
}

.signin-stage {
  width: min(1500px, calc(100vw - 48px));
  min-height: calc(100dvh - 92px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(390px, 0.58fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
  padding: 22px 0 54px;
}

.signin-copy {
  max-width: 850px;
  display: grid;
  gap: 28px;
}

.signin-kicker,
.signin-panel-label {
  color: var(--pink-hi);
  font: 800 11px/1 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.signin-copy h1 {
  max-width: 820px;
  margin: 0;
  color: var(--t1);
  font-size: clamp(56px, 8vw, 118px);
  font-weight: 850;
  line-height: 0.92;
  letter-spacing: 0;
  text-wrap: balance;
}

.signin-copy > p {
  max-width: 58ch;
  margin: 0;
  color: var(--t2);
  font-size: clamp(16px, 1.4vw, 21px);
  line-height: 1.55;
}

.signin-stack {
  width: min(860px, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.signin-stack article {
  min-height: 178px;
  display: grid;
  align-content: space-between;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--b1);
  border-radius: 8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--s1) 82%, transparent), color-mix(in srgb, var(--s2) 58%, transparent));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 18px 46px rgba(0,0,0,0.18);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.signin-stack span {
  color: var(--pink-hi);
  font: 800 12px/1 var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.signin-stack strong {
  display: block;
  color: var(--t1);
  font-size: 17px;
  line-height: 1.2;
}

.signin-stack p {
  margin: 0;
  color: var(--t3);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.45;
}

.signin-access-panel {
  width: 100%;
  max-width: 480px;
  justify-self: end;
  display: grid;
  gap: 24px;
  padding: 28px;
  border: 1px solid var(--b1);
  border-radius: 8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--s1) 92%, transparent), color-mix(in srgb, var(--s2) 78%, transparent));
  box-shadow: 0 28px 80px rgba(0,0,0,0.34), inset 0 1px 0 rgba(255,255,255,0.06);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

[data-theme="light"] .signin-access-panel,
[data-theme="light"] .signin-stack article,
[data-theme="light"] .signin-status,
[data-theme="light"] .signin-theme-toggle {
  background: rgba(255,255,255,0.82);
  box-shadow: 0 20px 54px rgba(17,17,24,0.08), inset 0 1px 0 rgba(255,255,255,0.86);
}

.signin-panel-top {
  display: grid;
  gap: 8px;
}

.signin-panel-top h2 {
  margin: 0;
  color: var(--t1);
  font-size: 40px;
  font-weight: 820;
  line-height: 1;
  letter-spacing: 0;
}

.signin-panel-top p {
  margin: 0;
  color: var(--t2);
  font-size: 14px;
  line-height: 1.5;
}

.signin-form {
  display: grid;
  gap: 16px;
}

.signin-field {
  display: grid;
  gap: 8px;
}

.signin-field > span {
  color: var(--t3);
  font-size: 12px;
  font-weight: 750;
}

.signin-field input {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--b2);
  border-radius: 8px;
  background: color-mix(in srgb, var(--s2) 72%, transparent);
  color: var(--t1);
  padding: 0 15px;
  font: 650 15px/1 var(--font);
  outline: none;
  transition: border-color 180ms var(--ease), box-shadow 180ms var(--ease), background-color 180ms var(--ease);
}

.signin-field input::placeholder {
  color: var(--t4);
}

.signin-field input:focus {
  border-color: var(--bf);
  background: color-mix(in srgb, var(--s1) 90%, transparent);
  box-shadow: 0 0 0 4px var(--pink-dim);
}

.signin-password-wrap {
  position: relative;
}

.signin-password-wrap input {
  padding-right: 48px;
}

.signin-reveal {
  position: absolute;
  inset: 9px 9px auto auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--t3);
  cursor: pointer;
}

.signin-reveal:hover,
.signin-reveal[aria-pressed="true"] {
  background: var(--pink-dim);
  color: var(--pink-hi);
}

.signin-error {
  min-height: auto;
  display: flex;
  gap: 10px;
  padding: 12px 13px;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
  background: var(--red-dim);
  color: var(--red);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
}

.signin-submit {
  width: 100%;
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 2px 0 0;
  padding: 0 16px 0 18px;
  border: 0;
  border-radius: 8px;
  background: linear-gradient(180deg, var(--pink-hi), var(--pink));
  color: #fff;
  font: 800 15px/1 var(--font);
  cursor: pointer;
  box-shadow: 0 16px 36px var(--pink-glo), inset 0 1px 0 rgba(255,255,255,0.24);
  transition: transform 160ms var(--ease), box-shadow 180ms var(--ease), filter 180ms var(--ease);
}

.signin-submit:hover {
  transform: translateY(-1px);
  filter: saturate(1.08);
  box-shadow: 0 22px 42px var(--pink-glo), inset 0 1px 0 rgba(255,255,255,0.24);
}

.signin-submit:active {
  transform: translateY(0) scale(0.99);
}

.signin-submit:disabled {
  cursor: wait;
  opacity: 0.74;
}

.signin-submit-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: rgba(255,255,255,0.18);
}

.signin-submit.is-loading .signin-submit-icon svg {
  display: none;
}

.signin-submit.is-loading .signin-submit-icon::after {
  content: '';
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.44);
  border-top-color: #fff;
  animation: loginSpin 0.75s linear infinite;
}

.signin-security-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.signin-security-grid span {
  min-height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--b1);
  border-radius: 8px;
  background: color-mix(in srgb, var(--s2) 64%, transparent);
  color: var(--t2);
  font-size: 11px;
  font-weight: 750;
  text-align: center;
}

.signin-legal {
  margin: 0;
  color: var(--t3);
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
}

@media (max-width: 1080px) {
  .signin-stage {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .signin-copy,
  .signin-access-panel {
    max-width: none;
    justify-self: stretch;
  }

  .signin-copy h1 {
    max-width: 760px;
  }
}

@media (max-width: 720px) {
  .signin-header,
  .signin-stage {
    width: min(100vw - 28px, 1500px);
  }

  .signin-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .signin-header-actions {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .signin-stack,
  .signin-security-grid {
    grid-template-columns: 1fr;
  }

  .signin-copy h1 {
    font-size: clamp(44px, 15vw, 72px);
  }

  .signin-access-panel {
    padding: 20px;
  }
}

/* Sign-in v8 - premium Evrim access portal, no tiled/grid background */
.access-page {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  isolation: isolate;
  color: var(--t1);
  background:
    radial-gradient(900px 620px at 6% 12%, color-mix(in srgb, var(--pink) 19%, transparent), transparent 66%),
    radial-gradient(720px 520px at 88% 18%, color-mix(in srgb, var(--cyan) 9%, transparent), transparent 62%),
    linear-gradient(135deg, #07070b 0%, #111119 45%, #08080d 100%);
}

[data-theme="light"] .access-page {
  background:
    radial-gradient(900px 620px at 6% 12%, rgba(232,4,126,0.12), transparent 66%),
    radial-gradient(720px 520px at 88% 18%, rgba(34,211,238,0.08), transparent 62%),
    linear-gradient(135deg, #fbfafc 0%, #f3eff4 48%, #ffffff 100%);
}

.access-ambient {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.access-glow {
  position: absolute;
  border-radius: 999px;
  filter: blur(60px);
  opacity: 0.5;
}

.access-glow-one {
  width: 520px;
  height: 520px;
  left: -160px;
  top: -150px;
  background: color-mix(in srgb, var(--pink) 34%, transparent);
}

.access-glow-two {
  width: 420px;
  height: 420px;
  right: -130px;
  bottom: 8%;
  background: color-mix(in srgb, var(--cyan) 18%, transparent);
}

.access-blade {
  position: absolute;
  inset: 8% -20% auto 42%;
  height: 86%;
  transform: rotate(-12deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  opacity: 0.48;
  filter: blur(0.4px);
}

.access-grain {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity: 0.23;
  mix-blend-mode: overlay;
}

[data-theme="light"] .access-grain { opacity: 0.12; }

.access-shell {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100vw - 40px));
  min-height: 100dvh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
  gap: clamp(28px, 7vw, 92px);
  align-items: center;
  padding: 40px 0;
}

.access-story {
  min-width: 0;
  display: grid;
  gap: clamp(36px, 7vw, 84px);
}

.access-logo {
  width: fit-content;
  display: inline-flex;
}

.access-logo img {
  display: block;
  width: clamp(172px, 15vw, 236px);
  height: auto;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.28);
}

.access-copy {
  display: grid;
  gap: 18px;
}

.access-copy span,
.access-form-head span {
  color: var(--pink-hi);
  font: 800 11px/1 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.access-copy h1 {
  max-width: 780px;
  margin: 0;
  color: var(--t1);
  font-size: clamp(64px, 8vw, 128px);
  font-weight: 900;
  line-height: 0.86;
  letter-spacing: 0;
  text-wrap: balance;
}

.access-copy p {
  max-width: 58ch;
  margin: 0;
  color: var(--t2);
  font-size: clamp(17px, 1.45vw, 22px);
  line-height: 1.55;
}

.access-proof {
  width: min(720px, 100%);
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.access-proof div {
  flex: 1 1 180px;
  min-height: 96px;
  display: grid;
  align-content: space-between;
  padding: 16px;
  border: 1px solid var(--b1);
  border-radius: 14px;
  background: color-mix(in srgb, var(--s1) 72%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 20px 46px rgba(0,0,0,0.16);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.access-proof strong {
  color: var(--t1);
  font-size: 15px;
}

.access-proof span {
  color: var(--t3);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.4;
}

.access-card {
  width: 100%;
  display: grid;
  gap: 26px;
  padding: 24px;
  border: 1px solid var(--b1);
  border-radius: 18px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--s1) 92%, transparent), color-mix(in srgb, var(--s2) 76%, transparent));
  box-shadow: 0 30px 90px rgba(0,0,0,0.36), inset 0 1px 0 rgba(255,255,255,0.06);
  backdrop-filter: blur(26px) saturate(1.08);
  -webkit-backdrop-filter: blur(26px) saturate(1.08);
}

[data-theme="light"] .access-card,
[data-theme="light"] .access-proof div {
  background: rgba(255,255,255,0.78);
  box-shadow: 0 24px 70px rgba(33,26,37,0.12), inset 0 1px 0 rgba(255,255,255,0.8);
}

.access-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.access-status,
.access-theme {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--b1);
  border-radius: 999px;
  background: color-mix(in srgb, var(--s2) 72%, transparent);
  color: var(--t2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.access-status {
  gap: 9px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 700;
}

.access-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--orange);
  box-shadow: 0 0 0 3px var(--orange-dim);
}

.access-status[data-status="online"] .access-status-dot {
  background: var(--green);
  box-shadow: 0 0 0 3px var(--green-dim);
}

.access-status[data-status="offline"] .access-status-dot,
.access-status[data-status="degraded"] .access-status-dot {
  background: var(--red);
  box-shadow: 0 0 0 3px var(--red-dim);
}

.access-theme {
  gap: 2px;
  padding: 3px;
  font: 800 11px/1 var(--font);
  cursor: pointer;
}

.access-theme span {
  min-width: 42px;
  min-height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
}

[data-theme="dark"] .access-theme [data-theme-icon="dark"],
[data-theme="light"] .access-theme [data-theme-icon="light"] {
  color: var(--t1);
  background: var(--pink-dim);
}

.access-form-head {
  display: grid;
  gap: 8px;
}

.access-form-head h2 {
  margin: 0;
  color: var(--t1);
  font-size: 42px;
  line-height: 0.96;
  letter-spacing: 0;
}

.access-form-head p,
.access-footnote {
  margin: 0;
  color: var(--t2);
  font-size: 13px;
  line-height: 1.5;
}

.access-form {
  display: grid;
  gap: 16px;
}

.access-field {
  display: grid;
  gap: 8px;
}

.access-field > span {
  color: var(--t3);
  font-size: 12px;
  font-weight: 800;
}

.access-field input {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--b2);
  border-radius: 12px;
  background: color-mix(in srgb, var(--s2) 68%, transparent);
  color: var(--t1);
  padding: 0 15px;
  font: 650 15px/1 var(--font);
  outline: none;
  transition: border-color 180ms var(--ease), box-shadow 180ms var(--ease), background-color 180ms var(--ease);
}

.access-field input::placeholder { color: var(--t4); }

.access-field input:focus {
  border-color: var(--bf);
  background: color-mix(in srgb, var(--s1) 86%, transparent);
  box-shadow: 0 0 0 4px var(--pink-dim);
}

.access-password {
  position: relative;
}

.access-password input {
  padding-right: 48px;
}

.access-reveal {
  position: absolute;
  inset: 9px 9px auto auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--t3);
}

.access-reveal:hover,
.access-reveal[aria-pressed="true"] {
  background: var(--pink-dim);
  color: var(--pink-hi);
}

.access-error {
  padding: 12px 13px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
  background: var(--red-dim);
  color: var(--red);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.access-submit {
  width: 100%;
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, var(--pink-hi), var(--pink));
  color: #fff;
  padding: 0 14px 0 18px;
  font: 850 15px/1 var(--font);
  cursor: pointer;
  box-shadow: 0 18px 40px var(--pink-glo), inset 0 1px 0 rgba(255,255,255,0.22);
  transition: transform 160ms var(--ease), box-shadow 180ms var(--ease), filter 180ms var(--ease);
}

.access-submit:hover {
  transform: translateY(-1px);
  filter: saturate(1.08);
}

.access-submit:active {
  transform: translateY(0) scale(0.99);
}

.access-submit:disabled {
  opacity: 0.72;
  cursor: wait;
}

.access-submit-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
}

.access-submit.is-loading .access-submit-icon svg {
  display: none;
}

.access-submit.is-loading .access-submit-icon::after {
  content: '';
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.45);
  border-top-color: #fff;
  animation: loginSpin 0.75s linear infinite;
}

.access-footnote {
  padding-top: 18px;
  border-top: 1px solid var(--b1);
  color: var(--t3);
  text-align: center;
}

@media (max-width: 980px) {
  .access-shell {
    grid-template-columns: 1fr;
    gap: 34px;
    align-items: start;
  }

  .access-card {
    max-width: 560px;
  }
}

@media (max-width: 560px) {
  .access-shell {
    width: min(100vw - 28px, 1180px);
    padding: 24px 0;
  }

  .access-copy h1 {
    font-size: clamp(52px, 17vw, 76px);
  }

  .access-card {
    padding: 18px;
  }

  .access-card-top {
    align-items: flex-start;
    flex-direction: column;
  }

  .access-status,
  .access-theme {
    width: 100%;
    justify-content: center;
  }
}
