/* ============================================================
   ThrombosEd — Main Stylesheet
   Aesthetic: clean medical, navy + white, Lora headlines
   ============================================================ */

/* --- Reset & base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:       #1e3d6e;
  --navy-dark:  #1c2d46;
  --navy-light: #2d6ca8;
  --brand-blue: #3b7fdb;
  --accent:     #e8534a;
  --accent2:    #f0a500;
  --text:       #1c2733;
  --text-muted: #5a6878;
  --border:     #dde3ea;
  --bg:         #f7f9fc;
  --bg-card:    #ffffff;
  --success:    #1e7e4a;
  --warning:    #b05f00;
  --error-bg:   #fdf0f0;
  --error-bdr:  #e8534a;
  --success-bg: #f0faf4;
  --success-bdr:#1e7e4a;

  --radius:     10px;
  --radius-sm:  6px;
  --shadow:     0 2px 12px rgba(0,0,0,0.07);
  --shadow-md:  0 4px 24px rgba(0,0,0,0.10);

  --font-body:  'Inter', system-ui, sans-serif;
  --font-head:  'Lora', Georgia, serif;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--navy); text-decoration: none; }
a:hover { text-decoration: underline; }
ul, ol { padding-left: 1.4em; }
img { max-width: 100%; }

h1, h2, h3, h4 {
  font-family: var(--font-head);
  line-height: 1.25;
  color: var(--text);
}

/* --- Utility --- */
.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* ============================================================
   TOP NAV
   ============================================================ */
