:root {
  --portal-page-current: var(--portal-page);
  --portal-surface-current: var(--portal-surface);
  --portal-text-current: var(--portal-text);
  --portal-muted-current: var(--portal-muted);
  --portal-border-current: var(--portal-border);
  --portal-navbar-current: var(--portal-navbar);
  --portal-active-booking-bg-current: var(--portal-active-booking-bg);
  --portal-active-booking-text-current: var(--portal-active-booking-text);
  --portal-header-height: 66px;
  --portal-sidebar-width: 238px;
  --portal-shadow-sm: 0 2px 7px rgba(16, 30, 44, .08);
  --portal-shadow: 0 9px 28px rgba(16, 30, 44, .13);
  --bs-primary: var(--portal-primary);
  --bs-primary-rgb: var(--portal-primary-rgb);
  --bs-link-color: var(--portal-primary);
  --bs-link-hover-color: var(--portal-accent);
  --bs-body-font-family: var(--portal-font-body);
  --bs-body-bg: var(--portal-page-current);
  --bs-body-color: var(--portal-text-current);
}

[data-bs-theme="dark"] {
  --portal-page-current: var(--portal-dark-page);
  --portal-surface-current: var(--portal-dark-surface);
  --portal-text-current: var(--portal-dark-text);
  --portal-muted-current: var(--portal-dark-muted);
  --portal-border-current: var(--portal-dark-border);
  --portal-active-booking-bg-current: var(--portal-dark-active-booking-bg);
  --portal-active-booking-text-current: var(--portal-dark-active-booking-text);
  --portal-shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);
  --portal-shadow: 0 10px 28px rgba(0, 0, 0, .32);
  --bs-body-bg: var(--portal-page-current);
  --bs-body-color: var(--portal-text-current);
  --bs-border-color: var(--portal-border-current);
  --bs-secondary-color: var(--portal-muted-current);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
html { background: var(--portal-page-current); }
body {
  margin: 0;
  color: var(--portal-text-current);
  background: var(--portal-page-current);
  font-family: var(--portal-font-body);
  font-size: var(--portal-font-size-base);
  font-weight: 400;
  transition: background-color .18s ease, color .18s ease;
}
body.portal-density-compact { font-size: .94rem; }
body.portal-density-spacious { font-size: 1.04rem; }
body.portal-bg-all::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background: var(--portal-bg-image) center / cover no-repeat fixed;
}
body.portal-bg-all::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(var(--portal-page-rgb), var(--portal-background-overlay-opacity));
}
[data-bs-theme="dark"] body.portal-bg-all::after { background: rgba(var(--portal-dark-page-rgb), var(--portal-background-overlay-opacity)); }

body.portal-bg-public.portal-public::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background: var(--portal-bg-image) center / cover no-repeat fixed;
}
body.portal-bg-public.portal-public::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .45)));
}

a { color: var(--portal-primary); text-decoration: none; }
a:hover { color: var(--portal-accent); }
h1, h2, h3, h4, h5, h6 { color: var(--portal-text-current); font-family: var(--portal-font-headings); font-weight: 600; }
.text-muted, .text-body-secondary, .description { color: var(--portal-muted-current) !important; }

.table-primary {
  --bs-table-bg: var(--portal-active-booking-bg-current);
  --bs-table-striped-bg: var(--portal-active-booking-bg-current);
  --bs-table-hover-bg: var(--portal-active-booking-bg-current);
  --bs-table-color: var(--portal-active-booking-text-current);
  color: var(--portal-active-booking-text-current);
}
.table-primary a, .table-primary .btn-link { color: inherit; }
.table-primary td, .table-primary th { border-color: rgba(255, 255, 255, .08); }

.mc-blackbox-wrap { padding: 18px; }
.mc-blackbox-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.mc-blackbox-head > div > strong { display:block; font-family:var(--portal-font-headings); font-size:1.05rem; color:var(--portal-text-current); }
.mc-blackbox-count { display:inline-flex; align-items:center; white-space:nowrap; padding:5px 9px; border:1px solid var(--portal-border-current); border-radius:999px; color:var(--portal-muted-current); font-size:.78rem; font-weight:700; background:var(--portal-surface-current); }
.mc-blackbox-toolbar { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
.mc-blackbox-toolbar .btn { min-width:64px; font-weight:700; }
.mc-blackbox-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
.mc-blackbox-stats > div { min-width:0; padding:10px 12px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:rgba(var(--portal-primary-rgb),.035); }
.mc-blackbox-stats small { display:block; color:var(--portal-muted-current); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.035em; margin-bottom:2px; }
.mc-blackbox-stats strong { display:block; color:var(--portal-text-current); font-size:.96rem; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mc-blackbox-stage { position:relative; min-height:390px; border:1px solid var(--portal-border-current); border-radius:calc(var(--portal-radius) + 2px); background:linear-gradient(180deg,rgba(var(--portal-primary-rgb),.055),rgba(var(--portal-primary-rgb),.012)); padding:14px; overflow:hidden; }
.mc-blackbox-stage canvas { width:100% !important; height:390px !important; }
.mc-blackbox-events { margin-top:14px; padding-top:12px; border-top:1px solid var(--portal-border-current); }
.mc-blackbox-events-title { color:var(--portal-text-current); font-weight:700; font-size:.86rem; margin-bottom:8px; }
.mc-blackbox-event-list { display:flex; flex-wrap:wrap; gap:7px; }
.mc-blackbox-event { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:5px 8px; border:1px solid var(--portal-border-current); border-radius:999px; background:var(--portal-surface-current); color:var(--portal-muted-current); font-size:.76rem; }
.mc-blackbox-event strong { color:var(--portal-text-current); font-variant-numeric:tabular-nums; }
.mc-blackbox-event span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:300px; }
.mc-blackbox-fallback { border:1px dashed var(--portal-border-current); border-radius:calc(var(--portal-radius) + 2px); padding:2rem 1rem; text-align:center; color:var(--portal-muted-current); }
.mc-blackbox-fallback i { font-size:2rem; display:block; margin-bottom:.6rem; }
@media (max-width: 991.98px) {
  .mc-blackbox-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-blackbox-stage, .mc-blackbox-stage canvas { min-height:340px; height:340px !important; }
}
@media (max-width: 575.98px) {
  .mc-blackbox-wrap { padding:12px; }
  .mc-blackbox-head { display:block; }
  .mc-blackbox-count { margin-top:8px; }
  .mc-blackbox-stats { grid-template-columns:1fr; }
  .mc-blackbox-stage, .mc-blackbox-stage canvas { min-height:300px; height:300px !important; }
}

/* Main frame */
.portal-shell { min-height: 100vh; }
.portal-main { min-height: 100vh; padding-top: var(--portal-header-height); }
.portal-content { width: min(1460px, 100%); margin: 0 auto; padding: 24px 28px 42px; min-height: calc(100vh - 112px); }
.portal-footer { min-height: 46px; border-top: 1px solid var(--portal-border-current); color: var(--portal-muted-current); display: flex; align-items: center; justify-content: center; font-size: .84rem; background: var(--portal-surface-current); }
.portal-nav-sidebar.portal-auth .portal-main { margin-left: var(--portal-sidebar-width); }
.portal-nav-sidebar.portal-auth .portal-header { left: var(--portal-sidebar-width); }

/* Header and navigation */
.portal-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--portal-header-height);
  z-index: 1030;
  background: var(--portal-navbar-current);
  color: var(--portal-nav-text);
  border-bottom: 3px solid var(--portal-accent);
  box-shadow: 0 2px 7px rgba(0,0,0,.2);
}
.portal-header-inner { height: 100%; padding: 0 24px; display: flex; align-items: center; gap: 22px; }
.portal-brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.portal-brand img { display: block; max-height: 44px; max-width: 188px; object-fit: contain; }
.portal-desktop-nav { align-self: stretch; align-items: stretch; gap: 2px; }
.portal-desktop-nav .dropdown { display: flex; }
.portal-top-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--portal-nav-text);
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  font-size: .94rem;
  border-bottom: 3px solid transparent;
  margin-bottom: -3px;
}
.portal-top-link:hover, .portal-top-link:focus, .portal-top-link.active, .portal-desktop-nav .dropdown.show > .portal-top-link { color: var(--portal-nav-text); border-bottom-color: var(--portal-accent); background: color-mix(in srgb, var(--portal-nav-text) 6%, transparent); }
.portal-header-actions { margin-left: auto; display: flex; align-items: center; gap: 7px; }
.portal-notifications-host { display:flex; align-items:center; position:relative; }
.portal-utc { color: var(--portal-nav-muted); font-size: .78rem; font-weight: 600; margin-right: 4px; }
.portal-icon-btn {
  width: 38px; height: 38px; border: 1px solid color-mix(in srgb, var(--portal-nav-text) 18%, transparent); border-radius: calc(var(--portal-radius) * .75);
  background: color-mix(in srgb, var(--portal-nav-text) 8%, transparent); color: var(--portal-nav-text); display: inline-flex; align-items: center; justify-content: center;
}
.portal-icon-btn:hover { background: color-mix(in srgb, var(--portal-nav-text) 16%, transparent); color: var(--portal-accent); }
.portal-account-btn { border: 0; background: transparent; color: var(--portal-nav-text); display: flex; align-items: center; gap: 9px; padding: 4px 3px 4px 7px; border-radius: var(--portal-radius); }
.portal-account-btn:hover { background: color-mix(in srgb, var(--portal-nav-text) 8%, transparent); }
.portal-account-btn img { width: 38px; height: 38px; border-radius: calc(var(--portal-radius) * .75); object-fit: cover; border: 1px solid color-mix(in srgb, var(--portal-nav-text) 35%, transparent); }
.portal-account-fallback-icon { width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; font-size:1.7rem; color:var(--portal-nav-text); }
.portal-account-btn span { text-align: left; line-height: 1.05; }
.portal-account-btn strong { display: block; color: var(--portal-nav-text); font-size: .82rem; font-weight: 600; }
.portal-account-btn small { display: block; margin-top: 4px; color: var(--portal-nav-muted); font-size: .69rem; }
.portal-login-link { color: var(--portal-nav-text); font-weight: 600; padding: 8px 10px; }
.portal-login-link:hover { color: var(--portal-accent); }
.portal-dropdown { min-width: 218px; padding: 7px; border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); background: var(--portal-surface-current); box-shadow: var(--portal-shadow); }
.portal-dropdown .dropdown-item { color: var(--portal-text-current); padding: 8px 10px; border-radius: calc(var(--portal-radius) * .65); font-size: .9rem; }
.portal-dropdown .dropdown-item:hover, .portal-dropdown .dropdown-item.active { background: rgba(var(--portal-primary-rgb), .1); color: var(--portal-primary); }
.portal-dropdown .dropdown-divider { border-color: var(--portal-border-current); }
.portal-theme-option.active::after { content: "✓"; float: right; font-weight: 700; color: var(--portal-primary); }

.portal-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--portal-sidebar-width); z-index: 1040; background: var(--portal-navbar-current); color: var(--portal-nav-text); flex-direction: column; border-right: 1px solid color-mix(in srgb, var(--portal-nav-text) 14%, transparent); }
.portal-sidebar-brand { height: var(--portal-header-height); display: flex; align-items: center; justify-content: center; padding: 10px 18px; border-bottom: 3px solid var(--portal-accent); }
.portal-sidebar-brand img { max-width: 178px; max-height: 43px; object-fit: contain; }
.portal-sidebar-nav { padding: 15px 11px; display: grid; gap: 3px; overflow-y: auto; }
.portal-nav-item { display: flex; align-items: center; gap: 11px; padding: 9px 11px; color: var(--portal-nav-text); border-radius: calc(var(--portal-radius) * .7); font-weight: 500; }
.portal-nav-item i { width: 18px; text-align: center; }
.portal-nav-item:hover, .portal-nav-item.active { color: var(--portal-nav-text); background: color-mix(in srgb, var(--portal-nav-text) 10%, transparent); }
.portal-nav-item.active { box-shadow: inset 3px 0 0 var(--portal-accent); }
.portal-sidebar-separator { height: 1px; background: color-mix(in srgb, var(--portal-nav-text) 12%, transparent); margin: 9px 5px; }
.portal-header-context { align-items: center; color: var(--portal-nav-muted); font-size: .8rem; }

.portal-mobile-nav { background: var(--portal-surface-current); color: var(--portal-text-current); }
.portal-mobile-nav .offcanvas-header { border-bottom: 1px solid var(--portal-border-current); }
.portal-mobile-nav .portal-brand img { max-height: 42px; }
.portal-mobile-links { display: grid; gap: 4px; }
.portal-mobile-links a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; color: var(--portal-text-current); border-radius: var(--portal-radius); font-weight: 600; }
.portal-mobile-links a:hover, .portal-mobile-links a.active { background: rgba(var(--portal-primary-rgb), .1); color: var(--portal-primary); }
.portal-mobile-links i { width: 20px; }
.portal-mobile-separator { height: 1px; background: var(--portal-border-current); margin: 8px 0; }

/* Generic UI */
.card, .mc-panel {
  background: var(--portal-surface-current);
  color: var(--portal-text-current);
  border-radius: var(--portal-radius);
  overflow: hidden;
}
.portal-cards-flat .card, .portal-cards-flat .mc-panel { border: 0; box-shadow: none; }
.portal-cards-border .card, .portal-cards-border .mc-panel { border: 1px solid var(--portal-border-current); box-shadow: none; }
.portal-cards-shadow .card, .portal-cards-shadow .mc-panel { border: 1px solid transparent; box-shadow: var(--portal-shadow-sm); }
.card-header, .mc-panel-head { background: var(--portal-surface-current); color: var(--portal-text-current); border-bottom: 1px solid var(--portal-border-current); }
.card-header { padding: 13px 16px; font-weight: 600; }
.card-body { padding: 17px; }
.card-footer { padding: 11px 16px; background: rgba(var(--portal-primary-rgb), .045); border-top: 1px solid var(--portal-border-current); }
.mc-panel-head { min-height: 52px; padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.mc-panel-head h3 { margin: 0; font-size: 1rem; }
.mc-panel-body { padding: 17px; }
.portal-density-compact .card-body, .portal-density-compact .mc-panel-body { padding: 12px; }
.portal-density-compact .card-header, .portal-density-compact .mc-panel-head { padding: 9px 12px; }
.portal-density-spacious .card-body, .portal-density-spacious .mc-panel-body { padding: 23px; }

.btn { font-family: var(--portal-font-body); font-weight: 600; min-height: 37px; padding: .43rem .82rem; font-size: .9rem; }
.portal-buttons-square .btn { border-radius: 2px; }
.portal-buttons-rounded .btn { border-radius: calc(var(--portal-radius) * .8); }
.portal-buttons-pill .btn { border-radius: 999px; }
.btn-primary { --bs-btn-bg: var(--portal-primary); --bs-btn-border-color: var(--portal-primary); --bs-btn-hover-bg: var(--portal-navbar); --bs-btn-hover-border-color: var(--portal-navbar); }
.btn-outline-primary { --bs-btn-color: var(--portal-primary); --bs-btn-border-color: var(--portal-primary); --bs-btn-hover-bg: var(--portal-primary); --bs-btn-hover-border-color: var(--portal-primary); }
.btn-accent, .btn-warning { background: var(--portal-accent); border-color: var(--portal-accent); color: var(--portal-accent-button-text); }
.btn-accent:hover, .btn-warning:hover { filter: brightness(.92); color: var(--portal-accent-button-text); }
.btn-info { --bs-btn-bg: var(--portal-secondary); --bs-btn-border-color: var(--portal-secondary); --bs-btn-color: var(--portal-secondary-button-text); --bs-btn-hover-bg: var(--portal-primary); --bs-btn-hover-border-color: var(--portal-primary); --bs-btn-hover-color: var(--portal-nav-text); }

.form-label { color: var(--portal-text-current); font-weight: 600; font-size: .88rem; }
.form-control, .form-select, .ts-control { min-height: 41px; background: var(--portal-surface-current); color: var(--portal-text-current); border: 1px solid var(--portal-border-current); border-radius: calc(var(--portal-radius) * .7); box-shadow: none; }
.form-control:focus, .form-select:focus, .ts-control.focus { background: var(--portal-surface-current); color: var(--portal-text-current); border-color: var(--portal-secondary); box-shadow: 0 0 0 3px rgba(var(--portal-secondary-rgb), .18); }
.form-control::placeholder { color: var(--portal-muted-current); opacity: .72; }
.input-group-text { background: rgba(var(--portal-primary-rgb), .05); color: var(--portal-muted-current); border-color: var(--portal-border-current); }

.table-responsive { border-radius: var(--portal-radius); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--portal-text-current); --bs-table-border-color: var(--portal-border-current); --bs-table-hover-bg: rgba(var(--portal-primary-rgb), .055); margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .68rem .65rem; vertical-align: middle; }
.table thead th { color: var(--portal-muted-current); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.table tbody td { font-size: .9rem; }
.portal-density-compact .table > :not(caption) > * > * { padding: .45rem .5rem; }

.badge { border-radius: 999px; font-weight: 600; }
.nav-pills { gap: 5px; }
.nav-pills .nav-link { color: var(--portal-text-current); border-radius: calc(var(--portal-radius) * .7); }
.nav-pills .nav-link.active { background: var(--portal-primary); color: var(--portal-nav-text); }
.nav-tabs { border-bottom-color: var(--portal-border-current); }
.nav-tabs .nav-link { color: var(--portal-muted-current); border: 0; border-bottom: 2px solid transparent; }
.nav-tabs .nav-link.active { color: var(--portal-primary); background: transparent; border-bottom-color: var(--portal-accent); }
.list-group-item { background: var(--portal-surface-current); color: var(--portal-text-current); border-color: var(--portal-border-current); }
.list-group-item-action:hover { background: rgba(var(--portal-primary-rgb), .05); color: var(--portal-primary); }
.modal-content { background: var(--portal-surface-current); color: var(--portal-text-current); border-color: var(--portal-border-current); border-radius: var(--portal-radius); }
.modal-header, .modal-footer { border-color: var(--portal-border-current); }
.alert { border-radius: var(--portal-radius); }

/* Headings */
.mc-eyebrow { color: var(--portal-primary); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.mc-page-title { margin: 0 0 18px; }
.mc-page-title h1 { font-size: 1.65rem; margin: 3px 0 0; }
.mc-page-title p { color: var(--portal-muted-current); margin: 5px 0 0; }

/* Dashboard */
.mc-dashboard-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.mc-dashboard-head h1 { margin: 2px 0 0; font-size: 1.75rem; }
.mc-dashboard-head p { margin: 5px 0 0; color: var(--portal-muted-current); }
.mc-dashboard-badge { background: rgba(var(--portal-primary-rgb), .08); color: var(--portal-primary); border: 1px solid rgba(var(--portal-primary-rgb), .14); border-radius: 999px; padding: 6px 10px; font-weight: 600; font-size: .82rem; }
.mc-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.mc-profile-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.mc-stat-card { padding: 14px 15px; background: var(--portal-surface-current); border-radius: var(--portal-radius); }
.portal-cards-flat .mc-stat-card { border: 0; }
.portal-cards-border .mc-stat-card { border: 1px solid var(--portal-border-current); }
.portal-cards-shadow .mc-stat-card { border: 0; box-shadow: var(--portal-shadow-sm); }
.mc-stat-icon { width: 34px; height: 34px; border-radius: calc(var(--portal-radius) * .7); display: inline-flex; align-items: center; justify-content: center; background: rgba(var(--portal-primary-rgb), .09); color: var(--portal-primary); margin-bottom: 8px; }
.mc-stat-value { font-size: 1.25rem; font-weight: 700; color: var(--portal-text-current); line-height: 1.1; }
.mc-stat-label { color: var(--portal-muted-current); font-size: .8rem; margin-top: 5px; }
.mc-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(285px,.8fr); gap: 16px; align-items: start; }
.mc-stack { display: grid; gap: 16px; }
.mc-weather-shell .card { border: 0 !important; box-shadow: none !important; margin: 0 !important; }

/* Hero / public */
.mc-hero { min-height: 380px; display: flex; align-items: center; margin: -24px -28px 24px; padding: 48px max(28px, calc((100vw - 1404px)/2)); background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .44))), var(--portal-bg-image) center / cover no-repeat; border-bottom: 3px solid var(--portal-accent); }
.mc-hero-content { max-width: 650px; color: var(--portal-hero-text); }
.mc-hero-content h1 { color: var(--portal-hero-text); font-size: clamp(2rem, 4vw, 3.5rem); margin: 6px 0 10px; }
.mc-hero-content p { font-size: 1.08rem; color: var(--portal-hero-muted-text); max-width: 590px; }
.mc-hero-kicker { color: var(--portal-accent); font-size: .8rem; font-weight: 700; letter-spacing: .1em; }
.mc-hero-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }

