/* Hamdan OS v1.24 — Unified Interface System
   One stylesheet, one token set, no legacy override stack.
   Visual direction: calm, precise, tactile, operational. */

:root {
  color-scheme: light;
  --brand-green: #096735;
  --brand-green-strong: #07542c;
  --brand-green-soft: #edf7f1;
  --brand-green-faint: #f6fbf8;
  --brand-orange: #ed9420;
  --brand-orange-soft: #fff5e8;

  --ink-950: #141816;
  --ink-900: #1d211f;
  --ink-800: #2e3431;
  --ink-700: #464d49;
  --ink-600: #606864;
  --ink-500: #7a817d;
  --ink-400: #9ba19d;

  --surface-canvas: #f5f6f4;
  --surface-sidebar: rgba(248, 249, 247, .94);
  --surface-topbar: rgba(250, 251, 249, .88);
  --surface-primary: #ffffff;
  --surface-secondary: #fafbf9;
  --surface-tertiary: #f1f3f0;
  --surface-selected: #eef6f1;

  --line-subtle: #e6e9e5;
  --line-default: #d8ddd8;
  --line-strong: #c7cdc8;

  --success: #16733e;
  --success-bg: #eef8f1;
  --warning: #9a5c06;
  --warning-bg: #fff7ea;
  --danger: #b42318;
  --danger-bg: #fff2f1;
  --info: #315f91;
  --info-bg: #eef5fb;

  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Inter, Helvetica, Arial, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

  --text-xs: 12px;
  --text-sm: 13px;
  --text-md: 15px;
  --text-lg: 17px;
  --text-xl: 20px;
  --text-2xl: 26px;
  --text-3xl: 34px;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 48px;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --radius-pill: 999px;

  --shadow-1: 0 1px 2px rgba(18, 28, 22, .04), 0 6px 18px rgba(18, 28, 22, .035);
  --shadow-2: 0 2px 5px rgba(18, 28, 22, .05), 0 16px 42px rgba(18, 28, 22, .07);
  --shadow-float: 0 12px 36px rgba(18, 28, 22, .12);

  --sidebar-width: 244px;
  --topbar-height: 60px;
  --content-max: 1480px;

  /* Compatibility aliases used by older templates. */
  --hos-bg: var(--surface-canvas);
  --hos-surface: var(--surface-primary);
  --hos-surface-2: var(--surface-secondary);
  --hos-surface-3: var(--surface-tertiary);
  --hos-text: var(--ink-950);
  --hos-secondary: var(--ink-600);
  --hos-tertiary: var(--ink-500);
  --hos-line: var(--line-default);
  --hos-line-soft: var(--line-subtle);
  --hos-accent: var(--brand-green);
  --hos-accent-hover: var(--brand-green-strong);
  --hos-accent-soft: var(--brand-green-soft);
  --hos-success: var(--success);
  --hos-success-soft: var(--success-bg);
  --hos-warning: var(--warning);
  --hos-warning-soft: var(--warning-bg);
  --hos-danger: var(--danger);
  --hos-danger-soft: var(--danger-bg);
  --hos-shadow: var(--shadow-1);
  --hos-shadow-pop: var(--shadow-float);
  --hos-radius: var(--radius-lg);
  --hos-radius-sm: var(--radius-md);
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--surface-canvas); scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink-950);
  background: var(--surface-canvas);
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button, input, select, textarea { font: inherit; color: inherit; }
button, select { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img, svg, iframe { max-width: 100%; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
::selection { color: #fff; background: var(--brand-green); }
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(9, 103, 53, .24);
  outline-offset: 2px;
}

h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--ink-950); font-weight: 650; letter-spacing: -.025em; }
h1 { margin-bottom: 10px; font-size: clamp(28px, 3vw, var(--text-3xl)); line-height: 1.12; }
h2 { margin-bottom: 8px; font-size: var(--text-xl); line-height: 1.25; }
h3 { margin-bottom: 6px; font-size: var(--text-lg); line-height: 1.3; }
p { margin-bottom: 0; color: var(--ink-600); }
small { color: var(--ink-600); font-size: var(--text-xs); line-height: 1.45; }
strong { font-weight: 650; }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: -.015em; }
.muted { color: var(--ink-600); }
.ok { color: var(--success); font-weight: 600; }
.text-warning { color: var(--warning); font-weight: 600; }

body.hamdan-os-body { min-height: 100vh; }

/* ─────────────────────────────────────────────────────────────
   APP SHELL
   ───────────────────────────────────────────────────────────── */
.hos-shell {
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  min-height: 100vh;
}
.hos-sidebar {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 14px 12px 12px;
  overflow: hidden;
  background: var(--surface-sidebar);
  border-right: 1px solid var(--line-subtle);
  backdrop-filter: saturate(150%) blur(24px);
  -webkit-backdrop-filter: saturate(150%) blur(24px);
}
.hos-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 52px;
  padding: 4px 8px 12px;
  color: var(--ink-950);
}
.hos-brand-mark {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(9, 103, 53, .10);
  border-radius: 11px;
  background: var(--brand-green);
  box-shadow: 0 5px 16px rgba(9, 103, 53, .11);
}
.hos-brand-logo { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }
.hos-brand-copy { min-width: 0; }
.hos-brand-copy strong,
.hos-brand-copy small { display: block; }
.hos-brand-copy strong { color: var(--ink-900); font-size: 14px; line-height: 1.25; letter-spacing: -.01em; }
.hos-brand-copy small { margin-top: 2px; color: var(--ink-500); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.hos-nav { min-height: 0; flex: 1 1 auto; padding: 2px 2px 12px; overflow: auto; scrollbar-width: thin; }
.hos-nav-label {
  padding: 16px 10px 6px;
  color: var(--ink-500);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.hos-nav-item {
  min-height: 40px;
  margin: 2px 0;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: var(--ink-700);
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  transition: background-color .14s ease, color .14s ease, border-color .14s ease, transform .14s ease;
}
.hos-nav-item:hover { color: var(--ink-950); background: rgba(0, 0, 0, .035); }
.hos-nav-item:active { transform: scale(.985); }
.hos-nav-item.active {
  color: var(--ink-950);
  background: var(--surface-selected);
  border-color: rgba(9, 103, 53, .09);
  font-weight: 600;
}
.hos-nav-icon { width: 20px; height: 20px; flex: 0 0 auto; display: grid; place-items: center; color: var(--ink-500); }
.hos-nav-item.active .hos-nav-icon { color: var(--brand-green); }
.hos-nav-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.nav-new-tab { margin-left: auto; color: var(--ink-400); font-size: 11px; }

.hos-sidebar-foot { margin-top: auto; padding: 12px 8px 2px; border-top: 1px solid var(--line-subtle); }
.hos-local-badge { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.hos-local-badge i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(22, 115, 62, .08); }
.hos-local-badge b,
.hos-local-badge small { display: block; }
.hos-local-badge b { color: var(--ink-700); font-size: 11px; font-weight: 600; }
.hos-local-badge small { margin-top: 2px; color: var(--ink-500); font-size: 11px; line-height: 1.3; }
.hos-sidebar-foot > small { color: var(--ink-400); font-size: 11px; }

.hos-main { min-width: 0; }
.hos-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  height: var(--topbar-height);
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--surface-topbar);
  border-bottom: 1px solid var(--line-subtle);
  backdrop-filter: saturate(150%) blur(22px);
  -webkit-backdrop-filter: saturate(150%) blur(22px);
}
.hos-top-title { min-width: 0; display: flex; align-items: center; gap: 7px; color: var(--ink-400); font-size: 12px; }
.hos-top-title strong { min-width: 0; overflow: hidden; color: var(--ink-700); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.hos-breadcrumb { color: var(--ink-500); font-weight: 550; }
.hos-user { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.hos-user > div { min-width: 0; }
.hos-user strong,
.hos-user small { display: block; }
.hos-user strong { color: var(--ink-800); font-size: 12px; font-weight: 600; line-height: 1.3; }
.hos-user small { margin-top: 1px; color: var(--ink-500); font-size: 11px; }
.hos-avatar { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--brand-green-strong); background: var(--brand-green-soft); font-size: 12px; font-weight: 650; }
.hos-user form { margin: 0; }
.hos-user button { min-height: 32px; padding: 5px 9px; border: 0; border-radius: 8px; color: var(--brand-green); background: transparent; font-size: 12px; font-weight: 550; }
.hos-user button:hover { background: var(--brand-green-soft); }

.hos-content {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 32px clamp(22px, 3vw, 42px) 64px;
}

/* Legacy shell aliases — still used by Visa/older views but rendered consistently. */
.shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 14px 12px; background: var(--surface-sidebar); border-right: 1px solid var(--line-subtle); overflow: auto; }
.main { min-width: 0; }
.content-wrap { width: 100%; max-width: var(--content-max); margin: 0 auto; padding: 32px clamp(22px, 3vw, 42px) 64px; }
.app-strip { min-height: var(--topbar-height); padding: 0 28px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-subtle); background: var(--surface-topbar); color: var(--ink-500); }

/* ─────────────────────────────────────────────────────────────
   PAGE HEADERS & TEXT
   ───────────────────────────────────────────────────────────── */
.hos-page-head,
.topbar,
.overview-header,
.v121-page-head,
.v122-hotel-head {
  margin-bottom: 24px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  min-width: 0;
}
.hos-page-head > div,
.topbar > div,
.overview-header > div,
.v121-page-head > div,
.v122-hotel-head > div { min-width: 0; }
.hos-page-head p,
.topbar p,
.overview-header p,
.v121-page-head p,
.v122-hotel-head p { max-width: 780px; color: var(--ink-600); font-size: 14px; line-height: 1.55; }
.page-eyebrow {
  display: block;
  margin-bottom: 7px;
  color: var(--ink-500);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
}
.page-eyebrow.light { color: var(--ink-500); }
.back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 12px; color: var(--brand-green); font-size: 13px; font-weight: 550; }
.back:hover { text-decoration: underline; text-underline-offset: 3px; }
.text-link, .link, .row-action { color: var(--brand-green); font-size: 13px; font-weight: 550; }
.text-link:hover, .link:hover, .row-action:hover { text-decoration: underline; text-underline-offset: 3px; }
.hamdan-accent-chip,
.count-pill,
.meta-chip,
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-pill);
  color: var(--ink-600);
  background: var(--surface-secondary);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.hamdan-accent-chip { color: var(--brand-green-strong); background: var(--brand-green-soft); border-color: rgba(9,103,53,.12); }

/* ─────────────────────────────────────────────────────────────
   CONTROLS
   ───────────────────────────────────────────────────────────── */
.btn {
  appearance: none;
  min-height: 40px;
  padding: 8px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .14s ease, border-color .14s ease, box-shadow .14s ease, transform .12s ease;
}
.btn:hover:not(:disabled) { transform: translateY(-1px); }
.btn:active:not(:disabled) { transform: translateY(0) scale(.985); }
.btn.primary,
.btn.report {
  color: #fff;
  background: var(--brand-green);
  border-color: var(--brand-green);
  box-shadow: 0 5px 14px rgba(9, 103, 53, .16);
}
.btn.primary:hover:not(:disabled),
.btn.report:hover:not(:disabled) { background: var(--brand-green-strong); border-color: var(--brand-green-strong); box-shadow: 0 7px 18px rgba(9, 103, 53, .20); }
.btn.secondary,
.btn.white,
.btn.ghost-white {
  color: var(--ink-800);
  background: var(--surface-primary);
  border-color: var(--line-default);
  box-shadow: 0 1px 1px rgba(18, 28, 22, .02);
}
.btn.secondary:hover:not(:disabled),
.btn.white:hover:not(:disabled),
.btn.ghost-white:hover:not(:disabled) { background: var(--surface-secondary); border-color: var(--line-strong); }
.btn.danger { color: var(--danger); background: var(--surface-primary); border-color: rgba(180,35,24,.24); }
.btn.danger:hover:not(:disabled) { background: var(--danger-bg); }
.btn.tiny, .small-btn { min-height: 32px; padding: 5px 9px; border-radius: 8px; font-size: 12px; }
.btn.wide { width: 100%; }
.btn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
.btn.copied { color: #fff; background: var(--success); border-color: var(--success); }
.action-row, .save-actions, .report-action-row, .ops-hero-actions, .hotel-copy-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }

/* Tactility without ornamental 3D. */
.tactile, .feature-3d, .tactile-surface, .departure-3d-card { transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.tactile:hover, .feature-3d:hover, .tactile-surface:hover, .departure-3d-card:hover { transform: translateY(-1px); }
.tactile:active, .feature-3d:active, .tactile-surface:active, .departure-3d-card:active { transform: translateY(0) scale(.993); }

/* ─────────────────────────────────────────────────────────────
   FORMS
   ───────────────────────────────────────────────────────────── */
.hos-form,
.form-panel,
.card-form,
.cloud-form-pad,
.calendar-note-form,
.cloud-chat-compose,
.chat-composer,
.batch-upload-form,
.compact-master-form { display: grid; gap: 16px; }
.hos-form label,
.form-panel label,
.card-form label,
.cloud-form-pad label,
.calendar-note-form label,
.cloud-chat-compose label,
.chat-composer label,
.inline-form label,
.settings-grid label,
.form-grid label,
.hos-form-grid label,
.cloud-filter-bar label,
.month-filter label,
.cloud-report-actions label,
.hotel-master-cloud-row label,
.finance-check-card label,
.finance-review-card label,
.accommodation-input-card label,
.auth-card label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--ink-600);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
input,
select,
textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line-default);
  border-radius: 9px;
  background: var(--surface-primary);
  color: var(--ink-900);
  font-size: 14px;
  font-weight: 450;
  line-height: 1.4;
  outline: 0;
  transition: border-color .14s ease, box-shadow .14s ease, background-color .14s ease;
}
input, select { min-height: 42px; padding: 9px 11px; }
textarea { min-height: 92px; padding: 10px 11px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--ink-400); }
input[readonly], textarea[readonly], input:disabled, textarea:disabled, select:disabled { color: var(--ink-600); background: var(--surface-tertiary); }
input:hover, select:hover, textarea:hover { border-color: var(--line-strong); }
input:focus, select:focus, textarea:focus {
  border-color: rgba(9, 103, 53, .52);
  box-shadow: 0 0 0 3px rgba(9, 103, 53, .11);
}
input[type="checkbox"], input[type="radio"] { width: 18px; min-height: 18px; accent-color: var(--brand-green); }
.hos-form-grid, .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hos-form-grid.three, .form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hos-form-grid.five, .form-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hos-form-grid .span2, .form-grid .span2 { grid-column: span 2; }
.hos-form-grid .span3, .form-grid .span3 { grid-column: span 3; }
.hos-panel > .hos-form:not(.cloud-form-pad) { padding: 18px; }
.form-help-link { margin-top: -6px; color: var(--brand-green); font-size: 12px; }
.inline-form, .inline-create { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.inline-form > *, .inline-create > * { min-width: 150px; }
.savebar {
  position: sticky;
  bottom: 12px;
  z-index: 30;
  margin-top: 20px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line-default);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-float);
  backdrop-filter: blur(18px);
}
.savebar > div:first-child { min-width: 0; }
.savebar strong, .savebar span { display: block; }
.savebar strong { font-size: 13px; }
.savebar span { margin-top: 2px; color: var(--ink-600); font-size: 12px; }

/* ─────────────────────────────────────────────────────────────
   PANELS, CARDS, STATUS
   ───────────────────────────────────────────────────────────── */
