/* ==========================================================================
   TSG Trip CRM — visual theme layer
   Load AFTER styles.css. Changes appearance only: no markup, IDs, classes,
   data-* attributes or behaviour are touched.
   ========================================================================== */

@font-face { font-family: "RBNo3.1"; src: url("fonts/RBNo3.1-Book.otf") format("opentype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "RBNo3.1"; src: url("fonts/RBNo3.1-Medium.otf") format("opentype"); font-weight: 500; font-display: swap; }
@font-face { font-family: "RBNo3.1"; src: url("fonts/RBNo3.1-Bold.otf") format("opentype"); font-weight: 700; font-display: swap; }
@font-face { font-family: "RBNo3.1"; src: url("fonts/RBNo3.1-Extrabold.otf") format("opentype"); font-weight: 800; font-display: swap; }
@font-face { font-family: "RBNo3.1"; src: url("fonts/RBNo3.1-Black.otf") format("opentype"); font-weight: 900; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("fonts/Montserrat-VariableFont_wght.ttf") format("truetype"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Montserrat"; src: url("fonts/Montserrat-Italic-VariableFont_wght.ttf") format("truetype"); font-weight: 100 900; font-style: italic; font-display: swap; }

:root {
  /* Brand palette (TSG Brand Guidelines) */
  --b-black: #1a1a1a;
  --b-ink-2: #333333;
  --b-ink-3: #4d4d4d;
  --b-ink-4: #507282;
  --b-teal: #3f778c;
  --b-teal-600: #315f70;
  --b-teal-300: #8caabc;
  --b-teal-200: #b1c8d2;
  --b-teal-100: #c5d6dd;
  --b-teal-50: #e8eff2;
  --b-deep: #093542;
  --b-deep-2: #024945;
  --b-gold: #ed641e;
  --b-gold-600: #c94f12;
  --b-gold-400: #bdff00;
  --b-gold-200: #f5e64a;
  --b-gold-100: #fffbd1;
  --b-cream: #f6f2ee;
  --b-lime: #bdff00;
  --b-cyan: #08f0f0;
  --b-neon-green: #01e42f;
  --b-neon-red: #ff004d;
  --b-pink: #ff46da;
  --b-yellow: #ffea00;
  --b-orange: #ed641e;
  --b-forest: #024945;
  --b-slate: #507282;
  --b-plum: #5c4a56;
  --b-paper-warm: #f8f3ef;
  --b-cream-2: #efe9e2;
  --b-paper: #ffffff;
  --b-line: #e3dcd3;
  --b-line-strong: #cbc1b5;
  --b-red: #c8003c;
  --b-red-100: #ffe3ec;
  --b-green: #0a7a26;
  --b-green-100: #ddfbe3;

  --f-head: "RBNo3.1", "Montserrat", ui-sans-serif, system-ui, sans-serif;
  --f-body: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  --shell-header-h: 64px;
  --shell-nav-w: 248px;

  /* Re-point the app's own variables so every existing rule follows the brand */
  --tsg-blue: var(--b-teal);
  --tsg-blue-dark: var(--b-teal-600);
  --tsg-blue-soft: var(--b-teal-100);
  --tsg-gold: var(--b-gold);
  --tsg-gold-dark: var(--b-gold-600);
  --tsg-gold-light: var(--b-gold-200);
  --tsg-navy: var(--b-deep);
  --tsg-navy-soft: var(--b-teal);
  --tsg-ink: var(--b-black);
  --tsg-gray: var(--b-ink-3);
  --tsg-muted: var(--b-ink-4);
  --tsg-line: var(--b-line);
  --tsg-line-strong: var(--b-line-strong);
  --tsg-bg: var(--b-cream);
  --tsg-bg-warm: var(--b-cream);
  --tsg-white: #fff;
  --shadow: none;
  --shadow-soft: none;
  --shadow-hover: 0 1px 0 var(--b-line-strong);
  --font: var(--f-body);
}

/* ---------- Base ---------- */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { background: var(--b-cream); color: var(--b-black); font-family: var(--f-body); font-size: 14px; line-height: 1.5; }
body::before, .app-shell::before, .app-header::after, .auth-page::after { display: none !important; }
h1, h2, h3, h4 { font-family: var(--f-head); letter-spacing: 0; text-wrap: balance; }
p { text-wrap: pretty; }
a { color: var(--b-teal-600); }
a:hover { color: var(--b-deep); }
::selection { background: var(--b-gold-200); color: var(--b-black); }
:focus-visible { outline: 2px solid var(--b-gold); outline-offset: 2px; }
button, input, select, textarea { font-family: var(--f-body); }

/* Kill decorative effects: shine sweeps, lifts, topo blobs */
.button::after, .nav-button::after, .tab::after, .choice-card::after, .saved-trip-button::after { display: none !important; }
.button:hover, .nav-button:hover, .tab:hover, .saved-trip-button:hover, .metric:hover,
.choice-card:hover, .adventure-card:hover, .dashboard-trip-card:hover, .file-card:hover { transform: none !important; }
.button:active, .nav-button:active, .tab:active, .choice-card:active, .saved-trip-button:active { transform: none !important; }
.panel::before, .panel::after, .metric::after { display: none !important; }

/* ---------- App shell: top bar + left sidebar ---------- */
.app-shell {
  background: var(--b-cream);
  display: grid;
  grid-template-columns: var(--shell-nav-w) minmax(0, 1fr);
  grid-template-rows: var(--shell-header-h) minmax(0, 1fr);
  min-height: 100vh;
  overflow: visible;
}
.app-header {
  align-items: center;
  background: var(--b-deep);
  border-bottom: 2px solid var(--b-gold);
  display: flex;
  grid-column: 1 / -1;
  grid-row: 1;
  height: var(--shell-header-h);
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 30;
}
.app-hero { align-items: center; flex-direction: row !important; gap: 24px; width: 100%; }
.app-hero-main { align-items: center; display: flex; flex-direction: row !important; gap: 18px; min-width: 0; }
.app-hero img { height: 34px; max-width: none; width: auto; }
.app-divider { background: rgba(255,255,255,.22); display: block; height: 28px; width: 1px; }
.app-hero p { color: var(--b-gold-400); font-family: var(--f-body); font-size: 10px; font-weight: 700; letter-spacing: .14em; margin: 0 0 2px; }
.app-hero h1 { font-family: var(--f-head); font-size: 20px !important; font-weight: 800; letter-spacing: .02em; line-height: 1; }
.user-chip {
  align-items: center;
  display: grid;
  gap: 0 14px;
  grid-template-areas: "label btn" "name btn" "role btn";
  grid-template-columns: auto auto;
  justify-items: end;
  margin-left: auto;
}
.user-chip span { color: rgba(255,255,255,.6); font-size: 10px; font-weight: 600; grid-area: label; letter-spacing: .1em; line-height: 1.2; }
.user-chip strong { color: #fff; font-family: var(--f-head); font-size: 15px; font-weight: 700; grid-area: name; line-height: 1.2; }
.user-chip em { color: var(--b-teal-200); font-size: 10px; font-weight: 600; grid-area: role; letter-spacing: .08em; line-height: 1.2; }
.user-chip .button { grid-area: btn; }
.user-chip .button.light { background: transparent; border: 1px solid rgba(255,255,255,.3); color: #fff; }
.user-chip .button.light:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.55); color: #fff; }
.user-chip .button.light::before {
  background: currentColor; content: ""; height: 15px; margin-right: 8px; width: 15px;
  -webkit-mask: var(--i-log-out) center / contain no-repeat; mask: var(--i-log-out) center / contain no-repeat;
}

.nav-bar {
  align-content: start;
  align-self: start;
  background: var(--b-deep);
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 2px;
  grid-column: 1;
  grid-row: 2;
  height: calc(100vh - var(--shell-header-h));
  overflow-y: auto;
  padding: 20px 12px;
  position: sticky;
  top: var(--shell-header-h);
}
.nav-bar::before {
  color: rgba(255,255,255,.45); content: "Menu"; font-size: 10px; font-weight: 700;
  letter-spacing: .14em; padding: 0 12px 10px; text-transform: uppercase;
}
.nav-button {
  align-items: center;
  background: transparent;
  border: 0;
  box-shadow: none !important;
  color: rgba(255,255,255,.78);
  display: flex;
  font-family: var(--f-head);
  font-size: 13px;
  font-weight: 700;
  gap: 12px;
  justify-content: flex-start;
  letter-spacing: .04em;
  min-height: 42px;
  padding: 10px 12px;
  text-align: left;
  transition: background .15s ease, color .15s ease;
  width: 100%;
}
.nav-button::before { flex: 0 0 auto; height: 18px !important; margin: 0 !important; opacity: 1 !important; vertical-align: 0 !important; width: 18px !important; }
.nav-button:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-button.is-active { background: var(--b-teal); border: 0; color: #fff; }
.nav-button.is-active::after { background: var(--b-gold-400) !important; content: "" !important; display: block !important; height: 100%; inset: 0 auto 0 0 !important; position: absolute; transform: none !important; transition: none !important; width: 3px !important; }
.app-shell .nav-bar .nav-button[data-view="dashboard"] { --section-icon: var(--i-layout-dashboard); }
.app-shell .nav-bar .nav-button[data-view="calendar"] { --section-icon: var(--i-calendar); }
.app-shell .nav-bar .nav-button[data-view="adventures"] { --section-icon: var(--i-mountain); }
.app-shell .nav-bar .nav-button[data-view="planner"] { --section-icon: var(--i-map); }
.app-shell .nav-bar .nav-button[data-view="records"] { --section-icon: var(--i-archive); }
.app-shell .nav-bar .nav-button[data-view="travelersRecords"] { --section-icon: var(--i-users); }
.app-shell .nav-bar .nav-button[data-view="companyCosts"] { --section-icon: var(--i-wallet); }
.app-shell .nav-bar .nav-button[data-view="users"] { --section-icon: var(--i-shield); }

.main { grid-column: 2; grid-row: 2; min-width: 0; padding: 32px 40px 64px; }

/* ---------- Headings ---------- */
.panel-header { align-items: flex-start; border-bottom: 2px solid var(--b-black); gap: 20px; margin: -24px -24px 24px; padding: 20px 24px 18px; }
.panel-header h2, .panel-header h3 { color: var(--b-black); font-family: var(--f-head); font-size: 22px; font-weight: 800; gap: 12px; letter-spacing: .01em; line-height: 1.15; }
.panel-header h2::before, .panel-header h3::before { background: var(--b-teal); border: 0 !important; box-shadow: none !important; height: 22px; width: 22px; }
.panel-header p, .muted { color: var(--b-ink-3); font-size: 13px; margin-top: 6px; }

/* ---------- Surfaces ---------- */
.panel { background: var(--b-paper); border: 1px solid var(--b-line); border-radius: 0; box-shadow: none; margin-bottom: 24px; padding: 24px; }
.metric, .card { border-radius: 0; box-shadow: none; }

/* ---------- Metrics: one ruled grid ---------- */
.metrics { background: var(--b-line); border: 1px solid var(--b-line); gap: 1px; margin-bottom: 24px; }
.metric { background: var(--b-paper); border: 0; border-top: 0; display: grid; gap: 4px; padding: 20px 20px 18px 20px; position: relative; }
.metric:hover { background: #fffdfb; border-top: 0; box-shadow: none; }
.metric::before { background: var(--b-gold); height: 20px; opacity: 1; position: static; right: auto; top: auto; width: 20px; margin-bottom: 10px; }
.metric span { color: var(--b-ink-3); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.metric strong { color: var(--b-black); font-family: var(--f-head); font-size: 38px; font-weight: 800; line-height: 1; margin-top: 2px; }

/* ---------- Buttons ---------- */
.button, button.button {
  background: var(--b-teal);
  border: 1px solid var(--b-teal);
  border-radius: 0;
  box-shadow: none;
  color: #fff;
  font-family: var(--f-head);
  font-size: 13px;
  font-weight: 700;
  gap: 8px;
  justify-content: flex-start;
  letter-spacing: .05em;
  min-height: 40px;
  padding: 9px 16px;
  text-align: left;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}
.button:hover { background: var(--b-teal-600); border-color: var(--b-teal-600); box-shadow: none; }
.button:active { background: var(--b-deep); border-color: var(--b-deep); }
.button.gold { background: var(--b-gold); border-color: var(--b-gold); color: #fff; }
.button.gold:hover { background: var(--b-gold-600); border-color: var(--b-gold-600); }
.button.light { background: var(--b-paper); border: 1px solid var(--b-line-strong); color: var(--b-black); }
.button.light:hover { background: var(--b-cream); border-color: var(--b-black); color: var(--b-black); }
.button.danger { background: var(--b-red); border-color: var(--b-red); color: #fff; }
.button.danger:hover { background: #8f1c13; border-color: #8f1c13; }
.button.small { font-size: 11px; min-height: 32px; padding: 6px 11px; }
.link-button { color: var(--b-teal-600); font-weight: 600; }
.link-button:hover { color: var(--b-deep); }

/* ---------- Form fields ---------- */
.field { gap: 6px; }
.field span, .field label, .control-label { color: var(--b-ink-3); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.field input, .field select, .field textarea, .table-input, .table-select, .table-textarea, .rich-editor-input {
  background: var(--b-paper); border: 1px solid var(--b-line-strong); border-radius: 0; color: var(--b-black);
  font-size: 14px; min-height: 42px; transition: border-color .15s ease, box-shadow .15s ease;
}
.field select, .table-select { min-height: 42px; padding: 9px 12px; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--b-ink-4); }
.field input:focus, .field select:focus, .field textarea:focus, .table-input:focus, .table-select:focus, .table-textarea:focus, .rich-editor-input:focus {
  border-color: var(--b-teal); box-shadow: 0 0 0 3px rgba(63,119,140,.18);
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--b-teal); }

/* ---------- Notices ---------- */
.notice { border: 1px solid var(--b-line-strong); border-left-width: 1px; border-radius: 0; font-size: 13px; font-weight: 600; padding: 12px 16px; }
.notice.error { background: var(--b-red-100); border-color: #f2b8b2; color: #7a1610; }
.notice.success { background: var(--b-green-100); border-color: #b7dcc7; color: #14532d; }
.notice.warning { background: var(--b-gold-100); border-color: var(--b-gold-200); color: #6b4103; }

/* ---------- Tables ---------- */
.table-wrap { border: 1px solid var(--b-line); border-radius: 0; box-shadow: none; }
.crm-table, .records-table, .users-table { border-collapse: collapse; font-size: 13px; }
.crm-table th, .records-table th, .users-table th {
  background: var(--b-cream); border-bottom: 2px solid var(--b-black) !important; color: var(--b-black);
  font-family: var(--f-body); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.crm-table td, .records-table td, .users-table td { border-color: var(--b-line) !important; }
.crm-table tbody tr:hover td, .records-table tbody tr:hover td, .users-table tbody tr:hover td { background: #fbf8f5; }

/* ---------- Trip workspace: vertical section rail ---------- */
.workspace-content {
  align-items: start;
  display: grid;
  gap: 0 28px;
  grid-template-columns: 228px minmax(0, 1fr);
}
.workspace-content > .workspace-menu-toggle { grid-column: 1; grid-row: 1; justify-self: stretch; margin-bottom: 8px; }
.workspace-content > .tabs { grid-column: 1; grid-row: 2; }
.workspace-content > .tab-panel { grid-column: 2; grid-row: 1 / span 3; min-width: 0; }
.workspace-shell.is-menu-collapsed .workspace-content { grid-template-columns: minmax(0, 1fr); }
.workspace-shell.is-menu-collapsed .workspace-content > .tab-panel { grid-column: 1; grid-row: 2; }
.workspace-shell.is-menu-collapsed .workspace-content > .workspace-menu-toggle { justify-self: start; }
.tabs.workspace-horizontal-menu {
  background: var(--b-paper); border: 1px solid var(--b-line); border-top: 2px solid var(--b-black);
  display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0; margin: 0; position: sticky; top: calc(var(--shell-header-h) + 16px);
}
.tab {
  align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--b-line); box-shadow: none !important;
  color: var(--b-ink-2); display: flex; font-family: var(--f-body); font-size: 12px; font-weight: 600; gap: 10px;
  letter-spacing: .02em; min-height: 40px; padding: 9px 14px; text-align: left; text-transform: none; width: 100%;
}
.tab:last-child { border-bottom: 0; }
.tab::before { background: var(--b-teal); flex: 0 0 auto; height: 16px !important; margin: 0 !important; opacity: 1 !important; vertical-align: 0 !important; width: 16px !important; }
.tab:hover { background: var(--b-cream); color: var(--b-black); }
.tab.is-active { background: var(--b-deep); border-color: var(--b-deep); color: #fff; }
.tab.is-active::before { background: var(--b-gold-400); }
[data-tab="overview"] { --section-icon: var(--i-layout-grid); }
[data-tab="teamLeaderCosts"] { --section-icon: var(--i-user-round); }
[data-tab="guides"] { --section-icon: var(--i-signpost); }
[data-tab="travelersFinance"] { --section-icon: var(--i-coins); }
[data-tab="creditVouchers"] { --section-icon: var(--i-ticket); }
[data-tab="packingChecklists"] { --section-icon: var(--i-clipboard-list); }

/* ---------- Auth ---------- */
.auth-page { background: var(--b-deep) !important; }
.auth-card { background: var(--b-deep-2) !important; border: 1px solid rgba(255,255,255,.12) !important; border-radius: 0 !important; border-top: 2px solid var(--b-gold) !important; box-shadow: none !important; }
.auth-brand h1 { font-family: var(--f-head); font-size: 44px !important; font-weight: 900; line-height: .95; }
body:has(.auth-page) { background: var(--b-deep); }
.auth-page { min-height: 100vh; }
.auth-page a, .auth-page .link-button { color: var(--b-teal-200); }
.auth-page a:hover, .auth-page .link-button:hover { color: #fff; }
.auth-page .field span, .auth-page .field label { color: var(--b-teal-200); }
.choice-card { background: #fff !important; border: 1px solid transparent !important; box-shadow: none !important; }
.choice-card:hover { border-color: var(--b-gold) !important; }
.choice-card strong, .choice-card h2, .choice-card h3 { font-family: var(--f-head); font-weight: 800; color: var(--b-black); }
.auth-brand p { color: var(--b-gold-400); font-family: var(--f-body); font-weight: 700; letter-spacing: .14em; }

/* ---------- Global flattening: square corners, no drop shadows ---------- */
.app-shell *:not(input[type="radio"]), .auth-page *:not(input[type="radio"]), .app-shell *::before, .app-shell *::after { border-radius: 0 !important; }
.app-shell .panel *, .app-shell .metric, .app-shell .panel { box-shadow: none !important; }
.app-shell .panel input:focus, .app-shell .panel select:focus, .app-shell .panel textarea:focus { outline: 2px solid rgba(63,119,140,.35); outline-offset: 0; }
.app-shell { background: linear-gradient(to right, var(--b-deep) var(--shell-nav-w), var(--b-cream) var(--shell-nav-w)); }

/* ---------- Dashboard ---------- */
.metrics { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.dashboard-spotlight { margin-bottom: 24px; }
.dashboard-hero-card {
  background: var(--b-deep) !important; border: 0 !important; border-top: 2px solid var(--b-gold) !important;
  gap: 24px; grid-template-columns: minmax(0, 1fr) 260px; min-height: 0; padding: 32px 32px 28px;
}
.dashboard-hero-card::before, .dashboard-hero-card::after { display: none !important; }
.dashboard-hero-pill { background: transparent; border: 1px solid rgba(255,255,255,.25); color: var(--b-gold-400); font-family: var(--f-body); font-size: 10px; font-weight: 700; letter-spacing: .14em; padding: 6px 10px; }
.dashboard-hero-card strong { font-family: var(--f-head); font-size: 44px !important; font-weight: 900; line-height: 1; margin: 18px 0 12px; }
.dashboard-hero-card p { color: rgba(255,255,255,.8); font-size: 14px; max-width: 560px; }
.dashboard-hero-map { min-height: 150px; }
.dashboard-hero-map-icon { background: rgba(255,255,255,.12); height: 170px !important; min-height: 0 !important; width: 200px !important; }
.dashboard-hero-dot { background: var(--b-gold-400); border: 0; box-shadow: none; height: 8px; width: 8px; }
.dashboard-hero-route { border-top: 1px dashed rgba(250,161,26,.7); }
.dashboard-hero-features { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.12); gap: 1px; }
.dashboard-hero-feature { background: var(--b-deep); border: 0; padding: 14px 16px; }
.dashboard-hero-feature i { background: var(--b-gold-400); }
.dashboard-hero-feature b { font-family: var(--f-head); font-weight: 700; }

.dashboard-task-filters { background: var(--b-cream); border: 1px solid var(--b-line); padding: 16px; }
.dashboard-task-filters select, .dashboard-task-filters input, .dashboard-finance-filter select { background-color: #fff; border: 1px solid var(--b-line-strong); color: var(--b-black); font-weight: 600; min-height: 42px; }
.dashboard-task-filters .field > span:first-child, .dashboard-finance-filter span { color: var(--b-ink-3); font-weight: 700; letter-spacing: .08em; }
.dashboard-task-filter-control::before, .dashboard-finance-filter::before { background: var(--b-teal); opacity: 1; }
.dashboard-task-filters > .button { background: #fff; border: 1px solid var(--b-line-strong); color: var(--b-black); min-height: 42px; }
.dashboard-task-filters > .button:hover { background: var(--b-black); border-color: var(--b-black); color: #fff; }

.dashboard-task-list { background: var(--b-line); border: 1px solid var(--b-line); gap: 1px; }
.dashboard-task-card { background: #fff !important; border: 0 !important; min-height: 0; padding: 14px 18px 14px 22px; }
.dashboard-task-card:hover { background: #fbf8f5 !important; }
.dashboard-task-accent { bottom: 0; left: 0; top: 0; width: 3px; }
.dashboard-task-icon-badge { background: var(--b-cream); border: 0; flex-basis: 36px; height: 36px; width: 36px; }
.dashboard-task-icon-badge i { height: 18px; width: 18px; }
.dashboard-task-card strong { color: var(--b-black); font-family: var(--f-body); font-size: 14px; font-weight: 700; }
.dashboard-task-card .dashboard-task-copy > span { color: var(--b-ink-4); font-size: 11px; font-weight: 600; letter-spacing: .06em; margin-top: 3px; }
.dashboard-task-pill { background: transparent; border: 1px solid var(--b-line-strong); color: var(--b-ink-2); font-size: 10px; font-weight: 700; letter-spacing: .06em; min-height: 24px; padding: 3px 8px; }
.dashboard-task-pill.is-low, .dashboard-task-pill.is-muted { background: transparent; color: var(--b-ink-3); }
.dashboard-task-pill.is-medium, .dashboard-task-pill.is-waiting { background: var(--b-gold-100); border-color: var(--b-gold-200); color: #7a4a04; }
.dashboard-task-pill.is-high, .dashboard-task-pill.is-urgent { background: var(--b-red-100); border-color: #f2b8b2; color: #8f1c13; }
.dashboard-task-pill.is-progress { background: var(--b-teal-50); border-color: var(--b-teal-200); color: var(--b-teal-600); }
.dashboard-task-pill.is-done { background: var(--b-green-100); border-color: #b7dcc7; color: var(--b-green); }

.dashboard-finance-group { background: #fff !important; border: 1px solid var(--b-line) !important; padding: 14px 16px; }
.dashboard-finance-group > strong { color: var(--b-black); font-family: var(--f-body); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.dashboard-finance-group > strong::before { background: var(--b-teal); opacity: 1; }
.dashboard-finance-note { background: var(--b-gold-100) !important; border: 1px solid var(--b-gold-200) !important; color: #6b4103 !important; }
.grid { align-items: start; }
.dashboard-finance-currency-grid { gap: 8px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; }
.dashboard-finance-currency-card { background: var(--b-cream); border: 0; min-height: 0; padding: 10px 12px; }
.dashboard-finance-currency-icon { background: #fff; border: 1px solid var(--b-line); color: var(--b-teal-600); flex-basis: 32px; font-family: var(--f-head); height: 32px; width: 32px; }
.dashboard-finance-currency-card span:not(.dashboard-finance-currency-icon) { color: var(--b-ink-3); font-size: 10px; font-weight: 700; }
.dashboard-finance-currency-card strong { color: var(--b-black); font-family: var(--f-head); font-size: 18px; font-weight: 800; }
.dashboard-passport-grid { gap: 0 !important; border-top: 1px solid var(--b-line); border-left: 1px solid var(--b-line); }
.dashboard-passport-stamp { aspect-ratio: auto; background: #fff; border: 0 !important; border-bottom: 1px solid var(--b-line) !important; border-right: 1px solid var(--b-line) !important; padding: 18px 10px; transform: none !important; }
.dashboard-passport-stamp:hover { background: var(--b-cream); }
.dashboard-passport-stamp strong { color: var(--b-black); font-family: var(--f-head); font-weight: 700; }
.dashboard-passport-stamp em { color: var(--b-ink-4); }
.user-chip .button { white-space: nowrap; }
.app-header::before, .app-hero::before, .app-hero::after, .app-hero-main::before, .app-hero-main::after { display: none !important; }
.form-grid, .planner-selector { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; }
.planner-selector .button { min-width: 0; }
.travelers-formula-bar { background: var(--b-deep) !important; border: 0 !important; }

.dashboard-breakdown-panel article::before, .dashboard-breakdown-panel article::after, .dashboard-breakdown-panel article button::before, .dashboard-breakdown-panel article button::after { display: none !important; }
.app-shell .panel { background: var(--b-paper) !important; }
.dashboard-breakdown-panel article, .dashboard-breakdown-card, .dashboard-departure-card { background: #fff !important; border: 1px solid var(--b-line) !important; border-left: 1px solid var(--b-line) !important; }
.dashboard-breakdown-panel article:hover { border-color: var(--b-line-strong) !important; }
.dashboard-breakdown-panel article button { background: transparent !important; }
.dashboard-breakdown-title { color: var(--b-black); font-family: var(--f-head); font-weight: 800; min-height: 0; }
.dashboard-breakdown-date, .dashboard-breakdown-action { color: var(--b-ink-3); font-weight: 700; letter-spacing: .06em; }
.dashboard-breakdown-action { color: var(--b-teal-600); }
.dashboard-breakdown-flags span { background: transparent; border: 1px solid var(--b-line); }
.dashboard-breakdown-metric, .dashboard-departure-countdown, .dashboard-departure-pill { background: transparent; border: 1px solid var(--b-line-strong); color: var(--b-ink-2); font-size: 10px; font-weight: 700; letter-spacing: .04em; min-height: 22px; padding: 3px 7px; }
.dashboard-breakdown-metric.has-value, .dashboard-departure-countdown { background: var(--b-teal-50); border-color: var(--b-teal-200); color: var(--b-teal-600); }
.dashboard-departure-countdown.is-soon { background: var(--b-gold-100); border-color: var(--b-gold-200); color: #7a4a04; }
.dashboard-departure-countdown.is-past { background: transparent; color: var(--b-ink-4); }
.dashboard-breakdown-metric b { color: var(--b-black); }
.dashboard-records-list::-webkit-scrollbar-track { background: var(--b-cream); }
.dashboard-records-list::-webkit-scrollbar-thumb { background: var(--b-line-strong); }
.table-tools { background: var(--b-cream); border: 1px solid var(--b-line); }
.table-tools .button.gold[data-action="save-trip"] { background: var(--b-deep); border-color: var(--b-deep); }
.table-tools .button.gold[data-action="save-trip"]:hover { background: var(--b-black); }
.table-summary-card { background: #fff !important; border: 1px solid var(--b-line); min-height: 0; }
.table-summary-card span { color: var(--b-ink-3); font-weight: 700; letter-spacing: .08em; }
.table-summary-card strong { color: var(--b-black); font-family: var(--f-head); font-weight: 800; }
.dashboard-finance-currency-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important; }
.dashboard-finance-currency-card strong { font-size: 16px; overflow-wrap: normal; white-space: nowrap; }

/* ---------- Calendar ---------- */
.calendar-day { background: #fff; min-height: 132px; }
.calendar-day.is-muted { background: var(--b-cream); }
.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--b-gold) !important; }
.calendar-day-number { background: transparent; color: var(--b-black); font-family: var(--f-head); font-size: 14px; font-weight: 700; height: auto; justify-content: flex-start; width: auto; }
.calendar-day.is-muted .calendar-day-number { background: transparent; color: var(--b-ink-4); }
.calendar-day.is-today .calendar-day-number { background: var(--b-gold); color: #fff; padding: 2px 6px; }
.calendar-item { background: var(--b-cream); border: 0; border-left: 3px solid var(--b-teal); padding: 6px 8px; }
.calendar-item-adventure { background: var(--b-teal-50); }
.calendar-item-itinerary { background: var(--b-gold-100); }
.calendar-item span, .calendar-agenda span { color: var(--b-ink-4); font-weight: 700; letter-spacing: .06em; }
.calendar-item strong, .calendar-agenda strong { font-weight: 700; }
.calendar-item em, .calendar-agenda em { color: var(--b-teal-600); font-weight: 600; }

/* ---------- Adventures ---------- */
.adventure-form { align-items: start; }
.adventure-card-grid { background: transparent; border: 0; border-left: 1px solid var(--b-line); border-top: 1px solid var(--b-line); gap: 0 !important; }
.adventure-card { background: #fff !important; border: 0 !important; border-bottom: 1px solid var(--b-line) !important; border-right: 1px solid var(--b-line) !important; gap: 12px; padding: 18px; }
.adventure-card::before { display: none; }
.adventure-card:hover, .adventure-card.is-active { background: #fffdfb !important; box-shadow: inset 0 2px 0 var(--b-gold) !important; }
.adventure-card-main strong { color: var(--b-black); font-family: var(--f-head); font-size: 18px; font-weight: 800; }
.adventure-card-main em { color: var(--b-ink-3); font-size: 12px; font-weight: 600; }
.adventure-card-pill, .adventure-status-badge, .badges span, .traveler-card .badges span {
  background: transparent; border: 1px solid var(--b-line-strong); color: var(--b-ink-2); font-size: 10px; font-weight: 700; letter-spacing: .06em; min-height: 22px; padding: 3px 7px; white-space: nowrap;
}
.adventure-status-badge { background: var(--b-cream); border-color: var(--b-line-strong); }
.adventure-status-badge.status-open-for-booking { background: var(--b-green-100); border-color: #b7dcc7; color: var(--b-green); }
.adventure-status-badge.status-sold-out { background: var(--b-gold-100); border-color: var(--b-gold-200); color: #7a4a04; }
.adventure-status-badge.status-completed { background: var(--b-teal-50); border-color: var(--b-teal-200); color: var(--b-teal-600); }
.adventure-status-badge.status-cancelled { background: var(--b-red-100); border-color: #f2b8b2; color: #8f1c13; }
.adventure-card-description { color: var(--b-ink-3); font-weight: 500; }
.adventure-card-actions { gap: 6px; }
.flag-chip { border: 1px solid var(--b-line); box-shadow: none !important; font-size: 18px; height: 28px; width: 38px; }
.flag-chip::after { display: none; }

/* ---------- Trip workspace: header + overview ---------- */
.tabs.workspace-horizontal-menu { overflow: visible !important; padding-bottom: 0; }
.workspace-horizontal-menu .tab { flex: 0 0 auto; }
.trip-ops-header { background: var(--b-deep) !important; border: 0; border-top: 2px solid var(--b-gold); gap: 18px; margin: -24px -24px 24px; padding: 24px; }
.trip-ops-header::after { display: none; }
.trip-ops-kicker { color: var(--b-gold-400); font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.trip-ops-header h2 { font-family: var(--f-head); font-size: 34px !important; font-weight: 900; }
.trip-ops-header p { color: rgba(255,255,255,.75); font-weight: 500; }
.trip-ops-header-meta, .trip-ops-kpi-grid { border-left: 1px solid rgba(255,255,255,.14); border-top: 1px solid rgba(255,255,255,.14); gap: 0 !important; }
.trip-ops-header-meta > *, .trip-ops-header .trip-ops-kpi-grid > * { border-bottom: 1px solid rgba(255,255,255,.14) !important; border-right: 1px solid rgba(255,255,255,.14) !important; }
.trip-ops-meta-item, .trip-ops-header .trip-ops-kpi-card { background: var(--b-deep) !important; border-top: 0 !important; border-left: 0 !important; color: #fff; min-height: 0; padding: 12px 14px; }
.trip-ops-meta-item span, .trip-ops-header .trip-ops-kpi-card span { color: var(--b-teal-200) !important; font-size: 10px; font-weight: 600; letter-spacing: .1em; }
.trip-ops-meta-item strong, .trip-ops-header .trip-ops-kpi-card strong { color: #fff !important; font-family: var(--f-head); font-size: 16px; font-weight: 700; }
.trip-ops-kpi-card { background: #fff; border: 1px solid var(--b-line); }
.trip-ops-kpi-card strong { color: var(--b-black); font-family: var(--f-head); font-weight: 800; }
.trip-ops-overview-grid { background: var(--b-line); border: 1px solid var(--b-line); gap: 1px; }
.trip-ops-panel { background: #fff; border: 0; padding: 18px; }
.trip-ops-panel-head { border-bottom: 2px solid var(--b-black); margin: -18px -18px 14px; padding: 14px 18px; }
.trip-ops-panel-head span { color: var(--b-black); font-weight: 700; letter-spacing: .1em; }
.trip-ops-panel-head strong { color: var(--b-ink-4); font-size: 12px; font-weight: 600; }
.trip-ops-alert { background: var(--b-gold-100); border: 1px solid var(--b-gold-200); border-left: 1px solid var(--b-gold-200); }
.trip-ops-alert-danger { background: var(--b-red-100); border-color: #f2b8b2; }
.trip-ops-alert strong, .trip-ops-activity-item strong, .trip-health-item strong { color: var(--b-black); font-weight: 700; }
.trip-ops-alert span, .trip-ops-activity-item p { color: var(--b-ink-3); font-weight: 500; }
.trip-ops-alert-icon { background: var(--b-gold); }
.trip-ops-alert-danger .trip-ops-alert-icon { background: var(--b-red); }
.trip-ops-quick-actions { border-left: 1px solid var(--b-line); border-top: 1px solid var(--b-line); gap: 0 !important; }
.trip-ops-action-button { background: #fff !important; border: 0 !important; border-bottom: 1px solid var(--b-line) !important; border-right: 1px solid var(--b-line) !important; color: var(--b-black); min-height: 52px; }
.trip-ops-action-button:hover { background: var(--b-cream) !important; }
.trip-ops-action-button span { color: var(--b-teal); }
.trip-ops-action-button strong { font-family: var(--f-head); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.trip-ops-activity-item { border-left: 2px solid var(--b-line-strong); }
.trip-ops-activity-item span { color: var(--b-teal-600); font-weight: 700; letter-spacing: .06em; }
.trip-health-item span { color: var(--b-teal-600); font-weight: 700; }
.trip-health-bar { background: var(--b-cream-2); height: 6px; }
.trip-health-bar span { background: var(--b-teal); }
.trip-ops-finance-grid { border-left: 1px solid var(--b-line); border-top: 1px solid var(--b-line); gap: 0 !important; }
.trip-ops-finance-line { background: #fff; border: 0; border-bottom: 1px solid var(--b-line) !important; border-right: 1px solid var(--b-line) !important; }
.trip-ops-finance-line span { color: var(--b-ink-3); }
.trip-ops-finance-line strong { color: var(--b-black); font-family: var(--f-head); font-weight: 800; }
.trip-ops-finance-line.is-strong { background: var(--b-teal-50); border: 0; }
.trip-ops-finance-line.is-warning { background: var(--b-gold-100); border: 0; }

.tab-section-heading { background: #fff; border: 0; border-bottom: 2px solid var(--b-black); border-left: 0; margin: 0 0 18px; padding: 0 0 12px; }
.tab-section-heading h3 { color: var(--b-black); font-family: var(--f-head); font-size: 22px; font-weight: 800; text-transform: none; }

/* ---------- Record cards (travelers, providers, flights…) ---------- */
.traveler-card-grid { gap: 16px; }
.traveler-card { background: #fff !important; border: 1px solid var(--b-line) !important; padding: 18px; }
.traveler-card::after { display: none; }
.traveler-card::before { background: var(--b-teal); height: 2px; }
.traveler-card:hover { border-color: var(--b-line-strong) !important; }
.traveler-card-photo { background: var(--b-deep); box-shadow: none; height: 56px; width: 56px; }
.traveler-card-photo span { font-family: var(--f-head); font-size: 20px; font-weight: 800; }
.traveler-card-body h4 { color: var(--b-black); font-family: var(--f-head); font-size: 17px; font-weight: 800; }
.traveler-card .chip-gender { background: var(--b-gold-100); border-color: var(--b-gold-200); color: #7a4a04; }
.traveler-card-detail-lines { color: var(--b-ink-3); }
.traveler-card-passport, .traveler-card-allergy { background: var(--b-teal-50); color: var(--b-teal-600); font-size: 12px; font-weight: 600; padding: 3px 8px; }
.traveler-card-passport.is-warning, .traveler-card-allergy { background: var(--b-gold-100); color: #7a4a04; }
.traveler-card-passport.is-expired, .traveler-card-passport.is-missing { background: var(--b-red-100); color: #8f1c13; }
.traveler-card-actions { border-top: 1px solid var(--b-line); }
.saved-trip-button { background: #fff; border: 1px solid var(--b-line-strong); color: var(--b-black); font-weight: 600; }
.saved-trip-button:hover, .saved-trip-button.is-active { background: var(--b-deep); border-color: var(--b-deep); color: #fff; }
.saved-trip-shortcuts > span { color: var(--b-ink-3); font-size: 11px; font-weight: 700; letter-spacing: .08em; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .main { padding: 24px; }
  .workspace-content { grid-template-columns: minmax(0, 1fr); }
  .workspace-content > .tabs, .workspace-content > .tab-panel, .workspace-content > .workspace-menu-toggle { grid-column: 1; grid-row: auto; }
  .tabs.workspace-horizontal-menu { flex-direction: row; flex-wrap: wrap; position: static; }
  .tab { border-bottom: 0; border-right: 1px solid var(--b-line); width: auto; }
}
@media (max-width: 860px) {
  .app-shell { background: var(--b-cream); grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); }
  .app-header { height: auto; padding: 12px 16px; position: static; }
  .app-hero-main p, .app-divider, .user-chip span { display: none; }
  .nav-bar { flex-direction: row; grid-column: 1; grid-row: 2; height: auto; overflow-x: auto; padding: 8px; position: sticky; top: 0; z-index: 20; }
  .nav-bar::before { display: none; }
  .nav-button { flex: 0 0 auto; width: auto; }
  .main { grid-column: 1; grid-row: 3; padding: 20px 16px 48px; }
}
@media print {
  .app-shell { display: block; }
}

/* ---------- Extended brand palette accents ---------- */
.app-header { border-bottom-color: var(--b-lime); }
.nav-button.is-active { background: var(--b-forest); color: #fff; }
.nav-button.is-active::before { background: var(--b-lime) !important; }
.nav-button.is-active::after { background: var(--b-lime) !important; }
.user-chip em { color: var(--b-cyan); }

.metric:nth-child(4n+1) { border-top: 4px solid var(--b-lime) !important; }
.metric:nth-child(4n+2) { border-top: 4px solid var(--b-cyan) !important; }
.metric:nth-child(4n+3) { border-top: 4px solid var(--b-pink) !important; }
.metric:nth-child(4n+4) { border-top: 4px solid var(--b-orange) !important; }
.metric:nth-child(4n+1)::before { background: var(--b-forest); }
.metric:nth-child(4n+2)::before { background: var(--b-slate); }
.metric:nth-child(4n+3)::before { background: var(--b-plum); }
.metric:nth-child(4n+4)::before { background: var(--b-orange); }

.button.gold { background: var(--b-lime); border-color: var(--b-lime); color: var(--b-deep); }
.button.gold:hover { background: #a8e600; border-color: #a8e600; color: var(--b-deep); }
.button.gold:active { background: var(--b-deep); border-color: var(--b-deep); color: var(--b-lime); }
.button.light:hover { border-color: var(--b-plum); }
.button.danger { background: var(--b-red); border-color: var(--b-red); }
:focus-visible { outline-color: var(--b-orange); }
::selection { background: var(--b-lime); }

.dashboard-hero-card { background: var(--b-deep) !important; border-top-color: var(--b-lime) !important; }
.dashboard-hero-pill { border-color: rgba(189,255,0,.45); color: var(--b-lime); }
.dashboard-hero-dot { background: var(--b-cyan); }
.dashboard-hero-route { border-top-color: rgba(255,70,218,.8); }
.dashboard-hero-feature:nth-child(4n+1) i { background: var(--b-lime); }
.dashboard-hero-feature:nth-child(4n+2) i { background: var(--b-cyan); }
.dashboard-hero-feature:nth-child(4n+3) i { background: var(--b-pink); }
.dashboard-hero-feature:nth-child(4n+4) i { background: var(--b-yellow); }

.dashboard-task-pill.is-medium, .dashboard-task-pill.is-waiting { background: #fffbd1; border-color: var(--b-yellow); color: #5c4f00; }
.dashboard-task-pill.is-high { background: #fff0e8; border-color: var(--b-orange); color: #8a3405; }
.dashboard-task-pill.is-urgent { background: #ffe3ec; border-color: var(--b-neon-red); color: #a3002f; }
.dashboard-task-pill.is-progress { background: #dcfdfd; border-color: var(--b-cyan); color: #0b5a60; }
.dashboard-task-pill.is-done { background: #ddfbe3; border-color: var(--b-neon-green); color: #0a6620; }
.dashboard-task-icon-badge { background: var(--b-deep); }
.dashboard-task-icon-badge i { background: var(--b-lime) !important; }
.dashboard-finance-group > strong::before { background: var(--b-orange); }
.dashboard-finance-currency-icon { background: var(--b-forest); border-color: var(--b-forest); color: var(--b-lime); }
.dashboard-departure-countdown.is-soon { background: #fff0e8; border-color: var(--b-orange); color: #8a3405; }

.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--b-orange) !important; }
.calendar-day.is-today .calendar-day-number { background: var(--b-orange); }
.calendar-item { border-left-color: var(--b-cyan); }
.calendar-item-adventure { background: #f3ffd6; border-left-color: var(--b-lime); }
.calendar-item-itinerary { background: #fff0e8; border-left-color: var(--b-orange); }

.adventure-card:hover, .adventure-card.is-active { box-shadow: inset 0 3px 0 var(--b-lime) !important; }
.adventure-status-badge.status-open-for-booking { background: #ddfbe3; border-color: var(--b-neon-green); color: #0a6620; }
.adventure-status-badge.status-sold-out { background: #ffe3ec; border-color: var(--b-neon-red); color: #a3002f; }
.adventure-status-badge.status-completed { background: #e6edf0; border-color: var(--b-slate); color: #2f4a56; }
.adventure-status-badge.status-cancelled { background: #efe9ed; border-color: var(--b-plum); color: var(--b-plum); }

.tab.is-active { background: var(--b-deep); }
.tab.is-active::before { background: var(--b-lime); }
.tab::before { background: var(--b-slate); }
.trip-ops-header { border-top-color: var(--b-lime); }
.trip-ops-kicker { color: var(--b-lime); }
.trip-ops-meta-item span, .trip-ops-header .trip-ops-kpi-card span { color: var(--b-cyan) !important; }
.trip-ops-alert { background: #fffbd1; border-color: var(--b-yellow); }
.trip-ops-alert-icon { background: var(--b-orange); }
.trip-ops-alert-danger { background: #ffe3ec; border-color: var(--b-neon-red); }
.trip-ops-alert-danger .trip-ops-alert-icon { background: var(--b-neon-red); }
.trip-ops-action-button span { color: var(--b-forest); }
.trip-health-item:nth-child(4n+1) .trip-health-bar span { background: var(--b-forest); }
.trip-health-item:nth-child(4n+2) .trip-health-bar span { background: var(--b-cyan); }
.trip-health-item:nth-child(4n+3) .trip-health-bar span { background: var(--b-orange); }
.trip-health-item:nth-child(4n+4) .trip-health-bar span { background: var(--b-pink); }
.trip-ops-finance-line.is-strong { background: #f3ffd6; }
.trip-ops-finance-line.is-warning { background: #fff0e8; }

.traveler-card:nth-child(5n+1)::before { background: var(--b-lime); height: 3px; }
.traveler-card:nth-child(5n+2)::before { background: var(--b-cyan); height: 3px; }
.traveler-card:nth-child(5n+3)::before { background: var(--b-pink); height: 3px; }
.traveler-card:nth-child(5n+4)::before { background: var(--b-yellow); height: 3px; }
.traveler-card:nth-child(5n+5)::before { background: var(--b-orange); height: 3px; }
.traveler-card:nth-child(3n+1) .traveler-card-photo { background: var(--b-deep); }
.traveler-card:nth-child(3n+2) .traveler-card-photo { background: var(--b-plum); }
.traveler-card:nth-child(3n+3) .traveler-card-photo { background: var(--b-slate); }
.traveler-card .chip-gender { background: #ffe8fb; border-color: var(--b-pink); color: #8a1474; }
.traveler-card-allergy { background: #fff0e8; color: #8a3405; }
.saved-trip-button.is-active { background: var(--b-forest); border-color: var(--b-forest); }

.notice.success { background: #ddfbe3; border-color: var(--b-neon-green); color: #0a5c1d; }
.notice.error { background: #ffe3ec; border-color: var(--b-neon-red); color: #8f0029; }
.notice.warning { background: #fffbd1; border-color: var(--b-yellow); color: #5c4f00; }
.crm-table th, .records-table th, .users-table th { background: var(--b-paper-warm); }

.auth-card { border-top-color: var(--b-lime) !important; }
.auth-brand p { color: var(--b-lime); }
.choice-card:hover { border-color: var(--b-lime) !important; }

/* ---------- Adventure backgrounds: topographic contours ---------- */
:root {
  --topo-light: url("textures/topo-light.svg");
  --topo-dark: url("textures/topo-dark.svg");
  --topo-lime: url("textures/topo-lime.svg");
}
.app-shell {
  background:
    var(--topo-light) 0 0 / 900px 900px repeat,
    var(--b-cream);
}
.app-shell .main { background: transparent; }
.app-header { background: var(--topo-dark) -120px -340px / 900px 900px repeat, var(--b-deep); }
.nav-bar { background: var(--topo-dark) -200px 0 / 900px 900px repeat, var(--b-deep); }
.dashboard-hero-card { background: linear-gradient(90deg, var(--b-deep) 0 40%, rgba(9,53,66,.6) 65%, rgba(9,53,66,0) 100%), var(--topo-lime) right -160px top -220px / 900px 900px repeat, var(--b-deep) !important; }
.dashboard-hero-dot, .dashboard-hero-route { display: none !important; }
.dashboard-hero-feature { background: var(--b-deep) !important; }
.trip-ops-header { background: linear-gradient(90deg, var(--b-deep) 0 40%, rgba(9,53,66,.6) 65%, rgba(9,53,66,0) 100%), var(--topo-lime) right -300px top -100px / 900px 900px repeat, var(--b-deep) !important; }
.trip-ops-meta-item, .trip-ops-header .trip-ops-kpi-card { background: var(--b-deep) !important; }
.auth-page { background: var(--topo-dark) center / 900px 900px repeat, var(--b-deep) !important; }
.auth-card { background: rgba(2,73,69,.94) !important; }
.panel { background: var(--b-paper) !important; }
.panel-header { background: linear-gradient(var(--b-paper-warm), var(--b-paper-warm)); }

@media (max-width: 860px) {
  .app-shell { background: var(--topo-light) 0 0 / 900px 900px repeat, var(--b-cream); }
}
@media print {
  .app-shell, .app-header, .nav-bar, .dashboard-hero-card, .trip-ops-header { background-image: none !important; }
}

/* ---------- Destinations Covered: world map with pins ---------- */
.app-shell .dashboard-passport-grid {
  aspect-ratio: 1000 / 389;
  background: url("textures/world-dots.svg") center / 100% 100% no-repeat, var(--b-paper-warm);
  border: 1px solid var(--b-line) !important;
  display: block !important;
  margin: 0;
  padding: 0;
  position: relative;
}
.app-shell .dashboard-passport-grid .dashboard-passport-stamp {
  align-items: stretch;
  aspect-ratio: auto;
  background: transparent !important;
  border: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: auto;
  min-width: 22px;
  padding: 0 0 16px;
  position: absolute;
  transform: translate(-50%, -100%) !important;
  z-index: 1;
}
.app-shell .dashboard-passport-grid .dashboard-passport-stamp::after {
  background: var(--b-orange);
  border: 2px solid #fff;
  bottom: -7px;
  box-shadow: 0 0 0 5px rgba(237, 100, 30, .22);
  content: "";
  height: 10px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
}
.app-shell .dashboard-passport-grid .dashboard-passport-stamp > * { display: none; }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover { z-index: 5; }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover::after { background: var(--b-lime); box-shadow: 0 0 0 5px rgba(189, 255, 0, .35); }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover > * { background: var(--b-deep); color: #fff; display: block; padding: 0 12px; text-align: left; white-space: nowrap; }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover > .dashboard-passport-flag { font-size: 18px; padding-top: 8px; }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover > strong { color: #fff; font-family: var(--f-head); font-size: 13px; font-weight: 800; letter-spacing: .04em; padding-top: 4px; }
.app-shell .dashboard-passport-grid .dashboard-passport-stamp:hover > em { color: var(--b-lime); font-size: 11px; font-style: normal; font-weight: 700; padding-bottom: 8px; padding-top: 2px; }
.dashboard-passport-summary { align-items: center; color: var(--b-ink-2); display: flex; font-family: var(--f-head); font-size: 13px; font-weight: 800; gap: 10px; letter-spacing: .06em; margin: 14px 0 0; }
.dashboard-passport-summary::before { background: var(--b-orange); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--b-line-strong); content: ""; flex: 0 0 auto; height: 10px; transform: rotate(45deg); width: 10px; }

/* ---------- Dashboard order: Destinations above Active Tasks ---------- */
.section.is-active[data-section="dashboard"] { display: flex; flex-direction: column; }
.section[data-section="dashboard"] > * { order: 4; }
.section[data-section="dashboard"] > .metrics { order: 1; }
.section[data-section="dashboard"] > .dashboard-spotlight { order: 2; }
.section[data-section="dashboard"] > .dashboard-passport-panel { order: 3; }

/* ---------- Finance filter: keep the icon inside the select ---------- */
.app-shell .dashboard-finance-filter { display: grid; gap: 6px; }
.app-shell .dashboard-finance-filter select { padding-left: 38px !important; }
.app-shell .dashboard-finance-filter::before { background: var(--b-slate); bottom: 13px; left: 12px; opacity: 1; top: auto; }

/* ---------- Calmer action buttons ---------- */
.button.gold, .adventure-open-workspace-button { background: var(--b-deep) !important; border-color: var(--b-deep) !important; color: #fff !important; }
.button.gold:hover, .adventure-open-workspace-button:hover { background: var(--b-forest) !important; border-color: var(--b-forest) !important; }
.button.gold:active, .adventure-open-workspace-button:active { background: var(--b-black) !important; border-color: var(--b-black) !important; }
.adventure-open-workspace-button::after { background: var(--b-lime) !important; content: "" !important; display: block !important; height: 14px; margin-left: auto; position: static !important; transform: none !important; width: 14px;
  -webkit-mask: url("icons/arrow-right.svg") center / contain no-repeat; mask: url("icons/arrow-right.svg") center / contain no-repeat; }
.adventure-card-actions .button { background: #fff; border: 1px solid var(--b-line-strong); color: var(--b-black); }
.adventure-card-actions .button:hover { background: var(--b-cream); border-color: var(--b-black); color: var(--b-black); }
.button.danger { background: #fff; border-color: #e7b3c1; color: var(--b-red); }
.button.danger:hover { background: var(--b-red); border-color: var(--b-red); color: #fff; }
.adventure-card-actions .button.danger { border-color: #e7b3c1; color: var(--b-red); }
.adventure-card-actions .button.danger:hover { background: var(--b-red); border-color: var(--b-red); color: #fff; }
.app-shell .adventure-card:hover, .app-shell .adventure-card.is-active { background: #fff !important; box-shadow: inset 0 2px 0 var(--b-deep) !important; }
.adventure-card-flags .flag-chip, .flag-chip { background: var(--b-paper-warm); border-color: transparent; }
.adventure-card-pill { border-color: var(--b-line); color: var(--b-ink-3); }
.adventure-status-badge.status-sold-out { background: #fbeef1; border-color: #f0c4cf; color: #9a1b3c; }
.adventure-status-badge.status-open-for-booking { background: #eef8f0; border-color: #c4e3cb; color: #1d6b33; }
.adventure-status-badge { background: var(--b-paper-warm); border-color: var(--b-line); color: var(--b-ink-2); }

/* ==========================================================================
   MOBILE LAYER (≤ 860px tablet / phone, ≤ 560px phone)
   ========================================================================== */
@media (max-width: 860px) {
  html, body { overflow-x: hidden; }
  body { font-size: 15px; }
  .app-shell { display: block; min-height: 100vh; }

  /* Top bar: logo · title · user + icon logout */
  .app-header { height: 56px; padding: 0 14px; position: sticky; top: 0; z-index: 40; border-bottom-width: 2px; }
  .app-hero { gap: 12px; }
  .app-hero-main { gap: 12px; }
  .app-hero img { height: 26px; }
  .app-divider, .app-hero-main p { display: none !important; }
  .app-hero h1 { font-size: 15px !important; white-space: nowrap; }
  .user-chip { gap: 0 10px; grid-template-areas: "name btn" "role btn"; }
  .user-chip span { display: none; }
  .user-chip strong { font-size: 13px; }
  .user-chip em { font-size: 9px; }
  .user-chip .button.light { font-size: 0; gap: 0; height: 40px; justify-content: center; min-height: 40px; padding: 0; width: 40px; }
  .user-chip .button.light::before { height: 18px; margin: 0; width: 18px; }

  /* Menu becomes a fixed bottom tab bar */
  .nav-bar {
    background: var(--b-deep) !important; border-top: 1px solid rgba(255,255,255,.12);
    bottom: 0; display: flex; flex-direction: row; gap: 0; height: auto; left: 0; overflow-x: auto; overflow-y: hidden;
    padding: 0 4px env(safe-area-inset-bottom); position: fixed; right: 0; scrollbar-width: none; top: auto; z-index: 50;
  }
  .nav-bar::-webkit-scrollbar { display: none; }
  .nav-bar::before { display: none; }
  .nav-button {
    align-items: center; flex: 1 0 74px; flex-direction: column; font-family: var(--f-body); font-size: 10px; font-weight: 600;
    gap: 5px; justify-content: center; letter-spacing: .02em; line-height: 1.1; min-height: 62px; padding: 9px 4px 8px; text-align: center; text-transform: none; white-space: nowrap; width: auto;
  }
  .nav-button::before { height: 20px !important; width: 20px !important; }
  .nav-button.is-active { background: transparent; color: var(--b-lime); }
  .nav-button.is-active::after { height: 2px !important; inset: 0 12px auto 12px !important; width: auto !important; }

  .main { padding: 16px 12px calc(96px + env(safe-area-inset-bottom)); }

  /* Panels */
  .panel { margin-bottom: 16px; padding: 16px; }
  .panel-header { align-items: stretch; flex-direction: column; gap: 12px; margin: -16px -16px 16px; padding: 16px; }
  .panel-header h2, .panel-header h3 { font-size: 20px; }
  .panel-actions, .record-actions, .auth-actions { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
  .panel-actions > .button, .record-actions > .button { flex: 1 1 auto; justify-content: center; }
  .button, .button.small { min-height: 44px; }
  .field input, .field select, .field textarea, .table-input, .table-select, .table-textarea { font-size: 16px; min-height: 46px; }
  .grid, .form-grid, .planner-selector, .calendar-form-grid, .auth-grid, .import-options-grid,
  .traveler-record-detail-grid, .traveler-record-edit-grid, .team-leader-cost-grid, .flight-details-grid, .iphone-access-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .team-leader-cost-table-wrap, .pending-registration-table-wrap { max-width: 100%; overflow-x: auto; }

  /* Dashboard */
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin-bottom: 16px; }
  .metric { padding: 14px; }
  .metric::before { height: 18px; margin-bottom: 6px; width: 18px; }
  .metric span { font-size: 10px; }
  .metric strong { font-size: 28px; }
  .dashboard-spotlight { margin-bottom: 16px; }
  .dashboard-hero-card { display: block !important; padding: 22px 18px 18px; }
  .dashboard-hero-content { min-width: 0; width: 100%; }
  .dashboard-hero-map { display: none !important; }
  .dashboard-hero-card strong { font-size: 30px !important; margin: 14px 0 10px; }
  .dashboard-hero-card p { font-size: 14px; max-width: none; }
  .dashboard-hero-features { grid-template-columns: minmax(0, 1fr) !important; margin-top: 18px; }
  .dashboard-hero-feature { padding: 12px 14px; }
  .dashboard-task-filters { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; padding: 12px; }
  .dashboard-task-filters > .button { grid-column: 1 / -1; }
  .dashboard-task-card { padding: 12px 14px 12px 18px; }
  .dashboard-finance-filter { flex: 1 1 auto; width: 100%; }
  .dashboard-finance-currency-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .dashboard-breakdown-grid { grid-template-columns: minmax(0, 1fr) !important; }

  /* Trip workspace: section tabs become a horizontal scroller under the top bar */
  .workspace-content { display: block; }
  .workspace-content > .workspace-menu-toggle { margin-bottom: 8px; width: 100%; }
  .tabs.workspace-horizontal-menu {
    border-top-width: 2px; flex-direction: row; flex-wrap: nowrap; margin: 0 0 16px; overflow-x: auto !important; position: static; scrollbar-width: none;
  }
  .tabs.workspace-horizontal-menu::-webkit-scrollbar { display: none; }
  .workspace-horizontal-menu .tab { border-bottom: 0; border-right: 1px solid var(--b-line); flex: 0 0 auto; min-height: 46px; padding: 10px 14px; white-space: nowrap; width: auto; }
  .trip-ops-header { margin: -16px -16px 16px; padding: 20px 16px; }
  .trip-ops-header h2 { font-size: 26px !important; }
  .trip-ops-header-meta, .trip-ops-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .trip-ops-overview-grid, .trip-ops-finance-grid, .table-summary-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .trip-ops-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .table-tools { flex-wrap: wrap; gap: 8px; padding: 10px; }
  .table-tools .button { flex: 1 1 auto; justify-content: center; }

  /* Cards */
  .traveler-card-grid, .adventure-card-grid, .adventure-card-grid.is-compact,
  .flight-cards-section .traveler-card-grid, .provider-cards-section .traveler-card-grid, .activity-cards-section .traveler-card-grid,
  .guide-cards-section .traveler-card-grid, .transfer-cards-section .traveler-card-grid, .accommodation-cards-section .traveler-card-grid,
  .cost-cards-section .traveler-card-grid, .travelers-finance-cards-section .traveler-card-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .adventure-card { padding: 16px; }
  .adventure-card-actions { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .adventure-card-actions .button { justify-content: center; padding: 8px 6px; }
  .traveler-card { padding: 16px; }

  /* Calendar: compact month grid */
  .calendar-shell { display: block !important; }
  .calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; overflow: hidden; }
  .calendar-weekday { font-size: 10px; padding: 8px 2px; }
  .calendar-day { min-height: 64px !important; padding: 4px !important; }
  .calendar-day-number { font-size: 12px; }
  .calendar-item { font-size: 0; min-height: 0; overflow: hidden; padding: 0 !important; height: 5px; margin-top: 3px; border-left: 0 !important; background: var(--b-cyan) !important; }
  .calendar-item-adventure { background: var(--b-lime) !important; }
  .calendar-item-itinerary { background: var(--b-orange) !important; }
  .calendar-item > *, .calendar-adventure-strip strong, .calendar-strip-icon { display: none !important; }
  .calendar-adventure-strip { height: 5px; min-height: 0; padding: 0 !important; }
  .calendar-more { font-size: 9px; }
  .calendar-side { margin-top: 16px; }
  .calendar-month-title strong { font-size: 24px; }

  /* Destinations map */
  .app-shell .dashboard-passport-grid .dashboard-passport-stamp::after { height: 8px; width: 8px; bottom: -5px; box-shadow: 0 0 0 3px rgba(237,100,30,.22); }
  .app-shell .dashboard-passport-grid .dashboard-passport-stamp { padding-bottom: 12px; }

  /* Auth */
  .auth-page { padding: 24px 16px !important; }
  .auth-card { max-width: 100% !important; padding: 24px 18px !important; width: 100% !important; }
  .auth-brand h1 { font-size: 32px !important; }
  .auth-choice-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 560px) {
  .app-hero h1 { display: none; }
  .user-chip em { display: none; }
  .user-chip { grid-template-areas: "name btn"; }
  .dashboard-task-filters { grid-template-columns: minmax(0, 1fr) !important; }
  .trip-ops-quick-actions { grid-template-columns: minmax(0, 1fr) !important; }
  .dashboard-hero-card strong { font-size: 26px !important; }
  .metric strong { font-size: 24px; }
}

@media (max-width: 860px) {
  .adventure-form, .company-cost-card-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .adventure-form > *, .adventure-description-field { grid-column: 1 / -1 !important; }
  .main form .field { max-width: 100%; min-width: 0; }
  .main form .field input:not([type="checkbox"]):not([type="radio"]), .main form .field select, .main form .field textarea { max-width: 100%; width: 100%; }
  .adventure-form-actions { flex-wrap: wrap; }
  .adventure-form-actions .button { flex: 1 1 auto; justify-content: center; }
  .nav-button { flex: 0 0 auto; min-width: 76px; padding: 9px 10px 8px; }
  .metric { align-items: center; column-gap: 8px; grid-template-columns: auto minmax(0, 1fr); padding: 12px; }
  .metric::before { grid-column: 1; grid-row: 1; height: 16px; margin: 0; width: 16px; }
  .metric span { grid-column: 2; grid-row: 1; line-height: 1.2; }
  .metric strong { grid-column: 1 / -1; grid-row: 2; margin-top: 6px; }
}

@media (max-width: 860px) {
  .app-hero img { height: 30px; }
  .panel-header > :not(:first-child) { display: flex; flex-wrap: wrap; gap: 8px; justify-content: stretch; width: 100%; }
  .panel-header > :not(:first-child) .button { flex: 1 1 auto; justify-content: center; }
}

.auth-page .button:not(.light) { background: var(--b-lime) !important; border-color: var(--b-lime) !important; color: var(--b-deep) !important; }
.auth-page .button:not(.light):hover { background: #a8e600 !important; border-color: #a8e600 !important; }
.auth-page .button.light { background: transparent; border-color: rgba(255,255,255,.35); color: #fff; }
.auth-page .button.light:hover { background: rgba(255,255,255,.08); color: #fff; }
@media (max-width: 860px) {
  .auth-actions .button { flex: 1 1 0; justify-content: center; }
}

/* Destinations map: pin positions (equirectangular, lat 84..-56) */
.dashboard-passport-stamp[data-country="AD"]{left:50.43%;top:29.64%}
.dashboard-passport-stamp[data-country="AE"]{left:65.06%;top:42.95%}
.dashboard-passport-stamp[data-country="AF"]{left:68.33%;top:35.83%}
.dashboard-passport-stamp[data-country="AG"]{left:32.83%;top:47.79%}
.dashboard-passport-stamp[data-country="AL"]{left:55.56%;top:30.62%}
.dashboard-passport-stamp[data-country="AM"]{left:62.50%;top:31.28%}
.dashboard-passport-stamp[data-country="AO"]{left:54.86%;top:68.77%}
.dashboard-passport-stamp[data-country="AR"]{left:32.02%;top:84.69%}
.dashboard-passport-stamp[data-country="AT"]{left:53.91%;top:25.99%}
.dashboard-passport-stamp[data-country="AU"]{left:87.28%;top:78.30%}
.dashboard-passport-stamp[data-country="AW"]{left:30.56%;top:51.07%}
.dashboard-passport-stamp[data-country="AZ"]{left:63.25%;top:31.23%}
.dashboard-passport-stamp[data-country="BA"]{left:54.95%;top:28.44%}
.dashboard-passport-stamp[data-country="BB"]{left:33.46%;top:50.61%}
.dashboard-passport-stamp[data-country="BD"]{left:75.08%;top:42.98%}
.dashboard-passport-stamp[data-country="BE"]{left:51.27%;top:23.82%}
.dashboard-passport-stamp[data-country="BG"]{left:57.00%;top:29.46%}
.dashboard-passport-stamp[data-country="BH"]{left:64.04%;top:41.43%}
.dashboard-passport-stamp[data-country="BI"]{left:58.31%;top:62.41%}
.dashboard-passport-stamp[data-country="BM"]{left:32.01%;top:36.93%}
.dashboard-passport-stamp[data-country="BN"]{left:81.92%;top:56.65%}
.dashboard-passport-stamp[data-country="BO"]{left:32.04%;top:71.93%}
.dashboard-passport-stamp[data-country="BR"]{left:35.23%;top:67.61%}
.dashboard-passport-stamp[data-country="BS"]{left:28.36%;top:42.50%}
.dashboard-passport-stamp[data-country="BT"]{left:75.13%;top:40.41%}
.dashboard-passport-stamp[data-country="BW"]{left:56.61%;top:75.77%}
.dashboard-passport-stamp[data-country="BY"]{left:57.77%;top:21.79%}
.dashboard-passport-stamp[data-country="BZ"]{left:25.36%;top:47.72%}
.dashboard-passport-stamp[data-country="CA"]{left:22.82%;top:18.25%}
.dashboard-passport-stamp[data-country="CD"]{left:56.55%;top:62.03%}
.dashboard-passport-stamp[data-country="CF"]{left:55.66%;top:55.32%}
.dashboard-passport-stamp[data-country="CG"]{left:54.20%;top:60.60%}
.dashboard-passport-stamp[data-country="CH"]{left:52.25%;top:26.58%}
.dashboard-passport-stamp[data-country="CI"]{left:48.44%;top:54.61%}
.dashboard-passport-stamp[data-country="CL"]{left:30.21%;top:85.63%}
.dashboard-passport-stamp[data-country="CM"]{left:53.50%;top:55.96%}
.dashboard-passport-stamp[data-country="CN"]{left:78.73%;top:33.75%}
.dashboard-passport-stamp[data-country="CO"]{left:29.70%;top:57.20%}
.dashboard-passport-stamp[data-country="CR"]{left:26.62%;top:52.88%}
.dashboard-passport-stamp[data-country="CU"]{left:28.07%;top:44.54%}
.dashboard-passport-stamp[data-country="CV"]{left:43.44%;top:49.21%}
.dashboard-passport-stamp[data-country="CW"]{left:30.83%;top:51.29%}
.dashboard-passport-stamp[data-country="CY"]{left:59.18%;top:35.07%}
.dashboard-passport-stamp[data-country="CZ"]{left:54.26%;top:24.44%}
.dashboard-passport-stamp[data-country="DE"]{left:52.85%;top:23.52%}
.dashboard-passport-stamp[data-country="DJ"]{left:61.80%;top:51.59%}
.dashboard-passport-stamp[data-country="DK"]{left:52.58%;top:19.85%}
.dashboard-passport-stamp[data-country="DM"]{left:32.96%;top:49.00%}
.dashboard-passport-stamp[data-country="DO"]{left:30.43%;top:46.51%}
.dashboard-passport-stamp[data-country="DY"]{left:50.65%;top:53.11%}
.dashboard-passport-stamp[data-country="DZ"]{left:50.73%;top:39.94%}
.dashboard-passport-stamp[data-country="EC"]{left:28.23%;top:61.04%}
.dashboard-passport-stamp[data-country="EE"]{left:57.18%;top:18.11%}
.dashboard-passport-stamp[data-country="EG"]{left:58.29%;top:41.09%}
.dashboard-passport-stamp[data-country="EH"]{left:46.61%;top:42.66%}
.dashboard-passport-stamp[data-country="ER"]{left:60.75%;top:48.98%}
.dashboard-passport-stamp[data-country="ES"]{left:48.99%;top:31.20%}
.dashboard-passport-stamp[data-country="ET"]{left:60.99%;top:53.82%}
.dashboard-passport-stamp[data-country="FI"]{left:57.26%;top:14.10%}
.dashboard-passport-stamp[data-country="FJ"]{left:99.44%;top:72.74%}
.dashboard-passport-stamp[data-country="FK"]{left:33.50%;top:96.94%}
.dashboard-passport-stamp[data-country="FM"]{left:93.94%;top:55.07%}
.dashboard-passport-stamp[data-country="FR"]{left:50.65%;top:26.74%}
.dashboard-passport-stamp[data-country="GA"]{left:53.25%;top:60.46%}
.dashboard-passport-stamp[data-country="GD"]{left:32.86%;top:51.36%}
.dashboard-passport-stamp[data-country="GE"]{left:62.08%;top:29.88%}
.dashboard-passport-stamp[data-country="GH"]{left:49.66%;top:54.34%}
.dashboard-passport-stamp[data-country="GL"]{left:38.34%;top:7.75%}
.dashboard-passport-stamp[data-country="GM"]{left:45.71%;top:50.37%}
.dashboard-passport-stamp[data-country="GN"]{left:46.93%;top:52.54%}
.dashboard-passport-stamp[data-country="GP"]{left:32.90%;top:48.39%}
.dashboard-passport-stamp[data-country="GQ"]{left:52.88%;top:58.82%}
.dashboard-passport-stamp[data-country="GR"]{left:56.26%;top:31.91%}
.dashboard-passport-stamp[data-country="GT"]{left:24.90%;top:48.79%}
.dashboard-passport-stamp[data-country="GW"]{left:45.80%;top:51.41%}
.dashboard-passport-stamp[data-country="GY"]{left:33.62%;top:56.58%}
.dashboard-passport-stamp[data-country="HK"]{left:81.72%;top:44.07%}
.dashboard-passport-stamp[data-country="HN"]{left:25.95%;top:49.41%}
.dashboard-passport-stamp[data-country="HR"]{left:54.60%;top:27.85%}
.dashboard-passport-stamp[data-country="HT"]{left:29.82%;top:46.50%}
.dashboard-passport-stamp[data-country="HU"]{left:55.37%;top:26.28%}
.dashboard-passport-stamp[data-country="HV"]{left:49.50%;top:51.21%}
.dashboard-passport-stamp[data-country="ID"]{left:81.67%;top:60.18%}
.dashboard-passport-stamp[data-country="IE"]{left:47.77%;top:22.02%}
.dashboard-passport-stamp[data-country="IL"]{left:59.72%;top:37.51%}
.dashboard-passport-stamp[data-country="IN"]{left:72.09%;top:43.70%}
.dashboard-passport-stamp[data-country="IQ"]{left:62.16%;top:36.42%}
.dashboard-passport-stamp[data-country="IR"]{left:65.13%;top:36.80%}
.dashboard-passport-stamp[data-country="IS"]{left:44.79%;top:13.51%}
.dashboard-passport-stamp[data-country="IT"]{left:53.44%;top:28.98%}
.dashboard-passport-stamp[data-country="JM"]{left:28.52%;top:47.04%}
.dashboard-passport-stamp[data-country="JO"]{left:60.21%;top:37.69%}
.dashboard-passport-stamp[data-country="JP"]{left:87.98%;top:34.28%}
.dashboard-passport-stamp[data-country="KE"]{left:60.50%;top:59.57%}
.dashboard-passport-stamp[data-country="KG"]{left:70.72%;top:30.34%}
.dashboard-passport-stamp[data-country="KH"]{left:79.13%;top:50.94%}
.dashboard-passport-stamp[data-country="KI"]{left:98.06%;top:59.00%}
.dashboard-passport-stamp[data-country="KM"]{left:62.03%;top:68.36%}
.dashboard-passport-stamp[data-country="KN"]{left:32.57%;top:47.64%}
.dashboard-passport-stamp[data-country="KP"]{left:85.31%;top:31.34%}
.dashboard-passport-stamp[data-country="KR"]{left:85.51%;top:33.99%}
.dashboard-passport-stamp[data-country="KW"]{left:63.22%;top:39.07%}
.dashboard-passport-stamp[data-country="KZ"]{left:68.68%;top:25.42%}
.dashboard-passport-stamp[data-country="LA"]{left:78.83%;top:46.84%}
.dashboard-passport-stamp[data-country="LB"]{left:59.96%;top:35.78%}
.dashboard-passport-stamp[data-country="LC"]{left:33.06%;top:50.07%}
.dashboard-passport-stamp[data-country="LI"]{left:52.65%;top:26.32%}
.dashboard-passport-stamp[data-country="LK"]{left:72.41%;top:54.50%}
.dashboard-passport-stamp[data-country="LR"]{left:47.39%;top:55.41%}
.dashboard-passport-stamp[data-country="LS"]{left:57.83%;top:81.16%}
.dashboard-passport-stamp[data-country="LT"]{left:56.64%;top:20.51%}
.dashboard-passport-stamp[data-country="LU"]{left:51.66%;top:24.45%}
.dashboard-passport-stamp[data-country="LV"]{left:56.90%;top:19.42%}
.dashboard-passport-stamp[data-country="LY"]{left:55.01%;top:40.72%}
.dashboard-passport-stamp[data-country="MA"]{left:47.59%;top:38.70%}
.dashboard-passport-stamp[data-country="MC"]{left:52.06%;top:28.76%}
.dashboard-passport-stamp[data-country="MD"]{left:57.89%;top:26.29%}
.dashboard-passport-stamp[data-country="ME"]{left:55.36%;top:29.44%}
.dashboard-passport-stamp[data-country="MG"]{left:62.98%;top:73.79%}
.dashboard-passport-stamp[data-country="MH"]{left:97.56%;top:54.93%}
.dashboard-passport-stamp[data-country="MK"]{left:56.03%;top:30.28%}
.dashboard-passport-stamp[data-country="ML"]{left:49.00%;top:47.69%}
.dashboard-passport-stamp[data-country="MM"]{left:76.81%;top:45.04%}
.dashboard-passport-stamp[data-country="MN"]{left:78.62%;top:26.46%}
.dashboard-passport-stamp[data-country="MO"]{left:81.54%;top:44.14%}
.dashboard-passport-stamp[data-country="MQ"]{left:33.06%;top:49.54%}
.dashboard-passport-stamp[data-country="MR"]{left:47.13%;top:45.59%}
.dashboard-passport-stamp[data-country="MT"]{left:54.00%;top:34.36%}
.dashboard-passport-stamp[data-country="MU"]{left:65.97%;top:74.50%}
.dashboard-passport-stamp[data-country="MV"]{left:70.42%;top:57.71%}
.dashboard-passport-stamp[data-country="MW"]{left:59.50%;top:69.40%}
.dashboard-passport-stamp[data-country="MX"]{left:21.60%;top:42.92%}
.dashboard-passport-stamp[data-country="MY"]{left:81.85%;top:57.47%}
.dashboard-passport-stamp[data-country="MZ"]{left:59.87%;top:72.25%}
.dashboard-passport-stamp[data-country="NA"]{left:54.76%;top:75.74%}
.dashboard-passport-stamp[data-country="NC"]{left:95.98%;top:75.19%}
.dashboard-passport-stamp[data-country="NE"]{left:52.58%;top:47.61%}
.dashboard-passport-stamp[data-country="NG"]{left:52.22%;top:53.18%}
.dashboard-passport-stamp[data-country="NI"]{left:26.38%;top:50.82%}
.dashboard-passport-stamp[data-country="NL"]{left:51.53%;top:22.65%}
.dashboard-passport-stamp[data-country="NO"]{left:53.44%;top:14.22%}
.dashboard-passport-stamp[data-country="NP"]{left:73.35%;top:39.82%}
.dashboard-passport-stamp[data-country="NZ"]{left:97.39%;top:91.40%}
.dashboard-passport-stamp[data-country="OM"]{left:65.57%;top:45.31%}
.dashboard-passport-stamp[data-country="PA"]{left:27.75%;top:53.91%}
.dashboard-passport-stamp[data-country="PE"]{left:29.32%;top:66.53%}
.dashboard-passport-stamp[data-country="PF"]{left:8.47%;top:72.57%}
.dashboard-passport-stamp[data-country="PG"]{left:90.09%;top:64.75%}
.dashboard-passport-stamp[data-country="PH"]{left:83.76%;top:48.76%}
.dashboard-passport-stamp[data-country="PK"]{left:69.23%;top:38.64%}
.dashboard-passport-stamp[data-country="PL"]{left:55.37%;top:22.76%}
.dashboard-passport-stamp[data-country="PR"]{left:31.53%;top:46.97%}
.dashboard-passport-stamp[data-country="PS"]{left:59.80%;top:37.19%}
.dashboard-passport-stamp[data-country="PT"]{left:47.76%;top:31.71%}
.dashboard-passport-stamp[data-country="PW"]{left:87.36%;top:54.64%}
.dashboard-passport-stamp[data-country="PY"]{left:33.77%;top:76.59%}
.dashboard-passport-stamp[data-country="QA"]{left:64.22%;top:41.91%}
.dashboard-passport-stamp[data-country="RE"]{left:65.42%;top:75.07%}
.dashboard-passport-stamp[data-country="RO"]{left:56.93%;top:27.25%}
.dashboard-passport-stamp[data-country="RU"]{left:76.59%;top:12.90%}
.dashboard-passport-stamp[data-country="RW"]{left:58.31%;top:61.44%}
.dashboard-passport-stamp[data-country="SA"]{left:62.40%;top:42.79%}
.dashboard-passport-stamp[data-country="SB"]{left:94.20%;top:65.64%}
.dashboard-passport-stamp[data-country="SC"]{left:65.42%;top:63.29%}
.dashboard-passport-stamp[data-country="SD"]{left:58.29%;top:48.59%}
.dashboard-passport-stamp[data-country="SE"]{left:54.47%;top:15.42%}
.dashboard-passport-stamp[data-country="SG"]{left:78.83%;top:59.04%}
.dashboard-passport-stamp[data-country="SI"]{left:54.15%;top:27.05%}
.dashboard-passport-stamp[data-country="SK"]{left:55.42%;top:25.19%}
.dashboard-passport-stamp[data-country="SL"]{left:46.72%;top:53.91%}
.dashboard-passport-stamp[data-country="SM"]{left:53.46%;top:28.61%}
.dashboard-passport-stamp[data-country="SN"]{left:45.97%;top:49.75%}
.dashboard-passport-stamp[data-country="SO"]{left:62.69%;top:56.61%}
.dashboard-passport-stamp[data-country="SR"]{left:34.47%;top:57.06%}
.dashboard-passport-stamp[data-country="SS"]{left:58.39%;top:54.79%}
.dashboard-passport-stamp[data-country="ST"]{left:51.83%;top:59.82%}
.dashboard-passport-stamp[data-country="SV"]{left:25.31%;top:50.20%}
.dashboard-passport-stamp[data-country="SY"]{left:60.70%;top:34.99%}
.dashboard-passport-stamp[data-country="SZ"]{left:58.72%;top:78.92%}
.dashboard-passport-stamp[data-country="TD"]{left:55.16%;top:49.09%}
.dashboard-passport-stamp[data-country="TF"]{left:69.31%;top:95.22%}
.dashboard-passport-stamp[data-country="TG"]{left:50.28%;top:53.98%}
.dashboard-passport-stamp[data-country="TH"]{left:78.06%;top:49.30%}
.dashboard-passport-stamp[data-country="TJ"]{left:69.74%;top:32.44%}
.dashboard-passport-stamp[data-country="TL"]{left:84.99%;top:66.26%}
.dashboard-passport-stamp[data-country="TM"]{left:66.49%;top:32.07%}
.dashboard-passport-stamp[data-country="TN"]{left:52.65%;top:35.61%}
.dashboard-passport-stamp[data-country="TO"]{left:1.33%;top:75.14%}
.dashboard-passport-stamp[data-country="TR"]{left:59.83%;top:32.10%}
.dashboard-passport-stamp[data-country="TW"]{left:83.60%;top:43.04%}
.dashboard-passport-stamp[data-country="TZ"]{left:59.65%;top:64.46%}
.dashboard-passport-stamp[data-country="UA"]{left:58.69%;top:24.87%}
.dashboard-passport-stamp[data-country="UG"]{left:58.99%;top:59.07%}
.dashboard-passport-stamp[data-country="GB"]{left:49.29%;top:21.59%}
.dashboard-passport-stamp[data-country="US"]{left:22.57%;top:31.52%}
.dashboard-passport-stamp[data-country="UY"]{left:34.44%;top:83.41%}
.dashboard-passport-stamp[data-country="UZ"]{left:67.60%;top:30.16%}
.dashboard-passport-stamp[data-country="VA"]{left:53.46%;top:30.07%}
.dashboard-passport-stamp[data-country="VC"]{left:33.00%;top:50.54%}
.dashboard-passport-stamp[data-country="VE"]{left:31.62%;top:54.89%}
.dashboard-passport-stamp[data-country="VN"]{left:79.54%;top:48.17%}
.dashboard-passport-stamp[data-country="VU"]{left:96.36%;top:70.87%}
.dashboard-passport-stamp[data-country="WS"]{left:2.19%;top:69.82%}
.dashboard-passport-stamp[data-country="XK"]{left:55.80%;top:29.59%}
.dashboard-passport-stamp[data-country="YE"]{left:63.20%;top:48.63%}
.dashboard-passport-stamp[data-country="YU"]{left:55.79%;top:28.41%}
.dashboard-passport-stamp[data-country="ZA"]{left:56.99%;top:80.66%}
.dashboard-passport-stamp[data-country="ZM"]{left:57.71%;top:69.57%}
.dashboard-passport-stamp[data-country="ZW"]{left:58.27%;top:73.50%}

.dashboard-passport-stamp[data-country="TT"]{left:33.67%;top:52.70%}

/* ---------- Lucide icon set (re-points the app's existing icon variables) ---------- */
:root {
  --texture-topo: none;
  --graphic-mountain: url("icons/mountain.svg");
  --dashboard-outline-mountain: url("icons/mountain.svg");
  --i-mountain: url("icons/mountain.svg");
  --graphic-compass: url("icons/compass.svg");
  --metric-outline-compass: url("icons/compass.svg");
  --graphic-dashboard: url("icons/layout-dashboard.svg");
  --dashboard-outline-dashboard: url("icons/layout-dashboard.svg");
  --i-layout-dashboard: url("icons/layout-dashboard.svg");
  --graphic-planner: url("icons/map.svg");
  --metric-outline-map: url("icons/map.svg");
  --i-map: url("icons/map.svg");
  --graphic-records: url("icons/archive.svg");
  --i-archive: url("icons/archive.svg");
  --graphic-users: url("icons/users.svg");
  --metric-outline-users: url("icons/users.svg");
  --i-users: url("icons/users.svg");
  --graphic-providers: url("icons/briefcase.svg");
  --dashboard-outline-provider: url("icons/briefcase.svg");
  --i-briefcase: url("icons/briefcase.svg");
  --graphic-activities: url("icons/activity.svg");
  --i-activity: url("icons/activity.svg");
  --graphic-transfers: url("icons/bus.svg");
  --dashboard-outline-van: url("icons/bus.svg");
  --i-bus: url("icons/bus.svg");
  --graphic-plane: url("icons/plane.svg");
  --dashboard-outline-plane: url("icons/plane.svg");
  --i-plane: url("icons/plane.svg");
  --graphic-accommodations: url("icons/bed.svg");
  --dashboard-outline-hotel: url("icons/bed.svg");
  --i-bed: url("icons/bed.svg");
  --graphic-itinerary: url("icons/itinerary.svg");
  --graphic-trail: url("icons/itinerary.svg");
  --dashboard-outline-route: url("icons/itinerary.svg");
  --graphic-costs: url("icons/banknote.svg");
  --i-banknote: url("icons/banknote.svg");
  --graphic-invoices: url("icons/file-text.svg");
  --metric-outline-invoice: url("icons/file-text.svg");
  --i-file-text: url("icons/file-text.svg");
  --graphic-receipts: url("icons/receipt.svg");
  --metric-outline-receipt: url("icons/receipt.svg");
  --i-receipt: url("icons/receipt.svg");
  --graphic-notes: url("icons/notes.svg");
  --graphic-tasks: url("icons/list-checks.svg");
  --metric-outline-tasks: url("icons/list-checks.svg");
  --i-list-checks: url("icons/list-checks.svg");
  --graphic-files: url("icons/folder.svg");
  --i-folder: url("icons/folder.svg");
  --graphic-medical-form: url("icons/heart-pulse.svg");
  --i-heart-pulse: url("icons/heart-pulse.svg");
  --graphic-checklist: url("icons/clipboard-list.svg");
  --i-clipboard-list: url("icons/clipboard-list.svg");
  --graphic-backpack: url("icons/backpack.svg");
  --metric-outline-travelers: url("icons/backpack.svg");
  --graphic-tent: url("icons/tent.svg");
  --dashboard-outline-tent: url("icons/tent.svg");
  --graphic-map-pin: url("icons/map-pin.svg");
  --dashboard-outline-map-pin: url("icons/map-pin.svg");
  --graphic-flag: url("icons/flag.svg");
  --dashboard-outline-flag: url("icons/flag.svg");
  --graphic-globe: url("icons/globe.svg");
  --dashboard-outline-globe: url("icons/globe.svg");
  --graphic-weather: url("icons/sun.svg");
  --metric-outline-calendar: url("icons/calendar.svg");
  --i-calendar: url("icons/calendar.svg");
  --dashboard-outline-weather: url("icons/cloud-sun.svg");
  --dashboard-outline-phone: url("icons/phone.svg");
  --dashboard-outline-check-circle: url("icons/check-circle.svg");
  --dashboard-outline-paperclip: url("icons/paperclip.svg");
  --dashboard-outline-guide: url("icons/signpost.svg");
  --i-signpost: url("icons/signpost.svg");
  --dashboard-outline-coins: url("icons/coins.svg");
  --i-coins: url("icons/coins.svg");
  --dashboard-outline-wallet: url("icons/wallet.svg");
  --i-wallet: url("icons/wallet.svg");
  --dashboard-outline-printer: url("icons/printer.svg");
  --dashboard-outline-clock: url("icons/clock.svg");
  --dashboard-outline-user: url("icons/user.svg");
  --dashboard-outline-x-circle: url("icons/x-circle.svg");
  --i-shield: url("icons/shield.svg");
  --i-ticket: url("icons/ticket.svg");
  --i-user-round: url("icons/user-round.svg");
  --i-layout-grid: url("icons/layout-grid.svg");
  --i-log-out: url("icons/log-out.svg");
  --i-info: url("icons/info.svg");
}
