/* IQVIN-SERVICE shared visual baseline (UI002)
 *
 * Layered ON TOP of /static/assets/css/all.min.css (Bootstrap 4 + Limitless).
 * Goal: design tokens + light normalization. Does NOT fight existing classes.
 *
 * No external fonts. No remote assets. No !important wars.
 * Safe to load on every page (logged-in shell, not-logged-in shell, login, verify, print).
 */

:root {
  /* Brand colors (calmer than Limitless defaults, deeper enterprise feel) */
  --iqv-primary:        #1f5fb0;
  --iqv-primary-600:    #2a6cc4;
  --iqv-primary-700:    #1a4a8a;
  --iqv-primary-100:    #e8f1fb;

  --iqv-success:        #2f7a4d;
  --iqv-success-100:    #e9f5ee;

  --iqv-warning:        #c08a2e;
  --iqv-warning-100:    #fbf2dd;

  --iqv-danger:         #b94a48;
  --iqv-danger-100:     #fbe9e8;

  --iqv-info:           #4f7fa8;
  --iqv-info-100:       #e6eef6;

  /* Neutrals */
  --iqv-ink:            #252b36;
  --iqv-ink-2:          #445160;
  --iqv-muted:          #6c757d;
  --iqv-muted-2:        #8b95a1;

  /* Surfaces */
  --iqv-surface:        #ffffff;
  --iqv-surface-2:      #fafbfc;
  --iqv-surface-3:      #f5f7fa;
  --iqv-surface-4:      #eef2f5;

  /* Borders */
  --iqv-border:         #dfe5ec;
  --iqv-border-2:       #e3e7ec;
  --iqv-border-3:       #edf0f4;

  /* Type scale */
  --iqv-font:           "Roboto", "Helvetica Neue", Arial, sans-serif;
  --iqv-fs-12: 12px;  --iqv-fs-13: 13px;  --iqv-fs-14: 14px;  --iqv-fs-15: 15px;
  --iqv-fs-16: 16px;  --iqv-fs-18: 18px;  --iqv-fs-20: 20px;  --iqv-fs-24: 24px;
  --iqv-lh:    1.5;

  /* Spacing scale */
  --iqv-sp-4:  4px;  --iqv-sp-8:  8px;  --iqv-sp-12: 12px;
  --iqv-sp-16: 16px; --iqv-sp-24: 24px; --iqv-sp-32: 32px; --iqv-sp-48: 48px;

  /* Radius / shadow */
  --iqv-radius:  6px;
  --iqv-radius-sm: 4px;
  --iqv-shadow-card: 0 1px 3px rgba(0,0,0,.04);
  --iqv-shadow-pop:  0 4px 12px rgba(0,0,0,.08);
}

/* ---------- Base smoothing (light, non-disruptive) ---------- */
html, body {
  font-family: var(--iqv-font);
  color: var(--iqv-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-size: var(--iqv-fs-14);
  line-height: var(--iqv-lh);
}

/* Headings — tighten default Bootstrap margins */
h1 { font-size: var(--iqv-fs-24); margin: 0 0 var(--iqv-sp-16) 0; }
h2 { font-size: var(--iqv-fs-20); margin: 0 0 var(--iqv-sp-14) 0; }
h3 { font-size: var(--iqv-fs-18); margin: 0 0 var(--iqv-sp-12) 0; }
h4 { font-size: var(--iqv-fs-16); margin: 0 0 var(--iqv-sp-12) 0; }
h5 { font-size: var(--iqv-fs-15); margin: 0 0 var(--iqv-sp-10) 0; }
h6 { font-size: var(--iqv-fs-14); margin: 0 0 var(--iqv-sp-10) 0; }

/* ---------- Cards (sits on Limitless .card) ---------- */
.iqv-card,
.card {
  border-radius: var(--iqv-radius);
  box-shadow: var(--iqv-shadow-card);
  border-color: var(--iqv-border-2);
}

.card-header {
  background: var(--iqv-surface-2);
  border-bottom: 1px solid var(--iqv-border);
}

/* ---------- Buttons (refine Limitless .btn) ---------- */
.btn {
  border-radius: var(--iqv-radius);
  font-weight: 500;
  letter-spacing: 0.01em;
}

.btn-primary {
  background-color: var(--iqv-primary);
  border-color: var(--iqv-primary);
}
.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--iqv-primary-700);
  border-color: var(--iqv-primary-700);
}