.hos-panel,
.panel,
.card,
.finance-check-card,
.finance-review-card,
.cloud-departure-card,
.departure-card,
.departure-3d-card,
.role-card,
.accommodation-input-card,
.settings-section,
.report-format-card,
.group-hotel-card,
.hotel-master-create,
.nusuk-focus-card,
.attention-item,
.next-context-card {
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-lg);
  background: var(--surface-primary);
  box-shadow: var(--shadow-1);
}
.hos-panel, .panel { margin-bottom: 18px; overflow: hidden; }
.hos-panel-head,
.panel-head,
.calendar-panel-head,
.settings-section-head,
.worklist-head {
  min-height: 62px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--line-subtle);
  background: var(--surface-primary);
}
.hos-panel-head > div, .panel-head > div, .calendar-panel-head > div, .settings-section-head > div { min-width: 0; }
.panel-head > div > strong,
.panel-head > div > span,
.settings-section-head > strong,
.settings-section-head > span { display: block; }
.panel-head > div > span, .settings-section-head > span { margin-top: 3px; color: var(--ink-600); font-size: 12px; line-height: 1.45; }
.hos-panel-head h2, .panel-head h2, .settings-section-head h2, .calendar-panel-head h2 { margin: 0; font-size: 17px; }
.hos-panel-head p, .panel-head p, .settings-section-head p, .calendar-panel-head p, .panel-subtitle { margin: 3px 0 0; color: var(--ink-600); font-size: 12px; line-height: 1.45; }
.cloud-form-pad { padding: 20px; }
.card { padding: 18px; }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.card span, .card strong, .card small { display: block; }
.card > span { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.card > strong { margin: 8px 0 3px; font-size: 30px; line-height: 1.05; letter-spacing: -.035em; }
.card > small { font-size: 12px; }

.badge,
.passport-status,
.ocr-badge,
.flow-state,
.focus-state,
.sync-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-height: 27px;
  padding: 5px 9px;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-pill);
  color: var(--ink-600);
  background: var(--surface-tertiary);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0;
  white-space: nowrap;
}
.badge.ready, .badge.done, .passport-status.ready, .ocr-badge.match, .badge.success { color: var(--success); background: var(--success-bg); border-color: rgba(22,115,62,.14); }
.badge.running, .badge.review, .ocr-badge.review { color: var(--info); background: var(--info-bg); border-color: rgba(49,95,145,.13); }
.badge.needs_review, .badge.warning { color: var(--warning); background: var(--warning-bg); border-color: rgba(154,92,6,.15); }
.badge.blocked, .badge.danger, .ocr-badge.mismatch { color: var(--danger); background: var(--danger-bg); border-color: rgba(180,35,24,.15); }
.badge.big { min-height: 31px; padding: 6px 10px; font-size: 12px; }
.passport-status.missing, .ocr-badge.not_run { color: var(--ink-600); background: var(--surface-tertiary); }

.alert,
.asset-status,
.status-banner,
.inline-warning,
.finance-callout {
  position: relative;
  margin-bottom: 16px;
  padding: 13px 15px;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  color: var(--ink-700);
  background: var(--surface-primary);
  font-size: 13px;
  line-height: 1.5;
}
.alert strong, .status-banner strong { display: block; margin-bottom: 3px; color: inherit; }
.alert.success, .asset-status.ok { color: #145f38; background: var(--success-bg); border-color: rgba(22,115,62,.16); }
.alert.warning, .inline-warning { color: #80500d; background: var(--warning-bg); border-color: rgba(154,92,6,.16); }
.alert.danger { color: #8f251d; background: var(--danger-bg); border-color: rgba(180,35,24,.16); }
.status-banner { color: #315f91; background: var(--info-bg); border-color: rgba(49,95,145,.15); }

.hos-empty, .cockpit-empty {
  min-height: 120px;
  padding: 28px 20px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 5px;
  color: var(--ink-500);
  text-align: center;
  border: 1px dashed var(--line-default);
  border-radius: 12px;
  background: var(--surface-secondary);
}
.hos-empty strong, .hos-empty span, .cockpit-empty strong, .cockpit-empty span { display: block; }
.hos-empty strong, .cockpit-empty strong { color: var(--ink-700); font-size: 14px; }
.hos-empty.compact { min-height: 72px; padding: 16px; }
.empty { min-height: 86px; padding: 20px; display: grid; place-items: center; align-content: center; gap: 4px; color: var(--ink-500); text-align: center; background: var(--surface-secondary); }
.empty strong, .empty span { display: block; }
.empty strong { color: var(--ink-700); font-size: 13px; }
.empty span { font-size: 12px; line-height: 1.45; }

/* ─────────────────────────────────────────────────────────────
   TABLES
   ───────────────────────────────────────────────────────────── */
.table-wrap, .preview-table-wrap { width: 100%; overflow: auto; scrollbar-gutter: stable; }
table, .hos-table, .ops-table, .preview-table { width: 100%; border-collapse: separate; border-spacing: 0; color: var(--ink-800); font-size: 13px; }
thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 10px 12px;
  color: var(--ink-500);
  background: var(--surface-secondary);
  border-bottom: 1px solid var(--line-default);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.3;
  text-align: left;
  white-space: nowrap;
}
tbody td { padding: 12px; border-bottom: 1px solid var(--line-subtle); vertical-align: middle; line-height: 1.45; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: rgba(9, 103, 53, .018); }
td > small { display: block; margin-top: 3px; color: var(--ink-500); line-height: 1.35; }
td > strong + small { display: block; margin-top: 3px; }
.hos-table td.mono strong { white-space: nowrap; }
.table-toolbar, .preview-filterbar { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line-subtle); background: var(--surface-secondary); }
.search-box { min-width: 220px; max-width: 420px; }
.filter-group, .filters { display: flex; gap: 6px; flex-wrap: wrap; }
.filters a { min-height: 30px; padding: 5px 8px; display: inline-flex; align-items: center; border: 1px solid var(--line-subtle); border-radius: var(--radius-pill); color: var(--ink-600); background: var(--surface-primary); font-size: 11px; font-weight: 600; line-height: 1.2; }
.filters a:hover { color: var(--ink-800); background: var(--surface-secondary); border-color: var(--line-default); }
.filters a.active { color: var(--brand-green-strong); background: var(--brand-green-soft); border-color: rgba(9,103,53,.14); }
.filter-chip { cursor: pointer; }
.filter-chip.active { color: var(--brand-green-strong); background: var(--brand-green-soft); border-color: rgba(9,103,53,.14); }
.jamaah-cell { display: flex; align-items: center; gap: 9px; min-width: 170px; }
.jamaah-avatar { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--brand-green-strong); background: var(--brand-green-soft); font-size: 12px; font-weight: 650; }
.jamaah-cell strong, .jamaah-cell small { display: block; }
.jamaah-cell small { margin-top: 2px; }

/* ─────────────────────────────────────────────────────────────
   AUTH / FIRST SETUP
   ───────────────────────────────────────────────────────────── */
.auth-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 50% 0%, rgba(9,103,53,.055), transparent 34rem),
    var(--surface-canvas);
}
.auth-shell { width: min(430px, 100%); }
.auth-visual { margin-bottom: 22px; text-align: center; }
.auth-logo {
  width: 88px;
  height: 88px;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(9,103,53,.12);
  border-radius: 22px;
  background: var(--brand-green);
  box-shadow: 0 12px 34px rgba(9,103,53,.14);
}
.auth-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.auth-visual h1 { margin-bottom: 7px; font-size: 30px; }
.auth-visual p { max-width: 390px; margin: 0 auto; color: var(--ink-600); font-size: 14px; line-height: 1.55; }
.auth-security { margin-top: 12px; display: inline-flex; align-items: center; gap: 8px; color: var(--ink-500); font-size: 12px; }
.auth-security i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); }
.auth-card { padding: 24px; border: 1px solid var(--line-default); border-radius: 18px; background: var(--surface-primary); box-shadow: var(--shadow-2); }
.auth-card > div { margin-bottom: 18px; }
.auth-card h2 { margin: 0; font-size: 21px; }
.auth-card > div > p { margin-top: 5px; font-size: 13px; }
.auth-footnote { margin-top: 16px; color: var(--ink-400); font-size: 11px; text-align: center; }

/* ─────────────────────────────────────────────────────────────
   CLOUD OVERVIEW / CALENDAR
   ───────────────────────────────────────────────────────────── */
.cloud-summary-grid,
.summary-stats,
.source-summary-grid,
.ops-metrics,
.ocr-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-lg);
  background: var(--line-subtle);
  box-shadow: var(--shadow-1);
}
.cloud-summary-grid > div,
.summary-stat,
.source-summary-grid > div,
.ops-metric,
.ocr-summary-grid > div {
  min-width: 0;
  padding: 16px 18px;
  background: var(--surface-primary);
}
.cloud-summary-grid span,
.summary-stat span,
.source-summary-grid span,
.ops-metric .metric-label,
.ocr-summary-grid span { display: block; color: var(--ink-500); font-size: 11px; font-weight: 600; line-height: 1.3; }
.cloud-summary-grid strong,
.summary-stat strong,
.source-summary-grid strong,
.ops-metric strong,
.ocr-summary-grid strong { display: block; margin-top: 6px; color: var(--ink-950); font-size: 27px; line-height: 1.05; letter-spacing: -.035em; }
.ops-metric small { display: block; margin-top: 4px; }
.ops-metric.warning strong { color: var(--warning); }
.ops-metric.danger strong { color: var(--danger); }
.ops-metric.accent strong { color: var(--brand-green); }
.ops-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.metric-denom { font-size: 16px; color: var(--ink-400); }

.cloud-dashboard-grid, .overview-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .8fr); gap: 18px; align-items: start; }
.mini-calendar-cloud, .mini-calendar-panel { padding: 14px 16px 18px; }
.calendar-weekdays, .mini-calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 4px; margin-bottom: 4px; }
.calendar-weekdays span, .mini-calendar-weekdays span { padding: 7px 4px; color: var(--ink-500); font-size: 11px; font-weight: 600; text-align: center; }
.calendar-week, .mini-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 4px; }
.calendar-cell, .calendar-day {
  position: relative;
  aspect-ratio: 1.14 / 1;
  min-height: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 10px;
  color: var(--ink-700);
  background: transparent;
  font-size: 13px;
  font-weight: 550;
  transition: background-color .12s ease, transform .12s ease;
}
.calendar-cell:hover, .calendar-day:hover { background: var(--surface-tertiary); }
.calendar-cell:active, .calendar-day:active { transform: scale(.97); }
.calendar-cell.outside, .calendar-day.outside { color: var(--ink-400); }
.calendar-cell.today, .calendar-day.today { color: #fff; background: var(--brand-green); }
.calendar-cell i, .calendar-markers { min-height: 6px; display: flex; gap: 3px; align-items: center; }
.dep-dot, .departure-dot, .note-dot { width: 5px; height: 5px; display: inline-block; border-radius: 50%; }
.dep-dot, .departure-dot { background: var(--brand-green); }
.note-dot { background: var(--brand-orange); }
.calendar-cell.today .dep-dot, .calendar-cell.today .note-dot, .calendar-day.today .dep-dot, .calendar-day.today .note-dot { background: #fff; }
.dashboard-departure-list, .schedule-list, .activity-feed, .communication-list, .timeline-compact { display: grid; }
.dashboard-departure-list > a,
.schedule-item,
.activity-item,
.communication-item,
.timeline-compact > div {
  min-width: 0;
  padding: 13px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line-subtle);
}
.dashboard-departure-list > a:last-child,
.schedule-item:last-child,
.activity-item:last-child,
.communication-item:last-child,
.timeline-compact > div:last-child { border-bottom: 0; }
.dashboard-departure-list > a:hover, .schedule-item:hover { background: var(--surface-secondary); }
.dashboard-departure-list strong, .dashboard-departure-list small,
.schedule-main strong, .schedule-main small { display: block; }
.dashboard-departure-list small, .schedule-main small { margin-top: 3px; }
.dashboard-departure-list > a > span { flex: 0 0 auto; color: var(--ink-700); font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; }

.calendar-popup-departure, .calendar-popup-note, .calendar-note-item, .calendar-departure-item { padding: 11px 12px; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--surface-secondary); }
.calendar-popup-departure + .calendar-popup-departure,
.calendar-popup-note + .calendar-popup-note { margin-top: 8px; }
.calendar-popup-departure strong, .calendar-popup-departure small { display: block; }
.calendar-popup-departure small { margin-top: 2px; }

/* ─────────────────────────────────────────────────────────────
   DEPARTURE BOARD / CLOUD CARDS
   ───────────────────────────────────────────────────────────── */
.cloud-filter-bar,
.source-board-head,
.month-filter {
  margin-bottom: 16px;
  padding: 14px;
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px solid var(--line-subtle);
  border-radius: 14px;
  background: var(--surface-primary);
  box-shadow: var(--shadow-1);
}
.cloud-filter-bar .grow { flex: 1 1 280px; }
.cloud-filter-bar label { min-width: 170px; }
.cloud-filter-bar label.grow { min-width: 240px; }
.cloud-departure-grid,
.departure-cards,
.departure-card-grid,
.finance-cloud-grid,
.finance-review-grid,
.role-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
  align-items: stretch;
}
.cloud-departure-card,
.departure-card,
.departure-3d-card,
.finance-check-card,
.finance-review-card,
.role-card { padding: 18px; min-width: 0; }
.cloud-departure-card.overbook { border-color: rgba(180,35,24,.25); }
.cloud-card-head,
.departure-card-top,
.finance-card-top {
  margin-bottom: 14px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.cloud-card-head > div, .departure-card-top > div, .finance-card-top > div { min-width: 0; }
.cloud-card-head h2, .departure-card-top h2, .finance-card-top h2 { margin: 0 0 4px; font-size: 18px; overflow-wrap: anywhere; }
.cloud-card-head .mono, .departure-code { color: var(--ink-500); font-size: 12px; }
.cloud-date-countdown, .countdown-hero, .countdown-tile, .review-countdown {
  margin-bottom: 14px;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-radius: 10px;
  background: var(--surface-secondary);
  border: 1px solid var(--line-subtle);
}
.cloud-date-countdown strong, .countdown-tile strong, .review-countdown strong { color: var(--ink-800); font-size: 13px; font-variant-numeric: tabular-nums; }
.cloud-date-countdown span, .countdown-tile span, .review-countdown span { color: var(--ink-500); font-size: 11px; text-align: right; }
.countdown-past { background: var(--surface-tertiary); }
.seat-meter {
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  overflow: hidden;
  border: 1px solid var(--line-subtle);
  border-radius: 10px;
}
.seat-meter > div { padding: 10px 11px; border-right: 1px solid var(--line-subtle); background: var(--surface-primary); }
.seat-meter > div:last-child { border-right: 0; }
.seat-meter span, .seat-meter strong { display: block; }
.seat-meter span { color: var(--ink-500); font-size: 11px; }
.seat-meter strong { margin-top: 3px; font-size: 16px; }
.cloud-owner, .dashboard-pic, .departure-owner-chip, .kpu-owner-pill { margin-bottom: 14px; padding: 11px 12px; border-radius: 10px; background: var(--brand-green-faint); border: 1px solid rgba(9,103,53,.08); }
.cloud-owner span, .cloud-owner strong, .cloud-owner small,
.dashboard-pic span, .dashboard-pic strong, .dashboard-pic small { display: block; }
.cloud-owner span, .dashboard-pic span { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.cloud-owner strong, .dashboard-pic strong { margin-top: 3px; color: var(--ink-800); font-size: 13px; }
.cloud-owner small, .dashboard-pic small { margin-top: 1px; }

.source-board { margin-bottom: 18px; }
.source-departure-list { overflow: hidden; border: 1px solid var(--line-subtle); border-radius: 14px; background: var(--surface-primary); }
.source-departure-row { padding: 12px 14px; display: grid; grid-template-columns: 64px minmax(0,1fr) auto auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-subtle); }
.source-departure-row:last-child { border-bottom: 0; }
.source-date { text-align: center; }
.source-date strong, .source-date small, .source-main strong, .source-main small, .source-seat strong, .source-seat small { display: block; }
.source-main, .source-seat, .source-state { min-width: 0; }

/* ─────────────────────────────────────────────────────────────
   KPU / GROUP WORKSPACE
   ───────────────────────────────────────────────────────────── */
.cloud-kpu-hero,
.kpu-command-header,
.detail-hero {
  margin-bottom: 18px;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-lg);
  background: var(--surface-primary);
  box-shadow: var(--shadow-1);
}
.cloud-kpu-hero > div:first-child,
.kpu-command-copy,
.detail-meta { min-width: 0; }
.cloud-kpu-hero h1, .kpu-command-header h1, .detail-hero h1 { margin-bottom: 6px; font-size: clamp(26px, 3vw, 34px); overflow-wrap: anywhere; }
.cloud-kpu-hero p, .kpu-command-header p, .detail-hero p { font-size: 13px; }
.cloud-start-card { padding: 24px; }
.cloud-start-card > div { max-width: 700px; }
.cloud-start-card form { margin-top: 16px; }
.kpu-section-nav,
.sticky-nav {
  position: sticky;
  top: calc(var(--topbar-height) + 10px);
  z-index: 25;
  margin-bottom: 18px;
  padding: 7px;
  display: flex;
  gap: 4px;
  overflow: auto;
  border: 1px solid var(--line-default);
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-1);
  backdrop-filter: blur(18px);
}
.kpu-section-nav a, .sticky-nav a { min-height: 32px; padding: 7px 10px; display: inline-flex; align-items: center; border-radius: 8px; color: var(--ink-600); font-size: 12px; font-weight: 550; white-space: nowrap; }
.kpu-section-nav a:hover, .sticky-nav a:hover { color: var(--ink-900); background: var(--surface-tertiary); }