/* Flights */
.mc-flight-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 16px; align-items: start; }
.mc-flight-list { display: grid; gap: 10px; }
.mc-flight-card { padding: 15px 16px; background: var(--portal-surface-current); border-radius: var(--portal-radius); border: 1px solid var(--portal-border-current); }
.mc-flight-card:hover { border-color: rgba(var(--portal-primary-rgb), .35); }
.mc-flight-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.mc-flight-ident { display: flex; align-items: center; gap: 9px; font-weight: 700; }
.mc-flight-ident img { max-width: 70px; max-height: 24px; object-fit: contain; }
.mc-flight-route { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 13px; align-items: center; }
.mc-flight-airport:last-child { text-align: right; }
.mc-flight-airport strong { display: block; font-size: 1.35rem; color: var(--portal-text-current); }
.mc-flight-airport span { display: block; color: var(--portal-muted-current); font-size: .79rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-flight-airport time { color: var(--portal-primary); font-weight: 600; font-size: .84rem; }
.mc-flight-direction { min-width: 98px; display: flex; align-items: center; gap: 7px; color: var(--portal-muted-current); }
.mc-flight-direction::before, .mc-flight-direction::after { content: ""; height: 1px; flex: 1; background: var(--portal-border-current); }
.mc-flight-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding-top: 11px; margin-top: 11px; border-top: 1px solid var(--portal-border-current); color: var(--portal-muted-current); font-size: .8rem; }
.mc-flight-actions { margin-left: auto; display: flex; gap: 6px; }
.mc-search-panel { position: static; align-self: start; }

/* Profile */
.mc-profile-hero { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 18px; margin-bottom: 14px; background: var(--portal-surface-current); border-radius: var(--portal-radius); border-top: 4px solid var(--portal-primary); }
.portal-cards-border .mc-profile-hero { border-left: 1px solid var(--portal-border-current); border-right: 1px solid var(--portal-border-current); border-bottom: 1px solid var(--portal-border-current); }
.portal-cards-shadow .mc-profile-hero { box-shadow: var(--portal-shadow-sm); }
.mc-profile-avatar { width: 90px; height: 90px; object-fit: cover; border-radius: calc(var(--portal-radius) * 1.2); border: 1px solid var(--portal-border-current); }
.mc-profile-copy h1 { margin: 0 0 2px; font-size: 1.65rem; }
.mc-profile-copy p { margin: 0; color: var(--portal-muted-current); }
.mc-profile-meta { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 9px; color: var(--portal-muted-current); font-size: .84rem; }
.mc-profile-rank { min-width: 125px; text-align: right; }
.mc-profile-rank img { max-width: 105px; max-height: 70px; object-fit: contain; }
.mc-profile-rank small { color: var(--portal-muted-current); }
.mc-profile-rank strong { color: var(--portal-text-current); }
.portal-api-box { display: grid; gap: 10px; }
.portal-api-row { display: flex; gap: 7px; }
.portal-api-row .form-control { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .84rem; }
.portal-api-actions { display: flex; flex-wrap: wrap; gap: 7px; }

/* Detail/PIREP/downloads */
.mc-detail-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.mc-detail-item { padding: 12px; background: rgba(var(--portal-primary-rgb), .035); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); }
.mc-detail-item small { display: block; color: var(--portal-muted-current); }
.mc-route-summary { display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: center; padding: 17px; }
.mc-route-point:last-child { text-align: right; }
.mc-route-icao { font-size: 1.4rem; font-weight: 700; }
.mc-route-name { color: var(--portal-muted-current); font-size: .8rem; }
.mc-route-line { min-width: 115px; display: flex; align-items: center; gap: 7px; color: var(--portal-primary); }
.mc-route-line::before, .mc-route-line::after { content:""; height:1px; flex:1; background: var(--portal-border-current); }
.mc-pirep-hero, .mc-pirep-summary { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); }
.mc-download-grid { display: grid; gap: 10px; }
.mc-download-item { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); padding: 14px; }
.mc-download-icon { color: var(--portal-primary); }
.mc-map-shell { border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); overflow: hidden; }
.mc-rich-content { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); padding: 18px; }

/* Auth */
.mc-auth-page { min-height: calc(100vh - var(--portal-header-height)); margin: -24px -28px -42px; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(420px,.7fr); background: var(--portal-surface-current); }
.mc-auth-visual { min-height: 620px; background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .32))), var(--portal-bg-image) center / cover no-repeat; display: flex; align-items: end; padding: 42px; color: var(--portal-hero-text); }
.mc-auth-tagline h1 { color:var(--portal-hero-text); font-size: 2.4rem; }
.mc-auth-tagline p { color:var(--portal-hero-muted-text); max-width:520px; }
.mc-auth-panel { display:flex; align-items:center; justify-content:center; padding:42px; background:var(--portal-surface-current); }
.mc-auth-box { width:min(420px,100%); }
.mc-auth-brand img, .mc-auth-mobile-logo img { max-width:210px; max-height:72px; object-fit:contain; }
.mc-register-wrap { max-width: 980px; margin: 0 auto; }
.mc-register-panel { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); padding: 22px; }
.mc-register-terms { max-height: 210px; overflow:auto; border:1px solid var(--portal-border-current); padding:12px; border-radius:var(--portal-radius); }

/* States */
.mc-state-wrap { min-height: 56vh; display:flex; align-items:center; justify-content:center; }
.mc-state-card { max-width:620px; width:100%; padding:28px; text-align:center; background:var(--portal-surface-current); border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); }
.mc-state-icon { font-size:2.8rem; color:var(--portal-primary); }
.mc-state-danger .mc-state-icon { color:var(--portal-danger); }
.mc-state-success .mc-state-icon { color:var(--portal-success); }
.mc-error-code { font-size:4rem; font-weight:700; color:var(--portal-primary); }

[data-bs-theme="dark"] .btn-light { --bs-btn-bg: var(--portal-dark-surface); --bs-btn-border-color: var(--portal-dark-border); --bs-btn-color: var(--portal-text-current); }
[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: var(--portal-dark-text); --bs-btn-border-color: var(--portal-dark-border); }
[data-bs-theme="dark"] .dropdown-menu { --bs-dropdown-bg: var(--portal-surface-current); --bs-dropdown-color: var(--portal-text-current); --bs-dropdown-link-color: var(--portal-text-current); --bs-dropdown-border-color: var(--portal-border-current); }
[data-bs-theme="dark"] .form-control:disabled, [data-bs-theme="dark"] .form-control[readonly] { background: color-mix(in srgb, var(--portal-dark-text) 5%, var(--portal-dark-input-bg)); }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

@media (max-width: 1199.98px) {
  .mc-dashboard-grid { grid-template-columns: minmax(0,1fr) 300px; }
  .mc-flight-layout { grid-template-columns: 1fr; }
  .mc-search-panel { position: static; }
}
@media (max-width: 991.98px) {
  .portal-nav-sidebar.portal-auth .portal-main { margin-left: 0; }
  .portal-nav-sidebar.portal-auth .portal-header { left: 0; }
  .portal-content { padding: 20px 18px 34px; }
  .mc-hero { margin: -20px -18px 22px; padding: 42px 22px; }
  .mc-stat-grid, .mc-profile-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mc-dashboard-grid { grid-template-columns: 1fr; }
  .mc-profile-hero { grid-template-columns: auto 1fr; }
  .mc-profile-rank { grid-column: 1 / -1; text-align:left; display:flex; align-items:center; gap:12px; }
  .mc-auth-page { margin: -20px -18px -34px; grid-template-columns: 1fr; }
  .mc-auth-visual { display:none; }
  .mc-auth-panel { min-height: calc(100vh - var(--portal-header-height)); padding:28px 20px; }
}
@media (max-width: 767.98px) {
  .portal-header-inner { padding: 0 12px; gap: 10px; }
  .portal-brand img { max-width: 142px; max-height: 40px; }
  .portal-content { padding: 17px 12px 28px; }
  .mc-hero { margin: -17px -12px 19px; padding: 36px 16px; min-height: 330px; }
  .mc-dashboard-head { align-items:flex-start; flex-direction:column; }
  .mc-flight-route { grid-template-columns: 1fr auto 1fr; gap:8px; }
  .mc-flight-direction { min-width:50px; }
  .mc-flight-meta { align-items:flex-start; }
  .mc-flight-actions { width:100%; margin-left:0; }
  .mc-profile-hero { grid-template-columns: 1fr; text-align:center; justify-items:center; }
  .mc-profile-meta { justify-content:center; }
  .mc-profile-rank { justify-content:center; text-align:center; }
  .mc-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 479.98px) {
  .mc-stat-grid, .mc-profile-stats { grid-template-columns: 1fr 1fr; gap:8px; }
  .mc-stat-card { padding:11px; }
  .mc-flight-card { padding:12px; }
  .mc-flight-airport strong { font-size:1.18rem; }
  .mc-detail-grid { grid-template-columns:1fr; }
  .portal-api-row { flex-wrap:wrap; }
  .portal-api-row .form-control { width:100%; flex-basis:100%; }
}

/* Dashboard v1.1 */
.portal-dashboard-banner { min-height: 128px; margin-bottom: 14px; padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-radius: var(--portal-radius); background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .72))), var(--portal-header-bg-image, var(--portal-bg-image)) center 54% / cover no-repeat; border-bottom: 3px solid var(--portal-accent); color: var(--portal-hero-text); }
.portal-dashboard-banner .mc-eyebrow { color: var(--portal-accent); }
.portal-dashboard-banner h1 { color: var(--portal-nav-text); margin: 2px 0 0; font-size: 1.8rem; }
.portal-dashboard-profile-link { color: inherit; text-decoration: none; }
.portal-dashboard-profile-link:hover, .portal-dashboard-profile-link:focus { color: inherit; text-decoration: none; }
.portal-dashboard-banner p { margin: 3px 0 0; color: var(--portal-hero-muted-text); }
.portal-dashboard-banner-actions { display: flex; align-items: center; gap: 10px; }
.portal-dashboard-banner-actions > span { font-weight: 600; color: var(--portal-hero-text); }
.portal-dashboard-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(290px,.72fr); gap: 16px; align-items: start; }
.portal-dashboard-main, .portal-dashboard-side { display: grid; gap: 16px; }
.portal-quick-links { display: grid; }
.portal-quick-links a { display: grid; grid-template-columns: 22px 1fr 15px; align-items: center; gap: 9px; padding: 10px 14px; color: var(--portal-text-current); border-bottom: 1px solid var(--portal-border-current); }
.portal-quick-links a:last-child { border-bottom: 0; }
.portal-quick-links a:hover { background: rgba(var(--portal-primary-rgb), .05); color: var(--portal-primary); }
.portal-quick-links a > i:first-child { color: var(--portal-primary); }
.portal-quick-links a > i:last-child { color: var(--portal-muted-current); font-size: .72rem; }
@media (max-width: 991.98px) { .portal-dashboard-layout { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .portal-dashboard-banner { align-items:flex-start; flex-direction:column; } .portal-dashboard-banner-actions { width:100%; justify-content:space-between; } }
.portal-auth-theme { position:absolute; top:16px; right:18px; z-index:5; }
.portal-auth-theme-btn { width:38px;height:38px;border-radius:var(--portal-radius);border:1px solid var(--portal-border-current);background:var(--portal-surface-current);color:var(--portal-text-current); }
.mc-auth-panel { position:relative; }

/* SimBrief OFP workspace v1.2 */
.mc-sb-accordion .accordion-item { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); overflow: hidden; }
.mc-sb-accordion .accordion-item + .accordion-item { margin-top: 10px; }
.mc-sb-accordion .accordion-button { background: var(--portal-surface-current); color: var(--portal-text-current); font-weight: 700; box-shadow: none; }
.mc-sb-accordion .accordion-button:not(.collapsed) { color: var(--portal-primary); background: rgba(var(--portal-primary-rgb), .06); }
.mc-sb-accordion .accordion-body { background: var(--portal-page-current); padding: 12px; }
.mc-sb-stat { min-height: 84px; padding: 12px 10px; border: 1px solid var(--portal-border-current); background: var(--portal-surface-current); border-radius: var(--portal-radius); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.mc-sb-stat strong { font-size: 1.02rem; line-height: 1.2; color: var(--portal-text-current); }
.mc-sb-stat span { margin-top: 5px; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: var(--portal-muted-current); }
.mc-sb-stat small { margin-top: 2px; color: var(--portal-muted-current); }
.mc-sb-route { font-family: var(--bs-font-monospace); line-height: 1.65; word-break: break-word; }
.mc-sb-atc { max-height: 360px; overflow: auto; white-space: normal; }
.mc-sb-actions { top: calc(var(--portal-header-height) + 12px); display: grid; gap: 8px; justify-items: center; }
.mc-sb-actions .btn { min-height: 46px; padding: 7px 6px; display: flex; flex-direction: column; gap: 2px; justify-content: center; align-items: center; font-size: .72rem; line-height: 1.05; }
.mc-sb-actions .btn i { font-size: 1rem; }
.mc-sb-qr { display: block; width: 112px; height: 112px; padding: 6px; background: #fff; border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); }
.mc-sb-chart { max-height: 650px; object-fit: contain; }
.mc-sb-wx-label { font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--portal-muted-current); margin-bottom: 5px; }
.mc-sb-wx { white-space: pre-wrap; word-break: break-word; line-height: 1.55; }
.mc-sb-tlr { max-height: 430px; white-space: normal; }
.mc-ofp-modal { max-width: 520px; }
.mc-ofp-paper { max-height: 82vh; overflow: auto; background: #fff; color: #111; font-family: Verdana, Arial, sans-serif; font-size: .76rem; }
/* SimBrief can inject its own light inline text colors. Keep the generated OFP readable on the white paper in every portal theme mode. */
.mc-ofp-paper .mc-ofp-plan-html,
.mc-ofp-paper .mc-ofp-plan-html * { color: #111 !important; }
.mc-ofp-edit-modal { max-width: 1040px; }
.mc-sb-editor { width: 100%; height: 82vh; display: block; border: 0; }
[data-bs-theme="dark"] .mc-sb-accordion .table,
[data-theme="dark"] .mc-sb-accordion .table { color: var(--portal-text-current); }
@media (max-width: 1199.98px) {
  .mc-sb-actions { position: static !important; display: flex; flex-wrap: wrap; justify-content: flex-start; }
  .mc-sb-actions .btn { width: auto !important; min-width: 84px; min-height: 40px; flex-direction: row; gap: 6px; }
  .mc-sb-qr { width: 92px; height: 92px; }
}
@media (max-width: 575.98px) {
  .mc-sb-accordion .accordion-body { padding: 8px; }
  .mc-sb-stat { min-height: 74px; padding: 9px 7px; }
  .mc-ofp-modal { margin: 8px; }
}

/* MercargoPortal 1.3.0 ----------------------------------------------------- */
:root {
  --bs-success: var(--portal-success);
  --bs-warning: var(--portal-warning);
  --bs-danger: var(--portal-danger);
  --bs-info: var(--portal-info);
}

h1 { font-size: calc(2rem * var(--portal-heading-scale)); }
h2 { font-size: calc(1.65rem * var(--portal-heading-scale)); }
h3 { font-size: calc(1.35rem * var(--portal-heading-scale)); }
h4 { font-size: calc(1.18rem * var(--portal-heading-scale)); }
h5 { font-size: calc(1.05rem * var(--portal-heading-scale)); }
h6 { font-size: calc(.95rem * var(--portal-heading-scale)); }
.mc-page-title h1, .mc-profile-copy h1, .mc-dashboard-head h1 { font-size: calc(2rem * var(--portal-heading-scale)); }
.mc-panel-head h3 { font-size: calc(1rem * var(--portal-heading-scale)); }

.portal-header, .portal-sidebar { color: var(--portal-nav-text); }
.portal-top-link, .portal-nav-item, .portal-login-link, .portal-account-btn { color: var(--portal-nav-text); font-size: var(--portal-font-size-nav); }
.portal-top-link:hover, .portal-top-link:focus, .portal-top-link.active, .portal-desktop-nav .dropdown.show > .portal-top-link,
.portal-nav-item:hover, .portal-nav-item.active, .portal-login-link:hover { color: var(--portal-nav-text); }
.portal-utc, .portal-account-btn small, .portal-header-context { color: var(--portal-nav-muted); }
.portal-account-btn strong { color: var(--portal-nav-text); }
.portal-icon-btn { color: var(--portal-nav-text); }
.portal-desktop-nav { font-size: var(--portal-font-size-nav); }
.portal-sidebar-label, .portal-mobile-label {
  color: var(--portal-nav-muted);
  font-size: .68em;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 10px 11px 4px;
}
.portal-mobile-label { color: var(--portal-muted-current); padding-left: 12px; }

.bg-success, .text-bg-success { background-color: var(--portal-success) !important; }
.bg-warning, .text-bg-warning { background-color: var(--portal-warning) !important; }
.bg-danger, .text-bg-danger { background-color: var(--portal-danger) !important; }
.bg-info, .text-bg-info { background-color: var(--portal-info) !important; }
.text-success { color: var(--portal-success) !important; }
.text-warning { color: var(--portal-warning) !important; }
.text-danger { color: var(--portal-danger) !important; }
.text-info { color: var(--portal-info) !important; }
.btn-success { --bs-btn-bg: var(--portal-success); --bs-btn-border-color: var(--portal-success); }
.btn-warning { --bs-btn-bg: var(--portal-warning); --bs-btn-border-color: var(--portal-warning); }
.btn-danger { --bs-btn-bg: var(--portal-danger); --bs-btn-border-color: var(--portal-danger); }
.btn-info { --bs-btn-bg: var(--portal-info); --bs-btn-border-color: var(--portal-info); }

.portal-footer {
  gap: 18px;
  flex-wrap: wrap;
  padding: 12px 20px;
  min-height: 58px;
}
.portal-vatsim-footer { display: inline-flex; align-items: center; }
.portal-vatsim-footer img { width: 78px; height: 37px; object-fit: contain; display: block; }

/* Landing: video-first, no marketing copy */
.mc-landing-media {
  position: relative;
  min-height: clamp(400px, 62vh, 690px);
  margin: -24px -28px 0;
  overflow: hidden;
  background: var(--portal-dark-page);
  border-bottom: 3px solid var(--portal-accent);
}
.mc-landing-video-layer, .mc-landing-video-layer video, .mc-landing-video-layer iframe, .mc-landing-video-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.mc-landing-video-layer video { object-fit: cover; }
.mc-landing-video-layer iframe { border: 0; object-fit: cover; pointer-events: none; transform: scale(1.01); }
.mc-landing-video-fallback { background: var(--portal-bg-image) center / cover no-repeat; }
.mc-landing-video-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(var(--portal-primary-rgb), calc(var(--portal-video-overlay-opacity) * .22)), rgba(var(--portal-primary-rgb), var(--portal-video-overlay-opacity))); }
.mc-landing-video-actions {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: clamp(30px, 7vh, 72px);
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  width: min(92%, 760px);
}
.mc-landing-video-actions .btn { min-width: 190px; padding: .72em 1.35em; backdrop-filter: blur(5px); }
.mc-new-pilot-avatar { width: 58px; height: 58px; flex: 0 0 58px; border-radius: calc(var(--portal-radius) * 1.1); object-fit: cover; object-position: center; }
.mc-new-pilot-card { overflow: hidden; }
.mc-landing-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 13px; }
.mc-vatsim-partner { display: flex; align-items: center; justify-content: center; padding: 34px 0 8px; }
.mc-vatsim-partner a { display: inline-flex; padding: 0; border: 0; border-radius: 0; background: transparent; }
.mc-vatsim-partner img { width: 142px; height: 67px; object-fit: contain; display: block; }

