:root { color-scheme: light; --page-bg:#f5f7fb; --surface:#fff; --text:#172033; --muted:#667085; --border:#d9e0ea; --shadow:0 8px 24px rgba(31,41,55,.08); }
:root[data-theme="dark"] { color-scheme: dark; --page-bg:#111827; --surface:#1f2937; --text:#edf2f7; --muted:#aab5c4; --border:#3b4758; --shadow:0 8px 24px rgba(0,0,0,.25); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme:dark; --page-bg:#111827; --surface:#1f2937; --text:#edf2f7; --muted:#aab5c4; --border:#3b4758; --shadow:0 8px 24px rgba(0,0,0,.25); } }
body { background:var(--page-bg); color:var(--text); transition:background-color .2s ease,color .2s ease; }
.card,.modal-content,.dropdown-menu { background:var(--surface); color:var(--text); border-color:var(--border); }
.card { border:0; box-shadow:var(--shadow); }
.card-header { font-weight:600; background:var(--surface); color:var(--text); border-color:var(--border); }
.form-control,.form-select { background-color:var(--surface); color:var(--text); border-color:var(--border); }
.form-control:focus,.form-select:focus { background-color:var(--surface); color:var(--text); border-color:#6ea8fe; box-shadow:0 0 0 .2rem rgba(13,110,253,.18); }
.form-control::placeholder { color:var(--muted); }
.form-text,.text-muted { color:var(--muted)!important; }
.table { --bs-table-bg:var(--surface); --bs-table-color:var(--text); --bs-table-border-color:var(--border); }
.theme-select { width:auto; min-width:112px; }
.wizard-step { display:none; }
.wizard-step.active { display:block; }
.step-nav { overflow:auto; }
.step-nav .nav-link { white-space:nowrap; }
input[type="date"] { min-height:38px; cursor:pointer; }
input[type="date"]::-webkit-calendar-picker-indicator { cursor:pointer; opacity:.8; padding:4px; }
:root[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(1); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(1); } }

body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: .01em; }
.navbar { min-height: 68px; background: linear-gradient(120deg, #165dff, #6337d6) !important; box-shadow: 0 6px 24px rgba(37, 50, 120, .18); }
.navbar-brand { letter-spacing: -.02em; }
.navbar-brand::before { content: "✚"; display: inline-grid; place-items: center; width: 30px; height: 30px; margin-right: 8px; border: 1px solid rgba(255,255,255,.45); border-radius: 9px; font-size: 15px; }
.navbar .btn-light { border: 0; font-weight: 600; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.theme-select { border: 0; background-color: rgba(255,255,255,.16); color: #fff; font-weight: 600; }
.theme-select option { color: #172033; background: #fff; }
/* Garante contraste nos selects preenchidos e criados dinamicamente pelo JS. */
select.form-select:not(.theme-select),
select.form-select:not(.theme-select) option {
  color: #172033 !important;
  background-color: #fff !important;
  -webkit-text-fill-color: #172033;
}
:root[data-theme="dark"] select.form-select:not(.theme-select),
:root[data-theme="dark"] select.form-select:not(.theme-select) option {
  color: #edf2f7 !important;
  background-color: #1f2937 !important;
  -webkit-text-fill-color: #edf2f7;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) select.form-select:not(.theme-select),
  :root:not([data-theme="light"]) select.form-select:not(.theme-select) option {
    color: #edf2f7 !important;
    background-color: #1f2937 !important;
    -webkit-text-fill-color: #edf2f7;
  }
}
h1 { font-weight: 750; letter-spacing: -.04em; }
h3 { font-size: 1.15rem; font-weight: 750; letter-spacing: -.02em; margin-bottom: 1.25rem; }
.card { border-radius: 18px; }
.card:hover { box-shadow: 0 12px 30px rgba(31,41,55,.12); }
.form-label, label { font-size: .82rem; font-weight: 700; color: var(--muted); margin-bottom: .4rem; }
.form-control, .form-select { min-height: 42px; border-radius: 11px; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.form-control:hover, .form-select:hover { border-color: #9aabd0; }
.form-control:focus, .form-select:focus { transform: translateY(-1px); }
.btn { border-radius: 10px; font-weight: 650; transition: transform .2s ease, box-shadow .2s ease; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(31,41,55,.14); }
.step-nav { gap: .35rem; padding: .35rem; margin-bottom: 1rem !important; border: 1px solid var(--border); border-radius: 15px; background: var(--surface); box-shadow: var(--shadow); }
.step-nav .nav-link { border-radius: 10px; color: var(--muted); font-weight: 650; }
.step-nav .nav-link.active { color: #fff; background: linear-gradient(135deg, #165dff, #6337d6); box-shadow: 0 5px 12px rgba(39,84,220,.25); }
.wizard-step { animation: wizard-in .25s ease both; }
@keyframes wizard-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.wizard-progress { height: 5px; margin: 0 0 1rem; overflow: hidden; border-radius: 99px; background: var(--border); }
.wizard-progress-bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #165dff, #9b5cff); transition: width .25s ease; }
.table-responsive.card { overflow: hidden; }
.table thead th { padding: 1rem; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; border-bottom-width: 1px; }
.table tbody td { padding: 1rem; vertical-align: middle; }
.table tbody tr { transition: background-color .2s ease, transform .2s ease; }
.table tbody tr:hover { transform: scale(1.002); }
.alert { border: 0; border-radius: 14px; box-shadow: var(--shadow); animation: wizard-in .25s ease both; }
@media (max-width: 700px) {
  .navbar .container { gap: .6rem; flex-wrap: wrap; }
  .navbar-brand { font-size: 1rem; }
  .navbar-brand::before { width: 25px; height: 25px; margin-right: 4px; }
  .navbar .d-flex { margin-left: auto; }
  .theme-select { min-width: 94px; }
  .step-nav { flex-wrap: nowrap; }
  .step-nav .nav-link { font-size: .78rem; }
}

.flatpickr-calendar { border: 0; border-radius: 16px; box-shadow: 0 16px 40px rgba(15,23,42,.2); overflow: hidden; }
.flatpickr-months { padding: 8px; background: linear-gradient(120deg,#165dff,#6337d6); }
.flatpickr-current-month, .flatpickr-weekdays, span.flatpickr-weekday, .flatpickr-months .flatpickr-month, .flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { color: #fff; fill: #fff; }
.flatpickr-weekdays { background: #f0f4ff; }
.flatpickr-weekday { color: #52607a !important; font-weight: 700; }
.flatpickr-day { border-radius: 9px; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { border-color: #165dff; background: #165dff; }
.flatpickr-day.today { border-color: #6337d6; }
:root[data-theme="dark"] .flatpickr-calendar { background: #1f2937; color: #edf2f7; }
:root[data-theme="dark"] .flatpickr-weekdays { background: #293548; }
:root[data-theme="dark"] .flatpickr-weekday { color: #b8c3d4 !important; }
:root[data-theme="dark"] .flatpickr-day { color: #edf2f7; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .flatpickr-calendar { background:#1f2937; color:#edf2f7; } :root:not([data-theme="light"]) .flatpickr-weekdays { background:#293548; } :root:not([data-theme="light"]) .flatpickr-weekday { color:#b8c3d4 !important; } :root:not([data-theme="light"]) .flatpickr-day { color:#edf2f7; } }
.detail-page { animation: wizard-in .35s ease both; }
.profile-page-title { padding: .25rem .25rem .75rem; }
.profile-page-title { display:flex; align-items:center; gap:.85rem; }
.profile-page-title h2 { margin: .2rem 0 0; color: var(--text); font-size: 1.7rem; letter-spacing: -.035em; }
.detail-hero .eyebrow { display: none; }
.detail-hero { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:2rem; border-radius:22px; color:#fff; background:linear-gradient(125deg,#165dff,#6337d6 70%,#8b5cf6); box-shadow:0 14px 30px rgba(50,70,180,.2); }
.detail-photo { width:78px; height:78px; object-fit:cover; border:3px solid rgba(255,255,255,.85); border-radius:20px; box-shadow:0 8px 20px rgba(0,0,0,.2); }
.detail-hero h1 { margin:.25rem 0 .75rem; }
.eyebrow { font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.75; }
.detail-stat { height:100%; padding:1.15rem 1.25rem; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
.stat-label,.detail-label { display:block; margin-bottom:.35rem; color:var(--muted); font-size:.74rem; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.detail-stat strong { display:block; font-size:1.35rem; letter-spacing:-.03em; }
.detail-stat small { color:var(--muted); }
.detail-card .card-header { padding:1.1rem 1.3rem; border-bottom:1px solid var(--border); }
.section-icon { display:inline-grid; place-items:center; width:29px; height:29px; margin-right:.5rem; border-radius:9px; color:#165dff; background:#eaf0ff; }
.detail-list { display:grid; gap:0; }
.detail-list > div { display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--border); }
.detail-list > div:last-child { border-bottom:0; }
.detail-list span { color:var(--muted); }
.detail-list strong,.detail-card .detail-label + strong { text-align:right; word-break:break-word; }
.person-row { display:flex; align-items:center; gap:.75rem; padding:.65rem 0; border-bottom:1px solid var(--border); }
.person-row:last-child { border-bottom:0; }
.person-row strong,.person-row small { display:block; }
.person-row small { color:var(--muted); margin-top:.15rem; }
.avatar { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; color:#165dff; background:#eaf0ff; font-weight:800; }
.avatar-warm { color:#c2410c; background:#fff0e8; }
.empty-state { display:block; padding:1rem 0; color:var(--muted); font-style:italic; }
@media (max-width: 700px) { .detail-hero { align-items:flex-start; flex-direction:column; padding:1.4rem; } .detail-hero .btn { width:100%; } .detail-list > div { align-items:flex-start; flex-direction:column; gap:.25rem; } .detail-list strong,.detail-card .detail-label + strong { text-align:left; } }

/* Identidade visual do sistema: banco de sangue em tons vermelhos. */
:root { --brand:#b4232f; --brand-dark:#8f1724; --brand-light:#fde8ea; --bs-primary:var(--brand); --bs-primary-rgb:180,35,47; --bs-link-color:var(--brand); --bs-link-hover-color:var(--brand-dark); }
.navbar { background:linear-gradient(120deg, var(--brand-dark), var(--brand)) !important; }
.navbar .btn-primary, .btn-primary { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand-dark); --bs-btn-hover-border-color:var(--brand-dark); }
.btn-outline-primary { --bs-btn-color:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand); --bs-btn-hover-border-color:var(--brand); }
.text-primary { color:var(--brand) !important; }
.bg-primary { background-color:var(--brand) !important; }
a { color:var(--brand); }
a:hover { color:var(--brand-dark); }
.form-control:focus,.form-select:focus { border-color:var(--brand); box-shadow:0 0 0 .2rem rgba(180,35,47,.18); }
.step-nav .nav-link.active { background:linear-gradient(135deg, var(--brand-dark), var(--brand)); }
.wizard-progress-bar { background:linear-gradient(90deg, var(--brand-dark), #e0525c); }
.flatpickr-months { background:linear-gradient(120deg, var(--brand-dark), var(--brand)); }
.flatpickr-day.selected,.flatpickr-day.selected:hover { border-color:var(--brand); background:var(--brand); }
.flatpickr-day.today { border-color:var(--brand-dark); }
.detail-hero { background:linear-gradient(125deg, var(--brand-dark), var(--brand) 70%, #e0525c); }
.section-icon,.avatar { color:var(--brand); background:var(--brand-light); }
.navbar-brand::before { display:none; }
.brand-logo { width:42px; height:42px; object-fit:contain; margin-right:9px; }
.home-logo { width:min(260px, 70vw); height:auto; object-fit:contain; }
.home-logo-dark { display:none; }
:root[data-theme="dark"] .home-logo-light { display:none; }
:root[data-theme="dark"] .home-logo-dark { display:inline-block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .home-logo-light { display:none; }
  :root:not([data-theme="light"]) .home-logo-dark { display:inline-block; }
}
.dynamic-row { overflow:hidden; }
.dynamic-row .row > [class*="col-"] { min-width:0; }
@media (max-width: 767.98px) {
  .dynamic-row .form-control, .dynamic-row .form-select { min-height:42px; }
  .dynamic-row .row { row-gap:.5rem !important; }
}
.modal-open { overflow:hidden; }
.clear-modal[hidden] { display:none; }
.clear-modal { position:fixed; inset:0; z-index:1055; display:grid; place-items:center; padding:1rem; }
.clear-modal-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.58); }
.clear-modal-dialog { position:relative; width:min(100%, 480px); }
.clear-modal-content { padding:1.5rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); color:var(--text); box-shadow:0 1rem 3rem rgba(0,0,0,.25); }
