/* Home operations board and active Flight Passport */

/* Active tour journeys: one horizontal feature, or up to three calm cards. */
.ivhome-tour-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:20px; }
.ivhome-tour-card { --tour-surface:#fff; --tour-ink:#10213a; --tour-muted:#52657e; --tour-line:#dce6f1; --tour-label:#eaf2fc; --tour-blue:#1858a9; --tour-green:#087652; --tour-green-soft:#e4f5ed; display:flex; flex-direction:column; min-width:0; border:1px solid var(--tour-line); border-radius:18px; background:var(--tour-surface); box-shadow:0 8px 24px rgba(7,26,51,.06); }
.ivhome-tour-poster { position:relative; display:grid; place-items:center; height:180px; margin:10px 10px 0; overflow:hidden; border-radius:11px; background:#0b2542; }
.ivhome-tour-poster > i { color:#82b8df; font-size:46px; }
.ivhome-tour-poster > img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; background:#0b2542; }
.ivhome-tour-body { display:flex; flex:1; flex-direction:column; min-width:0; padding:21px; }
.ivhome-tour-labels { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:12px; }
.ivhome-tour-legs,.ivhome-tour-joined,.ivhome-tour-rules { display:inline-flex; align-items:center; gap:7px; padding:5px 9px; border-radius:7px; font-size:14px; line-height:1.35; font-weight:500; }
.ivhome-tour-legs { color:var(--tour-blue); background:var(--tour-label); }
.ivhome-tour-rules { color:var(--tour-ink); background:var(--tour-label); }
.ivhome-tour-joined { color:var(--tour-green); background:var(--tour-green-soft); }
body.iv2026-shell .ivhome-tour-body h3 { margin:0 0 12px; color:var(--tour-ink); font-family:var(--iv-font-heading,var(--iv-font-body,sans-serif)); font-size:23px; font-weight:600; line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; }
.ivhome-tour-facts { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px 22px; margin:3px 0 20px; }
.ivhome-tour-facts > div { min-width:0; }
body.iv2026-shell .ivhome .ivhome-tour-facts dt { display:flex; align-items:center; gap:8px; margin:0 0 5px; color:var(--tour-muted); font-size:14px; line-height:1.4; font-weight:400; }
.ivhome-tour-facts dt > i { width:16px; flex:none; color:var(--tour-blue); text-align:center; }
body.iv2026-shell .ivhome .ivhome-tour-facts dd { margin:0; color:var(--tour-ink); font-size:15px; line-height:1.5; font-weight:500; }
.ivhome-tour-itinerary { grid-column:1 / -1; }
body.iv2026-shell .ivhome .ivhome-tour-itinerary dd { display:flex; align-items:center; gap:18px; font-size:23px; line-height:1.3; font-weight:600; letter-spacing:.025em; }
.ivhome-tour-itinerary dd > i { color:var(--tour-blue); font-size:22px; font-weight:400; }
body.iv2026-shell .ivhome .ivhome-tour-participants dd { font-size:23px; line-height:1.3; font-weight:600; font-variant-numeric:tabular-nums; }
.ivhome-tour-period dd { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 5px; }
.ivhome-tour-period time { white-space:normal; }
.ivhome-tour-participants { max-width:94px; }
.ivhome-tour-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:16px; margin-top:auto; padding-top:16px; border-top:1px solid var(--tour-line); }
.ivhome-tour-progress { flex:1 1 160px; min-width:0; color:var(--tour-muted); font-size:14px; line-height:1.4; }
.ivhome-tour-progress > div { height:5px; margin-top:8px; overflow:hidden; border-radius:5px; background:var(--tour-line); }
.ivhome-tour-progress > div > i { display:block; height:100%; border-radius:inherit; background:var(--tour-green); }
body.iv2026-shell .ivhome-tour-open { display:inline-flex; flex:none; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:10px 15px; border:1px solid #c4d8ef; border-radius:10px; background:#fff; color:#174d89; font-size:14px; font-weight:500; line-height:1.4; text-decoration:none; transition:transform .16s ease,box-shadow .16s ease; }
body.iv2026-shell .ivhome-tour-open:hover { color:#174d89; background:#fff; transform:translateY(-2px); box-shadow:0 7px 15px rgba(7,26,51,.12); }
body.iv2026-shell .ivhome-tour-open:focus-visible { outline:3px solid #4eb9e8; outline-offset:4px; }
body.iv2026-shell .ivhome .ivhome-tour-open,
body.iv2026-shell.dark-mode .ivhome .ivhome-tour-open:is(:hover,:focus,:active),
body.iv2026-shell.dark-mode .ivhome .ivhome-tour-open { background:#fff !important; color:#174d89 !important; font-weight:500 !important; }
.ivhome-tour-grid.is-single .ivhome-tour-card { display:grid; grid-template-columns:minmax(180px,260px) minmax(0,1fr); }
.ivhome-tour-grid.is-single .ivhome-tour-poster { height:auto; min-height:200px; margin:10px 0 10px 10px; }
.ivhome-tour-grid.is-single .ivhome-tour-body { padding:24px 28px; }
.ivhome-tour-grid.is-single .ivhome-tour-progress { flex:0 1 320px; margin-right:auto; }
body.iv2026-shell.dark-mode .ivhome-tour-card { --tour-surface:#142237; --tour-ink:#edf5ff; --tour-muted:#b8cadf; --tour-line:#32465f; --tour-label:#1e3b5b; --tour-blue:#a4d6ff; --tour-green:#89e4bc; --tour-green-soft:#163e35; box-shadow:0 8px 24px rgba(0,0,0,.14); }
#iva-tours { scroll-margin-top:165px; }
@media(min-width:1150px) {
  .ivhome-tour-grid.is-single .ivhome-tour-facts { grid-template-columns:minmax(170px,1fr) minmax(240px,1.6fr) auto; align-items:start; gap:22px; }
  .ivhome-tour-grid.is-single .ivhome-tour-itinerary { grid-column:auto; }
}
@media(max-width:600px) {
  .ivhome-tour-grid.is-single .ivhome-tour-card { display:flex; }
  .ivhome-tour-grid.is-single .ivhome-tour-poster { height:190px; min-height:0; margin:10px 10px 0; }
  .ivhome-tour-grid.is-single .ivhome-tour-body,.ivhome-tour-body { padding:18px; }
  .ivhome-tour-grid.is-single .ivhome-tour-progress { flex:1 1 150px; }
  .ivhome-tour-itinerary { grid-column:auto; order:1; }
  .ivhome-tour-participants { order:2; }
  .ivhome-tour-period { grid-column:1 / -1; order:3; }
  body.iv2026-shell .ivhome .ivhome-tour-itinerary dd { gap:8px; font-size:20px; }
  .ivhome-tour-itinerary dd > i { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  body.iv2026-shell .ivhome-tour-open { transition:none; }
  body.iv2026-shell .ivhome-tour-open:hover { transform:none; }
}

.ivhome {
  --home-navy: #071a33;
  --home-navy-2: #0d2c55;
  --home-blue: #1d63d8;
  --home-cyan: #4eb9e8;
  --home-green: #13a878;
  --home-ink: #10213a;
  --home-muted: #65758c;
  --home-line: #dce6f1;
  --home-paper: #f3f6fa;
  padding: 4px 0 54px;
  color: var(--home-ink);
}

.ivhome a:hover { text-decoration: none; }
.ivhome [hidden] { display: none !important; }

.ivhome-command {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, 0.7fr);
  min-height: 510px;
  overflow: hidden;
  border-radius: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 62% 12%, rgba(78, 185, 232, 0.24), transparent 20rem),
    radial-gradient(circle at -5% 110%, rgba(29, 99, 216, 0.34), transparent 30rem),
    linear-gradient(126deg, #06162d 0%, #0a2445 58%, #0b315e 100%);
  box-shadow: 0 28px 70px rgba(7, 26, 51, 0.22);
}

.ivhome-command::before {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  opacity: 0.14;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.09) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(90deg, #000, transparent 76%);
}

.ivhome-route-sky {
  position: absolute;
  top: 34px;
  right: 29%;
  left: 44%;
  height: 130px;
  pointer-events: none;
}

.ivhome-route-line {
  position: absolute;
  inset: 24px 0 auto;
  height: 86px;
  border-top: 1px dashed rgba(117, 205, 244, 0.62);
  border-radius: 50%;
  transform: rotate(-7deg);
}

.ivhome-route-plane {
  position: absolute;
  top: 12px;
  left: 56%;
  color: #89d9fa;
  font-size: 19px;
  text-shadow: 0 0 20px rgba(78, 185, 232, 0.9);
  transform: rotate(40deg);
  animation: ivhome-plane-pulse 3.2s ease-in-out infinite;
}

@keyframes ivhome-plane-pulse {
  0%, 100% { transform: rotate(40deg) scale(1); opacity: 0.78; }
  50% { transform: rotate(40deg) scale(1.07); opacity: 1; }
}

.ivhome-command-main {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 58px 56px 44px;
}

.ivhome-eyebrow,
.ivhome-section-kicker,
.ivhome-passport-kicker,
.ivfp-eyebrow {
  font-family: var(--iv-font-data, monospace);
  font-size:var(--iv-type-small);
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.ivhome-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #91d8f7;
}

.ivhome-eyebrow i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #35d6a4;
  box-shadow: 0 0 0 5px rgba(53, 214, 164, 0.14);
}

.ivhome-command h1 {
  max-width: 790px;
  margin: 21px 0 18px;
  color: #fff !important;
  font-family: var(--iv-font-display, sans-serif);
  font-size: clamp(38px, 4.1vw, 64px);
  font-weight: 750;
  line-height: 1.02;
  letter-spacing: -0.055em;
}

.ivhome-command h1 em {
  color: #83d2f5;
  font-style: normal;
}

.ivhome-command-main > p {
  max-width: 680px;
  margin: 0;
  color: rgba(235, 244, 255, 0.76);
  font-size: 16px;
  line-height: 1.7;
}

.ivhome-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.ivhome-btn {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 11px 17px;
  border: 1px solid transparent;
  border-radius: 11px;
  font-family: var(--iv-font-display, sans-serif);
  font-size: 14px;
  font-weight:600;
}

.ivhome-btn-primary {
  color: #fff !important;
  background: linear-gradient(135deg, #2777ea, #1d63d8);
  box-shadow: 0 12px 28px rgba(29, 99, 216, 0.36);
}

.ivhome-btn-primary:hover { background: linear-gradient(135deg, #3685f5, #236bdc); }

.ivhome-btn-ghost {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.22);
}

.ivhome-btn-ghost:hover { background: rgba(255, 255, 255, 0.13); }

.ivhome-btn-text { color: #b6d9f7 !important; }
.ivhome-btn-text:hover { color: #fff !important; }
.ivhome-discord-icon { width: 17px; height: 17px; flex: none; object-fit: contain; filter: brightness(0) invert(1); }

.ivhome-live-strip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.ivhome-live-strip > div {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  min-width: 116px;
  margin-right: 22px;
  padding-right: 22px;
  border-right: 1px solid rgba(255, 255, 255, 0.13);
}

.ivhome-live-strip strong {
  grid-row: span 2;
  align-self: center;
  color: #fff;
  font-family: var(--iv-font-data, monospace);
  font-size: 24px;
  line-height: 1;
}

.ivhome-live-strip small { align-self: center; color: rgba(226, 240, 255, 0.66); font-size:var(--iv-type-small); }
.ivhome-live-strip > a { margin-left: auto; color: #8fd9f8 !important; font-size: 13px; font-weight: 750; }
.ivhome-live-strip > a i { margin-left: 6px; }
.ivhome-live-dot { display: none; }

.ivhome-next {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 18px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 19px;
  background: rgba(255, 255, 255, 0.085);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 24px 55px rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(17px);
}

.ivhome-next-label {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  color: #9dddfa;
  font-family: var(--iv-font-data, monospace);
  font-size:var(--iv-type-small);
  font-weight: 700;
  letter-spacing: 0.13em;
}

.ivhome-next-poster {
  height: 118px;
  margin: 22px 0 -56px;
  border-radius: 13px;
  opacity: 0.60;
  background-position: center;
  background-size: cover;
  mask-image: linear-gradient(#000, transparent 92%);
}

.ivhome-next-date {
  position: relative;
  z-index: 2;
  display: grid;
  width: 82px;
  margin-top: 26px;
  padding: 11px 10px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 12px;
  text-align: center;
  background: rgba(5, 22, 44, 0.5);
}

.ivhome-next-date strong { color: #fff; font-family: var(--iv-font-data, monospace); font-size: 27px; line-height: 1; }
.ivhome-next-date span { margin-top: 4px; color: #8bd3f2; font-size:var(--iv-type-small); font-weight: 650; letter-spacing: 0.12em; }
.ivhome-next-date small { margin-top: 7px; color: rgba(255, 255, 255, 0.7); font-family: var(--iv-font-data, monospace); }

.ivhome-next h2 {
  position: relative;
  z-index: 2;
  margin: 22px 0 12px;
  color: #fff !important;
  font-size: 24px;
  line-height: 1.2;
}

.ivhome-next-route {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 24px;
  color: #fff;
  font-family: var(--iv-font-data, monospace);
  font-size: 15px;
  font-weight: 700;
}

.ivhome-next-route i { flex: 1; border-top: 1px dashed rgba(146, 214, 245, 0.5); }
.ivhome-next-route b { color: #82d2f5; font-size: 13px; transform: rotate(8deg); }
.ivhome-next > a, .ivhome-next-empty a { margin-top: auto; color: #9edfff !important; font-weight: 750; }
.ivhome-next > a i { margin-left: 7px; }
.ivhome-next-empty { display: flex; flex: 1; flex-direction: column; justify-content: center; }
.ivhome-next-empty > i { color: #8dd6f6; font-size: 36px; }
.ivhome-next-empty p { color: rgba(255,255,255,.68); }

.ivhome-next-fallback { position: relative; z-index: 2; display: flex; flex: 1; flex-direction: column; padding-top: 25px; }
.ivhome-fallback-kicker { display: flex; align-items: center; gap: 8px; color: #8dd6f6; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-caption); font-weight: 650; letter-spacing: .1em; }
.ivhome-fallback-kicker i { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid rgba(141,214,246,.35); border-radius: 50%; font-size:var(--iv-type-small); }
.ivhome-next-fallback h2 { margin: 16px 0 7px; }
.ivhome-next-fallback > p { max-width: 470px; margin: 0; color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.55; }
.ivhome-fallback-route { margin: 20px 0 16px; }
.ivhome-fallback-data { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 12px 8px 11px; border-top: 1px solid rgba(157,223,250,.2); border-bottom: 1px solid rgba(157,223,250,.2); }
.ivhome-fallback-data > span { display: flex; min-width: 0; min-height: 48px; align-items: center; flex-direction: column; justify-content: flex-start; gap: 6px; padding: 0 clamp(5px,1vw,13px); text-align: center; }
.ivhome-fallback-data > span + span { border-left: 1px solid rgba(157,223,250,.16); }
.ivhome-fallback-data small { display: block; order: 2; color: rgba(194,222,241,.68); font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-overline); line-height: 1.3; letter-spacing: .07em; overflow-wrap: break-word; white-space: normal; }
.ivhome-fallback-data strong { display: block; order: 1; color: #fff; font-family: var(--iv-font-data, monospace); font-size: 16px; font-weight: 650; line-height: 1.1; letter-spacing: -.01em; white-space: nowrap; }
.ivhome-fallback-actions { display: flex; align-items: center; gap: 15px; margin-top: auto; padding-top: 17px; }
.ivhome-fallback-actions a { color: #9edfff !important; font-size:var(--iv-type-small); font-weight:600; }
.ivhome-fallback-actions a:first-child { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 8px 12px; border: 1px solid rgba(157,223,250,.35); border-radius: 9px; background: rgba(12,69,111,.38); }

.ivhome-pilot-strip {
  position: relative;
  display: grid;
  grid-template-columns: minmax(250px, 1.08fr) minmax(0, 2.45fr) 104px;
  min-height: 124px;
  align-items: stretch;
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid #c9dcec;
  border-radius: 21px;
  background:
    repeating-linear-gradient(0deg, transparent 0 29px, rgba(66,124,179,.035) 29px 30px),
    linear-gradient(118deg, #fbfdff 0%, #f3f8fd 50%, #ffffff 100%);
  box-shadow: 0 18px 42px rgba(12, 40, 75, .13), 0 3px 9px rgba(12,40,75,.05);
}

.ivhome-pilot-strip::before {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  content: "";
  background: linear-gradient(90deg, #16835d 0 33.333%, #f8fbff 33.333% 66.666%, #ce3d50 66.666% 100%);
  box-shadow: 0 1px 0 rgba(17,55,91,.08);
}

.ivhome-pilot-label {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
  padding: 24px 22px 21px 25px;
  border-right: 1px solid #d6e3ef;
  background: linear-gradient(135deg, rgba(229,241,252,.88), rgba(249,252,255,.48));
}

.ivhome-logbook-avatar {
  position: relative;
  display: grid;
  width: 58px;
  height: 58px;
  flex: none;
  place-items: center;
  overflow: hidden;
  border: 3px solid #fff;
  border-radius: 50%;
  color: #1769e0;
  background: #e5f0fb;
  box-shadow: 0 0 0 1px #b8d1e8, 0 8px 20px rgba(15,59,103,.16);
}

.ivhome-logbook-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
body.iv2026-shell.dark-mode .ivhome-logbook-avatar { border-color: #263b55; color: #8fc2ff; background: #14263d; box-shadow: 0 0 0 1px #456688, 0 8px 20px rgba(0,0,0,.28); }
body.iv2026-shell.dark-mode .ivhome-logbook-avatar > i { color: #8fc2ff !important; }
.ivhome-pilot-label > div { min-width: 0; }
.ivhome-pilot-label small { display: block; color: #1769e0; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-overline); font-weight: 650; letter-spacing: .13em; }
.ivhome-pilot-label strong { display: block; margin-top: 6px; color: #10243f; font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
.ivhome-pilot-label p { margin: 4px 0 0; color: #708198; font-size:var(--iv-type-small); line-height: 1.35; }

.ivhome-logbook-metrics { display: grid; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ivhome-logbook-metrics article { display: flex; min-width: 0; align-items: center; gap: 10px; padding: 20px 15px; border-right: 1px solid #dbe6f0; }
.ivhome-logbook-metrics article > i { display: grid; width: 31px; height: 31px; flex: none; place-items: center; border: 1px solid #c8dced; border-radius: 9px; color: #1769e0; background: rgba(235,245,253,.9); font-size: 12px; box-shadow: inset 0 1px 0 #fff; }
.ivhome-logbook-metrics article:nth-child(3) > i { color: #08775a; background: #e7f7f1; border-color: #c9e9dd; }
.ivhome-logbook-metrics article > div { min-width: 0; }
.ivhome-logbook-metrics strong { display: block; color: #10243f; font-family: var(--iv-font-data, monospace); font-size: 18px; line-height: 1.15; overflow-wrap: anywhere; }
.ivhome-logbook-metrics span { display: block; margin-top: 7px; color: #2d435f; font-size: 12px; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; }
.ivhome-logbook-metrics small { display: block; margin-top: 4px; color: #687a90; font-size:var(--iv-type-small); font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }

.ivhome-logbook-open {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  padding: 16px 10px;
  border-left: 1px dashed #b9cede;
  color: #1769e0 !important;
  background: linear-gradient(135deg, rgba(231,242,252,.66), rgba(255,255,255,.9));
  font-size:var(--iv-type-overline);
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
  text-transform: uppercase;
  transition: color .16s ease, background-color .16s ease;
}

.ivhome-logbook-open::before,
.ivhome-logbook-open::after { position: absolute; left: -7px; width: 13px; height: 13px; border-radius: 50%; content: ""; background: #edf4fa; box-shadow: inset 0 0 0 1px rgba(174,199,220,.55); }
.ivhome-logbook-open::before { top: -7px; }
.ivhome-logbook-open::after { bottom: -7px; }
.ivhome-logbook-open i { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #1769e0, #3d84e8); font-size: 12px; box-shadow: 0 7px 16px rgba(23,105,224,.24); transition: transform .16s ease; }
.ivhome-logbook-open:hover { color: #0d58bd !important; background: #f3f9fe; }
.ivhome-logbook-open:hover i { transform: none; }
.ivhome-logbook-open:focus-visible { outline: 3px solid rgba(23,105,224,.28); outline-offset: -4px; }

.ivhome-section { margin-top: 42px; }

.ivhome-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 16px;
}

.ivhome-section-head.compact { align-items: center; }
.ivhome-section-head > div { position: relative; padding-left: 15px; }
.ivhome-section-head > div::before { position: absolute; top: 1px; bottom: 2px; left: 0; width: 3px; border-radius: 99px; content: ""; background: linear-gradient(180deg, #1769e0, #59bde6); box-shadow: 0 0 0 4px rgba(23,105,224,.07); }
.ivhome-section-kicker { display: block; color: var(--home-blue); font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-caption); font-weight: 650; letter-spacing: .13em; }
.ivhome-section-head h2 { margin: 5px 0 1px; color: var(--home-ink) !important; font-size: 27px; letter-spacing: -0.035em; }
.ivhome-section-head p { margin: 0; color: var(--home-muted); font-size: 13px; }
.ivhome-section-head > a { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 7px; padding: 8px 12px; border: 1px solid #1769e0; border-radius: 10px; color: #fff !important; background: linear-gradient(135deg, #2777ea, #1d63d8); font-size:var(--iv-type-small); font-weight: 650; box-shadow: 0 8px 19px rgba(29,99,216,.22); transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.ivhome-section-head > a:hover { border-color: #236bdc; color: #fff !important; background: linear-gradient(135deg, #3685f5, #236bdc); box-shadow: 0 11px 24px rgba(29,99,216,.28); transform: translateY(-1px); }
.ivhome-section-head > a i { margin-left: 6px; }

.ivhome-airspace-module {
  overflow: hidden;
  border: 1px solid #d5e1ed;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(12, 40, 75, .1);
}

.ivhome-ops-head {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(230px, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  overflow: hidden;
  margin-bottom: 0;
  padding: 15px 17px;
  border: 0;
  border-bottom: 1px solid rgba(122, 186, 230, .24);
  border-radius: 0;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 42px 100%,
    linear-gradient(115deg, #071b34 0%, #0b315c 58%, #0c426d 100%);
  box-shadow: none;
}

.ivhome-ops-head::after {
  position: absolute;
  right: -80px;
  bottom: -125px;
  width: 310px;
  height: 230px;
  border: 1px solid rgba(125, 208, 242, .11);
  border-radius: 50%;
  content: "";
  box-shadow: 0 0 0 38px rgba(125,208,242,.035), 0 0 0 76px rgba(125,208,242,.022);
  pointer-events: none;
}

.ivhome-ops-radar {
  position: relative;
  z-index: 1;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(129, 216, 247, .42);
  border-radius: 50%;
  color: #9ce5ff;
  background: repeating-radial-gradient(circle, rgba(111,204,238,.13) 0 1px, transparent 1px 11px), rgba(14, 71, 112, .55);
  box-shadow: inset 0 0 18px rgba(95,205,239,.08), 0 8px 22px rgba(0,0,0,.16);
}

.ivhome-ops-radar::after {
  position: absolute;
  inset: -8px;
  content: "";
  background: conic-gradient(from 10deg, transparent 0 78%, rgba(104,224,207,.3) 94%, transparent 100%);
  animation: ivhome-radar-sweep 4s linear infinite;
}

.ivhome-ops-radar > i { position: relative; z-index: 2; color: rgba(156,229,255,.7); font-size: 16px; }
.ivhome-ops-radar-contacts { position: absolute; z-index: 3; inset: 0; pointer-events: none; }
.ivhome-ops-radar-contacts > i { position: absolute; width: 5px; height: 5px; transform: translate(-50%,-50%); border: 1px solid rgba(226,255,248,.8); border-radius: 50%; background: #58e4b7; box-shadow: 0 0 0 3px rgba(88,228,183,.1), 0 0 9px rgba(88,228,183,.9); animation: ivhome-radar-contact 2.4s ease-in-out infinite; }
.ivhome-ops-radar-contacts > i:nth-child(1) { top: 22%; left: 68%; animation-delay: -.2s; }
.ivhome-ops-radar-contacts > i:nth-child(2) { top: 65%; left: 27%; animation-delay: -.6s; }
.ivhome-ops-radar-contacts > i:nth-child(3) { top: 49%; left: 79%; animation-delay: -1s; }
.ivhome-ops-radar-contacts > i:nth-child(4) { top: 28%; left: 25%; animation-delay: -1.4s; }
.ivhome-ops-radar-contacts > i:nth-child(5) { top: 75%; left: 64%; animation-delay: -1.8s; }
.ivhome-ops-radar-contacts > i:nth-child(6) { top: 50%; left: 45%; animation-delay: -2.2s; }
.ivhome-ops-radar-overflow { position: absolute; z-index: 4; right: 3px; bottom: 3px; min-width: 19px; padding: 1px 4px; border: 1px solid rgba(156,229,255,.38); border-radius: 999px; color: #dff8ff; background: rgba(3,25,46,.88); font-family: var(--iv-font-data, monospace); font-size: 8px; font-weight: 650; line-height: 1.2; text-align: center; box-shadow: 0 3px 8px rgba(0,0,0,.24); }
.ivhome-ops-radar-overflow[hidden] { display: none; }
@keyframes ivhome-radar-sweep { to { transform: rotate(360deg); } }
@keyframes ivhome-radar-contact { 50% { opacity: .55; transform: translate(-50%,-50%) scale(.78); } }

.ivhome-ops-title { position: relative; z-index: 1; min-width: 0; }
.ivhome-ops-kicker { display: flex; align-items: center; gap: 7px; color: #8fd8f5; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-overline); font-weight: 650; letter-spacing: .13em; }
.ivhome-ops-kicker > i { width: 6px; height: 6px; border-radius: 50%; background: #43dda8; box-shadow: 0 0 0 4px rgba(67,221,168,.12); }
.ivhome-ops-kicker > b { padding-left: 7px; border-left: 1px solid rgba(143,216,245,.3); color: #62e2b6; font-size:var(--iv-type-overline); }
.ivhome-ops-title h2 { margin: 3px 0 2px; color: #fff !important; font-size: 24px; letter-spacing: -.025em; }
.ivhome-ops-title p { margin: 0; color: #b9cee2; font-size:var(--iv-type-small); }

.ivhome-ops-readouts { position: relative; z-index: 1; display: flex; align-items: stretch; overflow: hidden; border: 1px solid rgba(165,208,238,.2); border-radius: 12px; background: rgba(4,24,45,.33); }
.ivhome-ops-readouts > span { display: grid; grid-template-columns: 22px auto; grid-template-rows: auto auto; min-width: 114px; align-content: center; padding: 8px 11px; }
.ivhome-ops-readouts > span + span { border-left: 1px solid rgba(165,208,238,.16); }
.ivhome-ops-readouts i { grid-row: 1 / 3; align-self: center; color: #7dcfea; font-size: 13px; }
.ivhome-ops-readouts b { color: #fff; font-family: var(--iv-font-data, monospace); font-size: 14px; line-height: 1; }
.ivhome-ops-readouts small { margin-top: 3px; color: #9fb8cf; font-size:var(--iv-type-overline); font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }

.ivhome-ops-open { position: relative; z-index: 1; display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 10px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.7); border-radius: 11px; color: #0b315c !important; background: #fff; font-size:var(--iv-type-small); font-weight: 700; box-shadow: 0 7px 18px rgba(0,0,0,.13); white-space: nowrap; transition: transform .16s ease, box-shadow .16s ease; }
.ivhome-ops-open:hover { color: #0b315c !important; box-shadow: 0 10px 24px rgba(0,0,0,.18); transform: translateY(-1px); }

.ivhome-flight-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.ivhome-board-loading,
.ivhome-board-empty {
  grid-column: 1 / -1;
  display: flex;
  min-height: 150px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 28px;
  border: 1px dashed #c6d5e7;
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.68);
}

.ivhome-board-loading span {
  width: 28px;
  height: 28px;
  border: 3px solid #d7e4f4;
  border-top-color: var(--home-blue);
  border-radius: 50%;
  animation: ivhome-spin 0.8s linear infinite;
}

@keyframes ivhome-spin { to { transform: rotate(360deg); } }
.ivhome-board-loading p { margin: 0; color: var(--home-muted); }
.ivhome-board-empty { justify-content: flex-start; }
.ivhome-board-empty > div { flex: 1; }
.ivhome-board-empty strong { display: block; color: var(--home-ink); font-size: 16px; }
.ivhome-board-empty p { margin: 4px 0 0; color: var(--home-muted); font-size: 13px; }
.ivhome-board-empty > a { padding: 10px 14px; border-radius: 9px; color: #fff !important; background: var(--home-blue); font-weight: 750; }

.ivhome-board-radar {
  position: relative;
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  overflow: hidden;
  border: 1px solid #cfe0f3;
  border-radius: 50%;
  color: var(--home-blue);
  background: #eef5fd;
}

.ivhome-board-radar i { position: absolute; width: 44px; height: 44px; border: 1px solid #c8dcf2; border-radius: 50%; }

/* Live operations radar */
.ivhome-live-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  min-height: 430px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.ivhome-airspace-module > .ivhome-board-loading,
.ivhome-airspace-module > .ivhome-airspace-empty {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.ivhome-mini-map-wrap {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: #dce7f0;
}

.ivhome-mini-map { width: 100%; height: 430px; background: #dce7f0; }
.ivhome-mini-map.is-unavailable { background: radial-gradient(circle at center, transparent 0 18%, rgba(39,94,145,.12) 18.3% 18.6%, transparent 19% 35%, rgba(39,94,145,.1) 35.3% 35.6%, transparent 36%), linear-gradient(135deg,#dce9f3,#eef4f8); }
.ivhome-mini-map-wrap::after { position: absolute; z-index: 400; inset: 0; pointer-events: none; content: ""; box-shadow: inset -28px 0 38px rgba(7, 31, 60, .07); }

.ivhome-map-live {
  position: absolute;
  z-index: 500;
  top: 15px;
  left: 15px;
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 0 8px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 11px;
  color: #fff;
  background: rgba(7, 26, 51, .9);
  box-shadow: 0 7px 20px rgba(7, 26, 51, .2);
  backdrop-filter: blur(8px);
}

.ivhome-map-live > span { grid-row: 1 / 3; width: 9px; height: 9px; border-radius: 50%; background: #3ddeaa; box-shadow: 0 0 0 5px rgba(61,222,170,.15); animation: ivhome-live-pulse 1.8s ease-out infinite; }
.ivhome-map-live strong { font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-small); letter-spacing: .13em; }
.ivhome-map-live small { color: #b9cee4; font-size:var(--iv-type-overline); }

@keyframes ivhome-live-pulse {
  50% { box-shadow: 0 0 0 9px rgba(61,222,170,0); }
}

.ivhome-map-open {
  position: absolute;
  z-index: 500;
  right: 15px;
  bottom: 15px;
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 10px;
  color: #fff !important;
  background: rgba(7,26,51,.88);
  font-size:var(--iv-type-small);
  font-weight: 650;
  box-shadow: 0 7px 20px rgba(7,26,51,.18);
  backdrop-filter: blur(7px);
}

.ivhome-flight-strip-panel { display: flex; min-width: 0; flex-direction: column; border-left: 1px solid #dce5ef; background: #f8fbfe; }
.ivhome-flight-strip-head { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 16px; border-bottom: 1px solid #dfe8f1; background: #fff; }
.ivhome-flight-strip-head span { display: block; color: var(--home-blue); font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-overline); font-weight: 650; letter-spacing: .13em; }
.ivhome-flight-strip-head strong { display: block; margin-top: 4px; color: var(--home-ink); font-size: 13px; }
.ivhome-flight-strip-head > b { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #1769e0; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-small); box-shadow: 0 6px 14px rgba(23,105,224,.23); }

.ivhome-flight-strip-list { display: grid; grid-template-columns: minmax(0,1fr); align-content: start; gap: 7px; max-height: 364px; overflow-x: hidden; overflow-y: auto; padding: 9px; scrollbar-color: #b9c9db transparent; scrollbar-width: thin; }
.ivhome-flight-strip { display: block; width: 100%; min-width: 0; max-width: 100%; padding: 9px 10px; border: 1px solid #dce6f0; border-radius: 12px; color: var(--home-ink) !important; background: #fff; box-shadow: 0 5px 16px rgba(20,49,84,.045); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.ivhome-flight-strip:hover { border-color: #9fc0e8; box-shadow: 0 9px 24px rgba(23,105,224,.1); transform: translateY(-1px); }
.ivhome-flight-strip.is-group { border-color: #c9c5f2; }

.ivhome-flight-strip-top { display: flex; min-width: 0; align-items: center; gap: 8px; }
.ivhome-flight-avatar { position: relative; display: grid; width: 32px; height: 32px; flex: none; place-items: center; overflow: hidden; border: 2px solid #fff; border-radius: 50%; color: #1769e0; background: #e7f0fc; box-shadow: 0 3px 11px rgba(16,43,77,.13); }
.ivhome-flight-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ivhome-flight-strip-top > div { min-width: 0; flex: 1; }
.ivhome-flight-strip-top > div > strong { display: block; overflow: hidden; color: #20334d; font-size:var(--iv-type-small); text-overflow: ellipsis; white-space: nowrap; }
.ivhome-flight-statusline { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-top: 1px; }
.ivhome-flight-strip-top small { display: flex; align-items: center; gap: 5px; margin-top: 2px; color: #74869b; font-size:var(--iv-type-overline); font-weight: 750; }
.ivhome-flight-statusline small { margin-top: 0; }
.ivhome-flight-strip-top small i { width: 6px; height: 6px; border-radius: 50%; background: #98a7b7; }
.ivhome-flight-strip-top small.is-live { color: #087759; }
.ivhome-flight-strip-top small.is-live i { background: #15ad7c; box-shadow: 0 0 0 3px rgba(21,173,124,.12); }
.ivhome-flight-strip-top small.is-stale { color: #9a6414; }
.ivhome-flight-strip-top small.is-stale i { background: #d69a37; }
.ivhome-flight-strip-top small.is-paused { color: #995810; }
.ivhome-flight-strip-top small.is-paused i { background: #e39022; box-shadow: 0 0 0 3px rgba(227,144,34,.14); }
.ivhome-multiplayer-state { display: inline-flex; min-width: 0; align-items: center; gap: 4px; padding: 2px 5px; border-radius: 6px; color: #78889b; background: #eef2f6; font-size:var(--iv-type-overline); font-style: normal; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.ivhome-flight-strip-top small.ivhome-multiplayer-state i.fa,
.ivhome-multiplayer-state i.fa { width: auto; height: auto; flex: none; border-radius: 0; color: currentColor; background: transparent; box-shadow: none; font-size:var(--iv-type-overline); }
.ivhome-multiplayer-state.is-online { color: #07805e; background: #e2f7ef; }
.ivhome-multiplayer-state.is-offline { color: #6d7988; background: #eef2f6; }
.ivhome-multiplayer-state.is-unknown { color: #8b6528; background: #fff4df; }
.ivhome-flight-strip-top em { margin-left: auto; padding: 3px 6px; border-radius: 99px; color: #66778b; background: #edf2f7; font-size:var(--iv-type-overline); font-style: normal; font-weight: 650; text-transform: uppercase; white-space: nowrap; }
.ivhome-flight-strip.is-group .ivhome-flight-strip-top em { color: #5148ae; background: #eae8ff; }

.ivhome-flight-strip-route { display: flex; align-items: center; gap: 7px; margin: 9px 0 6px; }
.ivhome-flight-strip-route > strong { color: #10213a; font-family: var(--iv-font-data, monospace); font-size: 15px; }
.ivhome-flight-strip-route > span { display: flex; min-width: 35px; flex: 1; align-items: center; gap: 4px; color: #3975cc; }
.ivhome-flight-strip-route > span i { flex: 1; border-top: 1px dashed #b7c7d8; }
.ivhome-flight-strip-route > span b { font-size:var(--iv-type-overline); transform: rotate(7deg); }
.ivhome-flight-strip-progress { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; margin-top: 1px; }
.ivhome-flight-strip-progress > span { position: relative; display: block; height: 7px; overflow: visible; border: 1px solid #d4e0eb; border-radius: 99px; background: #edf2f7; box-shadow: inset 0 1px 2px rgba(21,54,88,.08); }
.ivhome-flight-strip-progress > span > i { position: relative; display: block; min-width: 5px; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#1769e0,#49b8e7); box-shadow: 0 0 10px rgba(73,184,231,.22); }
.ivhome-flight-strip-progress > span > i::after { position: absolute; top: 50%; right: -3px; width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: #2d9fdb; box-shadow: 0 2px 7px rgba(23,105,224,.28); content: ""; transform: translateY(-50%); }
.ivhome-flight-strip-progress > b { color: #61758d; font-family: var(--iv-font-data, monospace); font-size: var(--iv-type-overline); font-weight: 650; line-height: 1; }
.ivhome-flight-strip.is-group .ivhome-flight-strip-progress > span > i { background: linear-gradient(90deg,#5148ae,#8c82e8); box-shadow: 0 0 10px rgba(140,130,232,.22); }
.ivhome-flight-strip.is-group .ivhome-flight-strip-progress > span > i::after { background: #7369d5; box-shadow: 0 2px 7px rgba(81,72,174,.3); }
.ivhome-flight-strip-data { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 7px; }
.ivhome-flight-strip-data span { display: flex; min-width: 0; min-height: 25px; align-items: center; gap: 5px; padding: 4px 6px; border-radius: 7px; color: #637b98; background: #f0f5fa; }
.ivhome-flight-strip-data i { flex: none; color: #3975cc; font-size: 11px; }
.ivhome-flight-strip-data strong { display: block; overflow: hidden; color: #344860; font-size:var(--iv-type-small); text-overflow: ellipsis; white-space: nowrap; }

.ivhome-airspace-empty {
  display: flex;
  min-height: 116px;
  align-items: center;
  gap: 17px;
  padding: 20px 22px;
  border: 1px solid #cfdeed;
  border-radius: 18px;
  background: linear-gradient(105deg, #f8fbff, #eef5fc);
  box-shadow: 0 10px 30px rgba(12,40,75,.055);
}

.ivhome-airspace-empty > div:not(.ivhome-airspace-empty-actions) { flex: 1; }
.ivhome-airspace-empty > div > strong { display: block; color: var(--home-ink); font-size: 16px; }
.ivhome-airspace-empty > div > p { margin: 4px 0 0; color: var(--home-muted); font-size: 12px; }
.ivhome-airspace-empty-radar { position: relative; display: grid; width: 58px; height: 58px; flex: none; place-items: center; overflow: hidden; border: 1px solid #c5d9ed; border-radius: 50%; color: #1769e0; background: #e8f2fd; }
.ivhome-airspace-empty-radar::before,.ivhome-airspace-empty-radar i { position: absolute; border: 1px solid #c1d8ee; border-radius: 50%; content: ""; }
.ivhome-airspace-empty-radar::before { width: 44px; height: 44px; }
.ivhome-airspace-empty-radar i { width: 25px; height: 25px; }
.ivhome-airspace-empty-radar b { position: relative; z-index: 1; transform: rotate(-8deg); }
.ivhome-airspace-empty-actions { display: flex; align-items: center; gap: 8px; }
.ivhome-airspace-empty-actions a { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 8px 13px; border: 1px solid #c4d4e6; border-radius: 9px; color: #31516f !important; background: #fff; font-size:var(--iv-type-small); font-weight:600; }
.ivhome-airspace-empty-actions a.is-primary { border-color: #1769e0; color: #fff !important; background: #1769e0; }

.ivhome-map-plane-icon { border: 0 !important; background: transparent !important; }
.ivhome-map-plane { display: grid; width: 40px; height: 40px; place-items: center; color: #0d4f8b; filter: drop-shadow(0 3px 2px rgba(255,255,255,.95)) drop-shadow(0 6px 8px rgba(7,38,78,.38)); transform: rotate(calc(var(--heading) - 45deg)); transform-origin: center; transition: transform .85s cubic-bezier(.22,.61,.36,1); will-change: transform; }
.ivhome-map-plane.is-group { color: #554cae; }
.ivhome-map-plane i { font-size: 29px; -webkit-text-stroke: 2px #fff; paint-order: stroke fill; }
.ivhome-airport-icon { border: 0 !important; background: transparent !important; }
.ivhome-airport-pin { display: flex; align-items: center; gap: 4px; color: #15395f; filter: drop-shadow(0 2px 2px rgba(255,255,255,.95)); white-space: nowrap; }
.ivhome-airport-pin::before { width: 9px; height: 9px; flex: none; border: 2px solid #fff; border-radius: 50%; background: #15395f; box-shadow: 0 1px 5px rgba(0,0,0,.28); content: ""; }
.ivhome-airport-pin span { padding: 2px 5px; border: 1px solid rgba(21,57,95,.12); border-radius: 5px; color: #173556; background: rgba(255,255,255,.94); font-family: var(--iv-font-data, monospace); font-size: 11px; font-weight: 700; line-height: 1.35; box-shadow: 0 3px 9px rgba(10,40,73,.1); }
body.iv2026-shell.dark-mode .ivhome-airport-pin { color: #dcecff; filter: drop-shadow(0 2px 4px rgba(0,0,0,.5)); }
body.iv2026-shell.dark-mode .ivhome-airport-pin::before { border-color: #b9d9ff; background: #4b9cff; }
body.iv2026-shell.dark-mode .ivhome-airport-pin span { border-color: #4b6e94; color: #f3f8ff !important; background: #102844; box-shadow: 0 4px 12px rgba(0,0,0,.32); }
.leaflet-tooltip.ivhome-airport-tooltip { min-width: 145px; padding: 8px 10px; border: 0; border-radius: 9px; color: #fff; background: #0a2849; box-shadow: 0 7px 20px rgba(7,26,51,.25); }
.leaflet-tooltip.ivhome-airport-tooltip::before { border-top-color: #0a2849; }
.leaflet-tooltip.ivhome-airport-tooltip strong,.leaflet-tooltip.ivhome-airport-tooltip span { display: block; }
.leaflet-tooltip.ivhome-airport-tooltip strong { font-family: var(--iv-font-data, monospace); font-size: var(--iv-type-small); }
.leaflet-tooltip.ivhome-airport-tooltip span { margin-top: 2px; color: #c0d1e2; font-size: var(--iv-type-overline); }
.leaflet-tooltip.ivhome-map-tooltip { min-width: 150px; padding: 9px 11px; border: 0; border-radius: 10px; color: #fff; background: #0a2849; box-shadow: 0 7px 20px rgba(7,26,51,.25); }
.leaflet-tooltip.ivhome-map-tooltip::before { border-top-color: #0a2849; }
.leaflet-tooltip.ivhome-map-tooltip strong,.leaflet-tooltip.ivhome-map-tooltip span,.leaflet-tooltip.ivhome-map-tooltip small { display: block; }
.leaflet-tooltip.ivhome-map-tooltip strong { font-size:var(--iv-type-small); }
.leaflet-tooltip.ivhome-map-tooltip span { margin-top: 3px; color: #9dd8f3; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-small); }
.leaflet-tooltip.ivhome-map-tooltip small { margin-top: 2px; color: #c0d1e2; font-size:var(--iv-type-overline); }
.ivhome-mini-map .leaflet-control-attribution { font-size:var(--iv-type-overline); }

.ivhome-live-card {
  padding: 18px;
  border: 1px solid var(--home-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(12, 40, 75, 0.065);
}

.ivhome-live-card-head { display: flex; align-items: center; gap: 10px; }
.ivhome-live-avatar { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #1875c9, #18a890); }
.ivhome-live-card-head > div { min-width: 0; }
.ivhome-live-card-head strong { display: block; overflow: hidden; color: var(--home-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.ivhome-live-card-head small { display: flex; align-items: center; gap: 5px; color: var(--home-green); font-size:var(--iv-type-caption); font-weight: 750; text-transform: uppercase; }
.ivhome-live-card-head small i { width: 6px; height: 6px; border-radius: 50%; background: var(--home-green); }
.ivhome-live-card-head em { margin-left: auto; padding: 4px 7px; border-radius: 99px; color: #64758b; background: #edf2f7; font-size:var(--iv-type-caption); font-style: normal; font-weight: 750; white-space: nowrap; }
.ivhome-live-card-head em.is-group { color: #087759; background: #dff6ed; }

.ivhome-live-route { display: flex; align-items: center; gap: 8px; margin: 21px 0 9px; }
.ivhome-live-route strong { color: var(--home-ink); font-family: var(--iv-font-data, monospace); font-size: 20px; }
.ivhome-live-route span { display: flex; flex: 1; align-items: center; gap: 6px; color: var(--home-blue); }
.ivhome-live-route span i { flex: 1; border-top: 1px dashed #b9cade; }
.ivhome-live-route span b { font-size: 12px; transform: rotate(7deg); }
.ivhome-live-progress { overflow: hidden; height: 4px; border-radius: 99px; background: #eaf0f6; }
.ivhome-live-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1d63d8, #4eb9e8); }
.ivhome-live-data { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }
.ivhome-live-data span { min-width: 0; }
.ivhome-live-data small { display: block; color: #8190a4; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-overline); letter-spacing: .08em; }
.ivhome-live-data strong { display: block; overflow: hidden; margin-top: 2px; color: #31445e; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-small); text-overflow: ellipsis; white-space: nowrap; }

.ivhome-two-column { display: grid; grid-template-columns: minmax(0, 1fr) minmax(410px, 0.92fr); gap: 18px; margin-top: 42px; }
.ivhome-two-column > .ivhome-section { margin-top: 0; }
.ivhome-events-panel { display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--home-line); border-radius: 19px; background: #fff; box-shadow: 0 12px 35px rgba(12,40,75,.07); }
.ivhome-events-panel .ivhome-section-head { margin-bottom: 17px; }
.ivhome-events-panel .ivhome-section-head h2 { font-size: 23px; }
.ivhome-event-list { display: grid; flex: 1; align-content: start; gap: 9px; }
.ivhome-event-ticket { display: grid; grid-template-columns: 66px minmax(0, 1fr) 34px; align-items: center; min-height: 78px; overflow: hidden; border: 1px solid #e1e8f1; border-radius: 12px; color: var(--home-ink) !important; background: #f9fbfd; transition: border-color .16s ease, transform .16s ease; }
.ivhome-event-ticket:hover { border-color: #a9c5e8; transform: translateY(-1px); }
.ivhome-ticket-date { display: grid; height: 100%; place-content: center; text-align: center; color: #fff; background: linear-gradient(145deg, #123b6d, #1d63d8); }
.ivhome-ticket-date strong { font-family: var(--iv-font-data, monospace); font-size: 22px; line-height: 1; }
.ivhome-ticket-date small { margin-top: 4px; font-size:var(--iv-type-caption); letter-spacing: .12em; }
.ivhome-event-ticket.is-shared { border-color: #bfe3d6; background: linear-gradient(105deg, #f8fcfb, #f0faf6); }
.ivhome-event-ticket.is-shared:hover { border-color: #72bda4; }
.ivhome-event-ticket.is-shared .ivhome-ticket-date { background: linear-gradient(145deg, #08775c, #0aa077); }
.ivhome-event-ticket.is-shared .ivhome-ticket-date i { font-size: 20px; }
.ivhome-event-ticket.is-shared .ivhome-ticket-date small { color: #d8fff3; font-weight: 650; }
.ivhome-event-ticket.is-imminent { position: relative; isolation: isolate; border-color: #e7bd5c; background: linear-gradient(108deg, #fff7d9 0%, #fffdf7 56%, #fff2c3 100%); box-shadow: 0 11px 26px rgba(137,82,0,.14), inset 0 0 0 1px rgba(255,255,255,.82); }
.ivhome-event-ticket.is-imminent:hover { border-color: #cf8b11; box-shadow: 0 14px 31px rgba(137,82,0,.2), inset 0 0 0 1px rgba(255,255,255,.9); }
.ivhome-event-ticket.is-imminent .ivhome-ticket-date { background: linear-gradient(145deg, #8f4d00, #e69a19); box-shadow: inset -1px 0 rgba(255,255,255,.22); }
.ivhome-event-ticket.is-imminent .ivhome-ticket-date small { color: #fff3c4; font-weight: 650; }
.ivhome-ticket-main { min-width: 0; padding: 12px 15px; }
.ivhome-ticket-main strong { display: block; overflow: hidden; color: var(--home-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.ivhome-ticket-main small { display: block; margin-top: 5px; color: var(--home-muted); font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-caption); }
.ivhome-ticket-urgent { display: inline-flex; align-items: center; gap: 5px; margin-right: 8px; padding: 3px 7px; border: 1px solid #e5b64d; border-radius: 99px; color: #754100; background: rgba(255,255,255,.72); font-family: var(--iv-font-body, sans-serif); font-size: 11px; font-style: normal; font-weight: 650; letter-spacing: .045em; line-height: 1; text-transform: uppercase; vertical-align: middle; white-space: nowrap; }
.ivhome-ticket-urgent i { color: #c87900; font-size: 11px; animation: ivhome-imminent-pulse 1.8s ease-in-out infinite; }
@keyframes ivhome-imminent-pulse { 50% { opacity: .42; transform: scale(.88); } }
.ivhome-ticket-open { color: var(--home-blue); }

.ivhome-event-invite { display: grid; grid-template-columns: 43px minmax(0,1fr) auto; min-height: 96px; align-items: center; gap: 12px; margin-top: auto; padding: 14px; border: 1px dashed #b9cde5; border-radius: 12px; color: var(--home-ink); background: linear-gradient(105deg,#f4f8fd,#edf4fc); }
.ivhome-event-invite-icon { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 11px; color: #1769e0; background: #dfeeff; box-shadow: inset 0 0 0 1px rgba(23,105,224,.08); }
.ivhome-event-invite-copy { min-width: 0; }
.ivhome-event-invite-copy strong { display: block; color: var(--home-ink); font-size: 12px; }
.ivhome-event-invite-copy small { display: block; max-width: 320px; margin-top: 4px; color: var(--home-muted); font-size:var(--iv-type-small); line-height: 1.35; }
.ivhome-event-invite > a { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; padding: 8px 11px; border: 1px solid #bfd2e8; border-radius: 9px; color: #225a98 !important; background: #fff; font-size:var(--iv-type-small); font-weight: 650; white-space: nowrap; }

.ivhome-panel-empty { display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; padding: 24px; border: 1px dashed #cad7e7; border-radius: 13px; text-align: center; color: var(--home-muted); background: #f8fbff; }
.ivhome-panel-empty > i { margin-bottom: 10px; color: var(--home-blue); font-size: 25px; }
.ivhome-panel-empty strong { color: var(--home-ink); }
.ivhome-panel-empty span { margin-top: 4px; font-size: 12px; }

.ivhome-passport-panel { display: grid; grid-template-columns: .82fr 1.18fr; min-height: 355px; overflow: hidden; border-radius: 19px; box-shadow: 0 18px 45px rgba(33, 27, 13, 0.16); }
.ivhome-passport-cover { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 31px; color: #e9d59b; background: radial-gradient(circle at 50% 37%, rgba(224,190,105,.1), transparent 12rem), linear-gradient(145deg, #193f3d, #0f2e31); border-right: 4px solid #c6a858; }
.ivhome-passport-cover::after { position: absolute; inset: 10px; border: 1px solid rgba(224,196,125,.26); border-radius: 10px; content: ""; pointer-events: none; }
.ivhome-passport-emblem { position: relative; z-index: 1; display: grid; width: 62px; height: 62px; place-items: center; margin-bottom: 22px; border: 1px solid rgba(229,203,136,.7); border-radius: 50%; }
.ivhome-passport-emblem i { font-size: 17px; transform: rotate(-10deg); }
.ivhome-passport-emblem span { position: absolute; bottom: 7px; font-family: serif; font-size:var(--iv-type-caption); }
.ivhome-passport-kicker { position: relative; z-index: 1; color: #ceb873; }
.ivhome-passport-cover h2 { position: relative; z-index: 1; margin: 9px 0 14px; color: #f2dda4 !important; font-family: Georgia, serif !important; font-size: 35px; font-weight: 500; line-height: .96; letter-spacing: .01em; text-transform: uppercase; }
.ivhome-passport-rule { position: relative; z-index: 1; width: 43px; border-top: 2px solid #cbb269; }
.ivhome-passport-cover p { position: relative; z-index: 1; margin: 13px 0 0; color: rgba(238,220,169,.72); font-size:var(--iv-type-small); }
.ivhome-passport-page { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 34px; overflow: hidden; color: #302d25; background: repeating-linear-gradient(0deg, rgba(72,58,32,.025), rgba(72,58,32,.025) 1px, transparent 1px, transparent 23px), linear-gradient(145deg,#fbf5e8,#f1e5cd); }
.ivhome-passport-page::before { position: absolute; top: 0; bottom: 0; left: 0; width: 12px; content: ""; background: linear-gradient(90deg,rgba(41,29,12,.19),transparent); }
.ivhome-passport-page-no { color: #876d37; font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-caption); font-weight: 700; letter-spacing: .13em; }
.ivhome-passport-page h3 { max-width: 260px; margin: 12px 0 8px; color: #2d302a !important; font-family: Georgia, serif !important; font-size: 24px; line-height: 1.08; }
.ivhome-passport-page p { max-width: 310px; margin: 0; color: #6e6656; font-size: 12px; line-height: 1.55; }
.ivhome-passport-progress { margin-top: 23px; }
.ivhome-passport-progress > div { overflow: hidden; height: 6px; border-radius: 99px; background: rgba(70,57,30,.13); }
.ivhome-passport-progress span { display: block; height: 100%; background: #a33035; }
.ivhome-passport-progress strong { display: block; margin-top: 6px; color: #675d49; font-size:var(--iv-type-small); }
.ivhome-passport-page > a { align-self: flex-start; margin-top: 21px; color: #8c2d34 !important; font-weight: 650; }
.ivhome-passport-page > a i { margin-left: 6px; }
.ivhome-passport-stamp { position: absolute; right: 17px; bottom: 20px; display: grid; width: 78px; height: 78px; place-content: center; border: 3px double rgba(151,43,48,.45); border-radius: 50%; color: rgba(151,43,48,.58); font-family: var(--iv-font-data, monospace); font-size:var(--iv-type-caption); font-weight: 650; line-height: 1.2; text-align: center; transform: rotate(-12deg); }

.ivhome-arrivals-board {
  overflow: hidden;
  border: 1px solid #d8e3ef;
  border-radius: 19px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(12, 40, 75, 0.09);
}

.ivhome-arrivals-bar {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 21px;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 38px 100%,
    linear-gradient(110deg, #071a33, #0c315d);
}

.ivhome-arrivals-bar > span {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .02em;
}

.ivhome-arrivals-bar > span i {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(145, 216, 247, .35);
  border-radius: 50%;
  color: #91d8f7;
  background: rgba(145, 216, 247, .08);
  transform: rotate(-8deg);
}

.ivhome-arrivals-bar > small {
  color: rgba(233, 244, 255, .72);
  font-family: var(--iv-font-data, monospace);
  font-size:var(--iv-type-caption);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ivhome-arrivals-columns,
.ivhome-arrival-row {
  display: grid;
  grid-template-columns: 82px minmax(142px, 1fr) minmax(205px, 1.35fr) 96px 116px 108px 136px;
  align-items: center;
  column-gap: 18px;
}

.ivhome-arrivals-columns {
  min-height: 36px;
  padding: 0 21px;
  color: #77879a;
  background: #f4f7fb;
  border-bottom: 1px solid #e1e9f2;
  font-family: var(--iv-font-data, monospace);
  font-size:var(--iv-type-caption);
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.ivhome-arrival-row {
  position: relative;
  min-height: 92px;
  padding: 12px 21px;
  border-bottom: 1px solid #e5ecf3;
  color: var(--home-ink) !important;
  text-decoration: none !important;
  transition: background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ivhome-arrival-row:last-child { border-bottom: 0; }
.ivhome-arrival-row.is-linked:hover { z-index: 1; background: #f2f8ff; box-shadow: inset 4px 0 #1769e0; transform: translateX(2px); }
.ivhome-arrival-row.is-linked:focus-visible { z-index: 2; outline: 3px solid rgba(23,105,224,.28); outline-offset: -3px; background: #f2f8ff; }

.ivhome-arrival-row > time strong,
.ivhome-arrival-aircraft strong,
.ivhome-arrival-landing strong {
  display: block;
  color: var(--home-ink);
  font-family: var(--iv-font-data, monospace);
}

.ivhome-arrival-row > time strong { font-size: 16px; line-height: 1; }
.ivhome-arrival-row > time small { display: block; margin-top: 5px; color: #8290a2; font-size:var(--iv-type-small); font-weight: 750; letter-spacing: .05em; line-height: 1.2; }

.ivhome-arrival-pilot { display: flex; min-width: 0; align-items: center; gap: 10px; }
.ivhome-arrival-pilot > span { position: relative; display: grid; width: 38px; height: 38px; flex: none; place-items: center; overflow: hidden; border: 2px solid #fff; border-radius: 50%; color: #1769e0; background: #eaf2fd; box-shadow: 0 3px 12px rgba(16, 43, 77, .13); }
.ivhome-arrival-pilot > span > .ivhome-arrival-avatar-fallback { position: relative; z-index: 0; color: #1769e0; font-size: 14px; }
.ivhome-arrival-pilot > span.is-fallback { border-color: #d7e5f4; background: linear-gradient(145deg, #edf5ff, #dfeaf8); box-shadow: inset 0 0 0 1px rgba(23,105,224,.06), 0 3px 12px rgba(16,43,77,.13); }
.ivhome-arrival-pilot > span img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ivhome-arrival-pilot > div { min-width: 0; }
.ivhome-arrival-pilot strong { display: block; overflow: hidden; color: #20334d; font-size: 12px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.ivhome-arrival-pilot small { display: block; overflow: hidden; margin-top: 2px; color: #78889b; font-size:var(--iv-type-small); text-overflow: ellipsis; white-space: nowrap; }
.ivhome-arrival-pilot .ivhome-multiplayer-state { margin-top: 5px; font-size:var(--iv-type-caption); }
.ivhome-arrival-pilot .ivhome-multiplayer-state i.fa { font-size:var(--iv-type-caption); }

.ivhome-arrival-route { display: flex; min-width: 0; align-items: center; gap: 10px; }
.ivhome-arrival-route > strong { color: #10213a; font-family: var(--iv-font-data, monospace); font-size: 20px; letter-spacing: .025em; }
.ivhome-arrival-route > span { display: flex; min-width: 44px; flex: 1; align-items: center; gap: 6px; color: #3975cc; }
.ivhome-arrival-route > span i { flex: 1; border-top: 1px dashed #b4c5d8; }
.ivhome-arrival-route > span b { font-size:var(--iv-type-small); transform: rotate(7deg); }

.ivhome-arrival-details-toggle { display: none; }
.ivhome-arrival-details { display: contents; }
body.iv2026-shell .ivhome-arrival-details[hidden] { display: contents !important; }
.ivhome-arrival-details-label-open { display: none; }

.ivhome-arrival-aircraft strong { font-size: 12px; }
.ivhome-arrival-aircraft small { display: block; margin-top: 4px; color: #7e8da0; font-size:var(--iv-type-small); line-height: 1.2; }

.ivhome-arrival-landing {
  position: relative;
  padding-left: 13px;
}

.ivhome-arrival-landing::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 3px;
  border-radius: 99px;
  content: "";
  background: #9aa8b8;
}

.ivhome-arrival-landing strong { font-size: 14px; line-height: 1.15; }
.ivhome-arrival-landing small { display: block; margin-top: 3px; color: #76869a; font-size:var(--iv-type-small); line-height: 1.2; white-space: nowrap; }
.ivhome-arrival-landing.is-smooth::before { background: #11a979; }
.ivhome-arrival-landing.is-smooth strong { color: #08795a; }
.ivhome-arrival-landing.is-standard::before { background: #3975cc; }
.ivhome-arrival-landing.is-standard strong { color: #245b9f; }
.ivhome-arrival-landing.is-firm::before { background: #d59a28; }
.ivhome-arrival-landing.is-firm strong { color: #936510; }
.ivhome-arrival-landing.is-review::before { background: #d34d5b; }
.ivhome-arrival-landing.is-review strong { color: #ad3441; }

.ivhome-arrival-mode {
  justify-self: start;
  padding: 6px 9px;
  border-radius: 99px;
  color: #66768a;
  background: #edf2f7;
  font-size:var(--iv-type-caption);
  font-style: normal;
  font-weight: 650;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ivhome-arrival-mode.is-group { color: #087759; background: #dff6ed; }

.ivhome-arrival-status {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 5px;
  padding: 6px 9px;
  border: 1px solid transparent;
  border-radius: 99px;
  font-size:var(--iv-type-caption);
  font-style: normal;
  font-weight: 700;
  letter-spacing: .025em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ivhome-arrival-status.is-accepted { border-color: #bce6d7; color: #087557; background: #e5f8f1; }
.ivhome-arrival-status.is-pending { border-color: #ead497; color: #7b5b10; background: #fff4d6; }
.ivhome-arrival-status.is-rejected { border-color: #efbdc3; color: #a12e3b; background: #ffe9ec; }

/* Active Flight Passport */
.ivfp-page { padding: 4px 0 48px; }
.ivfp-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.ivfp-heading h1 { margin: 5px 0 3px; color: var(--iv-text-strong) !important; font-size: 34px; }
.ivfp-heading p { margin: 0; color: var(--iv-muted); }
.ivfp-eyebrow { color: var(--iv-blue); }
.ivfp-active-badge { display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid #b9e4d5; border-radius: 99px; color: #087557; background: #e7f8f1; font-size:var(--iv-type-small); font-weight: 650; }
.ivfp-active-badge span { width: 7px; height: 7px; border-radius: 50%; background: #13a878; box-shadow: 0 0 0 4px rgba(19,168,120,.12); }
.ivfp-viewing { display: flex; align-items: center; gap: 8px; margin: 16px 0; padding: 10px 13px; border: 1px solid var(--iv-line); border-radius: 10px; color: var(--iv-text); background: var(--iv-surface); }
.ivfp-book { margin-top: 16px; }
.ivfp-cover-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px; background: linear-gradient(110deg,#133b39,#0c292d); }
.ivfp-cover-identity { display: flex; align-items: center; gap: 12px; }
.ivfp-cover-mark { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid #d7c17d; border-radius: 50%; color: #e8d28f; font-family: Georgia,serif; font-weight: 650; }
.ivfp-cover-identity strong, .ivfp-cover-identity small { display: block; }
.ivfp-cover-identity strong { color: #f1dfaa; font-size: 12px; letter-spacing: .1em; }
.ivfp-cover-identity small { margin-top: 2px; color: rgba(238,220,168,.68); font-family: var(--iv-font-data,monospace); font-size:var(--iv-type-caption); }
.ivfp-week-form { display: flex; align-items: center; gap: 7px; }
.ivfp-week-form label { margin: 0; color: rgba(255,255,255,.74) !important; font-size:var(--iv-type-small); font-weight: 700; text-transform: uppercase; }
.ivfp-week-form .form-control { min-width: 145px; color: #18302d; background: #f5ecd7; border-color: #cdbd90; }
.ivfp-go { min-height: 32px !important; color: #18302d !important; background: #dbc47f; }
.ivfp-visa-row { display: grid; grid-template-columns: minmax(260px,.9fr) minmax(300px,1.1fr); gap: 15px; padding: 4px 0 20px 40px; }
.ivfp-passport-id { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid rgba(68,54,27,.13); border-radius: 12px; background: rgba(255,255,255,.36); }
.ivfp-passport-photo { display: grid; width: 58px; height: 66px; flex: none; place-items: center; border: 1px solid rgba(67,56,34,.22); color: #6d674f; background: rgba(120,103,65,.08); font-size: 21px; }
.ivfp-passport-id span:not(.ivfp-passport-photo), .ivfp-passport-id strong, .ivfp-passport-id small { display: block; }
.ivfp-passport-id span:not(.ivfp-passport-photo) { color: #8b7b5d; font-family: var(--iv-font-data,monospace); font-size:var(--iv-type-overline); letter-spacing: .12em; }
.ivfp-passport-id strong { margin: 3px 0; color: #2d302a; font-size: 13px; }
.ivfp-passport-id small { color: #786f5d; font-size:var(--iv-type-caption); }
.ivfp-progress-card { display: flex; flex-direction: column; justify-content: center; }
.ivfp-wingman-card { margin: 0 0 24px 40px; }
.ivfp-stamp-heading { padding-left: 40px; }
.ivfp-page-number { color: #927a4f; font-family: var(--iv-font-data,monospace); font-size:var(--iv-type-caption); font-weight: 650; letter-spacing: .13em; }
.ivfp-stamp-count { padding: 7px 10px; border: 1px dashed rgba(62,48,25,.28); border-radius: 8px; color: #6f624c; font-family: var(--iv-font-data,monospace); font-weight: 650; }
.ivfp-page .passport-grid > [class*="col-"] { display: flex; }
.ivfp-page .passport-stamp { width: 100%; min-height: 292px; }
.ivfp-empty { padding: 30px; border: 1px dashed var(--iv-line); border-radius: 13px; color: var(--iv-muted); text-align: center; background: var(--iv-surface-soft); }

.ivfp-ranking-card, .ivfp-debrief-card { margin-top: 18px; overflow: hidden; border: 1px solid var(--iv-line); border-radius: 17px; background: var(--iv-surface); box-shadow: var(--iv-shadow-sm); }
.ivfp-ranking-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--iv-line); }
.ivfp-ranking-head strong, .ivfp-ranking-head small { display: block; }
.ivfp-ranking-head strong { color: var(--iv-text-strong); font-size: 17px; }
.ivfp-ranking-head small { margin-top: 3px; color: var(--iv-muted); }
.ivfp-search { position: relative; margin: 0; }
.ivfp-search i { position: absolute; top: 50%; left: 12px; color: var(--iv-muted); transform: translateY(-50%); }
.ivfp-search input { min-width: 245px; height: 40px; padding: 8px 12px 8px 34px; border: 1px solid var(--iv-line-strong); border-radius: 10px; color: var(--iv-text); background: var(--iv-surface-soft); }
.ivfp-ranking-list { display: grid; }
.ivfp-ranking-row { display: grid; grid-template-columns: 40px 42px minmax(0,1fr) 80px 20px; align-items: center; gap: 11px; min-height: 72px; padding: 10px 20px; border-bottom: 1px solid var(--iv-line); color: var(--iv-text) !important; }
.ivfp-ranking-row:last-child { border-bottom: 0; }
.ivfp-ranking-row:hover { background: var(--iv-surface-soft); }
.ivfp-ranking-row.is-me { background: var(--iv-blue-soft); }
.ivfp-rank-number { color: var(--iv-blue); font-family: var(--iv-font-data,monospace); font-weight: 650; }
.ivfp-rank-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: #fff; background: linear-gradient(135deg,#1d63d8,#4eb9e8); font-weight: 650; }
.ivfp-rank-pilot strong, .ivfp-rank-pilot small, .ivfp-rank-progress strong, .ivfp-rank-progress small { display: block; }
.ivfp-rank-pilot small, .ivfp-rank-progress small { color: var(--iv-muted); font-size:var(--iv-type-small); }
.ivfp-rank-progress { text-align: right; }
.ivfp-rank-progress strong { color: var(--iv-text-strong); font-family: var(--iv-font-data,monospace); font-size: 17px; }
.ivfp-debrief-feed { display: grid; }
.ivfp-debrief-item { display: flex; align-items: center; gap: 14px; min-height: 83px; padding: 13px 20px; border-bottom: 1px solid var(--iv-line); }
.ivfp-debrief-item:last-child { border-bottom: 0; }
.ivfp-debrief-seal { display: grid; width: 45px; height: 45px; flex: none; place-items: center; border: 2px double rgba(167,48,54,.55); border-radius: 50%; color: #a73036; background: #fff4f0; transform: rotate(-8deg); }
.ivfp-debrief-main { flex: 1; min-width: 0; }
.ivfp-debrief-top { display: flex; justify-content: space-between; gap: 10px; }
.ivfp-debrief-top strong { color: var(--iv-text-strong); }
.ivfp-debrief-top time { color: var(--iv-muted); font-family: var(--iv-font-data,monospace); font-size:var(--iv-type-caption); }
.ivfp-debrief-stamp { margin-top: 3px; color: var(--iv-muted); font-size: 12px; }
.ivfp-debrief-route { display: flex; align-items: center; gap: 8px; margin-top: 6px; color: var(--iv-blue); font-family: var(--iv-font-data,monospace); font-size:var(--iv-type-small); font-weight: 700; }
.ivfp-debrief-open { color: var(--iv-blue) !important; }

body.iv2026-shell.dark-mode .ivhome { --home-ink: var(--iv-text-strong); --home-muted: var(--iv-muted); --home-line: var(--iv-line); }
body.iv2026-shell.dark-mode :where(.ivhome-pilot-strip,.ivhome-live-card,.ivhome-events-panel,.ivhome-arrivals-board) { background: var(--iv-surface); }
body.iv2026-shell.dark-mode :where(.ivhome-pilot-label,.ivhome-event-ticket,.ivhome-panel-empty,.ivhome-board-empty) { background: var(--iv-surface-soft); }
body.iv2026-shell.dark-mode .ivhome-ticket-date { background: linear-gradient(145deg,#194276,#1d63d8); }
body.iv2026-shell.dark-mode .ivhome-event-ticket.is-imminent { border-color:#a87924; background:linear-gradient(108deg,#3d3016,#272b31 58%,#3b2d12); box-shadow:0 11px 26px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,216,131,.08); }
body.iv2026-shell.dark-mode .ivhome-event-ticket.is-imminent .ivhome-ticket-date { background:linear-gradient(145deg,#7a4200,#c67f10); }
body.iv2026-shell.dark-mode .ivhome-ticket-urgent { border-color:#8b651f;color:#ffe4a4;background:rgba(73,52,17,.82); }
body.iv2026-shell.dark-mode .ivhome-live-data strong,
body.iv2026-shell.dark-mode .ivhome-arrival-pilot strong,
body.iv2026-shell.dark-mode .ivhome-arrival-route > strong,
body.iv2026-shell.dark-mode .ivhome-arrival-row > time strong,
body.iv2026-shell.dark-mode .ivhome-arrival-aircraft strong { color: var(--iv-text); }
body.iv2026-shell.dark-mode .ivhome-arrivals-columns { background: var(--iv-surface-soft); }
body.iv2026-shell.dark-mode .ivhome-arrival-row { border-bottom-color: var(--iv-line); }
body.iv2026-shell.dark-mode .ivhome-arrival-row:hover { background: var(--iv-surface-soft); }
body.iv2026-shell.dark-mode .ivhome-arrival-details-toggle { border-color: #34485f; color: #c8daed; background: #182437; box-shadow: inset 0 1px rgba(255,255,255,.025); }
body.iv2026-shell.dark-mode .ivhome-arrival-details-toggle:hover { border-color: #496786; background: #1c2b40; }
body.iv2026-shell.dark-mode .ivhome-arrival-details { border-top-color: #34485f; }
body.iv2026-shell.dark-mode :where(.ivhome-live-workspace,.ivhome-flight-strip-head,.ivhome-flight-strip) { background: var(--iv-surface); }
body.iv2026-shell.dark-mode :where(.ivhome-flight-strip-panel,.ivhome-airspace-empty) { background: var(--iv-surface-soft); }

@media (max-width: 1280px) {
  .ivhome-arrivals-columns,
  .ivhome-arrival-row { grid-template-columns: 78px minmax(130px,1fr) minmax(190px,1.3fr) 92px 108px 102px; }
  .ivhome-arrivals-col-mode,
  .ivhome-arrival-mode { display: none; }
}

@media (max-width: 1100px) {
  .ivhome-command { grid-template-columns: minmax(0,1.35fr) minmax(295px,.75fr); }
  .ivhome-command-main { padding: 48px 36px 38px; }
  .ivhome-flight-board { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ivhome-arrivals-columns,
  .ivhome-arrival-row { grid-template-columns: 78px minmax(130px,1fr) minmax(190px,1.3fr) 92px 108px 102px; }
  .ivhome-arrivals-col-mode,
  .ivhome-arrival-mode { display: none; }
  .ivhome-pilot-strip { grid-template-columns: minmax(220px,.95fr) minmax(0,2.1fr) 82px; }
  .ivhome-logbook-metrics article { gap: 7px; padding-right: 10px; padding-left: 10px; }
  .ivhome-logbook-metrics article > i { width: 28px; height: 28px; }
  .ivhome-logbook-metrics strong { font-size: 15px; }
  .ivhome-logbook-open span { display: none; }
}

@media (max-width: 900px) {
  .ivhome-command { grid-template-columns: 1fr; }
  .ivhome-next { min-height: 340px; margin-top: 0; }
  .ivhome-route-sky { right: 10%; left: 57%; }
  .ivhome-two-column { grid-template-columns: 1fr; }
  .ivhome-passport-panel { min-height: 340px; }
  .ivhome-passport-cover { min-height: 220px; padding: 26px 24px; }
  .ivhome-passport-emblem { display: none; }
  .ivhome-pilot-strip { grid-template-columns: minmax(0,1fr) 76px; }
  .ivhome-pilot-label { grid-column: 1; border-right: 0; }
  .ivhome-logbook-metrics { grid-row: 2; grid-column: 1 / -1; border-top: 1px solid #d6e3ef; }
  .ivhome-logbook-open { grid-row: 1; grid-column: 2; border-top: 0; border-left: 1px dashed #c4d7e7; }
  .ivfp-heading { align-items: flex-start; flex-direction: column; }
  .ivfp-visa-row { grid-template-columns: 1fr; }
  .ivhome-live-workspace { grid-template-columns: 1fr; }
  .ivhome-ops-head { grid-template-columns: 52px minmax(0,1fr) auto; }
  .ivhome-ops-readouts { grid-column: 2 / -1; }
  .ivhome-mini-map { height: 340px; }
  .ivhome-flight-strip-panel { border-top: 1px solid #dce5ef; border-left: 0; }
  .ivhome-flight-strip-list { max-height: 500px; }

  .ivhome-arrivals-columns { display: none; }
  .ivhome-arrival-row {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "pilot time"
      "route route"
      "toggle toggle"
      "details details";
    gap: 12px 18px;
    padding: 18px;
  }
  .ivhome-arrival-row > time { grid-area: time; text-align: right; }
  .ivhome-arrival-pilot { grid-area: pilot; }
  .ivhome-arrival-route { grid-area: route; }
  .ivhome-arrival-details-toggle {
    display: flex;
    grid-area: toggle;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 11px 9px 13px;
    border: 1px solid #d5e2ef;
    border-radius: 10px;
    color: #315b86;
    background: #f4f8fc;
    font-size: var(--iv-type-small);
    font-weight: 650;
    cursor: pointer;
    box-shadow: inset 0 1px #fff;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
  }
  .ivhome-arrival-details-toggle:hover { border-color: #a9c7e6; color: #174f8d; background: #eef6fd; }
  .ivhome-arrival-details-toggle > span { display: inline-flex; align-items: center; gap: 4px; }
  .ivhome-arrival-details-toggle > i { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border-radius: 8px; color: #1769e0; background: #e4effc; font-size: 11px; transition: transform .18s ease; }
  .ivhome-arrival-details-toggle[aria-expanded="true"] > i { transform: rotate(180deg); }
  .ivhome-arrival-details-toggle[aria-expanded="true"] .ivhome-arrival-details-label-closed { display: none; }
  .ivhome-arrival-details-toggle[aria-expanded="true"] .ivhome-arrival-details-label-open { display: inline; }
  .ivhome-arrival-details {
    display: grid;
    grid-area: details;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "aircraft landing"
      "mode status";
    gap: 14px 18px;
    padding-top: 14px;
    border-top: 1px dashed #d5e2ef;
  }
  body.iv2026-shell .ivhome-arrival-details[hidden] { display: none !important; }
  .ivhome-arrival-details > .ivhome-arrival-aircraft { grid-area: aircraft; }
  .ivhome-arrival-details > .ivhome-arrival-landing { grid-area: landing; min-width: 112px; }
  .ivhome-arrival-details > .ivhome-arrival-mode { display: inline-flex; grid-area: mode; justify-self: start; }
  .ivhome-arrival-details > .ivhome-arrival-status { grid-area: status; justify-self: end; }
}

@media (max-width: 767px) {
  .ivhome { padding-bottom: 35px; }
  .ivhome-command { min-height: 0; border-radius: 19px; }
  .ivhome-command-main { padding: 39px 24px 30px; }
  .ivhome-command h1 { font-size: clamp(34px,11vw,49px); }
  .ivhome-actions { align-items: stretch; flex-direction: column; }
  .ivhome-btn { width: 100%; }
  .ivhome-live-strip > div { min-width: 31%; margin: 0; padding: 0 10px; text-align: center; border-right: 1px solid rgba(255,255,255,.12); }
  .ivhome-live-strip > div:first-child { padding-left: 0; }
  .ivhome-live-strip > div:nth-child(3) { border-right: 0; }
  .ivhome-live-strip > a { width: 100%; margin: 20px 0 0; text-align: center; }
  .ivhome-next { margin: 10px; padding: 23px; }
  .ivhome-pilot-strip { grid-template-columns: 1fr; margin-top: 18px; }
  .ivhome-pilot-label { grid-column: 1; padding: 21px 18px 17px; border-bottom: 1px solid #d6e3ef; }
  .ivhome-logbook-metrics { grid-row: auto; grid-column: 1; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 0; }
  .ivhome-logbook-metrics article:nth-child(2n) { border-right: 0; }
  .ivhome-logbook-metrics article:nth-child(n+3) { border-top: 1px solid #dbe6f0; }
  .ivhome-logbook-metrics article:nth-child(3) { grid-column: 1 / -1; border-right: 0; }
  .ivhome-logbook-open { grid-row: auto; grid-column: 1; min-height: 54px; flex-direction: row; border-top: 1px dashed #c4d7e7; border-left: 0; font-size:var(--iv-type-small); text-transform: none; }
  .ivhome-logbook-open span { display: inline; }
  .ivhome-logbook-open i { width: 29px; height: 29px; }
  .ivhome-logbook-open::before,
  .ivhome-logbook-open::after { display: none; }
  .ivhome-section-head { align-items: flex-start; flex-direction: column; gap: 9px; }
  .ivhome-ops-head { grid-template-columns: 46px minmax(0,1fr); gap: 12px; padding: 14px; }
  .ivhome-ops-radar { width: 46px; height: 46px; }
  .ivhome-ops-title h2 { font-size: 21px; }
  .ivhome-ops-title p { font-size:var(--iv-type-small); line-height: 1.45; }
  .ivhome-ops-readouts { grid-column: 1 / -1; width: 100%; }
  .ivhome-ops-readouts > span { min-width: 0; flex: 1; }
  .ivhome-ops-open { grid-column: 1 / -1; width: 100%; }
  .ivhome-flight-board { grid-template-columns: 1fr; }
  .ivhome-board-empty { align-items: flex-start; flex-direction: column; }
  .ivhome-airspace-empty { align-items: flex-start; flex-wrap: wrap; }
  .ivhome-airspace-empty-actions { width: 100%; }
  .ivhome-airspace-empty-actions a { flex: 1; }
  .ivhome-passport-panel { grid-template-columns: 1fr; }
  .ivhome-passport-cover { min-height: 220px; }
  .ivhome-passport-page { min-height: 310px; }
  .ivfp-cover-bar { align-items: flex-start; flex-direction: column; }
  .ivfp-week-form { width: 100%; flex-wrap: wrap; }
  .ivfp-week-form .form-control { flex: 1; }
  .ivfp-visa-row { padding-left: 28px; }
  .ivfp-wingman-card { margin-left: 28px; }
  .ivfp-stamp-heading { padding-left: 28px; }
  .ivfp-ranking-head { align-items: stretch; flex-direction: column; }
  .ivfp-search input { width: 100%; min-width: 0; }
  .ivfp-ranking-row { grid-template-columns: 30px 38px minmax(0,1fr) 55px; padding: 10px 13px; }
  .ivfp-ranking-row > i { display: none; }

}

@media (max-width: 520px) {
  .ivhome-command-main { padding-right: 19px; padding-left: 19px; }
  .ivhome-next { min-height: 320px; }
  .ivhome-live-strip strong { font-size: 20px; }
  .ivhome-live-strip small { font-size:var(--iv-type-caption); }
  .ivhome-mini-map { height: 270px; }
  .ivhome-map-open { right: 10px; bottom: 10px; }
  .ivhome-map-live { top: 10px; left: 10px; }
  .ivhome-flight-strip-head { padding-right: 13px; padding-left: 13px; }
  .ivhome-flight-strip-list { padding: 9px; }
  .ivhome-flight-statusline { align-items: center; flex-direction: row; gap: 4px 6px; }
  .ivhome-airspace-empty { padding: 17px; }
  .ivhome-airspace-empty-actions { align-items: stretch; flex-direction: column; }
  .ivhome-logbook-avatar { width: 50px; height: 50px; }
  .ivhome-logbook-metrics article { gap: 8px; padding: 15px 12px; }
  .ivhome-events-panel { padding: 17px; }
  .ivhome-event-ticket { grid-template-columns: 58px minmax(0,1fr) 28px; }
  .ivhome-event-invite { grid-template-columns: 43px minmax(0,1fr); }
  .ivhome-event-invite > a { grid-column: 1 / -1; width: 100%; }
  .ivhome-fallback-data { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ivhome-fallback-actions { align-items: flex-start; flex-direction: column; gap: 10px; }
  .ivhome-passport-page { padding: 28px 24px; }
  .ivhome-passport-stamp { opacity: .4; }
  .ivfp-heading h1 { font-size: 29px; }
  .ivfp-visa-row { padding-left: 20px; }
  .ivfp-wingman-card { margin-left: 20px; }
  .ivfp-stamp-heading { padding-left: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .ivhome-route-plane, .ivhome-board-loading span, .ivhome-ticket-urgent i { animation: none; }
}
