@import url('tokens.css');

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  font: var(--text-base)/1.5 var(--font);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--navy-500); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { margin: 0; font-weight: 650; letter-spacing: -.01em; }
h1 { font-size: 1.05rem; }
h2 { font-size: .95rem; }
button, input, select, textarea { font: inherit; color: inherit; }
code { font-size: .92em; }

/* Auth */
.auth-body {
  min-height: 100vh;
  background: var(--background);
}
.auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
}
.auth-brand {
  color: #e6f4f2;
  padding: 3rem 3.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(145deg, var(--bs-navy-950) 0%, var(--bs-navy-800) 55%, var(--bs-navy-700) 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
}
.auth-brand h1 { font-size: 1.75rem; margin: .6rem 0 .35rem; color: #fff; letter-spacing: .04em; }
.auth-brand p { max-width: 28rem; color: #94a3b8; font-size: var(--text-md); line-height: 1.55; }
.auth-brand-mark {
  width: 44px; height: 44px; border-radius: var(--radius);
  background: linear-gradient(135deg, var(--gold) 0%, #e8c96a 100%);
  color: var(--bs-navy-950);
  display: grid; place-items: center; font-weight: 800; font-size: 13px;
  box-shadow: var(--shadow-sm);
}
.auth-card {
  background: var(--surface);
  margin: 1.25rem;
  border-radius: var(--radius-lg);
  padding: 1.75rem 1.6rem;
  align-self: center;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.auth-shell-wide { grid-template-columns: minmax(0, 1fr) minmax(420px, 620px); }
.auth-card.auth-wide { max-width: 620px; width: calc(100% - 2.5rem); }
.auth-card h2 { margin-bottom: .25rem; font-size: var(--text-xl); }
.auth-kicker {
  margin: 0 0 .35rem;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--accent);
  text-transform: uppercase;
}
.auth-switch { display: flex; gap: .9rem; margin-top: 1rem; font-size: 12px; }
.hint { margin-top: 1rem; font-size: 11px; color: var(--muted); }

.reg-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem 1.2rem;
}
.reg-form .field span { color: #334155; }
.req { color: #e31c23; margin-left: .12rem; }
.reg-upload {
  display: grid;
  grid-template-columns: 1fr minmax(140px, 180px);
  align-items: center;
  gap: .5rem .75rem;
}
.reg-upload > span { font-size: 12px; color: #334155; font-weight: 500; }
.reg-browse {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 .9rem;
  border-radius: 2px;
  background: #0a5c54;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
  cursor: pointer;
  overflow: hidden;
}
.reg-browse input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.reg-submit {
  margin-top: .55rem;
  background: #0a5c54;
  border: 0;
  border-radius: 2px;
  min-height: 42px;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 700;
}
.reg-submit:hover { filter: brightness(.95); }
.reg-login { justify-content: center; font-size: 13px; }
.reg-login a { color: #e31c23; font-weight: 600; }

/* App chrome */
.app-shell { display: flex; min-height: 100vh; }
.sidebar {
  width: var(--sidebar);
  background: linear-gradient(180deg, var(--bs-navy-950) 0%, var(--bs-navy-900) 100%);
  color: #cbd5e1;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: var(--z-sidebar);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  transition: width .18s ease;
}
.sidebar-top {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .65rem .55rem .65rem .75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sidebar-brand {
  display: flex;
  gap: .6rem;
  align-items: center;
  flex: 1;
  min-width: 0;
  color: #fff;
  text-decoration: none;
}
.sidebar-brand:hover { text-decoration: none; color: #fff; }
.sidebar-mark {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--gold) 0%, #e8c96a 100%);
  color: var(--bs-navy-950);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 11px;
  flex-shrink: 0;
  box-shadow: var(--shadow-xs);
}
.sidebar-mark--logo {
  overflow: hidden;
  background: #fff;
}
.sidebar-mark--logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.sidebar-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
  overflow: hidden;
}
.sidebar-brand-text strong {
  font-size: var(--text-sm);
  letter-spacing: .06em;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.sidebar-brand-text small { color: #94a3b8; font-size: var(--text-xs); }
.sidebar-collapse {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.sidebar-collapse:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
.sidebar-collapse-ico {
  width: 14px;
  height: 14px;
  border-left: 2px solid currentColor;
  border-right: 2px solid currentColor;
  opacity: .85;
}
.sidebar-nav {
  flex: 1;
  overflow: auto;
  padding: .45rem 0 .75rem;
  scrollbar-width: thin;
}
.sidebar-label {
  margin: .65rem .85rem .15rem;
  font-size: var(--text-xs);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 600;
}
.sidebar-link {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .42rem .75rem;
  margin: 0 .4rem;
  border-radius: var(--radius-sm);
  color: #cbd5e1;
  text-decoration: none;
  font-size: var(--text-sm);
  font-weight: 500;
  border: 1px solid transparent;
}
.sidebar-link:hover {
  background: rgba(255, 255, 255, 0.06);
  text-decoration: none;
  color: #fff;
}
.sidebar-link.is-active {
  background: rgba(10, 92, 84, 0.18);
  color: #fff;
  border-color: rgba(10, 92, 84, 0.4);
  box-shadow: inset 3px 0 0 var(--accent);
}
.sidebar-link.is-active .sidebar-ico { opacity: 1; }
.sidebar-link-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-ico {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  opacity: .88;
  background: currentColor;
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
  -webkit-mask-image: var(--ico);
  mask-image: var(--ico);
}
.sidebar-foot {
  padding: .65rem .65rem .85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.sidebar-logout {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #cbd5e1;
  border-radius: var(--radius-sm);
  padding: .42rem .6rem;
  cursor: pointer;
  font-size: var(--text-sm);
  font-weight: 500;
}
.sidebar-logout:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
.sidebar-logout .sidebar-ico { width: 14px; height: 14px; }

body.sidebar-collapsed .sidebar { width: var(--sidebar-collapsed); }
body.sidebar-collapsed .sidebar-brand-text,
body.sidebar-collapsed .sidebar-label,
body.sidebar-collapsed .sidebar-link-text { display: none; }
body.sidebar-collapsed .sidebar-top { justify-content: center; padding-inline: .45rem; }
body.sidebar-collapsed .sidebar-brand { justify-content: center; }
body.sidebar-collapsed .sidebar-collapse { display: none; }
body.sidebar-collapsed .sidebar-link,
body.sidebar-collapsed .sidebar-logout { justify-content: center; padding-inline: .5rem; }
body.sidebar-collapsed .sidebar-link { margin-inline: .35rem; }

.app-main { flex: 1; min-width: 0; display: flex; flex-direction: column; background: var(--bg); }
.topbar {
  min-height: var(--topbar);
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border-bottom: 1px solid rgba(15, 39, 68, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: 0.5rem 1.15rem;
  position: sticky;
  top: 0;
  z-index: var(--z-topbar);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, 0 2px 10px rgba(15, 23, 42, 0.05);
}
.topbar-start {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  flex: 1;
}
.topbar-titles { min-width: 0; }
.topbar-eyebrow { margin: 0 0 .1rem; line-height: 1; }
.topbar-title {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: 650;
  letter-spacing: -.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-primary);
}
.portal-pill {
  display: inline-flex;
  align-items: center;
  padding: .12rem .45rem;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid var(--line);
  background: var(--background);
  color: var(--text-secondary);
}
.portal-pill-agent { border-color: #9fd0ca; background: var(--bs-brand-50); color: var(--bs-brand-600); }
.portal-pill-admin { border-color: #9fd0ca; background: #e6f4f2; color: #0a5c54; }
.portal-pill-supplier { border-color: #9fd0ca; background: var(--bs-brand-50); color: var(--bs-brand-700); }
.topbar-end {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
  min-width: 0;
}
.topbar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.topbar-user-chip {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.3rem 0.7rem 0.3rem 0.35rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  max-width: min(300px, 42vw);
  min-width: 0;
}
.topbar-user-chip-avatar {
  width: 34px;
  height: 34px;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}
.topbar-action-group {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding-left: 0.75rem;
  border-left: 1px solid #e2e8f0;
}
.topbar-action-group--account {
  padding-left: 0.85rem;
  margin-left: 0.15rem;
  border-left-color: #cce9e5;
}
.topbar-logout-form {
  display: inline-flex;
  margin: 0;
}
.topbar-ghost-btn,
.topbar-signout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.42rem 0.9rem;
  border-radius: 8px;
  border: 1px solid #d7e0ea;
  background: #fff;
  color: #334155;
  font-size: 0.8125rem;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.topbar-ghost-btn:hover {
  background: #f8fafc;
  border-color: #c5d0de;
  color: var(--primary);
  text-decoration: none;
}
.topbar-signout:hover {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}
.topbar-user { display: flex; align-items: center; gap: .45rem; }
.topbar-user-text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.topbar-user-text strong {
  font-size: var(--text-sm);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.topbar-user-text small {
  color: var(--muted);
  font-size: var(--text-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.topbar-user-chip .topbar-user-text strong { color: var(--primary); }
.avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
}
.app-content { padding: var(--space-4) var(--space-5) var(--space-6); max-width: 1600px; }
.icon-btn {
  border: 0; background: transparent; cursor: pointer; padding: .35rem; border-radius: 6px;
}
.icon-btn:hover { background: #eef2f6; }
.icon-bars {
  display: block; width: 16px; height: 2px; background: var(--text); position: relative;
}
.icon-bars::before, .icon-bars::after {
  content: ""; position: absolute; left: 0; width: 16px; height: 2px; background: var(--text);
}
.icon-bars::before { top: -5px; }
.icon-bars::after { top: 5px; }

/* Surfaces */
.kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.kpi {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-3) var(--space-4);
  box-shadow: var(--shadow-xs);
}
.kpi-label {
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
}
.kpi-value {
  margin: .2rem 0 0;
  font-size: var(--text-xl);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.kpi-hint { margin: .15rem 0 0; color: var(--muted); font-size: var(--text-xs); }
.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--space-4);
  box-shadow: var(--shadow-xs);
}
.panel-narrow { max-width: 420px; }
.panel-head { margin-bottom: .55rem; }
.muted { color: var(--muted); margin: 0 0 .6rem; }
.meta-list { list-style: none; margin: 0; padding: 0; }
.meta-list li { display: flex; justify-content: space-between; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.meta-list li:last-child { border-bottom: 0; }

.empty-state {
  text-align: left; padding: .4rem 0 .2rem; color: var(--muted);
}
.empty-state strong { display: block; color: var(--text); margin-bottom: .2rem; }

.alert-stack { display: grid; gap: .45rem; margin-bottom: .75rem; }
.alert { padding: .5rem .7rem; border-radius: 6px; border: 1px solid transparent; }
.alert-success { background: #ecfdf3; color: var(--ok); border-color: #abefc6; }
.alert-danger, .alert-error { background: #fef3f2; color: var(--danger); border-color: #fecdca; }
.alert-warning { background: #fffaeb; color: var(--warn); border-color: #fedf89; }
.alert-info { background: #e6f4f2; color: var(--info); border-color: #9fd0ca; }

.form { display: grid; gap: .65rem; }
.field { display: grid; gap: .22rem; }
.field span { font-size: 12px; color: var(--muted); font-weight: 500; }
.field input, .field select, .field textarea {
  border: 1px solid var(--input-border); border-radius: var(--radius-sm);
  padding: 0 .55rem; background: #fff; width: 100%;
  min-height: var(--input-height); line-height: 1.3;
}
.field textarea { padding: .45rem .55rem; min-height: 4.5rem; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--navy-500); box-shadow: var(--focus);
}
.field-error { color: var(--danger); font-style: normal; font-size: 12px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.field-span { grid-column: 1 / -1; }
.form-actions { display: flex; gap: .5rem; align-items: center; margin-top: .2rem; flex-wrap: wrap; }
.inline-form { display: flex; gap: .3rem; align-items: center; flex-wrap: wrap; margin: 0; }
.inline-form select { max-width: 160px; }
.panel-form { max-width: 820px; }
.pricing-board.panel-form { max-width: 960px; }
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem .65rem;
}
.pricing-actions { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.pricing-actions .inline-form { display: inline; margin: 0; }
.pricing-table td, .pricing-table th { white-space: nowrap; }
@media (max-width: 900px) {
  .pricing-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .pricing-grid { grid-template-columns: 1fr; }
}

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 0 .72rem; min-height: 2rem;
  cursor: pointer; background: #fff; color: var(--text);
  font-size: 13px; font-weight: 600; line-height: 1.2;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.btn:hover { text-decoration: none; background: #f8fafc; }
.btn:focus-visible { outline: none; box-shadow: var(--focus); }
.btn-primary { background: var(--primary); color: #fff; border-color: var(--primary); }
.btn-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: #fff; }
.btn-secondary { background: #fff; color: var(--text); border-color: var(--input-border); }
.btn-secondary:hover { background: #f8fafc; }
.btn-ghost { background: transparent; border-color: transparent; }
.btn-ghost:hover { background: #eef2f6; }
.btn-sm {
  min-height: 1.65rem; padding: 0 .5rem; font-size: 12px; font-weight: 600;
}
.btn-block { width: 100%; }
.btn[disabled], .btn:disabled { opacity: .55; cursor: not-allowed; }
.btn-danger { background: var(--danger); color: #fff; border-color: var(--danger); }
.btn-danger:hover { background: var(--danger-hover); border-color: var(--danger-hover); color: #fff; }
.btn-edit { background: #fff; color: var(--navy-500); border-color: #9fd0ca; }
.btn-edit:hover { background: var(--primary-soft); color: var(--navy); }
.btn-row { display: flex; gap: .4rem; align-items: center; }
.btn-row.wrap { flex-wrap: wrap; }

.toolbar { display: flex; justify-content: space-between; gap: .6rem; align-items: center; margin-bottom: .7rem; flex-wrap: wrap; }
.toolbar-meta { display: flex; gap: .5rem; align-items: center; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .55rem 0 .7rem; }
.filter-bar input, .filter-bar select {
  border: 1px solid var(--input-border); border-radius: var(--radius-sm);
  padding: 0 .5rem; background: #fff; min-width: 0; min-height: 1.75rem;
}
.filter-bar input[type="search"] { min-width: 220px; }
.filter-bar .btn { min-height: 1.75rem; }

.table-wrap { overflow: auto; -webkit-overflow-scrolling: touch; }
.data-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.data-table th, .data-table td {
  padding: .4rem .5rem; border-bottom: 1px solid var(--line);
  text-align: left; vertical-align: middle;
}
.data-table th {
  color: var(--muted); font-weight: 650; font-size: 11px;
  text-transform: uppercase; letter-spacing: .03em;
  background: #f7f9fc; white-space: nowrap;
}
.data-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.data-table tbody tr:hover { background: #f8fafc; }
.data-table code { font-size: 11.5px; background: #f1f5f9; padding: .08rem .3rem; border-radius: 4px; }
.split-2 { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: .7rem; }
.pager { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: .65rem; }
.pager-links { display: flex; gap: .4rem; align-items: center; }

.badge {
  display: inline-flex; align-items: center; border-radius: 999px; padding: .1rem .48rem;
  font-size: 11px; font-weight: 650; border: 1px solid transparent; text-transform: capitalize;
  line-height: 1.25; white-space: nowrap;
}
.badge-ok { background: #ecfdf3; color: var(--ok); border-color: #abefc6; }
.badge-warn { background: #fffaeb; color: var(--warn); border-color: #fedf89; }
.badge-danger { background: #fef3f2; color: var(--danger); border-color: #fecdca; }
.badge-info { background: #e6f4f2; color: var(--info); border-color: #9fd0ca; }
.badge-muted { background: #f2f4f7; color: #475467; border-color: #d0d5dd; }
.badge-refunded { background: var(--refunded-bg); color: var(--refunded); border-color: var(--refunded-border); }
.logo-thumb, .fd-airline-mark {
  width: 36px; height: 36px; object-fit: contain; object-position: center; border-radius: 4px; vertical-align: middle;
  background: #fff; display: inline-block; flex-shrink: 0;
}
.fd-airline-mark { overflow: hidden; }
.airline-cell { display: flex; align-items: center; gap: .45rem; }
.al-logo { width: 40px; height: 28px; object-fit: contain; object-position: center; }
.al-logo-master, img.al-logo-master { width: 100px; height: 40px; object-fit: contain; object-position: center; }
.al-logo-lg { width: 160px; height: 60px; object-fit: contain; object-position: center; }
.al-logo-cell { width: 112px; }
.al-table td { padding-top: .35rem; padding-bottom: .35rem; }
.am-master-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.am-master-title { margin: 0; font-size: 1.35rem; letter-spacing: .02em; text-transform: uppercase; font-weight: 700; color: #0f172a; }
.am-master-sub { margin: .25rem 0 0; font-size: .9rem; }
.am-master-panel { padding-top: .75rem; }
.am-master-filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: 0 1rem 1rem; border-bottom: 1px solid #e2e8f0; }
.am-master-filters input[type="search"] { min-width: 220px; flex: 1 1 200px; }
.am-master-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.am-logo-frame { width: 100px; height: 40px; display: flex; align-items: center; justify-content: center; background: #f8fafc; border-radius: 4px; border: 1px solid #e2e8f0; }
.am-logo-frame-lg { width: 120px; height: 48px; }
.am-logo-frame .fd-airline-fallback { font-size: 1.1rem; }
.am-lock { margin-left: .35rem; font-size: .65rem; vertical-align: middle; }
.hidden { display: none !important; }
.al-select { position: relative; }
.al-select.is-open { z-index: 50; }
.al-select-btn {
  width: 100%; height: 2rem; border: 1px solid #c5d0de; border-radius: 3px; background: #fff;
  text-align: left; padding: 0 .45rem; cursor: pointer;
}
.al-select-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; font-size: .82rem; }
.al-select-value.is-placeholder { color: #94a3b8; }
.al-select-drop {
  position: absolute; left: 0; right: 0; top: calc(100% + 2px);
  background: #fff; border: 1px solid #c5d0de; border-radius: 3px; box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.al-select-search {
  display: block; width: 100%; height: 2rem; border: 0; border-bottom: 1px solid #e2e8f0;
  padding: 0 .55rem; outline: none;
}
.al-select-list { overflow-y: auto; max-height: 280px; }
.al-select-option {
  display: flex; align-items: center; gap: .45rem; width: 100%; border: 0; background: #fff;
  text-align: left; padding: .4rem .55rem; cursor: pointer; font-size: .8rem;
}
.al-select-option:hover, .al-select-option.is-active { background: var(--accent, #0a5c54); color: #fff; }
.al-select-option.is-selected { background: #cce9e5; color: #084841; font-weight: 700; }
.al-select-logo { width: 32px; height: 24px; flex: 0 0 auto; object-fit: contain; object-position: center; background: #f8fafc; border-radius: 2px; }
.al-select-empty, .al-select-loading { margin: 0; padding: .45rem .55rem; color: #94a3b8; font-size: .75rem; }
.logo-fallback {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 4px; background: #e6f4f2; color: var(--navy);
  font-size: 10px; font-weight: 700;
}
.seat-badge {
  display: inline-flex; border-radius: 999px; padding: .08rem .45rem;
  background: #e6f4f2; color: var(--info); font-size: 11px; font-weight: 600;
}
.inv-source {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .02em;
  color: #475467;
  white-space: nowrap;
}
.inv-source-admin { color: var(--navy-500); }
.inv-source-supplier { color: #475467; }

.modal {
  position: fixed; inset: 0; background: rgba(11,31,58,.45); display: grid; place-items: center; z-index: 80; padding: 1rem;
}
.modal[hidden] { display: none !important; pointer-events: none; }
.modal-card {
  background: #fff; border-radius: 10px; padding: 1rem 1.05rem .9rem; width: min(440px, 100%);
  box-shadow: 0 16px 40px rgba(0,0,0,.2);
}
.modal-body { margin: .55rem 0 .8rem; color: var(--text); font-size: 13px; }
.modal-body .meta-list { margin: 0; }
.modal-actions { display: flex; justify-content: flex-end; gap: .4rem; }

.toast-root { position: fixed; right: 1rem; bottom: 1rem; display: grid; gap: .4rem; z-index: 50; }
.toast-root .alert { min-width: 240px; box-shadow: var(--shadow); margin: 0; }
.sidebar-backdrop { display: none; }

/* Agent flight search */
.flight-search { margin-bottom: .85rem; }
.fs-trips {
  display: flex; gap: .9rem; align-items: center;
  margin: 0 0 .45rem .15rem;
}
.fs-trip {
  display: inline-flex; align-items: center; gap: .35rem;
  color: var(--text); font-size: 13px; font-weight: 600; cursor: pointer;
}
.fs-trip input { accent-color: var(--navy-500); margin: 0; }
.fs-panel {
  background: var(--navy);
  color: #fff;
  border-radius: 10px;
  padding: .55rem .6rem .6rem;
}
.fs-bar {
  display: flex;
  align-items: flex-end;
  gap: .45rem;
}
.fs-cell { position: relative; flex: 1 1 150px; min-width: 0; }
.fs-cell-swap { flex: 0 0 34px; min-width: 34px; }
.fs-cell-date { flex: 0 0 126px; }
.fs-cell-pax { flex: 0 0 132px; }
.fs-cell-submit { flex: 0 0 auto; }
.fs-label {
  display: block;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
  margin: 0 0 .22rem .08rem;
}
.fs-input, .fs-date-wrap, .fs-pax-btn {
  width: 100%;
  background: #fff;
  color: var(--text);
  border: 0;
  border-radius: 6px;
  height: 38px;
  padding: 0 .55rem;
  text-align: left;
  cursor: pointer;
}
.fs-input:focus, .fs-pax-btn:focus-visible {
  outline: 2px solid #8bb4e8;
  outline-offset: 1px;
}
.fs-swap {
  width: 34px; height: 38px;
  border: 0; border-radius: 6px;
  background: rgba(255,255,255,.12); color: #fff;
  cursor: pointer; font-size: 16px; line-height: 1;
}
.fs-swap:hover { background: rgba(255,255,255,.22); }
.fs-date-wrap { position: relative; display: flex; align-items: center; }
.fs-date-text { color: var(--text); pointer-events: none; white-space: nowrap; overflow: hidden; }
.fs-date-native {
  position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; border: 0;
}
.fs-search-btn {
  height: 38px;
  padding: 0 .95rem;
  background: var(--info);
  border-color: var(--info);
  color: #fff;
  font-weight: 650;
  white-space: nowrap;
  border-radius: 6px;
}
.fs-search-btn:hover { background: #104ba8; color: #fff; }
.fs-error { margin: .45rem .1rem 0; color: #fecaca; font-size: 12px; }
.fs-suggest {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px);
  background: #fff; color: var(--text);
  border-radius: 8px; box-shadow: 0 10px 28px rgba(11,31,58,.22);
  z-index: 35; max-height: 260px; overflow: auto; padding: .25rem 0;
}
.fs-sug {
  display: grid; grid-template-columns: 1fr auto; gap: .05rem .6rem;
  padding: .4rem .7rem; cursor: pointer;
  width: 100%; border: 0; background: #fff; text-align: left; border-radius: 0;
}
.fs-sug:hover, .fs-sug.is-active { background: #e6f4f2; }
.fs-sug-city { font-weight: 700; font-size: 13px; grid-column: 1; }
.fs-sug-name { grid-column: 1; color: var(--muted); font-size: 11px; line-height: 1.25; }
.fs-sug-code { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-weight: 700; color: var(--navy-500); }
.fs-pax-pop {
  position: absolute; right: 0; top: calc(100% + 4px);
  background: #fff; color: var(--text);
  border-radius: 8px; box-shadow: 0 10px 28px rgba(11,31,58,.22);
  z-index: 36; min-width: 220px; padding: .55rem .65rem;
}
.fs-pax-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: .28rem 0;
}
.fs-step { display: flex; align-items: center; gap: .35rem; }
.fs-step button {
  width: 26px; height: 26px; border-radius: 50%;
  border: 1px solid var(--line); background: #fff; cursor: pointer; line-height: 1;
}
.fs-step button:hover { background: #f8fafc; }
.fs-step strong { min-width: 1.1rem; text-align: center; }
.fs-more { margin-top: .45rem; }
.fs-more summary { cursor: pointer; color: var(--muted); font-size: 12px; }
.fs-more-grid {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .5rem; margin-top: .45rem;
}

@media (max-width: 1100px) {
  .fs-bar { flex-wrap: wrap; }
  .fs-cell { flex: 1 1 calc(50% - 2rem); }
  .fs-cell-swap { flex: 0 0 34px; }
  .fs-cell-submit { margin-left: auto; }
  .fs-more-grid { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 700px) {
  .fs-bar { flex-direction: column; align-items: stretch; }
  .fs-cell, .fs-cell-date, .fs-cell-pax, .fs-cell-submit { flex: 1 1 auto; width: 100%; }
  .fs-cell-swap { width: 100%; display: flex; justify-content: center; }
  .fs-swap { transform: rotate(90deg); }
  .fs-search-btn { width: 100%; }
  .fs-more-grid { grid-template-columns: 1fr 1fr; }
  .reg-grid { grid-template-columns: 1fr; }
  .reg-upload { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-2, .form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .auth-shell { grid-template-columns: 1fr; }
  .auth-brand { display: none; }
  .sidebar-collapse { display: none; }
  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: var(--z-sidebar);
    width: min(var(--sidebar), 88vw);
    transform: translateX(-100%);
    transition: transform .18s ease;
  }
  body.sidebar-open .sidebar { transform: none; }
  .sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    border: 0;
    background: rgba(7, 21, 38, 0.45);
    z-index: var(--z-drawer-backdrop);
  }
  body:not(.sidebar-open) .sidebar-backdrop { display: none; }
  .topbar-user-chip .topbar-user-text { display: none; }
  .topbar-user-chip { padding: 0.25rem; border: 0; box-shadow: none; background: transparent; }
  .topbar-action-group { padding-left: 0.5rem; border-left: 0; }
  .topbar-signout { padding-inline: 0.65rem; font-size: 0.75rem; }
  .app-content { padding: var(--space-3) var(--space-4) var(--space-5); }
  .kpi-row { grid-template-columns: 1fr 1fr; }
}

.kv { display: grid; gap: .35rem 1rem; }
.kv > div { display: grid; grid-template-columns: 14rem 1fr; gap: .2rem 1rem; padding: .2rem 0; border-bottom: 1px solid var(--line); }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }

.fd-page { display: grid; gap: .55rem; }
.fd-tabs {
  display: flex; justify-content: center; gap: .55rem;
  padding: .15rem 0 .2rem;
}
.fd-tab {
  min-width: 8.2rem; text-align: center; padding: .42rem 1.15rem;
  border-radius: 999px; border: 0; background: #0a5c54;
  color: #fff; font-weight: 750; letter-spacing: .04em; text-transform: uppercase;
  font-size: .78rem; text-decoration: none;
}
.fd-tab:hover { text-decoration: none; filter: brightness(1.05); }
.fd-tab.is-active { background: #f07157; color: #fff; }
.fd-refresh-row { display: flex; justify-content: flex-end; }
.fd-refresh { font-size: .75rem; color: var(--muted); }
.fd-rule { border: 0; border-top: 1px solid #d8dee8; margin: .15rem 0 .35rem; }
.fd-heading {
  font-size: .95rem; font-weight: 650; color: #9aa3b2;
  letter-spacing: .02em; margin: .2rem 0 .7rem;
  text-align: center;
}
.fd-chips {
  display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-start;
}
.fd-chips-origin, .fd-chips-dest { justify-content: flex-start; }
.fd-chip {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 calc(12.5% - .4rem); min-width: 6.4rem;
  padding: .48rem .4rem; border-radius: 8px;
  border: 0; color: #fff;
  font-size: .72rem; font-weight: 800; letter-spacing: .04em;
  text-decoration: none; text-transform: uppercase;
}
.fd-chip-pair {
  flex-direction: column; gap: .05rem; line-height: 1.15; min-height: 2.55rem;
}
.fd-chip-pair span { display: block; }
.fd-tone-0 { background: #f07157; }
.fd-tone-1 { background: #2e7d32; }
.fd-tone-2 { background: #7b1e1e; }
.fd-tone-3 { background: #6b6b1a; }
.fd-tone-4 { background: #6a1b9a; }
.fd-tone-5 { background: #0d1b6b; }
.fd-tone-6 { background: #c62828; }
.fd-tone-7 { background: #0a5c54; }
.fd-tone-8 { background: #00897b; }
.fd-tone-9 { background: #ad1457; }
.fd-chip:hover { text-decoration: none; filter: brightness(1.08); color: #fff; }
.fd-chip.is-selected {
  background: #ffd9d2; color: #1a1a1a;
  border: 2px solid #2e7d32;
  box-shadow: none;
}
.fd-empty {
  text-align: center; color: var(--muted); background: #fff;
  border: 1px dashed var(--line); border-radius: var(--radius);
  padding: 1.1rem;
}
.fd-error { color: #8a1f1f; border-color: #f0c2c2; background: #fff6f6; }
.fd-airline { display: flex; align-items: center; gap: .45rem; }
.fd-airline-fallback {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 6px; background: #eef2f7; font-size: .9rem;
  flex-shrink: 0;
}
.fd-table { font-size: .82rem; }
.fd-table thead th {
  background: #ffd9d2; color: #333; font-weight: 700; font-size: .78rem;
}
.fd-table-wrap { overflow-x: auto; }
.fd-table th, .fd-table td { vertical-align: middle; }
.fd-table .fd-fare {
  white-space: nowrap;
  width: 1%;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.fd-table .fd-fare strong {
  display: inline-block;
  white-space: nowrap;
}
.fd-book {
  background: var(--primary); border-color: var(--primary); color: #fff;
  border-radius: 6px; min-width: 5.6rem;
}
.fd-book:hover { filter: brightness(1.05); }
.live-inv { display: grid; gap: .55rem; }
.live-inv-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: .75rem; flex-wrap: wrap;
}
.live-inv-title {
  margin: 0;
  color: var(--text);
  font-size: 1.02rem;
  font-weight: 650;
}
.live-inv-lead { margin: .15rem 0 .35rem; }
.live-inv .filter-bar { margin-top: .15rem; }
.live-inv .fd-chip {
  background: var(--navy-600);
  font-weight: 700;
  letter-spacing: .03em;
}
.live-inv .fd-tone-0 { background: #04201c; }
.live-inv .fd-tone-1 { background: #06332e; }
.live-inv .fd-tone-2 { background: #084841; }
.live-inv .fd-tone-3 { background: #031814; }
.live-inv .fd-tone-4 { background: #0a5c54; }
.live-inv .fd-tone-5 { background: #0d7369; }
.live-inv .fd-chip.is-selected {
  background: var(--gold);
  color: var(--navy);
  box-shadow: none;
}
.live-inv .fd-heading {
  color: var(--muted);
  text-align: left;
  font-size: .88rem;
  margin: .15rem 0 .5rem;
}
.live-inv .fd-table thead th {
  background: #f7f9fc;
  color: var(--muted);
  font-weight: 650;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.live-inv .table-actions {
  gap: .28rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.fd-manage {
  /* legacy alias â€” prefer .btn-edit */
  background: #fff;
  border-color: #9fd0ca;
  color: var(--navy-500);
  font-weight: 650;
  letter-spacing: 0;
  min-width: 0;
  border-radius: var(--radius-sm);
  text-align: center;
}
.fd-manage:hover { filter: none; background: var(--primary-soft); color: var(--navy); text-decoration: none; }
.mi-page { max-width: 980px; }
.mi-card {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.mi-head {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--navy); color: #fff; padding: .55rem .9rem; font-weight: 650; font-size: .92rem;
}
.mi-close { color: #fff; font-size: 1.25rem; line-height: 1; text-decoration: none; font-weight: 500; opacity: .9; }
.mi-close:hover { color: #fff; opacity: 1; }
.mi-subhead { background: var(--navy-600); padding: .4rem .7rem .5rem; }
.mi-search {
  display: block; width: min(280px, 100%); height: 1.7rem;
  border: 1px solid var(--input-border); background: #fff; border-radius: var(--radius-sm);
  padding: 0 .45rem;
}
.mi-body { padding: .75rem 1rem 1rem; display: grid; gap: .62rem; }
.mi-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1.6rem; }
.mi-field { display: grid; gap: .16rem; font-size: .78rem; color: #334155; }
.mi-field > span { font-weight: 600; }
.mi-field input, .mi-field select {
  height: var(--input-height); border: 1px solid var(--input-border);
  border-radius: var(--radius-sm); padding: 0 .45rem; background: #fff; width: 100%;
}
.mi-field input:focus, .mi-field select:focus {
  outline: none; border-color: var(--navy-500); box-shadow: var(--focus);
}
.mi-ro, .mi-field input[readonly], .mi-field select:disabled {
  background: #eef2f6; color: #475467;
}
.mi-term { text-align: right; margin-top: -.35rem; }
.mi-link {
  background: none; border: 0; color: var(--navy-500); font-weight: 650; cursor: pointer;
  padding: 0; font-size: .8rem;
}
.mi-link:hover { text-decoration: underline; }
.mi-inline { display: flex; align-items: center; gap: .4rem; }
.mi-inline input { width: 7.2rem; }
.mi-unit { font-size: .75rem; color: #64748b; font-weight: 650; font-style: normal; }
.mi-kg { display: flex; align-items: stretch; }
.mi-kg input { border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.mi-kg-addon {
  background: #eef2f6; border: 1px solid var(--input-border); border-left: 0; padding: 0 .55rem;
  display: grid; place-items: center; font-size: .72rem; font-weight: 650; color: #64748b;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.mi-seat-row { display: grid; grid-template-columns: minmax(12rem, 18rem) 1fr; gap: 1rem; align-items: end; }
.mi-stepup-cell { text-align: right; padding-bottom: .2rem; }
.mi-stepup { max-width: 16rem; margin-left: auto; }
.mi-bag-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: .7rem 1.4rem; align-items: end; }
.mi-meal { justify-items: start; }
.mi-meal input { width: 1.05rem; height: 1.05rem; }
.mi-ad-row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .55rem; }
.mi-ad-label { font-size: .78rem; font-weight: 600; color: #334155; }
.mi-ad-row > input {
  width: 4.6rem; height: var(--input-height); border: 1px solid var(--input-border);
  border-radius: var(--radius-sm); padding: 0 .4rem;
}
.mi-ad { margin: 0 0 0 .4rem; color: var(--danger); font-size: .78rem; font-weight: 650; }
.mi-actions { display: flex; justify-content: flex-end; gap: .4rem; }
.mi-submit {
  background: var(--primary); color: #fff; border-color: var(--primary); font-weight: 650;
  min-width: 6.4rem; letter-spacing: .02em;
}
.mi-submit:hover { background: var(--primary-hover); color: #fff; }
@media (max-width: 720px) {
  .mi-row2, .mi-seat-row, .mi-bag-row { grid-template-columns: 1fr; }
}
.fd-seat-modal {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(8, 28, 58, .45);
  display: grid; place-items: center; padding: 1rem;
}
.fd-seat-modal[hidden] { display: none !important; }
.fd-seat-dialog {
  width: min(560px, 100%);
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 18px 48px rgba(0,0,0,.28);
  overflow: hidden;
}
.fd-seat-head {
  display: flex; align-items: center; justify-content: space-between;
  background: #0a5c54; color: #fff; padding: .7rem 1rem;
}
.fd-seat-head h2 { margin: 0; font-size: 1.15rem; font-weight: 650; color: #fff; }
.fd-seat-x {
  border: 0; background: transparent; color: #fff;
  font-size: 1.45rem; line-height: 1; cursor: pointer; padding: 0 .15rem;
}
.fd-seat-avail {
  margin: .85rem 1rem .35rem;
  color: #e6a817; font-style: italic; font-weight: 700; font-size: .95rem;
}
.fd-seat-error {
  margin: 0 1rem .4rem; color: #b42318; font-size: .82rem;
}
.fd-seat-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .85rem;
  padding: .35rem 1rem 1rem;
}
.fd-seat-col { display: grid; gap: .4rem; color: #555; font-size: .92rem; }
.fd-seat-field {
  display: flex; align-items: stretch;
  border: 1px solid #cfd6de; background: #fff; min-height: 46px;
}
.fd-seat-ico {
  width: 46px; flex: 0 0 46px;
  background: #f3f6f9 center / 22px 22px no-repeat;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230a5c54'><path d='M12 4a4 4 0 110 8 4 4 0 010-8zm0 10c4 0 8 2 8 4v2H4v-2c0-2 4-4 8-4z'/></svg>");
  border-right: 1px solid #e3e8ef;
}
.fd-seat-field input {
  flex: 1; border: 0; min-width: 0;
  font-size: 1.05rem; padding: 0 .7rem; color: #333;
}
.fd-seat-field input:focus { outline: none; }
.fd-seat-actions { display: flex; justify-content: flex-end; padding: 0 1rem 1rem; }
.fd-seat-submit {
  background: #0a5c54; border: 0; color: #fff;
  font-weight: 800; letter-spacing: .04em;
  padding: .55rem 1.15rem; min-width: 6.4rem; cursor: pointer; border-radius: 2px;
}
.fd-seat-submit:hover { filter: brightness(1.06); }
@media (max-width: 640px) {
  .fd-seat-grid { grid-template-columns: 1fr; }
}
.fd-bag { font-size: .72rem; margin-top: .2rem; }
.fd-loading {
  text-align: center; color: var(--muted); padding: .9rem;
  background: repeating-linear-gradient(90deg, #f4f6f9 0, #f4f6f9 40%, #fff 50%, #f4f6f9 60%, #f4f6f9 100%);
  background-size: 200% 100%;
  animation: fd-shimmer 1.1s linear infinite;
  border-radius: 8px;
}
@keyframes fd-shimmer { to { background-position: -200% 0; } }
@media (max-width: 1100px) {
  .fd-chip { flex-basis: calc(16.66% - .4rem); }
}
@media (max-width: 860px) {
  .fd-chip { flex: 1 1 calc(25% - .4rem); min-width: 5.4rem; }
  .fd-table { font-size: .75rem; }
}
@media (max-width: 520px) {
  .fd-chip { flex: 1 1 calc(50% - .4rem); }
}

.pax-page {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  gap: .75rem;
}
.pax-route {
  background: #fff;
  border-radius: 10px;
  padding: .7rem 1.05rem;
  font-weight: 700;
  color: #2b3340;
  display: flex;
  align-items: center;
  gap: .45rem;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.pax-route-ico { color: #5b6472; font-size: .95rem; }
.pax-route-arrow { color: #8a94a3; font-weight: 600; }
.pax-flight {
  background: #fff;
  border-radius: 10px;
  padding: .85rem 1.05rem;
  display: flex;
  align-items: center;
  gap: 1.15rem;
  flex-wrap: wrap;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.pax-airline {
  display: grid;
  justify-items: center;
  gap: .2rem;
  min-width: 64px;
  color: #4a5565;
  font-size: .78rem;
}
.pax-airline-logo, img.pax-airline-logo {
  width: 48px; height: 48px; object-fit: contain;
}
.pax-flight-meta {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  flex: 1;
  flex-wrap: wrap;
  color: #2e7d32;
  font-weight: 600;
  font-size: .92rem;
}
.pax-seats {
  margin-left: auto;
  font-weight: 700;
  color: #2b3340;
  white-space: nowrap;
}
.pax-tour {
  text-align: right;
  min-width: 6.2rem;
}
.pax-tour span {
  display: block;
  font-size: .7rem;
  color: #6b7280;
  font-weight: 600;
}
.pax-tour strong {
  font-size: .95rem;
  color: #111827;
}
.pax-form { display: grid; gap: .75rem; }
.pax-row {
  background: #fff;
  border-radius: 10px;
  padding: .7rem .8rem;
  display: flex;
  gap: .55rem;
  flex-wrap: wrap;
  align-items: center;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.pax-row select, .pax-row input {
  border: 1px solid #d5dbe3;
  border-radius: 4px;
  min-height: 42px;
  padding: 0 .7rem;
  background: #fff;
}
.pax-row select:focus, .pax-row input:focus {
  outline: 2px solid #9fd0ca;
  outline-offset: 0;
  border-color: #9fd0ca;
}
.pax-type { width: 118px; }
.pax-title { width: 92px; }
.pax-name { flex: 1; min-width: 150px; }
.pax-dob { width: 150px; }
.pax-infant-wrap { display: flex; }
.pax-infant {
  display: inline-flex;
  align-items: center;
  border: 1px solid #0a5c54;
  color: #0a5c54;
  background: #fff;
  padding: .48rem .9rem;
  border-radius: 4px;
  font-weight: 800;
  font-size: .78rem;
  letter-spacing: .03em;
  cursor: pointer;
}
.pax-row-infant {
  box-shadow: inset 3px 0 0 #0a5c54, 0 1px 2px rgba(16,24,40,.04);
}
.pax-confirm {
  background: #fff;
  border-radius: 10px;
  padding: .85rem 1rem;
  display: flex;
  align-items: center;
  gap: .9rem;
  flex-wrap: wrap;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.pax-terms {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .92rem;
  color: #333;
  cursor: pointer;
}
.pax-terms a { color: #0a5c54; font-weight: 600; }
.pax-confirm-btn {
  background: #0a5c54;
  color: #fff;
  border: 0;
  padding: .55rem 1.05rem;
  font-weight: 800;
  letter-spacing: .04em;
  border-radius: 4px;
  cursor: pointer;
}
.pax-confirm-btn:hover { filter: brightness(1.06); }
.pax-contact {
  border: 1px solid #d0d7de;
  border-radius: 4px;
  padding: .45rem .6rem;
  min-width: 11rem;
  font-size: .88rem;
}
@media (max-width: 860px) {
  .pax-seats { margin-left: 0; }
}

.rev-page {
  max-width: 920px;
  margin: 0 auto;
  display: grid;
  gap: .85rem;
}
.rev-h {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #37474f;
}
.rev-card {
  background: #fff;
  border: 1px solid #e6edf3;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.rev-route {
  margin: 0;
  padding: .65rem 1rem;
  background: #eef7fb;
  color: #455a64;
  font-weight: 600;
  font-size: .92rem;
}
.rev-flight {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem 1.25rem;
}
.rev-clock {
  display: grid;
  gap: .15rem;
}
.rev-clock strong {
  font-size: 1.15rem;
  color: #263238;
}
.rev-clock span {
  color: #607d8b;
  font-size: .9rem;
}
.rev-clock-r { text-align: right; justify-items: end; }
.rev-air {
  display: grid;
  justify-items: center;
  gap: .25rem;
  text-align: center;
  color: #455a64;
}
.rev-air strong { display: block; font-size: .92rem; }
.rev-air span { font-size: .82rem; color: #607d8b; }
.rev-logo, img.rev-logo {
  width: 72px;
  height: auto;
  max-height: 42px;
  object-fit: contain;
}
.rev-h2 {
  margin: 0;
  padding: .7rem 1rem .35rem;
  font-size: .98rem;
  font-weight: 700;
  color: #37474f;
}
.rev-table, .rev-fare {
  width: 100%;
  border-collapse: collapse;
}
.rev-table th, .rev-table td, .rev-fare td {
  padding: .55rem 1rem;
  text-align: left;
  font-size: .9rem;
  color: #37474f;
}
.rev-table th {
  color: #78909c;
  font-weight: 600;
  border-bottom: 1px solid #eceff1;
}
.rev-table td { border-bottom: 1px solid #f4f6f8; }
.rev-fare tr td:nth-child(2), .rev-fare tr td:nth-child(4) { font-weight: 600; }
.rev-fare tr td:nth-child(3), .rev-fare tr td:nth-child(4) { text-align: right; }
.rev-contact {
  margin: 0;
  padding: .7rem 1rem .9rem;
  color: #455a64;
  font-size: .9rem;
}
.rev-display {
  margin: 0;
  padding: .45rem 1rem .85rem;
  color: #546e7a;
  font-weight: 600;
  font-size: .9rem;
}
.rev-pay {
  background: #fffaf5;
  border: 1px solid #f3e6d8;
  border-radius: 8px;
  padding: .9rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}
.rev-pay-lab { margin: 0 0 .2rem; color: #607d8b; font-size: .88rem; }
.rev-pay-amt {
  margin: 0;
  color: #2e7d32;
  font-size: 1.35rem;
  font-weight: 800;
}
.rev-nr {
  margin: .45rem 0 0;
  color: #e64a19;
  font-size: .82rem;
  font-weight: 600;
}
.rev-actions {
  display: flex;
  gap: .55rem;
  align-items: center;
}
.rev-cancel, .rev-go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7.2rem;
  padding: .55rem 1.1rem;
  border: 0;
  border-radius: 4px;
  font-weight: 800;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
}
.rev-cancel { background: #0a5c54; color: #fff; }
.rev-go { background: var(--primary); color: #fff; }
.rev-cancel:hover, .rev-go:hover { filter: brightness(1.05); }
@media (max-width: 720px) {
  .rev-flight { grid-template-columns: 1fr; text-align: center; }
  .rev-clock-r { justify-items: center; text-align: center; }
}

.etkt { max-width: 820px; margin: 0 auto; color: var(--text-primary, #0f172a); }
.etkt-card {
  background: #fff;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}
.etkt-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: .85rem 1.1rem .55rem;
}
.etkt-brand { flex-shrink: 0; }
.etkt-logo, img.etkt-logo {
  width: 96px;
  height: 56px;
  object-fit: contain;
  display: block;
}
.etkt-logo-sm, img.etkt-logo-sm {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}
.etkt-pnr { text-align: right; }
.etkt-pnr span {
  display: block;
  font-size: .66rem;
  letter-spacing: .1em;
  font-weight: 700;
  color: var(--text-secondary, #64748b);
  text-transform: uppercase;
}
.etkt-pnr strong {
  display: block;
  margin-top: .1rem;
  font-size: 1.55rem;
  line-height: 1.1;
  letter-spacing: .04em;
  font-weight: 800;
  color: var(--text-primary, #0f172a);
}
.etkt-ribbon {
  background: var(--primary, #0a5c54);
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .85rem;
  flex-wrap: wrap;
  padding: .42rem 1.1rem;
  font-weight: 700;
  font-size: .9rem;
  line-height: 1.25;
}
.etkt-ribbon em {
  font-style: italic;
  font-weight: 500;
  font-size: .74rem;
  opacity: .95;
}
.etkt-flight {
  padding: .75rem 1.1rem .85rem;
  display: grid;
  gap: .7rem;
}
.etkt-sector {
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  padding: .7rem .85rem .75rem;
  background: #fff;
}
.etkt-flight-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .7rem;
  margin-bottom: .65rem;
}
.etkt-flight-air {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  font-size: .92rem;
}
.etkt-flight-air strong {
  font-weight: 700;
  color: var(--primary, #0a5c54);
  white-space: nowrap;
}
.etkt-flight-badge {
  display: inline-flex;
  align-items: center;
  padding: .12rem .5rem;
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid var(--border, #e2e8f0);
  color: var(--text-primary, #0f172a);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.etkt-status {
  background: var(--success-bg, #ecfdf5);
  color: var(--success, #059669);
  border: 1px solid var(--success-border, #a7f3d0);
  border-radius: 999px;
  padding: .16rem .65rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.etkt-status-wait {
  background: var(--warning-bg, #fffbeb);
  color: #b45309;
  border-color: var(--warning-border, #fde68a);
}
.etkt-route {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1.15fr) minmax(7.5rem, auto);
  gap: .65rem 0.85rem;
  align-items: start;
}
.etkt-iata {
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.05;
  color: var(--text-primary, #0f172a);
}
.etkt-city-name {
  margin-top: .1rem;
  font-weight: 700;
  font-size: .92rem;
  color: var(--text-primary, #0f172a);
}
.etkt-airname {
  margin-top: .12rem;
  color: var(--text-secondary, #64748b);
  font-size: .72rem;
  line-height: 1.3;
  max-width: 16rem;
}
.etkt-when {
  margin-top: .4rem;
  font-size: .8rem;
  font-weight: 700;
  color: var(--text-primary, #0f172a);
  line-height: 1.25;
}
.etkt-city-end { text-align: right; }
.etkt-city-end .etkt-airname { margin-left: auto; }
.etkt-dur {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: .28rem;
  color: var(--text-secondary, #64748b);
  font-size: .74rem;
  padding-top: .2rem;
  min-width: 4.75rem;
}
.etkt-dur-label {
  font-weight: 650;
  color: var(--text-secondary, #64748b);
}
.etkt-plane {
  width: 72px;
  height: 2px;
  background: var(--border-strong, #cbd5e1);
  position: relative;
  display: block;
  margin-top: .1rem;
}
.etkt-plane::after {
  content: "✈";
  position: absolute;
  right: -2px;
  top: 50%;
  transform: translateY(-55%);
  color: var(--primary, #0a5c54);
  font-size: 12px;
  line-height: 1;
}
.etkt-facts {
  list-style: none;
  margin: 0;
  padding: .1rem 0 0 .75rem;
  border-left: 1px dashed var(--border, #e2e8f0);
  color: var(--text-primary, #0f172a);
  font-size: .78rem;
  font-weight: 650;
  display: grid;
  gap: .28rem;
  align-content: start;
}
.etkt-facts li { padding: 0; line-height: 1.25; }
.etkt-pax-head {
  background: var(--primary, #0a5c54);
  color: #fff;
  padding: .42rem 1.1rem;
  font-weight: 800;
  font-size: .9rem;
  letter-spacing: .02em;
}
.etkt-table-wrap { padding: 0; overflow-x: auto; }
.etkt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .84rem;
  table-layout: fixed;
}
.etkt-table th {
  text-align: left;
  color: var(--text-secondary, #64748b);
  background: var(--primary-light, #e8eef5);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .45rem 1rem;
  border-bottom: 1px solid var(--border, #e2e8f0);
}
.etkt-table th:nth-child(1),
.etkt-table td:nth-child(1) { width: 4.2rem; }
.etkt-table th:nth-child(3),
.etkt-table td:nth-child(3) { width: 5.5rem; }
.etkt-table th:nth-child(4),
.etkt-table td:nth-child(4) { width: 4.5rem; }
.etkt-table th:nth-child(5),
.etkt-table td:nth-child(5) { width: 6.5rem; }
.etkt-table td {
  padding: .65rem 1rem .75rem;
  vertical-align: top;
  border-bottom: 1px solid #eef2f7;
  color: var(--text-primary, #0f172a);
}
.etkt-table td strong {
  font-weight: 800;
  font-size: .92rem;
}
.etkt-pax-pnr {
  font-weight: 800;
  letter-spacing: .03em;
}
.etkt-bc { margin-top: .35rem; }
.etkt-bc small {
  display: block;
  margin-top: .18rem;
  font-size: .68rem;
  color: var(--text-secondary, #64748b);
  letter-spacing: .06em;
  font-weight: 650;
}
.etkt-barcode,
svg.etkt-barcode {
  display: block;
  width: 8.75rem;
  height: 1.75rem;
  max-width: 100%;
  overflow: visible;
  shape-rendering: crispEdges;
}
svg.etkt-barcode {
  background: #fff;
}
.etkt-barcode i {
  display: none;
}
.etkt-agency, .etkt-price {
  padding: .65rem 1.1rem;
  border-top: 1px solid #eef2f7;
  display: flex;
  gap: .7rem;
  flex-wrap: wrap;
  align-items: baseline;
}
.etkt-price { justify-content: flex-end; font-size: 1rem; }
.etkt-info { padding: .75rem 1.1rem 1rem; }
.etkt-info h3 {
  color: var(--primary, #0a5c54);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0 0 .35rem;
}
.etkt-info ul {
  margin: 0;
  padding-left: 1.05rem;
  color: #334155;
  font-size: .74rem;
  line-height: 1.4;
}
.etkt-info li { margin: .16rem 0; }
.etkt-print { margin-top: 1.1rem; }
.etkt-print-label {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-weight: 800;
  color: var(--primary, #0a5c54);
  letter-spacing: .04em;
  margin-bottom: .45rem;
}
.etkt-print-label span {
  width: 22px; height: 22px; border-radius: 999px;
  background: var(--primary, #0a5c54); color: #fff;
  display: grid; place-items: center; font-size: .75rem;
}
.etkt-print-kicker { color: #64748b; font-size: .72rem; letter-spacing: .06em; margin: 0 0 .45rem; }
.etkt-print-opts { display: flex; gap: .7rem; flex-wrap: wrap; }
.etkt-print-opts label {
  flex: 1;
  min-width: 220px;
  border: 1px solid #cce9e5;
  background: #fff;
  border-radius: 6px;
  padding: .7rem .9rem;
  display: flex;
  gap: .55rem;
  align-items: center;
  font-weight: 700;
  color: #334155;
}
.etkt-print-btn {
  display: block;
  margin: .9rem auto 0;
  background: var(--primary, #0a5c54);
  color: #fff;
  border: 0;
  border-radius: 6px;
  padding: .55rem 1.3rem;
  font-weight: 800;
  cursor: pointer;
}
.etkt-print-btn:hover { filter: brightness(1.08); }
@media screen and (max-width: 720px) {
  .etkt-route { grid-template-columns: 1fr; }
  .etkt-city-end { text-align: left; }
  .etkt-city-end .etkt-airname { margin-left: 0; }
  .etkt-facts {
    border-left: 0;
    border-top: 1px dashed var(--border, #e2e8f0);
    padding: .55rem 0 0;
  }
  .etkt-table { table-layout: auto; }
}
@media print {
  @page {
    size: A4;
    margin: 8mm;
  }
  html, body {
    background: #fff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .sidebar, .topbar, .toast-root, .modal, .alert, .etkt-noprint,
  .app-sidebar, .portal-topbar, nav, footer {
    display: none !important;
  }
  .app, .app-main, .app-content, .content, main {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
  }
  .etkt {
    max-width: none;
    width: 100%;
  }
  .etkt-card {
    box-shadow: none !important;
    border-radius: 8px;
    border-color: #cce9e5;
  }
  .etkt-sector,
  .etkt-table tr,
  .etkt-info {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .etkt-ribbon,
  .etkt-pax-head,
  .etkt-status,
  .etkt-table th {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .etkt-extras { margin-top: .4rem; }
  .etkt-ticket-meta[hidden] { display: none !important; }
  .etkt-ticket-meta:not([hidden]) { display: block !important; }
  .etkt-extras .etkt-price[hidden] { display: none !important; }
  .etkt-extras .etkt-price:not([hidden]) { display: flex !important; }
  a[href]::after { content: none !important; }
  /* Print layout must stay multi-column (ignore screen mobile stacking) */
  .etkt-route {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1.15fr) minmax(7.5rem, auto) !important;
  }
  .etkt-city-end { text-align: right !important; }
  .etkt-city-end .etkt-airname { margin-left: auto !important; }
  .etkt-facts {
    border-left: 1px dashed #e2e8f0 !important;
    border-top: 0 !important;
    padding: .1rem 0 0 .75rem !important;
  }
  svg.etkt-barcode {
    width: 188px !important;
    height: 34px !important;
    max-width: none !important;
  }
}

.fdw [hidden] { display: none !important; }
.fdw { display: grid; gap: .75rem; max-width: 980px; }
.fdw-shell {
  border: 1px solid var(--border); background: var(--surface);
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);
}
.fdw-tabs { display: grid; grid-template-columns: 1fr 1fr 1fr; background: var(--navy); }
.fdw-tab {
  border: 0; background: transparent; color: #d7e0ec; border-radius: 0;
  padding: .55rem .4rem; font-weight: 650; font-size: .82rem; cursor: pointer;
}
.fdw-tab:hover { color: #fff; background: rgba(255,255,255,.06); }
.fdw-tab.is-active { background: #fff; color: var(--navy); font-weight: 700; }
.fdw-body { padding: .75rem .9rem .85rem; display: grid; gap: .65rem; }
.fdw-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .55rem .7rem; }
.fdw-row4 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: .55rem .7rem; }
.fdw-field { display: grid; gap: .18rem; font-size: .78rem; color: #334155; }
.fdw-field > span { font-weight: 600; }
.fdw-field input, .fdw-field select {
  height: var(--input-height); border: 1px solid var(--input-border);
  border-radius: var(--radius-sm); padding: 0 .45rem; background: #fff;
}
.fdw-field input:focus, .fdw-field select:focus {
  outline: none; border-color: var(--navy-500); box-shadow: var(--focus);
}
.fdw-flightno { display: flex; gap: 0; align-items: center; }
.fdw-flightno input + input { margin-left: .35rem; }
.fdw-flightno input[readonly], .fdw-flightno input[maxlength="2"] {
  width: 3rem; text-align: center; font-weight: 700; background: #eef2f7;
}
.fdw-eg { color: #94a3b8; font-size: .72rem; font-style: italic; white-space: nowrap; margin-left: .35rem; }
.fdw-unit { color: #64748b; font-size: .72rem; font-weight: 650; margin-left: .35rem; }
.fdw-kg {
  display: inline-flex; align-items: center; justify-content: center;
  height: var(--input-height); min-width: 2.4rem; padding: 0 .45rem; margin-left: -1px;
  background: #eef2f6; border: 1px solid var(--input-border); color: #64748b;
  font-size: .72rem; font-weight: 650; border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.fdw-flightno input:has(+ .fdw-kg) { width: 3.6rem; border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.fdw-flightno input[type="number"] { width: 3.6rem; }
.fdw-flightno .fdw-unit + input { margin-left: .45rem; }
.fdw-check { align-content: end; }
.fdw-check input { width: 1.05rem; height: 1.05rem; justify-self: start; }
.fdw-row-dur { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.fdw-link {
  border: 0; background: none; color: var(--navy-500); font-weight: 600; font-size: .8rem;
  cursor: pointer; padding: 0; text-decoration: none;
}
.fdw-link:hover { text-decoration: underline; }
.fdw-generate-row { display: flex; justify-content: flex-end; align-items: center; gap: .75rem; }
.fdw-generate {
  background: var(--primary); color: #fff; border-color: var(--primary);
  min-width: 7.2rem; font-weight: 650; letter-spacing: .02em;
}
.fdw-generate:hover { background: var(--primary-hover); color: #fff; }
.fdw-details { display: grid; gap: .65rem; }
.fdw-cards { display: grid; gap: .65rem; }
.fdw-box {
  border: 1px solid var(--border); background: #fff; border-radius: var(--radius);
  padding: .7rem .85rem .8rem; display: grid; gap: .55rem;
}
.fdw-box-date { font-weight: 650; color: var(--navy); }
.fdw-req { color: var(--danger); font-weight: 650; font-size: .72rem; }
.fdw-ad { margin: 0; color: var(--danger); font-size: .78rem; font-weight: 650; text-align: right; }
.fdw-stepup-cell { align-content: end; justify-items: end; }
.fdw-stepup { max-width: 14rem; margin-left: auto; }
.fdw-actions { display: flex; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; }
.fdw-cancel {
  background: #fff; color: var(--text); border-color: var(--input-border);
  font-weight: 650; letter-spacing: 0;
}
.fdw-cancel:hover { background: #f8fafc; color: var(--text); }
.fdw-submit {
  background: var(--primary); color: #fff; border-color: var(--primary);
  font-weight: 650; letter-spacing: .02em;
}
.fdw-submit:hover { background: var(--primary-hover); color: #fff; }
.fdw-banner { margin: 0; }
.fdw-connect { display: grid; gap: .55rem; }
.fdw-terminal { max-width: 22rem; }
.ap-select { position: relative; }
.ap-select.is-open { z-index: 60; }
.ap-select-btn {
  display: flex; align-items: center; width: 100%; height: var(--input-height);
  border: 1px solid var(--input-border); border-radius: var(--radius-sm); padding: 0 1.6rem 0 .45rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2364748b'/%3E%3C/svg%3E") no-repeat right .5rem center;
  color: #334155; font-size: .78rem; text-align: left; cursor: pointer;
}
.ap-select-btn:focus-visible { outline: none; border-color: var(--navy-500); box-shadow: var(--focus); }
.ap-select-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-select-value.is-placeholder { color: #94a3b8; }
.ap-select-drop {
  position: absolute; left: 0; right: 0; top: calc(100% + 3px);
  background: #fff; border: 1px solid var(--input-border); border-radius: var(--radius-sm);
  box-shadow: 0 8px 20px rgba(15, 23, 42, .12); max-height: 340px;
  display: flex; flex-direction: column; overflow: hidden; z-index: 70;
}
.fdw-field .ap-select-search, .ap-select-search {
  width: 100%; height: var(--input-height); border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; padding: 0 .55rem; outline: none; background: #fff;
  flex: 0 0 auto;
}
.ap-select-list { overflow-y: auto; max-height: 300px; }
.ap-select-option {
  display: block; width: 100%; border: 0; background: #fff; color: #334155;
  text-align: left; padding: .36rem .55rem; font-size: .78rem; cursor: pointer;
}
.ap-select-option:hover,
.ap-select-option.is-active { background: var(--navy-500); color: #fff; }
.ap-select-option.is-selected { background: var(--primary-soft); color: var(--navy); font-weight: 650; }
.ap-select-option.is-selected.is-active,
.ap-select-option.is-selected:hover { background: var(--navy-500); color: #fff; }
.ap-select-empty { margin: 0; padding: .45rem .55rem; color: #94a3b8; font-size: .75rem; }
.ap-select-loading { margin: 0; padding: .45rem .55rem; color: #64748b; font-size: .75rem; }
.table-actions { display: flex; gap: .3rem; align-items: center; flex-wrap: wrap; }
.al-select.is-open { z-index: 60; }
.al-select-btn {
  height: var(--input-height); border-color: var(--input-border); border-radius: var(--radius-sm);
}
.al-select-option:hover, .al-select-option.is-active { background: var(--navy-500); color: #fff; }
.al-select-option.is-selected { background: var(--primary-soft); color: var(--navy); font-weight: 650; }
@media (max-width: 900px) {
  .fdw-row3, .fdw-row4 { grid-template-columns: 1fr 1fr; }
  .fdw-row-dur { flex-direction: column; align-items: stretch; }
}
@media (max-width: 640px) {
  .fdw-tabs { grid-template-columns: 1fr; }
  .fdw-row3, .fdw-row4 { grid-template-columns: 1fr; }
  .fdw-tab { text-align: left; padding-left: .75rem; }
  .live-inv-head { align-items: flex-start; }
  .table-actions .btn { flex: 0 0 auto; }
}

/* Brand: logo only (all portals) — full wordmark, no crop */
.sidebar-brand-text,
.topbar-brand-text { display: none !important; }
.sidebar-top {
  align-items: center;
  gap: 0.5rem;
  overflow: visible;
}
.sidebar-brand--logo-only {
  flex: 1 1 auto;
  gap: 0;
  min-width: 0;
  max-width: calc(100% - 40px);
  overflow: visible;
}
.sidebar-brand--logo-only .sidebar-mark.sidebar-mark--logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: auto !important;
  max-width: 100%;
  height: 48px !important;
  padding: 4px 8px;
  border-radius: 8px;
  background: #fff;
  overflow: visible !important;
  box-shadow: none;
}
.sidebar-brand--logo-only .sidebar-mark--logo img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: 40px !important;
  object-fit: contain !important;
  object-position: left center;
}
body.sidebar-collapsed .sidebar-brand--logo-only {
  flex: 0 0 auto;
  max-width: 100%;
  justify-content: center;
}
body.sidebar-collapsed .sidebar-brand--logo-only .sidebar-mark.sidebar-mark--logo {
  width: 40px !important;
  max-width: 40px;
  height: 40px !important;
  padding: 4px;
  overflow: hidden !important;
}
body.sidebar-collapsed .sidebar-brand--logo-only .sidebar-mark--logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
}
.topbar-brand--logo-only .topbar-brand-logo {
  display: block;
  width: auto;
  max-width: 220px;
  height: 40px;
  object-fit: contain;
}
