/**
 * CLARA — tokens de culoare + componente vizuale comune, partajate de toate
 * paginile din pages/ (cu excepția ci_scan_mobile.html — flux mobil separat,
 * cu propria identitate vizuală, portat ca atare din SEES-CP).
 * Fiecare pagină încarcă acest fișier și păstrează în <style> propriu doar
 * regulile specifice ei (layout particular, componente unice).
 */

:root {
  --teal: #0f766e;
  --blue: #0369a1;
  --gradient-brand: linear-gradient(135deg, var(--teal), var(--blue));

  --bg: #f1f5f9;
  --surface: #fff;
  --border: #e2e8f0;
  --text: #1e293b;
  --text-strong: #0f172a;
  --text-label: #334155;
  --text-muted: #64748b;
  --text-faint: #94a3b8;

  --ok-bg: #dcfce7;    --ok-border: #bbf7d0;    --ok-text: #166534;
  --err-bg: #fee2e2;   --err-border: #fecaca;   --err-text: #991b1b;
  --warn-bg: #fef3c7;  --warn-border: #fde68a;  --warn-text: #92400e;
  --info-bg: #dbeafe;  --info-text: #1e40af;

  /* Accent distinct per canal de intrare (cele 4 valori fixe din catalog) —
     folosit pe selectie_canal.html și canal-banner din inrolare.html, ca
     să se recunoască vizual din prima ce canal e activ. */
  --canal-mf: #0f766e;
  --canal-obgyn_direct: #0369a1;
  --canal-unitate_mobila: #b45309;
  --canal-chestionar: #7c3aed;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
}

/* ── Header aplicație ─────────────────────────────────────────────── */
header.app-header {
  background: var(--gradient-brand); color: #fff;
  padding: 16px 28px; display: flex; align-items: center; justify-content: space-between;
}
header.app-header h1 { font-size: 1.15rem; font-weight: 700; }
header.app-header .user-box { display: flex; align-items: center; gap: 14px; font-size: .82rem; }
header.app-header .user-box a, header.app-header .user-box button {
  background: rgba(255,255,255,.15); border: none; color: #fff; text-decoration: none;
  padding: 7px 14px; border-radius: 7px; cursor: pointer; font-size: .78rem; font-family: inherit;
}
header.app-header .user-box a:hover, header.app-header .user-box button:hover { background: rgba(255,255,255,.25); }

/* ── Carduri / bannere ────────────────────────────────────────────── */
.card {
  background: var(--surface); border-radius: 12px; padding: 22px; border: 1px solid var(--border);
}
.info-banner {
  background: var(--surface); border: 1px solid var(--border); border-left: 4px solid var(--teal);
  border-radius: 10px; padding: 14px 18px; font-size: .85rem; color: var(--text-muted);
}
.info-banner strong { color: var(--text-strong); }
.rol-banner {
  background: var(--warn-bg); border: 1px solid var(--warn-border); color: var(--warn-text);
  padding: 10px 16px; border-radius: 8px; font-size: .82rem; display: none;
}

/* ── Formulare ────────────────────────────────────────────────────── */
.form-group { margin-bottom: 14px; }
.form-group.full { grid-column: 1 / -1; }
.form-label { display: block; font-size: .78rem; font-weight: 600; color: var(--text-label); margin-bottom: 6px; }
input, select, textarea {
  width: 100%; padding: 10px 12px; border: 1.5px solid #cbd5e1; border-radius: 8px;
  font-size: .87rem; color: var(--text); outline: none; background: #fff; font-family: inherit;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,118,110,.14);
}

/* Text explicativ scurt sub un câmp — pentru orice etichetă a cărei
   semnificație nu e evidentă din nume (ex. "Sursă", "Unitate"). */
.hint { font-size: .72rem; color: var(--text-faint); margin-top: 4px; line-height: 1.4; }
.field-error { font-size: .74rem; color: var(--err-text); margin-top: 4px; display: none; }
.field-warning { font-size: .74rem; color: var(--warn-text); margin-top: 4px; display: none; }

/* Iconiță "ⓘ" lângă un label — hover/focus arată explicația completă în
   sidebar-ul contextual (unde există) sau ca title nativ (fallback). */
.info-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; border-radius: 50%; background: #e2e8f0; color: var(--text-muted);
  font-size: .66rem; font-weight: 700; margin-left: 5px; cursor: help; vertical-align: middle;
}
.info-ic:hover, .info-ic:focus { background: var(--teal); color: #fff; }

/* ── Butoane ──────────────────────────────────────────────────────── */
.btn { padding: 10px 18px; border-radius: 8px; font-size: .85rem; font-weight: 600; cursor: pointer; border: none; font-family: inherit; }
.btn-primary, .btn-submit { background: var(--gradient-brand); color: #fff; }
.btn-secondary { background: #e2e8f0; color: var(--text-label); }
.btn:disabled, .btn-primary:disabled, .btn-submit:disabled { opacity: .6; cursor: not-allowed; }

/* ── Stări / rezultate ────────────────────────────────────────────── */
.badge { font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 50px; }
.badge.ok { background: var(--ok-bg); color: var(--ok-text); }
.badge.err { background: var(--err-bg); color: var(--err-text); }
.badge.pending, .badge.warn { background: var(--warn-bg); color: var(--warn-text); }

.result-box { display: none; margin-top: 14px; padding: 12px 16px; border-radius: 10px; font-size: .84rem; }
.result-box.ok { background: var(--ok-bg); border: 1px solid var(--ok-border); color: var(--ok-text); }
.result-box.err { background: var(--err-bg); border: 1px solid var(--err-border); color: var(--err-text); }

.gol { color: var(--text-faint); font-size: .85rem; text-align: center; padding: 30px 0; }

/* ── Accent per canal — setat via atributul data-canal ───────────────
   <div data-canal="unitate_mobila" class="...">, aplicat pe bannere/carduri
   care trebuie să se coloreze după canalul curent. */
[data-canal="mf"]            { --accent: var(--canal-mf); }
[data-canal="obgyn_direct"]  { --accent: var(--canal-obgyn_direct); }
[data-canal="unitate_mobila"]{ --accent: var(--canal-unitate_mobila); }
[data-canal="chestionar"]    { --accent: var(--canal-chestionar); }

.canal-accent-border { border-left-color: var(--accent, var(--teal)) !important; }
.canal-accent-text { color: var(--accent, var(--teal)) !important; }
.canal-accent-bg { background: var(--accent, var(--teal)) !important; }

.badge-canal {
  font-size: .68rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 999px; display: inline-block;
  background: #f0fdfa; /* fallback dacă browserul nu suportă color-mix() */
  background: color-mix(in srgb, var(--accent, var(--teal)) 16%, white);
  color: var(--accent, var(--teal));
}

/* Status generic de înrolare — folosit pe orice listă/tabel de dosare. */
.status-tag { font-size: .68rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; display: inline-block; }
.status-tag.st-identificata { background: #f1f5f9; color: #475569; }
.status-tag.st-inrolata { background: var(--info-bg); color: var(--info-text); }
.status-tag.st-in_validare { background: var(--warn-bg); color: var(--warn-text); }
.status-tag.st-acceptata { background: var(--ok-bg); color: var(--ok-text); }
.status-tag.st-respinsa { background: var(--err-bg); color: var(--err-text); }