/* Login: both logos remain visible at top-left */
.mc-auth-page { position: relative; margin: 0; min-height: 100vh; grid-template-columns: minmax(0,1.08fr) minmax(420px,.72fr); }
.mc-auth-visual { min-height: 100vh; background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .32)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .13))), var(--portal-bg-image) center / cover no-repeat; padding: 0; }
.mc-auth-panel { min-height: 100vh; padding: 90px 42px 42px; }
.mc-auth-brand-row {
  position: absolute;
  z-index: 10;
  top: 24px;
  left: 26px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.mc-auth-brand-logo, .mc-auth-vatsim-logo {
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border-radius: calc(var(--portal-radius) * .9);
  background: color-mix(in srgb, var(--portal-surface-current) 92%, transparent);
  box-shadow: 0 5px 18px rgba(0,0,0,.12);
}
.mc-auth-brand-logo img { max-width: 188px; max-height: 48px; object-fit: contain; }
.mc-auth-vatsim-logo img { width: 92px; height: 44px; object-fit: contain; }
.mc-auth-mobile-logo, .mc-auth-brand, .mc-auth-tagline { display: none !important; }
.portal-auth-theme { position:absolute; top:24px; right:24px; z-index:11; }

/* Fast flight and roster filters */
.mc-flight-quick-search, .mc-roster-search { max-width: 920px; }
.mc-wide-fleet { width:90vw; max-width:90vw; margin-left:calc(50% - 45vw); }
@media (max-width:991.98px) { .mc-wide-fleet { width:100%; max-width:100%; margin-left:0; } }
.mc-flight-quick-search small { display: block; margin-top: 6px; padding-left: 2px; }
.mc-flight-card.d-none { display: none !important; }

/* Roster media is normalized regardless of source dimensions */
.mc-roster-table { min-width: 1120px; }
.mc-roster-avatar { width: 64px !important; height: 64px !important; min-width: 64px; border-radius: calc(var(--portal-radius) * 1.05); object-fit: cover !important; object-position: center; display: block; }
.mc-roster-person { min-width: 190px; }
.mc-roster-subtext { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-roster-logo-wrap { width: 92px; height: 42px; display: flex; align-items: center; justify-content: flex-start; overflow: hidden; }
.mc-roster-airline-logo { width: 88px !important; height: 38px !important; object-fit: contain !important; object-position: left center; display: block; }
.mc-roster-rank-wrap { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px; overflow: hidden; }
.mc-roster-rank-logo { width: 38px !important; height: 38px !important; object-fit: contain !important; display: block; }

/* Profile economy */
.mc-economy-balance { display:flex; align-items:baseline; gap:9px; }
.mc-economy-balance small { color: var(--portal-muted-current); font-weight: 600; }
.mc-economy-balance strong { font-family: var(--portal-font-headings); font-size: calc(1.25rem * var(--portal-heading-scale)); color: var(--portal-primary); }
.mc-economy-table th:first-child, .mc-economy-table td:first-child { padding-left: 16px; }
.mc-economy-table th:last-child, .mc-economy-table td:last-child { padding-right: 16px; }

/* PIREP detail: all sections are Bootstrap collapses, initially closed */
.mc-report-accordion { display: grid; gap: 10px; margin-top: 18px; }
.mc-report-accordion .accordion-item { border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius) !important; overflow: hidden; background: var(--portal-surface-current); color: var(--portal-text-current); }
.mc-report-accordion .accordion-button { background: var(--portal-surface-current); color: var(--portal-text-current); font-family: var(--portal-font-headings); font-weight: 650; box-shadow: none; }
.mc-report-accordion .accordion-button:not(.collapsed) { background: rgba(var(--portal-primary-rgb), .07); color: var(--portal-primary); box-shadow: none; }
.mc-report-accordion .accordion-button::after { filter: none; }
[data-bs-theme="dark"] .mc-report-accordion .accordion-button::after { filter: invert(1) grayscale(1); }
.mc-report-accordion .accordion-body { background: var(--portal-surface-current); }
.mc-detail-wide { grid-column: 1 / -1; }
.mc-pirep-map { width:100%; height:min(68vh, 690px); min-height:420px; }
.mc-pirep-ofp { max-height: 72vh; min-height: 260px; }

@media (max-width: 991.98px) {
  .mc-landing-media { margin: -20px -18px 0; min-height: 500px; }
  .mc-landing-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mc-auth-page { grid-template-columns: 1fr; }
  .mc-auth-visual { display: none; }
  .mc-auth-panel { padding: 116px 24px 36px; min-height: 100vh; background: linear-gradient(rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity))), var(--portal-bg-image) center / cover no-repeat; }
  .mc-auth-box { background: var(--portal-surface-current); border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); padding: 24px; box-shadow: var(--portal-shadow); }
  .mc-auth-brand-row { top: 20px; left: 20px; }
  .mc-auth-brand-logo, .mc-auth-vatsim-logo { height: 60px; }
  .mc-auth-brand-logo img { max-width: 160px; max-height: 43px; }
  .mc-auth-vatsim-logo img { width: 82px; height: 39px; }
}

@media (max-width: 575.98px) {
  .mc-landing-media { margin: -17px -12px 0; min-height: 440px; }
  .mc-landing-video-actions { bottom: 24px; width: calc(100% - 28px); gap: 8px; }
  .mc-landing-video-actions .btn { min-width: 0; flex: 1 1 150px; }
  .mc-landing-stats { grid-template-columns: 1fr 1fr; }
  .mc-auth-brand-row { left: 12px; right: 58px; top: 12px; gap: 7px; }
  .mc-auth-brand-logo, .mc-auth-vatsim-logo { height: 52px; padding: 6px 8px; }
  .mc-auth-brand-logo img { max-width: 132px; max-height: 36px; }
  .mc-auth-vatsim-logo img { width: 67px; height: 32px; }
  .portal-auth-theme { top: 19px; right: 12px; }
  .mc-auth-panel { padding: 86px 12px 24px; }
  .mc-auth-box { padding: 20px 16px; }
  .mc-pirep-map { min-height: 350px; height: 55vh; }
}

/* MercargoPortal 1.4 refinements */
.portal-vatsim-footer { padding: 0; background: none; border: 0; box-shadow: none; }
.portal-vatsim-footer img { width: var(--portal-vatsim-footer-width, 78px); height: auto; max-height: none; object-fit: contain; display: block; }

.mc-vatsim-partner a { display: inline-block; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.mc-vatsim-partner img { width: var(--portal-vatsim-landing-width, 142px); height: auto; max-height: none; object-fit: contain; display: block; }

.mc-landing-media { height: var(--portal-landing-video-height, 620px); min-height: 0; }
.mc-landing-video-layer video { object-fit: var(--portal-landing-video-fit, cover); }
.mc-landing-video-layer iframe { pointer-events: none; border: 0; }

.mc-profile-stats { grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); }
.mc-stat-card-link { color: inherit; text-decoration: none; }
.mc-stat-card-link:hover, .mc-stat-card-link:focus { color: inherit; text-decoration: none; }
.mc-stat-card-action { appearance: none; width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: transform .14s ease, border-color .14s ease, background-color .14s ease; }
.mc-stat-card-action:hover { transform: translateY(-1px); border-color: rgba(var(--portal-primary-rgb), .38) !important; background: rgba(var(--portal-primary-rgb), .045); }
.mc-stat-card-action:focus-visible { outline: 3px solid rgba(var(--portal-primary-rgb), .22); outline-offset: 2px; }
.mc-stat-money { font-size: clamp(1rem, 1.4vw, 1.25rem); overflow-wrap: anywhere; }
.mc-balance-modal-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; background:rgba(var(--portal-primary-rgb),.055); border-bottom:1px solid var(--portal-border-current); }
.mc-balance-modal-summary span { color:var(--portal-muted-current); font-weight:700; }
.mc-balance-modal-summary strong { font-family:var(--portal-font-headings); font-size:1.45rem; color:var(--portal-primary); }

.mc-login-main-logo { margin: 0 0 28px; }
.mc-login-main-logo a { display:inline-block; padding:0; margin:0; background:transparent; border:0; box-shadow:none; }
.mc-login-main-logo img { display:block; width:min(300px, 82%); height:auto; max-height:120px; object-fit:contain; object-position:left center; }
.mc-login-main-logo .mc-login-logo-dark { display:none; }
[data-bs-theme="dark"] .mc-login-main-logo .mc-login-logo-light { display:none; }
[data-bs-theme="dark"] .mc-login-main-logo .mc-login-logo-dark { display:block; }
.mc-auth-vatsim-corner { position:absolute; z-index:12; right:28px; bottom:24px; display:block; padding:0; background:transparent; border:0; box-shadow:none; line-height:0; }
.mc-auth-vatsim-corner img { width:var(--portal-vatsim-login-width,112px); height:auto; display:block; object-fit:contain; }
.mc-auth-panel { padding-bottom: max(82px, calc(var(--portal-vatsim-login-width, 112px) * .48 + 34px)); }

.mc-roster-table { min-width: 970px; }
.mc-roster-airline-logo, .mc-roster-logo-wrap { display:none !important; }

@media (max-width: 991.98px) {
  .mc-landing-media { height: var(--portal-landing-video-height-mobile, 440px); min-height: 0; }
  .mc-auth-panel { padding: 30px 20px max(86px, calc(var(--portal-vatsim-login-width, 112px) * .48 + 34px)); }
  .mc-auth-vatsim-corner { right:20px; bottom:18px; }
}
@media (max-width: 575.98px) {
  .mc-landing-media { height: var(--portal-landing-video-height-mobile, 440px); min-height: 0; }
  .mc-login-main-logo img { width:min(250px, 84%); }
  .mc-auth-vatsim-corner { right:14px; bottom:14px; }
  .mc-auth-vatsim-corner img { max-width:42vw; }
}

/* Dashboard operational modules */
.portal-dashboard-widget-grid { display:grid; grid-template-columns:1fr; gap:16px; min-width:0; }
.portal-dashboard-widget-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-module-widget { min-width:0; }
.portal-module-widget > .card,
.portal-module-widget > .row,
.portal-module-widget .card { margin-bottom:0 !important; }
.portal-module-widget .card { border-color:var(--portal-border-current); background:var(--portal-surface-current); }
.portal-module-widget .card-header { background:transparent; color:var(--portal-text-current); border-color:var(--portal-border-current); }
.portal-module-widget .table { color:var(--portal-text-current); }
.portal-vatsim-online { min-width:0; overflow:hidden; }

.mc-last-pirep { min-width:0; }
.mc-last-pirep-route { display:grid; grid-template-columns:minmax(0,1fr) minmax(130px,.5fr) minmax(0,1fr); align-items:center; gap:18px; padding:18px 20px; border-bottom:1px solid var(--portal-border-current); }
.mc-last-pirep-route small { display:block; color:var(--portal-muted-current); text-transform:uppercase; letter-spacing:.05em; font-size:.72rem; font-weight:700; }
.mc-last-pirep-route strong { display:block; font-family:var(--portal-font-headings); font-size:1.45rem; line-height:1.1; }
.mc-last-pirep-route span { display:block; color:var(--portal-muted-current); font-size:.86rem; }
.mc-last-pirep-flightline { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; color:var(--portal-primary); }
.mc-last-pirep-flightline::before { content:""; position:absolute; z-index:0; left:0; right:0; top:50%; height:1px; background:var(--portal-border-current); }
.mc-last-pirep-flightline span,
.mc-last-pirep-flightline i { position:relative; z-index:1; background:var(--portal-surface-current); padding:0 7px; }
.mc-last-pirep-flightline span { color:var(--portal-muted-current); font-size:.78rem; font-weight:700; }
.mc-last-pirep-flightline i { font-size:1.15rem; }
.mc-last-pirep-table thead th { font-size:.72rem; text-transform:uppercase; letter-spacing:.035em; color:var(--portal-muted-current); white-space:nowrap; }
.mc-last-pirep-comments { border-top:1px solid var(--portal-border-current); padding:10px 18px; display:grid; gap:7px; font-size:.9rem; }
.mc-last-pirep-footer { border-top:1px solid var(--portal-border-current); padding:12px 18px; text-align:right; }

@media (max-width: 991.98px) {
  .portal-dashboard-widget-grid-2 { grid-template-columns:1fr; }
}
@media (max-width: 575.98px) {
  .mc-last-pirep-route { grid-template-columns:1fr; gap:10px; }
  .mc-last-pirep-route .text-end { text-align:left !important; }
  .mc-last-pirep-flightline { flex-direction:row; justify-content:flex-start; }
  .mc-last-pirep-flightline::before { display:none; }
  .mc-last-pirep-flightline span,
  .mc-last-pirep-flightline i { background:transparent; padding:0; }
}

/* Dashboard maps, weather and airport information - v1.5 */
.portal-dashboard-map-actions { display:grid; gap:10px; }
.mc-dashboard-map-button { width:100%; display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:var(--portal-surface-current); color:var(--portal-text-current); text-align:left; transition:border-color .16s ease, transform .16s ease, background .16s ease; }
.mc-dashboard-map-button:hover { border-color:var(--portal-primary); background:rgba(var(--portal-primary-rgb),.035); transform:translateY(-1px); }
.mc-dashboard-map-button .mc-stat-icon { flex:0 0 auto; margin:0; }
.mc-dashboard-map-button > span:nth-child(2) { display:grid; line-height:1.15; }
.mc-dashboard-map-button strong { font-family:var(--portal-font-headings); font-size:1rem; }
.mc-dashboard-map-button small { margin-top:4px; color:var(--portal-muted-current); }
.mc-dashboard-modal-map { width:100%; height:min(70vh, 650px); min-height:420px; background:var(--portal-page-current); }
.mc-map-stats { justify-content:flex-end; gap:14px; font-size:.82rem; color:var(--portal-muted-current); }
.mc-map-stats strong { color:var(--portal-text-current); }
.mc-fleet-popup-row { padding:2px 0; }
.mc-weather-disposable .mc-panel-body { overflow:hidden; }
.mc-metartaf-frame { display:block; width:100%; height:255px; pointer-events:none; text-decoration:none; color:var(--portal-muted-current); padding:12px; }
.mc-metartaf-links { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 10px; border-top:1px solid var(--portal-border-current); font-size:.76rem; }
.mc-airport-info-title { display:flex; align-items:baseline; gap:9px; margin-bottom:12px; }
.mc-airport-info-title strong { font-family:var(--portal-font-headings); font-size:1.35rem; color:var(--portal-primary); }
.mc-airport-info-title span { color:var(--portal-muted-current); }
.mc-airport-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.mc-airport-info-grid > div { padding:8px 10px; border:1px solid var(--portal-border-current); border-radius:calc(var(--portal-radius) * .75); min-width:0; }
.mc-airport-info-grid small { display:block; color:var(--portal-muted-current); font-size:.72rem; }
.mc-airport-info-grid strong { display:block; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:575.98px) {
  .mc-dashboard-modal-map { min-height:360px; height:62vh; }
  .mc-map-stats { justify-content:flex-start; }
  .mc-airport-info-grid { grid-template-columns:1fr; }
}

/* ============================================================
   MercargoPortal 1.6.0 - configurable component palette
   ============================================================ */
:root {
  --portal-heading-current: var(--portal-heading);
  --portal-link-current: var(--portal-link);
  --portal-link-hover-current: var(--portal-link-hover);
  --portal-panel-header-bg-current: var(--portal-panel-header-bg);
  --portal-panel-header-text-current: var(--portal-panel-header-text);
  --portal-input-bg-current: var(--portal-input-bg);
  --portal-input-text-current: var(--portal-input-text);
  --portal-table-header-bg-current: var(--portal-table-header-bg);
  --portal-table-header-text-current: var(--portal-table-header-text);
  --portal-table-stripe-current: var(--portal-table-stripe);
  --portal-dropdown-bg-current: var(--portal-dropdown-bg);
  --portal-dropdown-text-current: var(--portal-dropdown-text);
  --portal-card-bg-current: var(--portal-card-bg);
  --portal-card-text-current: var(--portal-card-text);
  --portal-stat-bg-current: var(--portal-stat-bg);
  --portal-stat-text-current: var(--portal-stat-text);
  --portal-stat-icon-bg-current: var(--portal-stat-icon-bg);
  --portal-footer-bg-current: var(--portal-footer-bg);
  --portal-footer-text-current: var(--portal-footer-text-color);
  --portal-badge-bg-current: var(--portal-badge-bg);
  --portal-badge-text-current: var(--portal-badge-text);
}
[data-bs-theme="dark"] {
  --portal-heading-current: var(--portal-dark-heading);
  --portal-link-current: var(--portal-dark-link);
  --portal-link-hover-current: var(--portal-dark-link-hover);
  --portal-panel-header-bg-current: var(--portal-dark-panel-header-bg);
  --portal-panel-header-text-current: var(--portal-dark-panel-header-text);
  --portal-input-bg-current: var(--portal-dark-input-bg);
  --portal-input-text-current: var(--portal-dark-input-text);
  --portal-table-header-bg-current: var(--portal-dark-table-header-bg);
  --portal-table-header-text-current: var(--portal-dark-table-header-text);
  --portal-table-stripe-current: var(--portal-dark-table-stripe);
  --portal-dropdown-bg-current: var(--portal-dark-dropdown-bg);
  --portal-dropdown-text-current: var(--portal-dark-dropdown-text);
  --portal-card-bg-current: var(--portal-dark-card-bg);
  --portal-card-text-current: var(--portal-dark-card-text);
  --portal-stat-bg-current: var(--portal-dark-stat-bg);
  --portal-stat-text-current: var(--portal-dark-stat-text);
  --portal-stat-icon-bg-current: var(--portal-dark-stat-icon-bg);
  --portal-footer-bg-current: var(--portal-dark-footer-bg);
  --portal-footer-text-current: var(--portal-dark-footer-text-color);
  --portal-badge-bg-current: var(--portal-dark-badge-bg);
  --portal-badge-text-current: var(--portal-dark-badge-text);
}