.topnav {
  background: #ffffff;
  height: 64px;
  display: flex;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 6px rgba(0,0,0,0.07);
}
.topnav-patient { background: #ffffff; }

.topnav-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-family: var(--font-head);
  font-size: 1.15rem;
  font-weight: 600;
  text-decoration: none;
}
.brand-icon { font-size: 1.4rem; opacity: 0.9; }
.brand-icon-img { height: 30px; width: auto; }
.brand-thrombos { color: #fff; }
.brand-ed { color: #7db8f7; }
.brand-logo-full { height: 46px; width: auto; }

.nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}
.nav-links a {
  color: var(--text-muted);
  font-size: 0.88rem;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.nav-links a:hover { color: var(--text); background: rgba(0,0,0,0.05); }
.nav-btn {
  background: var(--navy) !important;
  color: #fff !important;
}
.nav-btn:hover { background: var(--navy-dark) !important; color: #fff !important; }
.nav-btn-outline {
  border: 1px solid var(--border) !important;
  background: transparent !important;
  color: var(--text-muted) !important;
}
.nav-btn-outline:hover { background: rgba(0,0,0,0.05) !important; color: var(--text) !important; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 55%, var(--brand-blue) 100%);
  color: #fff;
  padding: 72px 20px 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  flex-wrap: wrap;
}
.hero-patient {
  background: linear-gradient(135deg, #0b4a2e 0%, #0e5a3a 55%, #1a7a54 100%);
}

.hero-content { max-width: 540px; }
.hero-badge {
  display: inline-block;
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 14px;
  margin-bottom: 18px;
  color: rgba(255,255,255,0.92);
}
.patient-badge { background: rgba(255,255,255,0.15); }

.hero h1 {
  font-family: var(--font-head);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  color: #fff;
  line-height: 1.15;
  margin-bottom: 16px;
}
.hero-sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.82);
  margin-bottom: 28px;
  line-height: 1.6;
}

/* QR lookup box on patient home */
.qr-lookup {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.qr-input {
  flex: 1;
  min-width: 220px;
  padding: 11px 16px;
  border-radius: var(--radius-sm);
  border: none;
  font-size: 0.95rem;
  color: var(--text);
}

/* Handout preview widget */
.hero-visual { flex-shrink: 0; }
.handout-preview {
  background: #fff;
  border-radius: var(--radius);
  padding: 20px;
  width: 200px;
  box-shadow: var(--shadow-md);
}
.preview-header {
  font-family: var(--font-head);
  font-size: 0.8rem;
  color: var(--navy);
  font-weight: 600;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--navy);
}
.preview-line { height: 6px; border-radius: 3px; background: #e4eaf2; margin: 6px 0; }
.preview-line.long   { width: 90%; }
.preview-line.medium { width: 65%; }
.preview-line.short  { width: 45%; }
.preview-section { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; }
.preview-dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 3px; flex-shrink: 0; }
.preview-dot.red  { background: var(--accent); }
.preview-dot.blue { background: var(--navy); }
.preview-lines { flex: 1; }
.preview-qr { display: flex; justify-content: flex-end; margin-top: 14px; }
.qr-box {
  width: 42px; height: 42px;
  background: var(--navy);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.7rem; font-weight: 700;
  border-radius: 5px;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-block;
  padding: 11px 24px;
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  border: none;
  transition: all 0.15s;
  line-height: 1;
}
.btn-primary  { background: var(--navy);   color: #fff; }
.btn-primary:hover { background: var(--navy-dark); color: #fff; text-decoration: none; }
.btn-secondary { background: #2e8b57; color: #fff; }
.btn-secondary:hover { background: #236b42; color: #fff; text-decoration: none; }
.btn-ghost  { background: transparent; color: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.3); }
.btn-ghost:hover { background: rgba(255,255,255,0.1); color: #fff; text-decoration: none; }
.btn-outline { background: transparent; color: var(--navy); border: 1.5px solid var(--navy); }
.btn-outline:hover { background: var(--navy); color: #fff; text-decoration: none; }
.btn-outline-sm { font-size: 0.82rem; padding: 6px 14px; }
.btn-lg { padding: 14px 32px; font-size: 1rem; }
.btn-block { width: 100%; text-align: center; }
.btn-sm {
  display: inline-block;
  padding: 4px 10px;
  background: var(--navy);
  color: #fff;
  border-radius: var(--radius-sm);
  font-size: 0.78rem;
  text-decoration: none;
}
.btn-sm:hover { background: var(--navy-dark); text-decoration: none; }

/* ============================================================
   ALERTS / FLASH
   ============================================================ */
.alert {
  padding: 12px 18px;
  border-radius: var(--radius-sm);
  margin: 12px 0;
  font-size: 0.93rem;
}
.alert ul { margin: 6px 0 0; padding-left: 1.4em; }
.alert-error   { background: var(--error-bg);   border-left: 4px solid var(--error-bdr); }
.alert-success { background: var(--success-bg); border-left: 4px solid var(--success-bdr); }
.alert-warning { background: #fff8e8; border-left: 4px solid var(--accent2); }
.flash {
  text-align: center;
  padding: 10px;
  font-size: 0.9rem;
}
.flash-success { background: var(--success-bg); color: var(--success); }
.flash-error   { background: var(--error-bg);   color: var(--accent); }

/* ============================================================
   PAGE HEADER (sub-pages)
   ============================================================ */
.page-header {
  background: var(--navy);
  color: #fff;
  padding: 36px 20px 32px;
}
.page-header h1 { color: #fff; font-size: 1.9rem; margin-bottom: 6px; }
.page-header p  { color: rgba(255,255,255,0.78); font-size: 1rem; }

.patient-view-header {
  background: linear-gradient(135deg, #0b4a2e, #0e5a3a);
  color: #fff;
  padding: 40px 20px 36px;
}
.patient-view-header h1 { color: #fff; font-size: 2rem; margin-bottom: 6px; }
.patient-view-header p  { color: rgba(255,255,255,0.78); }
.view-badge {
  display: inline-block;
  background: rgba(255,255,255,0.15);
  border-radius: 20px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 3px 12px;
  margin-bottom: 10px;
  color: rgba(255,255,255,0.85);
}

/* ============================================================
   SECTION TITLES
   ============================================================ */
.section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  color: var(--navy);
  margin-bottom: 24px;
  text-align: center;
}

/* ============================================================
   CLINICIAN HOME — clot type cards
   ============================================================ */
.features { padding: 60px 0 48px; }
.clot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.clot-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 16px;
  text-decoration: none;
  color: var(--text);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
}
.clot-card:hover {
  border-color: var(--navy);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
  text-decoration: none;
}
.clot-icon { font-size: 1.6rem; margin-bottom: 4px; }
.clot-card strong { font-size: 0.95rem; color: var(--navy); }
.clot-card span   { font-size: 0.8rem; color: var(--text-muted); }

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.how-section { background: var(--bg-card); padding: 56px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.steps-row { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; justify-content: center; }
.step { flex: 1; min-width: 220px; max-width: 280px; text-align: center; }
.step-num {
  width: 44px; height: 44px;
  background: var(--navy);
  color: #fff;
  border-radius: 50%;
  font-size: 1.2rem;
  font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.step h3 { font-size: 1rem; margin-bottom: 8px; }
.step p   { font-size: 0.88rem; color: var(--text-muted); }
.step-arrow { font-size: 1.8rem; color: var(--border); margin-top: 10px; align-self: flex-start; }

/* ============================================================
   CTA SECTION
   ============================================================ */
.cta-clinician { padding: 48px 0; }
.cta-box {
  background: var(--navy);
  color: #fff;
  border-radius: var(--radius);
  padding: 32px 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.cta-box h3 { color: #fff; font-size: 1.3rem; margin-bottom: 6px; }
.cta-box p  { color: rgba(255,255,255,0.78); font-size: 0.93rem; }

/* ============================================================
   PATIENT HOME
   ============================================================ */
.patient-intro { padding: 48px 0 24px; text-align: center; }
.intro-text { max-width: 680px; margin: 0 auto; font-size: 1.05rem; color: var(--text-muted); }

.condition-cards { padding: 24px 0 48px; }
.patient-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
}
.patient-card {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 18px;
  text-decoration: none;
  color: var(--text);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
}
.patient-card:hover { border-color: #0e5a3a; box-shadow: var(--shadow); transform: translateY(-2px); text-decoration: none; }
.patient-card-icon { font-size: 2rem; margin-bottom: 10px; display: block; }
.patient-card h3   { font-size: 1rem; color: #0e5a3a; margin-bottom: 6px; }
.patient-card p    { font-size: 0.84rem; color: var(--text-muted); }

.emergency-section { padding: 0 0 40px; }
.emergency-box {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: #fff0f0;
  border: 2px solid var(--accent);
  border-radius: var(--radius);
  padding: 24px 28px;
}
.emergency-icon { font-size: 2rem; flex-shrink: 0; }
.emergency-box h3 { color: var(--accent); font-size: 1.1rem; margin-bottom: 8px; }
.emergency-box p  { font-size: 0.92rem; }

.resources-section { padding: 0 0 60px; }
.resources-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.resource-card {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
}
.resource-card h4 { font-size: 0.95rem; color: var(--navy); margin-bottom: 6px; }
.resource-card p  { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 12px; }
.resource-card a  { font-size: 0.85rem; color: var(--navy); }

/* ============================================================
   GENERATE FORM
   ============================================================ */
.form-page { padding: 40px 20px; }

.form-card {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 28px 24px;
  margin-bottom: 20px;
}
.form-card-title {
  font-size: 1.1rem;
  color: var(--navy);
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1.5px solid var(--border);
}
.form-card-title small { font-size: 0.8rem; font-weight: 400; font-family: var(--font-body); color: var(--text-muted); }

.form-row { display: flex; gap: 16px; margin-bottom: 4px; flex-wrap: wrap; }
.form-row.cols-2 > .form-group { flex: 1; min-width: 160px; }
.form-row.cols-3 > .form-group { flex: 1; min-width: 130px; }
.form-row.cols-1 > .form-group { flex: 1; }

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.form-group label {
  font-size: 0.87rem;
  font-weight: 500;
  color: var(--text);
}
.form-group label small { font-weight: 400; color: var(--text-muted); }
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="number"],
.form-group input[type="date"],
.form-group input[type="password"],
.form-group select,
.form-group textarea {
  padding: 9px 12px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.93rem;
  font-family: var(--font-body);
  color: var(--text);
  background: #fff;
  transition: border-color 0.15s;
  width: 100%;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(26,74,122,0.12);
}
.req { color: var(--accent); }
.form-hint { font-size: 0.82rem; color: var(--text-muted); margin-top: 8px; }

/* Clot type radio grid */
.type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
}
.type-option {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  cursor: pointer;
  font-size: 0.88rem;
  transition: border-color 0.15s, background 0.15s;
}
.type-option:hover   { border-color: var(--navy); background: #f0f5ff; }
.type-option.selected { border-color: var(--navy); background: #edf3ff; font-weight: 500; }
.type-option input   { display: none; }

/* Treatment radio grid */
.treatment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 10px;
}
.treatment-option {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  cursor: pointer;
  font-size: 0.88rem;
  transition: border-color 0.15s, background 0.15s;
}
.treatment-option:hover   { border-color: var(--navy); background: #f0f5ff; }
.treatment-option.selected { border-color: var(--navy); background: #edf3ff; }
.treatment-option input   { display: none; }
.tx-label  { font-weight: 500; font-size: 0.9rem; }
.tx-badge  { font-size: 0.75rem; color: #2e8b57; background: #edfaf3; border-radius: 4px; padding: 2px 8px; align-self: flex-start; }

/* Multi-treatment list */
.tx-list { display: flex; flex-direction: column; gap: 0; }

.tx-category { margin-bottom: 16px; }
.tx-category-label {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-muted);
  padding: 4px 0 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 6px;
}

.tx-item {
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 6px;
  transition: border-color 0.15s, background 0.15s;
  overflow: hidden;
}
.tx-item:hover { border-color: var(--navy-light); }
.tx-item-active { border-color: var(--navy); background: #f4f8ff; }

.tx-checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  cursor: pointer;
  flex-wrap: wrap;
}
.tx-checkbox-label input[type="checkbox"] { width: 17px; height: 17px; flex-shrink: 0; accent-color: var(--navy); }
.tx-name { font-weight: 500; font-size: 0.92rem; flex: 1; }
.tx-badge-loading { font-size: 0.73rem; background: #fff8e0; color: #8a5c00; border-radius: 4px; padding: 2px 8px; }
.tx-badge-inject  { font-size: 0.73rem; background: #edfaf3; color: #2e8b57; border-radius: 4px; padding: 2px 8px; }

.tx-dates {
  padding: 4px 14px 12px 41px;
  border-top: 1px solid var(--border);
  background: #f9fbff;
}
.tx-dose-hint {
  font-size: 0.82rem;
  font-style: italic;
  color: #8a5c00;
  background: #fff8e0;
  border-radius: var(--radius-sm);
  padding: 5px 10px;
  margin: 8px 0 10px;
  display: inline-block;
}
.tx-date-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.form-group-sm {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.form-group-sm label {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-muted);
}
.form-group-sm input[type="date"] {
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.88rem;
  font-family: var(--font-body);
  color: var(--text);
  background: #fff;
  transition: border-color 0.15s;
}
.form-group-sm input[type="date"]:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(26,74,122,0.12);
}

/* Grouped provoked factor checkboxes */
.provoked-group { margin-bottom: 18px; }
.provoked-group-label {
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
  display: inline-block;
}
.provoked-major  { background: #fdecea; color: #a62020; }
.provoked-minor  { background: #fff4e0; color: #8a5c00; }
.provoked-vminor { background: #f0f7ff; color: #1a4a7a; }

.provoked-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 6px;
}
.provoked-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 0.87rem;
  line-height: 1.4;
  transition: border-color 0.15s, background 0.15s;
}
.provoked-option:hover { border-color: var(--navy-light); background: #f4f8ff; }
.provoked-option input[type="checkbox"] {
  width: 15px; height: 15px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: var(--navy);
}
.provoked-option:has(input:checked) {
  border-color: var(--navy);
  background: #edf3ff;
}

/* Checkbox */
.checkbox-option {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 0.93rem;
}
.checkbox-option input { width: 16px; height: 16px; }

/* Form actions */
.form-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 8px 0 32px;
  flex-wrap: wrap;
}

/* ============================================================
   GENERATED PAGE
   ============================================================ */
.generated-page { background: var(--bg); }
.success-card {
  background: var(--bg-card);
  border-radius: var(--radius);
  border: 1.5px solid var(--border);
  padding: 44px 40px;
  text-align: center;
  box-shadow: var(--shadow);
}
.success-icon {
  width: 60px; height: 60px;
  background: var(--success-bg);
  color: var(--success);
  border-radius: 50%;
  font-size: 1.8rem;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
}
.success-card h1 { font-size: 1.8rem; margin-bottom: 10px; }
.success-card p  { color: var(--text-muted); margin-bottom: 4px; }

.action-buttons {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 24px 0;
}

.email-resend-section {
  margin: 28px 0;
  padding: 24px;
  background: var(--bg);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.email-resend-section h3 { margin-bottom: 14px; font-size: 1.05rem; }
.email-resend-section .form-row { justify-content: center; }

.qr-section {
  margin: 28px 0;
  padding: 24px;
  background: var(--bg);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.qr-section h3 { margin-bottom: 10px; font-size: 1.05rem; }
.qr-url-box {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  font-size: 0.82rem;
  word-break: break-all;
  margin: 10px 0;
}
.hint { font-size: 0.82rem; color: var(--text-muted); }

.generate-another { margin-top: 28px; display: flex; gap: 12px; justify-content: center; }

/* ============================================================
   PATIENT VIEW
   ============================================================ */
.patient-view-main { padding: 32px 20px 60px; max-width: 780px; }

.info-strip {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.info-item {
  flex: 1;
  min-width: 140px;
  padding: 12px 16px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: var(--bg-card);
}
.info-item:last-child { border-right: none; }
.info-item strong { font-size: 0.73rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); }

.patient-section { margin-bottom: 32px; }
.patient-section h2 {
  font-family: var(--font-head);
  font-size: 1.25rem;
  color: var(--navy);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--border);
}
.patient-section p { margin-bottom: 12px; font-size: 0.95rem; }
.patient-section h3 { font-size: 1rem; margin: 16px 0 8px; color: var(--text); }

.patient-list { font-size: 0.93rem; }
.patient-list li { margin-bottom: 6px; }

/* Clot diagram */
.diagram-section .diagram-wrap { text-align: center; }
.diagram-wrap svg { max-width: 280px; }
.diagram-caption { font-size: 0.83rem; color: var(--text-muted); margin-top: 10px; max-width: 460px; margin-left: auto; margin-right: auto; }
.diagram-wrap-right { float: right; margin: 0 0 16px 24px; }

/* Alert boxes in patient view */
.alert-box {
  border-radius: var(--radius);
  padding: 20px 24px;
}
.alert-box.red    { background: #fff0f0; border: 2px solid var(--accent); }
.alert-box.amber  { background: #fff8e8; border: 2px solid var(--accent2); }
.alert-box h2     { font-size: 1.1rem; margin-bottom: 10px; }
.alert-box.red h2 { color: var(--accent); border-bottom: none; }
.alert-box.amber h2 { color: var(--warning); border-bottom: none; }
.alert-box p      { margin-top: 10px; font-size: 0.9rem; }

/* LMWH injection steps */
.injection-steps { list-style: none; padding: 0; counter-reset: step-counter; }
.injection-steps li {
  counter-increment: step-counter;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: var(--bg);
  border-radius: var(--radius-sm);
  border-left: 4px solid var(--navy);
}
.injection-steps li::before {
  content: counter(step-counter);
  background: var(--navy);
  color: #fff;
  width: 26px; height: 26px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.82rem; font-weight: 700;
  flex-shrink: 0;
}
.injection-steps li strong { display: block; font-size: 0.93rem; margin-bottom: 4px; }
.injection-steps li p { font-size: 0.87rem; color: var(--text-muted); margin: 0; }

/* Contact box */
.contact-section { }
.contact-box {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 24px;
}
.contact-box p { margin-bottom: 8px; font-size: 0.93rem; }
.contact-box a { color: var(--navy); }

/* Clinician note */
.clinician-note-box {
  background: #fffbea;
  border-left: 4px solid var(--accent2);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 14px 18px;
  font-size: 0.93rem;
  white-space: pre-wrap;
}

/* Disclaimer */
.disclaimer {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 40px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

/* ============================================================
   AUTH PAGES
   ============================================================ */
.auth-page { display: flex; flex-direction: column; min-height: 100vh; }
.auth-wrap { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.auth-card {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 40px 36px;
  width: 100%;
  max-width: 420px;
  box-shadow: var(--shadow);
}
.auth-card h1  { font-size: 1.6rem; margin-bottom: 6px; }
.auth-sub      { font-size: 0.87rem; color: var(--text-muted); margin-bottom: 24px; }
.auth-foot     { text-align: center; font-size: 0.87rem; color: var(--text-muted); margin-top: 16px; }

/* ============================================================
   DASHBOARD
   ============================================================ */
.dashboard-main { padding: 32px 20px 60px; }
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}
@media (max-width: 680px) { .dashboard-grid { grid-template-columns: 1fr; } }

.dash-card {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 26px 24px;
}
.dash-card h2 { font-size: 1.1rem; margin-bottom: 6px; color: var(--navy); }
.dash-sub     { font-size: 0.84rem; color: var(--text-muted); margin-bottom: 20px; }
.full-width   { grid-column: 1 / -1; }

.quick-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.quick-link  {
  padding: 6px 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 0.82rem;
  color: var(--navy);
  text-decoration: none;
  transition: background 0.12s, border-color 0.12s;
}
.quick-link:hover { background: var(--navy); color: #fff; border-color: var(--navy); text-decoration: none; }

.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.data-table th {
  text-align: left;
  padding: 9px 12px;
  background: var(--bg);
  border-bottom: 2px solid var(--border);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.data-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
}
.data-table tr:last-child td { border-bottom: none; }
.data-table tr:hover td { background: #f5f8fd; }
.table-actions { display: flex; gap: 6px; }
.empty-state { color: var(--text-muted); font-size: 0.9rem; padding: 16px 0; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background: var(--navy-dark);
  color: rgba(255,255,255,0.65);
  padding: 28px 0;
  margin-top: auto;
}
.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}
.footer-inner p   { font-size: 0.82rem; }
.footer-inner a   { color: rgba(255,255,255,0.75); text-decoration: none; }
.footer-inner a:hover { color: #fff; }

/* ============================================================
   GENERATE PAGE — DOAC PHASES
   ============================================================ */
.tx-phases { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }

.tx-phase {
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color 0.15s;
}
.tx-phase-active { border-color: var(--navy); background: #f0f6ff; }

.phase-check-label {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  cursor: pointer;
  flex-wrap: wrap;
}
.phase-check-label input[type="checkbox"] { width: 15px; height: 15px; flex-shrink: 0; accent-color: var(--navy); }
.phase-label { font-weight: 600; font-size: 0.87rem; }
.phase-dose  { font-size: 0.85rem; color: var(--navy); background: #dde8f8; border-radius: 4px; padding: 1px 7px; }
.phase-hint  { font-size: 0.78rem; font-style: italic; color: var(--text-muted); }

.phase-dates {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  padding: 6px 12px 10px 36px;
  border-top: 1px solid var(--border);
  background: #f9fbff;
}

/* ============================================================
   GENERATE PAGE — LMWH WEIGHT / DOSE
   ============================================================ */
.lmwh-section { margin-top: 8px; }

.lmwh-weight-row {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}

.lmwh-calc-box {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  background: #f0f6ff;
  border: 1.5px solid #b8d0f0;
  border-radius: var(--radius-sm);
  min-width: 180px;
}
.lmwh-calc-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); }
.lmwh-calc-value { font-size: 1rem; font-weight: 600; color: var(--navy); }
.lmwh-formula    { font-size: 0.75rem; color: var(--text-muted); }

.lmwh-weight-input {
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.88rem;
  width: 110px;
  font-family: var(--font-body);
}
.lmwh-weight-input:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(26,74,122,0.12); }

.enox-options { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.enox-option-label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 0.87rem;
  transition: border-color 0.15s, background 0.15s;
}
.enox-option-label:hover { border-color: var(--navy-light); background: #f4f8ff; }
.enox-option-label:has(input:checked) { border-color: var(--navy); background: #edf3ff; }
.enox-formula { flex: 1; }
.enox-calc { font-size: 0.85rem; font-weight: 600; color: var(--navy); min-width: 100px; text-align: right; }

/* ============================================================
   GENERATE PAGE — WARFARIN INDUCTION
   ============================================================ */
.warfarin-section { margin-top: 8px; }
.warfarin-induction-label { font-size: 0.82rem; font-weight: 600; color: var(--text-muted); margin-bottom: 8px; }

.warfarin-days { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }

.warf-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 10px;
  background: #f0f6ff;
  border: 1.5px solid #b8d0f0;
  border-radius: var(--radius-sm);
  min-width: 72px;
}
.warf-day label { font-size: 0.75rem; font-weight: 600; color: var(--text-muted); }
.warf-day span  { font-size: 0.78rem; color: var(--text-muted); }
.warf-day input[type="number"] { text-align: center; padding: 4px 6px; border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-size: 0.88rem; font-family: var(--font-body); }

/* ============================================================
   GENERATE PAGE — FOLLOW-UP
   ============================================================ */
.followup-options { display: flex; flex-direction: column; gap: 8px; }

.followup-option {
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color 0.15s;
}
.fu-active { border-color: var(--navy); background: #f4f8ff; }

.followup-radio-label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  cursor: pointer;
  font-weight: 500;
  font-size: 0.92rem;
}
.followup-radio-label input[type="radio"] { width: 16px; height: 16px; flex-shrink: 0; accent-color: var(--navy); }

.fu-detail {
  padding: 4px 14px 12px 40px;
  border-top: 1px solid var(--border);
  background: #f9fbff;
}

/* ============================================================
   GENERATE PAGE — TX COMMENTS ROW
   ============================================================ */
.tx-comments-row {
  display: flex;
  gap: 12px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed var(--border);
}
.tx-comments-row input[type="text"] {
  padding: 7px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.87rem;
  font-family: var(--font-body);
  width: 100%;
}
.tx-comments-row input[type="text"]:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(26,74,122,0.12); }

/* ============================================================
   DURATION PRESET BUTTONS
   ============================================================ */
.duration-presets {
  display: flex;
  gap: 4px;
  margin-top: 4px;
  flex-wrap: wrap;
}
.duration-presets button {
  padding: 2px 8px;
  font-size: 0.75rem;
  font-family: var(--font-body);
  font-weight: 500;
  background: #edf3ff;
  color: var(--navy);
  border: 1px solid #b8d0f0;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
  line-height: 1.6;
}
.duration-presets button:hover { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ============================================================
   LMWH CALC — MATH DISPLAY
   ============================================================ */
.lmwh-calc-value em { font-style: italic; font-weight: 400; color: var(--text-muted); }
.lmwh-calc-value strong { color: var(--navy); }
.enox-calc em { font-style: italic; font-weight: 400; font-size: 0.82rem; color: var(--text-muted); }
.enox-calc strong { color: var(--navy); }

/* ============================================================
   ANTICOAGULATION SCHEDULE TABLE (generate.php preview)
   ============================================================ */
.anticoag-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.anticoag-table thead th {
  background: var(--navy);
  color: #fff;
  padding: 8px 10px;
  text-align: center;
  font-weight: 600;
  font-size: 0.8rem;
}
.anticoag-table thead th:first-child { text-align: left; }
.anticoag-table tbody tr:nth-child(odd)  { background: #f8fafc; }
.anticoag-table tbody tr:nth-child(even) { background: #fff; }
.anticoag-table tbody tr:hover { background: #edf3ff; }
.anticoag-table td {
  padding: 6px 10px;
  border-bottom: 1px solid var(--border);
  text-align: center;
  vertical-align: middle;
}
.anticoag-table td:first-child { text-align: left; }
.atbl-date { font-weight: 600; }
.atbl-day  { font-size: 0.73rem; color: var(--text-muted); margin-left: 4px; }
.atbl-none { color: #ccc; }
.anticoag-table tfoot td.atbl-footer {
  background: #fff8e0;
  color: var(--warning);
  font-size: 0.83rem;
  padding: 8px 12px;
  text-align: left;
  border-top: 2px solid #f0d060;
}

/* ============================================================
   CANVAS DRAWING PANEL
   ============================================================ */
.drawing-outer { display: flex; flex-direction: column; gap: 8px; }

.drawing-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.draw-tool-btn {
  padding: 5px 12px;
  font-size: 0.82rem;
  font-family: var(--font-body);
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
  white-space: nowrap;
}
.draw-tool-btn:hover  { border-color: var(--navy-light); background: #f4f8ff; }
.draw-tool-btn.active { background: var(--navy); color: #fff; border-color: var(--navy); }
.draw-undo  { color: var(--text-muted); }
.draw-clear { color: var(--accent); border-color: #f8d0ce; }
.draw-clear:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

.draw-color-pick {
  width: 32px; height: 30px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 2px;
  cursor: pointer;
  background: none;
}
.draw-size-range { width: 70px; accent-color: var(--navy); cursor: pointer; }

.drawing-stage {
  display: inline-block;
  position: relative;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: #fff;
  line-height: 0;
}
.drawing-stage svg,
.drawing-stage img { display: block; }

/* ============================================================
   PATIENT VIEW — PHASE / DOSE / WARFARIN / FOLLOWUP BLOCKS
   ============================================================ */
.pv-phase-block {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 7px 12px;
  background: #f0f6ff;
  border-left: 3px solid var(--navy);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin-bottom: 6px;
}
.pv-phase-label { font-weight: 600; font-size: 0.9rem; }
.pv-phase-dose  { font-size: 0.87rem; background: #dde8f8; color: var(--navy); border-radius: 4px; padding: 1px 8px; }
.pv-phase-dates { font-size: 0.82rem; color: var(--text-muted); }

.pv-dose-info {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  font-size: 0.9rem;
  padding: 8px 12px;
  background: #f0f6ff;
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
}

.pv-warf-table { margin-bottom: 12px; }
.pv-warf-title { font-size: 0.85rem; font-weight: 600; color: var(--text-muted); margin-bottom: 6px; }
.pv-warf-days  { display: flex; gap: 6px; flex-wrap: wrap; }
.pv-warf-day   { display: flex; flex-direction: column; align-items: center; padding: 6px 10px; background: #f0f6ff; border: 1px solid #b8d0f0; border-radius: var(--radius-sm); min-width: 60px; }
.pv-warf-day-label { font-size: 0.72rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.pv-warf-day-dose  { font-size: 0.93rem; font-weight: 600; color: var(--navy); }

.pv-followup-box {
  background: #f0f6ff;
  border: 1.5px solid #b8d0f0;
  border-radius: var(--radius);
  padding: 16px 20px;
  font-size: 0.93rem;
}
.pv-followup-box p { margin-bottom: 4px; }

/* ============================================================
   PATIENT VIEW — ANTICOAG SCHEDULE TABLE
   ============================================================ */
.pv-sched-wrap { overflow-x: auto; }
.pv-sched-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.pv-sched-table thead th {
  background: var(--navy);
  color: #fff;
  padding: 9px 12px;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
}
.pv-sched-table thead th:first-child { text-align: left; }
.pv-sched-table tbody td {
  padding: 7px 12px;
  border-bottom: 1px solid var(--border);
  text-align: center;
  vertical-align: middle;
}
.pv-sched-table tbody td:first-child { text-align: left; }
.pv-sched-table tbody tr.alt { background: #f8fafc; }
.pv-sched-table tbody tr:hover { background: #edf3ff; }
.sched-day { font-size: 0.75rem; color: var(--text-muted); margin-left: 4px; }
.pv-sched-table tfoot td.sched-footer {
  background: #fff8e0;
  color: var(--warning);
  font-size: 0.85rem;
  padding: 9px 12px;
  text-align: left;
  border-top: 2px solid #f0d060;
  font-style: italic;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 720px) {
  .hero { flex-direction: column; gap: 32px; padding: 48px 20px 40px; }
  .hero-visual { display: none; }
  .form-card { padding: 20px 16px; }
  .success-card { padding: 28px 18px; }
  .cta-box { flex-direction: column; }
  .info-strip { flex-direction: column; }
  .info-item { border-right: none; border-bottom: 1px solid var(--border); }
}
