/* ============================================================
   SOZO THEME TOKENS: the ONE place for colours, fonts, sizes, radius and spacing.
   Site and admin load this after Bootstrap 5, so Bootstrap classes follow it.
   Design source: the PerfexCRM admin look (owner's choice, 2026-10-29): Inter, 13.5px, light grey page,
   white panels with a thin border, dark primary buttons, quiet grey navigation. Written from scratch (no Perfex files are copied).
   ============================================================ */
:root,[data-bs-theme="light"]{
  color-scheme:light;   /* never let the browser darken the pages */
  /* type */
  --sz-font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --sz-font-display:var(--sz-font);
  --sz-size:13.5px;          /* base text, everywhere */
  --sz-size-sm:12px;         /* captions, table heads */
  --sz-size-lg:16px;         /* panel and page titles */
  --sz-size-xl:20px;         /* big numbers */
  /* colour */
  --sz-bg:#f5f6f8;           /* page: almost white, barely tinted */
  --sz-surface:#ffffff;      /* panels, header */
  --sz-sidebar:#ffffff;
  --sz-ink:#1f2937;          /* strong text (a soft black) */
  --sz-body:#4b5563;         /* normal text */
  --sz-muted:#6b7280;        /* icons, captions */
  --sz-line:#e5e7eb;         /* hairlines */
  --sz-line-strong:#cbd5e1;  /* sidebar edge */
  --sz-primary:#2563eb;      /* blue buttons and active states */
  --sz-primary-dark:#1d4ed8;
  --sz-primary-soft:#eff6ff;
  --sz-link:#2563eb;
  --sz-link-rgb:37,99,235;
  /* chart / stat accents (used in this order) */
  --sz-c1:#2563eb; --sz-c2:#16a34a; --sz-c3:#f59e0b; --sz-c4:#7c3aed; --sz-c5:#0891b2; --sz-c6:#dc2626; --sz-c7:#9ca3af;
  --sz-success:#16a34a; --sz-success-bg:#e9f8ef;
  --sz-warning:#d97706; --sz-warning-bg:#fef3dc;
  --sz-danger:#dc2626;  --sz-danger-bg:#fdecec;
  --sz-info:#2563eb;    --sz-info-bg:#eaf1fe;
  /* shape */
  --sz-radius:8px; --sz-radius-sm:6px;
  --sz-shadow:0 1px 2px rgba(17,24,39,.05);
  --sz-header-h:57px; --sz-side-w:230px;

  /* Bootstrap 5 variables pointed at the tokens */
  --bs-body-font-family:var(--sz-font);
  --bs-body-font-size:var(--sz-size);
  --bs-body-color:var(--sz-body);
  --bs-body-bg:var(--sz-bg);
  --bs-heading-color:var(--sz-ink);
  --bs-primary:var(--sz-primary); --bs-primary-rgb:37,99,235;
  --bs-success:var(--sz-success); --bs-warning:var(--sz-warning); --bs-danger:var(--sz-danger); --bs-info:var(--sz-info);
  --bs-link-color:var(--sz-link); --bs-link-hover-color:#1d4ed8; --bs-link-color-rgb:var(--sz-link-rgb);
  --bs-border-color:var(--sz-line);
  --bs-border-radius:var(--sz-radius-sm); --bs-border-radius-lg:var(--sz-radius);
  --bs-secondary-color:var(--sz-muted);
}

/* ---- base ---- */
body{font-family:var(--sz-font);font-size:var(--sz-size);line-height:1.5;color:var(--sz-body);background:var(--sz-bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--sz-font-display);color:var(--sz-ink);font-weight:600;line-height:1.3;text-wrap:balance}
h1{font-size:var(--sz-size-lg)} h2,h3,h4,h5,h6{font-size:var(--sz-size)}
a{text-decoration:none}
small,.small{font-size:var(--sz-size-sm)}