a { color: var(--portal-link-current); }
a:hover, a:focus { color: var(--portal-link-hover-current); }
h1,h2,h3,h4,h5,h6 { color: var(--portal-heading-current); }
.card,.mc-panel { background: var(--portal-card-bg-current); color: var(--portal-card-text-current); }
.card-header,.mc-panel-head { background: var(--portal-panel-header-bg-current); color: var(--portal-panel-header-text-current); }
.card-header h1,.card-header h2,.card-header h3,.card-header h4,.card-header h5,.card-header h6,
.mc-panel-head h1,.mc-panel-head h2,.mc-panel-head h3,.mc-panel-head h4,.mc-panel-head h5,.mc-panel-head h6 { color: inherit; }
.form-control,.form-select,.ts-control,.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple { background: var(--portal-input-bg-current) !important; color: var(--portal-input-text-current) !important; border-color: var(--portal-border-current) !important; }
.form-control:focus,.form-select:focus,.ts-control.focus { background: var(--portal-input-bg-current) !important; color: var(--portal-input-text-current) !important; }
.form-control option,.form-select option { background: var(--portal-input-bg-current); color: var(--portal-input-text-current); }
.portal-dropdown,.dropdown-menu,.select2-dropdown,.ts-dropdown { background: var(--portal-dropdown-bg-current) !important; color: var(--portal-dropdown-text-current) !important; border-color: var(--portal-border-current) !important; }
.portal-dropdown .dropdown-item,.dropdown-menu .dropdown-item,.select2-results__option,.ts-dropdown .option { color: var(--portal-dropdown-text-current) !important; }
.portal-dropdown .dropdown-item:hover,.dropdown-menu .dropdown-item:hover,.select2-results__option--highlighted,.ts-dropdown .active { background: rgba(var(--portal-primary-rgb),.13) !important; color: var(--portal-link-current) !important; }
.table thead th { background: var(--portal-table-header-bg-current) !important; color: var(--portal-table-header-text-current) !important; }
.table-striped>tbody>tr:nth-of-type(odd)>* { --bs-table-accent-bg: var(--portal-table-stripe-current); background: var(--portal-table-stripe-current); color: var(--portal-text-current); }
.mc-stat-card { background: var(--portal-stat-bg-current); color: var(--portal-stat-text-current); }
.mc-stat-card .mc-stat-value { color: var(--portal-stat-text-current); }
.mc-stat-card .mc-stat-icon { background: var(--portal-stat-icon-bg-current); }
.portal-footer { background: var(--portal-footer-bg-current); color: var(--portal-footer-text-current); }
.badge:not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info):not(.text-bg-success):not(.text-bg-danger):not(.text-bg-warning):not(.text-bg-info), .mc-status-badge { background: var(--portal-badge-bg-current) !important; color: var(--portal-badge-text-current) !important; }
.btn-primary { --bs-btn-color: var(--portal-primary-button-text); --bs-btn-hover-color: var(--portal-primary-button-text); }
.btn-accent,.btn-warning { color: var(--portal-accent-button-text) !important; }
.portal-nav-item.active,.portal-mobile-links a.active { background: var(--portal-nav-active-bg) !important; color: var(--portal-nav-active-text) !important; }

/* Module compatibility: keep DBasic / DSpecial widgets readable in both modes */
.portal-module-widget { min-width: 0; }
.portal-module-widget > .card,
.portal-module-widget .card,
.portal-module-widget .widget,
.portal-module-widget .card-body,
.portal-module-widget .card-footer { color: var(--portal-card-text-current); border-color: var(--portal-border-current); }
.portal-module-widget .card { background: var(--portal-card-bg-current) !important; }
.portal-module-widget .card-header { background: var(--portal-panel-header-bg-current) !important; color: var(--portal-panel-header-text-current) !important; }
.portal-module-widget .table { --bs-table-color: var(--portal-card-text-current); --bs-table-border-color: var(--portal-border-current); }
.portal-module-widget .text-dark { color: var(--portal-card-text-current) !important; }
.portal-module-widget a:not(.btn) { color: var(--portal-link-current); }
.portal-module-widget a:not(.btn):hover { color: var(--portal-link-hover-current); }
.portal-module-widget .bg-light { background: var(--portal-table-stripe-current) !important; color: var(--portal-card-text-current) !important; }
.portal-module-widget .select2-container { width: 100% !important; }
/* Pilot names are intentionally shown in full in Disposable widgets. */
.portal-module-widget .mc-leaderboard-table th:first-child,
.portal-module-widget .mc-leaderboard-table td:first-child { white-space: normal; min-width: 0; }
.portal-module-widget .mc-leaderboard-table td:first-child a { overflow-wrap: anywhere; }

.select2-container--default .select2-selection--single { min-height: 40px; display:flex; align-items:center; border-radius:calc(var(--portal-radius)*.7); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--portal-input-text-current) !important; line-height:38px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height:38px; }

/* Complete operations dashboard */
.portal-dashboard-full { margin: 0 0 16px; }
.mc-section-label { margin: 0 0 7px; color: var(--portal-muted-current); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.portal-online-pilots .card { margin-bottom:0 !important; }
.portal-flight-board { border-bottom:1px solid var(--portal-border-current); }
.portal-live-map-under-board { min-height:390px; background:var(--portal-surface-current); }
.portal-dashboard-widget-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-nav-menu-wide { min-width:260px; max-height:min(70vh,620px); overflow-y:auto; }
.mc-airport-info-title { display:grid; margin-bottom:12px; padding:10px 11px; border:1px solid var(--portal-border-current); border-radius:calc(var(--portal-radius)*.75); background:rgba(var(--portal-primary-rgb),.04); }
.mc-airport-info-title strong { color:var(--portal-link-current); font-size:1.05rem; }
.mc-airport-info-title span { color:var(--portal-muted-current); }
.mc-map-popup-airport { font-size:1rem; font-weight:800; }
.leaflet-popup-content-wrapper,.leaflet-popup-tip { background:var(--portal-card-bg-current); color:var(--portal-card-text-current); }
.leaflet-popup-content a { color:var(--portal-link-current); }

/* Airport operational page */
.mc-airport-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; }
.mc-airport-stat-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.mc-airport-stat { padding:13px 14px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:var(--portal-stat-bg-current); color:var(--portal-stat-text-current); }
.mc-airport-stat small { display:block; color:var(--portal-muted-current); font-size:.73rem; text-transform:uppercase; letter-spacing:.04em; }
.mc-airport-stat strong { display:block; margin-top:5px; font-size:1rem; }
.mc-airport-detail-list { display:grid; gap:0; }
.mc-airport-detail-list>div { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid var(--portal-border-current); }
.mc-airport-detail-list>div:last-child { border-bottom:0; }
.mc-airport-detail-list span { color:var(--portal-muted-current); }
.mc-airport-detail-list strong { text-align:right; }

@media (max-width: 1100px) {
  .portal-dashboard-widget-grid-3 { grid-template-columns:1fr; }
  .mc-airport-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .mc-airport-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mc-airport-hero { align-items:flex-start; flex-direction:column; }
}

/* MercargoPortal 1.6.1 · overrides for DisposableBasic pages */
.mc-rank-image {
  width: auto !important;
  height: auto !important;
  max-width: 72px !important;
  max-height: 48px !important;
  object-fit: contain !important;
  display: inline-block;
}
.mc-award-image {
  width: 110px !important;
  height: 110px !important;
  max-width: 110px !important;
  max-height: 110px !important;
  object-fit: contain !important;
  display: inline-block;
}
.mc-wide-reports {
  width: 90vw;
  max-width: 90vw;
  margin-left: calc(50% - 45vw);
}
.mc-wide-reports .table {
  width: 100%;
}
@media (max-width: 767.98px) {
  .mc-award-image { width: 88px !important; height: 88px !important; }
}

/* MercargoPortal 1.6.31 · visual normalization and tour refinements */
:root { --portal-icon-current: var(--portal-icon-color); }
[data-bs-theme="dark"] { --portal-icon-current: var(--portal-dark-icon-color); }

.fi {
  width: 1.05em !important;
  line-height: .76em !important;
  background-size: contain !important;
  vertical-align: -.04em;
}
.portal-icon-btn .fi { width: 1em !important; line-height: .72em !important; }

.mc-panel-head > h3 > i,
.card-header h1 > i, .card-header h2 > i, .card-header h3 > i,
.card-header h4 > i, .card-header h5 > i, .card-header h6 > i,
.mc-stat-icon > i,
.portal-quick-links a > i:first-child,
.mc-dashboard-map-button .mc-stat-icon > i,
.portal-module-widget .card-header i,
.mc-section-label > i {
  color: var(--portal-icon-current) !important;
}

.portal-dashboard-widget-grid-1 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}
.portal-dashboard-widget-grid > .portal-module-widget:only-child { grid-column: 1 / -1; }

.mc-dashboard-collapsible .mc-collapse-trigger {
  width: 100%;
  border: 0;
  text-align: left;
  background: var(--portal-panel-header-bg-current);
  color: var(--portal-panel-header-text-current);
  cursor: pointer;
}
.mc-dashboard-collapsible .mc-collapse-chevron { transition: transform .18s ease; }
.mc-dashboard-collapsible .mc-collapse-trigger:not(.collapsed) .mc-collapse-chevron { transform: rotate(180deg); }

.mc-tour-award-showcase {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border-bottom: 1px solid var(--portal-border-current);
}
.mc-tour-award-image {
  width: 96px !important;
  height: 96px !important;
  max-width: 96px !important;
  max-height: 96px !important;
  object-fit: contain !important;
  flex: 0 0 96px;
}
.mc-tour-award-showcase strong { color: var(--portal-heading-current); font-size: 1.08rem; }
.mc-tour-award-showcase p { color: var(--portal-muted-current); margin: 4px 0 0; }
.mc-tour-progress { height: 18px; background: var(--portal-table-stripe-current); }
.mc-tour-progress .progress-bar { color: var(--portal-primary-button-text) !important; font-weight: 700; }
.mc-tour-progress .bg-warning { color: var(--portal-accent-button-text) !important; }

.portal-module-widget,
.portal-module-widget .card,
.portal-module-widget .card-body,
.portal-module-widget .card-footer,
.portal-module-widget table,
.portal-module-widget td,
.portal-module-widget th {
  color: var(--portal-card-text-current);
}
.portal-module-widget .card-header,
.portal-module-widget .card-header h1,
.portal-module-widget .card-header h2,
.portal-module-widget .card-header h3,
.portal-module-widget .card-header h4,
.portal-module-widget .card-header h5,
.portal-module-widget .card-header h6 {
  color: var(--portal-panel-header-text-current) !important;
}
.portal-module-widget [style*="color: black"],
.portal-module-widget [style*="color:black"],
.portal-module-widget .text-black {
  color: var(--portal-primary-button-text) !important;
}
.portal-module-widget .bg-warning.text-black,
.portal-module-widget .bg-warning .text-black,
.portal-module-widget .progress-bar.bg-warning a {
  color: var(--portal-accent-button-text) !important;
}
.portal-module-widget .progress-bar a { color: inherit !important; }

.pe-front {
  --pe-page-text: var(--portal-text-current) !important;
  --pe-heading-text: var(--portal-heading-current) !important;
  --pe-card-text: var(--portal-card-text-current) !important;
  --pe-card-header-text: var(--portal-panel-header-text-current) !important;
  --pe-muted-text: var(--portal-muted-current) !important;
  --pe-card-muted-text: var(--portal-muted-current) !important;
  --pe-link-text: var(--portal-link-current) !important;
  --pe-currency-badge-text: var(--portal-badge-text-current) !important;
  --pe-currency-badge-bg: var(--portal-badge-bg-current) !important;
}
.pe-front .table,
.pe-front .table td,
.pe-front .table th,
.pe-front .card-body,
.pe-front .card-footer { color: var(--portal-card-text-current) !important; }

/* MercargoPortal 1.6.3 · dashboard live-map + weather sizing hotfix */
.mc-weather-disposable .mc-panel-body {
  overflow: visible !important;
}
.mc-weather-disposable .mc-metartaf-frame {
  min-height: 335px !important;
  height: 335px !important;
  padding: 10px 12px 4px !important;
}
.mc-weather-disposable .mc-metartaf-frame iframe,
.mc-weather-disposable iframe[id*="metartaf"],
.mc-weather-disposable iframe[src*="metar-taf.com"] {
  min-height: 325px !important;
  height: 325px !important;
  width: 100% !important;
}
.mc-weather-disposable .mc-metartaf-links {
  position: relative;
  z-index: 2;
  background: var(--portal-surface-current);
}

/* MercargoPortal 1.6.4 · compact flags across core and addon pages */
img[src*="/image/flags_new/"],
img[src*="image/flags_new/"],
.img-h20,
.img-h25,
.img-mh20,
.img-mh25 {
  width: auto !important;
  height: 18px !important;
  max-width: 28px !important;
  max-height: 18px !important;
  object-fit: contain !important;
  vertical-align: middle !important;
}

/* DisposableSpecial tour legs used intrinsic flag dimensions when the helper class had no CSS. */
.mc-portal-main .table img[src*="flags_new"],
.mc-portal-content .table img[src*="flags_new"],
main .table img[src*="flags_new"] {
  width: auto !important;
  height: 18px !important;
  max-width: 28px !important;
  max-height: 18px !important;
  object-fit: contain !important;
}

/* flag-icons package (language/roster/profile) */
.fi {
  font-size: .82rem !important;
  line-height: 1 !important;
}


/* MercargoPortal 1.6.11 - scoped briefing/roster/map fixes */
#sbapiform .card {
  border: 1px solid var(--portal-border-current);
  border-radius: 14px;
  background: var(--portal-surface-current);
  box-shadow: var(--portal-shadow-sm);
  overflow: hidden;
}
#sbapiform .card-header.bg-primary {
  background: var(--portal-primary) !important;
  border-bottom: 0;
  padding: .8rem 1rem;
  font-weight: 700;
}
#sbapiform .card-body { padding: 1rem; }
#sbapiform label {
  display: block;
  margin-bottom: .35rem;
  color: var(--portal-muted-current);
  font-size: .8rem;
  font-weight: 700;
}
#sbapiform .form-control,
#sbapiform .form-select { min-height: 42px; }
#sbapiform .mc-sb-time-input,
#sbapiform .mc-sb-date-input {
  border-color: var(--portal-primary);
  font-weight: 700;
}
.mc-roster-table { min-width: 1280px; }
.mc-map-modal { z-index: 1060; }
.mc-map-modal .modal-dialog { max-width: min(1500px, 96vw); }
.mc-map-modal .modal-content {
  overflow: hidden;
  border: 1px solid var(--portal-border-current);
  background: var(--portal-surface-current);
}
.mc-map-modal-body {
  position: relative;
  min-height: 68vh;
  overflow: hidden;
  isolation: isolate;
}
.mc-map-modal-body .leaflet-container,
.mc-map-modal-body [id*="map"],
.mc-map-modal-body .map {
  width: 100% !important;
  min-height: 68vh !important;
  height: 68vh !important;
  position: relative !important;
  z-index: 1 !important;
}
.mc-map-modal-body .leaflet-control-container { position: relative; z-index: 10; }
.mc-tour-map { background: var(--portal-map-canvas-bg); }
[data-bs-theme="dark"] .mc-tour-map { background: var(--portal-dark-map-canvas-bg); }
@media (max-width: 767.98px) {
  .mc-map-modal-body,
  .mc-map-modal-body .leaflet-container,
  .mc-map-modal-body [id*="map"],
  .mc-map-modal-body .map { min-height: 72vh !important; height: 72vh !important; }
}



/* VATSIM / WhazzUp: preserve DisposableBasic data logic, enhance only its check indicators */
.mc-whazzup-table th,
.mc-whazzup-table td { vertical-align: middle; }
.mc-whazzup-status {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .42rem;
  min-height: 25px;
}
.mc-whazzup-orb {
  --mc-whazzup-color: var(--portal-info);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  border-radius: 50%;
  color: #fff;
  font-size: 10px;
  line-height: 1;
  text-shadow: 0 1px 2px rgba(0,0,0,.72);
  background:
    radial-gradient(circle at 27% 21%, rgba(255,255,255,.98) 0 6%, rgba(255,255,255,.56) 7% 14%, transparent 15%),
    radial-gradient(circle at 34% 30%, color-mix(in srgb, var(--mc-whazzup-color) 36%, white) 0 11%, var(--mc-whazzup-color) 43%, color-mix(in srgb, var(--mc-whazzup-color) 73%, black) 78%, color-mix(in srgb, var(--mc-whazzup-color) 43%, black) 100%);
  border: 1px solid color-mix(in srgb, var(--mc-whazzup-color) 68%, black);
  box-shadow:
    inset -5px -6px 8px rgba(0,0,0,.38),
    inset 3px 3px 6px rgba(255,255,255,.27),
    0 3px 6px rgba(0,0,0,.32),
    0 0 0 1px color-mix(in srgb, var(--mc-whazzup-color) 34%, transparent),
    0 0 11px color-mix(in srgb, var(--mc-whazzup-color) 34%, transparent);
  animation: mc-whazzup-orb-pulse var(--mc-whazzup-duration, 2.9s) ease-in-out infinite;
  animation-delay: var(--mc-whazzup-delay, 0s);
  transform: translateZ(0);
}
.mc-whazzup-orb > i { position: relative; z-index: 2; }
.mc-whazzup-orb::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 4px;
  width: 8px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,.78);
  filter: blur(.2px);
  pointer-events: none;
}
.mc-whazzup-orb::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--mc-whazzup-color) 24%, transparent);
  opacity: .44;
  pointer-events: none;
}
.mc-whazzup-orb-airline-missing { --mc-whazzup-color: var(--portal-vatsim-airline-missing); }
.mc-whazzup-orb-pirep-found { --mc-whazzup-color: var(--portal-vatsim-pirep-found); }
.mc-whazzup-orb-pirep-missing { --mc-whazzup-color: var(--portal-vatsim-pirep-missing); }
@keyframes mc-whazzup-orb-pulse {
  0%, 56%, 100% {
    transform: scale(1);
    filter: brightness(1);
  }
  69% {
    transform: scale(1.085);
    filter: brightness(1.15);
  }
}
@media (prefers-reduced-motion: reduce) {
  .mc-whazzup-orb { animation: none !important; }
}

/* Fuel Calculator override */
.mc-fuel-calculator-modal .modal-content { overflow: hidden; }
.mc-fuel-calculator-modal .mc-fuel-result .form-control { font-variant-numeric: tabular-nums; }
.mc-fuel-calculator-modal .input-group-text { min-width: 70px; justify-content: center; }

/* Landing-rate page */
.mc-landing-rate-stat {
  border: 1px solid var(--portal-border-current);
  border-radius: var(--portal-radius);
  background: var(--portal-surface-current);
  padding: .85rem 1rem;
  min-height: 100%;
}
.mc-landing-rate-stat small { color: var(--portal-muted-current); display:block; margin-bottom:.15rem; }
.mc-landing-rate-stat strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.mc-unit-pill {
  display: inline-flex;
  align-items: center;
  padding: .12rem .45rem;
  border-radius: 999px;
  background: var(--portal-badge-bg-current);
  color: var(--portal-badge-text-current);
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}


/* Dashboard operational widgets: preserve DisposableBasic behavior and only normalize the visual shell. */
.portal-dashboard-operation-widget { min-width: 0; height: 100%; position: relative; z-index: 1; }
.portal-dashboard-operation-widget:focus-within { z-index: 40; }
.portal-dashboard-operation-widget > form { height: 100%; margin: 0; overflow: visible !important; }
.portal-dashboard-operation-widget > form > .card { height: 100%; margin-bottom: 0 !important; overflow: visible !important; }
.portal-dashboard-operation-widget .card,
.portal-dashboard-operation-widget .card-body { overflow: visible !important; }

/* Dashboard operational selectors: JumpSeat and TransferAircraft use the same TomSelect visual language.
   The native TransferAircraft select remains the source of truth; TomSelect mirrors it and still emits change events. */