.accommodation-form-grid, .v121-group-grid, .v121-report-grid, .passport-manager-grid, .review-grid, .lifecycle-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.accommodation-input-card { padding: 16px; box-shadow: none; }
.accommodation-input-card > span { display: block; margin-bottom: 12px; color: var(--ink-500); font-size: 11px; font-weight: 650; }
.accommodation-input-card .hos-form-grid { margin-top: 12px; }
.accommodation-input-card .btn { margin-top: 12px; }

.cloud-flow-list, .flow-report-board { display: grid; }
.cloud-flow-row,
.flow-report-row {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) minmax(150px,190px) auto;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line-subtle);
}
.cloud-flow-row:last-child, .flow-report-row:last-child { border-bottom: 0; }
.flow-seq, .service-seq, .section-number {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: var(--brand-green-strong);
  background: var(--brand-green-soft);
  font-size: 11px;
  font-weight: 650;
}
.flow-main, .flow-note-field { min-width: 0; }
.flow-main strong { display: block; margin-bottom: 7px; color: var(--ink-800); font-size: 13px; }
.flow-main textarea { min-height: 68px; }
.flow-actions { display: flex; align-items: center; gap: 8px; }

.cloud-report-actions { padding: 18px; }
.cloud-report-actions form { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.cloud-report-actions label { min-width: 180px; flex: 1 1 180px; }
.report-format-card { padding: 16px; }
.report-format-card pre,
.cloud-chat-message pre,
.communication-card pre,
.audit-json {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.55;
}

.cloud-chat-list, .chat-stream { max-height: 520px; padding: 16px; display: grid; gap: 10px; overflow: auto; background: var(--surface-secondary); }
.cloud-chat-message, .chat-bubble { max-width: min(780px, 92%); padding: 11px 13px; border: 1px solid var(--line-subtle); border-radius: 12px; background: var(--surface-primary); box-shadow: 0 1px 1px rgba(18,28,22,.025); }
.cloud-chat-message > div, .chat-bubble > div { margin-bottom: 5px; display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.cloud-chat-message strong, .chat-bubble strong { font-size: 12px; }
.cloud-chat-message > div span, .chat-bubble > div span { color: var(--ink-500); font-size: 11px; }
.cloud-chat-message > small { display: block; margin-top: 6px; color: var(--ink-500); }
.cloud-chat-compose, .chat-composer { padding: 14px 16px; grid-template-columns: minmax(0,1fr) auto; align-items: end; border-top: 1px solid var(--line-subtle); background: var(--surface-primary); }
.cloud-chat-compose textarea, .chat-composer textarea { min-height: 72px; }

/* ─────────────────────────────────────────────────────────────
   HOTEL / FINANCE / ADMIN
   ───────────────────────────────────────────────────────────── */
.hos-two-column, .v122-hotel-layout, .settings-shell { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.45fr); gap: 18px; align-items: start; }
.hos-two-column.wide-left { grid-template-columns: minmax(0,1.55fr) minmax(300px,.55fr); }
.sticky-card { position: sticky; top: calc(var(--topbar-height) + 18px); }
.hotel-master-cloud-list, .hotel-master-list { display: grid; }
.hotel-master-cloud-row,
.hotel-master-row {
  padding: 12px 14px;
  display: grid;
  grid-template-columns: minmax(220px,1fr) minmax(130px,.5fr) minmax(120px,.45fr) auto;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line-subtle);
}
.hotel-master-cloud-row:last-child, .hotel-master-row:last-child { border-bottom: 0; }
.hotel-master-cloud-row input, .hotel-master-cloud-row select { min-height: 38px; font-size: 13px; }
.hotel-master-create { padding: 16px; }
.hotel-master-column { min-width: 0; }
.group-hotel-stays { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.group-hotel-stay { padding: 12px; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--surface-secondary); }
.hotel-city-label { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.hotel-stay-range { margin-top: 3px; color: var(--ink-600); font-size: 12px; }

.finance-check-card, .finance-review-card { display: grid; gap: 10px; }
.finance-check-card > .mono, .finance-review-card > .mono { color: var(--ink-500); font-size: 11px; }
.finance-check-card h2, .finance-review-card h2 { margin: 0; font-size: 18px; }
.finance-check-card p, .finance-review-card p { font-size: 12px; }
.finance-check-card form, .finance-review-card form { display: grid; gap: 8px; }
.finance-review-meta { display: grid; gap: 3px; color: var(--ink-600); font-size: 12px; }

.role-card { padding: 18px; }
.permission-list { display: grid; gap: 12px; }
.permission-module { padding: 13px; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--surface-secondary); }
.permission-module > strong { display: block; margin-bottom: 8px; font-size: 12px; }
.permission-row { min-height: 34px; display: flex; align-items: center; gap: 8px; color: var(--ink-700); font-size: 12px; }
.permission-row > span { min-width: 0; display: grid; gap: 2px; }
.permission-row strong, .permission-row small { display: block; }
.permission-row strong { color: var(--ink-700); line-height: 1.35; }
.permission-row small { color: var(--ink-500); line-height: 1.35; overflow-wrap: anywhere; }
.activity-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--brand-green); }

.settings-section { overflow: hidden; }
.settings-section-head { border-bottom: 1px solid var(--line-subtle); }
.settings-grid { padding: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.settings-grid .wide { grid-column: 1 / -1; }
.settings-footer { margin-top: 18px; display: flex; justify-content: flex-end; }

/* ─────────────────────────────────────────────────────────────
   DIALOGS / POPOVERS
   ───────────────────────────────────────────────────────────── */
.hos-dialog {
  width: min(680px, calc(100vw - 28px));
  max-height: min(88vh, 820px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  color: var(--ink-950);
  background: transparent;
  box-shadow: var(--shadow-float);
}
.hos-dialog::backdrop { background: rgba(20,24,22,.28); backdrop-filter: blur(3px); }
.dialog-shell { max-height: min(88vh, 820px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.65); border-radius: 18px; background: var(--surface-primary); }
.dialog-shell > header { padding: 17px 18px 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-subtle); }
.dialog-shell > header h2 { margin: 0; }
.dialog-close { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--ink-600); background: var(--surface-tertiary); font-size: 20px; line-height: 1; }
.dialog-close:hover { color: var(--ink-950); background: #e7eae7; }
.dialog-scroll, .calendar-dialog-body { padding: 18px; display: grid; gap: 14px; overflow: auto; }
.dialog-shell > footer { padding: 13px 18px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; border-top: 1px solid var(--line-subtle); background: var(--surface-secondary); }

.passport-zoom-dialog { width: min(1050px, calc(100vw - 28px)); }
.passport-zoom-stage { min-height: 58vh; display: grid; place-items: center; padding: 16px; overflow: auto; background: #202421; }
.passport-zoom-stage img { max-width: 100%; max-height: 72vh; object-fit: contain; border-radius: 8px; }

/* ─────────────────────────────────────────────────────────────
   VISA OPERATIONS / LOCAL AGENT
   ───────────────────────────────────────────────────────────── */
.ops-hero {
  margin-bottom: 18px;
  padding: 20px 22px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-lg);
  background: var(--surface-primary);
  box-shadow: var(--shadow-1);
}
.ops-hero-copy { min-width: 0; max-width: 760px; }
.ops-hero h1 { margin-bottom: 7px; font-size: 30px; }
.ops-hero-copy p { font-size: 13px; line-height: 1.5; }
.ops-hero-actions { justify-content: flex-end; }
.queue-progress-shell { margin-bottom: 18px; padding: 13px 16px; border: 1px solid var(--line-subtle); border-radius: 12px; background: var(--surface-primary); }
.queue-progress-copy { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--ink-500); font-size: 11px; }
.queue-progress-copy strong { color: var(--ink-700); font-size: 11px; }
.queue-progress { height: 6px; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-tertiary); }
.queue-progress span { display: block; height: 100%; border-radius: inherit; background: var(--brand-green); }

.operator-cockpit { margin-bottom: 18px; overflow: hidden; border: 1px solid var(--line-default); border-radius: 18px; background: var(--surface-primary); box-shadow: var(--shadow-2); }
.cockpit-topline { min-height: 56px; padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line-subtle); background: var(--surface-secondary); }
.cockpit-title-group { min-width: 0; }
.cockpit-kicker { display: block; margin-bottom: 2px; color: var(--ink-500); font-size: 11px; font-weight: 650; }
.cockpit-topline h2 { margin: 0; font-size: 16px; }
.sync-cluster { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.sync-badge { color: var(--success); background: var(--success-bg); border-color: rgba(22,115,62,.14); }
.sync-badge.idle { color: var(--ink-600); background: var(--surface-tertiary); border-color: var(--line-default); }
.sync-badge.error { color: var(--danger); background: var(--danger-bg); border-color: rgba(180,35,24,.15); }
.sync-badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sync-note { color: var(--ink-500); font-size: 11px; }

.focus-identity-bar { padding: 13px 16px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line-subtle); background: var(--surface-primary); }
.focus-identity-bar > div { min-width: 0; }
.focus-identity-bar > div > span { display: block; color: var(--ink-500); font-size: 11px; font-weight: 650; }
.focus-identity-bar > div > strong { display: block; margin-top: 2px; color: var(--ink-800); font-size: 13px; }
.focus-identity-name strong, .focus-identity-name small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.focus-identity-name strong { font-size: 14px; }
.focus-identity-name small { margin-top: 2px; font-size: 11px; }
.focus-state { justify-self: end; }
.focus-tabs { display: none; padding: 8px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; border-bottom: 1px solid var(--line-subtle); background: var(--surface-secondary); }
.focus-tabs button { min-height: 36px; border: 0; border-radius: 8px; color: var(--ink-600); background: transparent; font-size: 12px; font-weight: 600; }
.focus-tabs button.active { color: var(--brand-green-strong); background: var(--surface-primary); box-shadow: 0 1px 3px rgba(18,28,22,.06); }

