/**
 * Venddor Design System — Desk shell tokens
 * Brand: Sublogo-Azul-V2 (#003AFF) + navy/teal product palette
 * Load early; desk-shell.css wins geometry later.
 */

:root {
  /* Brand */
  --vd-brand: #003AFF;
  --vd-brand-deep: #0022FF;
  --vd-brand-sky: #00A7FF;
  --vd-brand-soft: #E8EFFF;
  --vd-brand-border: #B8C9FF;

  /* Product navy / teal (sidebar, accents) */
  --vd-navy: #0B1C2D;
  --vd-navy-2: #0B0E14;
  --vd-navy-mid: #172A42;
  --vd-teal: #2EE6D6;
  --vd-teal-d: #13B9AC;
  --vd-indigo: #4F46E5;
  --vd-indigo-soft: #EEF2FF;

  /* Surfaces */
  --vd-bg: #F4F6FA;
  --vd-surface: #FFFFFF;
  --vd-surface-2: #F8FAFC;
  --vd-border: #E2E8F0;
  --vd-border-strong: #CBD5E1;

  /* Text */
  --vd-text: #0F172A;
  --vd-text-2: #334155;
  --vd-muted: #64748B;
  --vd-muted-2: #94A3B8;
  --vd-on-dark: #F8FAFC;
  --vd-on-dark-muted: #9FADC0;

  /* Semantic */
  --vd-success: #16A34A;
  --vd-warning: #D97706;
  --vd-danger: #DC2626;
  --vd-info: #0284C7;

  /* Geometry (single source for rail + VI) */
  --vd-rail: 94px;
  --vd-sidebar-full: 260px;
  --vd-sidebar-drawer: min(288px, 86vw);
  --vi-w: 0px; /* set by VI JS when open */
  --vd-topbar-h: 56px;
  --vd-radius: 12px;
  --vd-radius-lg: 16px;
  --vd-radius-sm: 8px;
  --vd-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 8px 24px rgba(15, 23, 42, 0.04);
  --vd-shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.12);
  --vd-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vd-space-1: 4px;
  --vd-space-2: 8px;
  --vd-space-3: 12px;
  --vd-space-4: 16px;
  --vd-space-5: 24px;
  --vd-space-6: 32px;

  /* Legacy aliases used across pages */
  --venddor-primary: var(--vd-navy);
  --venddor-primary-light: var(--vd-indigo);
  --venddor-primary-dark: var(--vd-navy-2);
  --venddor-accent: var(--vd-teal);
  --color-primary: var(--vd-navy);
  --color-secondary: var(--vd-indigo);
  --color-accent: var(--vd-teal);
  --sidebar-width: var(--vd-rail);
  --sidebar-collapsed-width: var(--vd-rail);
}

/* ---- Global type / surfaces ---- */
body {
  font-family: var(--vd-font);
  color: var(--vd-text);
  background-color: var(--vd-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Icons always have explicit box (no layout shift / clip) */
.sidebar-nav-item > i,
.sidebar-nav-item > svg,
.btn i,
.btn .bi,
.vip-ibtn i,
.vip-badge i,
.client-nav-item i {
  width: 1.25em;
  height: 1.25em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
  vertical-align: middle;
}

.sidebar-nav-item > svg,
.vd-icon {
  width: 24px;
  height: 24px;
}

/* Page chrome utilities (available to every blade) */
.vd-page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--vd-space-3) var(--vd-space-4);
  margin-bottom: var(--vd-space-5);
  min-width: 0;
}

.vd-page-header h1,
.vd-page-header .page-title,
.vd-page-title {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem);
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--vd-text);
  line-height: 1.25;
  overflow-wrap: anywhere;
  min-width: 0;
}

.vd-page-subtitle {
  margin: 4px 0 0;
  color: var(--vd-muted);
  font-size: 0.875rem;
  line-height: 1.4;
  max-width: 60ch;
}

.vd-page-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.vd-card {
  background: var(--vd-surface);
  border: 1px solid var(--vd-border);
  border-radius: var(--vd-radius-lg);
  box-shadow: var(--vd-shadow);
  min-width: 0;
  max-width: 100%;
}

.vd-card .card-header,
.vd-card-header {
  background: transparent;
  border-bottom: 1px solid var(--vd-border);
  padding: 14px 18px;
  font-weight: 650;
}

.vd-card .card-body,
.vd-card-body {
  padding: 16px 18px;
}

/* Soften default Bootstrap cards inside desk */
.main-content .card {
  border-color: var(--vd-border);
  border-radius: var(--vd-radius-lg);
  box-shadow: var(--vd-shadow);
  overflow: hidden;
  min-width: 0;
}

.main-content .card-header {
  background: var(--vd-surface-2);
  border-bottom-color: var(--vd-border);
  font-weight: 650;
}

.main-content .btn-primary {
  --bs-btn-bg: var(--vd-brand);
  --bs-btn-border-color: var(--vd-brand);
  --bs-btn-hover-bg: var(--vd-brand-deep);
  --bs-btn-hover-border-color: var(--vd-brand-deep);
  --bs-btn-active-bg: var(--vd-brand-deep);
  --bs-btn-active-border-color: var(--vd-brand-deep);
  font-weight: 600;
  border-radius: 10px;
}

.main-content .btn-outline-primary {
  --bs-btn-color: var(--vd-brand);
  --bs-btn-border-color: var(--vd-brand-border);
  --bs-btn-hover-bg: var(--vd-brand-soft);
  --bs-btn-hover-border-color: var(--vd-brand);
  --bs-btn-hover-color: var(--vd-brand-deep);
  border-radius: 10px;
  font-weight: 600;
}

.main-content .form-control,
.main-content .form-select {
  border-radius: 10px;
  border-color: var(--vd-border-strong);
  min-height: 40px;
}

.main-content .form-control:focus,
.main-content .form-select:focus {
  border-color: var(--vd-brand);
  box-shadow: 0 0 0 3px rgba(0, 58, 255, 0.15);
}

/* Tables: never break the viewport */
.main-content .table-responsive,
.content-wrapper .table-responsive {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--vd-radius);
}

.main-content table {
  min-width: 0;
}

.main-content th,
.main-content td {
  vertical-align: middle;
}

/* Filter bars wrap instead of squeezing */
.main-content .filters-row,
.main-content .filter-bar,
.main-content form.row.g-2,
.main-content form.row.g-3 {
  row-gap: 0.75rem;
}

/* Prevent text clip on badges / pills */
.main-content .badge {
  white-space: normal;
  max-width: 100%;
  line-height: 1.25;
  padding: 0.35em 0.65em;
  font-weight: 600;
}

/* Page titles that still use h1/h2 raw */
.main-content .content-wrapper > h1,
.main-content .container-fluid > h1,
.main-content .d-flex.justify-content-between > h1,
.main-content .d-flex.justify-content-between > h2,
.main-content .d-sm-flex h1,
.main-content .d-sm-flex h2 {
  font-size: clamp(1.15rem, 1rem + 0.55vw, 1.45rem);
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--vd-text);
  line-height: 1.25;
  overflow-wrap: anywhere;
  min-width: 0;
}

/* Images never overflow */
.main-content img,
.main-content video,
.main-content canvas,
.main-content svg {
  max-width: 100%;
  height: auto;
}

/* Brand logo helpers */
.vd-brand-mark {
  display: block;
  width: 120px;
  height: auto;
  max-width: 100%;
}

.vd-brand-mark--sm {
  width: 96px;
}

.vd-brand-icon {
  width: 53px;
  height: 40px;
  object-fit: contain;
  display: block;
}