.portal-dashboard-operation-widget .ts-wrapper { width: 100% !important; }
.portal-dashboard-operation-widget .ts-control {
  width: 100% !important;
  min-height: 40px !important;
  border: 1px solid var(--portal-border-current) !important;
  border-radius: calc(var(--portal-radius) * .7) !important;
  background: var(--portal-input-bg-current) !important;
  color: var(--portal-input-text-current) !important;
  box-shadow: none !important;
}
.portal-dashboard-operation-widget .ts-control.focus {
  border-color: var(--portal-secondary) !important;
  box-shadow: 0 0 0 3px rgba(var(--portal-secondary-rgb), .18) !important;
}
.portal-dashboard-operation-widget .ts-control input,
.portal-dashboard-operation-widget .ts-control .item { color: var(--portal-input-text-current) !important; }
.portal-dashboard-operation-widget .ts-control input::placeholder {
  color: var(--portal-muted-current) !important;
  opacity: .78 !important;
}
.portal-dashboard-operation-widget .ts-dropdown {
  z-index: 1200 !important;
  background: var(--portal-dropdown-bg-current) !important;
  color: var(--portal-dropdown-text-current) !important;
  border-color: var(--portal-border-current) !important;
}
.portal-dashboard-operation-widget .ts-dropdown-content {
  max-height: 280px !important;
  overflow-y: auto !important;
}
.portal-dashboard-operation-widget .ts-dropdown .option { color: var(--portal-dropdown-text-current) !important; }
.portal-dashboard-operation-widget .ts-dropdown .active {
  background: rgba(var(--portal-primary-rgb), .13) !important;
  color: var(--portal-link-current) !important;
}
/* Native fallback before TomSelect initializes. */
.portal-dashboard-transfer select#ac_selection {
  display: block;
  width: 100%;
  min-height: 40px;
  height: 40px;
  margin: 0;
  padding: 0 2.25rem 0 .75rem;
  border: 1px solid var(--portal-border-current);
  border-radius: calc(var(--portal-radius) * .7);
  background-color: var(--portal-input-bg-current);
  color: var(--portal-muted-current);
  box-shadow: none;
}
.portal-dashboard-transfer select#ac_selection option {
  background: var(--portal-input-bg-current);
  color: var(--portal-input-text-current);
}

/* Balance modal pagination is fully client-side so changing page never dismisses the modal. */
#portalBalanceModal .mc-balance-pagination .page-link { cursor: pointer; }
#portalBalanceModal .mc-balance-pagination .page-item.disabled .page-link { cursor: default; }