/* ---- buttons: 34px, dark primary, 6px radius ---- */
.btn{--bs-btn-font-size:var(--sz-size);--bs-btn-font-weight:500;--bs-btn-border-radius:var(--sz-radius-sm);--bs-btn-padding-y:.4rem;--bs-btn-padding-x:.85rem;line-height:20px;box-shadow:none}
.btn-sm{--bs-btn-font-size:var(--sz-size-sm);--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.6rem}
.btn-primary{--bs-btn-bg:var(--sz-primary);--bs-btn-border-color:var(--sz-primary);--bs-btn-hover-bg:var(--sz-primary-dark);--bs-btn-hover-border-color:var(--sz-primary-dark);--bs-btn-active-bg:#1e40af;--bs-btn-active-border-color:#1e40af;--bs-btn-disabled-bg:var(--sz-primary);--bs-btn-disabled-border-color:var(--sz-primary)}
.btn-outline-primary,.btn-outline-secondary{--bs-btn-color:var(--sz-body);--bs-btn-border-color:#d1d5db;--bs-btn-hover-color:var(--sz-ink);--bs-btn-hover-bg:#f3f4f6;--bs-btn-hover-border-color:#d1d5db;--bs-btn-active-color:var(--sz-ink);--bs-btn-active-bg:#e5e7eb;--bs-btn-active-border-color:#d1d5db}

/* ---- panels (Bootstrap .card) ---- */
.card{--bs-card-border-color:rgba(209,213,219,.6);--bs-card-border-radius:8px;--bs-card-bg:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.085),0 2px 4px -2px rgba(0,0,0,.085)}
.dropdown-menu{--bs-dropdown-bg:#fff;--bs-dropdown-color:#1f2937;--bs-dropdown-border-color:rgba(209,213,219,.6);--bs-dropdown-border-radius:6px;--bs-dropdown-font-size:var(--sz-size);--bs-dropdown-link-color:#1f2937;--bs-dropdown-link-hover-bg:#f3f4f6;--bs-dropdown-link-active-bg:#f3f4f6;--bs-dropdown-link-active-color:#1f2937;box-shadow:0 4px 6px -1px rgba(0,0,0,.085),0 2px 4px -2px rgba(0,0,0,.085)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid #e5e7eb}
.panel-head h2{margin:0;font-size:var(--sz-size);font-weight:600}
.panel-body{padding:16px}

/* ---- forms ---- */
.form-control,.form-select{font-size:var(--sz-size);border-color:#d1d5db;border-radius:var(--sz-radius-sm);background-color:#fff;color:var(--sz-ink)}
.form-control:focus,.form-select:focus{border-color:var(--sz-link);box-shadow:0 0 0 .2rem rgba(var(--sz-link-rgb),.12)}
.form-label{font-size:var(--sz-size-sm);font-weight:400;color:var(--sz-ink);margin-bottom:.3rem}

/* ---- tables ---- */
.table{--bs-table-bg:transparent;--bs-table-border-color:var(--sz-line);--bs-table-hover-bg:#f9fafb;margin-bottom:0;font-size:var(--sz-size)}
.table>thead th{font-size:var(--sz-size);font-weight:500;color:var(--sz-ink);background:#f8fafc;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:8px 12px;white-space:nowrap}
.table>tbody td{padding:7px 12px;vertical-align:middle}

/* ---- labels / badges (flat, small) ---- */
.badge-soft{font-size:var(--sz-size-sm);font-weight:500;border-radius:4px;padding:.25em .55em;border:1px solid transparent}
.badge-soft.primary,.badge-soft.info{background:var(--sz-info-bg);color:#1d4ed8}
.badge-soft.success{background:var(--sz-success-bg);color:#15803d}
.badge-soft.warning{background:var(--sz-warning-bg);color:#b45309}
.badge-soft.danger{background:var(--sz-danger-bg);color:#b91c1c}
.badge-soft.secondary{background:#f3f4f6;color:var(--sz-muted)}
.alert{border:1px solid transparent;border-radius:var(--sz-radius-sm);padding:.6rem .9rem;font-size:var(--sz-size)}
.alert-success{background:var(--sz-success-bg);color:#166534;border-color:#bbf7d0}
.alert-danger{background:var(--sz-danger-bg);color:#991b1b;border-color:#fecaca}
.text-muted,.text-secondary{color:var(--sz-muted)!important}

/* ---- plain tabs: words on a faded line, 2px line under the active one ---- */
.tabs-plain{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--sz-line);margin-bottom:16px}
.tabs-plain a{padding:.35rem .75rem;color:var(--sz-muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500}
.tabs-plain a:hover{color:var(--sz-ink)}
.tabs-plain a.on{color:var(--sz-primary);border-bottom-color:var(--sz-primary)}
.tabs-plain small{color:var(--sz-muted);font-weight:400}