/* ---------- Status badges / pills (semantic) ---------- */
.iqv-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: var(--iqv-fs-12);
  font-weight: 600;
  line-height: 1.4;
  border: 1px solid transparent;
}
.iqv-badge-primary  { background: var(--iqv-primary-100);   color: var(--iqv-primary-700); }
.iqv-badge-success  { background: var(--iqv-success-100);   color: var(--iqv-success); }
.iqv-badge-warning  { background: var(--iqv-warning-100);   color: var(--iqv-warning); }
.iqv-badge-danger   { background: var(--iqv-danger-100);    color: var(--iqv-danger); }
.iqv-badge-info     { background: var(--iqv-info-100);      color: var(--iqv-info); }
.iqv-badge-muted    { background: var(--iqv-surface-4);     color: var(--iqv-muted); }

/* Status helpers for order/document state (order_status) */
.iqv-status-new               { color: var(--iqv-primary-700); }
.iqv-status-in_process        { color: var(--iqv-warning); }
.iqv-status-signing           { color: var(--iqv-info); }
.iqv-status-translated        { color: var(--iqv-success); }
.iqv-status-deleted           { color: var(--iqv-muted); }
.iqv-status-delete_requested  { color: var(--iqv-warning); }

/* ---------- Text / spacing utilities ---------- */
.iqv-text-muted   { color: var(--iqv-muted); }
.iqv-text-strong  { color: var(--iqv-ink);   font-weight: 600; }
.iqv-text-small   { font-size: var(--iqv-fs-12); color: var(--iqv-muted); }
.iqv-text-tiny    { font-size: var(--iqv-fs-12); }

.iqv-mt-0  { margin-top: 0; }
.iqv-mt-4  { margin-top: var(--iqv-sp-4); }
.iqv-mt-8  { margin-top: var(--iqv-sp-8); }
.iqv-mt-12 { margin-top: var(--iqv-sp-12); }
.iqv-mt-16 { margin-top: var(--iqv-sp-16); }
.iqv-mt-24 { margin-top: var(--iqv-sp-24); }

.iqv-mb-0  { margin-bottom: 0; }
.iqv-mb-4  { margin-bottom: var(--iqv-sp-4); }
.iqv-mb-8  { margin-bottom: var(--iqv-sp-8); }
.iqv-mb-12 { margin-bottom: var(--iqv-sp-12); }
.iqv-mb-16 { margin-bottom: var(--iqv-sp-16); }
.iqv-mb-24 { margin-bottom: var(--iqv-sp-24); }

.iqv-section       { margin: var(--iqv-sp-24) 0; }
.iqv-section-tight { margin: var(--iqv-sp-16) 0; }

/* ---------- Page title block (consistent across pages) ---------- */
.iqv-page-title {
  font-size: var(--iqv-fs-20);
  font-weight: 700;
  color: var(--iqv-ink);
  margin: 0 0 var(--iqv-sp-4) 0;
}
.iqv-page-subtitle {
  font-size: var(--iqv-fs-13);
  color: var(--iqv-muted);
  margin: 0 0 var(--iqv-sp-16) 0;
}

/* ---------- Tables (harmonized spacing, calmer look) ---------- */
.iqv-table,
.table {
  background: var(--iqv-surface);
}
.iqv-table thead th,
.table thead th {
  font-weight: 600;
  color: var(--iqv-ink-2);
  font-size: var(--iqv-fs-13);
  border-bottom: 1px solid var(--iqv-border);
}
.iqv-table tbody td,
.table tbody td {
  vertical-align: middle;
  border-top: 1px solid var(--iqv-border-3);
}

.iqv-table-empty {
  padding: var(--iqv-sp-24);
  text-align: center;
  color: var(--iqv-muted);
  font-size: var(--iqv-fs-13);
  background: var(--iqv-surface-2);
  border: 1px dashed var(--iqv-border);
  border-radius: var(--iqv-radius);
}

/* ---------- Empty / alert / notice blocks ---------- */
.iqv-notice {
  margin-top: var(--iqv-sp-12);
  padding: var(--iqv-sp-12);
  border-radius: var(--iqv-radius);
  background: var(--iqv-warning-100);
  color: var(--iqv-warning);
  font-size: var(--iqv-fs-13);
  line-height: 1.45;
}

/* ---------- Footer copyright strip (neutral) ---------- */
.iqv-footer-meta {
  color: var(--iqv-muted);
  font-size: var(--iqv-fs-12);
}
.iqv-footer-meta a {
  color: var(--iqv-muted);
}

/* ---------- Print safety ---------- */
@media print {
  .iqv-no-print { display: none !important; }
  a[href]::after { content: ""; } /* keep printed links clean */
}