:root{
  /* Backgrounds — warm cream tones, NO pure white (reduces glare 60% over white) */
  --bg:#f1ebdd;          /* page bg — slightly more contrast vs paper */
  --paper:#f8f3e6;       /* card backgrounds — warm cream */
  --surface:#fcfaf2;     /* elevated surfaces — off-white (was #ffffff) */
  --surface-2:#f5efe1;   /* alternate surface for striped tables */

  /* Text — calibrated for WCAG AAA contrast on warm cream */
  --ink:#0d1714;         /* primary text — near-black, warm undertone, 16.8:1 contrast */
  --ink-2:#2c3833;       /* strong secondary — 11.4:1 (was #33403c at 9.8:1) */
  --ink-3:#46524d;       /* readable tertiary — 7.0:1 */
  --muted:#5a6660;       /* muted/labels — 6.1:1 (was #6b7773 at 4.6:1, marginally passing) */
  --muted-soft:#7a8682;  /* whisper-text only for non-critical info */

  /* Borders — slightly more visible for spatial clarity */
  --line:#d8cdb5;        /* main borders (was #e6ddcb) */
  --line-2:#e8e0cc;      /* inner subtle borders (kept light) */

  /* Brand — emerald + gold, contrast-tuned */
  --primary:#0a4f3c;     /* deep emerald — 11.6:1 on paper, EXCELLENT */
  --primary-2:#0c6049;
  --primary-soft:#d9e9e0;/* slightly more visible than #e3efe9 */

  /* Gold split into two: darker for body text, brighter for highlights */
  --gold:#8a6420;        /* darker gold — 6.5:1 on paper (was 4.4:1 — failed AAA) */
  --gold-bright:#a87a26; /* original gold — for headings, swatches, decorative only */
  --gold-soft:#f0e2bf;

  /* Status — desaturated, distinguishable at a glance, kind to eyes over hours */
  --danger:#871616;      /* slightly deeper red — 8.5:1 (was #9b1c1c at 6.7:1) */
  --danger-soft:#f4d4d1;
  --warn:#8a6420;        /* aligned with gold — 6.5:1 */
  --warn-soft:#f0e2bf;
  --info:#1d4582;        /* slightly deeper blue — 8.4:1 */
  --info-soft:#d6e1ee;
  --violet:#4f3279;      /* deeper violet — 9.0:1 */
  --violet-soft:#e6dcf2;

  /* Focus ring — gold, prominent for keyboard navigation (older users tab more) */
  --focus-ring:#a87a26;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:15px;                /* was 14px — 7% larger inherited text */
  line-height:1.55;              /* was default — easier sustained reading */
  letter-spacing:-0.003em;       /* slightly tighter, easier scanning */
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body{
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:14px;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  letter-spacing:-0.005em;
}
.serif{font-family:'Fraunces',serif;font-feature-settings:"ss01";letter-spacing:-0.02em}
.mono{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:0}

/* ============= LAYOUT ============= */
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}

/* ============= SIDEBAR ============= */
aside{
  background:linear-gradient(180deg,#0a4f3c 0%,#073525 100%);
  color:#dfe9e3;
  padding:22px 0 16px;
  position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;
  border-right:1px solid #062b1f;
}
.brand{padding:0 22px 20px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:14px}
.brand h1{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:1.45rem;
  color:#fff;
  letter-spacing:-.02em;
  display:flex;align-items:baseline;gap:6px;
}
.brand h1 em{
  font-style:italic;
  color:var(--gold-soft);
  font-weight:300;
}
.brand .tagline{
  font-size:.68rem;
  color:#8eaaa0;
  text-transform:uppercase;
  letter-spacing:.18em;
  margin-top:4px;
}
.nav-group{padding:0 12px;flex:1;overflow-y:auto;scrollbar-width:thin}
.nav-group::-webkit-scrollbar{width:4px}
.nav-group::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.nav-section-label{
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:#7a988e;
  padding:14px 10px 6px;
  font-weight:600;
}
.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;
  border-radius:6px;
  cursor:pointer;
  font-size:.86rem;
  color:#c8d6cf;
  margin-bottom:1px;
  transition:background .15s,color .15s;
}
.nav-item:hover{background:rgba(255,255,255,.05);color:#fff}
.nav-item.active{
  background:rgba(168,122,38,.18);
  color:#fff;
  box-shadow:inset 2px 0 0 var(--gold);
}
.nav-item .ico{
  width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;
  font-size:.95rem;opacity:.85;
}
.nav-item.active .ico{opacity:1;color:var(--gold-soft)}
.nav-badge{
  margin-left:auto;
  background:rgba(168,122,38,.25);
  color:var(--gold-soft);
  font-size:.68rem;
  padding:1px 6px;
  border-radius:8px;
  font-weight:600;
}
.nav-badge.danger{background:rgba(219,68,68,.25);color:#ffd9d6}

.user-strip{
  margin:8px 12px 0;
  padding:10px 10px;
  border-top:1px solid rgba(255,255,255,.07);
  display:flex;align-items:center;gap:10px;
}
.avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#a87a26,#7a5614);
  display:flex;align-items:center;justify-content:center;
  font-weight:600;color:#fff;font-size:.78rem;
  flex-shrink:0;
}
.user-strip .name{font-size:.82rem;color:#fff;font-weight:500;line-height:1.1}
.user-strip .role{font-size:.7rem;color:#8eaaa0;margin-top:2px}

/* ============= MAIN ============= */
main{display:flex;flex-direction:column;min-width:0}

.topbar{
  display:flex;align-items:center;gap:14px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:12px 28px;
  position:sticky;top:0;z-index:10;
}
.search{
  flex:1;max-width:480px;
  position:relative;
}
.search input{
  width:100%;
  border:1px solid var(--line);
  background:var(--surface);
  padding:8px 12px 8px 34px;
  border-radius:8px;
  font-family:inherit;font-size:.86rem;
  color:var(--ink);
  outline:none;
  transition:border .15s;
}
.search input:focus{border-color:var(--primary)}
.search::before{
  content:"⌕";position:absolute;left:11px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:1rem;
}
.alert-pills{display:flex;gap:8px;margin-left:auto}
.alert-pill{
  display:flex;align-items:center;gap:6px;
  padding:5px 10px;border-radius:14px;
  font-size:.74rem;font-weight:500;
  cursor:pointer;border:1px solid transparent;
  transition:transform .12s;
}
.alert-pill:hover{transform:translateY(-1px)}
.alert-pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.alert-pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#f1d9a8}
.alert-pill.danger{background:var(--danger-soft);color:var(--danger);border-color:#f0c4c0}
.alert-pill.info{background:var(--info-soft);color:var(--info);border-color:#cfdef0}

.icon-btn{
  width:34px;height:34px;border-radius:8px;
  border:1px solid var(--line);background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink-2);position:relative;
}
.icon-btn:hover{background:var(--primary-soft)}
.icon-btn .ping{
  position:absolute;top:7px;right:7px;
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);
  border:2px solid var(--paper);
}

.content{flex:1;padding:28px;overflow:auto;background:var(--bg)}

/* ============= GENERIC ============= */
.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:24px;flex-wrap:wrap}
.page-title{font-family:'Fraunces',serif;font-weight:400;font-size:2.1rem;line-height:1;letter-spacing:-.025em;color:var(--ink)}
.page-title em{font-style:italic;color:var(--primary)}
.page-sub{color:var(--muted);font-size:.86rem;margin-top:8px}
.page-actions{display:flex;gap:8px}

.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:7px;
  font-family:inherit;font-size:.82rem;font-weight:500;
  cursor:pointer;transition:transform .1s,background .15s;
  border:1px solid transparent;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-2)}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{background:var(--paper)}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:#7a5614}
.btn-sm{padding:5px 10px;font-size:.76rem}

.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px;
}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-title{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.card-link{font-size:.78rem;color:var(--primary);font-weight:500;cursor:pointer}
.card-link:hover{text-decoration:underline}

/* KPI cards */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.kpi{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px 18px 16px;
  position:relative;overflow:hidden;
}
.kpi::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary);
}
.kpi.gold::before{background:var(--gold)}
.kpi.warn::before{background:var(--warn)}
.kpi.danger::before{background:var(--danger)}
.kpi-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500;margin-bottom:8px}
.kpi-value{font-family:'Fraunces',serif;font-weight:400;font-size:2.2rem;line-height:1;color:var(--ink)}
.kpi-value .unit{font-size:.85rem;color:var(--muted);margin-left:4px;font-family:'DM Sans',sans-serif;font-weight:400}
.kpi-foot{font-size:.74rem;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:5px}
.kpi-foot .delta{color:var(--primary);font-weight:600}
.kpi-foot .delta.down{color:var(--danger)}