.cockpit-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(390px,.92fr); min-width: 0; }
.passport-console { min-width: 0; padding: 16px; border-right: 1px solid var(--line-subtle); background: #1f2421; color: #f4f7f5; }
.passport-console-head { margin-bottom: 11px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.passport-console-head > div { min-width: 0; }
.console-label { display: block; margin-bottom: 3px; color: #9eaaa3; font-size: 11px; font-weight: 650; }
.passport-console-head strong { display: block; overflow: hidden; color: #f6f8f7; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.passport-stage { position: relative; min-height: 430px; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.10); border-radius: 12px; background: #171b19; }
.passport-stage img, .passport-stage iframe { width: 100%; height: 100%; min-height: 430px; object-fit: contain; border: 0; }
.passport-empty-state { display: grid; place-items: center; align-content: center; gap: 5px; padding: 20px; color: #aeb8b2; text-align: center; }
.passport-empty-state span { font-size: 11px; font-weight: 650; }
.passport-empty-state strong { color: #fff; font-size: 15px; }
.passport-empty-state small { color: #9eaaa3; }
.passport-scan-corners { pointer-events: none; }
.passport-console-foot { margin-top: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; color: #aeb8b2; font-size: 11px; line-height: 1.45; }
.passport-console-foot > span { max-width: 68%; }
.console-link { color: #d7eadd; font-weight: 550; text-align: right; }

.operator-console { min-width: 0; padding: 16px; background: var(--surface-primary); }
.current-identity { margin-bottom: 13px; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 12px; align-items: center; }
.identity-index { min-width: 95px; padding: 10px 11px; border-radius: 10px; background: var(--surface-secondary); border: 1px solid var(--line-subtle); }
.identity-index span, .data-check-grid span, .bridge-state-strip div > span, .next-context-card span { display: block; color: var(--ink-500); font-size: 11px; font-weight: 650; }
.identity-index strong { display: block; margin-top: 3px; font-size: 14px; }
.identity-name { min-width: 0; }
.identity-name h3 { margin: 0 0 6px; font-size: 20px; overflow-wrap: anywhere; }
.identity-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.data-check-grid { margin-bottom: 13px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--line-subtle); gap: 1px; }
.data-check-grid > div { min-width: 0; padding: 10px 11px; background: var(--surface-primary); }
.data-check-grid strong { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--ink-800); font-size: 12px; line-height: 1.4; }
.bridge-state-strip { margin-bottom: 12px; padding: 11px 12px; display: flex; align-items: center; gap: 10px; border-radius: 10px; background: var(--info-bg); border: 1px solid rgba(49,95,145,.12); }
.state-pulse { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--info); }
.bridge-state-strip strong { display: block; margin-top: 2px; color: var(--ink-800); font-size: 12px; }
.next-context-card { padding: 12px; box-shadow: none; }
.next-context-card strong, .next-context-card p { display: block; }
.next-context-card strong { margin-top: 3px; font-size: 13px; }
.next-context-card p { margin-top: 3px; font-size: 12px; }
.cockpit-rule { margin: 12px 0; color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.cockpit-actions, .cockpit-actions-sticky { display: flex; gap: 8px; flex-wrap: wrap; }
.cockpit-actions-sticky { position: sticky; bottom: 8px; z-index: 10; margin-top: 12px; padding: 9px; border: 1px solid var(--line-default); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-2); }
.ops-readiness-strip { padding: 12px 16px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; border-top: 1px solid var(--line-subtle); background: var(--surface-secondary); }
.ops-readiness-strip > div { min-width: 0; display: flex; align-items: flex-start; gap: 9px; }
.ops-readiness-strip > div > div { min-width: 0; }
.ops-readiness-strip strong, .ops-readiness-strip small { display: block; }
.ops-readiness-strip strong { color: var(--ink-800); font-size: 13px; line-height: 1.35; }
.ops-readiness-strip small { margin-top: 3px; color: var(--ink-600); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.readiness-dot { display: inline-block; width: 8px; height: 8px; flex: 0 0 auto; margin-top: 4px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 3px rgba(154,92,6,.08); }
.readiness-dot.ok { background: var(--success); box-shadow: 0 0 0 3px rgba(22,115,62,.08); }
.worklist-panel { margin-top: 18px; }
.worklist-head > div { min-width: 0; }
.worklist-head h2 { margin: 2px 0 0; font-size: 17px; }
.worklist-head p { margin: 4px 0 0; color: var(--ink-600); font-size: 12px; line-height: 1.45; }
.worklist-tools { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.table-state { color: var(--ink-500); font-size: 11px; }

/* Batch / OCR / passport utility views */
.batch-import-panel, .ocr-setup-panel, .ocr-summary-panel { overflow: hidden; }
.batch-drop { min-height: 150px; padding: 24px; display: grid; place-items: center; align-content: center; gap: 8px; border: 1px dashed var(--line-strong); border-radius: 12px; background: var(--surface-secondary); text-align: center; }
.drop-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: var(--brand-green); background: var(--brand-green-soft); font-weight: 700; }
.batch-cards { grid-template-columns: repeat(4,minmax(0,1fr)); }
.batch-flow { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.batch-flow > div { padding: 10px 11px; border: 1px solid var(--line-subtle); border-radius: 9px; background: var(--surface-secondary); color: var(--ink-600); font-size: 11px; text-align: center; }
.preview-meta { color: var(--ink-600); font-size: 11px; line-height: 1.6; }
.ocr-cell { min-width: 245px; }
.ocr-summary { display: block; margin: 6px 0; line-height: 1.45; }
.ocr-fields { display: flex; flex-wrap: wrap; gap: 5px; }
.ocr-field { padding: 5px 7px; border: 1px solid var(--line-subtle); border-radius: 7px; color: var(--ink-600); background: var(--surface-primary); font-size: 11px; }
.ocr-field b, .ocr-field span { display: block; }
.ocr-field span { margin-top: 2px; line-height: 1.35; overflow-wrap: anywhere; }
.ocr-field.match { color: var(--success); background: var(--success-bg); border-color: rgba(22,115,62,.13); }
.ocr-field.review { color: var(--warning); background: var(--warning-bg); border-color: rgba(154,92,6,.14); }
.ocr-field.mismatch { color: var(--danger); background: var(--danger-bg); border-color: rgba(180,35,24,.14); }
.ocr-field small { display: block; margin-top: 3px; color: inherit; }
.ocr-runtime-note { padding: 11px 16px; color: var(--ink-600); background: var(--surface-secondary); border-top: 1px solid var(--line-subtle); font-size: 11px; line-height: 1.5; }
.passport-thumb { width: 160px; height: 104px; object-fit: contain; border: 1px solid var(--line-default); border-radius: 9px; background: var(--surface-secondary); }
.preview-missing td { background: rgba(237,148,32,.035); }
.preview-mismatch td { background: rgba(180,35,24,.035); }
.passport-manager, .passport-current, .passport-replace { min-width: 0; }
.passport-current, .passport-replace { padding: 16px; border: 1px solid var(--line-subtle); border-radius: 12px; background: var(--surface-secondary); }
.passport-current > div > strong, .passport-current > div > small, .passport-current > div > a { display: block; }
.passport-current > div > small { margin-top: 3px; color: var(--ink-600); line-height: 1.4; overflow-wrap: anywhere; }
.passport-current > div > a { margin-top: 6px; }
.passport-file-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--brand-green); background: var(--brand-green-soft); }


/* ─────────────────────────────────────────────────────────────
   COMPATIBILITY LAYOUTS / UTILITY VIEWS
   ───────────────────────────────────────────────────────────── */
.grid { display: grid; gap: 18px; }
.grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-panel { padding-bottom: 18px; }
.form-panel > :not(.panel-head):not(.hos-panel-head),
.panel.form-panel > :not(.panel-head):not(.hos-panel-head) { margin-left: 18px; margin-right: 18px; }
.panel.form-panel > .form-grid,
.panel.form-panel > .hos-form-grid { margin-top: 18px; }

.source-box {
  min-width: 0;
  margin-top: 10px;
  padding: 12px 13px;
  border: 1px solid var(--line-subtle);
  border-radius: 10px;
  background: var(--surface-secondary);
  color: var(--ink-600);
  font-size: 12px;
  line-height: 1.5;
}
.source-box strong { display: block; margin-bottom: 4px; color: var(--ink-800); font-size: 12px; }
.source-box code, .selector code, .ocr-paths code { font-family: var(--font-mono); font-size: 11px; overflow-wrap: anywhere; }

.ocr-setup-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line-subtle); border-bottom: 1px solid var(--line-subtle); }
.ocr-status-tile { min-width: 0; padding: 14px 16px; background: var(--surface-primary); }
.ocr-status-tile span, .ocr-status-tile strong, .ocr-status-tile small { display: block; }
.ocr-status-tile span { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.ocr-status-tile strong { margin-top: 5px; color: var(--ink-800); font-size: 15px; }
.ocr-status-tile small { margin-top: 3px; }
.ocr-setup-help { margin: 16px 18px 0; padding: 13px 14px; border-radius: 10px; background: var(--brand-green-faint); border: 1px solid rgba(9,103,53,.08); }
.ocr-setup-help strong, .ocr-setup-help span, .ocr-setup-help small { display: block; }
.ocr-setup-help strong { color: var(--ink-800); font-size: 13px; }
.ocr-setup-help span { margin-top: 4px; color: var(--ink-600); font-size: 12px; line-height: 1.5; }
.ocr-setup-help small { margin-top: 5px; }
.ocr-paths { margin: 10px 18px 0; display: grid; gap: 7px; }
.ocr-paths > div { padding: 9px 11px; display: grid; gap: 3px; border-radius: 9px; background: var(--surface-secondary); border: 1px solid var(--line-subtle); }
.ocr-paths b { color: var(--ink-700); font-size: 11px; }

.selector { padding: 11px 13px; display: grid; grid-template-columns: minmax(170px,.42fr) minmax(0,1fr); gap: 12px; border-bottom: 1px solid var(--line-subtle); }
.selector:last-child { border-bottom: 0; }
.selector strong { color: var(--ink-700); font-size: 12px; }
.selector code { color: var(--ink-600); line-height: 1.5; }

.form-block { padding: 16px; border-bottom: 1px solid var(--line-subtle); }
.form-block:last-child { border-bottom: 0; }
.file-feedback { display: block; margin-top: 3px; color: var(--ink-500); font-size: 11px; }

.overview-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--ink-500); font-size: 12px; }
.local-indicator { display: inline-flex; align-items: center; gap: 7px; }
.local-indicator i, .readiness-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(22,115,62,.08); }
.attention-list { display: grid; gap: 9px; }
.attention-item { padding: 13px; box-shadow: none; }
.attention-item strong, .attention-item span, .attention-item small { display: block; }
.attention-item span, .attention-item small { margin-top: 3px; }
.status-stack { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }

.departure-facts { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--line-subtle); }
.departure-facts > div { padding: 10px 11px; background: var(--surface-primary); }
.departure-facts dt { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.departure-facts dd { margin: 3px 0 0; color: var(--ink-800); font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }

.kpu-progress-strip { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line-subtle); border-radius: 12px; background: var(--line-subtle); }
.kpu-progress-strip > div { padding: 12px 14px; background: var(--surface-primary); }
.kpu-progress-strip span, .kpu-progress-strip strong, .kpu-progress-strip small { display: block; }
.kpu-progress-strip span { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.kpu-progress-strip strong { margin-top: 4px; color: var(--ink-800); font-size: 13px; }
.kpu-progress-strip small { margin-top: 2px; }
.kpu-code { color: var(--ink-500); font-size: 12px; }

.schedule-date { width: 54px; flex: 0 0 auto; text-align: center; }
.schedule-date strong, .schedule-date span { display: block; }
.schedule-date strong { color: var(--ink-900); font-size: 19px; line-height: 1; }
.schedule-date span { margin-top: 4px; color: var(--ink-500); font-size: 11px; }
.schedule-main { min-width: 0; flex: 1 1 auto; }
.schedule-main h3 { margin: 2px 0; font-size: 14px; }
.schedule-countdown { min-width: 130px; text-align: right; }
.schedule-countdown span, .schedule-countdown strong { display: block; }
.schedule-countdown span { color: var(--ink-500); font-size: 11px; font-weight: 600; }
.schedule-countdown strong { margin-top: 3px; color: var(--ink-800); font-size: 12px; }

.service-list { display: grid; }
.service-row { min-width: 0; padding: 12px 14px; display: grid; grid-template-columns: auto minmax(0,1fr) minmax(160px,.5fr) auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--line-subtle); }
.service-row:last-child { border-bottom: 0; }
.service-row > div { min-width: 0; }
.service-row strong, .service-row small { display: block; }
.service-row small { margin-top: 2px; }
.icon-danger { min-height: 30px; padding: 4px 8px; border: 1px solid rgba(180,35,24,.18); border-radius: 8px; color: var(--danger); background: transparent; font-size: 11px; }
.icon-danger:hover { background: var(--danger-bg); }

.danger-zone { border-color: rgba(180,35,24,.20); }
.danger-text { color: var(--danger); }
.danger-delete-form, .danger-form { padding: 18px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; }
.danger-delete-form label, .danger-form label { display: grid; gap: 7px; color: var(--ink-600); font-size: 12px; font-weight: 600; }
.disabled-details { color: var(--ink-500); opacity: .75; }

.detail-hero { margin: 10px 0 0; padding: 14px 16px; justify-content: flex-start; box-shadow: none; }
.detail-avatar { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--brand-green-strong); background: var(--brand-green-soft); font-size: 18px; font-weight: 650; }
.detail-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.review-progress { margin-top: 10px; padding: 8px 10px; border-radius: 8px; color: var(--info); background: var(--info-bg); font-size: 11px; }
.review-savebar { margin-top: 16px; }
.review-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }

.passport-inline { margin-top: 14px; padding: 12px; display: flex; align-items: center; gap: 13px; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--surface-secondary); }
.passport-inline img { width: 130px; height: 82px; object-fit: contain; border-radius: 7px; background: #fff; border: 1px solid var(--line-default); }
.passport-inline strong, .passport-inline small { display: block; }
.passport-inline small { margin-top: 3px; }
.passport-mrz-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.passport-select { min-width: 220px; }

.flow-step { padding: 12px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line-subtle); border-radius: 9px; background: var(--surface-secondary); color: var(--ink-600); font-size: 11px; }
.flow-step b { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; color: var(--brand-green-strong); background: var(--brand-green-soft); font-size: 11px; }
.batch-help { padding: 13px; border: 1px solid var(--line-subtle); border-radius: 10px; background: var(--surface-secondary); }
.batch-help strong, .batch-help span { display: block; }
.batch-help strong { color: var(--ink-800); font-size: 12px; }
.batch-help span { margin-top: 4px; color: var(--ink-600); font-size: 11px; line-height: 1.5; }
.batch-actions { display: flex; align-items: center; justify-content: flex-end; }
.batch-confirm-bar { margin-top: 18px; }

.ops-disclosure, .lifecycle-disclosure { margin-top: 16px; border: 1px solid var(--line-subtle); border-radius: 12px; background: var(--surface-primary); }
.ops-disclosure summary, .lifecycle-disclosure summary { min-height: 46px; padding: 11px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--ink-700); font-size: 12px; font-weight: 600; cursor: pointer; }
.ops-disclosure summary > span:first-child, .lifecycle-disclosure summary > span:first-child { min-width: 0; display: grid; gap: 2px; }
.ops-disclosure summary > span:last-child, .lifecycle-disclosure summary > span:last-child { flex: 0 0 auto; color: var(--brand-green); }
.ops-disclosure summary b, .lifecycle-disclosure summary b { color: var(--ink-800); font-size: 12px; }
.ops-disclosure summary small, .lifecycle-disclosure summary small { display: block; color: var(--ink-500); font-size: 11px; font-weight: 450; line-height: 1.35; }
.ops-disclosure[open] summary, .lifecycle-disclosure[open] summary { border-bottom: 1px solid var(--line-subtle); }
.lifecycle-log { min-width: 0; }

.timeline { position: relative; display: grid; gap: 0; }
.event { position: relative; padding: 12px 12px 12px 30px; border-left: 1px solid var(--line-default); margin-left: 9px; }
.event .dot { position: absolute; left: -5px; top: 18px; width: 9px; height: 9px; border-radius: 50%; background: var(--brand-green); border: 2px solid var(--surface-primary); }
.event strong, .event small { display: block; }

.finance-card-actions, .departure-card-actions { margin-top: 10px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.departure-hotel-mini { margin-top: 8px; padding: 9px 10px; border-radius: 8px; color: var(--ink-600); background: var(--surface-secondary); font-size: 11px; }


.calendar-note-delete {
  appearance: none;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--danger);
  background: transparent;
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.2;
}
.calendar-note-delete:hover { background: var(--danger-bg); border-color: #f4cecb; }
.calendar-note-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }
.calendar-note-meta form { margin:0; }

.calendar-nav { display: flex; align-items: center; gap: 6px; }
.calendar-legend { margin-top: 10px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--ink-500); font-size: 11px; }
.calendar-day-events, .calendar-day-notes { display: grid; gap: 8px; }
.calendar-note-dialog { width: min(700px, calc(100vw - 28px)); }

.chat-workspace { overflow: hidden; }
.mark-report-inline { display: flex; gap: 8px; align-items: end; flex-wrap: wrap; }
.anchor-target { scroll-margin-top: calc(var(--topbar-height) + 86px); }

