/* ────────────────────────────────────────────────
   app.css — Spital Brădet — Premium Medical UI
   ──────────────────────────────────────────────── */

/* === Variables ======================================= */
:root {
  --brand-blue:       #0A4E8A;
  --brand-blue-mid:   #1769B3;
  --brand-blue-light: #E8F0FA;
  --brand-bg:         #F5F8FB;
  --brand-card:       #FFFFFF;
  --brand-text:       #102033;
  --brand-muted:      #5C6B7A;
  --card-radius:      16px;
  --card-shadow:      0 2px 14px rgba(10,78,138,.08), 0 1px 3px rgba(10,78,138,.04);
  --card-border:      rgba(10,78,138,.10);
  --input-radius:     8px;
  --btn-radius:       8px;
}

/* === Page background ================================= */
body {
  background-color: var(--brand-bg);
  color: var(--brand-text);
  font-size: .92rem;
}

/* === Navbar ========================================== */
.navbar.bg-primary {
  background: linear-gradient(90deg, var(--brand-blue) 0%, #125DA8 100%) !important;
  box-shadow: 0 2px 10px rgba(10,78,138,.22);
}
.navbar-brand {
  font-weight: 700;
  letter-spacing: -.01em;
  font-size: 1rem;
}
.nav-link {
  font-weight: 500;
  font-size: .88rem;
}

/* === Main container ================================== */
main.container {
  padding-top: 1.75rem;
  padding-bottom: 2.5rem;
}

/* === Cards =========================================== */
.card {
  border-radius: var(--card-radius) !important;
  border: 1px solid var(--card-border);
  box-shadow: var(--card-shadow);
  background: var(--brand-card);
}
.card-header {
  background: #F0F5FA;
  border-bottom: 1px solid rgba(10,78,138,.10);
  font-weight: 600;
  color: var(--brand-blue);
  padding: .85rem 1.25rem;
}
.card-footer {
  background: #F8FAFB;
  border-top: 1px solid rgba(10,78,138,.08);
}
.card-body {
  padding: 1.4rem 1.5rem;
}

/* === Section headings in card-body ================== */
.card-body h1.h4,
.card-body h1.h5 {
  color: var(--brand-blue);
  font-weight: 700;
  padding-bottom: .65rem;
  border-bottom: 2px solid var(--brand-blue-light);
  margin-bottom: 1.35rem;
}

/* === Alerts ========================================== */
.alert {
  border-radius: 10px;
  border-width: 1px;
  font-size: .9rem;
  padding: .9rem 1.15rem;
}
.alert-success {
  background-color: #f0faf3;
  border-color: #a8d5b5;
  color: #0c4f28;
}
.alert-danger {
  background-color: #fff5f5;
  border-color: #f5b8b8;
  color: #7d1515;
}
.alert-warning {
  background-color: #fffcf0;
  border-color: #ffe082;
  color: #6a4c00;
}
.alert-info {
  background-color: #f0f6ff;
  border-color: #b3cff0;
  color: #0a3d6b;
}

/* icon decorativ prin CSS, fără modificare text */
.alert-success::before { content: "✓  "; font-weight: 700; color: #198754; }
.alert-danger::before  { content: "✕  "; font-weight: 700; color: #dc3545; }
.alert-warning::before { content: "⚠  "; font-weight: 700; color: #e6a817; }
.alert-info::before    { content: "ℹ  "; font-weight: 700; color: var(--brand-blue-mid); }

/* flash-urile din layout.php primesc margine jos */
main.container > .alert {
  margin-bottom: 1.25rem;
  font-weight: 500;
}

/* === Forms =========================================== */
.form-label {
  font-weight: 600;
  font-size: .83rem;
  color: var(--brand-text);
  margin-bottom: .3rem;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.form-control,
.form-select {
  border-radius: var(--input-radius);
  border-color: #C8D6E8;
  color: var(--brand-text);
  font-size: .9rem;
  padding: .45rem .8rem;
  transition: border-color .15s ease, box-shadow .15s ease;
  background-color: #FAFCFF;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--brand-blue-mid);
  box-shadow: 0 0 0 3px rgba(23,105,179,.14);
  background-color: #fff;
  outline: none;
}
.form-control::placeholder {
  color: #9AAABA;
  font-size: .875rem;
}
textarea.form-control {
  line-height: 1.6;
}
.form-text {
  font-size: .79rem;
  color: var(--brand-muted);
}
.form-check-input:checked {
  background-color: var(--brand-blue);
  border-color: var(--brand-blue);
}
.form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(10,78,138,.14);
  border-color: var(--brand-blue-mid);
}
hr.my-1 { border-color: #E0EAF4; margin: .75rem 0 !important; }

/* === Buttons ========================================= */
.btn {
  border-radius: var(--btn-radius);
  font-weight: 600;
  font-size: .875rem;
  transition: all .18s ease;
  letter-spacing: .01em;
}
.btn-primary {
  --bs-btn-bg: var(--brand-blue);
  --bs-btn-border-color: var(--brand-blue);
  --bs-btn-hover-bg: #0D5FA8;
  --bs-btn-hover-border-color: #0D5FA8;
  --bs-btn-active-bg: var(--brand-blue);
  --bs-btn-active-border-color: var(--brand-blue);
  --bs-btn-focus-shadow-rgb: 10, 78, 138;
}
.btn-outline-primary {
  --bs-btn-color: var(--brand-blue);
  --bs-btn-border-color: var(--brand-blue);
  --bs-btn-hover-bg: var(--brand-blue);
  --bs-btn-hover-border-color: var(--brand-blue);
  --bs-btn-active-bg: var(--brand-blue);
  --bs-btn-active-border-color: var(--brand-blue);
}
.btn-outline-secondary {
  --bs-btn-color: var(--brand-muted);
  --bs-btn-border-color: #C8D6E8;
  --bs-btn-hover-bg: #EEF3F9;
  --bs-btn-hover-border-color: #B0C4D8;
  --bs-btn-hover-color: var(--brand-text);
}
.btn-success {
  --bs-btn-bg: #198754;
  --bs-btn-border-color: #198754;
  --bs-btn-hover-bg: #157347;
  --bs-btn-hover-border-color: #146c43;
}
.btn-danger {
  --bs-btn-bg: #dc3545;
  --bs-btn-border-color: #dc3545;
  --bs-btn-hover-bg: #bb2d3b;
  --bs-btn-hover-border-color: #b02a37;
}
.btn-light {
  --bs-btn-bg: #fff;
  --bs-btn-border-color: rgba(255,255,255,.4);
  --bs-btn-color: var(--brand-blue);
  --bs-btn-hover-bg: var(--brand-blue-light);
  --bs-btn-hover-color: var(--brand-blue);
}

/* === Tables ========================================== */
.table {
  font-size: .84rem;
  color: var(--brand-text);
  border-color: #E0EAF4;
  margin-bottom: 0;
}
.table thead th {
  background: #EEF3F9 !important;
  color: var(--brand-blue);
  font-size: .73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 2px solid #D0E0EF !important;
  white-space: nowrap;
  padding: .65rem .75rem;
  vertical-align: middle;
}
.table td {
  padding: .55rem .75rem;
  vertical-align: middle;
  border-color: #EEF3F9;
}
.table > :not(caption) > * > * {
  border-color: #EEF3F9;
}
.table-hover tbody tr:hover > td,
.table-hover tbody tr:hover > th {
  background-color: #F3F8FF;
}
.table-sticky thead th {
  position: sticky;
  top: 0;
  background: #EEF3F9 !important;
  z-index: 2;
}
.table-responsive {
  border-radius: 0 0 calc(var(--card-radius) - 2px) calc(var(--card-radius) - 2px);
}

/* tabele din preview import */
.table-bordered > :not(caption) > * {
  border-color: #D8E6F3;
}
.table-secondary {
  --bs-table-bg: #EEF3F9;
  --bs-table-border-color: #D0E0EF;
}
.table-light {
  --bs-table-bg: #F8FAFB;
  --bs-table-border-color: #E8EFF7;
}
.table-danger td {
  background-color: #fff5f5 !important;
}
.table-success td {
  background-color: #f0faf3 !important;
}

/* === Badges ========================================== */
.badge {
  border-radius: 6px;
  font-size: .73rem;
  font-weight: 700;
  padding: .28em .58em;
  letter-spacing: .03em;
}
/* eligible = success */
.badge.text-bg-success {
  background-color: #e0f5ea !important;
  color: #0d5c2e !important;
  border: 1px solid #a8d8b8;
}
/* waiting = warning */
.badge.text-bg-warning {
  background-color: #fff8e0 !important;
  color: #6a4c00 !important;
  border: 1px solid #ffe082;
}
/* phone source / canceled = secondary */
.badge.text-bg-secondary {
  background-color: #eef2f7 !important;
  color: #3d5166 !important;
  border: 1px solid #cdd9e8;
}
/* online source = primary */
.badge.text-bg-primary {
  background-color: var(--brand-blue-light) !important;
  color: var(--brand-blue) !important;
  border: 1px solid #b3cff0;
}
/* danger */
.badge.text-bg-danger {
  background-color: #fff0f0 !important;
  color: #8b1a1a !important;
  border: 1px solid #f5b8b8;
}
/* success page / preview green */
.badge.text-bg-success.badge { }

/* === Soft badge (legacy helper) ====================== */
.badge-soft {
  background: rgba(10,78,138,.10);
  color: var(--brand-blue);
  border: 1px solid rgba(10,78,138,.20);
}

/* === List groups ===================================== */
.list-group-item {
  border-color: #E8EFF7;
  padding: .75rem 1.1rem;
  font-size: .9rem;
}
.list-group-item strong {
  color: var(--brand-blue);
}

/* === Pagination ====================================== */
.page-link {
  color: var(--brand-blue);
  border-color: #D0E0EF;
  border-radius: 6px !important;
  margin: 0 2px;
  font-size: .82rem;
  padding: .3rem .6rem;
}
.page-link:hover {
  background-color: var(--brand-blue-light);
  color: var(--brand-blue);
  border-color: #B0C4D8;
}
.page-item.active .page-link {
  background-color: var(--brand-blue);
  border-color: var(--brand-blue);
}
.page-item.disabled .page-link {
  color: #aab8c5;
  border-color: #e0eaf4;
}

/* === Inline code ===================================== */
code {
  background: #EEF3F9;
  color: var(--brand-blue);
  border-radius: 4px;
  padding: .15em .4em;
  font-size: .83em;
}

/* === Pagina de succes programare ==================== */
.success-page .card {
  border-top: 4px solid #198754;
}
.success-page .card-body h1.h4 {
  color: #198754;
  border-bottom-color: #c8ebd4;
}

/* === Setări — calendar editor ======================== */
#cal-editor-table th {
  font-size: .73rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--brand-blue);
  background: #EEF3F9;
}
#cal-editor-table td {
  vertical-align: middle;
  padding: .85rem .9rem;
}
#cal-editor-table input[type="datetime-local"] {
  font-size: .875rem;
}

/* === Câmpuri blocate (patient form) ================== */
form[action="/programare"] input:disabled,
form[action="/programare"] select:disabled,
form[action="/programare"] textarea:disabled {
  background-color: #F3F6FB;
  border-color: #DDE8F2;
  color: #9AAABA;
  cursor: not-allowed;
  opacity: .8;
}
form[action="/programare"] button:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* === Helpers existenți (nemodificați) ================ */
.cell-wrap { max-width: 320px; white-space: normal; }
.mono      { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
             "Liberation Mono", "Courier New", monospace; }
.btn-xs    { padding: .15rem .45rem; font-size: .78rem; }

/* === Responsive ====================================== */
@media (max-width: 768px) {
  .card { border-radius: 12px !important; }
  .card-body { padding: 1.1rem 1rem; }
  .btn { font-size: .85rem; }
  h1.h4 { font-size: 1.08rem; }
  .table { font-size: .8rem; }
  .table td, .table thead th { padding: .45rem .55rem; }
}
@media (max-width: 576px) {
  main.container { padding-top: 1rem; padding-bottom: 1.5rem; }
  .form-label { font-size: .8rem; }
}