/* Stage chip */
.chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;border-radius:14px;
  font-size:.72rem;font-weight:500;
  white-space:nowrap;
}
.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip-stage-booked{background:var(--info-soft);color:var(--info)}
.chip-stage-payment{background:var(--warn-soft);color:var(--warn)}
.chip-stage-docs{background:var(--warn-soft);color:#8a4612}
.chip-stage-visa{background:var(--violet-soft);color:var(--violet)}
.chip-stage-flight{background:var(--info-soft);color:var(--info)}
.chip-stage-hotel{background:var(--teal-soft);color:var(--teal)}
.chip-stage-transport{background:var(--teal-soft);color:#08524d}
.chip-stage-ready{background:var(--primary-soft);color:var(--primary)}
.chip-stage-travel{background:var(--primary-soft);color:var(--primary-2)}
.chip-stage-completed{background:var(--gold-soft);color:var(--gold)}
.chip-stage-closed{background:var(--grey-soft);color:var(--ink-2)}

/* Workflow funnel */
.funnel{display:flex;flex-direction:column;gap:6px}
.funnel-row{display:grid;grid-template-columns:170px 1fr 50px;gap:14px;align-items:center}
.funnel-row .lbl{font-size:.8rem;color:var(--ink-2);font-weight:500}
.funnel-bar{height:24px;background:var(--line-2);border-radius:4px;overflow:hidden;position:relative}
.funnel-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:4px;transition:width .4s}
.funnel-fill.gold{background:linear-gradient(90deg,var(--gold),#7a5614)}
.funnel-row .count{font-family:'JetBrains Mono',monospace;font-size:.82rem;font-weight:500;text-align:right;color:var(--ink)}

/* Activity feed */
.activity{display:flex;flex-direction:column}
.activity-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line-2)}
.activity-row:last-child{border-bottom:none}
.activity-icon{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:600;flex-shrink:0;margin-top:2px;
}
.act-visa{background:var(--violet-soft);color:var(--violet)}
.act-pay{background:var(--gold-soft);color:var(--gold)}
.act-hotel{background:var(--teal-soft);color:var(--teal)}
.act-flight{background:var(--info-soft);color:var(--info)}
.act-msg{background:var(--primary-soft);color:var(--primary)}
.activity-body{flex:1;font-size:.84rem;line-height:1.4;color:var(--ink-2)}
.activity-body strong{color:var(--ink);font-weight:500;cursor:pointer}
.activity-body strong:hover{color:var(--primary);text-decoration:underline}
.activity-time{font-size:.72rem;color:var(--muted);margin-top:2px}

/* Filter chips bar */
.filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;padding:10px;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.filter-chip{
  padding:5px 12px;border-radius:14px;
  font-size:.76rem;font-weight:500;color:var(--ink-2);
  background:var(--surface);border:1px solid var(--line);
  cursor:pointer;transition:all .12s;
}
.filter-chip:hover{border-color:var(--primary)}
.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.filter-chip .n{
  margin-left:6px;font-family:'JetBrains Mono',monospace;font-size:.7rem;
  background:rgba(0,0,0,.06);padding:1px 5px;border-radius:8px;
}
.filter-chip.active .n{background:rgba(255,255,255,.18);color:#fff}

/* Table */
.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
table.crm{width:100%;border-collapse:collapse}
table.crm th{
  text-align:left;padding:11px 14px;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);font-weight:600;
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
table.crm td{
  padding:13px 14px;
  border-bottom:1px solid var(--line-2);
  font-size:.86rem;color:var(--ink-2);vertical-align:middle;
}
table.crm tr{transition:background .12s;cursor:pointer}
table.crm tr:hover td{background:var(--paper)}
table.crm tr.selected td{background:var(--primary-soft)}
table.crm td:first-child{font-weight:500;color:var(--ink)}

.pax-cell{display:flex;align-items:center;gap:10px}
.pax-cell .av{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#cfd9d3,#a8b6ae);
  color:#1a2520;font-weight:600;font-size:.78rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.pax-cell .pax-meta{font-size:.72rem;color:var(--muted);margin-top:1px}
.pax-id{font-family:'JetBrains Mono',monospace;font-size:.74rem;color:var(--muted)}

.progress-mini{display:flex;align-items:center;gap:6px}
.progress-mini .bar{width:60px;height:5px;background:var(--line-2);border-radius:3px;overflow:hidden}
.progress-mini .fill{height:100%;background:var(--primary);border-radius:3px}
.progress-mini.warn .fill{background:var(--warn)}
.progress-mini.danger .fill{background:var(--danger)}
.progress-mini .pct{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);min-width:32px}

.status-tag{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.74rem;font-weight:500;
}
.status-tag::before{content:"";width:6px;height:6px;border-radius:50%}
.status-ok{color:var(--primary)}.status-ok::before{background:var(--primary)}
.status-pending{color:var(--warn)}.status-pending::before{background:var(--warn)}
.status-missing{color:var(--danger)}.status-missing::before{background:var(--danger)}

/* Two-col layout */
.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}
.dash-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* PILGRIM DETAIL */
.detail-header{
  background:linear-gradient(135deg,#0a4f3c 0%,#073525 60%,#0a4f3c 100%);
  color:#fff;
  border-radius:12px;
  padding:24px 28px;
  margin-bottom:18px;
  position:relative;overflow:hidden;
}
.detail-header::after{
  content:"";position:absolute;
  right:-60px;top:-60px;width:240px;height:240px;
  background:radial-gradient(circle,rgba(168,122,38,.22),transparent 70%);
  pointer-events:none;
}
.detail-header-row{display:flex;align-items:flex-start;gap:18px;position:relative;z-index:1}
.detail-avatar{
  width:74px;height:74px;border-radius:50%;
  background:linear-gradient(135deg,#a87a26,#7a5614);
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:1.8rem;color:#fff;font-weight:500;
  border:2px solid rgba(255,255,255,.2);flex-shrink:0;
}
.detail-id{font-family:'JetBrains Mono',monospace;font-size:.74rem;color:#a4c4b8;margin-bottom:5px}
.detail-name{font-family:'Fraunces',serif;font-weight:400;font-size:1.85rem;letter-spacing:-.015em;line-height:1.05}
.detail-meta{display:flex;gap:18px;margin-top:8px;flex-wrap:wrap}
.detail-meta div{font-size:.78rem;color:#bbd0c8}
.detail-meta div span{color:#fff;font-weight:500;margin-left:4px}
.detail-actions{margin-left:auto;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.detail-actions .btn{font-size:.78rem}
.btn-on-dark{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}
.btn-on-dark:hover{background:rgba(255,255,255,.2)}

/* Stage progression */
.stage-track{
  margin-top:18px;
  display:flex;align-items:center;
  position:relative;z-index:1;
  background:rgba(0,0,0,.18);border-radius:8px;padding:10px 12px;
}
.stage-step{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;
  position:relative;cursor:pointer;
}
.stage-step::before{
  content:"";position:absolute;top:6px;right:-50%;width:100%;height:2px;
  background:rgba(255,255,255,.12);
}
.stage-step:last-child::before{display:none}
.stage-step.done::before{background:var(--gold)}
.stage-dot{
  width:13px;height:13px;border-radius:50%;
  background:rgba(255,255,255,.15);
  border:2px solid rgba(255,255,255,.3);
  z-index:1;
}
.stage-step.done .stage-dot{background:var(--gold);border-color:var(--gold)}
.stage-step.active .stage-dot{
  background:var(--gold);border-color:#fff;
  box-shadow:0 0 0 4px rgba(168,122,38,.35);
  animation:pulse 1.6s infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(168,122,38,.35)}50%{box-shadow:0 0 0 7px rgba(168,122,38,.15)}}
.stage-step .stage-lbl{font-size:.66rem;color:#a4c4b8;text-align:center;line-height:1.1;letter-spacing:.02em}
.stage-step.active .stage-lbl{color:#fff;font-weight:600}
.stage-step.done .stage-lbl{color:#dcc89a}

/* Detail sections grid */
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.detail-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

.section-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px;
}
.section-card .sc-head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line-2);
}
.section-card .sc-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px;
}
.section-card .sc-title .ico{
  width:22px;height:22px;border-radius:6px;
  background:var(--primary-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;font-size:.85rem;
}
.section-card .sc-action{font-size:.74rem;color:var(--primary);cursor:pointer;font-weight:500}
.section-card .sc-action:hover{text-decoration:underline}

.kv-list{display:flex;flex-direction:column;gap:8px}
.kv{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:.84rem}
.kv .k{color:var(--muted);font-size:.78rem}
.kv .v{color:var(--ink);font-weight:500;text-align:right}
.kv .v.mono{font-family:'JetBrains Mono',monospace;font-size:.78rem;font-weight:400}

/* Doc grid */
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.doc-pill{
  border:1px solid var(--line);
  border-radius:8px;padding:9px 10px;
  display:flex;align-items:center;gap:8px;
  font-size:.78rem;color:var(--ink-2);
  background:var(--paper);cursor:pointer;
}
.doc-pill:hover{border-color:var(--primary)}
.doc-pill .doc-icon{
  width:24px;height:24px;border-radius:5px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;
}
.doc-pill.ok .doc-icon{background:var(--primary-soft);color:var(--primary)}
.doc-pill.pending .doc-icon{background:var(--warn-soft);color:var(--warn)}
.doc-pill.missing .doc-icon{background:var(--danger-soft);color:var(--danger)}
.doc-pill .doc-name{flex:1;line-height:1.1}
.doc-pill .doc-state{font-size:.68rem;color:var(--muted)}

/* Payment table */
.pay-list{font-size:.82rem}
.pay-list .pay-row{
  display:grid;grid-template-columns:1fr auto auto;gap:10px;
  padding:7px 0;border-bottom:1px dashed var(--line-2);
}
.pay-list .pay-row:last-child{border-bottom:none}
.pay-amount{font-family:'JetBrains Mono',monospace;font-size:.82rem;font-weight:500}
.pay-status{font-size:.7rem;color:var(--muted)}
.pay-status.paid{color:var(--primary);font-weight:500}
.pay-status.due{color:var(--warn);font-weight:500}

.balance-banner{
  background:linear-gradient(135deg,var(--gold-soft),#fbf2dc);
  border:1px solid #e8d4a3;
  border-radius:8px;padding:10px 12px;
  display:flex;align-items:center;justify-content:space-between;
  margin-top:10px;
}
.balance-banner .lbl{font-size:.74rem;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.balance-banner .amt{font-family:'Fraunces',serif;font-size:1.3rem;color:#5d4a16;font-weight:500}

/* Comm timeline */
.tl{display:flex;flex-direction:column;gap:12px;position:relative;padding-left:14px}
.tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line)}
.tl-item{position:relative;font-size:.82rem}
.tl-item::before{content:"";position:absolute;left:-13px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--primary);border:2px solid var(--surface)}
.tl-item.gold::before{background:var(--gold)}
.tl-item.violet::before{background:var(--violet)}
.tl-item .tl-msg{color:var(--ink-2)}
.tl-item .tl-msg strong{color:var(--ink);font-weight:500}
.tl-item .tl-time{font-size:.7rem;color:var(--muted);margin-top:2px}

/* Mini buttons row */
.quick-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.quick-row button{
  padding:5px 10px;font-size:.74rem;border-radius:5px;
  border:1px solid var(--line);background:var(--paper);
  cursor:pointer;color:var(--ink-2);
}
.quick-row button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}

/* Empty/info states */
.note-line{
  background:var(--info-soft);
  color:var(--info);
  padding:8px 10px;border-radius:6px;
  font-size:.78rem;
  margin-bottom:14px;
  display:flex;gap:8px;align-items:center;
}
.note-line.warn{background:var(--warn-soft);color:var(--warn)}

.linked{
  background:var(--primary-soft);color:var(--primary);
  padding:1px 6px;border-radius:4px;
  font-weight:500;cursor:pointer;font-size:.78rem;
}
.linked:hover{background:var(--primary);color:#fff}

/* Hotel map */
.hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hotel-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:16px;
}
.hotel-card .city{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;
  font-weight:400;color:var(--primary);margin-bottom:2px;
}
.hotel-card .hname{font-weight:500;color:var(--ink);font-size:.92rem}
.hotel-card .haddr{font-size:.74rem;color:var(--muted);margin-bottom:12px}

.room-row{
  display:grid;grid-template-columns:60px 1fr auto;gap:10px;align-items:center;
  padding:8px 0;border-bottom:1px dashed var(--line-2);font-size:.82rem;
}
.room-row:last-child{border-bottom:none}
.room-num{
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;color:var(--ink);
  background:var(--paper);padding:4px 8px;border-radius:6px;text-align:center;
}
.room-occupants{display:flex;flex-direction:column;gap:2px}
.room-occupants span{cursor:pointer}
.room-occupants span:hover{color:var(--primary);text-decoration:underline}
.room-cap{font-size:.7rem;color:var(--muted)}

/* Visa Queue */
.bulk-bar{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;background:var(--violet-soft);
  border:1px solid #d3bfe8;border-radius:8px;margin-bottom:12px;
  font-size:.8rem;color:var(--violet);
}
.bulk-bar strong{color:var(--violet)}

/* Finance */
.fin-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px}

.depbar{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:14px 18px;margin-bottom:10px;
}
.depbar .dep-date{
  font-family:'Fraunces',serif;font-size:1.45rem;color:var(--primary);font-weight:500;
  display:flex;flex-direction:column;align-items:center;
  border-right:1px solid var(--line);padding-right:18px;margin-right:18px;
}
.depbar .dep-date small{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:2px}
.depbar .dep-info{flex:1}
.depbar .dep-group{font-weight:500;color:var(--ink);font-size:.95rem;margin-bottom:2px}
.depbar .dep-meta{font-size:.78rem;color:var(--muted)}
.depbar .dep-stats{display:flex;gap:14px;margin-right:18px}
.dep-stat{text-align:right}
.dep-stat .lbl{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.dep-stat .val{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--ink);font-weight:500}
.dep-stat .val.warn{color:var(--warn)}
.dep-stat .val.ok{color:var(--primary)}

/* Hide scrollbar where appropriate, refined */
.content::-webkit-scrollbar{width:8px}
.content::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.content::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* ============= BULK ACTION BAR ============= */
.bulk-bar-float{
  position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(120%);
  background:#0f1a17;color:#fff;border-radius:12px;
  padding:10px 16px;display:flex;align-items:center;gap:10px;
  box-shadow:0 14px 36px rgba(0,0,0,.28),0 2px 6px rgba(0,0,0,.18);
  z-index:200;border:1px solid rgba(255,255,255,.08);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
  font-size:.84rem;
}
.bulk-bar-float.show{transform:translateX(-50%) translateY(0)}
.bulk-bar-float .bulk-count{
  background:var(--gold);color:#fff;font-weight:700;
  font-family:'JetBrains Mono',monospace;font-size:.78rem;
  padding:3px 8px;border-radius:6px;
}
.bulk-bar-float .bulk-count em{font-style:normal;opacity:.85;font-weight:500;margin-left:4px}
.bulk-bar-float .bulk-divider{width:1px;height:18px;background:rgba(255,255,255,.15)}
.bulk-bar-float button{
  background:transparent;color:#dfe9e3;border:1px solid rgba(255,255,255,.12);
  padding:5px 11px;border-radius:6px;font-family:inherit;font-size:.78rem;
  cursor:pointer;transition:background .12s;
}
.bulk-bar-float button:hover{background:rgba(255,255,255,.08);color:#fff}
.bulk-bar-float button.primary{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:600}
.bulk-bar-float button.primary:hover{background:#7a5614;border-color:#7a5614}
.bulk-bar-float .bulk-clear{background:transparent;border:none;color:rgba(255,255,255,.5);font-size:1.1rem;padding:0 4px;cursor:pointer}
.bulk-bar-float .bulk-clear:hover{color:#fff}

/* checkboxes in tables */
.row-cb{
  width:14px;height:14px;border:1.5px solid var(--line);
  border-radius:3px;background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .12s;flex-shrink:0;
}
.row-cb:hover{border-color:var(--primary)}
.row-cb.checked{background:var(--ink);border-color:var(--ink);color:#fff}
.row-cb.checked::after{content:"✓";font-size:.7rem;font-weight:700;line-height:1}
table.crm tr.row-selected td{background:var(--gold-soft) !important}
table.crm tr.row-selected td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.cb-col{width:30px;padding-right:0 !important}

/* ============= ACTION INBOX ============= */
.inbox-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;overflow:hidden;
}
.inbox-head{
  background:linear-gradient(90deg,var(--paper),var(--surface));
  padding:14px 18px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
}
.inbox-head .inbox-title{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  display:flex;align-items:center;gap:8px;
}
.inbox-head .inbox-count{
  background:var(--ink);color:#fff;font-family:'JetBrains Mono',monospace;
  font-size:.7rem;padding:2px 7px;border-radius:8px;font-weight:600;
}
.inbox-tabs{display:flex;gap:2px;background:var(--paper);padding:4px;border-radius:7px}
.inbox-tab{
  font-size:.74rem;padding:4px 10px;border-radius:5px;
  cursor:pointer;color:var(--muted);font-weight:500;
}
.inbox-tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.inbox-list{max-height:480px;overflow-y:auto}
.inbox-list::-webkit-scrollbar{width:5px}
.inbox-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.inbox-task{
  padding:11px 18px;border-bottom:1px solid var(--line-2);
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;
  align-items:center;cursor:pointer;
  position:relative;transition:background .12s;
}
.inbox-task:last-child{border-bottom:none}
.inbox-task:hover{background:var(--paper)}
.inbox-task::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
}
.inbox-task.urgency-3::before{background:var(--danger)}
.inbox-task.urgency-2::before{background:var(--warn)}
.inbox-task.urgency-1::before{background:var(--info)}
.inbox-task.urgency-0::before{background:var(--primary)}
.inbox-icon{
  width:32px;height:32px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;font-weight:700;flex-shrink:0;
}
.inbox-icon.visa{background:var(--violet-soft);color:var(--violet)}
.inbox-icon.pay{background:var(--gold-soft);color:var(--gold)}
.inbox-icon.doc{background:var(--warn-soft);color:var(--warn)}
.inbox-icon.hotel{background:var(--teal-soft);color:var(--teal)}
.inbox-icon.flight{background:var(--info-soft);color:var(--info)}
.inbox-icon.autoprog{background:var(--primary-soft);color:var(--primary)}
.inbox-icon.welfare{background:var(--danger-soft);color:var(--danger)}
.inbox-task .task-title{font-size:.86rem;color:var(--ink);font-weight:500;line-height:1.25}
.inbox-task .task-sub{font-size:.74rem;color:var(--muted);margin-top:2px}
.inbox-task .task-action{
  background:var(--ink);color:#fff;border:none;
  font-size:.72rem;font-weight:500;padding:5px 10px;border-radius:5px;
  cursor:pointer;font-family:inherit;
}
.inbox-task .task-action:hover{background:var(--primary)}
.inbox-task.autoprog .task-action{background:var(--primary)}
.inbox-task.autoprog .task-action:hover{background:var(--primary-2)}

.autopilot-row{
  display:flex;align-items:center;gap:10px;
  padding:10px 18px;background:var(--primary-soft);
  border-bottom:1px solid #c2dccf;font-size:.78rem;color:var(--primary);
}
.autopilot-toggle{
  position:relative;width:32px;height:18px;
  background:var(--line);border-radius:10px;cursor:pointer;
  transition:background .15s;flex-shrink:0;
}
.autopilot-toggle.on{background:var(--primary)}
.autopilot-toggle::after{
  content:"";position:absolute;top:2px;left:2px;
  width:14px;height:14px;border-radius:50%;
  background:#fff;transition:left .15s;
  box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.autopilot-toggle.on::after{left:16px}

/* ============= SMART FILTER PILLS ============= */
.smart-pills{
  display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;
  align-items:center;
}
.smart-pills .sp-label{
  font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;margin-right:6px;
}
.smart-pill{
  padding:4px 10px;border-radius:14px;
  font-size:.74rem;font-weight:500;color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);
  cursor:pointer;transition:all .12s;
  display:inline-flex;align-items:center;gap:5px;
}
.smart-pill:hover{border-color:var(--gold);color:var(--ink)}
.smart-pill.active{
  background:var(--gold);color:#fff;border-color:var(--gold);
  box-shadow:0 1px 3px rgba(168,122,38,.3);
}
.smart-pill .sp-count{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  background:rgba(0,0,0,.08);padding:0 5px;border-radius:7px;
}
.smart-pill.active .sp-count{background:rgba(255,255,255,.22);color:#fff}

/* ============= ROLE SWITCHER ============= */
.user-strip{cursor:pointer;position:relative;transition:background .12s}
.user-strip:hover{background:rgba(255,255,255,.04)}
.user-strip .role-tag{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;
  padding:1px 6px;border-radius:4px;display:inline-block;
  font-weight:600;margin-top:3px;
}
.role-dropdown{
  position:absolute;bottom:calc(100% + 4px);left:12px;right:12px;
  background:#fff;border-radius:8px;
  box-shadow:0 -4px 24px rgba(0,0,0,.4);
  overflow:hidden;border:1px solid rgba(255,255,255,.1);
  z-index:100;display:none;
}
.role-dropdown.open{display:block;animation:slideUp .15s ease-out}
@keyframes slideUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.role-option{
  padding:9px 14px;display:flex;align-items:center;gap:10px;
  cursor:pointer;color:var(--ink);font-size:.84rem;
  border-bottom:1px solid var(--line-2);
}
.role-option:last-child{border-bottom:none}
.role-option:hover{background:var(--paper)}
.role-option.active{background:var(--primary-soft);color:var(--primary);font-weight:500}
.role-option .ro-swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.role-option .ro-meta{font-size:.7rem;color:var(--muted);margin-left:auto}

/* ============= COMMAND PALETTE ============= */
.cmdk-overlay{
  position:fixed;inset:0;background:rgba(15,26,23,.45);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:300;display:none;align-items:flex-start;justify-content:center;
  padding-top:12vh;
}
.cmdk-overlay.open{display:flex;animation:fadeIn .12s ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.cmdk-modal{
  width:min(620px,92vw);
  background:#fbf8f2;border-radius:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  overflow:hidden;border:1px solid var(--line);
}
.cmdk-input-row{
  display:flex;align-items:center;gap:10px;
  padding:14px 18px;border-bottom:1px solid var(--line);
  background:var(--paper);
}
.cmdk-input-row::before{content:"⌕";font-size:1.2rem;color:var(--muted)}
.cmdk-input{
  flex:1;border:none;background:transparent;outline:none;
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:400;
  color:var(--ink);letter-spacing:-.01em;
}
.cmdk-input::placeholder{color:var(--muted);font-style:italic}
.cmdk-input-row .cmdk-esc{
  font-family:'JetBrains Mono',monospace;font-size:.7rem;
  background:var(--surface);border:1px solid var(--line);
  padding:2px 6px;border-radius:4px;color:var(--muted);
}
.cmdk-results{max-height:50vh;overflow-y:auto;padding:6px}
.cmdk-results::-webkit-scrollbar{width:5px}
.cmdk-results::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.cmdk-group-label{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--muted);font-weight:700;padding:10px 12px 4px;
}
.cmdk-result{
  display:grid;grid-template-columns:24px 1fr auto;gap:10px;
  padding:8px 12px;border-radius:7px;cursor:pointer;
  align-items:center;
}
.cmdk-result.active{background:var(--primary);color:#fff}
.cmdk-result.active .cmdk-sub,.cmdk-result.active .cmdk-tag{color:rgba(255,255,255,.78)}
.cmdk-result-ico{
  width:22px;height:22px;border-radius:5px;
  background:var(--surface);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem;flex-shrink:0;
}
.cmdk-result.active .cmdk-result-ico{background:rgba(255,255,255,.15);border-color:transparent;color:#fff}
.cmdk-result .cmdk-label{font-size:.86rem;font-weight:500}
.cmdk-result .cmdk-sub{font-size:.7rem;color:var(--muted);margin-top:1px}
.cmdk-tag{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  color:var(--muted);background:rgba(0,0,0,.04);
  padding:1px 6px;border-radius:4px;
}
.cmdk-empty{padding:30px;text-align:center;color:var(--muted);font-size:.86rem;font-style:italic}
.cmdk-foot{
  border-top:1px solid var(--line);padding:8px 14px;
  display:flex;gap:14px;font-size:.7rem;color:var(--muted);
  background:var(--paper);
}
.cmdk-foot kbd{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  background:var(--surface);border:1px solid var(--line);
  padding:1px 5px;border-radius:3px;
}
.cmdk-trigger{
  display:flex;align-items:center;gap:6px;
  background:var(--surface);border:1px solid var(--line);
  padding:5px 9px;border-radius:6px;cursor:pointer;
  color:var(--muted);font-size:.74rem;
  transition:border .12s;
}
.cmdk-trigger:hover{border-color:var(--primary)}
.cmdk-trigger kbd{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  background:var(--paper);border:1px solid var(--line);
  padding:0 4px;border-radius:3px;
}

/* ============= SMART NUDGES ============= */
.nudge-stack{display:flex;flex-direction:column;gap:10px}
.nudge{
  background:linear-gradient(135deg,#fbf2dc 0%,var(--gold-soft) 100%);
  border:1px solid #e8d4a3;
  border-left:3px solid var(--gold);
  border-radius:8px;padding:12px 14px;
  display:flex;gap:12px;align-items:flex-start;
}
.nudge.info{
  background:linear-gradient(135deg,#e9f1f8 0%,var(--info-soft) 100%);
  border-color:#cfdef0;border-left-color:var(--info);
}
.nudge.warn{
  background:linear-gradient(135deg,#fbecd5 0%,var(--warn-soft) 100%);
  border-color:#f1d9a8;border-left-color:var(--warn);
}
.nudge .nu-ico{
  font-family:'Fraunces',serif;font-size:1.4rem;line-height:1;
  color:var(--gold);font-weight:500;flex-shrink:0;margin-top:2px;
}
.nudge.info .nu-ico{color:var(--info)}
.nudge.warn .nu-ico{color:var(--warn)}
.nudge .nu-body{flex:1;font-size:.84rem;color:var(--ink-2);line-height:1.35}
.nudge .nu-body strong{color:var(--ink);font-weight:600}
.nudge .nu-actions{display:flex;gap:6px;margin-top:8px}
.nudge .nu-btn{
  font-size:.72rem;font-weight:500;padding:4px 10px;border-radius:5px;
  border:1px solid transparent;cursor:pointer;font-family:inherit;
}
.nudge .nu-btn.primary{background:var(--gold);color:#fff}
.nudge .nu-btn.primary:hover{background:#7a5614}
.nudge.info .nu-btn.primary{background:var(--info)}
.nudge .nu-btn.ghost{background:transparent;color:var(--muted);border-color:transparent}
.nudge .nu-btn.ghost:hover{color:var(--ink)}

/* ============= GROUP HEALTH RING ============= */
.health-ring{
  width:46px;height:46px;flex-shrink:0;position:relative;
}
.health-ring svg{transform:rotate(-90deg);width:100%;height:100%}
.health-ring .hr-bg{stroke:var(--line-2)}
.health-ring .hr-fg{transition:stroke-dasharray .6s cubic-bezier(.4,0,.2,1)}
.health-ring.poor .hr-fg{stroke:var(--danger)}
.health-ring.fair .hr-fg{stroke:var(--warn)}
.health-ring.good .hr-fg{stroke:var(--primary)}
.health-ring .hr-num{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:.95rem;font-weight:600;
}
.health-ring.poor .hr-num{color:var(--danger)}
.health-ring.fair .hr-num{color:var(--warn)}
.health-ring.good .hr-num{color:var(--primary)}

.health-breakdown{display:flex;gap:3px;margin-top:6px}
.health-seg{
  flex:1;height:4px;border-radius:2px;background:var(--line-2);position:relative;overflow:hidden;
}
.health-seg .hs-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:var(--primary);transition:width .4s;
}
.health-seg.warn .hs-fill{background:var(--warn)}
.health-seg.danger .hs-fill{background:var(--danger)}
.health-legend{display:flex;gap:10px;font-size:.64rem;color:var(--muted);margin-top:4px;flex-wrap:wrap}

/* ============= NEW BOOKING WIZARD ============= */
.wizard-shell{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:flex-start}
@media (max-width:1100px){.wizard-shell{grid-template-columns:1fr}}

.wizard-main{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
}

.wizard-steps-bar{
  background:linear-gradient(90deg,var(--paper),#fbf8f2);
  padding:18px 24px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:0;flex-wrap:wrap;
}
.wstep{
  display:flex;align-items:center;gap:8px;
  flex:1;min-width:0;cursor:pointer;
  position:relative;
}
.wstep:not(:last-child)::after{
  content:"";flex:1;height:2px;background:var(--line-2);
  margin:0 8px;border-radius:1px;
}
.wstep.done::after{background:var(--gold)}
.wstep .wstep-num{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-size:.74rem;
  background:var(--line-2);color:var(--muted);font-weight:700;
  flex-shrink:0;border:2px solid transparent;
  transition:all .2s;
}
.wstep.done .wstep-num{background:var(--gold);color:#fff}
.wstep.active .wstep-num{
  background:var(--primary);color:#fff;
  border-color:#fff;
  box-shadow:0 0 0 3px var(--primary-soft);
}
.wstep .wstep-lbl{
  font-size:.76rem;color:var(--muted);font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wstep.active .wstep-lbl{color:var(--ink);font-weight:600}
.wstep.done .wstep-lbl{color:var(--ink-2)}

.wizard-body{padding:28px 32px;min-height:400px}
.wstep-eyebrow{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--gold);font-weight:600;margin-bottom:6px;
}
.wstep-title{
  font-family:'Fraunces',serif;font-size:1.95rem;font-weight:400;
  letter-spacing:-.02em;color:var(--ink);line-height:1.05;
}
.wstep-title em{font-style:italic;color:var(--primary)}
.wstep-desc{font-size:.9rem;color:var(--muted);margin-top:8px;max-width:560px;line-height:1.5}

.form-section{margin-top:24px}
.form-section-title{
  font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--ink-2);font-weight:600;margin-bottom:10px;
  display:flex;align-items:center;gap:8px;
}
.form-section-title::after{
  content:"";flex:1;height:1px;background:var(--line);
}

.form-grid{display:grid;gap:14px}
.form-grid.cols-2{grid-template-columns:1fr 1fr}
.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}
.form-grid.cols-4{grid-template-columns:1fr 1fr 1fr 1fr}
@media (max-width:760px){.form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}}

.form-group{display:flex;flex-direction:column;gap:5px}
.form-label{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);font-weight:600;
}
.form-label .req{color:var(--danger);margin-left:2px}
.form-label .hint{
  text-transform:none;letter-spacing:0;color:var(--muted);
  font-weight:400;font-size:.72rem;margin-left:6px;font-style:italic;
}

.form-input,.form-select,.form-textarea{
  width:100%;
  padding:9px 11px;border:1px solid var(--line);
  background:var(--surface);border-radius:7px;
  font-family:'DM Sans',sans-serif;font-size:.86rem;
  color:var(--ink);outline:none;transition:border .12s,background .12s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--primary);
  background:var(--paper);
}
.form-input::placeholder,.form-textarea::placeholder{color:var(--muted);font-style:italic}
.form-textarea{resize:vertical;min-height:60px;font-family:inherit}
.form-input.mono{font-family:'JetBrains Mono',monospace}

.form-helper{font-size:.7rem;color:var(--muted);margin-top:2px}
.form-warn{font-size:.74rem;color:var(--warn);margin-top:4px;display:flex;align-items:center;gap:5px}
.form-warn::before{content:"⚠"}

/* Option / radio cards */
.option-grid{display:grid;gap:10px}
.option-grid.cols-2{grid-template-columns:1fr 1fr}
.option-grid.cols-3{grid-template-columns:1fr 1fr 1fr}
.option-grid.cols-4{grid-template-columns:1fr 1fr 1fr 1fr}
@media (max-width:760px){.option-grid.cols-2,.option-grid.cols-3,.option-grid.cols-4{grid-template-columns:1fr}}

.option-card{
  background:var(--surface);
  border:1.5px solid var(--line);
  border-radius:9px;padding:14px;
  cursor:pointer;position:relative;
  transition:all .12s;
}
.option-card:hover{border-color:var(--gold);background:var(--paper)}
.option-card.active{
  border-color:var(--primary);
  background:var(--primary-soft);
  box-shadow:0 0 0 3px rgba(10,79,60,.08);
}
.option-card .opt-icon{
  font-size:1.4rem;color:var(--primary);margin-bottom:6px;
  font-family:'Fraunces',serif;font-weight:500;
}
.option-card.active .opt-icon{color:var(--primary-2)}
.option-card .opt-title{
  font-family:'Fraunces',serif;font-weight:500;font-size:1rem;
  color:var(--ink);letter-spacing:-.01em;
}
.option-card .opt-desc{font-size:.78rem;color:var(--muted);margin-top:3px;line-height:1.35}
.option-card .opt-price{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--gold);margin-top:8px;
}
.option-card .opt-price small{color:var(--muted);font-size:.72rem;font-weight:400;font-family:'DM Sans',sans-serif;font-style:italic}
.option-card .opt-check{
  position:absolute;top:10px;right:10px;
  width:18px;height:18px;border-radius:50%;
  border:1.5px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;
}
.option-card.active .opt-check{
  background:var(--primary);border-color:var(--primary);color:#fff;
  font-size:.7rem;font-weight:700;
}
.option-card.active .opt-check::after{content:"✓"}

/* Multi-select check cards */
.check-card{
  background:var(--surface);
  border:1.5px solid var(--line);
  border-radius:8px;padding:9px 12px;
  cursor:pointer;display:flex;align-items:center;gap:9px;
  font-size:.82rem;color:var(--ink-2);transition:all .12s;
}
.check-card:hover{border-color:var(--gold)}
.check-card.active{
  background:var(--gold-soft);
  border-color:var(--gold);
  color:var(--ink);
}
.check-card .cc-box{
  width:16px;height:16px;border-radius:4px;
  border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:.7rem;color:#fff;font-weight:700;
}
.check-card.active .cc-box{background:var(--gold);border-color:var(--gold)}
.check-card.active .cc-box::after{content:"✓"}

/* Pilgrim form cards */
.pilgrim-card-stack{display:flex;flex-direction:column;gap:12px}
.pilgrim-card{
  border:1px solid var(--line);
  border-radius:10px;background:var(--surface);
  overflow:hidden;
}
.pilgrim-card.error{border-color:#e8c4c0}
.pilgrim-head{
  padding:11px 14px;background:var(--paper);
  display:flex;align-items:center;gap:10px;
  border-bottom:1px solid var(--line-2);
}
.pilgrim-head .ph-num{
  width:26px;height:26px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'JetBrains Mono',monospace;font-size:.74rem;font-weight:700;
}
.pilgrim-head .ph-title{
  font-family:'Fraunces',serif;font-size:1.02rem;font-weight:500;
  color:var(--ink);flex:1;
}
.pilgrim-head .ph-title em{font-style:italic;color:var(--muted);font-weight:400;font-size:.86rem}
.pilgrim-head .ph-meta{font-size:.72rem;color:var(--muted)}
.pilgrim-head .ph-remove{
  background:transparent;border:1px solid var(--line);
  color:var(--muted);padding:3px 9px;border-radius:5px;
  font-size:.72rem;cursor:pointer;
}
.pilgrim-head .ph-remove:hover{color:var(--danger);border-color:var(--danger)}
.pilgrim-body{padding:16px}

.add-pilgrim-btn{
  border:1.5px dashed var(--line);
  background:var(--paper);
  border-radius:10px;padding:14px;text-align:center;
  cursor:pointer;color:var(--muted);
  font-size:.86rem;transition:all .12s;
}
.add-pilgrim-btn:hover{
  border-color:var(--gold);color:var(--gold);
  background:var(--gold-soft);
}
.add-pilgrim-btn .plus{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:300;
  margin-right:4px;
}

/* Upload stub */
.upload-stub{
  border:1.5px dashed var(--line);
  border-radius:8px;padding:12px;
  background:var(--paper);
  display:flex;align-items:center;gap:10px;
  cursor:pointer;transition:all .12s;
}
.upload-stub:hover{border-color:var(--primary);background:var(--primary-soft)}
.upload-stub.uploaded{
  border-style:solid;border-color:var(--primary);
  background:var(--primary-soft);
}
.upload-stub .us-icon{
  width:34px;height:34px;border-radius:7px;
  background:var(--surface);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:.8rem;font-weight:600;
}
.upload-stub.uploaded .us-icon{background:var(--primary);color:#fff;border-color:var(--primary)}
.upload-stub .us-text{flex:1;font-size:.84rem;color:var(--ink-2)}
.upload-stub .us-text strong{color:var(--ink);font-weight:500}
.upload-stub .us-meta{font-size:.7rem;color:var(--muted);margin-top:2px}

/* Wizard action bar */
.wizard-actions{
  background:var(--paper);border-top:1px solid var(--line);
  padding:14px 24px;display:flex;align-items:center;gap:12px;
  position:sticky;bottom:0;
}
.wizard-progress-text{
  font-size:.78rem;color:var(--muted);
}
.wizard-progress-text strong{color:var(--ink);font-family:'JetBrains Mono',monospace}

/* Right summary panel */
.wizard-side{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
  position:sticky;top:80px;
}
.summary-head{
  background:linear-gradient(135deg,var(--ink),#1a2520);
  color:#fff;padding:14px 18px;
}
.summary-head .sh-eyebrow{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--gold-soft);font-weight:600;
}
.summary-head .sh-title{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;
  letter-spacing:-.01em;margin-top:4px;
}
.summary-body{padding:14px 18px}
.summary-section{margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--line-2)}
.summary-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.summary-section-title{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--muted);font-weight:600;margin-bottom:6px;
}
.summary-row{
  display:flex;justify-content:space-between;align-items:flex-start;
  font-size:.8rem;padding:3px 0;gap:10px;
}
.summary-row .sr-k{color:var(--muted);font-size:.74rem}
.summary-row .sr-v{color:var(--ink);font-weight:500;text-align:right}
.summary-row .sr-v.muted{color:var(--muted);font-style:italic;font-weight:400}

.summary-total{
  background:linear-gradient(135deg,var(--gold-soft),#fbf2dc);
  margin:14px -18px -14px;padding:12px 18px;
  border-top:1px solid #e8d4a3;
}
.summary-total .stl-lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:600}
.summary-total .stl-amt{
  font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;
  color:#5d4a16;letter-spacing:-.01em;line-height:1;margin-top:3px;
}
.summary-total .stl-sub{font-size:.7rem;color:#7a5614;margin-top:2px}

/* Mahram select highlight */
.mahram-link-card{
  background:var(--violet-soft);border:1px solid #d3bfe8;
  border-radius:7px;padding:10px 12px;font-size:.82rem;
  color:var(--violet);display:flex;align-items:center;gap:10px;
  margin-top:8px;
}
.mahram-link-card .mlc-icon{
  width:26px;height:26px;border-radius:50%;
  background:var(--violet);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;flex-shrink:0;
}

/* Review confirmation cards */
.confirm-step{
  background:var(--paper);border-left:3px solid var(--primary);
  padding:8px 12px;border-radius:0 6px 6px 0;font-size:.82rem;
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
  color:var(--ink-2);
}
.confirm-step::before{
  content:"✓";color:var(--primary);font-weight:700;
}

/* ============= JOURNEY EDIT MODE ============= */
.journey-edit-toolbar{
  display:flex;align-items:center;gap:10px;
  padding:10px 22px;background:var(--paper);
  border-bottom:1px solid var(--line);
  font-size:.78rem;
}
.je-toggle-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:7px;padding:5px 11px;cursor:pointer;
  font-size:.78rem;color:var(--ink-2);font-family:inherit;
  transition:all .12s;
}
.je-toggle-btn:hover{border-color:var(--gold)}
.je-toggle-btn.on{
  background:linear-gradient(135deg,var(--gold),#b6831f);
  color:#fff;border-color:var(--gold);
  box-shadow:0 1px 3px rgba(168,122,38,.3);
}
.je-toggle-btn .je-dot{
  width:7px;height:7px;border-radius:50%;background:var(--line);
}
.je-toggle-btn.on .je-dot{background:#fff;animation:livepulse 1.5s infinite}

.je-readonly-tag{
  font-size:.7rem;color:var(--muted);font-style:italic;
  margin-left:auto;
}

/* Per-checkpoint edit row */
.jcp-edit-row{
  grid-column:2 / -1;
  display:flex;gap:5px;flex-wrap:wrap;
  margin-top:6px;padding:6px 0 4px;
  border-top:1px dashed var(--line-2);
}
.jcp-edit-btn{
  font-size:.68rem;padding:3px 9px;border-radius:5px;
  border:1px solid var(--line);background:var(--surface);
  cursor:pointer;color:var(--ink-2);font-family:inherit;
  transition:all .1s;font-weight:500;
}
.jcp-edit-btn:hover{border-color:var(--primary);color:var(--primary)}
.jcp-edit-btn.success{background:var(--primary);color:#fff;border-color:var(--primary)}
.jcp-edit-btn.success:hover{background:var(--primary-2);color:#fff}
.jcp-edit-btn.warn{background:var(--warn-soft);color:var(--warn);border-color:#f1d9a8}
.jcp-edit-btn.warn:hover{background:var(--warn);color:#fff}
.jcp-edit-btn.ghost{color:var(--muted);background:transparent}
.jcp-edit-btn.ghost:hover{color:var(--ink);border-color:var(--ink-2)}
.jcp-edit-btn .ico{font-size:.78rem;margin-right:2px}

.jcp-time-edit{
  display:flex;gap:6px;align-items:center;
  background:var(--gold-soft);padding:6px 8px;border-radius:6px;
  margin-top:4px;
}
.jcp-time-edit input{
  border:1px solid var(--line);background:var(--surface);
  padding:3px 7px;border-radius:4px;font-size:.74rem;
  font-family:'JetBrains Mono',monospace;color:var(--ink);outline:none;
}
.jcp-time-edit input:focus{border-color:var(--gold)}

.jcp.skipped{opacity:.65}
.jcp.skipped .jcp-label{text-decoration:line-through;color:var(--muted)}

/* Edit-mode highlights */
.journey-section.edit-mode .jcp{
  border-radius:6px;padding:6px 8px;
  margin-left:-8px;
  transition:background .12s;
}
.journey-section.edit-mode .jcp:hover{background:rgba(168,122,38,.05)}
.journey-section.edit-mode .jcp.active{background:rgba(168,122,38,.08)}

/* Welfare edit */
.welfare-add-form{
  background:var(--surface);border:1.5px dashed var(--line);
  border-radius:7px;padding:10px;margin-top:8px;
  display:flex;flex-direction:column;gap:7px;
}
.welfare-add-form.open{border-style:solid;border-color:var(--gold)}
.welfare-add-form select,.welfare-add-form input,.welfare-add-form textarea{
  width:100%;border:1px solid var(--line);background:var(--paper);
  padding:6px 9px;border-radius:5px;
  font-family:inherit;font-size:.78rem;color:var(--ink);outline:none;
}
.welfare-add-form select:focus,.welfare-add-form input:focus,.welfare-add-form textarea:focus{border-color:var(--gold);background:var(--surface)}
.welfare-add-form textarea{resize:vertical;min-height:46px}
.welfare-add-actions{display:flex;gap:5px;justify-content:flex-end}
.welfare-row .wf-del{
  background:transparent;border:none;color:var(--muted);
  font-size:.85rem;cursor:pointer;padding:0 2px;line-height:1;
  margin-left:auto;align-self:flex-start;
}
.welfare-row .wf-del:hover{color:var(--danger)}

/* Spiritual milestone editor */
.milestone.editable{cursor:pointer;position:relative}
.milestone.editable:hover{border-color:var(--gold);background:var(--gold-soft)}
.milestone.editable::after{
  content:"✎";position:absolute;top:3px;right:5px;
  font-size:.65rem;color:var(--gold);opacity:.6;
}
.milestone-edit-input{
  width:100%;text-align:center;border:1px solid var(--gold);
  background:var(--surface);font-family:'Fraunces',serif;
  font-size:1.35rem;color:var(--primary);font-weight:500;
  border-radius:4px;outline:none;padding:1px 0;
}

/* Location ping edit */
.loc-edit-input{
  background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.2);
  color:#fff;padding:4px 8px;border-radius:4px;
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  width:100%;outline:none;letter-spacing:-.01em;
}
.loc-edit-input:focus{border-color:#fff;background:rgba(0,0,0,.3)}
.loc-edit-row{display:flex;gap:5px;margin-top:4px}
.loc-edit-row button{
  background:rgba(255,255,255,.18);color:#fff;border:none;
  padding:3px 9px;border-radius:4px;font-size:.7rem;cursor:pointer;
  font-family:inherit;font-weight:500;
}
.loc-edit-row button.primary{background:#fff;color:var(--gold)}

.loc-tag-edit{
  cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.3);
}
.loc-tag-edit:hover{border-color:#fff}

/* Bulk advance button group */
.journey-quick-bar{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;
  padding:10px;background:var(--paper);border-radius:7px;border:1px solid var(--line);
}
.journey-quick-bar .qb-label{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;align-self:center;margin-right:4px;
}

/* ============= UTILITIES (preserved) ============= */
.divider{height:1px;background:var(--line-2);margin:14px 0}
.spacer{height:14px}
.text-muted{color:var(--muted)}
.text-mono{font-family:'JetBrains Mono',monospace}
.row{display:flex;align-items:center;gap:8px}

/* ============= LIVE JOURNEY TRACKER ============= */
.journey-section{
  background:linear-gradient(135deg,#fbf8f2 0%,#f6f2ea 100%);
  border:1px solid var(--line);
  border-radius:12px;
  margin-bottom:18px;
  overflow:hidden;
}
.journey-banner{
  background:linear-gradient(90deg,var(--gold) 0%,#b6831f 60%,#7a5614 100%);
  color:#fff;
  padding:14px 22px;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:14px;
  position:relative;overflow:hidden;
}
.journey-banner::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 80% 50%,rgba(255,255,255,.18),transparent 50%);
  pointer-events:none;
}
.journey-banner-l{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.live-pulse{
  width:10px;height:10px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,.7);
  animation:livepulse 1.5s infinite;flex-shrink:0;
}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%{box-shadow:0 0 0 8px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.journey-banner .live-tag{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;
  background:rgba(255,255,255,.2);padding:2px 8px;border-radius:4px;font-weight:600;
}
.journey-banner .loc{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;letter-spacing:-.01em;line-height:1.1}
.journey-banner .last-ping{font-size:.74rem;opacity:.88;margin-top:3px}
.journey-banner-r{display:flex;gap:22px;position:relative;z-index:1}
.journey-banner-r .stat-box{text-align:right}
.journey-banner-r .stat-box .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;opacity:.85;font-weight:600}
.journey-banner-r .stat-box .val{font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;line-height:1;margin-top:2px}

.journey-body{display:grid;grid-template-columns:1.35fr 1fr;gap:0}
.journey-timeline{padding:18px 22px;border-right:1px solid var(--line);max-height:560px;overflow-y:auto}
.journey-timeline::-webkit-scrollbar{width:5px}
.journey-timeline::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.journey-side{padding:18px 22px}

.jph-title{
  font-family:'Fraunces',serif;
  font-size:.72rem;
  text-transform:uppercase;letter-spacing:.16em;
  color:var(--primary);font-weight:600;
  margin:18px 0 10px;
  display:flex;align-items:center;gap:10px;
}
.jph-title:first-child{margin-top:0}
.jph-title::after{content:"";flex:1;height:1px;background:var(--line)}
.jph-title.done{color:var(--muted)}
.jph-title.done::after{background:var(--line-2)}

.jcp{
  display:grid;grid-template-columns:24px 1fr auto;gap:10px;
  padding:6px 0;align-items:flex-start;
  position:relative;
}
.jcp::before{
  content:"";position:absolute;left:11px;top:24px;bottom:-6px;
  width:2px;background:var(--line-2);
}
.jcp:last-of-type::before{display:none}
.jcp.done::before{background:var(--primary)}
.jcp-ico{
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:700;flex-shrink:0;margin-top:1px;
  z-index:1;position:relative;
}
.jcp.done .jcp-ico{background:var(--primary);color:#fff}
.jcp.active .jcp-ico{
  background:var(--gold);color:#fff;
  box-shadow:0 0 0 4px rgba(168,122,38,.18);
  animation:pulse 1.6s infinite;
}
.jcp.upcoming .jcp-ico{background:var(--line-2);color:var(--muted);border:1px dashed var(--muted)}
.jcp.skipped .jcp-ico{background:var(--grey-soft);color:var(--muted);text-decoration:line-through}
.jcp-body .jcp-label{font-size:.84rem;color:var(--ink);font-weight:500;line-height:1.25}
.jcp.upcoming .jcp-body .jcp-label{color:var(--muted);font-weight:400}
.jcp-body .jcp-loc{font-size:.7rem;color:var(--muted);margin-top:2px}
.jcp-time{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);text-align:right;white-space:nowrap;margin-top:2px}
.jcp.active .jcp-time{color:var(--gold);font-weight:700}
.jcp-spiritual{
  display:inline-flex;align-items:center;gap:3px;
  background:var(--gold-soft);color:var(--gold);
  font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;
  padding:1px 6px;border-radius:4px;margin-left:6px;font-weight:600;vertical-align:1px;
}
.jcp-optional{
  font-size:.6rem;color:var(--muted);font-weight:500;
  background:var(--grey-soft);padding:1px 5px;border-radius:3px;margin-left:6px;
}

/* Side panel sections */
.side-block{margin-bottom:18px}
.side-block:last-child{margin-bottom:0}
.side-block .sb-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--muted);font-weight:600;margin-bottom:8px;
  display:flex;align-items:center;justify-content:space-between;
}
.side-block .sb-title .sb-link{color:var(--primary);font-size:.7rem;font-weight:500;cursor:pointer;text-transform:none;letter-spacing:0}

/* Spiritual milestone tiles */
.milestone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.milestone{
  background:var(--surface);border:1px solid var(--line);
  border-radius:7px;padding:8px 6px;text-align:center;
}
.milestone .mlbl{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
.milestone .mval{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:500;color:var(--primary);line-height:1;margin-top:3px}
.milestone .msub{font-size:.66rem;color:var(--muted);margin-top:2px}
.milestone.gold .mval{color:var(--gold)}

/* Meal grid */
.meal-grid{
  display:grid;
  grid-template-columns:54px repeat(4,1fr);
  gap:3px;font-size:.7rem;
}
.meal-grid .mh{
  font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;text-align:center;padding:4px 0;
}
.meal-grid .day-lbl{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  color:var(--muted);padding:5px 0;text-align:right;padding-right:4px;
  display:flex;align-items:center;justify-content:flex-end;
}
.meal-grid .day-lbl.today{color:var(--gold);font-weight:700}
.meal-cell{
  height:22px;border-radius:4px;
  display:flex;align-items:center;justify-content:center;
  font-size:.6rem;font-weight:700;cursor:pointer;
  transition:transform .1s;
}
.meal-cell:hover{transform:scale(1.08)}
.meal-cell.served{background:var(--primary-soft);color:var(--primary)}
.meal-cell.skipped{background:var(--grey-soft);color:var(--muted)}
.meal-cell.upcoming{background:#f4eedc;color:#a8916a}
.meal-cell.missed{background:var(--danger-soft);color:var(--danger)}
.meal-cell.active{
  background:var(--gold-soft);color:var(--gold);
  box-shadow:0 0 0 2px var(--gold) inset;
  animation:pulse 1.8s infinite;
}
.meal-cell.na{background:transparent;color:var(--line);font-weight:400}

.meal-legend{display:flex;gap:8px;font-size:.66rem;color:var(--muted);margin-top:8px;flex-wrap:wrap}
.meal-legend span{display:flex;align-items:center;gap:4px}
.meal-legend .sw{width:9px;height:9px;border-radius:2px;display:inline-block}

/* Welfare log */
.welfare-list{display:flex;flex-direction:column;gap:6px}
.welfare-row{
  background:var(--surface);border:1px solid var(--line);
  border-radius:6px;padding:8px 10px;font-size:.78rem;
  display:flex;gap:10px;
}
.welfare-row .wf-date{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  color:var(--muted);min-width:54px;flex-shrink:0;padding-top:2px;
}
.welfare-row .wf-msg{color:var(--ink-2);line-height:1.35;flex:1;font-size:.76rem}
.welfare-row .wf-msg strong{color:var(--ink);font-weight:500}
.welfare-row.medical{background:var(--danger-soft);border-color:#f0c4c0}
.welfare-row.spiritual{background:var(--gold-soft);border-color:#e8d4a3}
.welfare-row.note{background:var(--paper)}

/* Buddy ping bar */
.buddy-bar{
  display:flex;align-items:center;gap:10px;
  background:var(--primary-soft);border:1px solid #c2dccf;
  border-radius:7px;padding:7px 10px;font-size:.76rem;color:var(--primary);
}
.buddy-bar strong{color:var(--ink)}

/* Live travel page */
.live-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:14px 16px;margin-bottom:10px;
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;cursor:pointer;
}
.live-card:hover{border-color:var(--gold)}
.live-card .lc-loc{font-size:.74rem;color:var(--muted);margin-top:2px}
.live-card .lc-checkpoint{
  font-family:'Fraunces',serif;font-style:italic;font-size:.95rem;
  color:var(--primary);margin-top:3px;
}

/* ============= MOBILE DRAWER + RESPONSIVE NAVIGATION ============= */
.hamburger-btn{
  display:none;
  width:38px;height:38px;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:8px;
  align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink);
  flex-shrink:0;transition:all .12s;
  position:relative;padding:0;
}
.hamburger-btn:hover{background:var(--primary-soft);border-color:var(--primary)}
.hamburger-btn .ham-lines{
  display:flex;flex-direction:column;gap:3px;align-items:center;
}
.hamburger-btn .ham-lines span{
  width:16px;height:2px;background:currentColor;border-radius:1px;
  transition:transform .2s,opacity .2s;
}
.hamburger-btn.open .ham-lines span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.hamburger-btn.open .ham-lines span:nth-child(2){opacity:0}
.hamburger-btn.open .ham-lines span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.hamburger-btn .ham-badge{
  position:absolute;top:-3px;right:-3px;
  background:var(--gold);color:#fff;
  width:14px;height:14px;border-radius:50%;
  font-size:.58rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--paper);
}

.sidebar-backdrop{
  position:fixed;inset:0;
  background:rgba(15,26,23,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  z-index:240;
  opacity:0;pointer-events:none;
  transition:opacity .25s;
}
.sidebar-backdrop.show{opacity:1;pointer-events:auto}

.topbar-brand{
  display:none;
  align-items:center;gap:6px;
  font-family:'Fraunces',serif;
  font-size:1.05rem;font-weight:500;color:var(--ink);
  letter-spacing:-.015em;flex-shrink:0;
}
.topbar-brand em{font-style:italic;color:var(--gold);font-weight:400}

body.no-scroll{overflow:hidden}

@media (max-width:1100px){
  .app{grid-template-columns:1fr}
  aside{
    position:fixed;
    left:0;top:0;bottom:0;
    width:min(290px,86vw);
    height:100vh;
    transform:translateX(-100%);
    transition:transform .26s cubic-bezier(.4,0,.2,1);
    z-index:250;
    box-shadow:none;
  }
  aside.mobile-open{
    transform:translateX(0);
    box-shadow:0 12px 50px rgba(0,0,0,.5);
  }
  .hamburger-btn{display:inline-flex}
  .topbar-brand{display:flex}

  /* Topbar reflows */
  .topbar{padding:10px 14px;gap:8px;flex-wrap:wrap}
  .topbar .search{order:5;flex:1 1 100%;max-width:none}
  .topbar .alert-pills{order:4;flex-wrap:wrap;gap:5px;margin-left:0}
  .topbar .cmdk-trigger{margin-left:auto}

  /* Layout grids collapse */
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .dash-grid,.dash-grid-3,.fin-grid{grid-template-columns:1fr}
  .detail-grid,.detail-grid-3{grid-template-columns:1fr}
  .hotel-grid{grid-template-columns:1fr}
  .journey-body{grid-template-columns:1fr}
  .journey-timeline{border-right:none;border-bottom:1px solid var(--line);max-height:none}
  .wizard-shell{grid-template-columns:1fr}
  .wizard-side{position:static}
  .form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}

  .content{padding:18px 14px}
}

@media (max-width:780px){
  .topbar{padding:9px 12px}
  .topbar .alert-pills{display:none} /* freed up — accessible via dashboard inbox */
  .topbar .cmdk-trigger span{display:none}
  .topbar .cmdk-trigger{padding:6px 8px}
  .topbar .icon-btn{width:36px;height:36px}
  .content{padding:14px 12px}

  .page-header{flex-direction:column;align-items:flex-start;gap:12px}
  .page-actions{width:100%;flex-wrap:wrap}
  .page-actions .btn{flex:1;min-width:120px;justify-content:center}
  .page-title{font-size:1.6rem !important}

  /* Tables get horizontal scroll */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.crm{min-width:680px}

  /* Wizard mobile */
  .wizard-body{padding:18px 16px}
  .wizard-steps-bar{padding:12px 14px;gap:0;overflow-x:auto;flex-wrap:nowrap}
  .wstep .wstep-lbl{display:none}
  .wstep:not(:last-child)::after{margin:0 4px}
  .wizard-actions{padding:12px 14px;flex-wrap:wrap;gap:8px}

  .option-grid.cols-2,.option-grid.cols-3,.option-grid.cols-4{grid-template-columns:1fr 1fr}

  /* Pilgrim detail header stacks */
  .detail-header{padding:18px}
  .detail-header-row{flex-direction:column;gap:14px}
  .detail-actions{margin-left:0;align-items:flex-start;width:100%}
  .stage-track{overflow-x:auto;padding:8px}
  .stage-step{min-width:60px}
  .stage-step .stage-lbl{font-size:.58rem}
  .stage-step::before{display:none}

  /* Journey banner */
  .journey-banner{padding:12px 14px;gap:10px;flex-direction:column;align-items:flex-start}
  .journey-banner-r{gap:10px;width:100%;justify-content:space-between}
  .journey-banner-r .stat-box .val{font-size:1.05rem}

  /* Bulk bar fits */
  .bulk-bar-float{
    left:8px;right:8px;bottom:8px;
    transform:translateY(140%);
    flex-wrap:wrap;justify-content:center;
    padding:8px 10px;gap:6px;font-size:.78rem;
  }
  .bulk-bar-float.show{transform:translateY(0)}
  .bulk-bar-float button{font-size:.74rem;padding:5px 9px}

  /* Cmd+K modal full-bleed */
  .cmdk-overlay{padding-top:8vh}
  .cmdk-modal{width:96vw;border-radius:10px}
  .cmdk-input-row{padding:12px 14px}
  .cmdk-input{font-size:1rem}
  .cmdk-foot{flex-wrap:wrap;gap:8px}

  /* Departure bars stack */
  .depbar{flex-wrap:wrap;gap:10px;padding:14px}
  .depbar .dep-date{border-right:none;padding-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-bottom:8px;width:100%;flex-direction:row;justify-content:flex-start;gap:10px;font-size:1.1rem}
  .depbar .dep-stats{flex:1 1 100%;justify-content:space-around;margin-right:0}

  /* Inbox & nudges padded right less */
  .inbox-task{grid-template-columns:auto 1fr;gap:10px;padding:10px 14px}
  .inbox-task .task-action{grid-column:2;justify-self:end;margin-top:6px}
  .autopilot-row{padding:10px 14px;flex-wrap:wrap}

  /* Live travel cards */
  .live-card{grid-template-columns:auto 1fr;gap:10px;padding:12px}
  .live-card > div:last-child{grid-column:2;text-align:left;display:flex;gap:10px;align-items:center}

  /* Smart pills */
  .smart-pills{padding-bottom:6px}
  .smart-pill{font-size:.7rem}

  /* Filter bar scrolls */
  .filter-bar{flex-wrap:nowrap;overflow-x:auto;padding:8px;-webkit-overflow-scrolling:touch}
  .filter-chip{flex-shrink:0;font-size:.72rem;padding:4px 9px}
}

@media (max-width:480px){
  .kpi-grid{grid-template-columns:1fr}
  .option-grid.cols-2,.option-grid.cols-3,.option-grid.cols-4{grid-template-columns:1fr}
  .topbar-brand{font-size:.95rem}
  .alert-pill strong{font-size:.78rem}
  .nudge{flex-direction:column;gap:8px}
  .check-card{font-size:.78rem;padding:7px 10px}
  .pilgrim-head{flex-wrap:wrap;gap:6px}
  .pilgrim-body{padding:12px}
}


/* ============= BOOKING CARDS (booking-record-centric) ============= */
.booking-stack{display:flex;flex-direction:column;gap:10px}
.booking-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:0;
  display:grid;grid-template-columns:auto 1fr 280px;gap:0;
  cursor:pointer;transition:border-color .12s,transform .1s;
  overflow:hidden;
}
.booking-card:hover{border-color:var(--gold);transform:translateY(-1px);box-shadow:0 4px 14px rgba(168,122,38,.08)}
.booking-card-l{
  display:flex;align-items:center;gap:14px;
  padding:16px 18px;background:var(--paper);
  border-right:1px solid var(--line);
  min-width:160px;
}
.bk-cb{padding:4px;cursor:pointer}
.bk-id{
  font-family:'JetBrains Mono',monospace;font-size:.86rem;
  color:var(--ink);font-weight:600;letter-spacing:0;
}
.bk-stage{margin-top:5px}
.booking-card-m{padding:16px 18px;min-width:0}
.bk-primary{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1.2;
}
.bk-extras{
  font-family:'DM Sans',sans-serif;font-style:italic;
  font-size:.78rem;color:var(--gold);font-weight:500;margin-left:6px;
}
.bk-pax{
  font-size:.78rem;color:var(--muted);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bk-meta{
  font-size:.74rem;color:var(--muted);margin-top:8px;
  display:flex;flex-wrap:wrap;gap:0;
}
.bk-meta strong{color:var(--ink-2);font-weight:500}
.booking-card-r{
  padding:16px 18px;background:linear-gradient(135deg,var(--paper) 0%,var(--surface) 100%);
  border-left:1px solid var(--line-2);
  display:flex;flex-direction:column;justify-content:center;gap:6px;
}
.bk-amount-row{display:flex;justify-content:space-between;gap:12px}
.bk-amount-row > div{flex:1}
.bk-lbl{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;
}
.bk-amt{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--ink);line-height:1.1;margin-top:2px;
}
.bk-amt.ok{color:var(--primary)}
.bk-amt.warn{color:var(--warn)}
.bk-amt.danger{color:var(--danger)}
.bk-progress{display:flex;align-items:center;gap:6px;margin-top:4px}
.bk-progress .bar{flex:1;height:5px;background:var(--line-2);border-radius:3px;overflow:hidden}
.bk-progress .fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}
.bk-progress .fill.warn{background:var(--warn)}
.bk-progress .fill.danger{background:var(--danger)}
.bk-progress .pct{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);min-width:32px;text-align:right}
.bk-source{font-size:.7rem;color:var(--muted);font-style:italic;margin-top:2px}

@media (max-width:780px){
  .booking-card{grid-template-columns:1fr}
  .booking-card-l{border-right:none;border-bottom:1px solid var(--line)}
  .booking-card-r{border-left:none;border-top:1px solid var(--line-2)}
}

/* ============= TRAVELER PROFILE CARDS ============= */
.profile-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(360px,1fr));
  gap:14px;
}
.profile-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;overflow:hidden;
  transition:border-color .12s,transform .1s;
  position:relative;
}
.profile-card:hover{border-color:var(--gold);transform:translateY(-1px)}
.profile-card.row-selected{border-color:var(--gold);background:var(--gold-soft)}
.pc-cb{
  position:absolute;top:10px;left:10px;z-index:2;
  padding:4px;cursor:pointer;
}
.profile-head{
  padding:14px 16px 12px 38px;
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,var(--paper),var(--surface));
  border-bottom:1px solid var(--line-2);cursor:pointer;
}
.pc-avatar{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,#cfd9d3,#a8b6ae);
  color:#1a2520;font-weight:600;font-size:1rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:'Fraunces',serif;
}
.pc-name{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1.15;
}
.pc-meta{font-size:.74rem;color:var(--muted);margin-top:2px}
.pc-tier{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;
  font-weight:700;padding:3px 9px;border-radius:14px;flex-shrink:0;
}
.profile-body{padding:14px 16px;cursor:pointer}
.pc-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.pc-stat{text-align:center}
.pc-stat-lbl{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;
}
.pc-stat-val{
  font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;
  color:var(--ink);letter-spacing:-.015em;line-height:1;margin-top:3px;
}
.pc-stat-val small{font-size:.68rem;color:var(--muted);font-weight:400}
.pc-stat-val.pc-status{font-size:.78rem}
.pc-stat-sub{font-size:.66rem;color:var(--muted);margin-top:2px}
.pc-divider{height:1px;background:var(--line-2);margin:12px 0}
.pc-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.pc-detail{display:flex;justify-content:space-between;font-size:.78rem;gap:8px}
.pc-detail .k{color:var(--muted);font-size:.72rem}
.pc-detail .v{color:var(--ink);font-weight:500;text-align:right}
.pc-detail .v.mono{font-family:'JetBrains Mono',monospace;font-size:.74rem;font-weight:400}
.pc-family{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-2)}
.pc-family-lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin-bottom:6px}
.pc-family-pills{display:flex;flex-wrap:wrap;gap:5px}
.pc-family-pill{
  font-size:.72rem;padding:3px 8px;border-radius:5px;
  background:var(--violet-soft);color:var(--violet);
  cursor:pointer;font-weight:500;
}
.pc-family-pill:hover{background:var(--violet);color:#fff}
.pc-special{
  margin-top:10px;font-size:.74rem;color:var(--warn);
  background:var(--warn-soft);padding:5px 9px;border-radius:5px;
}

/* ============= FLIGHT DETAIL CARDS ============= */
.flight-stack{display:flex;flex-direction:column;gap:14px}
.flight-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
}
.flight-card-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;
  align-items:center;padding:18px 22px;
  background:linear-gradient(135deg,var(--paper),var(--surface));
  border-bottom:1px solid var(--line);
}
.flight-airline{display:flex;flex-direction:column;gap:4px}
.flight-code{
  font-family:'JetBrains Mono',monospace;font-size:1.35rem;
  font-weight:700;color:var(--primary);letter-spacing:0;
}
.flight-airline-name{
  font-size:.78rem;color:var(--muted);font-weight:500;
}
.flight-route{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center}
.airport-block{text-align:center}
.airport-block:last-child{text-align:center}
.ap-code{
  font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;
  color:var(--ink);letter-spacing:-.015em;line-height:1;
}
.ap-time{
  font-family:'JetBrains Mono',monospace;font-size:1.05rem;
  color:var(--gold);font-weight:600;margin-top:3px;
}
.ap-name{font-size:.8rem;color:var(--ink-2);margin-top:3px;font-weight:500}
.ap-meta{font-size:.68rem;color:var(--muted);margin-top:1px}
.route-line{
  display:flex;flex-direction:column;align-items:center;
  position:relative;min-width:120px;
}
.rl-bar{
  width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);
  position:relative;
}
.rl-icon{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:var(--surface);padding:2px 6px;color:var(--gold);
  font-size:1rem;
}
.rl-meta{font-size:.7rem;color:var(--muted);margin-top:8px;font-style:italic}
.flight-status{text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.flight-status-meta{font-size:.7rem;color:var(--muted)}

.flight-card-meta{
  padding:14px 22px;border-bottom:1px solid var(--line-2);
  display:grid;grid-template-columns:repeat(5,1fr);gap:14px;
  background:var(--paper);
}
.fcm-item{display:flex;flex-direction:column;gap:2px}
.fcm-item .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.fcm-item .val{font-size:.78rem;color:var(--ink);font-weight:500;line-height:1.3}
@media (max-width:1100px){.flight-card-meta{grid-template-columns:1fr 1fr}}
@media (max-width:780px){.flight-card-meta{grid-template-columns:1fr}.flight-route{grid-template-columns:1fr}.route-line{display:none}.airport-block{text-align:left}}

.flight-note{
  padding:9px 22px;background:var(--info-soft);color:var(--info);
  font-size:.78rem;border-bottom:1px solid var(--line-2);
}

.flight-manifest{padding:0}
.manifest-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 22px;border-bottom:1px solid var(--line-2);
  background:var(--paper);flex-wrap:wrap;gap:8px;
}
.manifest-title{font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:var(--ink)}
.manifest-actions{display:flex;gap:6px;flex-wrap:wrap}

/* ============= HOTEL DETAIL CARDS ============= */
.hotel-stack{display:flex;flex-direction:column;gap:18px}
.hotel-detail-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
}
.hotel-detail-head{
  display:grid;grid-template-columns:1fr auto;gap:18px;
  padding:20px 24px;
  background:linear-gradient(135deg,var(--primary) 0%,#073525 100%);
  color:#fff;
}
.hd-l{flex:1}
.hd-city{
  font-family:'Fraunces',serif;font-style:italic;font-size:.95rem;
  font-weight:300;color:var(--gold-soft);letter-spacing:.04em;
}
.hd-name{
  font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;
  color:#fff;letter-spacing:-.018em;line-height:1.05;margin-top:2px;
}
.hd-stars{font-size:.78rem;color:#a4c4b8;margin-top:6px;letter-spacing:.04em}
.hd-address{font-size:.78rem;color:#bbd0c8;margin-top:8px;line-height:1.4}
.hd-contact{font-size:.74rem;color:#a4c4b8;margin-top:4px;font-family:'DM Sans',sans-serif}

.hd-r{display:flex;align-items:center}
.hd-cap{
  background:rgba(168,122,38,.18);border:1px solid rgba(168,122,38,.4);
  padding:12px 18px;border-radius:9px;text-align:center;
}
.hd-cap-num{
  font-family:'Fraunces',serif;font-size:2.2rem;font-weight:500;
  color:var(--gold-soft);letter-spacing:-.015em;line-height:1;
}
.hd-cap-num small{font-size:1rem;color:#bbd0c8;font-weight:400}
.hd-cap-lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.13em;color:#a4c4b8;margin-top:4px;font-weight:600}

.hotel-detail-meta{
  padding:14px 24px;border-bottom:1px solid var(--line-2);
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.hdm-item .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.hdm-item .val{font-size:.86rem;color:var(--ink);font-weight:500;margin-top:2px}

.hotel-amenities{
  padding:14px 24px;border-bottom:1px solid var(--line-2);
  display:flex;flex-wrap:wrap;gap:5px;
}
.amenity-pill{
  background:var(--primary-soft);color:var(--primary);
  padding:3px 9px;border-radius:11px;
  font-size:.72rem;font-weight:500;
}

.hotel-room-types{padding:16px 24px;border-bottom:1px solid var(--line-2);background:var(--paper)}
.hrt-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--ink-2);font-weight:600;margin-bottom:10px;
}
.hrt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.hrt-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:8px;padding:10px 12px;
}
.hrt-name{font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:var(--ink)}
.hrt-cap{font-size:.7rem;color:var(--muted);margin-top:1px}
.hrt-rate{
  font-family:'Fraunces',serif;font-size:1.2rem;color:var(--gold);
  font-weight:500;margin-top:6px;letter-spacing:-.01em;
}
.hrt-rate small{font-size:.7rem;color:var(--muted);font-weight:400;font-family:'DM Sans',sans-serif}

.hotel-rooms-section{padding:18px 24px}
.hrs-title{
  display:flex;justify-content:space-between;align-items:center;
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;
  color:var(--ink);margin-bottom:14px;flex-wrap:wrap;gap:8px;
}
.hrs-actions{display:flex;gap:6px;flex-wrap:wrap}

.room-detail-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:12px;
}
.room-detail-card{
  background:var(--paper);border:1px solid var(--line);
  border-radius:9px;overflow:hidden;
}
.rd-head{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;border-bottom:1px solid var(--line-2);
  background:var(--surface);
}
.rd-num{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--ink);background:var(--gold-soft);
  padding:3px 10px;border-radius:6px;letter-spacing:-.01em;
}
.rd-info{flex:1}
.rd-sharing{font-size:.82rem;color:var(--ink);font-weight:500}
.rd-rate{font-size:.7rem;color:var(--muted);margin-top:1px}
.rd-actions{display:flex;gap:5px}

.rd-occupants{padding:10px 14px;display:flex;flex-direction:column;gap:6px}
.rd-occupant{
  display:flex;align-items:center;gap:10px;
  padding:7px 9px;background:var(--surface);
  border:1px solid var(--line-2);border-radius:6px;
  cursor:pointer;transition:border-color .12s;
}
.rd-occupant:hover{border-color:var(--primary)}
.rd-occupant .av{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#cfd9d3,#a8b6ae);
  color:#1a2520;font-size:.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;
}
.rdo-body{flex:1;min-width:0}
.rdo-name{font-size:.84rem;color:var(--ink);font-weight:500;line-height:1.1}
.rdo-meta{font-size:.7rem;color:var(--muted);margin-top:1px}
.rdo-move{flex-shrink:0}

.rd-request{
  padding:8px 14px;background:var(--warn-soft);
  font-size:.74rem;color:var(--warn);
  border-top:1px solid var(--line-2);
}
.rd-foot{
  padding:8px 14px;border-top:1px solid var(--line-2);
  display:flex;gap:5px;background:var(--surface);
}

/* ============= GENERIC MODAL ============= */
.generic-modal-overlay{
  position:fixed;inset:0;background:rgba(15,26,23,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  z-index:280;
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:8vh;padding-left:10px;padding-right:10px;
  animation:fadeIn .15s ease-out;
}
.generic-modal{
  width:min(620px,96vw);
  background:var(--paper);border-radius:12px;
  box-shadow:0 26px 70px rgba(0,0,0,.4);
  overflow:hidden;border:1px solid var(--line);
  display:flex;flex-direction:column;max-height:85vh;
}
.gm-head{
  background:linear-gradient(135deg,var(--ink),#1a2520);
  color:#fff;padding:14px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.gm-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;letter-spacing:-.01em}
.gm-close{
  background:transparent;border:none;color:#a4c4b8;
  font-size:1.5rem;cursor:pointer;line-height:1;
  padding:0 6px;border-radius:5px;transition:all .12s;
}
.gm-close:hover{background:rgba(255,255,255,.1);color:#fff}
.gm-body{padding:20px;overflow-y:auto;flex:1}
.gm-foot{
  padding:12px 20px;border-top:1px solid var(--line);
  background:var(--paper);display:flex;justify-content:flex-end;gap:8px;
}


/* ============= LIST-CARD PATTERN (List → Detail navigation) ============= */
.list-stack{display:flex;flex-direction:column;gap:8px}
.list-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;
  display:grid;grid-template-columns:auto 1fr 1.4fr 1fr auto auto;
  gap:18px;align-items:center;
  padding:14px 18px;cursor:pointer;
  transition:border-color .12s,transform .1s,box-shadow .12s;
}
.list-card:hover{
  border-color:var(--gold);
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(168,122,38,.08);
}

/* Flight list-card columns */
.list-card-flight{grid-template-columns:auto auto 1.3fr auto auto auto}
.list-card-bus{grid-template-columns:auto 1fr 1fr auto auto auto}
.list-card-hotel{grid-template-columns:auto 1fr 1fr auto auto}

.lc-l{display:flex;flex-direction:column;gap:3px;min-width:90px}
.lc-id{
  font-family:'JetBrains Mono',monospace;font-size:1rem;
  font-weight:700;color:var(--ink);letter-spacing:0;
}
.lc-id-sub{font-size:.7rem;color:var(--muted);font-weight:500}

/* Flight route mini */
.lc-route-mini{display:flex;flex-direction:column;gap:2px;min-width:130px;border-left:1px solid var(--line-2);padding-left:14px}
.lc-rmcodes{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}
.lc-rmcodes strong{color:var(--ink)}
.lc-arr{color:var(--gold);margin:0 4px;font-size:.85rem}
.lc-rmtimes{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--muted)}

/* Mid info column */
.lc-mid{display:flex;flex-direction:column;gap:2px;min-width:0}
.lc-mid-1{font-size:.84rem;color:var(--ink);font-weight:500}
.lc-mid-2{font-size:.74rem;color:var(--muted)}
.lc-mid-3{font-size:.7rem;color:var(--muted);font-style:italic}

/* Mid info column 2 (kv-list inline) */
.lc-mid-2{display:flex;flex-direction:column;gap:2px;font-size:.74rem}
.lc-meta-row{display:flex;justify-content:space-between;gap:10px;font-size:.74rem}
.lc-meta-row .k{color:var(--muted);font-size:.68rem}
.lc-meta-row .v{color:var(--ink);font-weight:500;text-align:right}

/* Hotel-specific */
.lc-city-tag{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--gold);font-weight:700;background:var(--gold-soft);
  padding:2px 7px;border-radius:4px;display:inline-block;
}
.lc-stars{color:var(--gold);font-size:.78rem;margin-top:3px}
.lc-h-name{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1.2;
}
.lc-h-dist{font-size:.74rem;color:var(--ink-2);margin-top:2px}
.lc-h-addr{font-size:.7rem;color:var(--muted);margin-top:2px}

/* Bus-specific */
.lc-bus-type{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}
.lc-bus-vendor{font-size:.74rem;color:var(--muted);margin-top:1px}
.lc-bus-driver{font-size:.74rem;color:var(--ink-2);margin-top:3px}
.lc-bus-driver strong{color:var(--ink)}

/* Right-side stat column */
.lc-stat{text-align:right;min-width:90px}
.lc-stat-num{
  font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;
  color:var(--ink);letter-spacing:-.015em;line-height:1;
}
.lc-stat-num small{font-size:.7rem;color:var(--muted);font-weight:400}
.lc-stat-lbl{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin-top:2px}
.lc-stat-sub{font-size:.66rem;color:var(--muted);margin-top:2px}

.lc-mini-bar{
  width:60px;height:4px;background:var(--line-2);border-radius:2px;
  margin:5px 0 0 auto;overflow:hidden;
}
.lc-mini-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s}

.lc-status{min-width:100px;text-align:right}

.lc-arrow{
  color:var(--muted);font-size:1.05rem;
  transition:color .12s,transform .12s;
}
.list-card:hover .lc-arrow{color:var(--gold);transform:translateX(2px)}

@media (max-width:1100px){
  .list-card,.list-card-flight,.list-card-hotel,.list-card-bus{
    grid-template-columns:1fr 1fr;gap:10px;padding:12px 14px;
  }
  .lc-route-mini{border-left:none;padding-left:0}
  .lc-arrow{display:none}
  .lc-status{text-align:left}
}

/* ============= BUS DETAIL CARD ============= */
.bus-detail-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
}
.bus-head{
  background:linear-gradient(135deg,var(--ink) 0%,#1a2520 100%);
  color:#fff;padding:20px 24px;
  display:grid;grid-template-columns:1fr auto;gap:18px;
}
.bh-vehicle-tag{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--gold-soft);font-weight:700;
}
.bh-id{
  font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;
  color:#fff;letter-spacing:-.018em;margin-top:2px;line-height:1;
}
.bh-type{font-size:.95rem;color:#a4c4b8;margin-top:6px}
.bh-meta{font-size:.78rem;color:#8eaaa0;margin-top:4px}
.bh-vendor{font-size:.78rem;color:#a4c4b8;margin-top:8px}
.bh-vendor strong{color:#fff;font-weight:500}
.bh-r{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.bh-stat{text-align:right}
.bh-stat-num{
  font-family:'Fraunces',serif;font-size:1.8rem;font-weight:500;
  color:var(--gold-soft);letter-spacing:-.015em;line-height:1;
}
.bh-stat-num small{font-size:.85rem;color:#a4c4b8;font-weight:400}
.bh-stat-lbl{font-size:.7rem;color:#a4c4b8;margin-top:2px;text-transform:uppercase;letter-spacing:.1em}

.bus-body{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
}
.bus-driver-card,.bus-equipment-card{padding:18px 22px}
.bus-driver-card{border-right:1px solid var(--line-2)}
.bdc-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;margin-bottom:10px;
}
.bdc-name{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;
  color:var(--ink);letter-spacing:-.015em;line-height:1.1;
}
.bdc-rating{color:var(--gold);font-size:.86rem;margin-top:3px;letter-spacing:.04em}
.bdc-info{margin-top:14px;display:flex;flex-direction:column;gap:5px}
.bdc-row{display:flex;justify-content:space-between;font-size:.82rem;gap:8px}
.bdc-row .k{color:var(--muted);font-size:.74rem}
.bdc-row .v{color:var(--ink);font-weight:500;text-align:right}
.bdc-row .v.text-mono{font-family:'JetBrains Mono',monospace;font-size:.8rem;font-weight:400}
.bdc-empty{
  background:var(--warn-soft);border:1px solid #f1d9a8;
  border-radius:7px;padding:14px;
}
.bus-equip-pills{display:flex;flex-wrap:wrap;gap:5px}

@media (max-width:880px){.bus-body{grid-template-columns:1fr}.bus-driver-card{border-right:none;border-bottom:1px solid var(--line-2)}}

/* Bus schedule list */
.bus-schedule{display:flex;flex-direction:column;gap:0}
.bus-sched-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;
  padding:9px 0;align-items:center;
  border-bottom:1px dashed var(--line-2);
}
.bus-sched-row:last-child{border-bottom:none}
.bsr-icon{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:700;
}
.bus-sched-row.done .bsr-icon{background:var(--primary);color:#fff}
.bus-sched-row.active .bsr-icon{background:var(--gold);color:#fff;animation:pulse 1.6s infinite}
.bus-sched-row.upcoming .bsr-icon{background:var(--line-2);color:var(--muted);border:1px dashed var(--muted)}
.bsr-loc{font-size:.86rem;color:var(--ink);font-weight:500;line-height:1.2}
.bus-sched-row.done .bsr-loc{color:var(--ink-2)}
.bsr-time{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);margin-top:2px}
.bsr-type{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;
  background:var(--paper);color:var(--muted);
  padding:2px 7px;border-radius:4px;font-weight:600;
}


/* ============= BOOKING DETAIL PAGE ============= */
.page-title-extras{
  font-family:'DM Sans',sans-serif;font-style:normal;font-size:.85rem;
  color:var(--gold);font-weight:500;letter-spacing:0;
  background:var(--gold-soft);padding:3px 9px;border-radius:5px;
  vertical-align:middle;margin-left:6px;
}

.booking-detail-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:20px 24px;margin-bottom:14px;
}
.bdh-grid{
  display:grid;grid-template-columns:auto 1fr 1.2fr;gap:24px;align-items:center;
}
.bdh-stage{
  border-right:1px solid var(--line-2);padding-right:24px;
  display:flex;flex-direction:column;gap:8px;align-items:flex-start;
}
.bdh-lbl{
  font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;
  color:var(--muted);font-weight:600;
}
.bdh-meta{display:flex;flex-direction:column;gap:5px}
.bdh-row{display:flex;justify-content:space-between;font-size:.84rem;gap:14px}
.bdh-row .k{color:var(--muted);font-size:.74rem}
.bdh-row .v{color:var(--ink);font-weight:500}
.bdh-row .v strong{color:var(--ink);font-weight:600}

.bdh-fin{
  background:var(--paper);border-radius:8px;padding:14px 18px;
  display:flex;flex-direction:column;gap:5px;
  border:1px solid var(--line-2);
}
.bdh-fin-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.bdh-fin-lbl{font-size:.74rem;color:var(--muted)}
.bdh-fin-amt{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}
.bdh-fin-amt.total{font-size:1.3rem}
.bdh-fin-amt.paid{color:var(--primary)}
.bdh-fin-amt.out.danger{color:var(--danger)}
.bdh-fin-amt.out.ok{color:var(--primary)}
.bdh-progress{display:flex;align-items:center;gap:6px;margin-top:6px}
.bdh-progress .bar{flex:1;height:6px;background:var(--line-2);border-radius:3px;overflow:hidden}
.bdh-progress .fill{height:100%;background:var(--primary)}
.bdh-progress .fill.warn{background:var(--warn)}
.bdh-progress .fill.danger{background:var(--danger)}
.bdh-progress .pct{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted)}

@media (max-width:1100px){.bdh-grid{grid-template-columns:1fr}.bdh-stage{border-right:none;border-bottom:1px solid var(--line-2);padding-right:0;padding-bottom:14px}}

/* Booking sections */
.booking-section{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;margin-bottom:14px;overflow:hidden;
}
.bs-head{
  padding:12px 22px;
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--line-2);background:var(--paper);
  flex-wrap:wrap;gap:8px;
}
.bs-title{
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}
.bs-cnt{
  font-family:'DM Sans',sans-serif;font-style:normal;font-size:.78rem;
  color:var(--gold);background:var(--gold-soft);
  padding:2px 9px;border-radius:11px;
  margin-left:6px;font-weight:600;letter-spacing:0;
}

/* Travelers list inside booking */
.bk-trav-list{padding:0}
.bk-trav-row{
  display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;
  padding:12px 22px;cursor:pointer;
  border-bottom:1px solid var(--line-2);
  transition:background .12s;
}
.bk-trav-row:last-child{border-bottom:none}
.bk-trav-row:hover{background:var(--paper)}
.bk-trav-l{display:flex;align-items:center}
.av-lg{
  width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,#cfd9d3,#a8b6ae);
  color:#1a2520;font-weight:600;font-size:.95rem;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;
}
.bk-trav-name{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}
.primary-tag{
  font-family:'DM Sans',sans-serif;font-style:normal;font-size:.62rem;
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  background:var(--primary);color:#fff;padding:2px 7px;
  border-radius:4px;margin-left:6px;vertical-align:middle;
}
.bk-trav-meta{font-size:.74rem;color:var(--muted);margin-top:1px}
.bk-trav-special{
  font-size:.7rem;color:var(--warn);margin-top:3px;
  background:var(--warn-soft);padding:2px 7px;border-radius:4px;
  display:inline-block;
}
.bk-trav-arrow{font-size:.74rem;color:var(--gold);font-weight:500}
.bk-trav-row:hover .bk-trav-arrow{text-decoration:underline}

/* Services grid */
.services-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:18px 22px;
}
@media (max-width:880px){.services-grid{grid-template-columns:1fr}}

.service-card{
  background:var(--paper);border:1px solid var(--line-2);
  border-radius:9px;overflow:hidden;cursor:pointer;
  transition:border-color .12s,transform .1s;
}
.service-card:hover{border-color:var(--gold);transform:translateY(-1px)}
.sc-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
  padding:12px 14px;background:var(--surface);
  border-bottom:1px solid var(--line-2);
}
.sc-icon{
  width:32px;height:32px;border-radius:8px;
  background:var(--primary-soft);color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;flex-shrink:0;
}
.sc-title{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1.1;
}
.sc-sub{font-size:.72rem;color:var(--muted);margin-top:1px}
.sc-status{flex-shrink:0}
.sc-body{
  padding:10px 14px;
  display:flex;flex-direction:column;gap:5px;
}
.sc-row{
  display:flex;justify-content:space-between;gap:10px;
  font-size:.78rem;align-items:center;
}
.sc-row .k{color:var(--muted);font-size:.74rem}
.sc-row .v{color:var(--ink);font-weight:500;text-align:right}

/* Payment plan */
.payment-plan{padding:0}
.pp-row{
  display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;
  padding:11px 22px;border-bottom:1px solid var(--line-2);
}
.pp-row:last-child{border-bottom:none}
.pp-row.paid{background:rgba(10,79,60,.03)}
.pp-status-icon{
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.8rem;
}
.pp-row.paid .pp-status-icon{background:var(--primary);color:#fff}
.pp-row.pending .pp-status-icon{background:var(--line-2);color:var(--muted);border:1px dashed var(--muted)}
.pp-label{font-size:.86rem;color:var(--ink);font-weight:500;line-height:1.2}
.pp-due{font-size:.7rem;color:var(--muted);margin-top:2px}
.pp-amt{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;
}

/* Activity log */
.activity-log{padding:14px 22px;display:flex;flex-direction:column;gap:10px}
.al-item{
  display:grid;grid-template-columns:120px 1fr;gap:14px;
  font-size:.84rem;color:var(--ink-2);
  padding-bottom:10px;border-bottom:1px dashed var(--line-2);
}
.al-item:last-child{border-bottom:none;padding-bottom:0}
.al-time{
  font-size:.72rem;color:var(--muted);
  font-family:'JetBrains Mono',monospace;
}
.al-msg strong{color:var(--ink);font-weight:600}

/* ============= TRAVELER PROFILE - BOOKING HISTORY ============= */
.profile-bookings-section{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;margin-bottom:14px;overflow:hidden;
}
.pbs-head{
  padding:12px 22px;border-bottom:1px solid var(--line-2);
  background:linear-gradient(135deg,var(--paper),var(--surface));
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:8px;
}
.pbs-title{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--ink);letter-spacing:-.012em;
}
.pbs-meta{
  font-size:.74rem;color:var(--muted);
}

.pbs-list{padding:0}
.pbs-card{
  display:grid;grid-template-columns:auto 1.6fr auto auto auto;gap:18px;align-items:center;
  padding:13px 22px;cursor:pointer;
  border-bottom:1px solid var(--line-2);
  transition:background .12s;
}
.pbs-card:last-child{border-bottom:none}
.pbs-card:hover{background:var(--paper)}
.pbs-card.current{
  background:linear-gradient(90deg,var(--gold-soft) 0%,transparent 30%);
  border-left:3px solid var(--gold);
}
.pbs-card.past{opacity:.78}
.pbs-card.past:hover{opacity:1}
.pbs-bid{
  font-family:'JetBrains Mono',monospace;font-size:.92rem;
  color:var(--ink);font-weight:600;
}
.pbs-when{font-size:.7rem;color:var(--muted);margin-top:2px}
.pbs-pkg{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;line-height:1.2;
}
.pbs-grp{font-size:.74rem;color:var(--muted);margin-top:2px}
.pbs-stage{flex-shrink:0}
.pbs-amt{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;text-align:right;
}
.pbs-arrow{font-size:.74rem;color:var(--gold);font-weight:500}
.pbs-card:hover .pbs-arrow{text-decoration:underline}
.pbs-empty{
  padding:18px 22px;text-align:center;color:var(--muted);
  font-style:italic;font-size:.86rem;
}

@media (max-width:780px){
  .pbs-card{grid-template-columns:1fr 1fr;gap:8px}
  .pbs-arrow{display:none}
  .bk-trav-row{grid-template-columns:auto 1fr}
  .bk-trav-stage,.bk-trav-arrow{grid-column:2;justify-self:flex-start}
  .pp-row{grid-template-columns:auto 1fr;gap:8px}
  .pp-amt,.pp-tag{grid-column:2}
  .al-item{grid-template-columns:1fr}
  .al-time{margin-bottom:2px}
}


/* ============= DOCUMENT SCAN / OCR MODAL ============= */
.ocr-modal-overlay{
  position:fixed;inset:0;background:rgba(15,26,23,.6);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  z-index:290;
  display:flex;align-items:flex-start;justify-content:center;
  padding:5vh 12px;
  animation:fadeIn .15s ease-out;
  overflow-y:auto;
}
.ocr-modal{
  width:min(960px,98vw);
  background:var(--paper);border-radius:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  overflow:hidden;border:1px solid var(--line);
  display:flex;flex-direction:column;max-height:90vh;
}

.ocr-modal-head{
  background:linear-gradient(135deg,var(--ink),#1a2520);
  color:#fff;padding:16px 24px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.omh-eyebrow{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--gold-soft);font-weight:600;
}
.omh-title{
  font-family:'Fraunces',serif;font-size:1.25rem;font-weight:500;
  letter-spacing:-.012em;margin-top:2px;
}
.omh-title .pax-id{
  font-family:'JetBrains Mono',monospace;font-size:.78rem;
  color:#a4c4b8;font-weight:400;background:rgba(255,255,255,.08);
  padding:2px 8px;border-radius:4px;margin-left:6px;
}

/* Step indicator bar */
.ocr-step-bar{
  display:flex;background:var(--paper);
  padding:14px 24px;gap:10px;
  border-bottom:1px solid var(--line);
  overflow-x:auto;
}
.ocr-step-pill{
  display:flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:8px;
  font-size:.78rem;font-weight:500;
  flex-shrink:0;flex:1;justify-content:center;
  transition:all .15s;
}
.osp-num{
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:700;flex-shrink:0;
}
.ocr-step-pill.pending{color:var(--muted);background:transparent}
.ocr-step-pill.pending .osp-num{background:var(--line-2);color:var(--muted)}
.ocr-step-pill.active{color:var(--ink);background:var(--gold-soft)}
.ocr-step-pill.active .osp-num{background:var(--gold);color:#fff}
.ocr-step-pill.done{color:var(--primary);background:var(--primary-soft)}
.ocr-step-pill.done .osp-num{background:var(--primary);color:#fff}

/* Body */
.ocr-step-body{
  padding:24px;flex:1;overflow-y:auto;
}
.ocr-prompt{
  font-size:.95rem;color:var(--ink-2);margin-bottom:18px;
  line-height:1.5;
}
.ocr-prompt strong{color:var(--ink);font-weight:600}

/* Step 1: doc type grid */
.doc-type-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
}
.doc-type-card{
  background:var(--surface);border:1.5px solid var(--line);
  border-radius:10px;padding:18px;cursor:pointer;
  transition:all .15s;text-align:left;
}
.doc-type-card:hover{
  border-color:var(--gold);transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(168,122,38,.12);
}
.dt-icon{
  width:42px;height:42px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;font-weight:700;
}
.dt-name{
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:500;
  color:var(--ink);margin-top:14px;letter-spacing:-.01em;
}
.dt-desc{font-size:.76rem;color:var(--muted);margin-top:2px;line-height:1.4}

@media (max-width:680px){.doc-type-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.doc-type-grid{grid-template-columns:1fr}}

/* Step 2: upload area */
.ocr-upload-area{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:38px 22px;text-align:center;cursor:pointer;
  border:2px dashed var(--gold);border-radius:12px;
  background:var(--gold-soft);
  transition:all .15s;
}
.ocr-upload-area:hover{
  background:#f7e2ad;border-color:#8a6420;
}
.oua-icon{
  font-size:2.4rem;color:var(--gold);
  font-weight:300;line-height:1;
}
.oua-title{
  font-family:'Fraunces',serif;font-size:1.25rem;font-weight:500;
  color:var(--ink);margin-top:10px;letter-spacing:-.012em;
}
.oua-desc{font-size:.82rem;color:var(--muted);margin-top:4px}
.oua-or{
  margin:18px 0 14px;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.18em;
  color:var(--muted);font-weight:600;
}
.oua-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

.ocr-tips{
  background:var(--surface);border:1px solid var(--line);
  border-radius:8px;padding:14px 18px;margin-top:18px;
}
.ot-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;margin-bottom:6px;
}
.ocr-tips ul{margin-left:18px;font-size:.84rem;color:var(--ink-2);line-height:1.7}
.ocr-tips li:empty{display:none}

/* Step 3: processing */
.ocr-processing-body{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:380px;padding:30px;
}
.ocr-spinner{
  position:relative;width:100px;height:100px;
  display:flex;align-items:center;justify-content:center;
}
.ocr-spinner-ring{
  position:absolute;inset:0;
  border:5px solid var(--line-2);
  border-top-color:var(--gold);
  border-radius:50%;
  animation:spin 0.9s linear infinite;
}
.ocr-spinner-core{
  font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;
  color:var(--gold);letter-spacing:-.015em;
}
.ocr-current-msg{
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:400;
  color:var(--ink);margin-top:22px;font-style:italic;letter-spacing:-.005em;
}
.ocr-substeps{
  margin-top:24px;width:100%;max-width:440px;
  display:flex;flex-direction:column;gap:7px;
}
.substep{
  display:flex;align-items:center;gap:10px;
  padding:6px 12px;border-radius:6px;font-size:.84rem;
  transition:all .15s;
}
.ss-icon{
  width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:700;flex-shrink:0;
}
.substep.done{color:var(--primary)}
.substep.done .ss-icon{background:var(--primary);color:#fff}
.substep.active{color:var(--gold);background:var(--gold-soft)}
.substep.active .ss-icon{background:var(--gold);color:#fff;animation:pulse 1.2s infinite}
.substep.pending{color:var(--muted)}
.substep.pending .ss-icon{background:var(--line-2);color:var(--muted)}
.ss-msg{flex:1}

/* Step 4: review */
.ocr-review-body{padding:0}
.ocr-review-summary{
  padding:18px 24px;background:var(--paper);
  border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  flex-wrap:wrap;
}
.ors-l{display:flex;align-items:center;gap:14px}
.ors-icon{
  width:46px;height:46px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;font-weight:700;
}
.ors-title{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;
  color:var(--ink);letter-spacing:-.012em;
}
.ors-issuer{font-size:.78rem;color:var(--muted);margin-top:2px}

.ors-r{display:flex;gap:18px;flex-wrap:wrap}
.ors-stat{text-align:center}
.ors-stat-num{
  font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;
  color:var(--ink);letter-spacing:-.015em;line-height:1;
}
.ors-stat-num small{font-size:.7rem;color:var(--muted);font-weight:400}
.ors-stat-num.good{color:var(--primary)}
.ors-stat-num.bad{color:var(--danger)}
.ors-stat-lbl{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:3px;font-weight:600}

.ocr-preview-grid{
  display:grid;grid-template-columns:1fr 1.2fr;gap:0;
  flex:1;min-height:0;
}
.ocr-image-pane{
  padding:18px 24px;background:var(--paper);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:12px;
  overflow-y:auto;
}
.ocr-img-label{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;
}
.ocr-img{
  max-width:100%;border-radius:8px;
  border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.08);
}
.ocr-img-placeholder{
  background:linear-gradient(135deg,var(--ink),#1a2520);
  border-radius:10px;padding:30px 22px;color:#fff;
  text-align:center;
}
.oip-icon{font-size:3rem;color:var(--gold-soft);font-weight:300;line-height:1}
.oip-title{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:400;
  margin-top:14px;letter-spacing:-.012em;
}
.oip-fname{font-size:.84rem;color:#a4c4b8;margin-top:6px;font-family:'JetBrains Mono',monospace}
.oip-meta{font-size:.74rem;color:#8eaaa0;margin-top:3px}

.ocr-mrz{
  background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:10px 14px;
}
.ocr-mrz-lbl{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;margin-bottom:5px;
}
.ocr-mrz pre{
  font-family:'JetBrains Mono',monospace;font-size:.74rem;
  color:var(--ink);background:transparent;
  white-space:pre-wrap;word-break:break-all;line-height:1.4;
}

.ocr-fields-pane{
  padding:18px 24px;display:flex;flex-direction:column;gap:0;
  overflow-y:auto;background:var(--surface);
}
.ocr-fields-head{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;margin-bottom:10px;
}
.ocr-fields-list{display:flex;flex-direction:column;gap:8px}
.ocr-field{
  background:var(--paper);border:1px solid var(--line-2);
  border-radius:7px;padding:9px 12px;
  border-left:3px solid var(--line);
}
.ocr-field.match{border-left-color:var(--primary);background:rgba(10,79,60,.04)}
.ocr-field.mismatch{border-left-color:var(--danger);background:#fbe5e3}
.ocr-field.edited{border-left-color:var(--gold);background:var(--gold-soft)}
.ocr-field.unknown{border-left-color:#8eaaa0}

.of-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.of-label{
  font-size:.7rem;color:var(--muted);font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;
}
.of-confidence{
  font-family:'JetBrains Mono',monospace;font-size:.7rem;
  color:var(--gold);font-weight:600;
}
.of-input{
  width:100%;padding:5px 0;font-size:.92rem;
  background:transparent;border:none;
  color:var(--ink);font-weight:500;
  font-family:'DM Sans',sans-serif;outline:none;
  border-bottom:1px dashed transparent;
  transition:border-color .12s;
}
.of-input:focus{border-bottom-color:var(--gold)}
.of-input:hover{border-bottom-color:var(--line)}
.of-tag{
  font-size:.68rem;color:var(--muted);margin-top:3px;
  font-style:italic;
}
.ocr-field.match .of-tag{color:var(--primary)}
.ocr-field.mismatch .of-tag{color:var(--danger);font-weight:500}
.ocr-field.edited .of-tag{color:var(--gold);font-weight:500}

.ocr-flags{
  margin-top:14px;background:var(--warn-soft);
  border:1px solid #f1d9a8;border-radius:7px;padding:11px 14px;
}
.ocr-flag-title{
  font-size:.74rem;font-weight:600;color:var(--warn);margin-bottom:6px;
}
.ocr-flag-item{font-size:.82rem;color:var(--ink-2);line-height:1.4;margin-top:3px}

@media (max-width:880px){
  .ocr-preview-grid{grid-template-columns:1fr}
  .ocr-image-pane{border-right:none;border-bottom:1px solid var(--line)}
}

/* Footer */
.ocr-modal-foot{
  padding:14px 24px;border-top:1px solid var(--line);
  background:var(--paper);
  display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;
}


/* ============= AGE-FRIENDLY ACCESSIBILITY DEFAULTS ============= */

/* Larger, more visible focus rings for keyboard users (older users tab-navigate more) */
*:focus{outline:none}
*:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:2px;
  border-radius:6px;
}
button:focus-visible,
.btn:focus-visible,
.icon-btn:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:3px;
}
input:focus,
textarea:focus,
select:focus,
.form-input:focus,
.form-select:focus,
.form-textarea:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(168,122,38,0.18);
}

/* Form inputs — slightly larger padding, more visible borders, larger text */
.form-input,
.form-select,
.form-textarea,
input[type=text],
input[type=email],
input[type=tel],
input[type=number],
input[type=date],
input[type=password]{
  font-size:0.95rem;             /* readable input text */
  padding:11px 14px;             /* generous padding for easier click targets */
  border-width:1.5px;            /* clearly visible at a glance */
  border-color:var(--line);
}
.form-label{
  font-weight:600;
  color:var(--ink-2);            /* stronger than --muted for labels */
  font-size:0.78rem;             /* was inherited */
  letter-spacing:0.02em;
}
.form-helper{
  color:var(--ink-3);            /* readable helper text */
  font-size:0.82rem;
  line-height:1.5;
}

/* Button minimum touch target — 44x44px is the WCAG minimum */
.btn{
  min-height:38px;               /* up from default — easier to click */
  font-weight:500;
  letter-spacing:0.005em;
}
.btn-sm{min-height:30px;font-size:0.82rem}
.icon-btn{min-width:38px;min-height:38px}

/* Status tags — bolder borders, slightly larger for legibility */
.status-tag{
  font-weight:600;
  border-width:1.5px;
  letter-spacing:0.02em;
}

/* Chips — improve contrast and reduce blur effect */
.chip{
  font-weight:600;
  border-width:1.5px;
}

/* Table rows — alternating warm tint for easier row-tracking by older eyes */
table.crm tbody tr:nth-child(even){
  background:var(--surface-2);
}
table.crm tbody tr:hover{
  background:var(--gold-soft);   /* clear hover state */
}
table.crm th{
  font-size:0.74rem;
  font-weight:700;               /* bolder headers */
  color:var(--ink-2);            /* stronger contrast */
  letter-spacing:0.06em;
}
table.crm td{
  font-size:0.92rem;             /* up from default */
  padding:11px 14px;             /* roomier */
}

/* Cards — gentle shadow for spatial separation (helps older eyes parse layout) */
.card,
.kpi,
.booking-card,
.list-card,
.profile-card{
  box-shadow:0 1px 0 rgba(13,23,20,0.04),0 2px 4px rgba(13,23,20,0.03);
}
.card:hover,
.list-card:hover,
.booking-card:hover{
  box-shadow:0 1px 0 rgba(13,23,20,0.05),0 4px 12px rgba(168,122,38,0.10);
}

/* Links — underlined by default for clarity (color alone is harder for older users) */
a:not(.btn):not(.icon-btn):not(.role-btn):not(.nav-item):not(.alert-pill):not(.linked):not(.lc-arrow):not(.bk-trav-row):not(.pbs-card){
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.linked{
  color:var(--primary);
  cursor:pointer;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  font-weight:500;
}
.linked:hover{color:var(--gold);text-decoration-thickness:2px}

/* Page titles — slightly larger and stronger for hierarchy */
.page-title{
  font-size:1.85rem;
  font-weight:500;
  letter-spacing:-0.022em;
  color:var(--ink);
}
.page-sub{
  color:var(--ink-3);            /* stronger than --muted for sub-headers */
  font-size:0.92rem;
  line-height:1.5;
  margin-top:6px;
}

/* KPI tiles — stronger numerals */
.kpi-value{
  color:var(--ink);
  font-weight:500;
  letter-spacing:-0.025em;
}
.kpi-label{
  color:var(--ink-2);            /* was --muted, now stronger */
  font-weight:600;
  font-size:0.74rem;
  letter-spacing:0.08em;
}
.kpi-foot{
  color:var(--ink-3);
  font-size:0.78rem;
}

/* Sidebar — clearer active state, less reliance on hover */
.nav-item{
  font-size:0.92rem;
  font-weight:500;
}
.nav-item:hover{
  background:rgba(168,122,38,0.10);
}
.nav-item.active{
  background:rgba(168,122,38,0.18);
  color:var(--gold-bright);
  font-weight:600;
}

/* Stage chips — more legible */
.chip-stage-booked,.chip-stage-payment,.chip-stage-docs,.chip-stage-visa,
.chip-stage-flight,.chip-stage-hotel,.chip-stage-transport,.chip-stage-ready,
.chip-stage-travel,.chip-stage-completed,.chip-stage-closed{
  font-size:0.72rem;
  font-weight:600;
  padding:4px 9px;
  border-width:1.5px;
}

/* Body text utilities — clarify hierarchy */
.text-muted{color:var(--ink-3) !important}    /* was --muted, now better contrast */
.whisper{color:var(--muted) !important}       /* truly secondary text */

/* Disable subtle gradients on critical buttons (cleaner, more legible) */
.btn-primary{
  background:var(--primary);
  font-weight:600;
  letter-spacing:0.005em;
}
.btn-primary:hover{
  background:var(--primary-2);
  box-shadow:0 4px 14px rgba(10,79,60,0.28);
}

/* Eye comfort utility — apply class to body for even larger comfort mode */
body.comfort-mode{
  font-size:16.5px;
}
body.comfort-mode .form-input,
body.comfort-mode .form-select,
body.comfort-mode input[type=text]{
  font-size:1rem;
  padding:13px 16px;
}
body.comfort-mode table.crm td{
  padding:14px 16px;
  font-size:0.98rem;
}
body.comfort-mode .nav-item{
  font-size:1rem;
  padding:11px 14px;
}
body.comfort-mode .btn{
  min-height:44px;
  font-size:0.95rem;
}

/* Comfort-mode toggle button — visible state */
.icon-btn#comfortBtn{
  font-family:'Fraunces',serif;
  font-style:italic;
  letter-spacing:-0.02em;
  font-weight:500;
}
.icon-btn#comfortBtn.active{
  background:var(--gold-soft);
  color:var(--gold);
  border-color:var(--gold);
}


/* ============= FAMILY NETWORK SECTION ============= */
.family-network-section{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;margin-bottom:14px;overflow:hidden;
}
.fn-head{
  padding:14px 22px;border-bottom:1px solid var(--line-2);
  background:linear-gradient(135deg,var(--paper),var(--surface));
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:10px;
}
.fn-title{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;
  color:var(--ink);letter-spacing:-.012em;
}
.fn-title em{font-style:italic;color:var(--gold-bright);font-weight:400}
.fn-sub{
  font-size:.84rem;color:var(--ink-3);margin-top:3px;line-height:1.4;
}
.fn-sub strong{color:var(--ink);font-weight:600}

.fn-body{padding:0}

/* Summary stats bar */
.fn-summary{
  display:flex;align-items:center;gap:24px;
  padding:14px 22px;background:var(--paper);
  border-bottom:1px solid var(--line-2);
  flex-wrap:wrap;
}
.fn-stat{text-align:left}
.fn-stat-num{
  font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;
  color:var(--primary);letter-spacing:-.018em;line-height:1;
}
.fn-stat-num.back-home{color:var(--muted)}
.fn-stat-num.total{color:var(--gold-bright)}
.fn-stat-lbl{
  font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;margin-top:3px;
}
.fn-legend{
  margin-left:auto;display:flex;gap:14px;flex-wrap:wrap;
  font-size:.74rem;color:var(--ink-3);
}
.fn-leg-item{display:flex;align-items:center;gap:6px;font-weight:500}
.fn-leg-swatch{
  display:inline-block;width:18px;height:3px;border-radius:2px;
}
.fn-leg-heart{color:var(--gold-bright);font-size:.95rem;line-height:1}

/* SVG tree wrapper */
.fn-tree-wrap{
  padding:18px 22px;
  background:linear-gradient(180deg,var(--surface) 0%,var(--paper) 100%);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.family-svg{
  width:100%;height:auto;min-width:760px;
  display:block;
}
.fn-node:hover rect{
  stroke-width:2.5;
  filter:drop-shadow(0 2px 6px rgba(168,122,38,.25));
}
.fn-node{transition:all .15s}

/* Action buttons row at bottom */
.fn-actions{
  padding:12px 22px;border-top:1px solid var(--line-2);
  display:flex;gap:8px;background:var(--paper);
  flex-wrap:wrap;
}

/* Empty state */
.fn-empty{
  padding:42px 30px;text-align:center;
}
.fn-empty-icon{
  font-size:3rem;color:var(--gold-bright);font-weight:300;
  line-height:1;margin-bottom:14px;
}
.fn-empty-msg{
  font-family:'Fraunces',serif;font-size:1.1rem;color:var(--ink);
  letter-spacing:-.012em;margin-bottom:6px;
}
.fn-empty-msg strong{color:var(--gold-bright);font-weight:500;font-style:italic}
.fn-empty-sub{
  font-size:.86rem;color:var(--ink-3);max-width:480px;
  margin:0 auto;line-height:1.5;
}

@media (max-width:780px){
  .fn-summary{gap:14px}
  .fn-stat-num{font-size:1.4rem}
  .fn-legend{margin-left:0;width:100%;font-size:.7rem}
  .fn-tree-wrap{padding:12px 0;background:var(--paper)}
  .family-svg{min-width:700px}
}


/* =========================================================
   FAMILY NETWORK EDIT MODAL (standalone overlay)
   ========================================================= */

/* Full-screen backdrop injected into <body> */
.fn-modal-overlay{
  position:fixed;inset:0;
  background:rgba(15,26,23,.58);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  z-index:9000;
  display:flex;align-items:flex-start;justify-content:center;
  padding:7vh 12px 20px;
  animation:fadeIn .15s ease-out;
}

/* Modal box */
.fn-modal-box{
  width:min(780px,96vw);
  background:var(--paper);border-radius:12px;
  box-shadow:0 28px 80px rgba(0,0,0,.42);
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  max-height:86vh;overflow:hidden;
}

/* Header */
.fn-modal-head{
  background:linear-gradient(135deg,var(--ink),#1a2520);
  color:#fff;padding:14px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-shrink:0;
}
.fn-modal-title{
  font-family:'Fraunces',serif;font-size:1.1rem;
  font-weight:500;letter-spacing:-.01em;
}
.fn-modal-close{
  background:transparent;border:none;color:#a4c4b8;
  font-size:1.6rem;cursor:pointer;line-height:1;
  padding:0 6px;border-radius:5px;transition:all .12s;
}
.fn-modal-close:hover{background:rgba(255,255,255,.1);color:#fff}

/* Scrollable body */
.fn-modal-body{
  padding:20px;overflow-y:auto;flex:1;
}

/* Footer */
.fn-modal-foot{
  padding:12px 20px;border-top:1px solid var(--line);
  background:var(--paper);
  display:flex;justify-content:flex-end;gap:8px;
  flex-shrink:0;
}

/* ── inner body layout ── */
.fn-edit-modal-body{
  display:flex;flex-direction:column;gap:0;
}
.fn-edit-section{
  padding:18px 0 14px;
}
.fn-edit-section-head{
  margin-bottom:14px;
}
.fn-edit-section-title{
  display:flex;align-items:center;gap:8px;
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:-.01em;margin-bottom:4px;
}
.fn-edit-ico{
  font-size:1.1rem;color:var(--primary);opacity:.75;
}
.fn-edit-section-desc{
  font-size:.83rem;color:var(--muted);line-height:1.5;padding-left:2px;
}
.fn-inherit-note{ color:var(--gold);font-style:italic; }

/* Badges */
.fn-badge{
  display:inline-flex;align-items:center;
  font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:600;
  padding:2px 9px;border-radius:20px;letter-spacing:.02em;text-transform:uppercase;
}
.fn-badge-ok   { background:#d5ede6;color:var(--primary); }
.fn-badge-none { background:#f0ede8;color:var(--muted); }
.fn-badge-count{ background:var(--gold-soft);color:var(--gold); }

/* Mahram row */
.fn-mahram-row{
  display:flex;flex-direction:column;gap:10px;
}
.fn-mahram-select{ max-width:420px; }
.fn-mahram-ok{
  display:flex;align-items:center;gap:8px;
  font-size:.86rem;color:var(--ink-2);padding:8px 12px;
  background:#eef8f3;border:1px solid #c2e2d4;border-radius:8px;max-width:420px;
}
.fn-ok-check{ color:var(--primary);font-size:1rem;font-weight:700;flex-shrink:0; }
.fn-mahram-warn{
  display:flex;align-items:center;gap:8px;
  font-size:.85rem;color:#8a5a10;padding:8px 12px;
  background:#fef8ec;border:1px solid #e8d4a3;border-radius:8px;max-width:420px;
}

/* Dependents */
.fn-dependents-row{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  margin-top:12px;padding:10px 12px;
  background:var(--surface);border-radius:8px;border:1px solid var(--line);
}
.fn-dep-lbl{ font-size:.8rem;color:var(--muted);font-weight:500;white-space:nowrap; }
.fn-dep-pill{
  display:inline-flex;align-items:center;gap:5px;
  background:#e8f3ef;color:var(--primary);
  font-size:.82rem;font-weight:500;padding:3px 10px;border-radius:20px;
  cursor:pointer;transition:background .12s;
}
.fn-dep-pill:hover{ background:#d5ede6; }
.fn-dep-pill em{ color:var(--muted);font-style:normal;font-size:.76rem; }

/* Divider */
.fn-edit-divider{
  height:1px;background:var(--line);margin:0 -20px;
}

/* Members list */
.fn-edit-members-list{
  display:flex;flex-direction:column;gap:6px;margin-bottom:12px;
}
.fn-edit-empty{
  font-size:.84rem;color:var(--muted);font-style:italic;
  padding:12px 14px;background:var(--surface);border-radius:8px;
  border:1px dashed var(--line);text-align:center;
}
.fn-edit-member-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;background:var(--surface);border:1px solid var(--line);
  border-radius:9px;transition:border-color .12s;
}
.fn-edit-member-row:hover{ border-color:var(--primary-30); }
.fn-edit-member-row.editing{
  border-color:var(--primary);background:#f3f9f7;
  flex-direction:column;align-items:stretch;
}
.fn-edit-member-info{
  display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap;
}
.fn-rel-badge{
  font-size:.72rem;font-weight:600;letter-spacing:.03em;
  background:var(--gold-soft);color:var(--gold);
  padding:2px 8px;border-radius:10px;white-space:nowrap;
}
.fn-mem-name{ font-size:.9rem;color:var(--ink);font-weight:600; }
.fn-mem-meta{ font-size:.8rem;color:var(--muted); }
.fn-mem-note{
  font-size:.78rem;color:var(--ink-3);
  background:#f0ede8;padding:2px 7px;border-radius:6px;
}
.fn-edit-member-btns{
  display:flex;align-items:center;gap:6px;flex-shrink:0;
}
.fn-remove-btn:hover{
  background:#fdecea!important;color:var(--danger)!important;
  border-color:var(--danger)!important;
}

/* Inline edit form */
.fn-edit-inline-form{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.fn-ei{ font-size:.83rem!important;padding:5px 8px!important;height:34px; }
.fn-ei.num { width:70px!important; }
.fn-ei.sm  { width:100px!important; }
.fn-ei.flex{ flex:1;min-width:110px; }

/* Add-member form */
.fn-add-trigger{ margin-top:4px; }
.fn-add-form{
  margin-top:10px;padding:16px;
  background:var(--surface);border:1px dashed var(--primary-30);border-radius:10px;
}
.fn-add-form-title{
  font-size:.82rem;font-weight:600;color:var(--primary);
  letter-spacing:.01em;margin-bottom:12px;
}
.fn-add-row{
  display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px;
}
.fn-add-field{ display:flex;flex-direction:column;gap:4px; }
.fn-add-field.flex{ flex:1;min-width:130px; }
.fn-add-actions{ display:flex;gap:8px; }

/* btn-xs */
.btn-xs{
  padding:3px 9px!important;font-size:.75rem!important;
  border-radius:6px!important;height:auto!important;line-height:1.4!important;
}

/* Toast */
.fn-toast{
  position:fixed;bottom:28px;left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;
  font-family:'DM Sans',sans-serif;font-size:.86rem;font-weight:500;
  padding:10px 22px;border-radius:24px;
  box-shadow:0 8px 28px rgba(0,0,0,.28);
  z-index:9999;opacity:0;
  transition:opacity .25s,transform .25s;
  pointer-events:none;white-space:nowrap;
}
.fn-toast.fn-toast-show{
  opacity:1;transform:translateX(-50%) translateY(0);
}

/* Edit-relationships button (more prominent) */
.fn-edit-rel-btn{
  display:inline-flex;align-items:center;gap:6px;
  font-weight:500!important;
}
.fn-edit-rel-ico{
  display:inline-block;font-size:1rem;line-height:1;
  transition:transform .25s;
}
.fn-edit-rel-btn:hover .fn-edit-rel-ico{
  transform:rotate(90deg);
}

/* Confirm-remove row state */
.fn-edit-member-row.confirming{
  border-color:var(--danger);
  background:#fdecea;
}
.fn-confirm-msg{
  display:flex;align-items:center;gap:8px;flex:1;
  font-size:.86rem;color:#7a1c14;
}
.fn-confirm-ico{
  font-size:1rem;color:var(--danger);
}
.fn-confirm-yes{
  background:var(--danger)!important;color:#fff!important;
  border-color:var(--danger)!important;
}
.fn-confirm-yes:hover{
  background:#7a1c14!important;
}