.ocr-summary-panel .ocr-summary-grid { margin-bottom: 0; border: 0; border-radius: 0; box-shadow: none; }
.preview-counter { color: var(--ink-500); font-size: 11px; }
.preview-table-ocr { min-width: 1160px; }

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────────────────────────────── */
@media (max-width: 1220px) {
  .hos-shell { --sidebar-width: 224px; }
  .cloud-departure-grid, .departure-cards, .departure-card-grid, .finance-cloud-grid, .finance-review-grid, .role-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cloud-dashboard-grid, .overview-grid { grid-template-columns: 1fr; }
  .cockpit-grid { grid-template-columns: 1fr; }
  .passport-console { border-right: 0; border-bottom: 1px solid var(--line-subtle); }
  .passport-stage, .passport-stage img, .passport-stage iframe { min-height: 390px; }
  .hos-form-grid.five, .form-grid.five { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 1120px) and (min-width: 921px) {
  .hos-two-column.wide-left { grid-template-columns: 1fr; }
  .hos-two-column.wide-left .sticky-card { position: static; }
}

@media (max-width: 920px) {
  body.hamdan-os-body { --topbar-height: 54px; }
  .hos-shell { grid-template-columns: 1fr; }
  .hos-sidebar {
    position: relative;
    width: 100%;
    height: auto;
    padding: 10px 12px 8px;
    border-right: 0;
    border-bottom: 1px solid var(--line-subtle);
  }
  .hos-brand { min-height: 48px; padding-bottom: 8px; }
  .hos-nav { display: flex; gap: 5px; padding: 0 0 4px; overflow-x: auto; }
  .hos-nav-label, .hos-sidebar-foot { display: none; }
  .hos-nav-item { flex: 0 0 auto; min-height: 36px; margin: 0; padding: 7px 9px; }
  .hos-topbar { position: sticky; top: 0; padding: 0 18px; }
  .hos-content, .content-wrap { padding: 24px 18px 48px; }
  .hos-page-head, .topbar, .overview-header, .v121-page-head, .v122-hotel-head, .ops-hero { flex-direction: column; }
  .ops-hero-actions { justify-content: flex-start; }
  .cloud-summary-grid, .summary-stats, .source-summary-grid, .ops-metrics, .ocr-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hos-two-column, .hos-two-column.wide-left, .v122-hotel-layout, .settings-shell { grid-template-columns: 1fr; }
  .sticky-card { position: static; }
  .hos-form-grid.three, .form-grid.three { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cloud-flow-row, .flow-report-row { grid-template-columns: 34px minmax(0,1fr); align-items: start; }
  .cloud-flow-row select, .cloud-flow-row button, .flow-report-row select, .flow-report-row button, .flow-actions { grid-column: 2; }
  .focus-tabs { display: grid; }
  .focus-identity-bar { position: sticky; top: var(--topbar-height); z-index: 25; }
  .operator-cockpit[data-focus-tab="passport"] [data-focus-panel="operator"],
  .operator-cockpit[data-focus-tab="data"] [data-focus-panel="passport"],
  .operator-cockpit[data-focus-tab="queue"] [data-focus-panel="passport"] { display: none; }
  .operator-cockpit[data-focus-tab="data"] .focus-queue-section,
  .operator-cockpit[data-focus-tab="queue"] .focus-data-section { display: none; }
  .passport-console-foot { flex-direction: column; }
  .passport-console-foot > span { max-width: 100%; }
  .console-link { text-align: left; }
  .batch-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  body { font-size: 14px; }
  .hos-content, .content-wrap { padding: 20px 12px 42px; }
  .hos-topbar { padding: 0 12px; }
  .hos-breadcrumb, .hos-top-title > span:nth-child(2), .hos-user > div { display: none; }
  .hos-page-head, .topbar, .overview-header, .v121-page-head, .v122-hotel-head { margin-bottom: 18px; }
  h1 { font-size: 27px; }
  .cloud-departure-grid, .departure-cards, .departure-card-grid, .finance-cloud-grid, .finance-review-grid, .role-grid { grid-template-columns: 1fr; }
  .cloud-filter-bar, .source-board-head, .month-filter { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }
  .cloud-filter-bar .grow { grid-column: 1 / -1; }
  .cloud-filter-bar .btn { width: 100%; }
  .hos-form-grid, .form-grid, .hos-form-grid.three, .form-grid.three, .hos-form-grid.five, .form-grid.five, .accommodation-form-grid, .v121-group-grid, .v121-report-grid, .passport-manager-grid, .review-grid, .lifecycle-grid, .settings-grid, .group-hotel-stays { grid-template-columns: 1fr; }
  .grid.two, .grid.three { grid-template-columns: 1fr; }
  .hos-form-grid .span2, .form-grid .span2, .hos-form-grid .span3, .form-grid .span3, .settings-grid .wide { grid-column: auto; }
  .cloud-kpu-hero, .kpu-command-header, .detail-hero { display: grid; }
  .cloud-kpu-hero .countdown-tile, .kpu-command-header .countdown-tile { margin: 0; }
  .cloud-chat-compose, .chat-composer { grid-template-columns: 1fr; }
  .hotel-master-cloud-row, .hotel-master-row { grid-template-columns: 1fr 1fr; }
  .hotel-master-cloud-row input, .hotel-master-row input { grid-column: 1 / -1; }
  .cloud-report-actions form { display: grid; }
  .savebar { position: static; flex-direction: column; align-items: stretch; }
  .save-actions { width: 100%; display: grid; }
  .save-actions .btn { width: 100%; }
  .focus-identity-bar { grid-template-columns: auto minmax(0,1fr); }
  .focus-state { grid-column: 1 / -1; justify-self: stretch; justify-content: center; }
  .data-check-grid { grid-template-columns: 1fr; }
  .passport-stage, .passport-stage img, .passport-stage iframe { min-height: 310px; }
  .cockpit-actions-sticky { display: grid; grid-template-columns: 1fr 1fr; }
  .batch-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .table-toolbar, .preview-filterbar { align-items: stretch; flex-direction: column; }
  .search-box { width: 100%; max-width: none; }
  .worklist-head { flex-direction: column; align-items: stretch; }
  .worklist-tools { width: 100%; display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .worklist-tools .search-box { width: 100%; min-width: 0; max-width: none; }
  .worklist-tools .filters { width: 100%; }
  .schedule-item { display: grid; grid-template-columns: 54px minmax(0,1fr); align-items: center; justify-content: stretch; gap: 10px 12px; }
  .schedule-date { grid-row: 1 / span 3; }
  .schedule-main { grid-column: 2; width: 100%; }
  .schedule-main small { overflow-wrap: anywhere; }
  .schedule-countdown { grid-column: 2; min-width: 0; text-align: left; }
  .schedule-item > .btn { grid-column: 2; justify-self: start; }
}

@media (max-width: 460px) {
  .hos-brand-copy small { display: none; }
  .hos-nav-item { width: auto; justify-content: flex-start; }
  .nav-new-tab { display: none; }
  .cloud-summary-grid, .summary-stats, .source-summary-grid, .ops-metrics, .ocr-summary-grid { grid-template-columns: 1fr 1fr; }
  .cloud-filter-bar, .source-board-head, .month-filter { grid-template-columns: 1fr; }
  .cloud-filter-bar .grow { grid-column: auto; }
  .seat-meter { grid-template-columns: 1fr; }
  .seat-meter > div { border-right: 0; border-bottom: 1px solid var(--line-subtle); }
  .seat-meter > div:last-child { border-bottom: 0; }
  .calendar-cell, .calendar-day { min-height: 42px; border-radius: 8px; font-size: 12px; }
  .batch-cards { grid-template-columns: 1fr; }
  .batch-flow { grid-template-columns: 1fr 1fr; }
  .cockpit-actions-sticky { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* ─────────────────────────────────────────────────────────────
   v1.25 OPERATIONAL INTELLIGENCE
   Reference direction: structured project dashboard + calendar board.
   Additive component namespace only; no legacy selector overrides.
   ───────────────────────────────────────────────────────────── */
.v125-command-page { max-width: 1420px; margin: 0 auto; }
.v125-dashboard-tabs {
  width: fit-content;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 4px;
  display: inline-flex;
  gap: 4px;
  overflow-x: auto;
  border: 1px solid var(--line-subtle);
  border-radius: var(--radius-pill);
  background: #f1f3f1;
}
.v125-dashboard-tabs a {
  min-width: 116px;
  min-height: 42px;
  padding: 9px 18px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  color: var(--ink-500);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.v125-dashboard-tabs a:hover { color: var(--ink-900); }
.v125-dashboard-tabs a.active { color: var(--ink-950); background: #fff; border-color: var(--line-default); box-shadow: 0 2px 8px rgba(20,24,22,.06); }

.v125-welcome-row {
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.v125-welcome-row.compact { margin-bottom: 20px; }
.v125-welcome-row h1 { margin-bottom: 5px; font-size: clamp(28px, 3vw, 38px); }
.v125-welcome-row p { font-size: 13px; }
.v125-header-actions { display: flex; align-items: center; gap: 10px; }
.v125-round-action {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-default);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(20,24,22,.035);
}
.v125-round-action svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.v125-user-pill {
  min-width: 238px;
  min-height: 52px;
  padding: 6px 12px 6px 7px;
  display: grid;
  grid-template-columns: 38px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-pill);
  background: #fff;
}
.v125-user-pill span:nth-child(2) { min-width: 0; }
.v125-user-pill strong, .v125-user-pill small { display: block; }
.v125-user-pill strong { color: var(--ink-900); font-size: 13px; }
.v125-user-pill small { margin-top: 1px; color: var(--ink-500); }
.v125-user-pill > b { color: var(--ink-400); font-weight: 500; }
.v125-user-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--brand-green-soft); color: var(--brand-green-strong); font-weight: 700; }

.v125-project-strip { margin-bottom: 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.v125-project-card {
  min-height: 188px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  border-radius: 28px;
  box-shadow: 0 10px 28px rgba(20,24,22,.055);
  transition: transform .15s ease, box-shadow .15s ease;
}
.v125-project-card:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(20,24,22,.075); }
.v125-project-card.primary { color: #fff; background: #14653b; }
.v125-project-card.mint { color: #14201b; background: #a9d8d1; }
.v125-project-card.orange { color: #241914; background: #ff9674; }
.v125-project-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.v125-project-top span { font-size: 12px; font-weight: 650; opacity: .78; }
.v125-project-top b { font-size: 14px; font-weight: 700; }
.v125-project-card > strong { margin-top: 28px; font-size: 21px; line-height: 1.15; letter-spacing: -.03em; }
.v125-project-card > small { margin-top: 9px; color: inherit; opacity: .72; }
.v125-progress { height: 5px; margin-top: auto; overflow: hidden; border-radius: var(--radius-pill); background: rgba(255,255,255,.42); }
.v125-project-card.mint .v125-progress, .v125-project-card.orange .v125-progress { background: rgba(20,24,22,.16); }
.v125-progress i { height: 100%; display: block; border-radius: inherit; background: currentColor; opacity: .88; }

.v125-surface {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line-subtle);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 4px 18px rgba(20,24,22,.035);
}
.v125-dashboard-grid { margin-bottom: 18px; display: grid; grid-template-columns: minmax(0,1.02fr) minmax(380px,.98fr); gap: 18px; align-items: stretch; }
.v125-dashboard-grid.lower { grid-template-columns: minmax(0,.95fr) minmax(380px,1.05fr); }
.v125-panel-head { min-height: 76px; padding: 20px 20px 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.v125-panel-head.compact { min-height: auto; padding: 0 0 14px; }
.v125-panel-head h2, .v125-panel-head h3 { margin: 0; font-size: 18px; }
.v125-panel-head h3 { font-size: 16px; }
.v125-panel-head p { margin-top: 3px; color: var(--ink-500); font-size: 12px; }
.v125-chip-button {
  min-height: 34px;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 1px solid var(--line-default);
  border-radius: var(--radius-pill);
  color: var(--ink-700);
  background: #fff;
  font-size: 11px;
  font-weight: 650;
}
.v125-month-control { width: 145px; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line-default); border-radius: var(--radius-pill); background: #fff; font-size: 12px; }
.v125-calendar-toolbar { display: flex; align-items: center; gap: 8px; }

.v125-calendar-card { padding-bottom: 12px; }
.v125-calendar-weekdays { padding: 0 18px 4px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.v125-calendar-weekdays span { padding: 8px 2px; color: var(--ink-400); font-size: 11px; font-weight: 700; text-align: center; letter-spacing: .03em; }
.v125-calendar-grid { padding: 2px 18px 10px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.v125-calendar-grid.large { padding-bottom: 20px; }
.v125-calendar-day {
  position: relative;
  min-height: 52px;
  aspect-ratio: 1.08 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  border-radius: 16px;
  color: var(--ink-700);
  background: transparent;
  font-size: 14px;
  font-weight: 550;
  transition: background-color .12s ease, color .12s ease, transform .12s ease;
}
.v125-calendar-day:hover { background: #f3f5f3; }
.v125-calendar-day:active { transform: scale(.96); }
.v125-calendar-day.outside { color: #c9cecb; }
.v125-calendar-day.today { color: #fff; background: #151a17; box-shadow: 0 7px 18px rgba(20,24,22,.16); }
.v125-calendar-day i { min-height: 5px; display: flex; align-items: center; gap: 3px; }
.v125-dot, .v125-calendar-legend i { width: 5px; height: 5px; display: inline-block; border-radius: 50%; }
.v125-dot.departure, .v125-calendar-legend i.departure { background: #53766a; }
.v125-dot.issued, .v125-calendar-legend i.issued { background: var(--success); }
.v125-dot.cancelled, .v125-calendar-legend i.cancelled { background: var(--danger); }
.v125-dot.note, .v125-calendar-legend i.note { background: var(--brand-orange); }
.v125-calendar-day.today .v125-dot { background: #fff; }
.v125-calendar-legend { padding: 4px 20px 8px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; color: var(--ink-500); font-size: 11px; }
.v125-calendar-legend span { display: inline-flex; align-items: center; gap: 5px; }

.v125-event-list { padding: 0 16px 16px; display: grid; gap: 9px; }
.v125-event-row {
  min-height: 72px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line-subtle);
  border-radius: 16px;
  background: #fff;
  transition: background-color .13s ease, border-color .13s ease;
}
.v125-event-row:hover { background: #fafbfa; border-color: var(--line-default); }
.v125-event-date { align-self: stretch; padding-right: 10px; display: grid; align-content: center; justify-items: center; border-right: 1px solid var(--line-subtle); }
.v125-event-date strong { font-size: 20px; line-height: 1; }
.v125-event-date small { margin-top: 5px; color: var(--ink-400); font-size: 11px; font-weight: 700; }
.v125-event-copy { min-width: 0; }
.v125-event-copy > strong { display: inline; color: var(--ink-900); font-size: 13px; }
.v125-event-copy > small { display: block; margin-top: 5px; color: var(--ink-500); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v125-event-status { margin-left: 8px; padding: 3px 7px; display: inline-flex; border-radius: 6px; font-size: 11px; font-weight: 700; vertical-align: 1px; }
.v125-event-status.upcoming { color: #5355bc; background: #f0efff; }
.v125-event-status.issued { color: var(--success); background: var(--success-bg); }
.v125-event-status.cancelled { color: var(--danger); background: var(--danger-bg); }
.v125-row-arrow { color: var(--ink-400); font-size: 20px; }

.v125-pulse-grid { padding: 0 16px 16px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.v125-pulse-grid a { min-width: 0; padding: 14px; border: 1px solid var(--line-subtle); border-radius: 16px; background: #fbfcfb; }
.v125-pulse-grid span, .v125-pulse-grid strong, .v125-pulse-grid small { display: block; }
.v125-pulse-grid span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-pulse-grid strong { margin-top: 5px; font-size: 22px; }
.v125-pulse-grid small { margin-top: 3px; font-size: 11px; }
.v125-upcoming-list { border-top: 1px solid var(--line-subtle); }
.v125-upcoming-list > a { min-height: 58px; padding: 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line-subtle); }
.v125-upcoming-list > a:last-child { border-bottom: 0; }
.v125-upcoming-list strong, .v125-upcoming-list small { display: block; }
.v125-upcoming-list strong { font-size: 12px; }
.v125-upcoming-list small { margin-top: 2px; }

.v125-count-pill { min-width: 28px; height: 28px; padding: 0 8px; display: grid; place-items: center; border-radius: var(--radius-pill); color: #fff; background: var(--ink-950); font-size: 11px; font-weight: 700; }
.v125-todo-list { padding: 0 16px 16px; display: grid; gap: 4px; }
.v125-todo-row { min-height: 54px; padding: 8px 10px; display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 10px; border-radius: 12px; }
.v125-todo-row:hover { background: #f8faf8; }
.v125-todo-row > span:nth-child(2) { min-width: 0; }
.v125-todo-row strong, .v125-todo-row small { display: block; }
.v125-todo-row strong { color: var(--ink-800); font-size: 12px; }
.v125-todo-row small { margin-top: 2px; color: var(--ink-500); }
.v125-todo-row > b { color: var(--ink-400); font-weight: 500; }
.v125-check-dot { width: 15px; height: 15px; border: 1.5px solid var(--line-strong); border-radius: 5px; }
.v125-todo-row.warning .v125-check-dot { border-color: #e2a84a; background: var(--warning-bg); }
.v125-todo-row.danger .v125-check-dot { border-color: #e0a19c; background: var(--danger-bg); }
.v125-clear-state { min-height: 180px; display: grid; align-content: center; justify-items: center; padding: 24px; text-align: center; }
.v125-clear-state > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: var(--success); background: var(--success-bg); font-size: 18px; }
.v125-clear-state strong { margin-top: 10px; }
.v125-clear-state small { margin-top: 4px; }

.v125-inline-badges { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.v125-inline-badges.hero-badges { justify-content: flex-start; margin-bottom: 8px; }
.v125-badge, .v125-status-pill { min-height: 25px; padding: 4px 8px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--radius-pill); font-size: 11px; font-weight: 700; line-height: 1.15; letter-spacing: .01em; white-space: nowrap; }
.v125-badge.success, .v125-status-pill.success { color: var(--success); background: var(--success-bg); border-color: rgba(22,115,62,.12); }
.v125-badge.warning, .v125-status-pill.warning { color: var(--warning); background: var(--warning-bg); border-color: rgba(154,92,6,.13); }
.v125-badge.danger, .v125-status-pill.danger { color: var(--danger); background: var(--danger-bg); border-color: rgba(180,35,24,.13); }
.v125-badge.neutral, .v125-status-pill.neutral { color: var(--ink-600); background: #f3f5f3; border-color: var(--line-subtle); }
.v125-status-pill.info { color: var(--info); background: var(--info-bg); border-color: rgba(49,95,145,.12); }
.v125-status-pill.hero { min-height: 34px; padding: 8px 12px; font-size: 11px; }

.v125-filter-bar { margin-bottom: 16px; padding: 12px; display: flex; align-items: end; gap: 10px; flex-wrap: wrap; border: 1px solid var(--line-subtle); border-radius: 18px; background: #fff; box-shadow: 0 3px 14px rgba(20,24,22,.025); }
.v125-filter-bar label { min-width: 145px; }
.v125-filter-bar label.grow { flex: 1 1 250px; }
.v125-departure-summary, .v125-tl-summary { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.v125-departure-summary > div, .v125-tl-summary > a { padding: 15px 17px; border: 1px solid var(--line-subtle); border-radius: 17px; background: #fff; }
.v125-departure-summary span, .v125-departure-summary strong, .v125-departure-summary small, .v125-tl-summary span, .v125-tl-summary strong, .v125-tl-summary small { display: block; }
.v125-departure-summary span, .v125-tl-summary span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-departure-summary strong, .v125-tl-summary strong { margin-top: 5px; font-size: 23px; }
.v125-departure-summary small, .v125-tl-summary small { margin-top: 2px; }
.v125-departure-summary .danger strong { color: var(--danger); }

.cloud-departure-card.v125-departure-card { padding: 18px; border-radius: 22px; transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.cloud-departure-card.v125-departure-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(20,24,22,.065); }
.cloud-departure-card.v125-departure-card.cancelled { opacity: .82; border-color: #ead4d1; background: #fffdfd; }
.v125-departure-card-top { margin-bottom: 13px; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.v125-departure-card-top h2 { margin: 3px 0 0; font-size: 18px; }
.v125-departure-card-top .mono { color: var(--ink-500); font-size: 11px; }
.v125-cancelled-strip { margin-bottom: 14px; padding: 11px 12px; border: 1px solid #efd6d3; border-radius: 12px; color: #8b2e27; background: var(--danger-bg); }
.v125-cancelled-strip strong, .v125-cancelled-strip span, .v125-cancelled-strip small { display: block; }
.v125-cancelled-strip strong { font-size: 12px; }
.v125-cancelled-strip span, .v125-cancelled-strip small { margin-top: 2px; color: #9a514b; font-size: 11px; }
.v125-tl-inline { margin-bottom: 12px; padding: 10px 11px; border: 1px solid var(--line-subtle); border-radius: 12px; background: #fbfcfb; }
.v125-tl-inline.warning { border-color: #f0dfc0; background: var(--warning-bg); }
.v125-tl-inline span, .v125-tl-inline strong, .v125-tl-inline small { display: block; }
.v125-tl-inline span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-tl-inline strong { margin-top: 3px; font-size: 12px; }
.v125-tl-inline small { margin-top: 2px; }

.v125-calendar-layout { margin-bottom: 18px; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(360px,.75fr); gap: 18px; }
.v125-calendar-card.large .v125-calendar-day { min-height: 70px; aspect-ratio: 1.12 / 1; font-size: 15px; }
.v125-calendar-side { max-height: 720px; display: flex; flex-direction: column; }
.v125-calendar-event-feed { min-height: 0; padding: 0 14px 14px; display: grid; gap: 8px; overflow: auto; }
.v125-calendar-event { min-height: 70px; padding: 10px; display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line-subtle); border-radius: 14px; }
.v125-calendar-event.cancelled { background: #fffafa; }
.v125-calendar-event.issued { background: #fbfefc; }
.v125-calendar-event time { font-size: 19px; font-weight: 700; text-align: center; }
.v125-calendar-event strong, .v125-calendar-event span, .v125-calendar-event small { display: block; }
.v125-calendar-event strong { font-size: 12px; }
.v125-calendar-event span { margin-top: 2px; color: var(--ink-500); font-size: 11px; }
.v125-calendar-event small { margin-top: 3px; font-size: 11px; }
.v125-tl-calendar-list { display: grid; }
.v125-tl-calendar-list > a { min-height: 58px; padding: 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line-subtle); }
.v125-tl-calendar-list strong, .v125-tl-calendar-list small { display: block; }
.v125-tl-calendar-list strong { font-size: 12px; }
.v125-tl-calendar-list small { margin-top: 2px; }
.v125-tl-calendar-list > a > span { color: var(--ink-600); font-size: 11px; text-align: right; }

.v125-tl-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.v125-tl-card { min-width: 0; padding: 18px; border: 1px solid var(--line-subtle); border-radius: 22px; background: #fff; box-shadow: 0 4px 18px rgba(20,24,22,.03); transition: transform .14s ease, box-shadow .14s ease; }
.v125-tl-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(20,24,22,.065); }
.v125-tl-card.danger { border-color: #ead0cd; }
.v125-tl-card.warning { border-color: #eadfc9; }
.v125-tl-card-head { margin-bottom: 16px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.v125-tl-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; color: var(--brand-green-strong); background: var(--brand-green-soft); font-size: 14px; font-weight: 750; }
.v125-tl-avatar.hero { width: 64px; height: 64px; border-radius: 20px; font-size: 21px; }
.v125-tl-card-head h2 { margin: 0; font-size: 15px; }
.v125-tl-card-head small { margin-top: 2px; }
.v125-tl-visa-row, .v125-tl-next { padding: 10px 0; border-top: 1px solid var(--line-subtle); }
.v125-tl-visa-row span, .v125-tl-visa-row strong, .v125-tl-next span, .v125-tl-next strong, .v125-tl-next small { display: block; }
.v125-tl-visa-row span, .v125-tl-next span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-tl-visa-row strong, .v125-tl-next strong { margin-top: 3px; font-size: 12px; }
.v125-tl-next small { margin-top: 2px; }
.v125-stay-meter { padding: 10px 0 12px; border-top: 1px solid var(--line-subtle); }
.v125-stay-meter.large { margin: 14px 0; padding: 13px 0; border-bottom: 1px solid var(--line-subtle); }
.v125-stay-meter > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.v125-stay-meter span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-stay-meter strong { font-size: 11px; }
.v125-stay-track { height: 5px; margin: 8px 0 5px; overflow: hidden; border-radius: var(--radius-pill); background: #edf0ed; }
.v125-stay-track i { height: 100%; display: block; max-width: 100%; border-radius: inherit; background: var(--brand-green); }
.v125-stay-meter small { font-size: 11px; }

.v125-tl-hero { margin-bottom: 16px; padding: 22px; display: grid; grid-template-columns: 64px minmax(0,1fr) auto; align-items: center; gap: 16px; border: 1px solid var(--line-subtle); border-radius: 24px; background: #fff; }
.v125-tl-hero-copy h1 { margin: 2px 0 4px; font-size: 30px; }
.v125-tl-hero-copy p { font-size: 12px; }
.v125-tl-metrics { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.v125-tl-metrics > div { padding: 15px 17px; border: 1px solid var(--line-subtle); border-radius: 17px; background: #fff; }
.v125-tl-metrics span, .v125-tl-metrics strong, .v125-tl-metrics small { display: block; }
.v125-tl-metrics span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-tl-metrics strong { margin-top: 5px; font-size: 22px; }
.v125-tl-metrics small { margin-top: 2px; }
.v125-detail-grid { margin-bottom: 18px; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 18px; }
.v125-visa-card { margin: 0 18px 18px; padding: 16px; border: 1px solid var(--line-subtle); border-radius: 17px; background: #fbfcfb; }
.v125-visa-card.current { border-color: rgba(9,103,53,.15); background: var(--brand-green-faint); }
.v125-visa-title { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v125-visa-title strong { font-size: 14px; }
.v125-visa-title span { padding: 4px 7px; border-radius: 7px; background: #fff; color: var(--ink-600); font-size: 11px; font-weight: 700; }
.v125-empty-action { min-height: 250px; padding: 30px; display: grid; align-content: center; justify-items: center; text-align: center; }
.v125-empty-action strong, .v125-empty-action span { display: block; }
.v125-empty-action span { margin: 5px 0 14px; color: var(--ink-500); font-size: 12px; }

.v125-trip-ledger { margin-bottom: 18px; }
.v125-trip-list { padding: 0 18px 18px; }
.v125-trip-row { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 12px; }
.v125-trip-timeline { position: relative; display: grid; justify-items: center; }
.v125-trip-timeline i { width: 11px; height: 11px; margin-top: 19px; z-index: 1; border: 3px solid #fff; border-radius: 50%; background: var(--brand-green); box-shadow: 0 0 0 1px rgba(9,103,53,.18); }
.v125-trip-row.cancelled .v125-trip-timeline i { background: var(--danger); }
.v125-trip-timeline span { position: absolute; top: 26px; bottom: -12px; width: 1px; background: var(--line-default); }
.v125-trip-row:last-child .v125-trip-timeline span { display: none; }
.v125-trip-main { margin-bottom: 12px; padding: 14px; border: 1px solid var(--line-subtle); border-radius: 16px; background: #fff; }
.v125-trip-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.v125-trip-title strong, .v125-trip-title small { display: block; }
.v125-trip-title strong { font-size: 13px; }
.v125-trip-title small { margin-top: 2px; }
.v125-trip-dates { margin: 12px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.v125-trip-dates > div { padding: 10px; border-radius: 11px; background: #f8faf8; }
.v125-trip-dates span, .v125-trip-dates strong, .v125-trip-dates small { display: block; }
.v125-trip-dates span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-trip-dates strong { margin-top: 3px; font-size: 11px; }
.v125-trip-dates small { margin-top: 2px; }
.v125-trip-update { display: grid; grid-template-columns: 140px 140px 140px minmax(180px,1fr) auto; align-items: end; gap: 8px; }
.v125-trip-update label { min-width: 0; }
.v125-trip-update .grow { min-width: 0; }

.v125-kpu-hero.cancelled { border-color: #ead4d1; background: #fffafa; }
.v125-cancelled-hero-tile { min-width: 190px; padding: 13px 14px; border: 1px solid #efd6d3; border-radius: 14px; color: var(--danger); background: var(--danger-bg); text-align: right; }
.v125-cancelled-hero-tile span, .v125-cancelled-hero-tile strong, .v125-cancelled-hero-tile small { display: block; }
.v125-cancelled-hero-tile span { font-size: 11px; font-weight: 650; }
.v125-cancelled-hero-tile strong { margin-top: 3px; font-size: 17px; }
.v125-cancelled-hero-tile small { margin-top: 2px; color: #98504a; }
.v125-start-actions { margin-top: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.v125-inline-cancel-form { margin: 0; }
.v125-status-control { margin-bottom: 18px; }
.v125-status-form { padding: 0 18px 18px; display: grid; grid-template-columns: 180px 190px minmax(220px,1fr) auto; align-items: end; gap: 10px; }
.v125-status-form .grow { min-width: 0; }
.v125-tl-assignment-box { margin-top: 18px; padding: 16px; border: 1px solid var(--line-subtle); border-radius: 18px; background: #fafbfa; }
.v125-field-note { min-height: 76px; padding: 10px 11px; display: grid; align-content: center; border: 1px solid var(--line-subtle); border-radius: 11px; background: #fff; }
.v125-field-note span, .v125-field-note strong, .v125-field-note small { display: block; }
.v125-field-note span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-field-note strong { margin-top: 3px; font-size: 11px; }
.v125-field-note small { margin-top: 2px; }
.v125-tl-assignment-health { margin-top: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.v125-tl-assignment-health > div { padding: 10px; border: 1px solid var(--line-subtle); border-radius: 11px; background: #fff; }
.v125-tl-assignment-health span, .v125-tl-assignment-health strong { display: block; }
.v125-tl-assignment-health span { color: var(--ink-500); font-size: 11px; font-weight: 650; }
.v125-tl-assignment-health strong { margin-top: 3px; font-size: 11px; }
.v125-notes-row { margin-top: 14px; }

.v125-dialog-existing { margin-top: 12px; display: grid; gap: 7px; }
.v125-top-actions { display: flex; align-items: center; gap: 9px; }
.v125-command-button { min-height: 34px; padding: 6px 8px 6px 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line-default); border-radius: 10px; color: var(--ink-600); background: #fff; font-size: 11px; font-weight: 600; }
.v125-command-button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.v125-command-button kbd { padding: 2px 5px; border: 1px solid var(--line-subtle); border-radius: 5px; background: #f4f6f4; color: var(--ink-400); font-family: var(--font-sans); font-size: 9px; }
.v125-search-help { margin-top: 8px; font-size: 11px; }
.v125-page-progress { position: fixed; top: 0; left: 0; z-index: 5000; width: 0; height: 2px; opacity: 0; background: var(--brand-green); transition: width .2s ease, opacity .2s ease; }
.v125-page-progress.loading { width: 72%; opacity: 1; }
.v125-page-progress.done { width: 100%; opacity: 0; }
.v125-network-banner { position: fixed; left: 50%; bottom: 18px; z-index: 4500; transform: translateX(-50%); max-width: calc(100vw - 28px); padding: 9px 14px; border: 1px solid #e9c47f; border-radius: var(--radius-pill); color: #70470a; background: #fff7e8; box-shadow: var(--shadow-float); font-size: 11px; font-weight: 650; }

@media (max-width: 1220px) {
  .v125-project-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .v125-dashboard-grid, .v125-dashboard-grid.lower, .v125-calendar-layout, .v125-detail-grid { grid-template-columns: 1fr; }
  .v125-calendar-side { max-height: none; }
  .v125-tl-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v125-trip-update { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v125-trip-update .grow { grid-column: 1 / -1; }
}

@media (max-width: 920px) {
  .v125-project-strip { grid-template-columns: 1fr; }
  .v125-project-card { min-height: 158px; }
  .v125-pulse-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v125-departure-summary, .v125-tl-summary, .v125-tl-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v125-status-form { grid-template-columns: 1fr 1fr; }
  .v125-status-form .grow { grid-column: 1 / -1; }
  .v125-tl-assignment-health { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .v125-dashboard-tabs { width: 100%; display: grid; grid-template-columns: repeat(3,1fr); }
  .v125-dashboard-tabs a { min-width: 0; padding-left: 8px; padding-right: 8px; }
  .v125-welcome-row { align-items: stretch; flex-direction: column; }
  .v125-header-actions { justify-content: space-between; }
  .v125-user-pill { min-width: 0; flex: 1 1 auto; }
  .v125-calendar-toolbar { align-items: stretch; flex-direction: column; }
  .v125-month-control { width: 100%; }
  .v125-calendar-weekdays, .v125-calendar-grid { padding-left: 8px; padding-right: 8px; }
  .v125-calendar-day, .v125-calendar-card.large .v125-calendar-day { min-height: 42px; border-radius: 11px; font-size: 12px; }
  .v125-event-row { grid-template-columns: 38px minmax(0,1fr); }
  .v125-event-row .v125-row-arrow { display: none; }
  .v125-event-copy > small { white-space: normal; }
  .v125-pulse-grid, .v125-departure-summary, .v125-tl-summary, .v125-tl-metrics, .v125-tl-card-grid { grid-template-columns: 1fr 1fr; }
  .v125-filter-bar { display: grid; grid-template-columns: 1fr 1fr; }
  .v125-filter-bar label.grow { grid-column: 1 / -1; }
  .v125-filter-bar .btn { width: 100%; }
  .v125-tl-hero { grid-template-columns: 52px minmax(0,1fr); }
  .v125-tl-avatar.hero { width: 52px; height: 52px; border-radius: 16px; }
  .v125-tl-hero > .v125-status-pill { grid-column: 1 / -1; justify-self: start; }
  .v125-trip-dates, .v125-trip-update, .v125-status-form { grid-template-columns: 1fr; }
  .v125-trip-update .grow, .v125-status-form .grow { grid-column: auto; }
  .v125-tl-assignment-health { grid-template-columns: 1fr 1fr; }
  .v125-command-button span, .v125-command-button kbd { display: none; }
}

@media (max-width: 460px) {
  .v125-pulse-grid, .v125-departure-summary, .v125-tl-summary, .v125-tl-metrics, .v125-tl-card-grid, .v125-tl-assignment-health { grid-template-columns: 1fr; }
  .v125-filter-bar { grid-template-columns: 1fr; }
  .v125-filter-bar label.grow { grid-column: auto; }
  .v125-project-card { border-radius: 22px; }
  .v125-surface { border-radius: 20px; }
  .v125-calendar-day, .v125-calendar-card.large .v125-calendar-day { min-height: 37px; border-radius: 10px; }
  .v125-calendar-weekdays span { font-size: 10px; }
  .v125-calendar-event { grid-template-columns: 34px minmax(0,1fr); }
  .v125-calendar-event .v125-event-status { grid-column: 2; justify-self: start; margin-left: 0; }
}
.v125-system-error { max-width: 680px; margin: 8vh auto; padding: 46px; border: 1px solid var(--line-subtle); border-radius: 28px; background: #fff; box-shadow: 0 18px 55px rgba(20,24,22,.08); text-align: center; }
.v125-system-error-icon { width: 52px; height: 52px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 18px; color: var(--warning); background: var(--warning-bg); font-size: 24px; font-weight: 750; }
.v125-system-error h1 { margin-top: 5px; font-size: 30px; }
.v125-system-error > p { max-width: 520px; margin: 0 auto 10px; }
.v125-system-error > small { display: block; margin-top: 8px; }
.v125-system-error-actions { margin-top: 22px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
@media (max-width: 680px) { .v125-system-error { margin: 4vh auto; padding: 28px 18px; } .v125-system-error-actions { display: grid; } }

/* Visa Susulan: isolated exception queue for one or two pilgrims. */
.catchup-hero { margin-bottom: 20px; padding: 26px 28px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; border: 1px solid rgba(181,107,21,.18); border-radius: 24px; background: linear-gradient(135deg,#fffaf3 0%,#fff 58%,#f2f8f4 100%); box-shadow: var(--shadow-sm); }
.catchup-hero h1 { margin: 7px 0 5px; font-size: clamp(28px,4vw,42px); letter-spacing: -.035em; }
.catchup-hero p { margin: 0; max-width: 650px; color: var(--ink-600); }
.catchup-mode-card { min-width: 180px; padding: 17px 20px; border: 1px solid rgba(181,107,21,.22); border-radius: 17px; background: rgba(255,255,255,.82); }
.catchup-mode-card span, .catchup-mode-card strong, .catchup-mode-card small { display: block; }
.catchup-mode-card span { color: #9a5d16; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.catchup-mode-card strong { margin: 3px 0; color: #7a4710; font-size: 20px; }
.catchup-mode-card small { color: var(--ink-500); }
.catchup-flow { margin: 18px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.catchup-flow > div { padding: 14px; display: grid; grid-template-columns: 32px 1fr; column-gap: 10px; border: 1px solid var(--line-subtle); border-radius: 14px; background: var(--surface-primary); }
.catchup-flow > div > span { grid-row: span 2; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-tertiary); color: var(--ink-500); font-weight: 800; }
.catchup-flow strong, .catchup-flow small { display: block; }
.catchup-flow small { margin-top: 2px; color: var(--ink-500); }
.catchup-flow .done { border-color: rgba(9,103,53,.18); background: var(--brand-green-faint); }
.catchup-flow .done > span { background: var(--brand-green); color: #fff; }
.catchup-flow .active { border-color: rgba(181,107,21,.32); background: #fff7eb; }
.catchup-flow .active > span { background: #a76112; color: #fff; }
.catchup-status { padding: 5px 9px; display: inline-flex; border-radius: 999px; background: var(--surface-tertiary); color: var(--ink-600); font-size: 11px; font-weight: 800; letter-spacing: .05em; }
.catchup-status.active, .catchup-status.completed { background: #e8f5ed; color: var(--brand-green); }
.catchup-status.paused, .catchup-status.draft { background: #fff1dc; color: #90540f; }
.catchup-status.cancelled { background: #f2f3f4; color: var(--ink-500); }
.catchup-selected-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.catchup-selected-card { padding: 16px; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 12px; border: 1px solid var(--line-subtle); border-radius: 17px; background: #fbfcfb; }
.catchup-selected-card.active { border-color: rgba(9,103,53,.3); box-shadow: 0 0 0 3px rgba(9,103,53,.07); }
.catchup-position { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: #fff1dc; color: #8b500d; font-weight: 850; }
.catchup-person > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.catchup-person h3 { margin: 8px 0 4px; font-size: 16px; }
.catchup-person p { margin: 0; color: var(--ink-500); font-size: 12px; }
.catchup-card-actions { grid-column: 2; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.catchup-card-actions form, .catchup-queue-actions form, .catchup-candidate-list form { margin: 0; }
.danger-text { color: var(--danger) !important; }
.catchup-queue-actions { margin-top: 15px; padding-top: 15px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--line-subtle); }
.catchup-queue-actions small { color: var(--ink-500); }
.catchup-source-grid { align-items: start; }
.catchup-search { margin-bottom: 13px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; }
.catchup-candidate-list { max-height: 520px; overflow: auto; border-top: 1px solid var(--line-subtle); }
.catchup-candidate-list article { padding: 12px 2px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-subtle); }
.catchup-candidate-list article > div:first-child strong, .catchup-candidate-list article > div:first-child small { display: block; }
.catchup-candidate-list article > div:first-child small { margin-top: 3px; color: var(--ink-500); }
.catchup-candidate-list article > div:last-child { display: flex; align-items: center; gap: 8px; }
.catchup-manual-panel form > .btn { margin-top: 13px; }
.meta-chip.catchup { border-color: rgba(181,107,21,.25); background: #fff1dc; color: #814a0d; }
.catchup-history { margin-top: 18px; }

@media (max-width: 780px) {
  .catchup-hero { padding: 20px; align-items: stretch; flex-direction: column; }
  .catchup-mode-card { min-width: 0; }
  .catchup-flow, .catchup-selected-grid { grid-template-columns: 1fr; }
  .catchup-candidate-list article { align-items: flex-start; flex-direction: column; }
  .catchup-candidate-list article > div:last-child { width: 100%; justify-content: space-between; }
}

/* Visa Susulan v2: three isolated manifest/passport workspaces. */
.catchup-v2-hero { margin-bottom: 18px; padding: 28px; display: flex; align-items: end; justify-content: space-between; gap: 24px; border: 1px solid #dce7df; border-radius: 24px; background: radial-gradient(circle at 90% 10%,#eaf7ef 0,transparent 30%),linear-gradient(135deg,#fff 0%,#f8fbf8 100%); }
.catchup-v2-hero h1 { margin: 6px 0; font-size: 36px; letter-spacing: -.035em; }
.catchup-v2-hero p { max-width: 680px; margin: 0; color: var(--ink-600); }
.catchup-v2-guard { min-width: 220px; padding: 16px; border: 1px solid #bfe1ca; border-radius: 16px; background: #f2fbf5; }
.catchup-v2-guard strong,.catchup-v2-guard span,.catchup-v2-guard small { display:block; }.catchup-v2-guard strong { color: var(--brand-green); font-size: 17px; }.catchup-v2-guard span { margin-top: 4px; font-size: 12px; font-weight: 700; }.catchup-v2-guard small { margin-top: 3px; color: var(--ink-500); }
.catchup-v2-intro { margin: 0 0 20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.catchup-v2-intro>div { padding:14px; display:flex; gap:10px; border:1px solid var(--line-subtle); border-radius:15px; background:#fff; }.catchup-v2-intro b { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:9px; color:#fff; background:var(--brand-green); font-size:12px; }.catchup-v2-intro strong,.catchup-v2-intro small { display:block; }.catchup-v2-intro small { margin-top:2px; color:var(--ink-500); font-size:11px; }
.catchup-v2-section { padding: 20px; border: 1px solid var(--line-subtle); border-radius: 22px; background: #fff; }.catchup-v2-section-head { margin-bottom:16px; display:flex; align-items:end; justify-content:space-between; gap:16px; }.catchup-v2-section-head h2 { margin:3px 0 0; font-size:21px; }.catchup-v2-section-head p { margin:0; color:var(--ink-500); font-size:12px; }
.catchup-v2-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.catchup-v2-batch,.catchup-v2-upload { min-width:0; padding:17px; border:1px solid var(--line-subtle); border-radius:18px; background:#fbfcfb; }.catchup-v2-batch.is-active { border-color:#83be98; box-shadow:0 0 0 3px rgba(9,103,53,.08); }.catchup-v2-batch header { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }.catchup-v2-code { display:block; color:var(--ink-500); font-size:10px; font-weight:800; letter-spacing:.08em; }.catchup-v2-batch h3,.catchup-v2-upload h3 { margin:5px 0 4px; font-size:16px; line-height:1.28; }.catchup-v2-batch header small { color:var(--ink-500); font-size:11px; }
.catchup-v2-metrics { margin:14px 0 12px; padding:10px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:5px; border-top:1px solid var(--line-subtle); border-bottom:1px solid var(--line-subtle); }.catchup-v2-metrics span { color:var(--ink-500); font-size:10px; }.catchup-v2-metrics b { display:block; color:var(--ink-800); font-size:16px; }
.catchup-v2-list { max-height:310px; overflow:auto; }.catchup-v2-person { padding:10px 0; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line-subtle); }.catchup-v2-person:last-child { border-bottom:0; }.catchup-v2-person strong,.catchup-v2-person small { display:block; }.catchup-v2-person strong { font-size:12px; }.catchup-v2-person small { margin-top:3px; color:var(--ink-500); font-size:10px; }.catchup-v2-person-actions { display:flex; align-items:end; flex-direction:column; gap:4px; text-align:right; }.catchup-v2-person-actions .link { font-size:11px; }.catchup-v2-missing { color:var(--danger); font-size:10px; font-weight:700; }
.catchup-v2-batch footer { margin-top:13px; padding-top:13px; display:flex; gap:8px; border-top:1px solid var(--line-subtle); }.catchup-v2-batch footer form { margin:0; }.catchup-v2-batch footer .btn { min-height:34px; padding:7px 9px; font-size:11px; }.catchup-v2-note { margin-top:8px; display:block; color:#8b5611; font-size:10px; line-height:1.35; }
.catchup-v2-upload { border-style:dashed; border-color:#b9d4c1; background:linear-gradient(135deg,#f7fcf8,#fff); }.catchup-v2-upload p { margin:0 0 14px; color:var(--ink-500); font-size:12px; }.catchup-v2-upload form { display:grid; gap:10px; }.catchup-v2-upload label { display:grid; gap:5px; color:var(--ink-600); font-size:11px; font-weight:700; }.catchup-v2-upload input[type=file] { padding:8px; border:1px dashed #bdcfc2; border-radius:10px; background:#fff; font-size:10px; }.catchup-v2-upload form>small { color:var(--ink-500); font-size:10px; line-height:1.4; }.catchup-v2-upload .btn { justify-self:start; }
@media (max-width: 1120px) { .catchup-v2-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 720px) { .catchup-v2-hero,.catchup-v2-section-head { align-items:stretch; flex-direction:column; }.catchup-v2-guard { min-width:0; }.catchup-v2-intro,.catchup-v2-grid { grid-template-columns:1fr; }.catchup-v2-hero h1 { font-size:30px; } }
/* v1.28 · Package Info per-group workspace */
.v128-package-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:14px 0 22px;padding:24px 26px;border:1px solid #dbe4dd;border-radius:24px;background:linear-gradient(135deg,#fff 0%,#f2f8f4 100%);box-shadow:0 14px 36px rgba(26,55,39,.08)}
.v128-package-hero h1{margin:5px 0 6px;font-size:30px;letter-spacing:-.04em}.v128-package-hero p{margin:0;color:#657169}.v128-package-actions,.v128-preview-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.v128-package-tabs{display:inline-flex;gap:4px;margin-bottom:18px;padding:5px;border:1px solid #dce3de;border-radius:14px;background:#f5f7f5}.v128-package-tabs button{border:0;border-radius:10px;padding:10px 18px;background:transparent;color:#647068;font-weight:700;cursor:pointer}.v128-package-tabs button.active{background:#fff;color:#08743f;box-shadow:0 4px 12px rgba(20,45,30,.11)}
.v128-package-form{display:grid;gap:18px}.v128-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px 18px}.v128-source-grid div{padding:14px 16px;border:1px solid #e1e6e2;border-radius:14px;background:#f8faf8}.v128-source-grid span,.v128-hotel-source span{display:block;color:#778078;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.v128-source-grid strong{display:block;margin-top:5px}.v128-form-pad{padding:0 20px 22px}.v128-editor-list{display:grid;gap:10px;padding:0 18px 20px}.v128-editor-row{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dfe6e1;border-radius:16px;background:#fbfcfb;transition:border-color .18s,box-shadow .18s}.v128-editor-row:focus-within{border-color:#67ae83;box-shadow:0 0 0 3px rgba(8,116,63,.08)}.v128-editor-row .grow{flex:1;min-width:0}.v128-order{display:grid;justify-items:center;gap:3px;color:#08743f;font-weight:800}.v128-order button{width:26px;height:24px;border:1px solid #d5ded7;border-radius:7px;background:#fff;color:#496056;cursor:pointer}.v128-editor-row[hidden]{display:none}.v128-editor-row [data-rawdhah][hidden],.v128-editor-row [data-standard][hidden]{display:none}.v128-hotel-list{display:grid;gap:10px;padding:0 18px 20px}.v128-hotel-list article{display:flex;align-items:center;gap:18px;padding:15px;border:1px solid #dfe5e0;border-radius:16px}.v128-hotel-source{width:240px;flex:none}.v128-hotel-source strong,.v128-hotel-source small{display:block;margin-top:4px}.v128-hotel-source small{color:#748078}.v128-template-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 18px 14px;padding:11px 12px;border-radius:13px;background:#f0f6f2}.v128-template-bar span{font-size:12px;font-weight:800;color:#526258}.v128-template-bar button{border:1px solid #cddbd1;border-radius:999px;padding:7px 10px;background:#fff;color:#17643f;font-size:12px;font-weight:700;cursor:pointer}.v128-template-bar button:hover{border-color:#198754;background:#f6fff9}.v128-savebar{position:sticky;bottom:14px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border:1px solid rgba(8,116,63,.25);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(20,44,30,.16);backdrop-filter:blur(12px)}.v128-savebar strong,.v128-savebar small{display:block}.v128-savebar small{margin-top:3px;color:#738078}.v128-preview-tools{justify-content:flex-end;margin-bottom:12px}.v128-preview-tools>div{margin-right:auto}.v128-preview-tools strong,.v128-preview-tools span{display:block}.v128-preview-tools span{color:#778178;font-size:13px}
.v128-vendor-sheet{overflow:auto;padding:22px;border:1px solid #d5d8d5;border-radius:18px;background:#fff;box-shadow:0 16px 38px rgba(20,35,25,.1)}.v128-vendor-sheet h2{margin:0 0 14px;text-align:center;font-family:Georgia,serif;font-style:italic}.v128-vendor-sheet table{width:100%;min-width:1050px;border-collapse:collapse;table-layout:fixed;color:#111;font-family:Arial,sans-serif;font-size:11px}.v128-vendor-sheet th,.v128-vendor-sheet td{height:27px;padding:4px 5px;border:1px solid #111;text-align:center;vertical-align:middle;white-space:pre-line;overflow-wrap:anywhere}.v128-vendor-sheet th{font-size:10px}.v128-vendor-sheet .section th{height:28px;border-left-color:#fff;border-right-color:#fff;font-size:13px}.v128-vendor-sheet .orange{background:#ff9900}.v128-vendor-sheet .yellow{background:#fff200}.v128-vendor-sheet .red{color:#e11919}
.v128-exit-due{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0;padding:18px 20px;border:1px solid #f0b84f;border-radius:18px;background:#fff8e7;box-shadow:0 10px 26px rgba(138,90,5,.1)}.v128-exit-due strong,.v128-exit-due p{display:block;margin-top:4px}.v128-exit-due p{margin-bottom:0;color:#725d32;font-size:13px}
.v128-backup-panel{border-color:rgba(9,103,53,.2)}.v128-backup-body{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px 24px}.v128-backup-body h3{margin:0 0 6px}.v128-backup-body p{margin:0 0 6px;color:var(--muted)}.v128-backup-body small{color:#8a4f00}
@media(max-width:980px){.v128-package-hero,.v128-hotel-list article{align-items:stretch;flex-direction:column}.v128-source-grid{grid-template-columns:1fr}.v128-hotel-source{width:auto}.v128-editor-row{align-items:flex-start}.v128-order{margin-top:22px}.v128-package-actions .btn{flex:1}.v128-exit-due{align-items:stretch;flex-direction:column}}
@media(max-width:680px){.v128-package-hero{padding:20px}.v128-editor-row{display:grid;grid-template-columns:30px minmax(0,1fr)}.v128-editor-row>.icon-danger{grid-column:2;justify-self:start}.v128-template-bar{align-items:stretch}.v128-template-bar button{width:100%;text-align:left}.v128-savebar{align-items:stretch;flex-direction:column}}
@media(max-width:720px){.v128-backup-body{align-items:stretch;flex-direction:column}}

/* v1.28.4 · City Tour mode and universal save/error feedback */
.v128-editor-row [data-city-tour][hidden]{display:none}
.hos-toast-stack{position:fixed;top:18px;right:18px;z-index:2500;display:grid;gap:10px;width:min(390px,calc(100vw - 28px));pointer-events:none}
.hos-toast{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border:1px solid #b8dcc6;border-radius:14px;background:rgba(247,255,249,.98);color:#174d2e;box-shadow:0 15px 38px rgba(20,55,35,.18);pointer-events:auto;animation:hos-toast-in .22s ease-out both}
.hos-toast.danger{border-color:#f1b8b3;background:#fff7f6;color:#8f2922}.hos-toast.warning{border-color:#efd28b;background:#fffaf0;color:#76510b}
.hos-toast strong{display:block;margin-bottom:2px}.hos-toast span{display:block;font-size:12px;line-height:1.4}.hos-toast button{margin-left:auto;border:0;background:transparent;color:inherit;font-size:18px;cursor:pointer}
.hos-toast.leaving{animation:hos-toast-out .2s ease-in both}@keyframes hos-toast-in{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}@keyframes hos-toast-out{to{opacity:0;transform:translateY(-6px) scale(.98)}}
@media(max-width:600px){.hos-toast-stack{top:10px;right:14px}}

/* v1.28.5 · single-action line flow */
.simple-flow-row{grid-template-columns:minmax(0,1fr) auto auto;min-height:68px}
.cloud-flow-row.simple-flow-row{grid-template-columns:34px minmax(0,1fr) auto auto}
.simple-flow-row.done{background:linear-gradient(90deg,rgba(22,115,62,.055),transparent)}
.simple-flow-row .flow-state{justify-self:start;border:0;border-radius:0;background:transparent;padding:0;white-space:normal}
.simple-flow-row .flow-state i{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#d5dcd7;box-shadow:0 0 0 5px #f1f4f2}
.simple-flow-row.done .flow-state i{background:var(--success);box-shadow:0 0 0 5px var(--success-bg)}
.simple-flow-row .flow-state span,.simple-flow-row .flow-state strong,.simple-flow-row .flow-state small,.simple-flow-row .flow-main small{display:block}
.simple-flow-row .flow-state span{color:var(--ink-500);font-size:9px;letter-spacing:.08em}.simple-flow-row .flow-state strong{margin:2px 0;font-size:13px}.simple-flow-row .flow-state small,.simple-flow-row .flow-main small,.flow-auto-note{color:var(--ink-500);font-size:11px}
.flow-complete-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--success);font-weight:800}
@media(max-width:720px){.simple-flow-row,.cloud-flow-row.simple-flow-row{grid-template-columns:34px minmax(0,1fr)}.simple-flow-row>.badge,.simple-flow-row>form,.simple-flow-row>.flow-complete-mark,.simple-flow-row>.flow-auto-note{grid-column:2;justify-self:start}}

/* v1.28.6 KPU live sync */
.kpu-sync-actions { justify-content: flex-end; }
.kpu-sync-button { min-width: 132px; }
.kpu-sync-button:disabled { opacity: .68; cursor: wait; }
.kpu-sync-note { margin: -8px 0 14px; color: var(--ink-500); font-size: 11px; line-height: 1.55; }
@media(max-width: 720px) {
  .kpu-sync-actions { width: 100%; justify-content: stretch; }
  .kpu-sync-actions .btn { flex: 1 1 145px; }
  .kpu-sync-actions .v125-status-pill { flex: 1 1 auto; }
}

/* v1.28.7 · Operational Saudi + TL movement */
.v1287-saudi-page{display:grid;gap:20px}.v1287-saudi-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.v1287-saudi-summary>a{background:var(--surface,#fff);border:1px solid var(--border,#e6ebe8);border-radius:16px;padding:16px;text-decoration:none;color:inherit;display:grid;gap:4px;box-shadow:0 6px 20px rgba(16,52,40,.05)}.v1287-saudi-summary span{font-size:12px;color:var(--muted,#67756f)}.v1287-saudi-summary strong{font-size:26px}.v1287-saudi-summary small{color:var(--muted,#67756f)}.v1287-ops-tabs{display:flex;gap:8px;flex-wrap:wrap}.v1287-ops-tabs a{padding:9px 13px;border:1px solid var(--border,#dfe7e3);border-radius:999px;text-decoration:none;color:inherit;background:#fff;font-size:13px;font-weight:700}.v1287-ops-tabs a.active{background:#0d5b43;color:#fff;border-color:#0d5b43}.v1287-journey-grid{display:grid;gap:14px}.v1287-journey-card{background:#fff;border:1px solid #e4ebe7;border-left:5px solid #2d8b6d;border-radius:18px;padding:18px;display:grid;gap:16px;box-shadow:0 8px 24px rgba(16,52,40,.06)}.v1287-journey-card.state-returning_today{border-left-color:#c54a3d}.v1287-journey-card.state-returning_soon{border-left-color:#e49a2f}.v1287-journey-card.state-in_saudi_return_unknown{border-left-color:#d7742e}.v1287-journey-head,.v1287-journey-foot{display:flex;justify-content:space-between;align-items:center;gap:14px}.v1287-journey-head h2{margin:3px 0 0;font-size:20px}.v1287-journey-status{background:#edf7f3;color:#0d5b43;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.v1287-journey-kpis{display:grid;grid-template-columns:120px 1fr 1fr;gap:10px}.v1287-journey-kpis>div{background:#f7faf8;border-radius:12px;padding:11px;display:grid;gap:2px}.v1287-journey-kpis span,.v1287-flight-node span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#738079}.v1287-journey-kpis small,.v1287-flight-node small{color:#74817b}.v1287-flight-line{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:14px;border:1px solid #edf1ef;border-radius:14px}.v1287-flight-node{display:grid;gap:3px}.v1287-flight-node.return{text-align:right}.v1287-flight-arrow{color:#9aa7a1;font-weight:900}.v1287-data-quality{font-size:12px;font-weight:800;padding:6px 9px;border-radius:8px;background:#edf7f3;color:#0d5b43}.v1287-data-quality.estimate{background:#fff5df;color:#8a5a00}.v1287-data-quality.danger{background:#fff0ee;color:#a33d31}.v1287-journey-foot>div{display:flex;align-items:center;gap:10px}.v1287-countdown{font-size:13px;font-weight:800}.btn.compact{padding:7px 10px;font-size:12px}.v1287-tl-movement{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.v1287-movement-pill{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#eef6ff;color:#235a89}.v1287-visa-pill{font-size:11px;font-weight:700;color:#6f7d76}.v1287-release-grid{display:grid;gap:10px}.v1287-release-row{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0ee}.v1287-release-row:last-child{border-bottom:0}.v1287-release-current{background:#edf7f3;color:#0d5b43;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}
@media(max-width:1000px){.v1287-saudi-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.v1287-journey-kpis{grid-template-columns:1fr 1fr}.v1287-journey-kpis>div:first-child{grid-column:span 2}}@media(max-width:700px){.v1287-saudi-summary{grid-template-columns:1fr 1fr}.v1287-journey-head,.v1287-journey-foot{align-items:flex-start;flex-direction:column}.v1287-journey-kpis{grid-template-columns:1fr}.v1287-journey-kpis>div:first-child{grid-column:auto}.v1287-flight-line{grid-template-columns:1fr}.v1287-flight-node.return{text-align:left}.v1287-flight-arrow{transform:rotate(90deg);justify-self:center}}


/* v1.28.9 TL Visa Vault */
.v129-visa-vault{margin-top:18px;padding-top:18px;border-top:1px solid var(--line,#dfe5e2)}
.v129-vault-head h3{margin:2px 0 4px}.v129-vault-head p{margin:0;color:var(--muted,#66756e);font-size:.88rem}
.v129-upload{display:flex;gap:12px;align-items:end;margin:14px 0}.v129-upload label{flex:1;display:grid;gap:6px;font-size:.85rem;font-weight:700}.v129-upload input{width:100%}
.v129-doc-list{display:grid;gap:9px}.v129-doc-row{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line,#dfe5e2);border-radius:14px;background:var(--surface,#fff)}
.v129-doc-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:rgba(19,100,67,.08);font-size:.72rem;font-weight:900}.v129-doc-main{display:grid;gap:2px}.v129-doc-main small,.v129-doc-main span{color:var(--muted,#66756e);font-size:.76rem}.v129-doc-actions{display:flex;gap:7px;align-items:center}.v129-doc-actions form{margin:0}
@media(max-width:720px){.v129-upload{display:grid}.v129-doc-row{grid-template-columns:44px 1fr}.v129-doc-actions{grid-column:1/-1;justify-content:flex-end}}


/* v1.29.3 · Production UX / native responsive navigation */
.hos-menu-toggle,.hos-mobile-nav,.hos-nav-backdrop{display:none}.hos-native-fieldset{min-width:0;margin:0;padding:0;border:0}.hos-native-fieldset:disabled{opacity:.72}.hos-native-fieldset:disabled input,.hos-native-fieldset:disabled select,.hos-native-fieldset:disabled textarea{cursor:not-allowed;background:#f6f8f6;color:var(--ink-500)}.v1293-readonly{margin-bottom:14px}.v1293-permission-note{margin:12px 0;padding:12px 14px;border:1px solid #dfe7e3;border-radius:13px;background:#f7faf8;display:grid;gap:2px}.v1293-permission-note strong{font-size:12px}.v1293-permission-note span{color:var(--ink-500);font-size:11px}.btn.is-busy,button.is-busy{cursor:wait;opacity:.78}.btn.is-busy::after,button.is-busy::after{content:"";width:12px;height:12px;margin-left:8px;display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:v1293spin .7s linear infinite}@keyframes v1293spin{to{transform:rotate(360deg)}}.hos-topbar{backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px)}
@media(max-width:920px){.hos-main{margin-left:0!important}.hos-sidebar{display:flex!important;position:fixed!important;inset:0 auto 0 0!important;width:min(84vw,320px)!important;height:100dvh!important;z-index:3100!important;transform:translateX(-104%);transition:transform .22s ease;box-shadow:0 18px 60px rgba(18,45,34,.2)}.hos-sidebar.is-open{transform:translateX(0)}.hos-nav-label,.hos-sidebar-foot{display:block!important}.hos-nav-item{justify-content:flex-start!important}.hos-nav-item span:not(.hos-nav-icon):not(.nav-new-tab){display:inline!important}.hos-brand-copy{display:block!important}.hos-menu-toggle{width:38px;height:38px;flex:0 0 38px;display:grid;align-content:center;gap:4px;padding:9px;border:1px solid var(--line-default);border-radius:12px;background:#fff}.hos-menu-toggle span{height:2px;border-radius:2px;background:var(--ink-700)}.hos-nav-backdrop{display:block;position:fixed;inset:0;z-index:3000;background:rgba(8,24,17,.28);backdrop-filter:blur(2px)}.hos-nav-backdrop[hidden]{display:none}body.hos-nav-open{overflow:hidden}.hos-mobile-nav{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:2800;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:6px;border:1px solid rgba(214,224,219,.9);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 14px 38px rgba(16,50,37,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.hos-mobile-nav a,.hos-mobile-nav button{min-width:0;min-height:52px;display:grid;place-items:center;align-content:center;gap:2px;border:0;border-radius:14px;background:transparent;color:var(--ink-500);text-decoration:none;font:inherit}.hos-mobile-nav a.active{color:var(--brand-green);background:var(--brand-green-faint)}.hos-mobile-nav span{font-size:18px;line-height:1}.hos-mobile-nav small{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:9px;font-weight:750;white-space:nowrap}.hos-content{padding-bottom:92px!important}.hos-topbar{z-index:1700!important;min-height:58px!important}.v125-command-button kbd{display:none}}
@media(max-width:560px){.hos-top-title .hos-breadcrumb,.hos-top-title>span{display:none}.hos-top-title strong{font-size:13px}.hos-user>div{display:none}.hos-user{gap:5px}.hos-user form button{padding:7px 8px}.v125-tl-hero{align-items:flex-start!important}.v125-tl-avatar.hero{width:48px;height:48px}.v125-tl-hero-copy h1{font-size:24px}.v125-detail-grid{grid-template-columns:1fr!important}.v125-tl-metrics{grid-template-columns:1fr 1fr!important}.v125-trip-dates{grid-template-columns:1fr}.v125-trip-update{grid-template-columns:1fr!important}.v125-trip-update .btn{width:100%}.v129-doc-actions{justify-content:stretch!important}.v129-doc-actions .btn,.v129-doc-actions form,.v129-doc-actions form button{width:100%}}

.v1293-readonly-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .72rem;border:1px solid rgba(89,101,92,.2);border-radius:999px;background:rgba(248,250,248,.86);color:#657169;font-size:.78rem;font-weight:750;white-space:nowrap}.v1293-permission-note.compact{margin-top:.65rem;padding:.7rem .85rem}.v1293-readonly fieldset[disabled],fieldset.v1293-readonly[disabled]{opacity:.8}.v1293-readonly fieldset[disabled] input,.v1293-readonly fieldset[disabled] select,.v1293-readonly fieldset[disabled] textarea{cursor:not-allowed}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  @media (max-width: 920px) {
    .hos-mobile-nav { padding-bottom: max(7px, env(safe-area-inset-bottom)); min-height: calc(66px + env(safe-area-inset-bottom)); }
    .hos-content { padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important; }
  }
}