/* MercargoPortal 1.6.35 · PIREP states, selected live flight and Tours spacing */
[data-bs-theme="dark"] .table-danger {
  --bs-table-bg: rgba(153, 48, 58, .24);
  --bs-table-striped-bg: rgba(163, 53, 63, .30);
  --bs-table-hover-bg: rgba(174, 59, 70, .36);
  --bs-table-color: var(--portal-text-current);
  --bs-table-striped-color: var(--portal-text-current);
  --bs-table-hover-color: var(--portal-text-current);
  --bs-table-border-color: rgba(231, 110, 120, .22);
}
[data-bs-theme="dark"] .table-danger > :not(caption) > * > * { color:var(--portal-text-current); }
[data-bs-theme="dark"] .table-danger a:not(.btn) { color:color-mix(in srgb, var(--portal-primary) 55%, #fff); }
[data-bs-theme="dark"] .table-warning {
  --bs-table-bg: rgba(146, 105, 27, .22);
  --bs-table-striped-bg: rgba(155, 112, 29, .28);
  --bs-table-color: var(--portal-text-current);
  --bs-table-striped-color: var(--portal-text-current);
  --bs-table-hover-color: var(--portal-text-current);
}
.mc-tour-list-grid { align-items:stretch; }
.mc-tour-card { border:1px solid var(--portal-border-current); background:var(--portal-surface-current); overflow:hidden; }
.mc-tour-card-head { padding:14px 16px; background:rgba(var(--portal-primary-rgb),.045); }
.mc-tour-card-head h5 { font-size:1rem; line-height:1.25; }
.mc-tour-card-head h5 a { color:var(--portal-text-current); }
.mc-tour-airline-logo { max-width:96px; max-height:40px; object-fit:contain; flex:0 0 auto; }
.mc-tour-card-body { padding:14px 16px; }
.mc-tour-facts { display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,.35fr); gap:12px; }
.mc-tour-facts > div { min-width:0; padding:10px 12px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:rgba(var(--portal-primary-rgb),.025); }
.mc-tour-facts small { display:block; color:var(--portal-muted-current); font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.mc-tour-facts strong { display:block; line-height:1.3; }
.mc-tour-fact-wide { grid-column:1 / -1; }
.mc-tour-remark { margin-top:12px; padding:9px 11px; border-radius:var(--portal-radius); background:rgba(var(--portal-primary-rgb),.055); font-size:.82rem; }
.mc-tour-description { margin-top:12px; color:var(--portal-muted-current); line-height:1.55; }
.mc-tour-description > :last-child { margin-bottom:0; }
@media (max-width:575.98px) { .mc-tour-facts { grid-template-columns:1fr; } .mc-tour-fact-wide { grid-column:auto; } }


/* MercargoPortal 3D map layer (CesiumJS, lazy loaded) */
.mc-map-mode-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border:2px solid rgba(var(--portal-primary-rgb),.55);border-radius:999px;background:color-mix(in srgb,var(--portal-surface-current) 92%,transparent);box-shadow:0 10px 28px rgba(0,0,0,.22),0 0 0 3px rgba(var(--portal-primary-rgb),.08);backdrop-filter:blur(12px)}
.mc-map-mode-switch .btn{border:0!important;border-radius:999px!important;padding:.42rem .8rem;font-size:.78rem;font-weight:900;line-height:1.1;letter-spacing:.025em;min-width:62px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}
.mc-map-mode-switch .btn.active{background:var(--portal-primary)!important;color:#fff!important;box-shadow:0 5px 14px rgba(var(--portal-primary-rgb),.3)}
.mc-map-mode-switch .btn:not(.active){background:transparent!important;color:var(--portal-text-current)!important}
.mc-map-mode-switch .btn:hover{transform:translateY(-1px)}
.mc-map-mode-overlay{position:absolute;z-index:1200;left:50%;top:14px;transform:translateX(-50%);margin:0!important}
.mc-map-dual-stage{position:relative;width:100%;min-height:420px;background:var(--portal-map-canvas-bg);overflow:hidden}
[data-bs-theme="dark"] .mc-map-dual-stage{background:var(--portal-dark-map-canvas-bg)}
.mc-map-dual-pane{position:absolute;inset:0;width:100%;height:100%}
.mc-map-dual-pane[hidden]{display:none!important}
.mc-globe-canvas,.mc-map-dual-pane.mc-globe-canvas{background:#08131d}
.mc-globe-canvas .cesium-viewer,.mc-globe-canvas .cesium-viewer-cesiumWidgetContainer,.mc-globe-canvas .cesium-widget,.mc-globe-canvas canvas{width:100%;height:100%}
.mc-globe-canvas .cesium-viewer-bottom{font-size:10px}
.mc-globe-canvas .cesium-widget-credits{max-width:70%;opacity:.78}
.mc-globe-controls{position:absolute;z-index:19;top:14px;right:14px;display:flex;align-items:center;gap:5px;padding:5px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(8,19,29,.86);box-shadow:0 8px 24px rgba(0,0,0,.25);backdrop-filter:blur(10px)}
.mc-globe-controls button{width:36px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:background .15s ease,transform .15s ease}
.mc-globe-controls button:hover{background:rgba(255,255,255,.15);transform:translateY(-1px)}
.mc-globe-hint{position:absolute;z-index:10;right:14px;bottom:28px;padding:8px 11px;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:rgba(8,19,29,.88);color:#fff;font-size:.76rem;font-weight:800;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.28);backdrop-filter:blur(8px);transition:opacity .6s ease}
.mc-globe-hint.is-dimmed{opacity:.74}
.mc-globe-info{position:absolute;z-index:18;right:14px;top:64px;display:none;max-width:min(360px,calc(100% - 28px));padding:12px 38px 12px 14px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(8,19,29,.9);box-shadow:0 10px 28px rgba(0,0,0,.28);backdrop-filter:blur(10px);color:#fff;font-size:.84rem;line-height:1.35}
.mc-globe-info.is-visible{display:block}
.mc-globe-info a{color:#9bd6ff;font-weight:800}
.mc-globe-info-title{display:block;margin-bottom:6px;font-size:.92rem}
.mc-globe-info-close{position:absolute;right:8px;top:6px;border:0;background:transparent;color:#fff;font-size:1.35rem;line-height:1;opacity:.8;cursor:pointer}
.mc-globe-info-close:hover{opacity:1}
.mc-globe-loading{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;gap:9px;background:rgba(8,19,29,.82);color:#fff;font-weight:800}
.mc-globe-error{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;background:rgba(8,19,29,.94);color:#fff}
.mc-pirep-replay{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:10px 14px;padding:12px 14px;border-top:1px solid var(--portal-border-current);background:var(--portal-surface-current)}
.mc-pirep-replay-primary{display:flex;align-items:center;gap:7px}
.mc-pirep-replay-timeline{display:flex;align-items:center;gap:10px;min-width:0}
.mc-pirep-replay input[type="range"]{flex:1;min-width:160px;accent-color:var(--portal-primary)}
.mc-pirep-replay-options{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mc-pirep-replay-select{height:34px;border:1px solid var(--portal-border-current);border-radius:8px;background:var(--portal-surface-current);color:var(--portal-text-current);padding:0 8px;font-size:.76rem;font-weight:800}
.mc-pirep-replay-readout{min-width:220px;font-size:.78rem;color:var(--portal-muted-current);font-weight:800;white-space:nowrap}
.mc-pirep-replay .btn{min-width:38px}
.mc-pirep-replay-speed-label,.mc-pirep-replay-height-label{font-size:.68rem;color:var(--portal-muted-current);font-weight:800;text-transform:uppercase;letter-spacing:.035em}
@media (max-width:767.98px){.mc-pirep-replay{grid-template-columns:1fr}.mc-pirep-replay-options{justify-content:flex-start}.mc-pirep-replay-readout{min-width:0;white-space:normal}.mc-globe-hint{right:10px;bottom:10px;font-size:.68rem;max-width:calc(100% - 20px);white-space:normal}}
@media (max-width:575.98px){.mc-map-dual-stage{min-height:360px}.mc-map-mode-overlay{left:50%;top:9px}.mc-map-mode-switch .btn{min-width:52px;padding:.38rem .58rem}.mc-globe-controls{right:9px;top:9px}.mc-globe-controls button{width:32px;height:31px}.mc-globe-info{left:10px;right:10px;top:54px;max-width:none}}

/* 1.6.88 - Fullscreen maps must fill the fullscreen viewport, not keep their embedded height. */
.mc-map-dual-stage:fullscreen,
.mc-live-map:fullscreen {
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#08131d !important;
}
.mc-live-map:fullscreen > .mc-live-map-canvas {
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
  max-height:none !important;
}
.mc-map-dual-stage:fullscreen > .mc-map-dual-pane {
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-height:100% !important;
}
.mc-map-dual-stage::backdrop,
.mc-live-map::backdrop { background:#08131d; }
/* WebKit fallback for older fullscreen implementations. */
.mc-map-dual-stage:-webkit-full-screen,
.mc-live-map:-webkit-full-screen {
  width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#08131d !important;
}
.mc-live-map:-webkit-full-screen > .mc-live-map-canvas { width:100% !important; height:100% !important; min-height:100% !important; max-height:none !important; }
.mc-map-dual-stage:-webkit-full-screen > .mc-map-dual-pane { inset:0 !important; width:100% !important; height:100% !important; min-height:100% !important; }

/* PIREP landing/runway analysis (FPE-backed, render-only) */
.mc-runway-analysis{padding:2px 0}.mc-runway-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.mc-runway-analysis-head strong{font-family:var(--portal-font-headings);font-size:1.02rem;color:var(--portal-text-current)}.mc-runway-source{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:rgba(var(--portal-primary-rgb),.12);border:1px solid rgba(var(--portal-primary-rgb),.3);color:var(--portal-primary);font-size:.72rem;font-weight:900;letter-spacing:.05em}.mc-runway-schematic{border:1px solid var(--portal-border-current);border-radius:calc(var(--portal-radius) + 2px);background:linear-gradient(180deg,rgba(var(--portal-primary-rgb),.035),rgba(var(--portal-primary-rgb),.01));padding:8px;overflow:hidden}.mc-runway-schematic svg{display:block;width:100%;height:auto;min-height:180px;color:var(--portal-muted-current)}.mc-rwy-zone-end{stroke:#21c17a;stroke-width:4;stroke-dasharray:9 8}.mc-rwy-label,.mc-rwy-zone-label,.mc-rwy-touchdown-label,.mc-rwy-dimension-label{font-family:var(--portal-font-body);font-weight:900;fill:var(--portal-text-current)}.mc-rwy-label,.mc-rwy-zone-label{font-size:18px}.mc-rwy-zone-label{fill:#18b26e}.mc-rwy-touchdown-ring{fill:rgba(255,191,63,.15);stroke:#ffbf3f;stroke-width:5}.mc-rwy-touchdown-dot{fill:#ffbf3f;stroke:#111827;stroke-width:2}.mc-rwy-touchdown-label{font-size:18px;fill:#f7b733}.mc-rwy-dimension{stroke:var(--portal-muted-current);stroke-width:2}.mc-rwy-dimension-label{font-size:17px;fill:var(--portal-muted-current)}.mc-runway-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.mc-runway-stats>div{padding:10px 12px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:rgba(var(--portal-primary-rgb),.025);min-width:0}.mc-runway-stats small{display:block;color:var(--portal-muted-current);font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;margin-bottom:2px}.mc-runway-stats strong{display:block;color:var(--portal-text-current);font-size:.92rem;font-variant-numeric:tabular-nums}.mc-runway-stats strong span{color:var(--portal-muted-current);font-weight:700}@media(max-width:767.98px){.mc-runway-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.mc-runway-analysis-head{display:block}.mc-runway-source{margin-top:8px}.mc-runway-stats{grid-template-columns:1fr}.mc-runway-schematic{padding:2px}.mc-runway-schematic svg{min-width:620px}}


/* MercargoPortal 1.6.82 · logos de aerolínea y fondos internos independientes.
   Landing y video no se alteran. */
.portal-airline-theme-logo-dark { display: none !important; }
[data-bs-theme="dark"] .portal-airline-theme-logo-light { display: none !important; }
[data-bs-theme="dark"] .portal-airline-theme-logo-dark { display: inline-block !important; }

.mc-profile-hero,
.mc-pirep-hero,
.mc-airport-hero.mc-page-title {
  background:
    linear-gradient(90deg, rgba(var(--portal-primary-rgb), var(--portal-hero-overlay-opacity)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .62))),
    var(--portal-header-bg-image, var(--portal-bg-image)) center / cover no-repeat;
  color: var(--portal-hero-text);
}
.mc-profile-copy h1,
.mc-profile-copy p,
.mc-profile-meta,
.mc-profile-rank small,
.mc-profile-rank strong,
.mc-pirep-hero .mc-route-name,
.mc-pirep-hero .small,
.mc-airport-hero.mc-page-title h1,
.mc-airport-hero.mc-page-title p { color: var(--portal-hero-text) !important; }
.mc-profile-avatar { border-color: rgba(255,255,255,.32); }


/* MercargoPortal 1.6.83 · vuelos en vivo + Tours */
.mc-live-flight-table .mc-live-flight-airline-logo {
  display: inline-block;
  width: auto !important;
  height: auto !important;
  max-width: 96px !important;
  max-height: 28px !important;
  object-fit: contain !important;
  vertical-align: middle;
}
.mc-tour-card-award {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:9px 11px;
  border:1px solid var(--portal-border-current);
  border-radius:var(--portal-radius);
  background:rgba(var(--portal-primary-rgb),.03);
}
.mc-tour-card-award img { width:46px !important; height:46px !important; max-width:46px !important; max-height:46px !important; object-fit:contain !important; flex:0 0 46px; }
.mc-tour-card-award small,.mc-tour-card-award strong { display:block; }
.mc-tour-card-award small { color:var(--portal-muted-current); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
.mc-tour-card-award strong { color:var(--portal-heading-current); font-size:.84rem; line-height:1.25; }
.mc-tour-card-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; background:rgba(var(--portal-primary-rgb),.02); }
@media (max-width:575.98px) { .mc-tour-card-footer { align-items:stretch; flex-direction:column; } .mc-tour-card-footer .btn { width:100%; } }


/* MercargoPortal 1.6.84 · ajuste de logo en vuelos activos */
.mc-live-flight-table th:first-child,
.mc-live-flight-table td:first-child { min-width:104px; width:104px; }
.mc-live-flight-table .mc-live-flight-airline-logo { max-width:96px !important; max-height:28px !important; }


/* 1.6.89 - Landing-rates full history sortable headers. */
.mc-landing-sort {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  cursor: pointer;
  white-space: nowrap;
}
.mc-landing-sort:hover,
.mc-landing-sort:focus-visible {
  color: var(--mc-primary, #6795ba);
}
.mc-landing-sort-end {
  justify-content: flex-end;
}
.mc-landing-sort-icon {
  opacity: .75;
  min-width: .8rem;
  text-align: center;
}

/* Aircraft maintenance history */
.mc-maint-history { margin-top: 22px; overflow: hidden; }
.mc-maint-history .mc-panel-head h3 { display:flex; align-items:center; gap:9px; }
.mc-maint-status { display:inline-flex; align-items:center; min-height:28px; padding:4px 10px; border-radius:999px; border:1px solid var(--portal-border-current); font-size:.76rem; font-weight:800; letter-spacing:.01em; }
.mc-maint-status.is-available { color:#17834a; background:rgba(23,131,74,.08); border-color:rgba(23,131,74,.25); }
.mc-maint-status.is-maintenance { color:#b4670c; background:rgba(212,126,22,.10); border-color:rgba(212,126,22,.30); }
[data-bs-theme="dark"] .mc-maint-status.is-available { color:#72d99f; background:rgba(80,190,126,.12); border-color:rgba(114,217,159,.28); }
[data-bs-theme="dark"] .mc-maint-status.is-maintenance { color:#ffc068; background:rgba(255,175,75,.12); border-color:rgba(255,192,104,.28); }
.mc-maint-privacy-note { display:flex; align-items:flex-start; gap:10px; padding:11px 13px; margin-bottom:16px; border:1px solid var(--portal-border-current); border-radius:calc(var(--portal-radius) * .72); background:color-mix(in srgb, var(--portal-primary) 5%, var(--portal-surface-current)); color:var(--portal-muted-current); font-size:.86rem; line-height:1.45; }
.mc-maint-privacy-note i { margin-top:2px; color:var(--portal-primary); }
.mc-maint-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.mc-maint-summary-card { min-width:0; padding:14px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:var(--portal-surface-current); }
.mc-maint-kicker { display:block; margin-bottom:7px; color:var(--portal-muted-current); font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.055em; }
.mc-maint-summary-card > strong { display:block; color:var(--portal-text-current); font-size:1.02rem; line-height:1.28; }
.mc-maint-summary-card > small { display:block; margin-top:5px; color:var(--portal-muted-current); font-size:.78rem; line-height:1.4; }
.mc-maint-progress { height:7px; margin-top:10px; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--portal-border-current) 70%, transparent); }
.mc-maint-progress > span { display:block; height:100%; border-radius:inherit; background:var(--portal-primary); }
.mc-maint-section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:6px 0 11px; }
.mc-maint-section-title > div > strong { display:block; color:var(--portal-text-current); font-size:.96rem; }
.mc-maint-section-title > div > span { display:block; margin-top:3px; color:var(--portal-muted-current); font-size:.79rem; line-height:1.4; }
.mc-maint-history-heading { margin-top:22px; padding-top:18px; border-top:1px solid var(--portal-border-current); }
.mc-maint-count { flex:0 0 auto; color:var(--portal-muted-current); font-size:.76rem; font-weight:800; white-space:nowrap; }
.mc-maint-check-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.mc-maint-check-card { min-width:0; padding:13px 14px; border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); background:color-mix(in srgb, var(--portal-surface-current) 96%, var(--portal-primary)); }
.mc-maint-check-card.is-due { border-color:rgba(205,77,77,.42); background:rgba(205,77,77,.055); }
.mc-maint-check-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:9px; margin-bottom:9px; border-bottom:1px solid var(--portal-border-current); }
.mc-maint-check-head strong { color:var(--portal-text-current); }
.mc-maint-check-head span { color:var(--portal-muted-current); font-size:.72rem; font-weight:800; text-align:right; }
.mc-maint-check-card.is-due .mc-maint-check-head span { color:#c34f4f; }
[data-bs-theme="dark"] .mc-maint-check-card.is-due .mc-maint-check-head span { color:#ff8585; }
.mc-maint-check-card dl { margin:0; display:grid; gap:7px; }
.mc-maint-check-card dl > div { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.mc-maint-check-card dt { color:var(--portal-muted-current); font-size:.75rem; font-weight:600; }
.mc-maint-check-card dd { margin:0; color:var(--portal-text-current); font-size:.76rem; font-weight:800; text-align:right; }
.mc-maint-table-wrap { border:1px solid var(--portal-border-current); border-radius:var(--portal-radius); overflow:auto; }
.mc-maint-table { margin:0; min-width:820px; color:var(--portal-text-current); }
.mc-maint-table > :not(caption) > * > * { background:transparent; color:inherit; border-color:var(--portal-border-current); vertical-align:middle; }
.mc-maint-table thead th { background:color-mix(in srgb, var(--portal-surface-current) 92%, var(--portal-primary)); color:var(--portal-muted-current); font-size:.72rem; text-transform:uppercase; letter-spacing:.045em; white-space:nowrap; }
.mc-maint-table tbody td { font-size:.82rem; }
.mc-maint-table tbody tr:last-child td { border-bottom:0; }
.mc-maint-row-note { display:block; margin-top:3px; color:var(--portal-muted-current); font-weight:400; }
.mc-maint-state { display:inline-flex; align-items:center; padding:3px 8px; border:1px solid var(--portal-border-current); border-radius:999px; color:var(--portal-text-current); background:var(--portal-surface-current); font-size:.72rem; font-weight:800; white-space:nowrap; }
.mc-maint-empty { display:flex; align-items:center; gap:12px; padding:18px; border:1px dashed var(--portal-border-current); border-radius:var(--portal-radius); color:var(--portal-muted-current); }
.mc-maint-empty > i { color:var(--portal-primary); font-size:1.3rem; }
.mc-maint-empty strong { display:block; color:var(--portal-text-current); }
.mc-maint-empty span { display:block; margin-top:2px; font-size:.8rem; }
@media (max-width: 900px) {
  .mc-maint-summary-grid, .mc-maint-check-grid { grid-template-columns:1fr; }
  .mc-maint-section-title { align-items:flex-start; flex-direction:column; gap:7px; }
}

/* MercargoPortal 1.6.93 · ficha de aeronave reorganizada */
.mc-aircraft-detail-page { width:100%; }
.mc-aircraft-overview { margin-bottom:1rem; }
.mc-aircraft-overview > [class*="col-"] { min-width:0; }
.mc-aircraft-detail-page .card { overflow:hidden; }
.mc-aircraft-detail-page .card-body.table-responsive,
.mc-aircraft-detail-page .card-body.overflow-auto { max-width:100%; }
.mc-aircraft-stats-card table th { width:62%; }
.mc-aircraft-stats-card table td { white-space:nowrap; }
.mc-aircraft-full-card { width:100%; }
.mc-aircraft-reports-card .table,
.mc-aircraft-maintenance-card .table { margin-bottom:0; }
.mc-aircraft-detail-page > .mc-maint-history { margin-top:0; }
.mc-aircraft-secondary { margin-bottom:.25rem; }
.mc-maint-table-detailed { min-width:1220px; }
.mc-maint-kind { display:inline-flex; align-items:center; min-height:25px; padding:3px 8px; border:1px solid var(--portal-border-current); border-radius:999px; color:var(--portal-muted-current); background:color-mix(in srgb, var(--portal-surface-current) 94%, var(--portal-primary)); font-size:.7rem; font-weight:800; white-space:nowrap; }
.mc-maint-table-detailed .mc-maint-detail-cell { min-width:220px; max-width:340px; white-space:normal; line-height:1.35; color:var(--portal-muted-current); }
@media (max-width: 991.98px) {
  .mc-aircraft-overview { gap:.2rem; }
  .mc-aircraft-stats-card { margin-top:.35rem; }
}

/* ============================================================
   MercargoPortal 1.6.105 · scoped light/dark readability fix
   IMPORTANT: this patch preserves the Mercargo palette and component design.
   It does not derive light-mode colours from the primary colour and does not
   replace card/panel backgrounds, borders or button styling.
   ============================================================ */

/* Bootstrap utility text that was not explicitly tied to the portal palette. */
.text-secondary,
.form-text {
  color: var(--portal-muted-current) !important;
}

/* Keep form/table/modal copy bound to the already configured Mercargo
   light/dark variables, without changing their surfaces. */
.form-control,
.form-select,
.ts-control,
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple,
.input-group-text {
  color: var(--portal-input-text-current) !important;
}
.form-control::placeholder,
.ts-control input::placeholder {
  color: var(--portal-muted-current) !important;
  opacity: .82;
}
.modal-content,
.modal-body,
.accordion-item,
.accordion-body {
  color: var(--portal-card-text-current);
}
.table {
  --bs-table-color: var(--portal-text-current);
}

/* Image headers: a restrained shadow improves separation over bright aircraft
   details without changing typography, sizing, spacing or the hero palette. */
.portal-dashboard-banner h1,
.portal-dashboard-banner p,
.portal-dashboard-banner .mc-eyebrow,
.portal-dashboard-banner > div:first-child i,
.mc-profile-hero h1,
.mc-profile-hero p,
.mc-profile-hero small,
.mc-profile-hero strong,
.mc-profile-meta,
.mc-profile-meta i,
.mc-pirep-hero .mc-route-name,
.mc-pirep-hero .small,
.mc-pirep-hero i,
.mc-airport-hero.mc-page-title h1,
.mc-airport-hero.mc-page-title p,
.mc-airport-hero.mc-page-title i,
.mc-hero-content h1,
.mc-hero-content p,
.mc-hero-kicker {
  text-shadow: 0 1px 2px rgba(0,0,0,.24);
}

/* Icons that sit on image headers must use the hero ink rather than the
   generic content-icon colour. Scope is intentionally narrow so ordinary
   Mercargo cards keep their original blue icon language. */
.portal-dashboard-banner > div:first-child i,
.mc-profile-meta i,
.mc-pirep-hero i,
.mc-airport-hero.mc-page-title i,
.mc-hero-content i {
  color: var(--portal-hero-text) !important;
}

/* In dark mode the top-bar/header glyphs keep the configured navigation
   colour, with only a tiny optical lift. No background or palette rewrite. */
[data-bs-theme="dark"] .portal-header .portal-icon-btn i,
[data-bs-theme="dark"] .portal-header .portal-account-fallback-icon,
[data-bs-theme="dark"] .portal-header .portal-account-btn > i,
[data-bs-theme="dark"] .portal-header .portal-top-link > i,
[data-bs-theme="dark"] .portal-sidebar .portal-nav-item > i {
  text-shadow: 0 1px 2px rgba(0,0,0,.34), 0 0 4px rgba(255,255,255,.10);
  opacity: 1;
}

/* The compact statistic icons can look too thin on dark/translucent surfaces.
   Preserve their Mercargo colour and background; only add a subtle glow. */
[data-bs-theme="dark"] .mc-stat-icon > i {
  text-shadow: 0 1px 2px rgba(0,0,0,.34), 0 0 4px rgba(255,255,255,.12);
  opacity: 1;
}


/* MercargoPortal 1.6.107 · auth/register branding and richer dashboard hero */
.mc-auth-visual { position: relative; overflow: hidden; }
.mc-auth-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 12, 20, .08), rgba(6, 12, 20, .28)); }
.mc-auth-story { position: relative; z-index: 1; max-width: 560px; display: grid; gap: 18px; }
.mc-auth-story-logo img { display: block; max-width: min(320px, 78%); max-height: 104px; object-fit: contain; object-position: left center; }
.mc-auth-story-logo .mc-login-logo-dark { display: none; }
[data-bs-theme="dark"] .mc-auth-story-logo .mc-login-logo-light { display: none; }
[data-bs-theme="dark"] .mc-auth-story-logo .mc-login-logo-dark { display: block; }
.mc-auth-story-copy h1 { color: var(--portal-hero-text); margin: 4px 0 0; font-size: clamp(2rem, 4vw, 3.05rem); }
.mc-auth-story-copy p { color: var(--portal-hero-muted-text); font-size: 1rem; max-width: 500px; margin: 10px 0 0; }
.mc-register-wrap { max-width: 940px; width: 100%; }
.mc-register-panel { padding: 24px 24px 20px; box-shadow: var(--portal-shadow-sm, 0 10px 28px rgba(0,0,0,.12)); }
.mc-register-toc { margin-top: 24px; }
.mc-register-consent { padding: 14px 16px; border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); background: rgba(var(--portal-primary-rgb), .03); }
.mc-register-terms { max-height: none; overflow: visible; border: 0; padding: 0; }
.mc-toc-box { border: 1px solid var(--portal-border-current); border-radius: var(--portal-radius); background: var(--portal-surface-current); }
.mc-toc-title { margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--portal-border-current); font-size: 1rem; }
.mc-toc-content { padding: 0; }
.mc-toc-scroll { max-height: 220px; overflow: auto; padding: 14px 16px; }
.mc-toc-copy { white-space: pre-line; color: var(--portal-text-current); line-height: 1.58; font-size: .92rem; }
.portal-dashboard-banner { position: relative; overflow: hidden; min-height: 166px; padding: 24px 26px; border: 1px solid rgba(255,255,255,.08); box-shadow: var(--portal-shadow-sm, 0 14px 34px rgba(0,0,0,.14)); }
.portal-dashboard-banner::after { content: ""; position: absolute; width: 240px; height: 240px; right: -72px; top: -88px; border-radius: 50%; background: rgba(255,255,255,.09); }
.portal-dashboard-banner-main, .portal-dashboard-banner-side { position: relative; z-index: 1; }
.portal-dashboard-banner-main { display: grid; gap: 10px; min-width: 0; }
.portal-dashboard-banner-side { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.portal-dashboard-banner-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.portal-dashboard-banner-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); color: var(--portal-hero-text); font-size: .82rem; font-weight: 700; }
.portal-dashboard-banner-chip i { color: var(--portal-accent); }
.portal-dashboard-trust-card { min-width: 250px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: calc(var(--portal-radius) + 2px); background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); color: var(--portal-hero-text); text-decoration: none; box-shadow: 0 10px 28px rgba(0,0,0,.12); transition: transform .16s ease, background .16s ease, border-color .16s ease; }
.portal-dashboard-trust-card:hover { color: var(--portal-hero-text); background: rgba(255,255,255,.19); border-color: rgba(255,255,255,.32); transform: translateY(-1px); }
.portal-dashboard-trust-icon { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.16); color: var(--portal-accent); font-size: 1.2rem; }
.portal-dashboard-trust-copy { min-width: 0; display: grid; gap: 1px; }
.portal-dashboard-trust-copy small { color: var(--portal-hero-muted-text); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.portal-dashboard-trust-copy strong { color: var(--portal-hero-text); font-size: 1.15rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.portal-dashboard-trust-copy strong span { margin-left: 2px; color: var(--portal-hero-muted-text); font-size: .65rem; font-weight: 700; }
.portal-dashboard-trust-tier { display: inline-flex; align-items: center; justify-content: center; min-height: 23px; padding: 3px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,.28); font-size: .66rem; font-weight: 900; line-height: 1; text-transform: uppercase; letter-spacing: .035em; white-space: nowrap; background: rgba(0,0,0,.12); color: var(--portal-hero-text); }
.portal-dashboard-trust-tier-restricted { border-color: rgba(255,120,120,.75); }
.portal-dashboard-trust-tier-basic { border-color: rgba(255,202,90,.75); }
.portal-dashboard-trust-tier-standard { border-color: rgba(120,190,255,.75); }
.portal-dashboard-trust-tier-trusted,.portal-dashboard-trust-tier-premium { border-color: rgba(95,225,165,.8); }
.portal-dashboard-banner-logo { display: inline-flex; flex-direction: column; gap: 6px; align-items: center; padding: 10px 14px; min-width: 180px; border-radius: calc(var(--portal-radius) + 2px); background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.2); text-align: center; }
.portal-dashboard-airline-logo { max-width: 180px; max-height: 54px; object-fit: contain; }
.portal-dashboard-banner-logo span { color: var(--portal-hero-muted-text); font-size: .82rem; font-weight: 700; }
.portal-dashboard-banner-actions .btn { box-shadow: 0 10px 26px rgba(0,0,0,.16); }
@media (max-width: 991.98px) {
  .mc-register-wrap { max-width: 100%; }
  .portal-dashboard-banner { padding: 22px 18px; }
}
@media (max-width: 575.98px) {
  .mc-auth-story-copy h1 { font-size: 1.9rem; }
  .portal-dashboard-banner-side { width: 100%; align-items: stretch; }
  .portal-dashboard-banner-logo { width: 100%; min-width: 0; }
  .portal-dashboard-trust-card { width: 100%; min-width: 0; }
  .portal-dashboard-banner-actions { width: 100%; }
  .portal-dashboard-banner-actions .btn { width: 100%; }
}


/* MercargoPortal 1.6.108 · registro ancho sobre fondo propio + dashboard sin bloque de logo */
.mc-register-stage {
  position: relative;
  isolation: isolate;
  margin: -24px -28px -42px;
  padding: 42px 28px 56px;
  min-height: calc(100vh - var(--portal-header-height));
  background: var(--portal-register-bg-image, var(--portal-bg-image)) center / cover no-repeat;
}
.mc-register-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: rgba(8, 19, 28, .36);
}
.mc-register-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(5, 18, 28, .08), rgba(5, 18, 28, .42));
}
.mc-register-stage .mc-register-wrap {
  max-width: 1040px;
  margin: 0 auto;
}
.mc-register-stage .mc-login-main-logo {
  margin: 0 auto 16px;
  text-align: center;
}
.mc-register-stage .mc-login-main-logo a { display: inline-block; }
.mc-register-stage .mc-login-main-logo img {
  width: min(320px, 70vw);
  max-height: 112px;
  object-position: center;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.26));
}
.mc-register-stage .mc-page-title {
  width: min(720px, 100%);
  margin-bottom: 20px;
  padding: 14px 18px;
  border-radius: calc(var(--portal-radius) + 4px);
  background: rgba(9, 25, 36, .46);
  border: 1px solid rgba(255,255,255,.13);
  backdrop-filter: blur(5px);
}
.mc-register-stage .mc-page-title .mc-eyebrow { color: var(--portal-accent); }
.mc-register-stage .mc-page-title h1 { color: #fff; margin-bottom: 4px; }
.mc-register-stage .mc-page-title p { color: rgba(255,255,255,.82); margin-bottom: 0; }
.mc-register-stage .mc-register-panel {
  padding: 26px;
  background: color-mix(in srgb, var(--portal-surface-current) 94%, transparent);
  border: 1px solid color-mix(in srgb, var(--portal-border-current) 78%, rgba(255,255,255,.18));
  box-shadow: 0 22px 54px rgba(0,0,0,.24);
  backdrop-filter: blur(9px);
}
.mc-register-stage .mc-panel-head {
  margin: -4px 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--portal-border-current);
}
.mc-register-stage .mc-register-consent {
  background: color-mix(in srgb, var(--portal-surface-current) 84%, transparent);
}
.mc-register-stage .mc-toc-box {
  background: color-mix(in srgb, var(--portal-surface-current) 91%, transparent);
}
[data-bs-theme="dark"] .mc-register-stage::before { background: rgba(3, 10, 16, .48); }
[data-bs-theme="dark"] .mc-register-stage .mc-register-panel {
  background: color-mix(in srgb, var(--portal-dark-surface) 93%, transparent);
}
/* In 1.6.107 a second airline/logo panel was added to the right of the dashboard hero.
   It is intentionally removed; the search action keeps the same placement. */
.portal-dashboard-banner-side { justify-content: center; }
.portal-dashboard-banner-logo { display: none !important; }
@media (max-width: 991.98px) {
  .mc-register-stage { margin: -20px -18px -34px; padding: 34px 18px 46px; }
}
@media (max-width: 575.98px) {
  .mc-register-stage { margin: -17px -12px -28px; padding: 26px 12px 36px; }
  .mc-register-stage .mc-register-panel { padding: 18px 14px; }
  .mc-register-stage .mc-page-title { padding: 12px 14px; }
}


/* MercargoPortal 1.6.109 · registro full-bleed y liviano */
.mc-register-stage {
  /* Escape the centered .portal-content container and use the complete viewport width. */
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -24px;
  margin-bottom: -42px;
  padding: 42px max(28px, calc((100vw - 1180px) / 2)) 58px;
  min-height: calc(100vh - var(--portal-header-height));
  background-image:
    linear-gradient(180deg, rgba(5,18,28,.24), rgba(5,18,28,.42)),
    var(--portal-register-bg-image, var(--portal-bg-image));
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  isolation: auto;
}
/* The overlay used to be implemented with two full-page pseudo-elements.
   Keeping it inside the single background paint is significantly cheaper. */
.mc-register-stage::before,
.mc-register-stage::after { display: none !important; }
.mc-register-stage .mc-register-wrap { max-width: 1040px; width: 100%; margin: 0 auto; }
.mc-register-stage .mc-page-title {
  background: rgba(9,25,36,.78);
  border-color: rgba(255,255,255,.14);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.mc-register-stage .mc-register-panel {
  background: color-mix(in srgb, var(--portal-surface-current) 97%, transparent);
  border-color: color-mix(in srgb, var(--portal-border-current) 82%, transparent);
  box-shadow: 0 14px 34px rgba(0,0,0,.20);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.mc-register-stage .mc-register-consent,
.mc-register-stage .mc-toc-box {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
[data-bs-theme="dark"] .mc-register-stage .mc-register-panel {
  background: color-mix(in srgb, var(--portal-dark-surface) 97%, transparent);
}
@media (max-width: 991.98px) {
  .mc-register-stage {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -20px;
    margin-bottom: -34px;
    padding: 34px 18px 46px;
  }
}
@media (max-width: 575.98px) {
  .mc-register-stage {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -17px;
    margin-bottom: -28px;
    padding: 26px 12px 36px;
  }
}


/* MercargoPortal 1.6.114 · Tour enrollment / locked state */
.mc-tour-enrollment-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mc-tour-enrollment-footer>small{color:var(--portal-muted-current);max-width:72%;line-height:1.25}
.mc-tour-enrollment-state{min-width:0;display:grid;gap:3px}
.mc-tour-enrollment-state small{color:var(--portal-muted-current);line-height:1.2}
.mc-tour-locked{border:1px solid var(--portal-border-current);background:var(--portal-surface-current);color:var(--portal-text-current)}
.mc-dashboard-ops-stack{grid-template-columns:minmax(0,1fr)!important}
@media(max-width:575.98px){.mc-tour-enrollment-footer{align-items:stretch;flex-direction:column}.mc-tour-enrollment-footer>small{max-width:none}.mc-tour-enrollment-footer form .btn,.mc-tour-enrollment-footer>.btn{width:100%}}

/* ============================================================
   MercargoPortal 1.6.115 · light-mode contrast floor
   Keep the configurable palette, but stop very pale saved foreground colours
   from disappearing over the light page/cards. Dark mode remains untouched.
   ============================================================ */
:root {
  --portal-chart-secondary: var(--portal-secondary);
  --portal-chart-accent: var(--portal-accent);
  --portal-chart-info: var(--portal-info);
  --portal-chart-grid: var(--portal-border-current);
}

[data-bs-theme="light"] {
  /* Text inks: keep a trace of the configured colour while pulling it toward
     Mercargo's dark blue-grey so labels remain readable on light surfaces. */
  --portal-text-current: color-mix(in srgb, var(--portal-text) 25%, #1c2f40 75%);
  --portal-muted-current: color-mix(in srgb, var(--portal-muted) 25%, #344556 75%);
  --portal-heading-current: color-mix(in srgb, var(--portal-heading) 20%, #142a3b 80%);
  --portal-link-current: color-mix(in srgb, var(--portal-link) 25%, #004477 75%);
  --portal-link-hover-current: color-mix(in srgb, var(--portal-link-hover) 30%, #005b8f 70%);
  --portal-panel-header-text-current: color-mix(in srgb, var(--portal-panel-header-text) 22%, #1a3042 78%);
  --portal-input-text-current: color-mix(in srgb, var(--portal-input-text) 22%, #1a3042 78%);
  --portal-table-header-text-current: color-mix(in srgb, var(--portal-table-header-text) 25%, #304457 75%);
  --portal-dropdown-text-current: color-mix(in srgb, var(--portal-dropdown-text) 22%, #1a3042 78%);
  --portal-card-text-current: color-mix(in srgb, var(--portal-card-text) 25%, #1c2f40 75%);
  --portal-stat-text-current: color-mix(in srgb, var(--portal-stat-text) 22%, #192f41 78%);
  --portal-footer-text-current: color-mix(in srgb, var(--portal-footer-text-color) 25%, #344556 75%);
  --portal-badge-text-current: color-mix(in srgb, var(--portal-badge-text) 25%, #004477 75%);
  --portal-icon-current: color-mix(in srgb, var(--portal-icon-color) 25%, #004477 75%);

  /* Separators/grid lines need a little more weight in light mode too. */
  --portal-border-current: color-mix(in srgb, var(--portal-border) 48%, #94a3af 52%);
  --portal-chart-grid: color-mix(in srgb, var(--portal-border) 38%, #82919e 62%);

  /* The default secondary/accent/info colours are intentionally bright for
     UI accents. These darker derivatives are only for chart strokes. */
  --portal-chart-secondary: color-mix(in srgb, var(--portal-secondary) 38%, #245f8c 62%);
  --portal-chart-accent: color-mix(in srgb, var(--portal-accent) 34%, #8a6800 66%);
  --portal-chart-info: color-mix(in srgb, var(--portal-info) 38%, #08758d 62%);

  --bs-body-color: var(--portal-text-current);
  --bs-secondary-color: var(--portal-muted-current);
  --bs-border-color: var(--portal-border-current);
}

[data-bs-theme="light"] .text-muted,
[data-bs-theme="light"] .text-secondary,
[data-bs-theme="light"] .text-body-secondary,
[data-bs-theme="light"] .description,
[data-bs-theme="light"] .form-text {
  color: var(--portal-muted-current) !important;
  opacity: 1;
}

[data-bs-theme="light"] .btn-outline-secondary {
  --bs-btn-color: var(--portal-text-current);
  --bs-btn-border-color: var(--portal-border-current);
  --bs-btn-hover-color: var(--portal-text-current);
  --bs-btn-hover-bg: color-mix(in srgb, var(--portal-primary) 8%, #ffffff 92%);
  --bs-btn-hover-border-color: var(--portal-primary);
}

[data-bs-theme="light"] .progress,
[data-bs-theme="light"] .mc-tour-progress,
[data-bs-theme="light"] .mc-assignment-progress-track,
[data-bs-theme="light"] .oe-progress-track,
[data-bs-theme="light"] .oe-ti-track {
  background-color: color-mix(in srgb, var(--portal-border-current) 72%, #ffffff 28%);
}


/* ============================================================
   MercargoPortal 1.6.117 · external weather widget isolation
   Keep the Metar-TAF widget in both themes. Its graphics are designed for a
   dark canvas, so the embed gets its own opaque background instead of
   inheriting the portal's light card background.
   ============================================================ */
.mc-weather-embed-shell {
  overflow: hidden;
  background: #162330;
}
.mc-weather-disposable .mc-metartaf-frame {
  display: block;
  background: #162330 !important;
  color: #f4f7fa !important;
}
.mc-weather-disposable .mc-metartaf-frame iframe,
.mc-weather-disposable iframe[id*="metartaf"],
.mc-weather-disposable iframe[src*="metar-taf.com"] {
  background: #162330 !important;
  color-scheme: dark;
}
.mc-weather-disposable .mc-metartaf-links {
  background: var(--portal-surface-current);
}


/* MercargoPortal 1.6.120 · airport ICAO links: custom, clean and subtle */
.mc-airport-link {
  display: inline-block;
  color: inherit !important;
  text-decoration: none !important;
  font-weight: inherit;
  border-radius: 3px;
  transition: transform .14s ease, filter .14s ease, opacity .14s ease;
}
.mc-airport-link:hover {
  color: inherit !important;
  text-decoration: none !important;
  transform: translateY(-1px);
  filter: brightness(1.14);
}
.mc-airport-link:focus,
.mc-airport-link:focus-visible,
.mc-airport-link:active {
  color: inherit !important;
  text-decoration: none !important;
}
.mc-airport-link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 2px;
}
.mc-new-pilot-card .mc-airport-link { position: relative; z-index: 2; }

/* MercargoPortal 1.6.118 · airport page hero aligned with the portal visual language */
.mc-airport-hero.mc-page-title {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 150px;
  margin: 0 0 18px;
  padding: 24px 26px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow-sm, 0 14px 34px rgba(0,0,0,.14));
  background:
    linear-gradient(90deg, rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) + .06)), rgba(var(--portal-primary-rgb), calc(var(--portal-hero-overlay-opacity) * .66))),
    var(--portal-header-bg-image, var(--portal-bg-image)) center 54% / cover no-repeat;
}
.mc-airport-hero.mc-page-title::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 250px;
  height: 250px;
  right: -78px;
  top: -102px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}
.mc-airport-hero-main {
  position: relative;
  z-index: 1;
  min-width: 0;
  max-width: min(1050px, calc(100% - 110px));
}
.mc-airport-hero.mc-page-title .mc-eyebrow {
  color: var(--portal-accent) !important;
  margin-bottom: 4px;
}
.mc-airport-hero.mc-page-title h1 {
  margin: 0;
  max-width: 100%;
  font-size: clamp(1.45rem, 2.1vw, 2rem);
  line-height: 1.16;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.mc-airport-hero.mc-page-title p {
  margin: 8px 0 0;
  color: var(--portal-hero-muted-text) !important;
  font-size: .95rem;
  font-weight: 500;
}
.mc-airport-hero-badge {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(8,22,34,.36);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  color: var(--portal-hero-text) !important;
  box-shadow: 0 7px 18px rgba(0,0,0,.12);
}
.mc-airport-hero-badge i { color: var(--portal-accent) !important; }

@media (max-width: 991.98px) {
  .mc-airport-hero.mc-page-title {
    min-height: 138px;
    padding: 22px 20px;
  }
  .mc-airport-hero-main { max-width: calc(100% - 95px); }
}
@media (max-width: 700px) {
  .mc-airport-hero.mc-page-title {
    min-height: 0;
    padding: 20px 18px;
    gap: 14px;
  }
  .mc-airport-hero-main { max-width: 100%; }
  .mc-airport-hero-badge { align-self: flex-start; }
}
@media (max-width: 479.98px) {
  .mc-airport-hero.mc-page-title { padding: 18px 16px; }
  .mc-airport-hero.mc-page-title h1 { font-size: 1.38rem; }
  .mc-airport-hero.mc-page-title p { font-size: .88rem; }
}

/* ============================================================
   MercargoPortal 1.6.123 · award detail modal
   Custom overlay (no Bootstrap Modal dependency) with image, title and
   description. This avoids conflicts with phpVMS/addon Bootstrap bundles.
   ============================================================ */
.mc-award-previewable {
  cursor: zoom-in;
  transition: transform .16s ease, filter .16s ease;
}
.mc-award-previewable:hover {
  transform: scale(1.045);
  filter: drop-shadow(0 5px 10px rgba(0,0,0,.16));
}
.mc-award-previewable:focus-visible {
  outline: 3px solid rgba(var(--portal-primary-rgb), .28);
  outline-offset: 4px;
  border-radius: calc(var(--portal-radius) * .7);
}
body.mc-award-preview-open { overflow: hidden; }
.mc-award-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .16s ease, visibility .16s ease;
}
.mc-award-preview-modal[hidden] { display: none !important; }
.mc-award-preview-modal.is-open {
  opacity: 1;
  visibility: visible;
}
.mc-award-preview-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 13, 22, .72);
  backdrop-filter: blur(3px);
  cursor: zoom-out;
}
.mc-award-preview-dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  align-items: center;
  gap: 0;
  background: var(--portal-card-bg-current);
  color: var(--portal-card-text-current);
  border: 1px solid var(--portal-border-current);
  border-radius: calc(var(--portal-radius) + 6px);
  box-shadow: 0 24px 70px rgba(0,0,0,.38);
  transform: translateY(8px) scale(.985);
  transition: transform .16s ease;
}
.mc-award-preview-modal.is-open .mc-award-preview-dialog {
  transform: translateY(0) scale(1);
}
.mc-award-preview-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--portal-border-current);
  border-radius: 50%;
  background: var(--portal-surface-current);
  color: var(--portal-text-current);
  cursor: pointer;
  box-shadow: var(--portal-shadow-sm);
}
.mc-award-preview-close:hover {
  color: var(--portal-primary);
  border-color: rgba(var(--portal-primary-rgb), .45);
}
.mc-award-preview-visual {
  min-height: 330px;
  padding: 34px 26px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, rgba(var(--portal-primary-rgb), .10), transparent 67%),
    color-mix(in srgb, var(--portal-card-bg-current) 92%, var(--portal-primary) 8%);
  border-right: 1px solid var(--portal-border-current);
}
.mc-award-preview-visual #portalAwardPreviewImage {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 330px;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.16));
}
.mc-award-preview-copy {
  padding: 46px 34px 36px;
  min-width: 0;
}
.mc-award-preview-copy .mc-eyebrow {
  margin-bottom: 7px;
}
.mc-award-preview-copy h3 {
  margin: 0;
  color: var(--portal-heading-current);
  font-size: 1.35rem;
  line-height: 1.22;
}
.mc-award-preview-copy p {
  margin: 12px 0 0;
  color: var(--portal-muted-current);
  font-size: .94rem;
  line-height: 1.55;
  white-space: pre-line;
}
.mc-award-preview-copy p[hidden] { display: none !important; }

.mc-award-granted-date {
  display: flex;
  align-items: center;
  gap: 3px;
  margin-top: 7px;
  color: var(--portal-muted-current);
  font-size: .78rem;
  font-weight: 600;
}
.mc-award-preview-date {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 16px;
  padding: 7px 10px;
  border: 1px solid var(--portal-border-current);
  border-radius: 999px;
  color: var(--portal-muted-current);
  background: color-mix(in srgb, var(--portal-card-bg-current) 94%, var(--portal-primary) 6%);
  font-size: .8rem;
  font-weight: 700;
}
.mc-award-preview-date[hidden] { display: none !important; }
@media (max-width: 650px) {
  .mc-award-preview-modal { padding: 12px; }
  .mc-award-preview-dialog {
    width: min(460px, 100%);
    max-height: calc(100vh - 24px);
    grid-template-columns: 1fr;
  }
  .mc-award-preview-visual {
    min-height: 250px;
    padding: 28px 24px;
    border-right: 0;
    border-bottom: 1px solid var(--portal-border-current);
  }
  .mc-award-preview-visual #portalAwardPreviewImage { max-height: 270px; }
  .mc-award-preview-copy { padding: 24px 24px 28px; }
  .mc-award-preview-copy h3 { font-size: 1.2rem; }
}

/* ============================================================
   MercargoPortal 1.6.126 · award card typography + effect stage
   The effect stage is intentionally inert until a named effect is
   registered. It gives special awards a safe, pointer-events-free canvas.
   ============================================================ */
.mc-award-card-description {
  margin-top: 2px;
  font-size: .91rem;
  line-height: 1.42;
}
.mc-award-granted-date {
  margin-top: 6px;
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: .005em;
}
.mc-award-granted-date i {
  font-size: .70rem;
}
.mc-award-preview-copy p {
  font-size: 1rem;
  line-height: 1.58;
}
.mc-award-preview-date {
  font-size: .74rem;
}
.mc-award-preview-effects {
  position: absolute;
  inset: 0;
  z-index: 4;
  overflow: hidden;
  pointer-events: none;
  contain: layout paint;
}
.mc-award-preview-effects:empty {
  display: block;
}
.mc-award-preview-modal[data-active-award-effect=""],
.mc-award-preview-modal[data-active-award-effect="none"] {
  --mc-award-effect-active: 0;
}
.mc-award-preview-dialog {
  z-index: 3;
}
@media (max-width: 650px) {
  .mc-award-card-description { font-size: .88rem; }
  .mc-award-preview-copy p { font-size: .96rem; }
}

/* ============================================================
   MercargoPortal 1.6.127 · Award FX engine
   HARD RULE: the visual cell is the clipping boundary. Award effects exist
   only inside this rectangle and are never rendered over modal copy/page.
   ============================================================ */
.mc-award-preview-visual {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
}
.mc-award-preview-medal-root {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 100%;
}
.mc-award-preview-motion-layer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  transform-origin: center center;
  will-change: transform;
}
.mc-award-preview-visual #portalAwardPreviewImage {
  position: relative;
  z-index: 2;
  transform-origin: center center;
  will-change: transform, filter;
}
.mc-award-preview-visual .mc-award-preview-effects {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
  border-radius: inherit;
}
.mc-award-fx-particle {
  position: absolute;
  display: block;
  pointer-events: none;
  will-change: transform, opacity;
}
.mc-award-fx-particle.is-burst {
  border-radius: 50%;
  box-shadow: 0 0 7px rgba(255, 211, 94, .45);
}
.mc-award-fx-particle.is-speedline {
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.88), rgba(var(--portal-primary-rgb), .72));
  filter: blur(.2px);
}
.mc-award-fx-particle.is-dust {
  border-radius: 50%;
  background: rgba(173, 129, 83, .72);
  box-shadow: 0 0 7px rgba(173,129,83,.24);
}
.mc-award-fx-particle.is-leaf {
  width: 9px;
  height: 5px;
  border-radius: 90% 10% 90% 10%;
  background: linear-gradient(135deg, #9eb757, #4f783e);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}
.mc-award-fx-particle.is-shine {
  top: -18%;
  bottom: -18%;
  left: 34%;
  width: 23%;
  height: 136%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), rgba(255,255,255,.72), rgba(255,255,255,.08), transparent);
  filter: blur(1px);
  mix-blend-mode: screen;
}

.mc-award-fx-particle.is-spark{border-radius:999px;background:linear-gradient(90deg,#fff7bd,#ffc247,#ff7a1a);box-shadow:0 0 7px rgba(255,177,52,.78)}
.mc-award-fx-particle.is-star{color:#ffe680;text-shadow:0 0 8px rgba(255,215,74,.8);font-weight:700;line-height:1}
.mc-award-fx-particle.is-coin{border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff3a4,#ffc531 48%,#b97600);border:1px solid rgba(117,74,0,.35);box-shadow:0 0 7px rgba(255,196,45,.38)}
.mc-award-fx-particle.is-bubble{border-radius:50%;border:1px solid rgba(190,235,255,.75);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),rgba(135,211,255,.15) 55%,rgba(105,173,255,.08));box-shadow:inset -2px -3px 8px rgba(54,125,190,.13)}
.mc-award-fx-particle.is-snow{border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 0 8px rgba(205,235,255,.68)}
.mc-award-fx-particle.is-rain{border-radius:999px;background:linear-gradient(to bottom,rgba(205,235,255,0),rgba(136,204,255,.8))}
.mc-award-fx-particle.is-petal{border-radius:80% 20% 75% 25%;background:linear-gradient(135deg,#ffd5e8,#ff91c0);box-shadow:0 0 5px rgba(255,128,184,.2)}
.mc-award-fx-particle.is-ember{border-radius:50%;background:#ff8b2b;box-shadow:0 0 9px #ff6a00,0 0 15px rgba(255,155,36,.5)}
.mc-award-fx-particle.is-smoke{border-radius:50%;background:rgba(160,170,180,.28);filter:blur(4px)}
.mc-award-fx-particle.is-ring{border-radius:50%;border:2px solid rgba(130,207,255,.7);box-shadow:0 0 10px rgba(83,177,255,.22)}
.mc-award-fx-particle.is-scan{left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,rgba(109,224,255,.85),transparent);box-shadow:0 0 12px rgba(86,213,255,.75)}
.mc-award-fx-particle.is-lightning{background:linear-gradient(180deg,#fffbd0,#ffe34d 45%,#ffb300);filter:drop-shadow(0 0 9px rgba(255,222,73,.95));clip-path:polygon(44% 0,72% 0,58% 38%,86% 38%,26% 100%,42% 56%,14% 56%)}
@media (prefers-reduced-motion: reduce) {
  .mc-award-preview-visual #portalAwardPreviewImage,
  .mc-award-preview-motion-layer,
  .mc-award-fx-particle { will-change: auto; }
}

/* MercargoPortal 1.6.128 · pilot profile links */
.mc-pilot-link {
  color: inherit;
  text-decoration: none !important;
  transition: color .14s ease, opacity .14s ease, transform .14s ease;
}
a.mc-pilot-link:hover, a.mc-pilot-link:focus-visible {
  color: var(--portal-primary);
  text-decoration: none !important;
  opacity: .96;
}
a.mc-pilot-link:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--portal-primary) 42%, transparent);
  outline-offset: 2px;
  border-radius: 4px;
}
@media (prefers-reduced-motion: no-preference) {
  a.mc-pilot-link:hover { transform: translateY(-1px); }
}

/* MercargoPortal 1.6.129 · runway/off-runway visualization. */
.mc-rwy-label,.mc-rwy-zone-label{font-size:13px}
.mc-rwy-touchdown-label{font-size:14px}
.mc-rwy-dimension-label{font-size:14px}
.mc-rwy-offrunway-backdrop{fill:rgba(8,18,31,.92);stroke:rgba(255,59,77,.62);stroke-width:1.5}
.mc-rwy-offrunway-text{font-family:var(--portal-font-headings);font-size:21px;font-weight:950;letter-spacing:.025em;fill:#ff3b4d;paint-order:stroke fill;stroke:rgba(8,18,31,.96);stroke-width:3px;stroke-linejoin:round}
.mc-rwy-offrunway-icon path{fill:#ff3b4d;stroke:rgba(8,18,31,.96);stroke-width:3px;stroke-linejoin:round}
.mc-rwy-offrunway-icon line{stroke:#0b1725;stroke-width:4px;stroke-linecap:round}
.mc-rwy-offrunway-icon circle{fill:#0b1725}


/* MercargoPortal 1.6.134 · Award PIREP provenance */
.mc-award-preview-flights {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--portal-border-current);
}
.mc-award-preview-flights[hidden] { display: none !important; }
.mc-award-preview-flights-title {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
  color: var(--portal-heading-current);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .02em;
}
.mc-award-preview-flights-title i { color: var(--portal-primary); }
.mc-award-preview-flights-list {
  display: grid;
  gap: 5px;
}
.mc-award-preview-flight-row {
  display: grid;
  grid-template-columns: 72px minmax(76px, .8fr) minmax(118px, 1.25fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid color-mix(in srgb, var(--portal-border-current) 78%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--portal-card-bg-current) 95%, var(--portal-primary) 5%);
  font-size: .76rem;
  line-height: 1.25;
}
.mc-award-preview-flight-date,
.mc-award-preview-flight-route {
  color: var(--portal-muted-current);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-award-preview-flight-ident {
  min-width: 0;
  font-weight: 850;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-award-preview-flight-ident a {
  color: var(--portal-primary);
  text-decoration: none;
}
.mc-award-preview-flight-ident a:hover { text-decoration: underline; }
@media (max-width: 650px) {
  .mc-award-preview-flight-row {
    grid-template-columns: 68px minmax(70px, .72fr) minmax(96px, 1.15fr);
    gap: 6px;
    font-size: .72rem;
  }
}

/* MercargoPortal 1.6.135 · Award modal lists every distinct active FPE qualifying PIREP. */


/* MercargoPortal 1.6.137 · 3-row Award viewport + exact 5-row dashboard tables */
.mc-award-preview-flights-list {
  --mc-award-flight-row-height: 34px;
  max-height: calc((var(--mc-award-flight-row-height) * 3) + 10px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.mc-award-preview-flight-row {
  min-height: var(--mc-award-flight-row-height);
}

.mc-dashboard-table-scroll {
  overflow: auto;
  scrollbar-gutter: stable both-edges;
  overscroll-behavior: contain;
}
/* The exact max-height is measured in portal.js from the real header + first
   five rendered rows, so logos/status content cannot leave a sixth partial row. */
.mc-dashboard-table-scroll table thead th {
  position: sticky;
  top: 0;
  z-index: 4;
  background: var(--portal-panel-header-bg-current) !important;
  color: var(--portal-panel-header-text-current) !important;
  box-shadow: 0 1px 0 var(--portal-border-current);
}

/* MercargoPortal 1.6.142 · PIREP identity/actions stay above the image header.
   The image header keeps only status, airport summary and the score bar. */
.mc-pirep-hero.mc-pirep-hero-detail {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 190px;
  margin: 0 0 18px;
  padding: 18px 22px 28px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow-sm, 0 14px 34px rgba(0,0,0,.14));
}
.mc-pirep-hero-detail .mc-pirep-hero-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.mc-pirep-hero-detail .mc-pirep-hero-copy { min-width: 0; }
.mc-pirep-hero-detail .mc-eyebrow {
  color: var(--portal-accent) !important;
  margin-bottom: 3px;
}
.mc-pirep-hero-detail h1 {
  margin: 0;
  color: var(--portal-hero-text) !important;
  font-size: clamp(1.6rem, 2.25vw, 2.15rem);
  line-height: 1.1;
}
.mc-pirep-hero-detail .mc-pirep-hero-meta {
  margin: 7px 0 0;
  color: var(--portal-hero-muted-text) !important;
  font-size: .91rem;
  font-weight: 500;
  line-height: 1.45;
}
.mc-pirep-hero-detail .mc-pirep-hero-link {
  color: inherit !important;
  text-decoration: none !important;
  font-weight: 600;
}
.mc-pirep-hero-detail .mc-pirep-hero-link:hover { text-decoration: underline !important; }
.mc-pirep-hero-detail .mc-pirep-hero-actions { flex: 0 0 auto; }
.mc-pirep-hero-detail .mc-pirep-hero-actions .btn-outline-primary {
  color: var(--portal-hero-text);
  border-color: rgba(255,255,255,.45);
  background: rgba(8,22,34,.28);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.mc-pirep-hero-detail .mc-pirep-hero-actions .btn-outline-primary:hover {
  color: var(--portal-hero-text);
  border-color: rgba(255,255,255,.7);
  background: rgba(8,22,34,.48);
}
.mc-pirep-hero-detail .mc-pirep-hero-status {
  align-items: center;
  margin-bottom: 14px;
}
.mc-pirep-hero-detail .mc-pirep-route-summary {
  margin: 0;
}
.mc-pirep-hero-detail .mc-route-icao,
.mc-pirep-hero-detail .mc-route-name,
.mc-pirep-hero-detail .mc-route-point > .fw-bold,
.mc-pirep-hero-detail .mc-route-point > .mt-2 {
  text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
.mc-pirep-hero-detail .mc-pirep-scorebar {
  position: absolute;
  left: -1px;
  right: -1px;
  bottom: -1px;
  height: 20px;
  margin-top: 0;
  overflow: hidden;
  border-radius: 0 0 var(--portal-radius) var(--portal-radius);
  background: rgba(255,255,255,.18);
}
.mc-pirep-hero-detail .mc-pirep-scorebar .progress-bar {
  border-radius: inherit;
}
.mc-pirep-hero-detail .mc-pirep-scorebar-label {
  position: absolute;
  inset: 0 8px 0 auto;
  z-index: 2;
  display: flex;
  align-items: center;
  color: #fff;
  font-size: calc(.69rem + 1px);
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
  pointer-events: none;
}
@media (max-width: 767.98px) {
  .mc-pirep-hero.mc-pirep-hero-detail { min-height: 0; padding: 16px 16px 26px; }
  .mc-pirep-hero-detail .mc-pirep-hero-head { flex-direction: column; gap: 12px; }
  .mc-pirep-hero-detail .mc-pirep-hero-actions { width: 100%; justify-content: flex-start !important; }
}
@media (max-width: 575.98px) {
  .mc-pirep-hero-detail .mc-route-summary { grid-template-columns: 1fr; gap: 12px; }
  .mc-pirep-hero-detail .mc-route-point:last-child { text-align: left; }
  .mc-pirep-hero-detail .mc-route-line { min-width: 0; }
}

/* 1.6.148 · PIREP detail: applied FPE rules + sortable detail tables */
.mc-runway-fpe-records{margin-top:16px;padding-top:14px;border-top:1px solid var(--portal-border-current,var(--portal-border))}
.mc-runway-fpe-records-head{margin-bottom:10px;font-size:.8rem;font-weight:800;color:var(--portal-muted-current,var(--portal-muted));text-transform:uppercase;letter-spacing:.035em}
.mc-runway-fpe-rule-list{display:grid;gap:8px}
.mc-runway-fpe-rule-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--portal-border-current,var(--portal-border));border-radius:10px;background:var(--portal-card-current,var(--portal-card))}
.mc-runway-fpe-rule-copy{min-width:0}.mc-runway-fpe-rule-copy strong{display:block;overflow-wrap:anywhere}.mc-runway-fpe-rule-copy small{display:block;margin-top:3px;color:var(--portal-muted-current,var(--portal-muted));line-height:1.35}
.mc-runway-fpe-rule-row>.badge{flex:0 0 auto}
.mc-pirep-sortable thead th[data-sort-type]{cursor:pointer;user-select:none;white-space:nowrap}
.mc-pirep-sortable thead th[data-sort-type]::after{content:' ⇅';font-size:.72em;opacity:.35}
.mc-pirep-sortable thead th.is-sort-asc::after{content:' ↑';opacity:.9}
.mc-pirep-sortable thead th.is-sort-desc::after{content:' ↓';opacity:.9}

/* MercargoPortal 1.6.150 · FPE runway cards + bounce contacts */
.mc-runway-stat-fpe small{overflow-wrap:anywhere}
.mc-runway-fpe-score.is-negative{color:#ef6b73!important}.mc-runway-fpe-score.is-positive{color:#34c98a!important}.mc-runway-fpe-score.is-neutral{color:var(--portal-text-current)!important}
.mc-runway-fpe-score span{font-size:.78em;font-weight:650;line-height:1.25;display:inline;color:var(--portal-muted-current)!important}
.mc-rwy-bounce-ring{fill:rgba(90,185,255,.10);stroke:rgba(90,185,255,.72);stroke-width:3.2}
.mc-rwy-bounce-dot{fill:rgba(90,185,255,.82);stroke:rgba(8,18,30,.72);stroke-width:1.5}
.mc-rwy-bounce-label{font-family:var(--portal-font-body);font-size:13px;font-weight:900;fill:rgba(124,202,255,.92)}


/* TransportExperience · reputación / reputación (1.6.153) */
.mc-pirep-trust-badge{background:rgba(var(--portal-primary-rgb),.18)!important;color:#fff!important;border:1px solid rgba(255,255,255,.22)!important}
.mc-trust-tier{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 8px;border:1px solid var(--portal-border-current);border-radius:999px;font-size:.69rem;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.035em;background:rgba(var(--portal-primary-rgb),.055);white-space:nowrap}
.mc-trust-tier-restricted{color:var(--portal-danger);border-color:var(--portal-danger)}
.mc-trust-tier-basic{color:var(--portal-warning);border-color:var(--portal-warning)}
.mc-trust-tier-standard{color:var(--portal-primary);border-color:rgba(var(--portal-primary-rgb),.42)}
.mc-trust-tier-trusted{color:var(--portal-success);border-color:var(--portal-success)}
.mc-trust-tier-premium{color:var(--portal-success);border-color:var(--portal-success);font-weight:900}
.mc-trust-stat-card .mc-stat-label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mc-trust-panel .mc-panel-head{align-items:center}
.mc-trust-profile-summary{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:12px}
.mc-trust-profile-score,.mc-trust-market-state{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:rgba(var(--portal-primary-rgb),.025)}
.mc-trust-profile-score>div:last-child,.mc-trust-market-state>div{min-width:0;display:grid;gap:3px}
.mc-trust-profile-score small,.mc-trust-market-state small{color:var(--portal-muted-current);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.mc-trust-profile-score>div:last-child>strong,.mc-trust-market-state strong{color:var(--portal-text-current);font-size:1rem}
.mc-trust-profile-score p{margin:1px 0 0;color:var(--portal-muted-current);font-size:.78rem}
.mc-trust-score-ring{--mc-trust-score:0;flex:0 0 74px;width:74px;height:74px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at center,var(--portal-surface-current) 56%,transparent 57%),conic-gradient(var(--portal-primary) var(--mc-trust-score),rgba(var(--portal-primary-rgb),.12) 0);border:1px solid var(--portal-border-current)}
.mc-trust-score-ring strong{font-size:1.15rem;line-height:1;color:var(--portal-text-current);font-variant-numeric:tabular-nums}.mc-trust-score-ring span{font-size:.62rem;color:var(--portal-muted-current);margin-top:3px}
.mc-trust-market-icon,.mc-trust-current-icon{flex:0 0 42px;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--portal-primary-rgb),.09);color:var(--portal-primary);font-size:1.15rem}
.mc-trust-ready,.mc-trust-building{display:flex;align-items:center;gap:5px;font-size:.76rem;font-weight:700;margin-top:2px}.mc-trust-ready{color:var(--portal-success)}.mc-trust-building{color:var(--portal-muted-current)}
.mc-trust-dimension-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.mc-trust-dimension-card{padding:12px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:var(--portal-surface-current)}
.mc-trust-dimension-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mc-trust-dimension-head>span:first-child{display:flex;align-items:center;gap:6px;color:var(--portal-muted-current);font-size:.76rem;font-weight:700}.mc-trust-dimension-head i{color:var(--portal-primary)}
.mc-trust-dimension-value{margin:9px 0 7px;color:var(--portal-text-current);font-size:1.28rem;font-weight:800;font-variant-numeric:tabular-nums}.mc-trust-dimension-value small{font-size:.7rem;color:var(--portal-muted-current);margin-left:2px}
.mc-trust-meter{height:6px;border-radius:999px;background:rgba(var(--portal-primary-rgb),.11);overflow:hidden}.mc-trust-meter>span{display:block;height:100%;border-radius:inherit;background:var(--portal-primary)}
.mc-trust-dimension-foot{margin-top:6px;color:var(--portal-muted-current);font-size:.72rem}
.mc-trust-help{padding:10px 12px;border:1px dashed var(--portal-border-current);border-radius:var(--portal-radius);color:var(--portal-muted-current);font-size:.78rem;background:rgba(var(--portal-primary-rgb),.018)}
.mc-trust-pirep-wrap{padding:16px}.mc-trust-pirep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;border-bottom:1px solid var(--portal-border-current)}.mc-trust-pirep-head>div:first-child>strong{display:block;color:var(--portal-text-current);font-size:1rem}
.mc-trust-pirep-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}
.mc-trust-summary-card{min-height:116px;padding:12px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:rgba(var(--portal-primary-rgb),.025);display:flex;flex-direction:column;align-items:flex-start;gap:6px}.mc-trust-summary-card>small{color:var(--portal-muted-current);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.mc-trust-summary-card>strong{font-size:1.35rem;color:var(--portal-text-current);font-variant-numeric:tabular-nums}.mc-trust-summary-card>strong>span{font-size:.68rem;color:var(--portal-muted-current);margin-left:2px}.mc-trust-summary-card .mc-trust-meter{width:100%;margin-top:auto}.mc-trust-summary-text{font-size:1rem!important}.mc-trust-summary-note{font-size:.75rem;color:var(--portal-muted-current);margin-top:auto}
.mc-trust-pirep-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--portal-border-current)}.mc-trust-pirep-section-title{margin-bottom:9px;color:var(--portal-text-current);font-size:.82rem;font-weight:800}
.mc-trust-sample-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:9px}.mc-trust-sample-card{display:grid;gap:5px;padding:11px 12px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:var(--portal-surface-current)}.mc-trust-sample-card small{color:var(--portal-muted-current);font-size:.72rem;font-weight:700}.mc-trust-sample-card strong{font-size:1.08rem;color:var(--portal-text-current)}.mc-trust-sample-card strong span{font-size:.66rem;color:var(--portal-muted-current)}.mc-trust-sample-card .mc-trust-tier{justify-self:start}
.mc-trust-current-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mc-trust-current-card{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--portal-border-current);border-radius:var(--portal-radius);background:rgba(var(--portal-primary-rgb),.02)}.mc-trust-current-copy{min-width:0;display:grid;gap:1px;flex:1}.mc-trust-current-copy small{color:var(--portal-muted-current);font-size:.72rem;font-weight:800;text-transform:uppercase}.mc-trust-current-copy strong{color:var(--portal-text-current);font-size:1rem}.mc-trust-current-copy span{color:var(--portal-muted-current);font-size:.72rem}
@media(max-width:767.98px){.mc-trust-profile-summary{grid-template-columns:1fr}.mc-trust-current-grid{grid-template-columns:1fr}.mc-trust-pirep-head{flex-direction:column}.mc-trust-pirep-head .justify-content-end{justify-content:flex-start!important}}

/* 1.6.154 · reputación dentro de las estadísticas del dashboard */
.mc-dashboard-trust-stat .mc-stat-value{display:flex;align-items:baseline;gap:2px}
.mc-dashboard-trust-stat .mc-stat-value small{font-size:.6em;color:var(--portal-muted-current);font-weight:700}
.mc-dashboard-trust-stat .mc-stat-label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mc-dashboard-trust-stat .mc-trust-tier{font-size:.6rem;padding:2px 6px;min-height:19px}

/* MercargoPortal 1.6.157 · dashboard assignments: 4-row viewport + inline actions */
.mc-dashboard-assignment-list{max-height:304px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--portal-border-current);scrollbar-gutter:stable}
.mc-dashboard-assignment-row{min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--portal-border-current)}
.mc-dashboard-assignment-row:last-child{border-bottom:0}.mc-dashboard-assignment-copy{min-width:0;display:grid;gap:2px}.mc-dashboard-assignment-copy strong,.mc-dashboard-assignment-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-dashboard-assignment-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.mc-dashboard-assignment-actions .btn{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.mc-dashboard-assignment-actions .btn i{margin:0}
@media(max-width:767.98px){.mc-dashboard-assignment-list{max-height:360px}.mc-dashboard-assignment-row{grid-template-columns:1fr;min-height:90px}.mc-dashboard-assignment-actions{justify-content:flex-start}.mc-dashboard-assignment-actions .btn span{display:none}}

/* MercargoPortal 1.6.157 · telemetry pointer-centered horizontal zoom */
.mc-blackbox-zoom-help{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 10px;color:var(--portal-muted-current);font-size:.75rem}.mc-blackbox-zoom-help span{display:inline-flex;align-items:center;gap:6px}.mc-blackbox-zoom-help .btn{white-space:nowrap}.mc-blackbox-stage.is-zoomable canvas{cursor:crosshair}
@media(max-width:575.98px){.mc-blackbox-zoom-help{align-items:flex-start;flex-direction:column}}

/* MercargoPortal 1.6.158 · smooth telemetry zoom + horizontal drag pan */
.mc-blackbox-stage.is-zoomable canvas{cursor:crosshair;touch-action:pan-y}
.mc-blackbox-stage.is-zoomable.is-pannable canvas{cursor:grab}
.mc-blackbox-stage.is-zoomable.is-panning canvas{cursor:grabbing;user-select:none}


/* MercargoPortal 1.6.160 · dashboard clarity pass (no layout/size changes). */
.mc-stat-grid .mc-stat-card {
  position: relative;
  background:
    linear-gradient(135deg, rgba(var(--portal-primary-rgb), .045), transparent 56%),
    var(--portal-surface-current);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.mc-stat-grid a.mc-stat-card:hover,
.mc-stat-grid a.mc-stat-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(var(--portal-primary-rgb), .26);
}
.portal-dashboard-layout .mc-panel-head {
  background:
    linear-gradient(90deg, rgba(var(--portal-primary-rgb), .055), transparent 46%),
    var(--portal-panel-header-bg-current);
}
.portal-dashboard-layout .mc-panel-head > h3 { display:flex; align-items:center; min-width:0; }
.mc-last-pirep-route {
  background: linear-gradient(90deg, rgba(var(--portal-primary-rgb), .025), transparent 50%, rgba(var(--portal-primary-rgb), .025));
}
.portal-dashboard-banner-logo { backdrop-filter: blur(2px); }


/* MercargoPortal 1.6.161 · unified aircraft reservations / active bookings */
.mc-maint-status.is-reserved { color:#7a5b00; background:rgba(255,194,0,.12); border-color:rgba(190,143,0,.30); }
[data-bs-theme="dark"] .mc-maint-status.is-reserved { color:#ffda6a; background:rgba(255,194,0,.12); border-color:rgba(255,218,106,.30); }
.mc-aircraft-booked-badge { white-space:nowrap; }
.mc-aircraft-booking-note { display:flex; align-items:flex-start; gap:.5rem; margin-top:.55rem; padding:.55rem .7rem; border:1px solid var(--portal-border-current); border-radius:.65rem; background:rgba(255,194,0,.07); color:var(--portal-text-current); font-size:.78rem; line-height:1.35; }
.mc-aircraft-booking-note i { flex:0 0 auto; margin-top:.05rem; color:#8a6800; }
[data-bs-theme="dark"] .mc-aircraft-booking-note { background:rgba(255,194,0,.08); }
[data-bs-theme="dark"] .mc-aircraft-booking-note i { color:#ffda6a; }
.mc-flight-reserved-aircraft { display:inline-flex; align-items:center; gap:.35rem; flex-wrap:wrap; }
.mc-flight-reserved-aircraft strong { font-weight:800; }
.mc-flight-reserved-aircraft small { color:var(--portal-muted-current); }

/* Histories keep all rows in data/DOM; only the viewport is capped near 10 rows. */
.mc-aircraft-history-scroll { max-height:510px; overflow:auto!important; scrollbar-gutter:stable; }
.mc-aircraft-history-scroll table { margin-bottom:0; }
.mc-aircraft-history-scroll thead th { position:sticky; top:0; z-index:2; }
.mc-aircraft-reports-card .mc-aircraft-history-scroll tbody tr { min-height:46px; }
.mc-maint-table-wrap.mc-aircraft-history-scroll { max-height:510px; }
