/* SkyRoster visual skin — aligned with iraqmall.net (DaisyUI + IBM Plex + soft panels). */

@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("/static/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("/static/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("/static/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("/static/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("/static/fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("/static/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2") format("woff2");
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: "IBM Plex Sans", "IBM Plex Sans Arabic", ui-sans-serif, system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  min-height: 100dvh;
  overflow-x: clip;
  padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
}

.hairline {
  border-color: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}

/* Number inputs: no browser spinner arrows (type as plain field) */
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Soft panels (Iraq Mall card-soft) */
.card-soft {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
  border-radius: 0.5rem;
}

a.card-soft {
  color: inherit;
  text-decoration: none;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease;
}

a.card-soft:hover,
a.card-soft:focus-visible,
.card-soft.interactive:hover,
.card-soft.interactive:focus-visible {
  border-color: var(--color-primary);
  background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100));
  box-shadow: 0 0 0 1px var(--color-primary);
}

.card-soft.interactive {
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease;
}

a.card-soft:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.card-soft-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, transparent);
}

@media (min-width: 640px) {
  .card-soft-head {
    padding: 1rem 1.5rem;
  }
}

.card-soft-head > :first-child:is(h2, h3, p) {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Aqar-style stacked masthead (public pages) */
.card-soft-head--stack {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.25rem;
}
.card-soft-head--stack > :first-child:is(h2, h3, p) {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

.panel-eyebrow {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 40%, transparent);
}
.panel-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
@media (min-width: 640px) {
  .panel-title {
    font-size: 1.25rem;
  }
}
.panel-lede {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}

.card-soft-body {
  padding: 1rem;
}

@media (min-width: 640px) {
  .card-soft-body {
    padding: 1.25rem 1.5rem;
  }
}

/* Page masthead — aliases of panel-* / card-soft stack (legacy pages) */
.page-masthead {
  overflow: hidden;
  margin-bottom: 1.25rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.page-masthead__band {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, transparent);
}
.page-masthead__band:last-child {
  border-bottom: none;
}

@media (min-width: 640px) {
  .page-masthead__band {
    padding: 1rem 1.5rem;
  }
}

.page-masthead__eyebrow {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 40%, transparent);
}

.page-masthead__title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

@media (min-width: 640px) {
  .page-masthead__title {
    font-size: 1.25rem;
  }
}

.page-masthead__lede {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}

/* App chrome — match public-topbar frost */
.app-navbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 3rem;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}

.app-brand {
  font-weight: 600;
  letter-spacing: -0.02em;
}

/* SkyRoster logo mark + brand lockup */
.sky-logo {
  display: block;
  flex-shrink: 0;
  overflow: visible;
}
.sky-logo__tile {
  fill: currentColor;
}
.sky-logo__ink {
  stroke: #fff;
  fill: none;
}
.sky-logo__wing {
  fill: #fff;
  stroke: none;
}
.sky-logo--theme {
  color: var(--color-primary);
}
.sky-logo--on-primary .sky-logo__tile {
  fill: color-mix(in oklab, #fff 18%, transparent);
}
.sky-logo--ghost {
  color: var(--color-base-content);
}
.sky-logo--ghost .sky-logo__tile {
  fill: color-mix(in oklab, currentColor 12%, transparent);
}
.sky-logo--ghost .sky-logo__ink {
  stroke: currentColor;
}
.sky-logo--ghost .sky-logo__wing {
  fill: currentColor;
}

.sky-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1;
}
.sky-brand:hover {
  opacity: 0.92;
}
.sky-brand__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1.05rem;
}

.landing-hero__brand-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0;
}
.landing-hero__brand-row .landing-hero__brand {
  margin: 0;
}
.landing-hero__logo {
  width: clamp(2.75rem, 8vw, 3.35rem);
  height: clamp(2.75rem, 8vw, 3.35rem);
}

/* Brand-first landing stage (inside public-main) */
.landing-hero-stage {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 34rem;
}
.landing-hero__panel {
  width: 100%;
  text-align: start;
  overflow: visible;
  animation: landing-panel-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}
.landing-hero__eyebrow {
  margin: 0 0 0.7rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-primary) 78%, var(--color-base-content));
}
.landing-hero__brand {
  margin: 0;
  font-size: clamp(2.4rem, 6vw, 3.5rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 0.96;
}
.landing-hero__tagline {
  margin: 1rem 0 0;
  max-width: 26rem;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  line-height: 1.4;
  font-weight: 500;
  color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
}
.landing-hero__fromline {
  margin: 0.55rem 0 0;
  max-width: 28rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
}

/* Shared glass panels — Start + Who (same family as public-letter) */
.landing-glass {
  width: 100%;
  padding: 1.05rem 1.1rem 1.15rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 78%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 1px 0 color-mix(in oklab, #fff 4%, transparent) inset,
    0 14px 40px color-mix(in oklab, #000 14%, transparent);
  overflow: visible;
}
.landing-glass__label {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
}
.landing-who {
  position: relative;
  z-index: 1;
  max-width: 34rem;
  margin-top: 1rem;
  animation: landing-panel-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
}
.landing-who__list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.landing-who__item dt {
  margin: 0 0 0.2rem;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.landing-who__item dd {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: color-mix(in oklab, var(--color-base-content) 68%, transparent);
}
.landing-who__note {
  margin-top: 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  font-size: 0.8rem;
  line-height: 1.5;
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
}
.landing-start {
  position: relative;
  z-index: 4; /* above Who; keeps airline dropdown on top */
  margin-top: 1.75rem;
}

/* Crew supply agency (hr.* / crew.*) */
.agency-cta-panel {
  margin-top: 1.75rem;
}
.agency-form .label-text {
  display: inline-block;
  margin-bottom: 0.25rem;
}
.agency-form .crew-type-pick,
.agency-desk .crew-type-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
}
.agency-form .crew-type-pick__opt,
.agency-desk .crew-type-pick__opt {
  flex: 1 1 0;
  min-width: 0;
}
.agency-form .rank-pick,
.agency-desk .rank-pick {
  flex-wrap: wrap;
}
.agency-pick-stack {
  width: 100%;
  min-width: 0;
  overflow-x: clip;
}
.agency-type-hours {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.agency-type-hours__base-row {
  width: 100%;
}
.agency-type-hours__flight {
  margin-top: 0.125rem;
}
.agency-type-hours__type-rows .form-control {
  gap: 0.2rem;
}
.agency-type-hours .form-control:has(.label-text) {
  gap: 0.2rem;
}
.agency-type-hours--occ .agency-type-hours__base-row {
  grid-template-columns: minmax(0, 1fr);
}
.agency-type-hours--occ .agency-type-hours__total {
  display: none;
}
.agency-pick-stack__block {
  width: 100%;
}
.agency-form .icon-pick-row,
.agency-desk .icon-pick-row {
  --sky-icon-pick-face: min(2.45rem, 12vw);
  --sky-icon-pick-svg: min(1.15rem, 4.5vw);
}
@media (max-width: 639px) {
  .agency-form .icon-pick-row,
  .agency-desk .icon-pick-row {
    --sky-icon-pick-face: 2.2rem;
    --sky-icon-pick-svg: 1rem;
  }
  .agency-form .icon-pick-row--7,
  .agency-desk .icon-pick-row--7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.12rem;
  }
  .agency-form .icon-pick-row--8,
  .agency-desk .icon-pick-row--8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0.12rem;
  }
  .agency-form .icon-pick-row--10,
  .agency-desk .icon-pick-row--10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 0.1rem;
  }
  .agency-form .icon-pick-row--7 .icon-pick-row__lbl,
  .agency-desk .icon-pick-row--7 .icon-pick-row__lbl,
  .agency-form .icon-pick-row--8 .icon-pick-row__lbl,
  .agency-desk .icon-pick-row--8 .icon-pick-row__lbl,
  .agency-form .icon-pick-row--10 .icon-pick-row__lbl,
  .agency-desk .icon-pick-row--10 .icon-pick-row__lbl {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .agency-form .icon-pick-row--2,
  .agency-desk .icon-pick-row--2,
  .agency-form .icon-pick-row--4,
  .agency-desk .icon-pick-row--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.35rem;
  }
  .agency-form .icon-pick-row--2 .icon-pick-row__lbl,
  .agency-desk .icon-pick-row--2 .icon-pick-row__lbl,
  .agency-form .icon-pick-row--4 .icon-pick-row__lbl,
  .agency-desk .icon-pick-row--4 .icon-pick-row__lbl {
    font-size: 0.58rem;
    white-space: normal;
    line-height: 1.08;
    max-height: 2.15em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .agency-form .crew-type-pick,
  .agency-desk .crew-type-pick {
    gap: 0.2rem;
    --sky-icon-pick-face: min(2.35rem, 16vw);
    --sky-icon-pick-svg: min(1.05rem, 4.2vw);
  }
  .agency-form .crew-type-pick--5,
  .agency-desk .crew-type-pick--5 {
    gap: 0.1rem;
    --sky-icon-pick-face: min(2.05rem, 17.5vw);
    --sky-icon-pick-svg: min(0.95rem, 3.8vw);
  }
  .agency-form .crew-type-pick--5 .crew-type-pick__lbl,
  .agency-desk .crew-type-pick--5 .crew-type-pick__lbl,
  .agency-form .crew-type-pick--4 .crew-type-pick__lbl,
  .agency-desk .crew-type-pick--4 .crew-type-pick__lbl {
    font-size: 0.55rem;
    letter-spacing: 0;
    margin-top: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .agency-form .rank-pick,
  .agency-desk .rank-pick {
    gap: 0.3rem;
  }
  .agency-form .rank-pick__opt,
  .agency-desk .rank-pick__opt {
    min-width: 2.65rem;
  }
}
/* Employment package — calm section cards (not a rainbow) */
.ag-policy-block {
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  padding: 0.85rem 0.95rem 1rem;
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
}
.ag-policy-block__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.ag-policy-block__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  flex-shrink: 0;
  background: color-mix(in oklab, var(--color-base-content) 35%, transparent);
}
.ag-policy-block__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
}
.ag-policy-block__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}
@media (min-width: 640px) {
  .ag-policy-block__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
  }
}
.ag-policy-block__notes {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
@media (min-width: 640px) {
  .ag-policy-block__notes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ag-policy-block--comp {
  background: color-mix(in oklab, #64748b 8%, var(--color-base-100));
  border-color: color-mix(in oklab, #64748b 16%, transparent);
}
.ag-policy-block--comp .ag-policy-block__dot {
  background: color-mix(in oklab, #64748b 55%, transparent);
}
.ag-policy-block--live {
  background: color-mix(in oklab, #0d9488 7%, var(--color-base-100));
  border-color: color-mix(in oklab, #0d9488 14%, transparent);
}
.ag-policy-block--live .ag-policy-block__dot {
  background: color-mix(in oklab, #0d9488 50%, transparent);
}
.ag-policy-block--notes {
  background: color-mix(in oklab, #a8a29e 8%, var(--color-base-100));
  border-color: color-mix(in oklab, #a8a29e 16%, transparent);
}
.ag-policy-block--notes .ag-policy-block__dot {
  background: color-mix(in oklab, #78716c 50%, transparent);
}
.ag-policy-tile {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
  padding: 0.5rem 0.55rem 0.55rem;
  border-radius: 0.375rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
}
.ag-policy-tile__label {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.25;
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-policy-icons .ag-policy-icon {
  background: transparent;
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
  border-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  box-shadow: none;
}
.ag-policy-icons .ag-policy-icon:hover {
  background: color-mix(in oklab, var(--color-base-content) 5%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
}
.ag-policy-icons .ag-policy-icon--on,
.ag-policy-icons .ag-policy-icon--on:hover {
  background: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-base-content) 80%, transparent);
  border-color: color-mix(in oklab, var(--color-base-content) 18%, transparent);
  box-shadow: none;
}
.ag-policy-note {
  padding: 0.45rem 0.55rem 0.55rem;
  border-radius: 0.375rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
}
[data-theme="dark"] .ag-policy-block--comp {
  background: color-mix(in oklab, #94a3b8 10%, var(--color-base-100));
}
[data-theme="dark"] .ag-policy-block--live {
  background: color-mix(in oklab, #2dd4bf 8%, var(--color-base-100));
}
[data-theme="dark"] .ag-policy-block--notes {
  background: color-mix(in oklab, #a8a29e 10%, var(--color-base-100));
}
.agency-help-status-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.agency-help-status__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.45rem;
  border-radius: 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 55%, transparent);
}
.agency-help-status--interested .agency-help-status__badge {
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
}
.agency-help-status--available .agency-help-status__badge,
.agency-help-status--ready .agency-help-status__badge {
  color: var(--color-success);
  border-color: color-mix(in oklab, var(--color-success) 35%, transparent);
  background: color-mix(in oklab, var(--color-success) 12%, var(--color-base-100));
}
.agency-help-status--deployed .agency-help-status__badge {
  color: var(--color-primary);
  border-color: color-mix(in oklab, var(--color-primary) 35%, transparent);
  background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-100));
}
.agency-help-status--paused .agency-help-status__badge {
  opacity: 0.65;
}
.agency-offer-card {
  border-width: 1px;
  border-style: solid;
  background: color-mix(in oklab, var(--color-base-200) 35%, transparent);
  border-color: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.agency-offer-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.ag-offer-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem 0.85rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, transparent);
  position: sticky;
  top: 0;
  z-index: 1;
}
.ag-offer-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 0.75rem;
  margin: 0;
  padding: 0.85rem 1.25rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.ag-offer-facts dt {
  display: block;
  margin: 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.45;
}
.ag-offer-facts dd {
  margin: 0.2rem 0 0;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.ag-offer-need {
  margin: 0;
  padding: 0.65rem 1.25rem 0;
  font-size: 12px;
  line-height: 1.4;
  color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
}
.ag-offer-modal__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 1.25rem;
  font-size: 13px;
}
.ag-offer-h {
  margin: 0 0 0.45rem;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.45;
}
.ag-offer-note {
  margin: 0;
  line-height: 1.4;
  padding: 0.55rem 0.7rem;
  border-radius: 0.375rem;
  background: color-mix(in oklab, var(--color-base-200) 55%, transparent);
}
.ag-offer-dl {
  display: grid;
  grid-template-columns: 8.25rem minmax(0, 1fr);
  column-gap: 0.75rem;
  row-gap: 0.4rem;
  margin: 0;
  align-items: start;
}
.ag-offer-dl dt {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  opacity: 0.5;
}
.ag-offer-dl dd {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  min-width: 0;
  overflow-wrap: anywhere;
}
.ag-offer-modal__foot {
  padding: 0 1.25rem 1rem;
}
@media (max-width: 379px) {
  .ag-offer-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ag-offer-dl {
    grid-template-columns: 1fr;
    row-gap: 0.15rem;
  }
  .ag-offer-dl dt + dd {
    margin-bottom: 0.45rem;
  }
}
.ag-close-fold {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  align-self: flex-start;
}
.ag-close-fold > summary {
  list-style: none;
}
.ag-close-fold > summary::-webkit-details-marker {
  display: none;
}
.ag-close-fold[open] > summary {
  position: relative;
  z-index: 31;
}
.ag-close-panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  inset-inline-end: 0;
  z-index: 30;
  margin: 0;
  box-shadow: 0 8px 24px color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.ag-close-panel--wide {
  min-width: 20rem;
  width: min(22.5rem, calc(100vw - 1.5rem));
  padding: 0.75rem;
}
.ag-close-panel--wide .btn {
  white-space: normal;
  height: auto;
  min-height: 2.25rem;
  line-height: 1.25;
  padding-block: 0.4rem;
}
.agency-gate {
  border: 1px solid color-mix(in oklab, var(--color-warning, #ca8a04) 28%, transparent);
  background: color-mix(in oklab, var(--color-warning, #ca8a04) 9%, var(--color-base-100));
  color: inherit;
}
.agency-gate ul,
.agency-gate__list {
  margin: 0.4rem 0 0;
  padding-inline-start: 1.35rem;
  list-style: disc outside;
}
.agency-gate li,
.agency-gate__list li {
  padding-inline-start: 0.15rem;
}
.agency-offer-card__status {
  opacity: 0.92;
  flex-shrink: 0;
  margin: 0;
}
.agency-offer-card--proposed,
.agency-offer-card--offered {
  background: color-mix(in oklab, var(--color-warning) 14%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-warning) 38%, transparent);
}
.agency-offer-card--proposed .agency-offer-card__status,
.agency-offer-card--offered .agency-offer-card__status {
  color: color-mix(in oklab, var(--color-warning) 82%, var(--color-base-content));
}
.agency-offer-card--accepted {
  background: color-mix(in oklab, var(--color-primary) 14%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
}
.agency-offer-card--accepted .agency-offer-card__status {
  color: var(--color-primary);
}
.agency-offer-card--placed {
  background: color-mix(in oklab, var(--color-success) 14%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-success) 40%, transparent);
}
.agency-offer-card--placed .agency-offer-card__status {
  color: color-mix(in oklab, var(--color-success) 78%, var(--color-base-content));
}
.agency-offer-card--declined,
.agency-offer-card--withdrawn {
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  opacity: 0.72;
}
.agency-offer-card--declined .agency-offer-card__status,
.agency-offer-card--withdrawn .agency-offer-card__status {
  opacity: 0.55;
}
.agency-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.agency-steps li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
}
.agency-steps__n {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.agency-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
}
.public-app--agency .landing-hero__brand {
  letter-spacing: -0.04em;
}
.public-app--crew .landing-hero__eyebrow {
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}

.landing-start__label,
.landing-who__title {
  /* legacy aliases */
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
}

/* Admin agency match desk */
.ag-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.ag-stream__body {
  max-height: min(70vh, 42rem);
  overflow-y: auto;
}
.ag-co-groups {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ag-co__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
  padding: 0 0.15rem;
}
.ag-co__title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.ag-co__iata {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.ag-co__name {
  letter-spacing: -0.01em;
}
.ag-co__count {
  font-size: 0.68rem;
  opacity: 0.4;
}
.ag-mini-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.45rem;
}
.ag-mini-grid--crew {
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.55rem;
}
.ag-mini {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-height: 5.25rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, transparent);
  padding: 0.55rem 0.65rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.12s ease, background 0.12s ease;
}
a.ag-mini:hover {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 60%, transparent);
}
.ag-mini--active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 9%, var(--color-base-100));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 25%, transparent);
}
.ag-mini__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: 0;
}
.ag-mini__no {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  opacity: 0.7;
}
.ag-mini__name {
  font-size: 0.8rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-mini__rank {
  font-size: 0.65rem;
  opacity: 0.5;
  flex-shrink: 0;
}
.ag-mini__mid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.4rem;
  font-size: 0.68rem;
  opacity: 0.65;
  min-width: 0;
}
.ag-mini__qty {
  font-size: 0.65rem;
  opacity: 0.55;
}
.ag-mini__types {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.ag-mini--crew {
  min-height: 6.75rem;
  gap: 0.45rem;
}
.ag-mini__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.4rem;
  min-width: 0;
}
.ag-mini__identity {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 0;
}
.ag-mini--crew .ag-mini__identity {
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
}
.ag-mini__avatar {
  flex-shrink: 0;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 9999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-200));
  color: var(--color-base-content);
}
.ag-mini__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ag-mini__who {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-width: 0;
}
.ag-mini--crew .ag-mini__base {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  opacity: 0.55;
  line-height: 1.2;
}
.ag-mini__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  flex-shrink: 0;
}
.ag-mini__facts {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  min-width: 0;
}
.ag-mini__fact {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  gap: 0.35rem;
  align-items: start;
  min-width: 0;
}
.ag-mini__fact dt {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.38;
  line-height: 1.35;
  padding-top: 0.12rem;
}
.ag-mini__fact dd {
  margin: 0;
  min-width: 0;
}
.ag-mini__fact-val {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.35rem;
  font-size: 0.68rem;
  line-height: 1.35;
  min-width: 0;
}
.ag-mini__base {
  font-size: 0.68rem;
  font-weight: 600;
  opacity: 0.75;
}
.ag-mini--crew .work-region-marks .btn {
  height: 1.25rem;
  min-height: 1.25rem;
  width: 1.25rem;
}
.ag-mini--crew .work-region-marks svg {
  height: 0.65rem;
  width: 0.65rem;
}
.ag-mini__type-chips {
  gap: 0.2rem 0.3rem;
}
.ag-type-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
  padding: 0.08rem 0.35rem;
  border-radius: 0.3rem;
  font-size: 0.64rem;
  line-height: 1.25;
  background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  white-space: nowrap;
}
.ag-type-chip__h {
  font-size: 0.62rem;
  opacity: 0.55;
}
.ag-mini__tier {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.ag-mini__tier--authorized,
.ag-mini__tier--base {
  color: color-mix(in oklab, var(--color-success) 75%, var(--color-base-content));
  border-color: color-mix(in oklab, var(--color-success) 25%, transparent);
}
.ag-mini__tier--country,
.ag-mini__tier--region {
  color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content));
  border-color: color-mix(in oklab, var(--color-primary) 22%, transparent);
}
.ag-mini__need {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.35;
  color: color-mix(in oklab, var(--color-base-content) 52%, transparent);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ag-mini--av-paused {
  opacity: 0.55;
}
.ag-mini--dno {
  border-color: color-mix(in oklab, var(--color-error) 22%, transparent);
  background: color-mix(in oklab, var(--color-error) 4%, var(--color-base-100));
}
.ag-mini__dno {
  margin-top: 0.5rem;
  padding-top: 0.45rem;
}
.ag-req-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.ag-req {
  display: block;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 35%, transparent);
  padding: 0.7rem 0.85rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.ag-req:hover {
  border-color: color-mix(in oklab, var(--color-primary) 35%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 55%, transparent);
}
.ag-req--active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100));
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-primary) 70%, transparent);
}
.ag-req__id {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.55rem;
}
.ag-req__no {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.7;
}
.ag-req__airline {
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.ag-req__iata {
  font-size: 0.68rem;
  opacity: 0.45;
  text-transform: uppercase;
}
.ag-req__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
}
.ag-req__need {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ag-status--open { color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content)); }
.ag-status--matching { color: color-mix(in oklab, var(--color-warning) 75%, var(--color-base-content)); }
.ag-status--filled { color: color-mix(in oklab, var(--color-success) 70%, var(--color-base-content)); }
.ag-status--cancelled,
.ag-status--closed { opacity: 0.55; }

.ag-detail-grid {
  display: grid;
  gap: 0.65rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  margin: 0;
}
.ag-detail-grid--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 1rem;
}
.ag-detail-grid dt {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.45;
  margin-bottom: 0.15rem;
}
.ag-detail-grid dd {
  margin: 0;
  font-size: 0.82rem;
}
.ag-fact-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
  width: 100%;
}
@media (max-width: 720px) {
  .ag-fact-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ag-fact-card {
  min-width: 0;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 28%, transparent);
}
.ag-fact-card__label {
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 42%, transparent);
  line-height: 1.2;
}
.ag-fact-card__val {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-job-lifecycle__sep {
  align-self: center;
  width: 1px;
  height: 1.15rem;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
  flex-shrink: 0;
}

.ag-match-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ag-match {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 30%, transparent);
  overflow: visible;
  position: relative;
}
.ag-match:has(.ag-close-fold[open]),
.ag-match:has(.ag-match__placed-more[open]) {
  z-index: 6;
}
.ag-match__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  padding: 0.55rem 0.75rem;
}
.ag-match__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.ag-match__name {
  font-size: 0.86rem;
}
.ag-match__meta {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  opacity: 0.5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-match__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.ag-match__wait {
  font-size: 0.68rem;
  opacity: 0.45;
  white-space: nowrap;
}
.ag-match__closed-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  max-width: 9rem;
}
.ag-match__closed-tag {
  font-size: 0.62rem;
  opacity: 0.55;
  line-height: 1.25;
  text-align: end;
}
.ag-match__closed-tag--note {
  font-style: italic;
  opacity: 0.45;
}
.ag-match__rail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  padding: 0.35rem 0.75rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 40%, transparent);
}
.ag-match__next {
  font-size: 0.72rem;
  font-weight: 600;
  color: color-mix(in oklab, var(--color-primary) 78%, var(--color-base-content));
}
.ag-match__pipe {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.ag-pipe-step {
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.12rem 0.38rem;
  border-radius: 0.25rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  white-space: nowrap;
}
.ag-pipe-step--done {
  border-color: color-mix(in oklab, var(--color-success) 30%, transparent);
  background: color-mix(in oklab, var(--color-success) 10%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-success) 72%, var(--color-base-content));
}
.ag-pipe-step--active {
  border-color: color-mix(in oklab, var(--color-warning) 32%, transparent);
  background: color-mix(in oklab, var(--color-warning) 12%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-warning) 78%, var(--color-base-content));
}
.ag-pipe-step--todo {
  opacity: 0.45;
}
.ag-match__flag {
  font-size: 0.65rem;
  font-weight: 600;
  margin-inline-start: auto;
}
.ag-match__flag--warn {
  color: color-mix(in oklab, var(--color-warning) 78%, var(--color-base-content));
}
.ag-match__note {
  margin: 0;
  padding: 0 0.75rem 0.45rem;
  font-size: 0.76rem;
  opacity: 0.62;
  line-height: 1.35;
}
.ag-match__contract {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  padding: 0.35rem 0.75rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
  font-size: 0.72rem;
}
.ag-match__contract--warn {
  color: color-mix(in oklab, var(--color-warning) 75%, var(--color-base-content));
}
.ag-match__contract-label {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.45;
}
.ag-match__folds {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.ag-match-fold > summary {
  list-style: none;
}
.ag-match-fold > summary::-webkit-details-marker {
  display: none;
}
.ag-match-fold__sum {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.75rem;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.55;
  cursor: pointer;
  user-select: none;
}
.ag-match-fold__sum::after {
  content: "";
  margin-inline-start: auto;
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.45;
  transition: transform 0.15s ease;
}
.ag-match-fold[open] .ag-match-fold__sum::after {
  transform: rotate(-135deg);
}
.ag-match-fold[open] .ag-match-fold__sum {
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 35%, transparent);
}
.ag-match-panel {
  padding: 0.55rem 0.75rem 0.65rem;
}
.ag-match-panels {
  display: grid;
  gap: 0.45rem;
  padding: 0.45rem 0.75rem 0.65rem;
}
@media (min-width: 720px) {
  .ag-match-panels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ag-match-panel__label {
  margin: 0 0 0.3rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.42;
}
.ag-match-panel__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.ag-match-chip-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.ag-match__placed {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.85rem;
  padding: 0.4rem 0.75rem 0.55rem;
}
.ag-match__placed-field {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
}
.ag-match__placed-label {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.42;
  white-space: nowrap;
}
.ag-match__placed-more > summary {
  list-style: none;
}
.ag-match__placed-more > summary::-webkit-details-marker {
  display: none;
}
.ag-match__placed-fee {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-inline-start: auto;
}
.ag-match__interview-bar {
  padding: 0.4rem 0.75rem;
  font-size: 0.68rem;
  opacity: 0.65;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.ag-match__activity {
  margin: 0;
  padding: 0.25rem 0.75rem 0.45rem;
  font-size: 0.58rem;
  opacity: 0.35;
}
.ag-match__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.5rem;
}
.ag-match__sub {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  opacity: 0.45;
}
.ag-mstatus--offered,
.ag-mstatus--proposed { color: color-mix(in oklab, var(--color-warning) 75%, var(--color-base-content)); }
.ag-mstatus--accepted { color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content)); }
.ag-mstatus--placed { color: color-mix(in oklab, var(--color-success) 70%, var(--color-base-content)); }
.ag-mstatus--declined,
.ag-mstatus--withdrawn { opacity: 0.5; }

.ag-board-fold {
  padding: 0.4rem 1.25rem;
}
.ag-board-fold--in-body {
  /* Already inside .card-soft-body — don't double the card inset. */
  padding-inline: 0;
}
@media (min-width: 640px) {
  .ag-board-fold {
    padding-inline: 1.5rem;
  }
  .ag-board-fold--in-body {
    padding-inline: 0;
  }
}
.ag-board-fold > summary {
  list-style: none;
}
.ag-board-fold > summary::-webkit-details-marker {
  display: none;
}
.ag-board-fold__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.35rem 0.15rem;
  cursor: pointer;
  user-select: none;
}
.ag-board-fold__label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.ag-board-fold__title {
  font-size: 0.78rem;
  font-weight: 600;
}
.ag-board-fold__meta {
  font-size: 0.68rem;
  opacity: 0.55;
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-board-fold__chev {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.45;
  transition: transform 0.15s ease;
}
.ag-board-fold[open] .ag-board-fold__chev {
  transform: rotate(-135deg);
  margin-top: 0.15rem;
}
.ag-board-fold .ag-board-panel {
  padding-top: 0.65rem;
  margin-top: 0.35rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}

.ag-board-panel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ag-board-form,
.ag-qual-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.ag-board-form__head,
.ag-qual-form__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
}
.ag-board-form__head-actions,
.ag-qual-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.ag-board-form__fields {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 640px) {
  .ag-board-form__fields {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  }
}
.ag-qual-form {
  padding-top: 0.85rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.ag-qual-form__eyebrow {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 45%, transparent);
}
.ag-qual-form__hint {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  line-height: 1.35;
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
}
.ag-qual-form__grid {
  display: grid;
  gap: 0.45rem;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}
.ag-qual-chip {
  min-height: 2rem;
  padding: 0.35rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 28%, transparent);
}
.ag-qual-chip:has(input:checked) {
  border-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100));
}
.ag-seats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.ag-seat {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "no status"
    "name name";
  align-items: center;
  gap: 0.15rem 0.5rem;
  min-width: 8.5rem;
  max-width: 12rem;
  padding: 0.45rem 0.6rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 30%, transparent);
}
.ag-seat__no {
  grid-area: no;
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 0.7;
}
.ag-seat__status {
  grid-area: status;
  justify-self: end;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}
.ag-seat__name {
  grid-area: name;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-seat__name--action {
  font-size: 0.68rem;
  font-weight: 600;
  color: color-mix(in oklab, var(--color-primary) 75%, var(--color-base-content));
}
.ag-seat--placed {
  border-color: color-mix(in oklab, var(--color-success) 28%, transparent);
  background: color-mix(in oklab, var(--color-success) 8%, var(--color-base-100));
}
.ag-seat--placed .ag-seat__status {
  color: color-mix(in oklab, var(--color-success) 72%, var(--color-base-content));
}
.ag-seat--offered,
.ag-seat--accepted,
.ag-seat--interview {
  border-color: color-mix(in oklab, var(--color-warning) 28%, transparent);
  background: color-mix(in oklab, var(--color-warning) 8%, var(--color-base-100));
}
.ag-seat--offered .ag-seat__status,
.ag-seat--accepted .ag-seat__status,
.ag-seat--interview .ag-seat__status {
  color: color-mix(in oklab, var(--color-warning) 78%, var(--color-base-content));
}
.ag-seat--empty {
  text-decoration: none;
  border-style: dashed;
  opacity: 0.85;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ag-seat--empty:hover {
  border-color: color-mix(in oklab, var(--color-primary) 35%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100));
  opacity: 1;
}

.public-app--jobs .landing-hero__brand.job-detail__title {
  font-size: clamp(1.65rem, 4.5vw, 2.35rem);
  line-height: 1.08;
}

.job-board-panel,
.job-detail-panel {
  width: 100%;
}
.job-board-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.job-board-head__title {
  margin: 0.15rem 0 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
}
.job-board-head .join {
  max-width: 100%;
  flex-wrap: wrap;
}
.job-board-aside {
  margin-top: 1rem;
}
.job-cards {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: 100%;
}
.job-card {
  width: 100%;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 55%, transparent);
  padding: 0.85rem 0.9rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.job-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  min-width: 0;
}
.job-card__airline {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.5;
}
.job-card__title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  min-width: 0;
}
.job-card__title a {
  display: block;
  overflow-wrap: anywhere;
}
.job-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.job-card__blurb {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.72;
}
.job-card__foot {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.15rem;
}
.job-card__foot .btn {
  width: 100%;
  min-width: 0;
  justify-content: center;
}
@media (max-width: 420px) {
  .job-card__foot {
    grid-template-columns: 1fr;
  }
}
.job-board-empty {
  text-align: center;
  padding: 1.5rem 0.5rem;
}
.job-board-empty__title {
  font-weight: 600;
  margin: 0 0 0.35rem;
}
.job-board-empty__hint {
  margin: 0;
  font-size: 0.85rem;
  opacity: 0.6;
}

.ag-crew-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  max-height: 18rem;
  overflow-y: auto;
}
.ag-crew {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  gap: 0.5rem 0.75rem;
  align-items: center;
  padding: 0.5rem 0.15rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
  font-size: 0.8rem;
}
.ag-crew:last-child { border-bottom: 0; }
.ag-crew__who {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  min-width: 0;
}
.ag-crew__name {
  font-weight: 550;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-crew__bits {
  font-size: 0.72rem;
  opacity: 0.5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-avail {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.55;
  white-space: nowrap;
}
.ag-avail--available { color: color-mix(in oklab, var(--color-success) 70%, var(--color-base-content)); opacity: 0.9; }
.ag-avail--interested { color: color-mix(in oklab, var(--color-primary) 65%, var(--color-base-content)); opacity: 0.85; }
.ag-avail--deployed { opacity: 0.4; }
.ag-avail--paused { opacity: 0.35; text-decoration: line-through; }

.ag-empty {
  text-align: center;
  padding: 1.75rem 1rem;
}
.ag-empty--sm { padding: 1.1rem 0.5rem; }
.ag-empty__title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
}
.ag-empty__hint {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  opacity: 0.5;
  max-width: 22rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .ag-crew {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
@media (min-width: 1025px) {
  .landing-hero-stage {
    max-width: 34rem;
  }
  .landing-hero__brand {
    font-size: clamp(3.1rem, 4.2vw, 3.9rem);
  }
  .landing-hero__logo {
    width: 3.35rem;
    height: 3.35rem;
  }
  /* Desktop: left stage + route art on the right */
  .public-app--landing .public-main {
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1.5rem 2rem;
  }
  .public-app--landing .landing-backdrop__art {
    width: min(68vw, 62rem);
    max-height: 88dvh;
    opacity: 0.85;
    transform: translate3d(4%, 2%, 0);
  }
}

/* iPad / tablet — centered brand column (portrait) */
@media (min-width: 641px) and (max-width: 1024px) {
  .public-app--landing {
    min-height: 100svh;
    min-height: 100dvh;
  }
  .public-app--landing .public-main {
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    padding: 1.35rem 1.5rem 1rem;
  }
  .public-app--landing .landing-hero-stage {
    max-width: 32rem;
    margin-inline: auto;
  }
  .public-app--landing .landing-hero__brand {
    font-size: clamp(2.55rem, 5vw, 3.2rem);
  }
  .public-app--landing .landing-hero__logo {
    width: 3rem;
    height: 3rem;
  }
  .public-app--landing .landing-hero__tagline {
    max-width: 26rem;
    font-size: 1.05rem;
  }
  .public-app--landing .landing-hero__fromline {
    font-size: 0.84rem;
  }
  .public-app--landing .landing-start {
    margin-top: 1.5rem;
  }
  .public-app--landing .landing-backdrop__art {
    width: min(78vw, 48rem);
    max-height: 70dvh;
    opacity: 0.5;
    transform: translate3d(12%, 10%, 0);
  }
  .public-app--landing .landing-backdrop__glow--a,
  .public-app--landing .landing-backdrop__glow--b {
    opacity: 0.4;
  }
  .public-app--landing .public-footer .app-footer__inner {
    max-width: 32rem;
    margin-inline: auto;
  }
  .public-app--landing .public-topbar__inner {
    max-width: 34rem;
    margin-inline: auto;
  }
}

/* iPad landscape — left stage + art (same idea as desktop) */
@media (min-width: 641px) and (max-width: 1024px) and (orientation: landscape) {
  .public-app--landing .public-main {
    align-items: flex-start;
    justify-content: center;
    padding: 1.25rem 1.75rem 1rem;
  }
  .public-app--landing .landing-hero-stage {
    max-width: 30rem;
    margin-inline: 0;
  }
  .public-app--landing .landing-hero__brand {
    font-size: clamp(2.4rem, 4.5vw, 3rem);
  }
  .public-app--landing .landing-backdrop__art {
    width: min(70vw, 46rem);
    max-height: 85dvh;
    opacity: 0.7;
    transform: translate3d(2%, 4%, 0);
  }
  .public-app--landing .public-topbar__inner,
  .public-app--landing .public-footer .app-footer__inner {
    max-width: 72rem;
    margin-inline: auto;
  }
}

@media (max-width: 639px) {
  .landing-hero-stage {
    max-width: none;
  }
  .landing-hero__eyebrow {
    margin-bottom: 0.45rem;
    font-size: 0.65rem;
  }
  .landing-hero__brand-row {
    gap: 0.65rem;
  }
  .landing-hero__logo {
    width: 2.6rem;
    height: 2.6rem;
  }
  .landing-hero__brand {
    font-size: clamp(2.2rem, 10.5vw, 2.7rem);
  }
  .landing-hero__tagline {
    margin-top: 0.7rem;
    font-size: 0.98rem;
    line-height: 1.35;
  }
  .landing-hero__fromline {
    display: none;
  }
  .landing-start {
    margin-top: 1.15rem;
  }
  .landing-glass {
    padding: 0.85rem 0.85rem 0.95rem;
    border-radius: 0.65rem;
  }
  .landing-glass__label {
    margin-bottom: 0.45rem;
  }
}

.app-side-menu {
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  border-inline-end: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.app-side-menu__rule {
  margin: 0.45rem 0.35rem;
  padding: 0;
  pointer-events: none;
}
.app-side-menu__rule hr {
  border: 0;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  margin: 0;
}

/* Active nav: soft primary tint (not Daisy’s inverted base-content “mourning” fill).
   Note: <ul class="menu app-side-menu"> — both classes on the same node. */
.menu.app-side-menu a.menu-active,
.menu.app-side-menu li > a.menu-active {
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  color: var(--color-primary);
  font-weight: 600;
  box-shadow: inset 3px 0 0 0 color-mix(in oklab, var(--color-primary) 70%, transparent);
}

/* Count pills — one look everywhere (Iraq Mall admin-rail__badge) */
.count-pill,
.app-side-menu__badge,
.nav-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex-shrink: 0;
  min-height: 1.15rem;
  height: auto;
  min-width: 1.15rem;
  padding: 0.12rem 0.4rem;
  border-radius: 9999px;
  background: var(--color-warning);
  color: var(--color-warning-content, #1a1a1a);
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  pointer-events: none;
  white-space: nowrap;
}
.count-pill--error,
.app-side-menu__badge--error {
  background: var(--color-error);
  color: var(--color-error-content, #fff);
}
.count-pill--ok {
  background: var(--color-success);
  color: var(--color-success-content, #fff);
}
.count-pill--muted {
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
  color: var(--color-base-content);
}
.count-pill--primary {
  background: var(--color-primary);
  color: var(--color-primary-content);
}

/* Menu counters — iraqmall admin-rail__badge style (pill on the right) */
.app-side-menu > li > a {
  justify-content: space-between;
  gap: 0.4rem;
}

/* Admin / tenant desk shell — locked viewport chrome.
   NAV + thin footer stay put; side menu and main each scroll in their pane. */
body:has(.admin-shell) {
  display: flex;
  flex-direction: column;
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}
body:has(.admin-shell) > .app-navbar {
  flex: 0 0 auto;
  position: relative; /* body no longer scrolls — no sticky needed */
}
.admin-shell {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.admin-side {
  position: relative;
  top: auto;
  align-self: stretch;
  flex: 0 0 14rem;
  width: 14rem;
  height: auto;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 2;
  display: flex;
  flex-direction: column;
  border-inline-end: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* legacy Edge */
}
.admin-side::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chromium / Safari */
}
.admin-side .app-side-menu {
  /* Grow with items; scroll happens on .admin-side — Daisy .menu is column wrap by default */
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 0;
  flex-flow: column nowrap;
}
.desk-sidebar-flash-host {
  flex-shrink: 0;
}
.desk-sidebar-flash-host:not(:empty) {
  padding: 0.2rem 0.65rem 0.55rem;
}
.admin-side-settings .desk-sidebar-flash-host:not(:empty) {
  padding-inline-start: 0.85rem;
}
#app .js-desk-sidebar-flash,
.admin-main .js-desk-sidebar-flash {
  display: none;
}
.desk-sidebar-flash-host .js-desk-sidebar-flash {
  display: block;
}
.desk-sidebar-flash {
  margin-top: 0.35rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.45rem;
  font-size: 0.6875rem;
  line-height: 1.35;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  box-shadow: 0 1px 0 color-mix(in oklab, #fff 5%, transparent) inset;
  transition: opacity 0.35s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease;
  max-height: 6rem;
  overflow: hidden;
}
.desk-sidebar-flash--success {
  border-color: color-mix(in oklab, var(--color-success) 35%, transparent);
  background: color-mix(in oklab, var(--color-success) 12%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-success) 72%, var(--color-base-content));
}
.desk-sidebar-flash--warning {
  border-color: color-mix(in oklab, var(--color-warning) 38%, transparent);
  background: color-mix(in oklab, var(--color-warning) 14%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-warning) 78%, var(--color-base-content));
}
.desk-sidebar-flash.is-hiding {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-width: 0;
}
.desk-sidebar-flash__text {
  font-weight: 500;
}
.admin-main {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.admin-main > #app,
.admin-main > .app-main {
  flex: 1 0 auto;
}
/* Thin footer strip — never scrolls with the desk */
body:has(.admin-shell) > .public-footer {
  flex: 0 0 auto;
  margin-top: 0;
  z-index: 15;
}
body:has(.admin-shell) > .public-footer .app-footer,
body:has(.admin-shell) > .public-footer .app-footer--minimal {
  margin-top: 0;
  padding: 0.3rem 1rem;
  padding-bottom: max(0.3rem, env(safe-area-inset-bottom, 0px));
}
body:has(.admin-shell) > .public-footer .app-footer__inner {
  min-height: 0;
}
@media (max-width: 1023px) {
  .admin-shell {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-side {
    position: relative;
    top: 0;
    align-self: stretch;
    width: 100%;
    flex: 0 0 auto;
    max-height: 36vh;
    overflow-x: hidden;
    overflow-y: auto;
    border-inline-end: 0;
    border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  }
  .admin-side .app-side-menu {
    display: flex;
    flex-flow: row wrap; /* chip strip on narrow screens — not a second vertical column */
    width: 100%;
    border-inline-end: 0;
  }
  .admin-side .app-side-menu > li {
    flex: 0 0 auto;
  }
  .admin-main {
    min-height: 0;
    flex: 1 1 auto;
  }
}

/* Tables inside soft panels */
.card-soft .table :where(th, td) {
  background: transparent;
}

.card-soft .table thead th {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  border-bottom-color: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}

/* Compact prefs — theme toggle */
.prefs-icons__btn {
  width: 2.25rem;
  height: 2.25rem;
  min-height: 2.25rem;
  padding: 0;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 70%, transparent);
}
@media (max-width: 640px) {
  .prefs-icons__btn {
    width: 2.4rem;
    height: 2.4rem;
    min-height: 2.4rem;
  }
}
.prefs-icons__btn:hover {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
}
.prefs-icons__svg {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

/* Auth / error shells — centered card, no public chrome */
.landing-shell {
  position: relative;
  isolation: isolate;
  min-height: 100dvh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--color-base-200);
  -webkit-overflow-scrolling: touch;
}

.landing-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  color: var(--color-base-content);
}

.landing-backdrop__glow {
  position: absolute;
  border-radius: 9999px;
  filter: blur(64px);
  opacity: 0.55;
}

.landing-backdrop__glow--a {
  width: min(70vw, 42rem);
  height: min(50vw, 28rem);
  top: -12%;
  right: -8%;
  background: color-mix(in oklab, var(--color-primary) 28%, transparent);
  animation: landing-glow-drift 18s ease-in-out infinite alternate;
}

.landing-backdrop__glow--b {
  width: min(55vw, 28rem);
  height: min(40vw, 20rem);
  bottom: -8%;
  left: -10%;
  background: color-mix(in oklab, var(--color-secondary) 18%, transparent);
  animation: landing-glow-drift 22s ease-in-out infinite alternate-reverse;
}

.landing-backdrop__grid {
  position: absolute;
  inset: 0;
  opacity: 0.045;
  background-image:
    linear-gradient(to right, currentColor 1px, transparent 1px),
    linear-gradient(to bottom, currentColor 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 80% 70% at 70% 40%, #000 20%, transparent 75%);
}

.landing-backdrop__art {
  position: absolute;
  inset: auto 0 0 auto;
  width: min(92vw, 68rem);
  height: auto;
  max-height: 92dvh;
  color: var(--color-base-content);
  transform: translate3d(4%, 2%, 0);
  animation: landing-art-in 1.1s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@media (max-width: 640px) {
  .landing-backdrop__glow--a {
    width: min(90vw, 22rem);
    height: min(55vw, 14rem);
    top: -8%;
    right: -18%;
    opacity: 0.4;
  }
  .landing-backdrop__glow--b {
    width: min(70vw, 16rem);
    height: min(50vw, 12rem);
    opacity: 0.35;
  }
  .landing-backdrop__art {
    width: min(140vw, 36rem);
    max-height: 55dvh;
    opacity: 0.4;
    transform: translate3d(22%, 12%, 0);
  }
  .landing-backdrop__grid {
    opacity: 0.03;
    background-size: 36px 36px;
  }
}

.landing-art__route {
  animation: landing-route-draw 2.2s cubic-bezier(0.33, 1, 0.68, 1) 0.35s both;
}

.landing-art__plane {
  animation: landing-plane-fade 1.4s ease 1.4s both;
}

/* ——— Public site chrome (Aqar Iraq pattern) ——— */
.public-app {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  min-height: 100svh;
  background: transparent;
  color: var(--color-base-content);
}

.public-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding-top: env(safe-area-inset-top, 0px);
}
.public-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-inline: auto;
  width: 100%;
  max-width: 72rem;
  min-height: 3rem;
  padding: 0.35rem 1rem;
}
.public-topbar__brand {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
}
.public-topbar__brand .sky-brand {
  text-decoration: none;
  color: inherit;
}
.public-topbar__prefs {
  flex-shrink: 0;
  margin-inline-start: auto;
}

.public-main {
  position: relative;
  z-index: 1;
  flex: 1;
  width: 100%;
  max-width: 72rem;
  margin-inline: auto;
  padding: 1.5rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 640px) {
  .public-main > .public-stack,
  .public-main > .form-stack {
    margin-inline: auto;
  }
}

/* HTTP / host / maintenance — centered in the viewport band */
.error-page {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding-block: 1.5rem;
}
.error-stack {
  margin-inline: auto;
}

/* Narrow column for public forms / short pages */
.public-stack {
  width: 100%;
  max-width: 28rem;
}
@media (min-width: 640px) {
  .public-stack {
    max-width: 32rem;
  }
}
/* Full content rail — same width as NAV / public-main (72rem parent) */
.public-stack--legal,
.content-rail {
  width: 100%;
  max-width: none;
}

/* Workplace form pages (alias of public-stack) */
.form-stack {
  width: 100%;
  max-width: 28rem;
}
@media (min-width: 640px) {
  .form-stack {
    max-width: 32rem;
  }
}
.form-stack--wide {
  max-width: 48rem;
}

/* Workplace main panel */
#app.app-main,
.app-main {
  width: 100%;
  max-width: 72rem;
  margin-inline: auto;
}
/* Admin desk — use full drawer content width (tables / refs) */
#app.app-main.app-main--full,
.app-main.app-main--full {
  max-width: none;
  margin-inline: 0;
}

.public-footer {
  position: relative;
  z-index: 1;
  margin-top: auto;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (max-width: 640px) {
  /* One-screen public composition: content band + footer pinned */
  .public-app {
    min-height: 100svh;
    min-height: 100dvh;
  }
  .public-main {
    flex: 1 1 auto;
    justify-content: flex-start;
    padding: 0.75rem 0.85rem 0.5rem;
  }
  .public-app--landing .public-main {
    /* Keep hero near top; footer stays at bottom via margin-top:auto */
    justify-content: flex-start;
    padding-top: 0.75rem;
    padding-bottom: 0.4rem;
  }
  .public-topbar__inner {
    min-height: 2.75rem;
    padding: 0.28rem 0.85rem;
    gap: 0.5rem;
  }
  .public-footer {
    margin-top: auto;
  }
  .public-footer .app-footer {
    padding: 0.65rem 0.85rem 0.85rem;
  }
}
.public-footer .app-footer {
  margin-top: 0;
  border-top: none;
  padding: 1rem;
}
.public-footer .app-footer__inner {
  max-width: 72rem;
}
.public-footer--full .app-footer__inner {
  max-width: none;
}

/* Admin FTL mini-cards (inside marked group panels) */
.ftl-mini {
  padding: 0.65rem 0.75rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.ftl-mini__label {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.6;
}
.ftl-mini__value {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.ftl-mini__key {
  margin: 0.4rem 0 0;
  font-size: 0.62rem;
  line-height: 1.2;
  opacity: 0.4;
  word-break: break-all;
}

/* Platform admin dashboard tiles */
.dash-section__title {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.45;
}
.dash-tile {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  min-height: 7.5rem;
  text-decoration: none;
  color: inherit;
}
.dash-tile__label {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.3;
  opacity: 0.55;
}
.dash-tile__value {
  margin: 0;
  font-size: 1.85rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}
.dash-tile__value--text {
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}
.dash-tile__meta {
  margin: auto 0 0;
  padding-top: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.55;
}
.dash-tile--occ {
  background: color-mix(in oklab, #3b82f6 10%, var(--color-base-100));
  border-color: color-mix(in oklab, #3b82f6 28%, transparent);
}
.dash-tile--warn {
  background: color-mix(in oklab, #f59e0b 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 30%, transparent);
}
.dash-tile--warn .dash-tile__value {
  color: #fbbf24;
}
.dash-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.dash-list a {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.75rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.4rem;
  text-decoration: none;
  color: inherit;
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.dash-list a:hover {
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
}

/* Home — flight streams (Journal/AODB rhythm) */
.dash-stream .jl-days {
  gap: 1rem;
}
.dash-stream .aodb-event-list {
  margin: 0;
}
.dash-stream .jl-event__actions {
  margin-top: 0.25rem;
}
.jl-status--planned {
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
}
.jl-status--filed {
  background: color-mix(in oklab, var(--color-info) 18%, transparent);
  color: color-mix(in oklab, var(--color-info) 50%, var(--color-base-content));
}
.jl-status--airborne {
  background: color-mix(in oklab, var(--color-success) 18%, transparent);
  color: color-mix(in oklab, var(--color-success) 45%, var(--color-base-content));
}
.jl-status--landed {
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.jl-status--diverted {
  background: color-mix(in oklab, var(--color-warning) 18%, transparent);
  color: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
}

/* Tenant settings — one form, section cards */
.settings-layout {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "primary"
    "ops"
    "hr"
    "save";
  align-items: start;
}
.settings-layout > .settings-form {
  display: contents;
}
.settings-layout .settings-grid--primary { grid-area: primary; }
.settings-layout #automation { grid-area: ops; min-width: 0; }
.settings-layout #leave-policies { grid-area: hr; min-width: 0; }
.settings-layout .settings-save { grid-area: save; }
@media (min-width: 1024px) {
  .settings-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "primary primary"
      "ops hr"
      "save save";
  }
}
.settings-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.settings-grid {
  display: grid;
  gap: 0.85rem;
  align-items: stretch;
}
@media (min-width: 1024px) {
  .settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .settings-grid--primary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .settings-grid--primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.settings-stack {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}
.settings-stack .settings-card {
  min-height: 0;
}

/* Stations · Company WhatsApp book */
.stations-wa-table {
  table-layout: fixed;
  width: 100%;
}
.stations-wa-table th,
.stations-wa-table td {
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stations-wa-col-name { width: 26%; }
.stations-wa-col-emp { width: 6.5rem; }
.stations-wa-col-type { width: 7.5rem; }
.stations-wa-col-base { width: 5.5rem; }
.stations-wa-col-wa { width: auto; }
.stations-wa-table--hotels .stations-wa-col-base { width: 5.5rem; }
.stations-wa-table--hotels .stations-wa-col-name { width: 40%; }
.stations-wa-group th {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
  white-space: nowrap;
}
.stations-wa-name {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 500;
  color: inherit;
  cursor: pointer;
  text-align: start;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.stations-wa-name:hover,
.stations-wa-name:focus-visible {
  text-decoration: underline;
}
.settings-airline-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
  align-items: start;
}
.settings-airline-row > div {
  min-width: 0;
}
.settings-airline-row dt {
  margin: 0 0 0.15rem;
}
.settings-airline-row dd {
  margin: 0;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
@media (max-width: 900px) {
  .settings-airline-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .settings-airline-row {
    grid-template-columns: 1fr;
  }
}
.settings-toggle-list--compact .settings-toggle-row {
  padding: 0.55rem 0.7rem;
  gap: 0.5rem;
}
.settings-toggle-list--compact .settings-toggle-row__title {
  font-size: 0.8rem;
}
.settings-toggle-list--compact .settings-toggle-row__hint {
  font-size: 0.68rem;
}
.settings-toggle-list--align-active.settings-toggle-list--compact .settings-toggle-row {
  grid-template-columns: minmax(0, 1fr) 3.5rem;
}
.settings-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.settings-card .card-soft-body {
  flex: 1;
}
.settings-card__title {
  font-size: 1.05rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.settings-card__lede {
  font-size: 0.8rem;
  margin-bottom: 0;
}

/* Crew person page */
.crew-person-hero__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.25rem;
}
.crew-person-hero__id {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  min-width: 0;
  flex: 1 1 16rem;
}
.crew-person-hero__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 9999px;
  flex-shrink: 0;
  font-size: 1.15rem;
  font-weight: 650;
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-primary) 55%, var(--color-base-content));
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.crew-person-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.crew-person-hero__chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.55rem;
}
.crew-person-chip {
  display: inline-flex;
  align-items: center;
}
.crew-person-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  justify-content: flex-end;
}
.crew-person-section,
#crew-quals,
#crew-balance,
#crew-docs,
#crew-history {
  scroll-margin-top: 6.5rem;
}
.crew-person-section__head {
  margin-bottom: 0.65rem;
}
.crew-person-section__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: 0.02em;
}
.crew-person-section__lede {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  opacity: 0.55;
}
.crew-person-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (min-width: 1024px) {
  .crew-person-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.crew-person-stat {
  padding: 0.7rem 0.8rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.crew-person-stat__label {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
}
.crew-person-stat__value {
  margin: 0.2rem 0 0;
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.crew-person-stat__value--text {
  font-size: 0.95rem;
  font-family: inherit;
}
.crew-person-stat__meta {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
  opacity: 0.55;
}
.crew-person-history-item {
  padding-bottom: 0.45rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.crew-person-history-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.crew-person-docs-table {
  font-size: 0.8125rem;
}
.crew-person-docs-table thead th {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.55;
  white-space: nowrap;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}
.crew-person-docs-table tbody td {
  vertical-align: middle;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}
.crew-person-docs-table__type {
  min-width: 7.5rem;
}
.crew-person-docs-table__name {
  display: block;
  font-weight: 600;
  line-height: 1.25;
}
.crew-person-docs-table__code {
  display: block;
  font-size: 0.68rem;
  opacity: 0.55;
  margin-top: 0.1rem;
}
.crew-person-docs-table__row--expired td {
  background: color-mix(in oklab, #ef4444 7%, transparent);
}
.crew-person-docs-table__row--soon td {
  background: color-mix(in oklab, #f59e0b 6%, transparent);
}
.crew-person-docs-table__scan-head,
.crew-person-docs-table__scan {
  width: 2.75rem;
  text-align: center;
}
.crew-person-docs-table__thumb {
  display: inline-flex;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.35rem;
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 80%, transparent);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.crew-person-docs-table__thumb:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-primary) 18%, transparent);
}
.crew-person-docs-table__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.crew-person-docs-table__pdf {
  min-height: 2.25rem;
  min-width: 2.25rem;
}

#doc-preview-modal.doc-preview-modal--stacked::backdrop {
  background: color-mix(in oklab, #000 62%, transparent);
}

/* Collapsed Contract / Leave forms on crew person.
   Do NOT put display:flex|grid on <summary> — Chromium/WebKit then
   opens <details> but will not close on a second click. */
.crew-fold {
  overflow: hidden;
}
.crew-fold__summary {
  list-style: none;
  display: block;
  position: relative;
  padding: 0.85rem 2.25rem 0.85rem 1rem;
  cursor: pointer;
  user-select: none;
}
.crew-fold__summary::-webkit-details-marker,
.crew-fold__summary::marker {
  display: none;
  content: "";
}
.crew-fold__text {
  min-width: 0;
  padding-inline-end: 0.25rem;
}
.crew-fold__chevron {
  position: absolute;
  top: 0.9rem;
  inset-inline-end: 1rem;
  opacity: 0.45;
  font-size: 0.9rem;
  line-height: 1;
  pointer-events: none;
  transition: transform 0.15s ease;
}
.crew-fold[open] .crew-fold__chevron {
  transform: rotate(180deg);
}
.crew-fold .card-soft-body {
  padding-top: 0.15rem;
}
.crew-fold--inline {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  border-radius: 0.45rem;
  background: color-mix(in oklab, var(--color-base-content) 2.5%, transparent);
}
.crew-fold__summary--compact {
  padding: 0.55rem 2rem 0.55rem 0.75rem;
}
.crew-fold__summary--compact .crew-fold__chevron {
  top: 0.65rem;
  inset-inline-end: 0.75rem;
}
.crew-fold--identity .crew-identity-form {
  padding-top: 0.25rem;
}
.crew-identity-block {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
.crew-identity-block__legend {
  padding: 0;
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.7;
}
.crew-identity-form .role-pick,
.crew-identity-form .crew-type-pick {
  max-width: 28rem;
}
.crew-identity-meta {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.55rem 0.65rem;
  align-items: end;
}
@media (max-width: 1100px) {
  .crew-identity-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .crew-identity-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.settings-dfo-chip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-primary) 28%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100));
}
.settings-dfo-chip__name {
  font-weight: 650;
  font-size: 0.9rem;
}
.settings-save__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.settings-toggle-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  border-radius: 0.5rem;
  overflow: hidden;
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.settings-toggle-list > li + li {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.settings-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.9rem;
  cursor: pointer;
  min-height: 3.25rem;
}
/* Match Leave policies Active column: fixed right rail, switch centered */
.settings-toggle-list--align-active .settings-toggle-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4.75rem;
  justify-content: stretch;
  align-items: center;
  gap: 0.75rem;
  padding-inline: 0.75rem 0.35rem;
}
.settings-toggle-row__switch {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 1.75rem;
}
.settings-toggle-row:hover {
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}
.settings-toggle-row__text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1 1 auto;
}
.settings-toggle-row__title {
  font-size: 0.875rem;
  font-weight: 550;
  line-height: 1.3;
}
.settings-toggle-row__hint {
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.55;
}
.settings-toggle-row .toggle {
  flex-shrink: 0;
}
#leave-policies .leave-policy-active-col {
  width: 4.75rem;
  min-width: 4.75rem;
  max-width: 4.75rem;
  text-align: center;
  vertical-align: middle;
}
.alert-soft {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
}

/* Legacy fieldset helpers (other pages may still use) */
.settings-block {
  margin: 0;
  padding: 0;
  min-width: 0;
  border: 0;
}
.settings-block__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  float: none;
  padding: 0;
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.3;
}
.settings-block__hint {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  line-height: 1.4;
  opacity: 0.65;
}

/* DaisyUI 5: captions above inputs (not beside) for our form-control pattern. */
label.form-control,
div.form-control {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
label.form-control > .label-text,
div.form-control > .label-text {
  display: block;
  width: 100%;
  line-height: 1.25;
  padding: 0;
}
label.form-control > .input,
label.form-control > .select,
label.form-control > .textarea,
div.form-control > .input,
div.form-control > .select,
div.form-control > .textarea,
div.form-control > .sky-typeahead {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* New roster period: name + start + end + create on one row */
.roster-new-period {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.55rem;
  width: 100%;
}
.roster-new-period__name.form-control {
  width: auto;
  flex: 1 1 10rem;
  min-width: 8rem;
  max-width: none;
}
.roster-new-period__date.form-control {
  width: auto;
  flex: 0 0 auto;
  max-width: none;
}
.roster-new-period__date .input {
  width: auto;
  min-width: 9.5rem;
}
.roster-new-period__go {
  flex: 0 0 auto;
  margin-bottom: 0.05rem;
}

/* Aircraft type combobox (replaces flaky native <datalist>). */
.sky-typeahead {
  position: relative;
  width: 100%;
  min-width: 0;
}
.sky-typeahead > .input {
  width: 100%;
}
.sky-typeahead__list {
  position: absolute;
  z-index: 60;
  left: 0;
  right: 0;
  top: calc(100% + 0.2rem);
  margin: 0;
  padding: 0.25rem 0;
  list-style: none;
  min-width: 22rem;
  max-height: 18rem;
  overflow: auto;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: var(--color-base-100);
  box-shadow: 0 10px 28px color-mix(in oklab, #000 28%, transparent);
}
.sky-typeahead__option {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.45rem 0.7rem;
  cursor: pointer;
  font-size: 0.8125rem;
  line-height: 1.25;
}
.sky-typeahead__option:hover,
.sky-typeahead__option.is-active {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
}
.sky-typeahead__icao {
  flex: 0 0 auto;
  font-weight: 650;
  letter-spacing: 0.02em;
}
.sky-typeahead__name {
  flex: 1 1 auto;
  min-width: 0;
  opacity: 0.65;
  white-space: normal;
  line-height: 1.35;
  overflow: visible;
}

/* QRH import how-to */
.qrh-howto {
  padding: 0.85rem 1rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.qrh-howto__title {
  margin: 0 0 0.5rem;
  font-size: 0.85rem;
  font-weight: 650;
}
.qrh-howto__steps {
  margin: 0;
  padding-inline-start: 1.2rem;
  font-size: 0.8rem;
  line-height: 1.45;
  opacity: 0.85;
}
.qrh-howto__steps li + li {
  margin-top: 0.28rem;
}
.qrh-howto__note {
  margin: 0.65rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.6;
}

/* Compact refs counts (settings / mastheads) */
.refs-stat {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1rem 1.15rem;
  text-decoration: none;
  color: inherit;
  min-height: 5.25rem;
}
.refs-stat__label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.45;
}
.refs-stat__value {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 650;
  letter-spacing: -0.04em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.panel-count {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-inline-start: 0.15rem;
  padding: 0.15rem 0.55rem;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-200));
  color: var(--color-base-content);
  font-size: 0.85rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  vertical-align: baseline;
}

/* AI assist Markdown (EASA cite modal, etc.) */
.ai-md {
  max-height: min(50vh, 28rem);
  overflow: auto;
}
.ai-md > :first-child {
  margin-top: 0;
}
.ai-md > :last-child {
  margin-bottom: 0;
}
.ai-md h2,
.ai-md h3,
.ai-md h4 {
  margin: 0.85em 0 0.35em;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.ai-md h2 {
  font-size: 1.05rem;
}
.ai-md h3 {
  font-size: 0.98rem;
}
.ai-md h4 {
  font-size: 0.92rem;
  opacity: 0.9;
}
.ai-md p {
  margin: 0.45em 0;
}
.ai-md .ai-md__list,
.ai-md ul,
.ai-md ol {
  margin: 0.4em 0 0.55em;
  padding-inline-start: 1.25rem;
}
.ai-md li {
  margin: 0.2em 0;
}
.ai-md li + li {
  margin-top: 0.28em;
}
.ai-md strong {
  font-weight: 650;
}
.ai-md code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.86em;
  padding: 0.08em 0.35em;
  border-radius: 0.3rem;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.ai-md a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

/* Admin airports — mini cards by country */
.apt-mini {
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
  min-height: 5.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  text-align: start;
  color: inherit;
  font: inherit;
}
button.apt-mini--map {
  cursor: pointer;
  transition: border-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease;
}
button.apt-mini--map:hover {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 25%, transparent);
}
button.apt-mini--map:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.apt-mini__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.4rem;
}
.apt-mini__codes {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.apt-mini__icao {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.apt-mini__iata {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  opacity: 0.55;
}
.apt-mini__size {
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.12rem 0.4rem;
  border-radius: 9999px;
  line-height: 1.2;
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  opacity: 0.85;
}
.apt-mini__name {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.3;
}
.apt-mini__meta {
  margin: auto 0 0;
  font-size: 0.68rem;
  line-height: 1.35;
  opacity: 0.55;
}
.apt-mini--muted {
  opacity: 0.62;
}

/* Size tints — soft, readable in light + dark */
.apt-mini--large-airport {
  background: color-mix(in oklab, var(--color-primary) 20%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 42%, transparent);
}
.apt-mini--large-airport .apt-mini__size {
  background: color-mix(in oklab, var(--color-primary) 28%, transparent);
  color: var(--color-primary);
  opacity: 1;
}
.apt-mini--medium-airport {
  background: color-mix(in oklab, var(--color-info) 18%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-info) 38%, transparent);
}
.apt-mini--medium-airport .apt-mini__size {
  background: color-mix(in oklab, var(--color-info) 26%, transparent);
  color: var(--color-info);
  opacity: 1;
}
.apt-mini--small-airport {
  background: color-mix(in oklab, var(--color-success) 14%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-success) 32%, transparent);
}
.apt-mini--small-airport .apt-mini__size {
  background: color-mix(in oklab, var(--color-success) 22%, transparent);
  color: var(--color-success);
  opacity: 1;
}
.apt-mini--heliport {
  background: color-mix(in oklab, var(--color-warning) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-warning) 36%, transparent);
}
.apt-mini--heliport .apt-mini__size {
  background: color-mix(in oklab, var(--color-warning) 24%, transparent);
  color: var(--color-warning);
  opacity: 1;
}
.apt-mini--seaplane-base {
  background: color-mix(in oklab, var(--color-accent) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-accent) 34%, transparent);
}
.apt-mini--seaplane-base .apt-mini__size {
  background: color-mix(in oklab, var(--color-accent) 24%, transparent);
  color: var(--color-accent);
  opacity: 1;
}
.apt-mini--other {
  background: color-mix(in oklab, var(--color-base-content) 6%, var(--color-base-100));
}

/* Aircraft types — tint by marque */
.apt-mini--marque-airbus {
  background: color-mix(in oklab, #38bdf8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 40%, transparent);
}
.apt-mini--marque-airbus .apt-mini__size {
  background: color-mix(in oklab, #38bdf8 28%, transparent);
  color: #38bdf8;
  opacity: 1;
}
.apt-mini--marque-boeing {
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 42%, transparent);
}
.apt-mini--marque-boeing .apt-mini__size {
  background: color-mix(in oklab, var(--color-primary) 26%, transparent);
  color: var(--color-primary);
  opacity: 1;
}
.apt-mini--marque-embraer {
  background: color-mix(in oklab, var(--color-success) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-success) 36%, transparent);
}
.apt-mini--marque-embraer .apt-mini__size {
  background: color-mix(in oklab, var(--color-success) 24%, transparent);
  color: var(--color-success);
  opacity: 1;
}
.apt-mini--marque-bombardier {
  background: color-mix(in oklab, #22d3ee 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #22d3ee 34%, transparent);
}
.apt-mini--marque-bombardier .apt-mini__size {
  background: color-mix(in oklab, #22d3ee 24%, transparent);
  color: #22d3ee;
  opacity: 1;
}
.apt-mini--marque-atr {
  background: color-mix(in oklab, #fb923c 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #fb923c 36%, transparent);
}
.apt-mini--marque-atr .apt-mini__size {
  background: color-mix(in oklab, #fb923c 24%, transparent);
  color: #fb923c;
  opacity: 1;
}
.apt-mini--marque-mcdonnell {
  background: color-mix(in oklab, #a78bfa 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 38%, transparent);
}
.apt-mini--marque-mcdonnell .apt-mini__size {
  background: color-mix(in oklab, #a78bfa 26%, transparent);
  color: #a78bfa;
  opacity: 1;
}
.apt-mini--marque-antonov {
  background: color-mix(in oklab, #f472b6 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #f472b6 34%, transparent);
}
.apt-mini--marque-antonov .apt-mini__size {
  background: color-mix(in oklab, #f472b6 24%, transparent);
  color: #f472b6;
  opacity: 1;
}
.apt-mini--marque-cessna {
  background: color-mix(in oklab, #84cc16 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #84cc16 34%, transparent);
}
.apt-mini--marque-cessna .apt-mini__size {
  background: color-mix(in oklab, #84cc16 24%, transparent);
  color: #84cc16;
  opacity: 1;
}
.apt-mini--marque-dassault {
  background: color-mix(in oklab, #e879f9 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #e879f9 34%, transparent);
}
.apt-mini--marque-dassault .apt-mini__size {
  background: color-mix(in oklab, #e879f9 24%, transparent);
  color: #e879f9;
  opacity: 1;
}
.apt-mini--marque-gulfstream {
  background: color-mix(in oklab, #2dd4bf 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #2dd4bf 34%, transparent);
}
.apt-mini--marque-gulfstream .apt-mini__size {
  background: color-mix(in oklab, #2dd4bf 24%, transparent);
  color: #2dd4bf;
  opacity: 1;
}
.apt-mini--marque-dehavilland {
  background: color-mix(in oklab, #fbbf24 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 36%, transparent);
}
.apt-mini--marque-dehavilland .apt-mini__size {
  background: color-mix(in oklab, #fbbf24 24%, transparent);
  color: #fbbf24;
  opacity: 1;
}
.apt-mini--marque-bae {
  background: color-mix(in oklab, #60a5fa 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #60a5fa 34%, transparent);
}
.apt-mini--marque-bae .apt-mini__size {
  background: color-mix(in oklab, #60a5fa 24%, transparent);
  color: #60a5fa;
  opacity: 1;
}
.apt-mini--marque-fokker {
  background: color-mix(in oklab, #c084fc 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #c084fc 34%, transparent);
}
.apt-mini--marque-fokker .apt-mini__size {
  background: color-mix(in oklab, #c084fc 24%, transparent);
  color: #c084fc;
  opacity: 1;
}
.apt-mini--marque-ilyushin {
  background: color-mix(in oklab, #f87171 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #f87171 34%, transparent);
}
.apt-mini--marque-ilyushin .apt-mini__size {
  background: color-mix(in oklab, #f87171 24%, transparent);
  color: #f87171;
  opacity: 1;
}
.apt-mini--marque-tupolev {
  background: color-mix(in oklab, #fb7185 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #fb7185 34%, transparent);
}
.apt-mini--marque-tupolev .apt-mini__size {
  background: color-mix(in oklab, #fb7185 24%, transparent);
  color: #fb7185;
  opacity: 1;
}
.apt-mini--marque-sukhoi {
  background: color-mix(in oklab, #818cf8 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #818cf8 34%, transparent);
}
.apt-mini--marque-sukhoi .apt-mini__size {
  background: color-mix(in oklab, #818cf8 24%, transparent);
  color: #818cf8;
  opacity: 1;
}
.apt-mini--marque-lockheed {
  background: color-mix(in oklab, #94a3b8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 36%, transparent);
}
.apt-mini--marque-lockheed .apt-mini__size {
  background: color-mix(in oklab, #94a3b8 24%, transparent);
  color: #94a3b8;
  opacity: 1;
}
.apt-mini--marque-pilatus {
  background: color-mix(in oklab, #4ade80 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #4ade80 34%, transparent);
}
.apt-mini--marque-pilatus .apt-mini__size {
  background: color-mix(in oklab, #4ade80 24%, transparent);
  color: #4ade80;
  opacity: 1;
}
.apt-mini--marque-saab {
  background: color-mix(in oklab, #facc15 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #facc15 36%, transparent);
}
.apt-mini--marque-saab .apt-mini__size {
  background: color-mix(in oklab, #facc15 24%, transparent);
  color: #facc15;
  opacity: 1;
}
.apt-mini--marque-other {
  background: color-mix(in oklab, var(--color-base-content) 6%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}

/* Admin tenants — status cards + user role cards */
.tenant-grid,
.tenant-user-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.75rem;
}
.tenant-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.85rem 0.9rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
  color: inherit;
  text-decoration: none;
  min-height: 7.5rem;
  transition: border-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease;
}
.tenant-card:has(.tenant-card__open:hover),
.tenant-card:has(.tenant-card__open:focus-visible) {
  border-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 20%, transparent);
  transform: translateY(-1px);
}
.tenant-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.tenant-card__top-end {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}
a.tenant-card__open {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
  min-height: 0;
  color: inherit;
  text-decoration: none;
  border-radius: 0.35rem;
}
a.tenant-card__open:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 2px;
}
.tenant-card__code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
}
.tenant-card__badge {
  font-size: 0.65rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border-radius: 9999px;
  opacity: 0.95;
}
.tenant-card__name {
  font-weight: 600;
  line-height: 1.25;
}
.tenant-card__meta {
  margin-top: auto;
  font-size: 0.75rem;
  opacity: 0.72;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.tenant-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.35rem;
}
.tenant-card--pending {
  background: color-mix(in oklab, #f59e0b 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 35%, transparent);
}
.tenant-card--pending .tenant-card__badge {
  background: color-mix(in oklab, #f59e0b 28%, transparent);
  color: #fbbf24;
}
.tenant-card--suspended {
  background: color-mix(in oklab, #ef4444 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #ef4444 32%, transparent);
}
.tenant-card--suspended .tenant-card__badge {
  background: color-mix(in oklab, #ef4444 26%, transparent);
  color: #f87171;
}
.tenant-card--active {
  background: color-mix(in oklab, #22c55e 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #22c55e 30%, transparent);
}
.tenant-card--active .tenant-card__badge {
  background: color-mix(in oklab, #22c55e 24%, transparent);
  color: #4ade80;
}
.tenant-card__money {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  font-weight: 600;
  opacity: 1;
}
.tenant-card__pay {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.12rem 0.4rem;
  border-radius: 9999px;
}
.tenant-card__pay--unpaid {
  background: color-mix(in oklab, #ef4444 26%, transparent);
  color: #f87171;
}
.tenant-card__pay--paying {
  background: color-mix(in oklab, #22c55e 24%, transparent);
  color: #4ade80;
}
.tenant-card__pay--free {
  background: color-mix(in oklab, #94a3b8 22%, transparent);
  color: #cbd5e1;
}
.tenant-card__warn {
  color: #f87171;
  font-weight: 600;
  opacity: 1;
}

/* Admin — tenant company profile (platform /companies/{iata}) */
.admin-tenant-facts {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}
@media (min-width: 640px) {
  .admin-tenant-facts {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.admin-tenant-fact {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.7rem 0.85rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.admin-tenant-fact__label {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.42;
  line-height: 1.25;
}
.admin-tenant-fact__value {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.25;
  min-width: 0;
}
.admin-tenant-fact__value--toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.admin-tenant-fact__value--n {
  font-size: 1.35rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content));
}
.admin-tenant-fact--people {
  grid-column: 1 / -1;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1.25rem;
  margin-top: 0.15rem;
  padding: 0.85rem 1rem;
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
}
.admin-tenant-fact__people-main {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 6.5rem;
  flex-shrink: 0;
}
.admin-tenant-fact__note {
  flex: 1 1 12rem;
  min-width: 0;
  font-size: 0.72rem;
  line-height: 1.45;
  opacity: 0.58;
  padding-top: 0.15rem;
}

/* Tenant fleet register cards */
.fleet-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.85rem;
}
.fleet-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  min-height: 7rem;
  margin: 0;
  overflow: hidden;
}
.fleet-card__hit {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.95rem 1rem 0.5rem;
  width: 100%;
  flex: 1;
}
.fleet-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.fleet-card__reg {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: 1rem;
  text-transform: uppercase;
}
.fleet-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 0.8rem;
  opacity: 0.8;
}
.fleet-card__chars {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-size: 0.68rem;
  opacity: 0.7;
}
.fleet-card__chars span {
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
  background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
}
.fleet-card__notes {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.55;
}
.fleet-card__status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.65rem 0.45rem;
}
.fleet-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  margin-top: auto;
  padding: 0.4rem 0.65rem 0.6rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.fleet-card__mel {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.fleet-card--mel-nogo {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 70%, transparent);
}
.fleet-card--mel-goif {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 70%, transparent);
}

/* Aircraft MEL page masthead */
.mel-ac-head--nogo {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 75%, transparent);
}
.mel-ac-head--goif {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 75%, transparent);
}
.mel-ac-head--clear {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-success) 55%, transparent);
}
.mel-ac-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}
.mel-ac-stat {
  min-width: 4.25rem;
  padding: 0.4rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  text-align: end;
}
.mel-ac-stat__label {
  display: block;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
  line-height: 1.2;
}
.mel-ac-stat__value {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  margin-top: 0.1rem;
}
.mel-ac-stat--nogo {
  border-color: color-mix(in oklab, var(--color-error) 40%, transparent);
  background: color-mix(in oklab, var(--color-error) 12%, var(--color-base-100));
  color: var(--color-error);
}
.mel-ac-stat--goif {
  border-color: color-mix(in oklab, var(--color-warning) 40%, transparent);
  background: color-mix(in oklab, var(--color-warning) 12%, var(--color-base-100));
  color: var(--color-warning);
}
.mel-ac-stat--go,
.mel-ac-stat--clear {
  border-color: color-mix(in oklab, var(--color-success) 35%, transparent);
  background: color-mix(in oklab, var(--color-success) 10%, var(--color-base-100));
  color: var(--color-success);
}
.mel-ac-banner {
  padding: 0.55rem 1rem 0.7rem;
  font-size: 0.8rem;
  line-height: 1.35;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.mel-ac-banner--nogo {
  background: color-mix(in oklab, var(--color-error) 10%, transparent);
  color: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
}
.mel-ac-banner--goif {
  background: color-mix(in oklab, var(--color-warning) 10%, transparent);
  color: color-mix(in oklab, var(--color-warning) 80%, var(--color-base-content));
}
.fleet-card--active {
  border-color: color-mix(in oklab, #22c55e 35%, transparent);
  background: color-mix(in oklab, #22c55e 11%, var(--color-base-100));
}
.fleet-card--inactive {
  opacity: 0.78;
  border-style: dashed;
  background: color-mix(in oklab, var(--color-base-content) 2%, var(--color-base-100));
}

/* Wake turbulence L/M/H/J icon picker */
.sky-wake-pick {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
  width: 100%;
}
.sky-wake-pick__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 3.25rem;
  padding: 0.35rem 0.25rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  color: inherit;
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  -webkit-tap-highlight-color: transparent;
}
.sky-wake-pick__btn:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
}
.sky-wake-pick__btn.is-active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  color: var(--color-primary);
}

/* MEL catalog list bar — count + filter context pills */
.mel-catalog-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
}
.mel-catalog-bar__title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.55;
}
.mel-catalog-bar__ctx {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.mel-catalog-bar__hint {
  font-size: 0.75rem;
  opacity: 0.5;
  font-style: italic;
}
.mel-catalog-bar__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.45rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  color: var(--color-primary);
  border: 1px solid color-mix(in oklab, var(--color-primary) 35%, transparent);
}
.mel-catalog-bar__pill {
  display: inline-flex;
  align-items: center;
  height: 1.65rem;
  padding: 0 0.55rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 650;
  line-height: 1;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 5%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
}
.mel-catalog-bar__pill--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.02em;
}

/* MEL catalog ATA / type filter chips */
.mel-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.mel-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  min-height: 2rem;
  padding: 0.25rem 0.55rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  color: inherit;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}
.mel-filter-chip:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
}
.mel-filter-chip.is-active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  color: var(--color-primary);
}
.mel-filter-chip.is-out,
.mel-filter-chip[hidden] {
  display: none !important;
}

/* MEL catalog item cards */
.mel-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.85rem;
}
.mel-cat-card {
  display: flex;
  flex-direction: column;
  min-height: 8rem;
  margin: 0;
  overflow: hidden;
}
.mel-cat-card--off {
  opacity: 0.45;
}
.mel-cat-card--nogo {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 70%, transparent);
}
.mel-cat-card--goif {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 70%, transparent);
}
.mel-cat-card--go {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-success) 55%, transparent);
}
.mel-cat-card[hidden],
.mel-cat-card.is-out,
.mel-catalog-grid[hidden] {
  display: none !important;
}
.mel-cat-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.9rem 1rem 0.55rem;
  flex: 1;
}
.mel-cat-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.mel-cat-card__code {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.7;
}
.mel-cat-card__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
}
.mel-cat-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  opacity: 0.75;
}
.mel-cat-card__goif {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.7;
}
.mel-cat-card__notes {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
  opacity: 0.5;
}
.mel-cat-card__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem;
  margin-top: auto;
  padding: 0.4rem 0.65rem 0.6rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}

/* Company / aircraft / crew document cards — fixed card width, not full-bleed */
.org-doc-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.85rem;
}
.org-doc-grid > .org-doc-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 15rem;
  width: 15rem;
  max-width: min(15rem, 100%);
  box-sizing: border-box;
  margin: 0;
  overflow: hidden;
  min-height: 13.5rem;
}
@media (max-width: 420px) {
  .org-doc-grid > .org-doc-card {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
  }
}
.org-doc-card--expired {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 70%, transparent);
}
.org-doc-card--soon {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 70%, transparent);
}
.org-doc-card--ok {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-success) 45%, transparent);
}
.org-doc-card__preview {
  flex: 0 0 auto;
  aspect-ratio: 4 / 3;
  margin: 0.5rem 0.5rem 0;
  padding: 0;
  border-radius: 0.4rem;
  overflow: hidden;
  background: color-mix(in oklab, var(--color-base-200) 80%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  box-sizing: border-box;
}
.org-doc-card__shot {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: inherit;
}
.org-doc-card__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.org-doc-card__pdf,
.org-doc-card__empty-shot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
  padding: 1rem;
  text-align: center;
}
.org-doc-card__pdf:hover {
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
}

/* Document scan lightbox */
.doc-preview-box {
  padding: 1rem 1rem 0.75rem;
}
.doc-preview-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 12rem;
  max-height: min(78vh, 52rem);
  overflow: auto;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
}
.doc-preview-img {
  display: block;
  max-width: 100%;
  max-height: min(76vh, 50rem);
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}
.doc-preview-frame {
  display: block;
  width: 100%;
  height: min(72vh, 48rem);
  border: 0;
  border-radius: 0.35rem;
  background: var(--color-base-100);
}

.docs-edit-modal__box {
  padding: 1rem 1rem 0.85rem;
}
.docs-edit-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}
.docs-edit-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 650;
  line-height: 1.25;
}
.docs-edit-modal__lede {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  opacity: 0.55;
}
.docs-edit-modal__box .modal-action {
  margin-top: 0.5rem;
}

/* Neat circular modal close — compact help-style circle, hairline ring */
.modal .modal-box {
  position: relative;
}
.sky-modal-close.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  min-width: 1.5rem;
  min-height: 1.5rem;
  padding: 0;
  border: none;
  border-radius: 9999px;
  flex-shrink: 0;
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-base-content) 10%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 68%, transparent);
  --btn-shadow: 0 0 #0000;
  --btn-border: 0;
  --size: 1.5rem;
}
.sky-modal-close.btn:hover,
.sky-modal-close.btn:focus-visible {
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-base-content) 16%, transparent);
  color: var(--color-base-content);
  border: none;
}
.sky-modal-close__icon {
  width: 0.65rem;
  height: 0.65rem;
}
.sky-modal-close--float {
  position: absolute;
  right: 0.55rem;
  top: 0.55rem;
  z-index: 10;
}
.sky-modal-close-form {
  position: absolute;
  right: 0.55rem;
  top: 0.55rem;
  z-index: 10;
  margin: 0;
  line-height: 0;
}
.sky-help-head__close .sky-modal-close--float,
.jl-edit-modal__close .sky-modal-close--float,
.jl-guide-modal__close .sky-modal-close--float,
.docs-edit-modal__head .sky-modal-close--float,
.card-soft-head .sky-modal-close--float,
.modal-box .sticky .sky-modal-close--float,
.modal-box header .sky-modal-close--float,
.charts-pdf-modal__actions .sky-modal-close--float,
.modal-box header .sky-modal-close-form {
  position: static;
  right: auto;
  top: auto;
}
.org-doc-card__pdf-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.45rem;
  border-radius: 0.25rem;
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.org-doc-card__pdf-name {
  font-size: 0.7rem;
  opacity: 0.55;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.org-doc-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.75rem 0.9rem 0.45rem;
  flex: 1;
  min-width: 0;
}
.org-doc-card__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
}
.org-doc-card__code {
  font-size: 0.7rem;
  opacity: 0.55;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.org-doc-card__title {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
}
.org-doc-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.35rem 0.65rem;
  font-size: 0.7rem;
  opacity: 0.65;
}
.org-doc-card__dates {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
  margin-inline-start: auto;
  text-align: end;
  font-variant-numeric: tabular-nums;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.68rem;
  letter-spacing: -0.01em;
}
.org-doc-card__notes {
  font-size: 0.75rem;
  opacity: 0.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.org-doc-card__actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  padding: 0.4rem 0.75rem 0.7rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.org-doc-card__actions form {
  margin-inline-start: auto;
}

.sky-wake-ico {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  opacity: 0.85;
}
.sky-wake-ico--l { width: 0.95rem; height: 0.95rem; }
.sky-wake-ico--m { width: 1.2rem; height: 1.2rem; }
.sky-wake-ico--h { width: 1.45rem; height: 1.45rem; }
.sky-wake-ico--j { width: 1.7rem; height: 1.7rem; }
.sky-wake-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0.35rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  font-size: 0.65rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  line-height: 1;
}
.sky-wake-badge .sky-wake-ico {
  width: 0.85rem;
  height: 0.85rem;
}
.sky-wake-badge--l .sky-wake-ico { width: 0.65rem; height: 0.65rem; }
.sky-wake-badge--m .sky-wake-ico { width: 0.75rem; height: 0.75rem; }
.sky-wake-badge--h .sky-wake-ico { width: 0.9rem; height: 0.9rem; }
.sky-wake-badge--j .sky-wake-ico { width: 1rem; height: 1rem; }

/* FSTD desk — devices + sessions */
.fstd-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}
.fstd-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.fstd-stat__n {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.15rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.fstd-stat__l {
  font-size: 0.68rem;
  opacity: 0.55;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fstd-stat--ok .fstd-stat__n {
  color: color-mix(in oklab, var(--color-success) 75%, var(--color-base-content));
}
.fstd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.75rem;
}
.fstd-card {
  margin: 0;
  padding: 0.85rem 0.9rem;
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  min-height: 6rem;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background:
    linear-gradient(
      135deg,
      color-mix(in oklab, var(--color-primary) 6%, transparent),
      transparent 48%
    ),
    color-mix(in oklab, var(--color-base-100) 92%, transparent);
}
.fstd-card__mark {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.45rem;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
  color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content));
}
.fstd-card__ico {
  width: 1.15rem;
  height: 1.15rem;
}
.fstd-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  flex: 1;
}
.fstd-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.4rem;
}
.fstd-card__name {
  margin: 0;
  font-weight: 700;
  font-size: 0.92rem;
  line-height: 1.25;
}
.fstd-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.fstd-card__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin-top: auto;
  padding-top: 0.4rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.fstd-card--active {
  border-color: color-mix(in oklab, var(--color-success) 28%, transparent);
}
.fstd-card--inactive {
  opacity: 0.62;
  border-style: dashed;
}
.fstd-card--ffs .fstd-card__mark {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
}
.fstd-card--ftd .fstd-card__mark {
  background: color-mix(in oklab, #38bdf8 18%, transparent);
  color: color-mix(in oklab, #38bdf8 55%, var(--color-base-content));
}
.fstd-card--fnpt .fstd-card__mark {
  background: color-mix(in oklab, #a78bfa 18%, transparent);
  color: color-mix(in oklab, #a78bfa 55%, var(--color-base-content));
}
.fstd-class {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.4rem;
  border-radius: 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.03em;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.fstd-class--ffs {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content));
}
.fstd-class--ftd {
  background: color-mix(in oklab, #38bdf8 16%, transparent);
  color: color-mix(in oklab, #0ea5e9 65%, var(--color-base-content));
}
.fstd-class--fnpt {
  background: color-mix(in oklab, #a78bfa 16%, transparent);
  color: color-mix(in oklab, #8b5cf6 65%, var(--color-base-content));
}
.fstd-class--bitd {
  background: color-mix(in oklab, #f59e0b 14%, transparent);
  color: color-mix(in oklab, #d97706 65%, var(--color-base-content));
}
.fstd-session-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.fstd-session {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100));
}
.fstd-session__when {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 7.5rem;
}
.fstd-session__day {
  font-size: 0.78rem;
  font-weight: 650;
}
.fstd-session__clock {
  font-size: 0.72rem;
  opacity: 0.7;
}
.fstd-session__main {
  flex: 1;
  min-width: 0;
}
.fstd-session__crew {
  margin: 0;
  font-weight: 650;
  font-size: 0.9rem;
}
.fstd-session__device {
  margin: 0.15rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  opacity: 0.85;
}
.fstd-session__notes {
  margin: 0.3rem 0 0;
  font-size: 0.72rem;
  opacity: 0.55;
}
.fstd-empty {
  text-align: center;
  padding: 1.5rem 1rem;
}
.fstd-empty__title {
  margin: 0;
  font-weight: 650;
  font-size: 0.95rem;
}
.fstd-empty__hint {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  opacity: 0.55;
}
@media (max-width: 640px) {
  .fstd-stats {
    grid-template-columns: 1fr;
  }
  .fstd-session__when {
    min-width: 100%;
  }
}

/* Logbook period icon presets — single strip, right of masthead */
.logbook-period-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
}
.logbook-period {
  margin-top: 0;
  margin-inline-start: auto;
  flex: 0 1 auto;
  max-width: 100%;
}
.logbook-period__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 0.3rem;
  width: auto;
  max-width: 100%;
}
.logbook-period__opt {
  display: block;
  min-width: 2.6rem;
  text-decoration: none;
  color: inherit;
  flex: 0 0 auto;
  cursor: pointer;
}
.logbook-period__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.logbook-period__face svg {
  width: 1.1rem;
  height: 1.1rem;
}
.logbook-period__lbl {
  display: block;
  text-align: center;
  font-size: 0.58rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  margin-top: 0.18rem;
  opacity: 0.65;
  line-height: 1.1;
  white-space: nowrap;
}
.logbook-period__opt.is-active .logbook-period__face,
.logbook-period__opt--custom.is-active .logbook-period__face {
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  color: color-mix(in oklab, var(--color-primary) 70%, var(--color-base-content));
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.logbook-period__opt.is-active .logbook-period__lbl,
.logbook-period__opt--custom.is-active .logbook-period__lbl {
  opacity: 1;
}
.logbook-period__opt--28d.is-active .logbook-period__face,
.logbook-period__opt--12m.is-active .logbook-period__face {
  background: color-mix(in oklab, #fbbf24 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 48%, transparent);
  color: #fcd34d;
  box-shadow: 0 0 0 1px color-mix(in oklab, #fbbf24 28%, transparent);
}
.logbook-period__opt:focus-visible .logbook-period__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.logbook-period__custom {
  display: contents;
}
.logbook-period__custom > summary {
  list-style: none;
}
.logbook-period__custom > summary::-webkit-details-marker {
  display: none;
}
.logbook-period__custom-form {
  flex: 1 1 100%;
  order: 99;
  display: none;
  margin-top: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.logbook-period__custom[open] .logbook-period__custom-form {
  display: inline-flex;
  justify-content: flex-end;
  margin-inline-start: auto;
}
/* Native date/time (Daisy `input` + browser segments). en-GB → day→month→year. */
input.input[type="date"],
input.input[type="time"],
input.input[type="datetime-local"],
.occ-sched-line__in[type="datetime-local"],
.jl-paper__input[type="time"] {
  font-variant-numeric: tabular-nums;
}
.date-input-compact {
  width: 10.75rem;
  min-width: 10.75rem;
  max-width: 100%;
}
.time-input-compact {
  width: 6.75rem;
  min-width: 6.25rem;
  max-width: 100%;
}

.logbook-hub-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}
@media (min-width: 768px) {
  .logbook-hub-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.logbook-hub-stat {
  padding: 0.85rem 1rem;
}
.logbook-hub-stat__label {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
}
.logbook-hub-stat__value {
  margin: 0.15rem 0 0;
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.logbook-hub-stat__meta {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  opacity: 0.5;
}
.logbook-hub-group--pilot {
  border-color: color-mix(in oklab, var(--color-primary) 22%, transparent);
}
.logbook-hub-group--cabin {
  border-color: color-mix(in oklab, #34d399 28%, transparent);
}
.logbook-hub-group--engineer {
  border-color: color-mix(in oklab, #fbbf24 28%, transparent);
}
.logbook-hub-table {
  margin: 0;
  table-layout: fixed;
  width: 100%;
  min-width: 42rem;
}
.logbook-hub-table th,
.logbook-hub-table td {
  vertical-align: middle;
}
.logbook-hub-table th {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.65;
  font-weight: 600;
  white-space: nowrap;
}
.logbook-hub-table .tabular-nums,
.logbook-hub-table td.font-mono {
  font-variant-numeric: tabular-nums;
}
.logbook-hub-col-name { width: 22%; }
.logbook-hub-col-rank { width: 7%; }
.logbook-hub-col-base { width: 6%; }
.logbook-hub-col-num { width: 7%; }
.logbook-hub-col-ld { width: 6%; }
.logbook-hub-col-last { width: 8%; }
.logbook-hub-col-bar { width: 8%; }
.logbook-hub-table tfoot td {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.logbook-hub-name {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  max-width: 100%;
  text-decoration: none;
  color: inherit;
}
.logbook-hub-name:hover {
  color: var(--color-primary);
}
.logbook-hub-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 9999px;
  flex-shrink: 0;
  font-size: 0.7rem;
  font-weight: 650;
  background: color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-100));
  overflow: hidden;
}
.logbook-hub-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.logbook-hub-bar {
  height: 0.35rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
  overflow: hidden;
}
.logbook-hub-bar > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: color-mix(in oklab, var(--color-primary) 70%, transparent);
  min-width: 0;
}

.logbook-entries-table {
  margin: 0;
  table-layout: fixed;
  width: 100%;
  min-width: 48rem;
}
.logbook-entries-table th,
.logbook-entries-table td {
  vertical-align: middle;
}
.logbook-entries-table th {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.65;
  font-weight: 600;
  white-space: nowrap;
}
.logbook-entries-col-date { width: 8rem; }
.logbook-entries-col-kind { width: 5.5rem; }
.logbook-entries-col-route { width: 9rem; }
.logbook-entries-col-num { width: 5.5rem; }
.logbook-entries-col-pic { width: 7.5rem; }
.logbook-entries-col-ld { width: 5rem; }
.logbook-entries-col-notes { width: auto; }

/* Crew board — mini cards */
.crew-board {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.crew-board__group {
  margin: 0;
}
.crew-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 0.65rem;
}
.crew-mini {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.75rem 0.85rem;
  min-height: 5.5rem;
  margin: 0;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.12s ease, background-color 0.12s ease;
}
button.crew-mini {
  appearance: none;
  font: inherit;
  text-align: start;
}
.crew-mini:hover {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100));
}
.crew-mini__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.45rem;
}
.crew-mini__flags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.2rem;
  flex-shrink: 0;
  max-width: 45%;
}
.crew-mini--docs-bad {
  border-color: color-mix(in oklab, var(--color-error) 55%, transparent);
}
.crew-mini--docs-soon {
  border-color: color-mix(in oklab, var(--color-warning) 50%, transparent);
}
.crew-mini__identity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1 1 auto;
}
.crew-mini__avatar {
  flex-shrink: 0;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 9999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-200));
  color: var(--color-base-content);
}
.crew-mini__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.crew-mini__name {
  font-weight: 650;
  font-size: 0.88rem;
  line-height: 1.25;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.crew-profile-preview {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 700;
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-200));
  flex-shrink: 0;
  position: relative;
}
.crew-profile-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.crew-profile-preview--pick {
  cursor: pointer;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-base-content) 8%, transparent);
  transition: box-shadow 0.15s ease;
}
.crew-profile-preview--pick:hover,
.crew-profile-preview--pick:focus-within {
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-primary) 55%, transparent);
}
.crew-profile-preview__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 9999px;
  overflow: hidden;
  position: relative;
  z-index: 0;
}
.crew-profile-preview__initial {
  line-height: 1;
}
/* Small corner camera — permanent affordance for change photo */
.crew-profile-preview__hint {
  position: absolute;
  right: -0.1rem;
  bottom: -0.1rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 9999px;
  color: var(--color-primary-content, #fff);
  background: var(--color-primary);
  box-shadow:
    0 0 0 2px var(--color-base-100),
    0 1px 2px color-mix(in oklab, #000 22%, transparent);
  opacity: 1;
  pointer-events: none;
  transition: transform 0.12s ease, background 0.12s ease;
}
.crew-profile-preview--pick:hover .crew-profile-preview__hint,
.crew-profile-preview--pick:focus-within .crew-profile-preview__hint {
  transform: scale(1.06);
}
.crew-profile-preview__cam {
  width: 0.72rem;
  height: 0.72rem;
  flex-shrink: 0;
  overflow: visible;
}
.crew-profile-preview--head {
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.05rem;
}
.crew-profile-preview--head .crew-profile-preview__hint {
  width: 1.1rem;
  height: 1.1rem;
}
.crew-profile-preview--head .crew-profile-preview__cam {
  width: 0.58rem;
  height: 0.58rem;
}
.crew-photo-input-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* Crew modals: Job type + Rank on one row; Role pick stays full width */
#crew-profile-modal .crew-type-pick,
#crew-add-modal .crew-type-pick,
#crew-add-modal .role-pick {
  --sky-icon-pick-face: 2.85rem;
  --sky-icon-pick-svg: 1.35rem;
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.35rem;
  overflow: visible;
}
#crew-profile-modal .crew-type-pick__opt,
#crew-add-modal .crew-type-pick__opt,
#crew-add-modal .role-pick__opt {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}
#crew-profile-modal .crew-type-pick__lbl,
#crew-add-modal .crew-type-pick__lbl,
#crew-add-modal .role-pick__lbl {
  font-size: 0.68rem;
  margin-top: 0.25rem;
  line-height: 1.15;
  white-space: normal;
  overflow-wrap: anywhere;
}
#crew-profile-modal .crew-type-pick__face,
#crew-add-modal .crew-type-pick__face,
#crew-add-modal .role-pick__face {
  height: var(--sky-icon-pick-face);
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
/* Job type | Rank — single horizontal line */
#crew-profile-modal .crew-job-rank-block,
#crew-add-modal .crew-job-rank-block {
  width: 100%;
}
#crew-profile-modal .crew-job-rank-row,
#crew-add-modal .crew-job-rank-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
  width: 100%;
}
#crew-profile-modal .crew-job-rank-row > .form-control,
#crew-add-modal .crew-job-rank-row > .form-control {
  flex: 1 1 0;
  min-width: 0;
}
#crew-profile-modal .crew-job-rank-block .crew-type-pick,
#crew-add-modal .crew-job-rank-block .crew-type-pick,
#crew-profile-modal .crew-job-rank-block .rank-pick,
#crew-add-modal .crew-job-rank-block .rank-pick {
  --sky-icon-pick-face: 2.55rem;
  --sky-icon-pick-svg: 1.2rem;
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  gap: 0.28rem;
  overflow-x: auto;
  overflow-y: visible;
}
#crew-profile-modal .crew-job-rank-block .crew-type-pick__opt,
#crew-add-modal .crew-job-rank-block .crew-type-pick__opt,
#crew-profile-modal .crew-job-rank-block .rank-pick__opt,
#crew-add-modal .crew-job-rank-block .rank-pick__opt {
  flex: 1 1 0;
  min-width: 2.2rem;
  width: auto;
}
#crew-profile-modal .crew-job-rank-block .crew-type-pick__face,
#crew-add-modal .crew-job-rank-block .crew-type-pick__face,
#crew-profile-modal .crew-job-rank-block .rank-pick__face,
#crew-add-modal .crew-job-rank-block .rank-pick__face {
  height: var(--sky-icon-pick-face);
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
#crew-profile-modal .crew-job-rank-block .rank-pick__face,
#crew-add-modal .crew-job-rank-block .rank-pick__face {
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  padding: 0 0.1rem;
}
@media (max-width: 28rem) {
  #crew-profile-modal .crew-job-rank-row,
  #crew-add-modal .crew-job-rank-row {
    flex-wrap: wrap;
  }
  #crew-profile-modal .crew-job-rank-row > .form-control,
  #crew-add-modal .crew-job-rank-row > .form-control {
    flex: 1 1 100%;
  }
}
.crew-mini__meta {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.45rem;
  font-size: 0.7rem;
  opacity: 0.75;
}
.crew-mini__marks {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
  height: 1.45rem;
}
.crew-mini__marks .crew-type-mark,
.crew-mini__marks .rank-mark {
  display: inline-flex;
  align-items: center;
  height: 1.45rem;
}
.crew-mini__marks .crew-type-mark__face,
.crew-mini__marks .rank-mark__face {
  width: 1.45rem;
  min-width: 1.45rem;
  height: 1.45rem;
  padding: 0;
  box-sizing: border-box;
}
.crew-mini__marks .rank-mark__face {
  width: auto;
  min-width: 2.1rem;
  padding: 0 0.25rem;
  font-size: 0.62rem;
}
.crew-mini__emp {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.45rem;
}
.crew-mini__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  padding-top: 0.35rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  font-size: 0.68rem;
}
.crew-mini--inactive {
  opacity: 0.72;
  border-style: dashed;
}
/* Crew type colors (operational roles on the board) */
.crew-mini--pilot {
  border-color: color-mix(in oklab, #38bdf8 45%, transparent);
  background: color-mix(in oklab, #38bdf8 10%, var(--color-base-100));
}
.crew-mini--pilot .crew-mini__avatar {
  background: color-mix(in oklab, #38bdf8 28%, var(--color-base-200));
}
.crew-mini--cabin {
  border-color: color-mix(in oklab, #f472b6 45%, transparent);
  background: color-mix(in oklab, #f472b6 10%, var(--color-base-100));
}
.crew-mini--cabin .crew-mini__avatar {
  background: color-mix(in oklab, #f472b6 28%, var(--color-base-200));
}
.crew-mini--engineer {
  border-color: color-mix(in oklab, #fbbf24 48%, transparent);
  background: color-mix(in oklab, #fbbf24 11%, var(--color-base-100));
}
.crew-mini--engineer .crew-mini__avatar {
  background: color-mix(in oklab, #fbbf24 30%, var(--color-base-200));
}
.crew-mini--occ {
  border-color: color-mix(in oklab, #a78bfa 48%, transparent);
  background: color-mix(in oklab, #a78bfa 11%, var(--color-base-100));
}
.crew-mini--occ .crew-mini__avatar {
  background: color-mix(in oklab, #a78bfa 30%, var(--color-base-200));
}
.crew-mini--none {
  border-color: color-mix(in oklab, var(--color-base-content) 14%, transparent);
}

/* Documents board — status chips under masthead */
.docs-board-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.docs-crew-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(19.5rem, 1fr));
  gap: 0.85rem;
  align-items: stretch;
}
.docs-crew-card {
  margin: 0;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  min-height: 9rem;
  overflow: hidden;
  background: color-mix(in oklab, var(--color-base-200) 40%, var(--color-base-100));
}
.docs-crew-card__rail {
  width: 0.28rem;
  flex-shrink: 0;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.docs-crew-card--ok .docs-crew-card__rail {
  background: color-mix(in oklab, #22c55e 78%, transparent);
}
.docs-crew-card--bad .docs-crew-card__rail {
  background: color-mix(in oklab, #ef4444 82%, transparent);
}
.docs-crew-card--soon:not(.docs-crew-card--bad) .docs-crew-card__rail {
  background: color-mix(in oklab, #f59e0b 80%, transparent);
}
.docs-crew-card--ok {
  border-color: color-mix(in oklab, #22c55e 28%, transparent);
}
.docs-crew-card--bad {
  border-color: color-mix(in oklab, #ef4444 36%, transparent);
}
.docs-crew-card--soon:not(.docs-crew-card--bad) {
  border-color: color-mix(in oklab, #f59e0b 34%, transparent);
}
.docs-crew-card__inner {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}
.docs-crew-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.8rem 0.9rem 0.55rem;
}
.docs-crew-card__name {
  font-weight: 650;
  font-size: 0.95rem;
  line-height: 1.25;
  color: inherit;
  text-decoration: none;
}
.docs-crew-card__meta {
  font-size: 0.7rem;
  opacity: 0.7;
  margin-top: 0.2rem;
}
.docs-crew-card--fold:not(:has(.docs-crew-card__fold[open])) {
  min-height: 0;
}
.docs-crew-card__fold {
  margin: 0;
}
.docs-crew-card__fold-summary {
  list-style: none;
  cursor: pointer;
  padding: 0 0.65rem 0.55rem;
  user-select: none;
}
.docs-crew-card__fold-summary::-webkit-details-marker {
  display: none;
}
.docs-crew-card__fold-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.72rem;
  opacity: 0.62;
  padding: 0.35rem 0.5rem;
  border-radius: 0.35rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.docs-crew-card__fold-summary:hover .docs-crew-card__fold-inner {
  opacity: 0.85;
  background: color-mix(in oklab, var(--color-primary) 5%, transparent);
}
.docs-crew-card__fold-chevron {
  font-size: 0.7rem;
  opacity: 0.5;
  transition: transform 0.15s ease;
}
.docs-crew-card__fold[open] .docs-crew-card__fold-chevron {
  transform: rotate(180deg);
}
.docs-crew-card__fold-body .docs-crew-card__list {
  padding-top: 0;
}
.docs-crew-card__list {
  list-style: none;
  margin: 0;
  padding: 0 0.65rem 0.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  flex: 1;
}
.docs-crew-card__ok-group {
  list-style: none;
  margin: 0;
  padding: 0;
}
.docs-crew-card__ok-fold {
  margin: 0;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, #22c55e 22%, transparent);
  background: color-mix(in oklab, #22c55e 5%, var(--color-base-100));
}
.docs-crew-card__ok-summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.docs-crew-card__ok-summary::-webkit-details-marker {
  display: none;
}
.docs-crew-card__ok-summary-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem;
  font-size: 0.78rem;
}
.docs-crew-card__ok-label {
  font-weight: 600;
}
.docs-crew-card__ok-summary-end {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}
.docs-crew-card__ok-chevron {
  font-size: 0.68rem;
  opacity: 0.45;
  transition: transform 0.15s ease;
}
.docs-crew-card__ok-fold[open] .docs-crew-card__ok-chevron {
  transform: rotate(180deg);
}
.docs-crew-card__ok-list {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0.35rem 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.docs-crew-card__ok-list .docs-crew-card__doc {
  border-color: color-mix(in oklab, #22c55e 18%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 82%, transparent);
}
.docs-crew-card__doc {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.45rem 0.5rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 70%, transparent);
  font-size: 0.78rem;
}
.docs-crew-card__doc--expired,
.docs-crew-card__doc--missing {
  border-color: color-mix(in oklab, #ef4444 28%, transparent);
  background: color-mix(in oklab, #ef4444 8%, var(--color-base-100));
}
.docs-crew-card__doc--soon {
  border-color: color-mix(in oklab, #f59e0b 26%, transparent);
  background: color-mix(in oklab, #f59e0b 7%, var(--color-base-100));
}
.docs-crew-card__doc-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.45rem;
  line-height: 1.3;
}
.docs-crew-card__doc-code {
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  opacity: 0.55;
  text-transform: uppercase;
}
.docs-crew-card__doc-name {
  font-weight: 600;
}
.docs-crew-card__doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin-top: 0.2rem;
  font-size: 0.7rem;
  opacity: 0.65;
}
.docs-crew-card__doc-main--edit {
  cursor: pointer;
  border-radius: 0.3rem;
  margin: -0.15rem;
  padding: 0.15rem;
  transition: background 0.12s ease;
}
.docs-crew-card__doc-main--edit:hover {
  background: color-mix(in oklab, var(--color-primary) 7%, transparent);
}
.docs-crew-card__doc-main--edit:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  outline-offset: 1px;
}
.docs-crew-card__doc-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  flex-shrink: 0;
}
.docs-crew-card__empty {
  font-size: 0.75rem;
  opacity: 0.55;
  padding: 0.45rem 0.5rem;
}
.docs-crew-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  margin-top: auto;
  padding: 0.4rem 0.75rem 0.65rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}

/* SMS — active notice rows */
.sms-notice-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem 0.85rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  border-radius: 0.5rem;
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.sms-notice-row__main {
  flex: 1 1 14rem;
}

/* ICAO safety & compliance advisory desk */
.icao-desk {
  border-color: color-mix(in oklab, #38bdf8 22%, transparent);
}
.icao-desk__mast {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  padding: 1rem 1.1rem 0.95rem;
  background:
    linear-gradient(
      135deg,
      color-mix(in oklab, #0ea5e9 14%, transparent),
      color-mix(in oklab, var(--color-base-100) 70%, transparent) 42%,
      transparent
    ),
    color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100));
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.icao-desk__form {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.45rem 0.55rem;
  width: auto;
  max-width: 100%;
}
.icao-desk__fields {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.45rem 0.55rem;
}
.icao-desk__field {
  flex: 0 0 auto;
  width: 5.25rem;
  min-width: 5.25rem;
  max-width: 5.25rem;
}
.icao-desk__field.form-control {
  width: 5.25rem;
}
.icao-desk__field .input {
  width: 100%;
}
.icao-desk__go {
  flex: 0 0 auto;
  margin-bottom: 0.05rem;
}
.icao-desk__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 1.1rem 1.15rem;
}
.icao-desk__empty {
  padding: 1.25rem 0.25rem 0.5rem;
}
.icao-desk__empty-title {
  margin: 0 0 0.25rem;
  font-size: 0.9rem;
  font-weight: 650;
}
.icao-desk__empty-text {
  font-size: 0.8rem;
  opacity: 0.65;
  max-width: 36rem;
}
.icao-desk__empty--key {
  border-radius: 0.5rem;
  padding: 0.9rem 1rem;
  border: 1px dashed color-mix(in oklab, #eab308 40%, transparent);
  background: color-mix(in oklab, #eab308 8%, var(--color-base-100));
}
.icao-desk__banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, var(--color-base-100));
}
.icao-desk__advisory {
  flex: 1 1 14rem;
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.7;
}
.icao-kpi {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.55rem;
}
.icao-kpi__tile {
  padding: 0.65rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: var(--color-base-100);
  min-height: 4.25rem;
}
.icao-kpi__tile.is-live.icao-kpi__tile--warn {
  border-color: color-mix(in oklab, #f87171 40%, transparent);
  background: color-mix(in oklab, #f87171 10%, var(--color-base-100));
}
.icao-kpi__tile.is-live.icao-kpi__tile--caution {
  border-color: color-mix(in oklab, #fbbf24 40%, transparent);
  background: color-mix(in oklab, #fbbf24 10%, var(--color-base-100));
}
.icao-kpi__tile.is-live.icao-kpi__tile--ok {
  border-color: color-mix(in oklab, #34d399 38%, transparent);
  background: color-mix(in oklab, #34d399 9%, var(--color-base-100));
}
.icao-kpi__tile.is-live.icao-kpi__tile--info {
  border-color: color-mix(in oklab, #38bdf8 38%, transparent);
  background: color-mix(in oklab, #38bdf8 9%, var(--color-base-100));
}
.icao-kpi__tile.is-fail {
  border-color: color-mix(in oklab, #eab308 30%, transparent);
  opacity: 0.85;
}
.icao-kpi__tile.is-muted {
  opacity: 0.55;
}
.icao-kpi__label {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.6;
}
.icao-kpi__value {
  margin: 0.2rem 0 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.icao-kpi__value--fail,
.icao-kpi__value--muted {
  font-size: 1.1rem;
  font-weight: 600;
  opacity: 0.45;
}
.icao-desk__group {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.icao-desk__group-title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.55;
}
.icao-sec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
  gap: 0.7rem;
}
.icao-sec {
  margin: 0;
  padding: 0.75rem 0.8rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 11%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-height: 6.5rem;
}
.icao-sec--warn.icao-sec--ok {
  border-color: color-mix(in oklab, #f87171 28%, transparent);
}
.icao-sec--caution.icao-sec--ok {
  border-color: color-mix(in oklab, #fbbf24 28%, transparent);
}
.icao-sec--ok.icao-sec--ok {
  border-color: color-mix(in oklab, #34d399 26%, transparent);
}
.icao-sec--fail {
  border-color: color-mix(in oklab, #eab308 32%, transparent);
  background: color-mix(in oklab, #eab308 6%, var(--color-base-100));
}
.icao-sec__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.icao-sec__title {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 650;
  line-height: 1.25;
}
.icao-sec__key {
  margin-top: 0.1rem;
  font-size: 0.62rem;
  opacity: 0.45;
  letter-spacing: 0.02em;
}
.icao-sec__table-wrap {
  overflow-x: auto;
  margin: 0 -0.15rem;
}
.icao-sec__table {
  margin: 0;
}
.icao-sec__table th {
  font-size: 0.62rem;
  font-weight: 650;
  text-transform: none;
  opacity: 0.65;
  white-space: nowrap;
}
.icao-sec__table td {
  font-size: 0.72rem;
  max-width: 9.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.icao-sec__more,
.icao-sec__empty {
  font-size: 0.68rem;
  opacity: 0.55;
}
.icao-kv {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}
.icao-kv__row {
  display: grid;
  grid-template-columns: minmax(5rem, 38%) 1fr;
  gap: 0.4rem 0.55rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.icao-kv__row dt {
  opacity: 0.55;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.icao-kv__row dd {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Legacy docs two-column layout (unused) */
.docs-layout {
  display: grid;
  gap: 1rem;
  align-items: start;
}
@media (min-width: 1280px) {
  .docs-layout {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
  }
}
.docs-layout__list {
  min-width: 0;
}

/* Integrations API catalog cards */
.integ-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 0.75rem;
}
.integ-api-card {
  margin: 0;
  padding: 0.85rem 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 8.5rem;
}
.integ-api-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.integ-api-card__name {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.25;
}
.integ-api-card__cat {
  margin-top: 0.15rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.55;
}
.integ-api-card__badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem;
  flex-shrink: 0;
}
.integ-api-card__purpose {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  opacity: 0.78;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.integ-api-card__keys {
  font-size: 0.68rem;
  opacity: 0.55;
  word-break: break-all;
}
.integ-api-card--ok {
  border-color: color-mix(in oklab, #22c55e 28%, transparent);
  background: color-mix(in oklab, #22c55e 7%, var(--color-base-100));
}
.integ-api-card--key {
  border-color: color-mix(in oklab, #eab308 38%, transparent);
  background: color-mix(in oklab, #eab308 11%, var(--color-base-100));
}
.integ-api-card--planned {
  opacity: 0.92;
}

/* Integrations live probes */
.probe-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
  gap: 0.65rem;
}
.probe-card {
  margin: 0;
  padding: 0.7rem 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-height: 4.75rem;
}
.probe-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
}
.probe-card__name {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.probe-card__detail {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.35;
  opacity: 0.65;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.probe-card--ok {
  border-color: color-mix(in oklab, #22c55e 32%, transparent);
  background: color-mix(in oklab, #22c55e 9%, var(--color-base-100));
}
.probe-card--key {
  border-color: color-mix(in oklab, #eab308 35%, transparent);
  background: color-mix(in oklab, #eab308 10%, var(--color-base-100));
}
.probe-card--fail {
  border-color: color-mix(in oklab, #ef4444 35%, transparent);
  background: color-mix(in oklab, #ef4444 10%, var(--color-base-100));
}

/* Integrations — sunrise / ticket providers */
.integ-sun-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
}
.integ-sun-tile {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  min-width: 0;
}
.integ-sun-tile--up {
  background: color-mix(in oklab, #f59e0b 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 28%, transparent);
}
.integ-sun-tile--down {
  background: color-mix(in oklab, #6366f1 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #6366f1 28%, transparent);
}
.integ-sun-tile__ico {
  flex-shrink: 0;
  font-size: 1.15rem;
  line-height: 1;
  opacity: 0.9;
}
.integ-sun-tile__label {
  margin: 0;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.6;
  line-height: 1.2;
}
.integ-sun-tile__time {
  margin: 0.1rem 0 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.integ-sun-tile__time span {
  font-size: 0.65rem;
  font-weight: 500;
  opacity: 0.55;
  margin-inline-start: 0.15rem;
}
.integ-sun-daylight {
  margin: 0;
  font-size: 0.75rem;
  opacity: 0.55;
}
.integ-ticket-box {
  padding: 0.65rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
}
.integ-ticket-box__label {
  margin: 0 0 0.35rem;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.integ-ticket-box__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.integ-ticket-box__empty {
  margin: 0;
  font-size: 0.8rem;
  opacity: 0.65;
}

/* Integrations — FX rates */
.integ-fx-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}
.integ-fx-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.65rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  min-width: 0;
}
.integ-fx-tile--base {
  background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.integ-fx-tile__code {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.6;
}
.integ-fx-tile__rate {
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1.15;
}
.integ-fx-tile__tag {
  position: absolute;
  top: 0.45rem;
  inset-inline-end: 0.5rem;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.55;
}

/* Integrations — traffic near base */
.integ-traffic-hero {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.integ-traffic-hero--live {
  background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.integ-traffic-hero--empty {
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.integ-traffic-hero__value {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  flex-shrink: 0;
}
.integ-traffic-hero__num {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}
.integ-traffic-hero__unit {
  font-size: 0.7rem;
  font-weight: 650;
  opacity: 0.55;
  text-transform: uppercase;
}
.integ-traffic-hero__label {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.25;
}
.integ-traffic-hero__meta {
  margin-top: 0.3rem;
}
.integ-traffic-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 12rem;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.integ-traffic-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  gap: 0.4rem;
  align-items: center;
  padding: 0.4rem 0.55rem;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  font-size: 0.75rem;
}
.integ-traffic-row__cs {
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.integ-traffic-row__extra {
  opacity: 0.55;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.integ-traffic-row__alt {
  opacity: 0.7;
  font-size: 0.7rem;
}
.integ-traffic-empty {
  padding: 0.7rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
}
.integ-traffic-empty--warn {
  border-style: solid;
  border-color: color-mix(in oklab, #eab308 35%, transparent);
  background: color-mix(in oklab, #eab308 10%, var(--color-base-100));
}
.integ-traffic-empty__title {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
}
.integ-traffic-empty__hint {
  margin: 0.3rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.6;
}

/* Integrations — SWPC Kp */
.integ-kp-hero {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
}
.integ-kp-hero--quiet {
  background: color-mix(in oklab, #22c55e 10%, var(--color-base-100));
  border-color: color-mix(in oklab, #22c55e 28%, transparent);
}
.integ-kp-hero--unsettled {
  background: color-mix(in oklab, #eab308 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #eab308 32%, transparent);
}
.integ-kp-hero--active {
  background: color-mix(in oklab, #f97316 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #f97316 34%, transparent);
}
.integ-kp-hero--storm {
  background: color-mix(in oklab, #ef4444 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #ef4444 36%, transparent);
}
.integ-kp-hero__value {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
  flex-shrink: 0;
}
.integ-kp-hero__num {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}
.integ-kp-hero__unit {
  font-size: 0.75rem;
  font-weight: 650;
  opacity: 0.55;
  text-transform: uppercase;
}
.integ-kp-hero__level {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.integ-kp-hero__hint {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  opacity: 0.6;
  line-height: 1.3;
}
.integ-kp-scale {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 0.2rem;
}
.integ-kp-scale__tick {
  height: 0.35rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.integ-kp-scale__tick.is-on.integ-kp-scale__tick--quiet {
  background: color-mix(in oklab, #22c55e 70%, transparent);
}
.integ-kp-scale__tick.is-on.integ-kp-scale__tick--unsettled {
  background: color-mix(in oklab, #eab308 75%, transparent);
}
.integ-kp-scale__tick.is-on.integ-kp-scale__tick--active {
  background: color-mix(in oklab, #f97316 75%, transparent);
}
.integ-kp-scale__tick.is-on.integ-kp-scale__tick--storm {
  background: color-mix(in oklab, #ef4444 75%, transparent);
}
.integ-kp-time {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.72rem;
  opacity: 0.6;
}
.integ-kp-note {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.4;
  opacity: 0.55;
}

/* OCC — Airport charts desk */
.charts-lookup.join {
  flex-wrap: nowrap;
  max-width: 100%;
}

/* Weather / Charts — masthead with ICAO lookup on the right */
.wx-masthead {
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  flex-wrap: wrap;
}
.wx-masthead__copy {
  flex: 1 1 14rem;
  min-width: 0;
}
.wx-masthead__copy .panel-eyebrow {
  margin-bottom: 0.15rem;
}
.wx-masthead .wx-lookup {
  margin-inline-start: auto;
}

/* Weather desk — ICAO lookup in masthead */
.wx-lookup {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.55rem 0.65rem;
  flex-shrink: 0;
}
.wx-lookup__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0;
}
.wx-lookup__label {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.5;
  line-height: 1;
}
.wx-lookup__icao {
  width: 5.25rem;
  text-align: center;
  letter-spacing: 0.12em;
  font-weight: 650;
}
.wx-lookup__actions.join {
  flex-wrap: nowrap;
}
.wx-lookup__actions .btn {
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding-inline: 0.9rem;
}
.wx-lookup__busy.htmx-indicator {
  flex-shrink: 0;
  align-self: flex-end;
  margin-bottom: 0.45rem;
  display: none;
}
.wx-lookup__busy.htmx-indicator.htmx-request {
  display: inline-block;
}

.charts-summary__grid {
  display: grid;
  gap: 0;
}
@media (min-width: 900px) {
  .charts-summary__grid {
    grid-template-columns: minmax(16rem, 1fr) minmax(28.5rem, 1.75fr);
  }
}
.charts-summary__map {
  min-height: 18rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  overflow: hidden;
}
.charts-summary__map .sky-map {
  min-height: 18rem;
  height: 18rem;
  border-radius: 0;
  border: 0;
}
@media (min-width: 900px) {
  .charts-summary__map {
    border-top: 0;
    border-inline-start: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
    min-height: 23.5rem;
  }
  .charts-summary__map .sky-map {
    min-height: 23.5rem;
    height: 23.5rem;
  }
}
.charts-summary__map-empty {
  display: grid;
  place-items: center;
  min-height: 18rem;
  padding: 1rem;
  font-size: 0.85rem;
  opacity: 0.55;
  text-align: center;
}
.charts-summary__meta {
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  min-width: 0;
}
.charts-summary__id {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.55rem;
}
.charts-summary__icao {
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
}
.charts-summary__name {
  font-size: 0.95rem;
  font-weight: 600;
  opacity: 0.85;
}
.charts-summary__place {
  margin: 0;
  font-size: 0.8rem;
  opacity: 0.55;
}
.charts-summary__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.charts-summary__note,
.charts-summary__jep {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  opacity: 0.55;
}
.charts-summary__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.charts-boards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.charts-boards__pair,
.charts-boards__rest {
  display: grid;
  gap: 1rem;
}
@media (min-width: 1024px) {
  .charts-boards__pair,
  .charts-boards__rest {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}
.charts-board .card-soft-head h2 {
  font-size: 0.95rem;
}
.charts-group__title {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.55;
}
.charts-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.charts-board > .charts-list {
  padding: 0.65rem 0.75rem 0.85rem;
}
.charts-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.charts-row__main {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
}
.charts-row__code {
  flex: 0 0 auto;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  opacity: 0.55;
}
.charts-row__title {
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
}
.charts-empty {
  padding: 1rem 1.1rem;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
  font-size: 0.85rem;
  line-height: 1.45;
  opacity: 0.7;
}

/* Charts PDF viewer modal */
.charts-pdf-modal__box.modal-box {
  width: min(96vw, 72rem);
  max-width: min(96vw, 72rem);
  height: min(92vh, 56rem);
  max-height: 92vh;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.charts-pdf-modal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  flex-shrink: 0;
}
.charts-pdf-modal__title {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 650;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.charts-pdf-modal__actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}
.charts-pdf-modal__frame {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  border: 0;
  background: color-mix(in oklab, var(--color-base-content) 6%, var(--color-base-100));
}

/* Leave board — compact public holidays (secondary to leave/layover tables) */
.leave-holidays-card {
  overflow: hidden;
}
.leave-holidays-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  list-style: none;
  cursor: pointer;
  padding: 0.55rem 0.85rem;
  user-select: none;
}
.leave-holidays-summary::-webkit-details-marker {
  display: none;
}
.leave-holidays-summary__text {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.65rem;
  flex: 1 1 auto;
}
.leave-holidays-summary__title {
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.01em;
}
.leave-holidays-summary__meta {
  font-size: 0.7rem;
  opacity: 0.5;
}
.leave-holidays-summary__chevron {
  opacity: 0.4;
  font-size: 0.75rem;
  transition: transform 0.12s ease;
}
.leave-holidays-card[open] .leave-holidays-summary__chevron {
  transform: rotate(180deg);
}
.leave-holidays-filters {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  margin-inline-start: auto;
}
.leave-holidays-filters__year {
  width: 4.25rem;
}
.leave-holidays-filters__iso {
  width: 2.75rem;
}
.leave-holidays-filters__go {
  flex: 0 0 auto;
}
.leave-holidays {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0 0.85rem 0.65rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.leave-holidays__hint {
  margin: 0;
  padding: 0.35rem 0;
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.5;
}
.leave-holidays-compact {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0 0.15rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: 14rem;
  overflow: auto;
}
.leave-holidays-compact__row {
  display: grid;
  grid-template-columns: 6.5rem 2rem minmax(0, 1fr);
  gap: 0.45rem 0.65rem;
  align-items: baseline;
  padding: 0.18rem 0;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 5%, transparent);
  font-size: 0.75rem;
  line-height: 1.3;
}
.leave-holidays-compact__row:last-child {
  border-bottom: 0;
}
.leave-holidays-compact__date {
  opacity: 0.7;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}
.leave-holidays-compact__wd {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  opacity: 0.45;
}
.leave-holidays-compact__name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/* Transfer desk — search + itinerary cards */
.transfer-search .transfer-leg-join label {
  cursor: pointer;
}
.transfer-offers__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.transfer-offer {
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
  padding: 0.85rem 0.95rem;
}
.transfer-offer__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.transfer-offer__price {
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
}
.transfer-offer__ccy {
  font-size: 0.75rem;
  font-weight: 500;
  opacity: 0.65;
}
.transfer-offer__meta {
  font-size: 0.72rem;
  opacity: 0.62;
  margin-top: 0.2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.35rem;
}
.transfer-offer__dot {
  opacity: 0.45;
}
.transfer-offer__segments {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.transfer-seg {
  display: grid;
  grid-template-columns: 0.65rem 1fr;
  gap: 0.55rem;
  position: relative;
  padding-bottom: 0.55rem;
}
.transfer-seg:last-child {
  padding-bottom: 0;
}
.transfer-seg__line {
  width: 2px;
  margin: 0.2rem auto 0;
  align-self: stretch;
  min-height: 0.35rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-primary) 45%, transparent);
}
.transfer-seg__body {
  display: flex;
  align-items: stretch;
  gap: 0.65rem;
  min-width: 0;
}
.transfer-seg__main {
  flex: 1;
  min-width: 0;
}
.transfer-seg__flight {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.transfer-seg__airline {
  font-size: 0.75rem;
  font-weight: 500;
  opacity: 0.72;
}
.transfer-seg__meta {
  line-height: 1.35;
  white-space: nowrap;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.transfer-seg__meta-sep {
  margin: 0 0.25rem;
  opacity: 0.45;
}
.transfer-seg__route-line {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.45rem;
  margin-top: 0.15rem;
  min-width: 0;
}
.transfer-seg__route {
  font-size: 0.82rem;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.45rem;
  flex-shrink: 1;
  min-width: 0;
}
.transfer-seg__endpoint {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.35rem;
  min-width: 0;
}
.transfer-seg__code {
  letter-spacing: 0.04em;
}
.transfer-seg__place {
  font-family: var(--font-sans, inherit);
  font-size: 0.72rem;
  font-weight: 500;
  opacity: 0.62;
  letter-spacing: 0;
}
.transfer-seg__arrow {
  flex-shrink: 0;
}
.transfer-seg__times {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.35rem;
  flex-shrink: 0;
  padding-top: 0.02rem;
}
.transfer-seg__clock {
  display: grid;
  grid-template-columns: auto minmax(2.65rem, auto);
  column-gap: 0.35rem;
  align-items: baseline;
  justify-content: end;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  white-space: nowrap;
}
.transfer-seg__hm {
  font-size: 0.78rem;
  font-weight: 600;
  text-align: end;
}
.transfer-seg__tz {
  font-size: 0.62rem;
  font-weight: 500;
  opacity: 0.55;
  letter-spacing: 0.01em;
  text-align: start;
}
.transfer-seg__clock--arr .transfer-seg__hm {
  font-weight: 550;
  opacity: 0.82;
}
.transfer-offers__disclaimer {
  margin-top: 0.35rem;
  padding-top: 0.65rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.transfer-layover {
  list-style: none;
  margin: 0.15rem 0 0.35rem 0.65rem;
  padding: 0.55rem 0.65rem 0.55rem 0.85rem;
  border-inline-start: 2px dashed color-mix(in oklab, var(--color-warning) 55%, transparent);
  background: color-mix(in oklab, var(--color-warning) 6%, var(--color-base-100));
  border-radius: 0.35rem;
}
.transfer-layover__chip {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  font-size: 0.75rem;
}
.transfer-layover__dur {
  font-weight: 600;
  color: color-mix(in oklab, var(--color-warning) 85%, var(--color-base-content));
}
.transfer-layover__at {
  opacity: 0.72;
}
.transfer-layover__hotels {
  margin-top: 0.45rem;
}
.transfer-layover__hotels-title {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.55;
  margin: 0 0 0.35rem;
}
.transfer-hotel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.transfer-hotel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.5rem;
  font-size: 0.78rem;
}
.transfer-hotel__name {
  font-weight: 500;
}
.transfer-hotel__price {
  font-size: 0.72rem;
  opacity: 0.8;
}
.transfer-hotel__tag {
  font-size: 0.65rem;
  uppercase;
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.transfer-hotel__hint {
  flex: 1 1 100%;
  font-size: 0.68rem;
  opacity: 0.55;
}
.transfer-layover__lounges {
  margin-top: 0.45rem;
}
.transfer-layover__lounges-title {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.55;
  margin: 0 0 0.35rem;
}
.transfer-lounge-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.transfer-lounge {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.5rem;
  font-size: 0.78rem;
}
.transfer-lounge__name {
  font-weight: 500;
}
.transfer-lounge__meta {
  font-size: 0.72rem;
  opacity: 0.75;
}
.transfer-lounge__tag {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.transfer-lounge__hint {
  flex: 1 1 100%;
  font-size: 0.68rem;
  opacity: 0.55;
}
.transfer-card__title {
  font-size: 1.05rem;
}
.transfer-card__lede {
  font-size: 0.8rem;
  margin-bottom: 0;
}

/* Trip desk */
.trip-desk,
.trip-desk.card-soft,
.trip-desk .card-soft-body,
.trip-desk-form,
.trip-desk-form__row--route,
.trip-desk-form__row--search,
.trip-desk-form__airports {
  overflow: visible;
}
.sky-typeahead__list:not([hidden]) {
  z-index: 200;
}
.trip-desk-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}
.trip-desk-form__head {
  padding-bottom: 0.65rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.trip-desk-form__route {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.trip-desk-form__lede {
  margin-top: 0.35rem;
  max-width: none;
}
.trip-desk-form__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.trip-desk-form__meta {
  font-size: 0.72rem;
  opacity: 0.58;
  padding: 0.35rem 0.55rem;
  border-radius: 0.35rem;
  background: color-mix(in oklab, var(--color-base-content) 5%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.trip-desk-form__row--search {
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  overflow: visible;
}
.trip-desk-form__row--search .sky-typeahead {
  flex: 1 1 0;
  min-width: 3.5rem;
  max-width: 9rem;
}
.trip-desk-form__row--search .trip-desk-form__apt {
  width: 100%;
  min-width: 0;
}
.trip-desk-form__row--route {
  align-items: stretch;
  gap: 0.45rem;
}
.trip-desk-form__airports {
  flex: 1 1 14rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.trip-desk-form__arrow {
  opacity: 0.45;
  font-size: 0.95rem;
  padding: 0 0.05rem;
  line-height: 1;
}
.trip-desk-form__apt {
  min-width: 0;
  min-height: 2rem;
}
.trip-desk-form__field {
  margin: 0;
}
.trip-desk-form__date {
  flex: 0 0 auto;
  width: 8.75rem;
}
.trip-desk-form__date .input {
  min-height: 2rem;
  min-width: 0;
  width: 100%;
  padding-inline: 0.35rem;
  font-size: 0.75rem;
}
.trip-desk-form__crew {
  flex: 0 1 14rem;
  min-width: 9.5rem;
  max-width: 17rem;
}
.trip-desk-form__crew-select {
  min-height: 2rem;
  height: 2rem;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  padding-inline: 0.4rem;
  padding-right: 1.75rem;
  font-size: 0.72rem;
  line-height: 1.2;
  text-overflow: ellipsis;
}
.trip-desk-form__leg label {
  cursor: pointer;
  white-space: nowrap;
  min-height: 2rem;
  height: 2rem;
  padding-inline: 0.45rem;
}
.trip-desk-form__sort-wrap {
  display: flex;
  align-items: center;
  gap: 0.1rem;
  flex: 0 0 auto;
}
.trip-desk-form__row--search .trip-sort .btn-xs {
  min-height: 2rem;
  height: 2rem;
  width: 2rem;
  min-width: 2rem;
}
.trip-desk-form__submit {
  white-space: nowrap;
  flex: 0 0 auto;
  min-height: 2rem;
  height: 2rem;
  padding-inline: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.trip-desk-form__submit-busy {
  display: none;
}
.trip-desk-form.htmx-request .trip-desk-form__submit-busy,
.trip-desk-form--busy .trip-desk-form__submit-busy {
  display: inline-block;
}
.trip-desk-form.htmx-request .trip-desk-form__submit-label,
.trip-desk-form--busy .trip-desk-form__submit-label {
  opacity: 0.72;
}
.trip-desk-form.htmx-request .trip-desk-form__submit,
.trip-desk-form--busy .trip-desk-form__submit {
  pointer-events: none;
  opacity: 0.65;
}
.trip-route-chip {
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  padding: 0.35rem 0.65rem;
  border-radius: 0.35rem;
  background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-primary) 22%, transparent);
}
.trip-sort {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.transfer-offer--pick {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 18%, transparent);
}
.trip-pick-badge {
  letter-spacing: 0.04em;
}
.transfer-offer__conds {
  max-width: 36rem;
}
.transfer-seg__term {
  font-size: 0.68rem;
}
.landing-trip {
  margin-top: 1rem;
}
.landing-trip__form,
.landing-trip__form .form-control,
.public-letter--trip .public-letter__panel {
  overflow: visible;
}
.landing-trip__form {
  display: grid;
  gap: 0.65rem;
}
@media (min-width: 640px) {
  .landing-trip__form {
    grid-template-columns: 1fr 1fr 1fr auto;
    align-items: end;
  }
}
.landing-trip__results {
  margin-top: 0.85rem;
}
.landing-trip__results-wrap {
  max-width: none;
  min-height: 2.5rem;
}
.landing-trip__busy {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  padding: 1.25rem 0.5rem;
  text-align: center;
}
.landing-trip__shell:has(.landing-trip__form.htmx-request) .landing-trip__busy,
.landing-trip__busy.htmx-request {
  display: flex;
}
.landing-trip__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.landing-trip__submit-busy {
  display: none;
}
.landing-trip__form.htmx-request .landing-trip__submit-busy {
  display: inline-block;
}
.landing-trip__form.htmx-request .landing-trip__submit {
  pointer-events: none;
  opacity: 0.65;
}
.landing-trip__results-head {
  padding-bottom: 0.35rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.landing-trip__demo-meta {
  display: grid;
  gap: 0.15rem;
}
.landing-trip__demo-row {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 0.35rem;
  align-items: baseline;
}
.landing-trip__demo-row dt {
  font-weight: 600;
  opacity: 0.75;
}
.landing-trip__demo-row dd {
  margin: 0;
}
.landing-trip__results .transfer-offer {
  padding: 0.65rem 0.75rem;
}

.user-card {
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  padding: 0.85rem 0.9rem;
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
}
.user-card__form {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.user-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.user-card__role {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.user-card__badge {
  font-size: 0.65rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.user-card__row {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 0.4rem;
  align-items: center;
}
.user-card__row--status {
  grid-template-columns: 1fr auto;
}
.user-card--company_admin {
  background: color-mix(in oklab, #a855f7 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #a855f7 34%, transparent);
}
.user-card--occ {
  background: color-mix(in oklab, #3b82f6 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #3b82f6 34%, transparent);
}
.user-card--crew {
  background: color-mix(in oklab, #14b8a6 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #14b8a6 30%, transparent);
}
.user-card--commercial {
  background: color-mix(in oklab, #f97316 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #f97316 30%, transparent);
}
.user-card--off {
  opacity: 0.62;
  filter: grayscale(0.25);
}

/* Admin billing — unpaid / paying / free cards */
.bill-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.75rem;
}
.bill-card {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.85rem 0.9rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, var(--color-base-100));
  min-height: 8rem;
}
.bill-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.bill-card__code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
}
.bill-card__badge {
  font-size: 0.65rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border-radius: 9999px;
}
.bill-card__name {
  font-weight: 600;
  line-height: 1.25;
}
.bill-card__meta {
  margin-top: auto;
  font-size: 0.75rem;
  opacity: 0.8;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.bill-card__warn {
  color: #f87171;
  font-weight: 600;
  opacity: 1;
}
.bill-card__actions {
  margin-top: 0.35rem;
}
.bill-card__actions--paid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.bill-card--unpaid {
  background: color-mix(in oklab, #ef4444 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #ef4444 34%, transparent);
}
.bill-card--unpaid .bill-card__badge {
  background: color-mix(in oklab, #ef4444 26%, transparent);
  color: #f87171;
}
.bill-card--paying {
  background: color-mix(in oklab, #22c55e 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #22c55e 30%, transparent);
}
.bill-card--paying .bill-card__badge {
  background: color-mix(in oklab, #22c55e 24%, transparent);
  color: #4ade80;
}
.bill-card--free {
  background: color-mix(in oklab, #94a3b8 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 28%, transparent);
}
.bill-card--free .bill-card__badge {
  background: color-mix(in oklab, #94a3b8 22%, transparent);
  color: #cbd5e1;
}
.bill-inv--past_due,
.bill-inv--issued,
.bill-inv--draft {
  background: color-mix(in oklab, #ef4444 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #ef4444 30%, transparent);
}
.bill-inv--past_due .bill-card__badge,
.bill-inv--issued .bill-card__badge,
.bill-inv--draft .bill-card__badge {
  background: color-mix(in oklab, #ef4444 24%, transparent);
  color: #f87171;
}
.bill-inv--paid {
  background: color-mix(in oklab, #22c55e 12%, var(--color-base-100));
  border-color: color-mix(in oklab, #22c55e 28%, transparent);
}
.bill-inv--paid .bill-card__badge {
  background: color-mix(in oklab, #22c55e 22%, transparent);
  color: #4ade80;
}
.bill-inv--void {
  background: color-mix(in oklab, #94a3b8 10%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 24%, transparent);
  opacity: 0.72;
}

/* Subscription invoice document */
.bill-invoice__parties {
  display: grid;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .bill-invoice__parties {
    grid-template-columns: 1fr 1fr;
  }
}
.bill-invoice__meta {
  display: grid;
  gap: 0.65rem 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  font-size: 0.8125rem;
}
.bill-invoice__meta > div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.bill-invoice__pay {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  padding-top: 1rem;
}
@media print {
  .bill-invoice-toolbar,
  .app-side-menu,
  .app-navbar,
  .drawer-side,
  .drawer-toggle {
    display: none !important;
  }
  .bill-invoice {
    box-shadow: none !important;
    border: 1px solid #ccc;
  }
}

/* Role + crew-type icon radios (shared size) */
:root {
  --sky-icon-pick-face: 2.35rem;
  --sky-icon-pick-svg: 1.15rem;
}

/* Role icon radios */
.role-pick {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem;
}
.role-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
}
.role-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.role-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--sky-icon-pick-face);
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.role-pick__face svg {
  width: var(--sky-icon-pick-svg);
  height: var(--sky-icon-pick-svg);
}
.role-pick__lbl {
  display: block;
  text-align: center;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  margin-top: 0.2rem;
  opacity: 0.7;
  line-height: 1.1;
}
.role-pick__opt input:focus-visible + .role-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.role-pick__opt input:checked + .role-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
  color: inherit;
}
.role-pick__opt input:checked ~ .role-pick__lbl {
  opacity: 1;
}
.role-pick__opt--company_admin input:checked + .role-pick__face {
  background: color-mix(in oklab, #a855f7 22%, var(--color-base-100));
  border-color: color-mix(in oklab, #a855f7 50%, transparent);
  color: #c084fc;
}
.role-pick__opt--occ input:checked + .role-pick__face {
  background: color-mix(in oklab, #3b82f6 22%, var(--color-base-100));
  border-color: color-mix(in oklab, #3b82f6 50%, transparent);
  color: #60a5fa;
}
.role-pick__opt--crew input:checked + .role-pick__face {
  background: color-mix(in oklab, #14b8a6 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #14b8a6 48%, transparent);
  color: #2dd4bf;
}
.role-pick__opt--commercial input:checked + .role-pick__face {
  background: color-mix(in oklab, #f97316 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #f97316 48%, transparent);
  color: #fb923c;
}
@media (max-width: 420px) {
  .role-pick {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Duty kind picker / marks (OCC + roster) */
.duty-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.3rem;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.1rem;
}
.duty-pick--compact {
  max-width: none;
}
.duty-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
  flex: 1 1 0;
  min-width: 3.35rem;
}
.duty-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.duty-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.2rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.duty-pick__face svg {
  width: 1.1rem;
  height: 1.1rem;
}
.duty-pick__lbl {
  display: block;
  text-align: center;
  font-size: 0.58rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  margin-top: 0.18rem;
  opacity: 0.7;
  line-height: 1.15;
}
.duty-pick__opt input:focus-visible + .duty-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.duty-pick__opt input:checked + .duty-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
  color: inherit;
}
.duty-pick__opt input:checked ~ .duty-pick__lbl {
  opacity: 1;
}
.duty-pick__opt--flight input:checked + .duty-pick__face {
  background: color-mix(in oklab, #38bdf8 22%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 50%, transparent);
  color: #7dd3fc;
}
.duty-pick__opt--deadhead input:checked + .duty-pick__face {
  background: color-mix(in oklab, #f59e0b 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 48%, transparent);
  color: #fbbf24;
}
.duty-pick__opt--standby input:checked + .duty-pick__face,
.duty-pick__opt--airport_standby input:checked + .duty-pick__face,
.duty-pick__opt--home_standby input:checked + .duty-pick__face {
  background: color-mix(in oklab, #a78bfa 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 48%, transparent);
  color: #c4b5fd;
}
.duty-pick__opt--fstd input:checked + .duty-pick__face {
  background: color-mix(in oklab, #22d3ee 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #22d3ee 45%, transparent);
  color: #67e8f9;
}
.duty-pick__opt--day_off input:checked + .duty-pick__face {
  background: color-mix(in oklab, #94a3b8 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 45%, transparent);
  color: #cbd5e1;
}
.duty-pick__opt--sick input:checked + .duty-pick__face {
  background: color-mix(in oklab, #f87171 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #f87171 48%, transparent);
  color: #fca5a5;
}

.duty-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  vertical-align: middle;
  max-width: 100%;
}
.duty-mark__face {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 65%, transparent);
  flex-shrink: 0;
}
.duty-mark__face svg {
  width: 0.95rem;
  height: 0.95rem;
}
.duty-mark__lbl {
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.duty-mark--flight .duty-mark__face {
  background: color-mix(in oklab, #38bdf8 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 42%, transparent);
  color: #7dd3fc;
}
.duty-mark--deadhead .duty-mark__face {
  background: color-mix(in oklab, #f59e0b 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 42%, transparent);
  color: #fbbf24;
}
.duty-mark--standby .duty-mark__face,
.duty-mark--airport_standby .duty-mark__face,
.duty-mark--home_standby .duty-mark__face {
  background: color-mix(in oklab, #a78bfa 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 42%, transparent);
  color: #c4b5fd;
}
.duty-mark--fstd .duty-mark__face {
  background: color-mix(in oklab, #22d3ee 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #22d3ee 40%, transparent);
  color: #67e8f9;
}
.duty-mark--day_off .duty-mark__face {
  background: color-mix(in oklab, #94a3b8 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 40%, transparent);
  color: #cbd5e1;
}
.duty-mark--sick .duty-mark__face {
  background: color-mix(in oklab, #f87171 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #f87171 42%, transparent);
  color: #fca5a5;
}

/* Crew type icon radios — always one row (match Role) */
.crew-type-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.4rem;
  width: 100%;
}
.crew-type-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
}
.crew-type-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.crew-type-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--sky-icon-pick-face);
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.crew-type-pick__face svg {
  width: var(--sky-icon-pick-svg);
  height: var(--sky-icon-pick-svg);
}
.crew-type-pick__lbl {
  display: block;
  text-align: center;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  margin-top: 0.2rem;
  opacity: 0.7;
  line-height: 1.1;
}
.crew-type-pick__opt input:checked + .crew-type-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
  color: inherit;
}
.crew-type-pick__opt input:checked ~ .crew-type-pick__lbl {
  opacity: 1;
}
.crew-type-pick__opt input:focus-visible + .crew-type-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.crew-type-pick__opt--pilot input:checked + .crew-type-pick__face {
  background: color-mix(in oklab, #38bdf8 22%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 50%, transparent);
  color: #7dd3fc;
}
.crew-type-pick__opt--cabin input:checked + .crew-type-pick__face {
  background: color-mix(in oklab, #f472b6 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #f472b6 48%, transparent);
  color: #f9a8d4;
}
.crew-type-pick__opt--engineer input:checked + .crew-type-pick__face {
  background: color-mix(in oklab, #fbbf24 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 48%, transparent);
  color: #fcd34d;
}
.crew-type-pick__opt--occ input:checked + .crew-type-pick__face {
  background: color-mix(in oklab, #a78bfa 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 48%, transparent);
  color: #c4b5fd;
}
.crew-type-pick__opt--any input:checked + .crew-type-pick__face {
  background: color-mix(in oklab, #94a3b8 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 45%, transparent);
  color: #cbd5e1;
}

/* A/C type chip pickers (compact chips, not role-style) */
.ac-type-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.3rem;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ac-type-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
  flex: 0 0 auto;
  min-width: 3.6rem;
}
.ac-type-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.ac-type-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.2rem;
  padding: 0 0.45rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.ac-type-pick__opt input:checked + .ac-type-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
  color: inherit;
}
.ac-type-pick__opt input:focus-visible + .ac-type-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}

.crew-type-mark {
  display: inline-flex;
  vertical-align: middle;
}
.crew-type-mark__face {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 65%, transparent);
}
.crew-type-mark__face svg {
  width: 0.9rem;
  height: 0.9rem;
}
.crew-type-mark--pilot .crew-type-mark__face {
  background: color-mix(in oklab, #38bdf8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 40%, transparent);
  color: #7dd3fc;
}
.crew-type-mark--cabin .crew-type-mark__face {
  background: color-mix(in oklab, #f472b6 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #f472b6 38%, transparent);
  color: #f9a8d4;
}
.crew-type-mark--engineer .crew-type-mark__face {
  background: color-mix(in oklab, #fbbf24 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 38%, transparent);
  color: #fcd34d;
}
.crew-type-mark--occ .crew-type-mark__face {
  background: color-mix(in oklab, #a78bfa 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 38%, transparent);
  color: #c4b5fd;
}
.crew-type-mark--none .crew-type-mark__face {
  opacity: 0.45;
  font-size: 0.65rem;
  font-weight: 700;
}
.ac-type-pick__opt input:checked + .ac-type-pick__face {
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 48%, transparent);
  color: color-mix(in oklab, var(--color-primary) 35%, var(--color-base-content));
}

/* Training board — two icon blocks: job type (who) | Due / status (click = filter) */
.training-filter {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem;
  width: auto;
  max-width: 100%;
  margin: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0;
}
.training-filter__audience,
.training-filter__status {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  min-height: 2.2rem;
  padding-inline-end: 0.65rem;
  border-inline-end: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.training-filter__status {
  border-inline-end: 0;
  padding-inline-end: 0;
}
.training-filter .crew-type-pick,
.training-filter .train-status-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
  width: auto;
  max-width: none;
  overflow: visible;
  grid-template-columns: none;
}
.training-filter .crew-type-pick:has(.crew-type-pick__opt--any) {
  grid-template-columns: none;
}
.training-filter .crew-type-pick__opt,
.training-filter .train-status-pick__opt {
  display: block;
  flex: 0 0 auto;
  width: 2.2rem;
  min-width: 2.2rem;
  margin: 0;
}
.training-filter .crew-type-pick__face,
.training-filter .train-status-pick__face {
  box-sizing: border-box;
  width: 2.2rem;
  height: 2.2rem;
  min-width: 2.2rem;
  min-height: 2.2rem;
}
.training-filter .crew-type-pick__face svg,
.training-filter .train-status-pick__face svg {
  width: 1.05rem;
  height: 1.05rem;
}
.training-filter .crew-type-pick__lbl {
  display: none;
}

/* Training sessions — Audience icons filter Attendees list */
.training-session-audience .crew-type-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
  width: auto;
  max-width: 100%;
}
.training-session-audience .crew-type-pick__opt {
  display: block;
  flex: 0 0 auto;
  width: 2.2rem;
  min-width: 2.2rem;
  margin: 0;
}
.training-session-audience .crew-type-pick__face {
  box-sizing: border-box;
  width: 2.2rem;
  height: 2.2rem;
  min-width: 2.2rem;
  min-height: 2.2rem;
}
.training-session-audience .crew-type-pick__face svg {
  width: 1.05rem;
  height: 1.05rem;
}
.training-session-audience .crew-type-pick__lbl {
  display: none;
}

.train-status-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
}
.train-status-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
  flex: 0 0 auto;
}
.train-status-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.train-status-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}
.train-status-pick__face svg {
  width: 1.05rem;
  height: 1.05rem;
}
.train-status-pick__opt input:focus-visible + .train-status-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.train-status-pick__opt input:checked + .train-status-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
}
.train-status-pick__opt--due input:checked + .train-status-pick__face,
.train-status-pick__opt--overdue input:checked + .train-status-pick__face {
  background: color-mix(in oklab, #f87171 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #f87171 48%, transparent);
  color: #fca5a5;
}
.train-status-pick__opt--missing input:checked + .train-status-pick__face {
  background: color-mix(in oklab, #94a3b8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #94a3b8 40%, transparent);
  color: #cbd5e1;
}
.train-status-pick__opt--warn input:checked + .train-status-pick__face {
  background: color-mix(in oklab, #fbbf24 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 45%, transparent);
  color: #fcd34d;
}
.train-status-pick__opt--ok input:checked + .train-status-pick__face {
  background: color-mix(in oklab, #34d399 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #34d399 45%, transparent);
  color: #6ee7b7;
}
.train-status-pick__opt--any input:checked + .train-status-pick__face {
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}

.train-status-mark {
  display: inline-flex;
  vertical-align: middle;
}
.train-status-mark__face {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 65%, transparent);
}
.train-status-mark__face svg {
  width: 0.9rem;
  height: 0.9rem;
}
.train-status-mark--ok .train-status-mark__face {
  background: color-mix(in oklab, #34d399 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #34d399 40%, transparent);
  color: #6ee7b7;
}
.train-status-mark--warn .train-status-mark__face {
  background: color-mix(in oklab, #fbbf24 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 38%, transparent);
  color: #fcd34d;
}
.train-status-mark--overdue .train-status-mark__face {
  background: color-mix(in oklab, #f87171 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #f87171 42%, transparent);
  color: #fca5a5;
}
.train-status-mark--missing .train-status-mark__face {
  opacity: 0.55;
}

/* Type ratings matrix (Crew planning) */
.quals-board {
  padding: 0;
  overflow: hidden;
}
.quals-board__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.quals-matrix {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.84rem;
}
.quals-matrix th,
.quals-matrix td {
  vertical-align: middle;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.quals-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 0.55rem 0.4rem;
  background: color-mix(in oklab, var(--color-base-200) 45%, var(--color-base-100));
  border-bottom-color: color-mix(in oklab, var(--color-base-content) 11%, transparent);
  font-weight: 650;
}
.quals-matrix__crew {
  position: sticky;
  inset-inline-start: 0;
  z-index: 1;
  min-width: 13.5rem;
  max-width: 18rem;
  width: 15rem;
  padding: 0.42rem 0.9rem;
  text-align: start;
  background: var(--color-base-100);
  box-shadow: 1px 0 0 color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.quals-matrix thead .quals-matrix__crew {
  z-index: 3;
  background: color-mix(in oklab, var(--color-base-200) 45%, var(--color-base-100));
  font-size: 0.65rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  opacity: 0.62;
  font-weight: 700;
}
.quals-matrix__type {
  min-width: 3rem;
  text-align: center;
  padding-inline: 0.2rem;
}
.quals-matrix__type-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.45rem;
  padding: 0.15rem 0.35rem;
  border-radius: 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  background: color-mix(in oklab, var(--color-base-content) 4.5%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
}
.quals-matrix__row:hover > .quals-matrix__crew,
.quals-matrix__row:hover > .quals-matrix__cell {
  background: color-mix(in oklab, var(--color-primary) 4%, var(--color-base-100));
}
.quals-matrix__row:nth-child(even) > .quals-matrix__crew,
.quals-matrix__row:nth-child(even) > .quals-matrix__cell {
  background: color-mix(in oklab, var(--color-base-content) 1.8%, var(--color-base-100));
}
.quals-matrix__row:nth-child(even):hover > .quals-matrix__crew,
.quals-matrix__row:nth-child(even):hover > .quals-matrix__cell {
  background: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100));
}
.quals-matrix__group + .quals-matrix__group .quals-matrix__row:first-child > .quals-matrix__crew,
.quals-matrix__group + .quals-matrix__group .quals-matrix__row:first-child > .quals-matrix__cell {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.quals-matrix__person {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.quals-matrix__name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  font-size: 0.86rem;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: inherit;
  text-decoration: none;
}
.quals-matrix__name:hover {
  color: var(--color-primary);
}
.quals-matrix__marks {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.28rem;
  opacity: 0.92;
}
.quals-matrix__marks .crew-type-mark,
.quals-matrix__marks .rank-mark {
  display: inline-flex;
  line-height: 0;
}
.quals-matrix__marks .crew-type-mark__face,
.quals-matrix__marks .rank-mark__face {
  width: 1.2rem;
  min-width: 1.2rem;
  height: 1.2rem;
  border-radius: 0.3rem;
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.quals-matrix__marks .rank-mark__face {
  width: auto;
  min-width: 1.65rem;
  padding: 0 0.28rem;
}
.quals-matrix__marks .crew-type-mark__face svg {
  width: 0.68rem;
  height: 0.68rem;
}
.quals-matrix__cell {
  text-align: center;
  padding: 0.32rem 0.25rem;
}
.quals-matrix__cell.is-on {
  background: color-mix(in oklab, var(--color-success) 6%, var(--color-base-100));
}
.quals-matrix__row:hover > .quals-matrix__cell.is-on {
  background: color-mix(in oklab, var(--color-success) 10%, var(--color-base-100));
}
.quals-matrix__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
}
.quals-matrix__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.quals-matrix__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 2.5%, var(--color-base-100));
  color: transparent;
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;
}
.quals-matrix__box::before {
  content: "✓";
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
}
.quals-matrix__toggle:hover .quals-matrix__box {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 7%, var(--color-base-100));
}
.quals-matrix__input:focus-visible + .quals-matrix__box {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 50%, transparent);
  outline-offset: 1px;
}
.quals-matrix__input:checked + .quals-matrix__box {
  border-color: color-mix(in oklab, var(--color-success) 45%, transparent);
  background: color-mix(in oklab, var(--color-success) 18%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-success) 80%, var(--color-base-content));
  box-shadow: none;
}
.quals-matrix__on {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: color-mix(in oklab, var(--color-success) 80%, var(--color-base-content));
  background: color-mix(in oklab, var(--color-success) 16%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-success) 28%, transparent);
}
.quals-matrix__off {
  display: inline-block;
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
  opacity: 0.55;
}

/* Roster filter + copy week — one toolbar row, copy flush end */
.roster-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.75rem;
  padding: 0.35rem 0;
  position: sticky;
  top: 3.5rem;
  z-index: 10;
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  backdrop-filter: blur(8px);
}
.roster-filter {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  min-width: 0;
  flex: 1 1 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.roster-filter__crew {
  flex: 0 0 auto;
}
.roster-filter__crew .crew-type-pick {
  gap: 0.25rem;
}
.roster-filter__crew .crew-type-pick__opt {
  min-width: 2.2rem;
  flex: 0 0 auto;
}
.roster-filter__crew .crew-type-pick__face {
  width: 2.2rem;
  height: 2.2rem;
  padding: 0;
}
.roster-filter__crew .crew-type-pick__lbl {
  display: none;
}
.roster-filter__field {
  margin: 0;
  flex: 0 0 auto;
}
.roster-filter__input {
  width: 4.25rem;
  height: 2.2rem;
  min-height: 2.2rem;
  border-radius: 0.45rem;
}
.roster-filter__input--rank {
  width: 3.5rem;
}
.roster-filter__icons {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
}
.roster-filter__opt {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  min-width: 2.2rem;
  color: inherit;
  font: inherit;
}
.roster-filter__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.roster-filter__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.roster-filter__face svg {
  width: 1.05rem;
  height: 1.05rem;
}
.roster-filter__opt input:focus-visible + .roster-filter__face,
.roster-filter__opt--btn:focus-visible .roster-filter__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.roster-filter__opt--issues input:checked + .roster-filter__face {
  background: color-mix(in oklab, #f59e0b 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #f59e0b 50%, transparent);
  color: #fbbf24;
  box-shadow: 0 0 0 1px color-mix(in oklab, #f59e0b 35%, transparent);
}
.roster-filter__opt--btn:hover .roster-filter__face {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.roster-filter__apply {
  height: 2.2rem;
  min-height: 2.2rem;
  width: 2.2rem;
  padding: 0;
}

.roster-copy-week {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  margin-inline-start: auto;
  padding: 0;
  width: auto;
  flex: 0 0 auto;
}
.roster-copy-week__field {
  display: flex;
  align-items: center;
  margin: 0;
}
.roster-copy-week__input {
  width: 9.25rem;
  min-width: 9.25rem;
  height: 2.2rem;
  min-height: 2.2rem;
  border-radius: 0.45rem;
}
.roster-copy-week__btn {
  height: 2.2rem;
  min-height: 2.2rem;
  border-radius: 0.45rem;
}

/* Rank chips (CPT / FO / …) */
.rank-pick {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.25rem;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.rank-pick__opt {
  position: relative;
  margin: 0;
  cursor: pointer;
  flex: 0 0 auto;
}
.rank-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.rank-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  height: 2.2rem;
  padding: 0 0.4rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 60%, transparent);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.rank-pick__opt input:focus-visible + .rank-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.rank-pick__opt input:checked + .rank-pick__face {
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 48%, transparent);
  color: color-mix(in oklab, var(--color-primary) 30%, var(--color-base-content));
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.rank-pick__face--icon {
  min-width: 2.2rem;
  width: 2.2rem;
  padding: 0;
}
.rank-pick__face--icon svg {
  width: 1.05rem;
  height: 1.05rem;
}
.rank-pick__face--dash {
  min-width: 2.2rem;
  width: 2.2rem;
  padding: 0;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
}
.rank-pick__opt--any input:checked + .rank-pick__face {
  background: color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 28%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
  box-shadow: none;
}
.rank-pick__opt--cpt input:checked + .rank-pick__face,
.rank-pick__opt--tri input:checked + .rank-pick__face,
.rank-pick__opt--tre input:checked + .rank-pick__face {
  background: color-mix(in oklab, #38bdf8 20%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 48%, transparent);
  color: #7dd3fc;
}
.rank-pick__opt--fo input:checked + .rank-pick__face {
  background: color-mix(in oklab, #818cf8 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #818cf8 45%, transparent);
  color: #a5b4fc;
}
.rank-pick__opt--fe input:checked + .rank-pick__face {
  background: color-mix(in oklab, #fbbf24 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 45%, transparent);
  color: #fcd34d;
}
.rank-pick__opt--sccm input:checked + .rank-pick__face,
.rank-pick__opt--ccm input:checked + .rank-pick__face {
  background: color-mix(in oklab, #f472b6 18%, var(--color-base-100));
  border-color: color-mix(in oklab, #f472b6 45%, transparent);
  color: #f9a8d4;
}

.rank-mark {
  display: inline-flex;
  vertical-align: middle;
  max-width: 100%;
}
.rank-mark__face {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.85rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 70%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
}
.rank-mark--cpt .rank-mark__face,
.rank-mark--tri .rank-mark__face,
.rank-mark--tre .rank-mark__face {
  background: color-mix(in oklab, #38bdf8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 40%, transparent);
  color: #7dd3fc;
}
.rank-mark--fo .rank-mark__face {
  background: color-mix(in oklab, #818cf8 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #818cf8 38%, transparent);
  color: #a5b4fc;
}
.rank-mark--fe .rank-mark__face {
  background: color-mix(in oklab, #fbbf24 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 38%, transparent);
  color: #fcd34d;
}
.rank-mark--sccm .rank-mark__face,
.rank-mark--ccm .rank-mark__face {
  background: color-mix(in oklab, #f472b6 14%, var(--color-base-100));
  border-color: color-mix(in oklab, #f472b6 38%, transparent);
  color: #f9a8d4;
}
.rank-mark--none .rank-mark__face {
  opacity: 0.7;
  border-style: dashed;
}
.rank-mark__face--icon {
  min-width: 1.6rem;
  width: 1.6rem;
  padding: 0;
}
.rank-mark__face--icon svg {
  width: 0.85rem;
  height: 0.85rem;
}
.rank-mark__face--dash {
  min-width: 1.6rem;
  width: 1.6rem;
  padding: 0;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1;
}
.rank-mark__face--icon svg {
  width: 0.9rem;
  height: 0.9rem;
}

.roster-filter .rank-pick {
  width: auto;
  overflow: visible;
}
.roster-filter .rank-pick__face {
  height: 2.2rem;
  min-width: 2.2rem;
  padding: 0 0.3rem;
}

/* Airport region / country filter chips */
.apt-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.apt-filters__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.25rem;
  padding: 0.35rem 0.7rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: inherit;
  text-decoration: none;
  font-size: 0.78rem;
  line-height: 1.2;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.apt-filters__chip:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
  text-decoration: none;
}
.apt-filters__chip.is-active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.apt-filters__chip--sm {
  min-height: 1.85rem;
  padding: 0.25rem 0.55rem;
  font-size: 0.72rem;
}
.apt-filters__icon {
  display: inline-flex;
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
  opacity: 0.85;
}
.apt-filters__icon svg {
  width: 100%;
  height: 100%;
}
.apt-filters__flag {
  font-size: 1rem;
  line-height: 1;
}
.apt-filters__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.2rem;
  border-radius: 0.3rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: color-mix(in oklab, var(--color-primary) 35%, var(--color-base-content));
}
.apt-filters__count {
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.5;
}
.apt-filters--countries {
  margin-top: 0.15rem;
  padding-top: 0.65rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}

@keyframes landing-art-in {
  from { opacity: 0; transform: translate3d(8%, 4%, 0) scale(1.03); }
  to { opacity: 1; transform: translate3d(4%, 2%, 0) scale(1); }
}
@keyframes landing-panel-in {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes landing-route-draw {
  from { stroke-dashoffset: 1; }
  to { stroke-dashoffset: 0; }
}
@keyframes landing-plane-fade {
  from { opacity: 0; }
  to { opacity: 0.42; }
}
@keyframes landing-glow-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-3%, 4%, 0) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) {
  .landing-backdrop__art,
  .landing-backdrop__glow,
  .landing-art__route,
  .landing-art__plane,
  .landing-hero__panel {
    animation: none !important;
  }
  .landing-art__route { stroke-dashoffset: 0; }
  .landing-backdrop__art { opacity: 0.7; }
}

/* Soft panels sit above the art */
.public-main .card-soft {
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Landing — two soft cards on desktop (classic Aqar stack) */
.landing-page {
  width: 100%;
}

/* Signup search results sit outside the card — do not clip */
.landing-signup-card,
.landing-signup-card .card-soft-body {
  overflow: visible;
}

/* Legacy aliases kept for signup widgets */
.landing-topbar__brand { display: flex; align-items: center; }
.landing-topbar__prefs { margin-inline-start: auto; }

.landing-alert { margin: 1.35rem 0 0; }

.landing-foot__note {
  margin: 1.35rem 0 0;
  max-width: 36rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
}

.landing-search { position: relative; z-index: 1; display: block; }
.landing-search[hidden],
.landing-search.hidden { display: none !important; }
.landing-search__icon {
  position: absolute;
  z-index: 2;
  top: 50%;
  inset-inline-start: 0.9rem;
  width: 1.1rem;
  height: 1.1rem;
  transform: translateY(-50%);
  color: color-mix(in oklab, var(--color-base-content) 45%, transparent);
  pointer-events: none;
}
.landing-search__icon svg { width: 100%; height: 100%; }
.landing-search__input {
  position: relative;
  z-index: 1;
  height: 2.75rem;
  padding-inline-start: 2.55rem;
  font-size: 0.95rem;
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 14%, transparent);
  box-shadow: none;
}
.landing-search__input:focus {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 16%, transparent);
}

.landing-signup-submit {
  min-height: 2.75rem;
}

.airline-results {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 0.35rem);
  max-height: min(16rem, 45vh);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: var(--color-base-100);
  box-shadow: 0 12px 40px color-mix(in oklab, #000 28%, transparent);
}
.airline-results:empty {
  display: none;
}
.airline-hit {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.65rem;
  row-gap: 0.1rem;
  width: 100%;
  text-align: start;
  padding: 0.7rem 0.85rem;
  min-height: 2.75rem;
  border: 0;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: transparent;
  color: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.airline-hit:last-child {
  border-bottom: 0;
}
.airline-hit:hover:not(:disabled),
.airline-hit:focus-visible:not(:disabled) {
  background: color-mix(in oklab, var(--color-primary) 12%, transparent);
  outline: none;
}
.airline-hit--live {
  text-decoration: none;
  color: inherit;
}
.airline-hit--live:hover {
  background: color-mix(in oklab, oklch(0.72 0.17 145) 14%, transparent);
}
.airline-hit--disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.airline-hit--inactive {
  opacity: 0.78;
}
.airline-hit--inactive .airline-hit__name {
  font-style: italic;
}
.airline-hit--empty {
  display: block;
  padding: 0.75rem 0.85rem;
  font-size: 0.85rem;
  opacity: 0.7;
}
.airline-hit__codes {
  grid-row: 1 / span 2;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 2.75rem;
}
.airline-hit__name {
  font-size: 0.88rem;
  font-weight: 500;
}
.airline-hit__meta {
  font-size: 0.72rem;
  opacity: 0.55;
}
/* :not(.hidden) so display:flex never beats Tailwind/Daisy .hidden */
.landing-details:not([hidden]):not(.hidden) {
  margin-top: 0.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.landing-details[hidden],
.landing-details.hidden {
  display: none !important;
}
.landing-selected {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in oklab, var(--color-primary) 32%, transparent);
  background: color-mix(in oklab, var(--color-primary) 11%, transparent);
}
.landing-selected__icao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  padding: 0.2rem 0.45rem;
  border-radius: 0.35rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: color-mix(in oklab, var(--color-primary) 22%, transparent);
  color: color-mix(in oklab, var(--color-primary) 55%, var(--color-base-content));
}
.landing-selected__name {
  flex: 1;
  min-width: 0;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.3;
}
.landing-selected__clear {
  margin-inline-start: auto;
  opacity: 0.7;
  min-height: 2.25rem;
}
.landing-signup-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.7rem;
}
.landing-signup-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.landing-signup-field .label-text {
  padding: 0;
}
.landing-signup-field--full {
  grid-column: 1 / -1;
}
.landing-signup-req {
  margin: 0;
}
.landing-signup-hint {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 45%, transparent);
}

/* ——— Phone only (≤639): do not touch iPad/desktop breakpoints ——— */
@media (max-width: 639px) {
  .public-app--landing .public-main {
    padding: 0.7rem 0.8rem 0.4rem;
  }
  .public-app--landing .landing-who__note {
    display: none;
  }
  .public-app--landing .landing-who {
    margin-top: 0.85rem;
  }
  .public-app--landing .landing-who__item dd {
    font-size: 0.86rem;
  }
  .public-app--landing .landing-backdrop__art {
    width: min(125vw, 34rem);
    max-height: 48dvh;
    opacity: 0.28;
    transform: translate3d(24%, 18%, 0);
  }
  .public-app--landing .landing-backdrop__glow--a,
  .public-app--landing .landing-backdrop__glow--b {
    opacity: 0.28;
  }
  .landing-selected__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .landing-signup-fields {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }
  .landing-search__input,
  .landing-signup-input,
  .landing-signup-submit {
    height: 3rem;
    min-height: 3rem;
    font-size: 16px; /* iOS: no focus zoom */
  }
  .landing-search__icon {
    inset-inline-start: 0.95rem;
    width: 1.15rem;
    height: 1.15rem;
  }
  .landing-search__input {
    padding-inline-start: 2.7rem;
  }
  .landing-selected {
    padding: 0.7rem 0.8rem;
  }
  .landing-selected__clear {
    min-height: 2.4rem;
    padding-inline: 0.65rem;
  }
  .airline-hit {
    padding: 0.8rem 0.9rem;
    min-height: 3rem;
  }
  .airline-results {
    max-height: min(14rem, 38vh);
  }
  .landing-details:not([hidden]):not(.hidden) {
    gap: 0.75rem;
    margin-top: 0.35rem;
  }
  .prefs-icons {
    gap: 0.35rem;
  }
}
@media (max-width: 520px) {
  .landing-signup-fields {
    grid-template-columns: 1fr;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Weather decode / AI advisory */
.wx-headline {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.35;
  margin: 0;
}
.wx-panel__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.wx-panel__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.55;
}
.wx-panel--compact .wx-headline {
  font-size: 0.85rem;
}
.wx-shelves {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: 0.5rem;
}
.wx-shelf {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 4.25rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}
.wx-shelf__label {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.6;
}
.wx-shelf__value {
  font-size: 0.8rem;
  line-height: 1.3;
  font-weight: 500;
}
.wx-shelf--wind {
  border-color: color-mix(in oklab, oklch(0.7 0.12 230) 45%, transparent);
  background: color-mix(in oklab, oklch(0.7 0.12 230) 12%, transparent);
}
.wx-shelf--vis {
  border-color: color-mix(in oklab, oklch(0.72 0.14 160) 45%, transparent);
  background: color-mix(in oklab, oklch(0.72 0.14 160) 12%, transparent);
}
.wx-shelf--wx {
  border-color: color-mix(in oklab, oklch(0.75 0.14 85) 50%, transparent);
  background: color-mix(in oklab, oklch(0.75 0.14 85) 14%, transparent);
}
.wx-shelf--cloud {
  border-color: color-mix(in oklab, oklch(0.68 0.08 280) 45%, transparent);
  background: color-mix(in oklab, oklch(0.68 0.08 280) 12%, transparent);
}
.wx-shelf--temp {
  border-color: color-mix(in oklab, oklch(0.7 0.16 35) 45%, transparent);
  background: color-mix(in oklab, oklch(0.7 0.16 35) 12%, transparent);
}
.wx-shelf--rvr {
  border-color: color-mix(in oklab, oklch(0.7 0.14 200) 50%, transparent);
  background: color-mix(in oklab, oklch(0.7 0.14 200) 14%, transparent);
}
.wx-shelf--recent {
  border-color: color-mix(in oklab, oklch(0.72 0.12 60) 50%, transparent);
  background: color-mix(in oklab, oklch(0.72 0.12 60) 14%, transparent);
}
.wx-shelf--runway {
  border-color: color-mix(in oklab, oklch(0.65 0.16 25) 55%, transparent);
  background: color-mix(in oklab, oklch(0.65 0.16 25) 14%, transparent);
}
.wx-shelf--shear {
  border-color: color-mix(in oklab, var(--color-error) 45%, transparent);
  background: color-mix(in oklab, var(--color-error) 12%, transparent);
}
.wx-alerts {
  display: grid;
  gap: 0.4rem;
  margin: 0.65rem 0 0.85rem;
}
.taf-shelves {
  display: grid;
  gap: 0.45rem;
}
.taf-period {
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.taf-period__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.75rem;
  margin-bottom: 0.55rem;
  font-size: 0.7rem;
  opacity: 0.8;
}
.taf-period__change {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.taf-period .wx-shelves {
  margin-top: 0.15rem;
}
.taf-period .wx-shelf {
  min-height: 3.6rem;
}
.taf-period__summary {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  opacity: 0.85;
}
.taf-period--base {
  border-color: color-mix(in oklab, oklch(0.72 0.14 160) 40%, transparent);
  background: color-mix(in oklab, oklch(0.72 0.14 160) 10%, transparent);
}
.taf-period--tempo,
.taf-period--prob {
  border-color: color-mix(in oklab, oklch(0.78 0.14 85) 50%, transparent);
  background: color-mix(in oklab, oklch(0.78 0.14 85) 12%, transparent);
}
.taf-period--becmg {
  border-color: color-mix(in oklab, oklch(0.7 0.12 240) 45%, transparent);
  background: color-mix(in oklab, oklch(0.7 0.12 240) 12%, transparent);
}
.taf-period--raw {
  opacity: 0.9;
}
.wx-decode-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
}
.wx-decode-list li {
  padding: 0.45rem 0.65rem;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-base-content) 5%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  line-height: 1.4;
}
.wx-raw summary {
  cursor: pointer;
  font-size: 0.75rem;
  opacity: 0.65;
}
.wx-cat-vfr { --badge-color: oklch(0.72 0.17 145); }
.wx-cat-mvfr { --badge-color: oklch(0.7 0.12 240); }
.wx-cat-ifr { --badge-color: oklch(0.78 0.14 85); }
.wx-cat-lifr { --badge-color: oklch(0.65 0.2 25); }
.badge.wx-cat-vfr,
.badge.wx-cat-mvfr,
.badge.wx-cat-ifr,
.badge.wx-cat-lifr {
  background: var(--badge-color);
  color: oklch(0.18 0.02 260);
  border: 0;
}

/* Weather desk — aerodrome minima / IAP plates */
.wx-minima__body {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 0.85rem 1rem 1rem;
}
.wx-minima__block-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}
.wx-minima__label {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.55;
}
.wx-minima__count {
  font-size: 0.7rem;
  opacity: 0.45;
}
.wx-minima__tiles {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 0.55rem;
}
.wx-minima-tile {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.7rem;
  border-radius: 0.45rem;
  background: color-mix(in oklab, var(--color-base-content) 4%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
}
.wx-minima-tile--takeoff {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-primary) 65%, transparent);
}
.wx-minima-tile--alternate {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 65%, transparent);
}
.wx-minima-tile--minima {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-base-content) 25%, transparent);
}
.wx-minima-tile__badge {
  flex: 0 0 auto;
  font-size: 0.65rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: 0.04em;
  padding: 0.28rem 0.4rem;
  border-radius: 0.3rem;
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  opacity: 0.85;
}
.wx-minima-tile__title {
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
}
.wx-minima-tile__src {
  font-size: 0.65rem;
  opacity: 0.5;
  margin-top: 0.15rem;
}
.wx-minima__iap {
  max-height: 22rem;
  overflow: auto;
  padding: 0.15rem;
  margin: 0 -0.15rem;
}
.wx-iap-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.75rem;
}
.wx-iap-card {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  min-height: 0;
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-primary) 55%, transparent);
}
.wx-iap-card--other {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-base-content) 22%, transparent);
}
.wx-iap-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem 0.4rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.wx-iap-card__rwy {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.wx-iap-card__n {
  font-size: 0.68rem;
  opacity: 0.45;
}
.wx-iap-card__list {
  list-style: none;
  margin: 0;
  padding: 0.35rem 0.45rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  max-height: 14rem;
  overflow: auto;
}
.wx-iap-card__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.35rem 0.4rem;
  border-radius: 0.35rem;
}
.wx-iap-card__row:hover {
  background: color-mix(in oklab, var(--color-base-content) 5%, transparent);
}
.wx-iap-card__title {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.wx-iap-card__name {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.wx-iap-card__code {
  font-size: 0.62rem;
  opacity: 0.45;
}
.wx-minima__more {
  margin-top: 0.55rem;
  font-size: 0.72rem;
  opacity: 0.55;
}
.wx-minima__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.85rem;
  padding: 0.55rem 1rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  font-size: 0.7rem;
  opacity: 0.55;
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}

.wx-decision {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.85rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 80%, transparent);
}
.wx-decision__badge {
  flex: none;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  padding: 0.35rem 0.55rem;
  border-radius: 0.35rem;
}
.wx-decision-go .wx-decision__badge {
  background: color-mix(in oklab, oklch(0.72 0.17 145) 40%, transparent);
}
.wx-decision-conditional .wx-decision__badge {
  background: color-mix(in oklab, oklch(0.78 0.14 85) 35%, transparent);
}
.wx-decision-no-go .wx-decision__badge {
  background: color-mix(in oklab, oklch(0.65 0.2 25) 40%, transparent);
}
.wx-alt-chip {
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}

/* OCC flight status — reg | status icons | ARR | note | save */
.occ-flight-status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  width: 100%;
  min-width: 0;
}
.occ-flight-status-row__reg,
.occ-flight-status-row__arr {
  flex: 0 0 10.5rem;
  width: 10.5rem;
  max-width: 10.5rem;
  min-width: 0;
}
.occ-flight-status-row__ops {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem;
  flex: 0 1 auto;
  min-width: 0;
}
.occ-flight-status-row__status {
  flex: 0 0 auto;
}
.occ-flight-status-row__note {
  flex: 1 1 8rem;
  min-width: 0;
}
.occ-flight-status-row__save {
  flex: 0 0 auto;
}
.occ-flight-cancel {
  position: relative;
}
.occ-flight-cancel > summary {
  list-style: none;
}
.occ-flight-cancel > summary::-webkit-details-marker {
  display: none;
}
.occ-flight-cancel__panel {
  position: absolute;
  inset-inline-end: 0;
  top: calc(100% + 0.35rem);
  z-index: 20;
  width: min(20rem, 80vw);
  padding: 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: var(--color-base-100);
}
.occ-flight-status-row .occ-status-pick {
  flex-wrap: nowrap;
}
.occ-flight-status-row .occ-status-pick__face {
  width: 1.9rem;
  height: 1.9rem;
}
.occ-flight-status-row .occ-status-pick__face svg {
  width: 0.95rem;
  height: 0.95rem;
}

/* Crew complement strip — flight header, right of Aircraft / Status / ARR */
.occ-crew-head-stats {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.4rem 0.5rem;
  margin-inline-start: auto;
  flex: 0 1 auto;
  max-width: 100%;
}
.occ-crew-head-stat {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 4.5rem;
  padding: 0.25rem 0.55rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}
.occ-crew-head-stat__lab {
  font-size: 0.65rem;
  line-height: 1.2;
  opacity: 0.55;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* OCC flight — shared step masthead (1–4) */
.occ-step__aside {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  justify-content: flex-end;
}
.occ-step__fold {
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
  overflow: hidden;
}
.occ-step__fold-sum {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  cursor: pointer;
  user-select: none;
}
.occ-step__fold-sum::-webkit-details-marker {
  display: none;
}
.occ-step__fold-chevron {
  opacity: 0.45;
  font-size: 0.9rem;
  transition: transform 0.15s ease;
  flex-shrink: 0;
}
.occ-step__fold[open] .occ-step__fold-chevron {
  transform: rotate(180deg);
}
.occ-step__fold-body {
  padding: 0 0.85rem 0.85rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  padding-top: 0.75rem;
}

/* OCC flight — brief / dispatch pack */
.occ-pack__status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}
.occ-pack__rail {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1.25rem;
}
.occ-pack__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.occ-pack__lane {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  min-width: 0;
}
.occ-pack__lane--release {
  margin-inline-start: auto;
}
.occ-pack__lane-lab {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.5;
  white-space: nowrap;
}
.occ-pack__docs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.occ-pack__doc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.25rem 0.65rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: inherit;
}
.occ-pack__doc:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
}
.occ-pack__doc--primary {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
}

/* OCC flight masthead — title + STD/STA on one row */
.occ-flight-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.85rem;
}
.occ-flight-title-row__name {
  flex: 0 1 auto;
}
.occ-sched-line {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.3;
}
.occ-sched-line__slot {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
}
.occ-sched-line__lab {
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.5;
}
.occ-sched-line__in {
  width: auto;
  min-width: 13.5rem;
  max-width: 100%;
  height: 1.85rem;
  min-height: 1.85rem;
  padding-inline: 0.4rem;
  font-size: 0.78rem;
  line-height: 1.2;
}
.occ-sched-line__dot {
  opacity: 0.35;
  user-select: none;
}
.occ-sched-line__save {
  margin-inline-start: 0.1rem;
}
.occ-flight-subrow {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.85rem;
  margin-top: 0.4rem;
}
.occ-sched-meta {
  margin: 0;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.35rem;
}
.occ-next {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.occ-next__lab {
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.55;
}
.occ-next__body {
  font-size: 0.82rem;
}

.occ-pack__publish {
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
  overflow: hidden;
}
.occ-pack__publish-sum {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  user-select: none;
}
.occ-pack__publish-sum::-webkit-details-marker {
  display: none;
}
.occ-pack__publish[open] .occ-pack__publish-sum span:last-child {
  transform: rotate(180deg);
}
.occ-pack__publish-form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0 0.75rem 0.75rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  padding-top: 0.75rem;
}

/* OCC WhatsApp compose (universal crew notify) */
.occ-wa {
  margin-top: 0.35rem;
}
.occ-wa__card {
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background:
    linear-gradient(
      165deg,
      color-mix(in oklab, var(--color-primary) 7%, transparent) 0%,
      color-mix(in oklab, var(--color-base-100) 92%, transparent) 42%
    );
  padding: 0.9rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.occ-wa__head {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.occ-wa__title-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.occ-wa__mark {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.5rem;
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: var(--color-primary);
  flex-shrink: 0;
}
.occ-wa__mark svg {
  width: 1.15rem;
  height: 1.15rem;
}
.occ-wa__eyebrow {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.55;
}
.occ-wa__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.2;
}
.occ-wa__lede {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.35;
  opacity: 0.62;
  max-width: 40rem;
}
.occ-wa__templates {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.occ-wa__tpl {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2rem;
  padding: 0.3rem 0.65rem 0.3rem 0.45rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;
}
.occ-wa__tpl:hover {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
}
.occ-wa__tpl.is-active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: var(--color-primary);
}
.occ-wa__tpl-icon {
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
}
.occ-wa__tpl.is-active .occ-wa__tpl-icon {
  background: color-mix(in oklab, var(--color-primary) 18%, transparent);
}
.occ-wa__tpl-icon svg {
  width: 0.85rem;
  height: 0.85rem;
}
.occ-wa__compose {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.occ-wa__field {
  display: block;
  margin: 0;
}
.occ-wa__input {
  width: 100%;
  min-height: 6.5rem;
  resize: vertical;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
  padding: 0.7rem 0.8rem;
  font-size: 0.82rem;
  line-height: 1.45;
}
.occ-wa__input:focus {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  outline-offset: 1px;
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
}
.occ-wa__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
}
.occ-wa__send {
  gap: 0.4rem;
}
.occ-wa__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.7rem;
  opacity: 0.65;
}
.occ-wa__meta-item--ok {
  color: color-mix(in oklab, var(--color-success) 85%, var(--color-base-content));
  opacity: 1;
}
.occ-wa__meta-item--warn {
  color: color-mix(in oklab, var(--color-warning) 90%, var(--color-base-content));
  opacity: 1;
  max-width: 28rem;
}
.occ-crew-head-stat__val {
  font-size: 0.875rem;
  font-weight: 650;
  line-height: 1.2;
}
.occ-crew-head-stat__meta {
  font-size: 0.65rem;
  opacity: 0.5;
  line-height: 1.2;
}

.occ-status-pick {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.occ-status-pick__opt {
  position: relative;
  cursor: pointer;
  margin: 0;
  flex: 0 0 auto;
}
.occ-status-pick__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.occ-status-pick__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}
.occ-status-pick__face svg {
  width: 1.05rem;
  height: 1.05rem;
}
.occ-status-pick__opt input:focus-visible + .occ-status-pick__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
}
.occ-status-pick__opt input:checked + .occ-status-pick__face {
  box-shadow: 0 0 0 1px color-mix(in oklab, currentColor 35%, transparent);
}
.occ-status-pick__opt--planned input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, var(--color-base-content) 8%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 28%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 75%, transparent);
}
.occ-status-pick__opt--filed input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.occ-status-pick__opt--airborne input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, #38bdf8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 45%, transparent);
  color: #7dd3fc;
}
.occ-status-pick__opt--landed input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, #34d399 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #34d399 45%, transparent);
  color: #6ee7b7;
}
.occ-status-pick__opt--diverted input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, #fbbf24 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #fbbf24 45%, transparent);
  color: #fcd34d;
}
.occ-status-pick__opt--scheduled input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, var(--color-base-content) 8%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-base-content) 28%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 75%, transparent);
}
.occ-status-pick__opt--ferry input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, #38bdf8 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #38bdf8 45%, transparent);
  color: color-mix(in oklab, #38bdf8 40%, var(--color-base-content));
}
.occ-status-pick__opt--training input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.occ-status-pick__opt--positioning input:checked + .occ-status-pick__face {
  background: color-mix(in oklab, #a78bfa 16%, var(--color-base-100));
  border-color: color-mix(in oklab, #a78bfa 45%, transparent);
  color: color-mix(in oklab, #a78bfa 35%, var(--color-base-content));
}

/* OCC — compact attention strip (replaces long Needs attention table) */
.occ-attention {
  border: 1px solid color-mix(in oklab, var(--color-warning) 28%, transparent);
  border-radius: 0.5rem;
  background: color-mix(in oklab, var(--color-warning) 6%, var(--color-base-100));
  padding: 0.55rem 0.75rem;
}
.occ-attention__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.occ-attention__label {
  font-size: 0.72rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
  margin-inline-end: 0.15rem;
}
.occ-attention__gap {
  font-size: 0.68rem;
  opacity: 0.65;
  padding: 0.1rem 0.35rem;
  border-radius: 0.3rem;
  background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
}
.occ-attention__hard {
  list-style: none;
  margin: 0.45rem 0 0;
  padding: 0.4rem 0 0;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.75rem;
}
.occ-attention__hard li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.55rem;
}
.occ-board-leg--pair td:first-child {
  border-inline-start: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  padding-inline-start: 0.65rem;
}
.occ-board-leg--out td:first-child {
  border-start-start-radius: 0.35rem;
}
.occ-board-leg--in td:first-child {
  border-end-start-radius: 0.35rem;
}
.occ-board-leg--pair td .jl-pill {
  margin-inline-start: 0.35rem;
  vertical-align: middle;
}
.occ-ready-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 0;
}
.occ-ready-gaps {
  font-size: 0.65rem;
  line-height: 1.25;
  opacity: 0.6;
  max-width: 11rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Same column grid on Dispatch / Roster / Flights needing crew */
.ops-board-table {
  table-layout: fixed;
  width: 100%;
}
.ops-board-table col.ops-c-flt { width: 6.75rem; }
.ops-board-table col.ops-c-route { width: 13.25rem; }
.ops-board-table col.ops-c-std { width: 5rem; }
.ops-board-table col.ops-c-st { width: 6.75rem; }
.ops-board-table col.ops-c-fa { width: 7rem; }
.ops-board-table col.ops-c-rest { width: auto; }
.ops-board-table th,
.ops-board-table td {
  vertical-align: top;
}
.ops-board-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--color-base-100);
}
.ops-board-day th {
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
  font-weight: 650;
  padding-top: 0.7rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.ops-board-day:first-child th {
  padding-top: 0.45rem;
}
.ops-board-day__title {
  margin-inline-end: 0.65rem;
}
.ops-board-day__meta {
  font-size: 0.72rem;
  font-weight: 500;
  opacity: 0.5;
}

/* OCC readiness strip + day timeline */
.occ-readiness {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.25rem;
}
.occ-readiness__step {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.5rem;
  border-radius: 0.4rem;
  font-size: 0.7rem;
  text-decoration: none;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 80%, transparent);
  color: inherit;
}
.occ-readiness__dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 35%, transparent);
}
.occ-readiness__step--ok .occ-readiness__dot {
  background: var(--color-success);
}
.occ-readiness__step--warn .occ-readiness__dot,
.occ-readiness__step--missing .occ-readiness__dot {
  background: var(--color-warning);
}
.occ-readiness__step--block .occ-readiness__dot {
  background: var(--color-error);
}
.occ-timeline__track {
  position: relative;
}
.occ-timeline__bar {
  position: absolute;
  top: 0.2rem;
  bottom: 0.2rem;
  display: flex;
  align-items: center;
  padding: 0 0.35rem;
  border-radius: 0.3rem;
  font-size: 0.65rem;
  font-family: ui-monospace, monospace;
  overflow: hidden;
  white-space: nowrap;
  text-decoration: none;
  color: inherit;
  background: color-mix(in oklab, var(--color-primary) 35%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
}
.occ-timeline__bar--warn,
.occ-timeline__bar--missing {
  background: color-mix(in oklab, var(--color-warning) 40%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-warning) 55%, transparent);
}
.occ-timeline__bar--block {
  background: color-mix(in oklab, var(--color-error) 40%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-error) 55%, transparent);
}

/* Assign: spinner in the button while timeline rebuilds */
#roster-slot-panel .roster-assign-btn {
  min-width: 5.25rem;
}
#roster-slot-panel .roster-assign-btn .roster-assign-busy {
  display: none;
  margin: 0;
}
#roster-slot-panel form.htmx-request .roster-assign-btn .roster-assign-busy {
  display: inline-block;
  opacity: 1;
}
#roster-slot-panel form.htmx-request .roster-assign-btn__label {
  display: none;
}
#roster-slot-panel form.htmx-request .roster-assign-btn {
  pointer-events: none;
}

/* Crew roster timeline desk */
.roster-timeline-wrap {
  overflow: auto;
  max-height: min(58vh, calc(100dvh - 22rem));
  overscroll-behavior: contain;
}
.roster-timeline {
  min-width: 40rem;
  padding: 0.5rem 0.75rem 1rem;
}
.roster-timeline__head {
  position: sticky;
  top: 0;
  z-index: 4;
  background: var(--color-base-100);
}
.roster-timeline__head,
.roster-timeline__row {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.roster-timeline__crew-col {
  width: 12.5rem;
  flex-shrink: 0;
  padding: 0.25rem 0.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  min-height: 2.4rem;
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--color-base-100);
}
.roster-timeline__head .roster-timeline__crew-col {
  z-index: 5;
}
.roster-timeline__crew-line {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
}
.roster-timeline__crew-name {
  font-size: 0.8rem;
  line-height: 1.2;
  font-weight: 600;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
}
.roster-timeline__crew-marks {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  flex-shrink: 0;
  font-size: 0.62rem;
}
.roster-fair {
  font-size: 0.62rem;
  opacity: 0.5;
  line-height: 1.2;
  margin: 0;
}
.roster-timeline__crew-marks .crew-type-mark__face,
.roster-timeline__crew-marks .rank-mark__face {
  width: 1.15rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0;
  font-size: 0.55rem;
}
.roster-timeline__crew-marks .rank-mark__face {
  width: auto;
  min-width: 1.55rem;
  padding: 0 0.2rem;
}
.roster-timeline__crew-marks .crew-type-mark__face svg {
  width: 0.7rem;
  height: 0.7rem;
}
.roster-ack-chip-group {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.roster-ack-head {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
}
.roster-ack-head__face {
  display: inline-flex;
  width: 0.9rem;
  height: 0.9rem;
  align-items: center;
  justify-content: center;
}
.roster-ack-head__face svg {
  width: 0.78rem;
  height: 0.78rem;
}
.roster-acks-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.55rem 1rem;
  border: 0;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.roster-acks-row:hover {
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
}
.roster-ack-mark {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  flex-shrink: 0;
  line-height: 1;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}
.roster-ack-mark__face {
  display: inline-flex;
  width: 1rem;
  height: 1rem;
  align-items: center;
  justify-content: center;
}
.roster-ack-mark__face svg {
  width: 0.78rem;
  height: 0.78rem;
}
.roster-ack-mark--pending {
  color: color-mix(in oklab, var(--color-warning) 85%, var(--color-base-content));
}
.roster-ack-mark--acked {
  color: color-mix(in oklab, var(--color-success) 80%, var(--color-base-content));
}
.roster-ack-mark--chip {
  padding: 0.12rem 0.4rem 0.12rem 0.28rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, currentColor 35%, transparent);
  background: color-mix(in oklab, currentColor 10%, var(--color-base-100));
  font-size: 0.7rem;
}
.roster-ack-mark--chip .roster-ack-mark__face {
  width: 0.9rem;
  height: 0.9rem;
}
.roster-ack-mark__n {
  font-size: 0.7rem;
  font-weight: 650;
  opacity: 0.9;
}
.roster-timeline__days {
  display: flex;
  flex: 1;
  gap: 1px;
  min-width: 0;
}
.roster-timeline__day-h,
.roster-timeline__cell {
  flex: 1 1 0;
  min-width: 1.6rem;
  text-align: center;
  font-size: 0.65rem;
}
.roster-timeline__day-h {
  opacity: 0.55;
  padding: 0.25rem 0;
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  border-radius: 0.2rem;
}
.roster-timeline__day-h:hover,
.roster-timeline__day-h:focus-visible {
  opacity: 1;
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  outline: none;
}
.roster-timeline__cell {
  min-height: 2.4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
  border-radius: 0.2rem;
}
.roster-timeline__cell--dense .roster-bar {
  font-size: 0.5rem;
  line-height: 1.15;
  padding: 0 0.08rem;
}
.roster-timeline__cell--pick {
  cursor: cell;
}
.roster-timeline__cell--pick:hover {
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
}
.roster-flag-chip {
  cursor: pointer;
  font: inherit;
  line-height: 1.25;
  border-width: 1px;
}
.roster-flag-chip--plain {
  background: transparent;
  border: 0;
  padding: 0;
  opacity: 0.55;
  font-size: 0.875rem;
  color: inherit;
}
.roster-flag-chip:hover,
.roster-flag-chip:focus-visible {
  opacity: 1;
  outline: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  outline-offset: 2px;
}
.roster-flags-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: min(24rem, 70vh);
  overflow-y: auto;
}
.roster-flags-list li[hidden] {
  display: none;
}
.roster-flags-row {
  display: grid;
  grid-template-columns: auto minmax(6rem, 1.1fr) auto minmax(5rem, 0.9fr);
  grid-template-rows: auto auto;
  gap: 0.15rem 0.55rem;
  align-items: baseline;
  padding: 0.55rem 1rem;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.roster-flags-row:hover {
  background: color-mix(in oklab, var(--color-primary) 8%, transparent);
}
.roster-flags-row__who {
  font-size: 0.85rem;
}
.roster-flags-row__when,
.roster-flags-row__what {
  font-size: 0.75rem;
  opacity: 0.7;
}
.roster-flags-row__why {
  grid-column: 1 / -1;
  font-size: 0.75rem;
  opacity: 0.75;
}
.roster-flags-empty {
  margin: 0;
  padding: 1rem 1.1rem 1.2rem;
  font-size: 0.85rem;
  opacity: 0.55;
}
.roster-timeline__cell--selected {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 65%, transparent);
  outline-offset: -1px;
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
}
.roster-timeline__crew-col--selected {
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
  border-radius: 0.3rem;
}
.roster-add-duty--flash {
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-primary) 45%, transparent);
  transition: box-shadow 0.2s ease;
}
.js-roster-flash {
  transition: opacity 0.35s ease, max-width 0.35s ease, padding 0.35s ease, margin 0.35s ease;
  max-width: 28rem;
  overflow: hidden;
}
.js-roster-flash.is-hiding,
.sky-flash.is-hiding {
  opacity: 0;
  max-width: 0;
  max-height: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin: 0 !important;
  border-width: 0;
  overflow: hidden;
}
/* Ephemeral save / info flashes — z-index 3, auto-hide via app.js (keep Daisy colors) */
.sky-flash,
.alert-success.mb-4:not([data-persist]),
.alert-info.mb-4:not([data-persist]),
.alert-success.mb-3:not([data-persist]),
.alert-info.mb-3:not([data-persist]),
.js-roster-flash.alert-success,
.js-roster-flash.alert-info {
  position: relative;
  z-index: 3;
  transition: opacity 0.35s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease;
  max-height: 8rem;
  overflow: hidden;
}
.sky-flash.is-hiding,
.alert-success.mb-4.is-hiding:not([data-persist]),
.alert-info.mb-4.is-hiding:not([data-persist]),
.alert-success.mb-3.is-hiding:not([data-persist]),
.alert-info.mb-3.is-hiding:not([data-persist]) {
  opacity: 0;
  max-height: 0;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0;
  padding-bottom: 0;
  border-width: 0;
}
.roster-timeline-eyebrow-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.15rem;
}
.roster-timeline-flash {
  flex: 1 1 12rem;
  min-width: 0;
  margin: 0;
}
#roster-add-modal .modal-box,
#roster-duty-modal .modal-box {
  background: var(--color-base-100);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.js-roster-off-hint,
.js-roster-sby-hint {
  display: none;
}
.roster-form--off .js-roster-operating {
  display: none;
}
.roster-form--off .js-roster-off-hint {
  display: block;
}
.roster-form--sby .js-roster-operating {
  display: none;
}
.roster-form--sby .js-roster-sby-hint {
  display: block;
}
#roster-add-duty .ac-type-pick {
  align-items: center;
  min-height: 2.2rem;
}
#roster-add-duty .ac-type-pick__face {
  height: 2.2rem;
}
#roster-add-form > .grid {
  align-items: end;
}

/* Crew select + duty kind icons on one row (add + edit) — no horizontal scroll */
.roster-crew-kind {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
}
.roster-crew-kind__crew.form-control,
.roster-crew-kind__duty.form-control {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.25rem;
  margin: 0;
}
.roster-crew-kind__crew .label-text,
.roster-crew-kind__duty .label-text {
  margin: 0;
  line-height: 1.2;
  min-height: 1.1rem;
}
.roster-crew-kind__crew.form-control {
  width: auto;
  flex: 0 1 11rem;
  min-width: 7.5rem;
  max-width: 14rem;
}
.roster-crew-kind__crew .select {
  height: 2.2rem;
  min-height: 2.2rem;
}
.roster-crew-kind__duty.form-control {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
}
.roster-crew-kind__duty .duty-pick {
  width: 100%;
  max-width: 100%;
  overflow-x: visible;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  min-height: 2.2rem;
  padding-bottom: 0;
}
.roster-crew-kind__duty .duty-pick__opt {
  min-width: 2.2rem;
  flex: 0 0 auto;
}
.roster-crew-kind__duty .duty-pick__face {
  width: 2.2rem;
  height: 2.2rem;
}
.roster-crew-kind__duty .duty-pick__lbl {
  display: none;
}

/* A/C type + notes + save on one row */
.roster-add-tail {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
}
.roster-add-tail__ac.form-control {
  width: auto;
  flex: 0 1 auto;
  min-width: 0;
  max-width: none;
}
.roster-add-tail__ac .ac-type-pick {
  width: auto;
}
.roster-add-tail__notes.form-control {
  width: auto;
  flex: 1 1 8rem;
  min-width: 6rem;
  max-width: none;
}
.roster-add-tail__go {
  flex: 0 0 auto;
  height: 2rem;
  min-height: 2rem;
}
.roster-timeline__cell--warn {
  outline: 1px solid color-mix(in oklab, var(--color-warning) 50%, transparent);
}
.roster-timeline__cell--block {
  outline: 1px solid color-mix(in oklab, var(--color-error) 55%, transparent);
}
.roster-timeline__cell--selected.roster-timeline__cell--warn,
.roster-timeline__cell--selected.roster-timeline__cell--block {
  outline-width: 2px;
  outline-color: color-mix(in oklab, var(--color-primary) 65%, transparent);
}
.roster-bar {
  display: block;
  padding: 0 0.12rem;
  line-height: 1.2;
  border-radius: 0.12rem;
  font-size: 0.58rem;
  font-family: ui-monospace, monospace;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  white-space: nowrap;
  background: color-mix(in oklab, var(--color-primary) 30%, var(--color-base-100));
}
.roster-bar--standby,
.roster-bar--airport_standby,
.roster-bar--home_standby {
  background: color-mix(in oklab, var(--color-info) 35%, var(--color-base-100));
}
.roster-bar--fstd {
  background: color-mix(in oklab, var(--color-secondary) 35%, var(--color-base-100));
}
.roster-bar--day_off {
  background: color-mix(in oklab, var(--color-base-content) 12%, var(--color-base-100));
}
.roster-bar--off-implicit {
  background: transparent;
  color: color-mix(in oklab, var(--color-base-content) 38%, transparent);
  pointer-events: none;
}
.roster-bar--leave {
  background: color-mix(in oklab, var(--color-warning) 40%, var(--color-base-100));
}
.roster-bar--legal-warn {
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-warning) 70%, transparent);
}
.roster-ftl {
  display: block;
  margin-top: 0;
  padding: 0.05rem 0.2rem;
  font-size: 0.6rem;
  line-height: 1.15;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  border-radius: 0.25rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 80%, transparent);
  color: inherit;
  text-align: start;
  max-width: 100%;
  cursor: help;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.roster-ftl--warn {
  border-color: color-mix(in oklab, var(--color-warning) 55%, transparent);
  background: color-mix(in oklab, var(--color-warning) 12%, transparent);
}
.roster-ftl--block {
  border-color: color-mix(in oklab, var(--color-error) 55%, transparent);
  background: color-mix(in oklab, var(--color-error) 14%, transparent);
}
.roster-bar--sick {
  background: color-mix(in oklab, var(--color-error) 35%, transparent);
}
.roster-bar--legal-block {
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-error) 80%, transparent);
}

/* NOTAM shelves */
.notam-shelves {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
#notams .notams-head {
  padding-inline-end: 0.85rem;
}
@media (min-width: 768px) {
  #notams .notam-shelves {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #notams .notam-card--empty {
    grid-column: 1 / -1;
  }
}
.notam-card {
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3.5%, transparent);
}
.notam-card--restrictive {
  border-color: color-mix(in oklab, oklch(0.72 0.16 55) 55%, transparent);
  background:
    linear-gradient(
      135deg,
      color-mix(in oklab, oklch(0.72 0.16 55) 14%, transparent),
      color-mix(in oklab, var(--color-base-content) 3%, transparent) 55%
    );
}
.notam-card--info {
  border-color: color-mix(in oklab, oklch(0.7 0.1 230) 35%, transparent);
  background: color-mix(in oklab, oklch(0.7 0.1 230) 7%, transparent);
}
.notam-card--empty {
  opacity: 0.65;
  text-align: center;
  font-size: 0.85rem;
}
.notam-card__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.35rem 0.5rem;
}
.notam-card__details {
  flex: 1 1 12rem;
  min-width: 0;
}
.notam-card__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.notam-card__summary::-webkit-details-marker {
  display: none;
}
.notam-card__summary::before {
  content: "";
  flex: 0 0 0.4rem;
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  opacity: 0.55;
  transition: transform 0.12s ease;
}
.notam-card__details[open] > .notam-card__summary::before {
  transform: rotate(45deg);
}
.notam-card__action {
  flex: 0 0 auto;
  margin-inline-start: auto;
}
.notam-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  font-size: 0.7rem;
  opacity: 0.8;
}
.notam-card__body {
  margin: 0.45rem 0 0;
  padding-inline-start: 0.9rem;
  white-space: pre-wrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.72rem;
  line-height: 1.4;
}

/* Provider contacts (email + phones) */
.provider-contacts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
  align-items: center;
}
.provider-contacts--compact {
  gap: 0.35rem 0.65rem;
}
.provider-contacts__item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
  color: inherit;
  text-decoration: none;
  font-size: 0.8125rem;
  line-height: 1.2;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.provider-contacts__item:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
  text-decoration: none;
}
.provider-contacts--compact .provider-contacts__item {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}
.provider-contacts__icon {
  display: inline-flex;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--color-primary);
  opacity: 0.9;
}
.provider-contacts__icon svg {
  width: 100%;
  height: 100%;
}
.provider-contacts__text {
  font-variant-numeric: tabular-nums;
}

/* Feedback desk — category chips */
.feedback-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.feedback-cat {
  position: relative;
  cursor: pointer;
  margin: 0;
}
.feedback-cat__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.feedback-cat__chip {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.75rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.2;
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.feedback-cat:hover .feedback-cat__chip {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  color: var(--color-base-content);
}
.feedback-cat__input:focus-visible + .feedback-cat__chip {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.feedback-cat__input:checked + .feedback-cat__chip {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: var(--color-primary);
  font-weight: 600;
}
.feedback-form .textarea,
.feedback-form .input,
.feedback-form .select {
  border-radius: 0.5rem;
}

/* Feedback form — phone */
@media (max-width: 639px) {
  .feedback-cats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
  }
  .feedback-cat__chip {
    width: 100%;
    min-height: 2.75rem;
    justify-content: center;
    padding: 0.45rem 0.65rem;
    font-size: 0.84rem;
    border-radius: 0.55rem; /* less pill, more tappable tile */
  }
  .feedback-form .label {
    padding-block: 0.15rem;
  }
  .feedback-form__control {
    min-height: 3rem;
    font-size: 16px; /* iOS: no focus zoom */
  }
  .feedback-form__message {
    min-height: 8.5rem;
    padding: 0.75rem 0.85rem;
  }
  .feedback-form__submit {
    min-height: 3rem;
  }
  .feedback-form__actions {
    gap: 0.65rem;
  }
}

/* Public letter pages — About + Feedback (glass panel, left like landing) */
.public-letter {
  width: 100%;
  max-width: 34rem;
  margin-inline-end: auto;
  margin-inline-start: 0;
  padding: 0.35rem 0 1.25rem;
  animation: landing-panel-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}
.public-letter__panel {
  width: 100%;
  padding: 1.25rem 1.3rem 1.2rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 78%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 1px 0 color-mix(in oklab, #fff 4%, transparent) inset,
    0 14px 40px color-mix(in oklab, #000 14%, transparent);
  text-align: start;
}
.public-letter__title {
  margin: 0.4rem 0 0;
  font-size: clamp(2.1rem, 5.5vw, 2.85rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.05;
}
.public-letter__lede {
  margin: 0.5rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 52%, transparent);
}
.public-letter__body {
  margin-top: 1.15rem;
  padding-top: 1.05rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  font-size: 0.96rem;
  line-height: 1.65;
  color: color-mix(in oklab, var(--color-base-content) 86%, transparent);
}
.public-letter__body--form {
  margin-top: 1rem;
  padding-top: 1rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: inherit;
}
.public-letter__body > p {
  margin: 0 0 1rem;
}
.public-letter__open {
  font-size: 1.04rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.015em;
}
.public-letter__beats {
  list-style: none;
  margin: 0 0 1.15rem;
  padding: 0.55rem 0 0.65rem 0.85rem;
  border-inline-start: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  display: flex;
  flex-direction: column;
  gap: 0.32rem;
}
.public-letter__beats li {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 60%, transparent);
  font-style: italic;
}
.public-letter__close {
  margin-bottom: 0 !important;
  font-size: 0.9rem;
  color: color-mix(in oklab, var(--color-base-content) 56%, transparent);
}
.public-letter__cta {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.public-letter__body--form .public-letter__cta {
  margin-top: 0.35rem;
  border-top: none;
  padding-top: 0.25rem;
}
.public-letter__cta-hint {
  flex: 1 1 11rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
}
.public-letter__footer {
  margin: 0.85rem 0 0;
  font-size: 0.72rem;
  opacity: 0.48;
}
.public-app--letter .public-main {
  align-items: flex-start;
  justify-content: flex-start;
}
@media (min-width: 1025px) {
  .public-app--letter .public-main {
    align-items: flex-start;
    padding: 2rem 1.5rem 2rem;
  }
  .public-app--letter .landing-backdrop__art {
    width: min(68vw, 62rem);
    max-height: 88dvh;
    opacity: 0.85;
    transform: translate3d(4%, 2%, 0);
  }
}
@media (min-width: 641px) and (max-width: 1024px) {
  .public-app--letter .public-main {
    align-items: center;
  }
  .public-letter {
    margin-inline: auto;
  }
}
@media (max-width: 640px) {
  .public-letter {
    margin-inline: auto;
  }
  .public-letter__panel {
    padding: 1.05rem 1rem 1.1rem;
  }
  .public-letter__body {
    font-size: 0.92rem;
  }
  .public-letter__open {
    font-size: 1rem;
  }
  .public-letter__beats {
    padding-inline-start: 0.7rem;
  }
  .public-app--letter .public-main {
    align-items: stretch;
  }
  .public-letter__cta {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .public-letter__cta .btn {
    width: 100%;
  }
}

/* Legal — wide glass letter (same family as About / Feedback) */
.public-letter--legal {
  max-width: min(46rem, 100%);
}
.public-letter--trip {
  max-width: min(52rem, 100%);
}
.public-letter--legal .public-letter__title {
  font-size: clamp(1.85rem, 4.5vw, 2.4rem);
}

.public-letter__h {
  margin: 1.35rem 0 0.45rem;
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.25;
}

.why-pipe {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem 0.35rem;
  margin: 0.95rem 0 0;
}
.why-pipe--live {
  margin-top: 0.4rem;
}
.why-pipe__arrow {
  font-size: 0.75rem;
  opacity: 0.35;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.why-pipe__step {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.38rem 0.58rem;
  border-radius: 0.4rem;
  background: color-mix(in oklab, var(--color-primary) 22%, transparent);
  color: var(--color-primary);
  border: 1px solid color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.why-pipe__step--dead {
  background: color-mix(in oklab, var(--color-base-content) 7%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 48%, transparent);
  border-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  font-weight: 600;
}

.why-vs {
  display: grid;
  gap: 0.65rem;
  margin: 0.85rem 0 1.2rem;
}
@media (min-width: 720px) {
  .why-vs {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}
.why-vs__col {
  padding: 0.9rem 0.95rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.why-vs__col--board {
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}
.why-vs__col--us {
  border-color: color-mix(in oklab, var(--color-primary) 38%, transparent);
  background: color-mix(in oklab, var(--color-primary) 9%, transparent);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 12%, transparent);
}
.why-vs__kicker {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.5;
  margin: 0 0 0.55rem;
}
.why-vs__col--us .why-vs__kicker {
  color: var(--color-primary);
  opacity: 0.95;
}
.why-vs__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.why-vs__col li {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.4;
  color: color-mix(in oklab, var(--color-base-content) 82%, transparent);
}
.why-vs__col--board li {
  color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
}

.why-faq {
  margin: 0.35rem 0 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.why-faq dt {
  margin: 0 0 0.22rem;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.35;
}
.why-faq dd {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.5;
  color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
}
.public-app--legal .public-main {
  /* allow long document scroll; keep left pin from --letter */
  max-width: 72rem;
}
.legal-toc--chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 1rem 0 0;
  padding: 0.85rem 0 0;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.legal-toc--chips a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.75rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.2;
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.legal-toc--chips a:hover {
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  color: var(--color-base-content);
  text-decoration: none;
}
.legal-toc--chips a.is-active {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: var(--color-primary);
  font-weight: 600;
}
.legal-book {
  min-width: 0;
  margin-top: 1.15rem;
  padding-top: 0.25rem;
}
.legal-facts {
  margin: 0;
  display: grid;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
}
.legal-facts__row {
  display: grid;
  gap: 0.15rem 0.75rem;
}
@media (min-width: 640px) {
  .legal-facts__row {
    grid-template-columns: 9.5rem minmax(0, 1fr);
    align-items: baseline;
  }
}
.legal-facts__row dt {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.5;
}
.legal-facts__row dd {
  margin: 0;
  line-height: 1.45;
}
.legal-part {
  margin-top: 2rem;
  padding-top: 1.35rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.legal-part:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.legal-part__head {
  margin-bottom: 0.85rem;
}
.legal-part__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-primary) 75%, var(--color-base-content));
}
.legal-part__title {
  margin: 0;
  font-size: clamp(1.25rem, 2.8vw, 1.55rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.legal-part__lede {
  margin: 0.45rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: color-mix(in oklab, var(--color-base-content) 55%, transparent);
}
.legal-clause {
  margin: 0;
  padding: 0.95rem 0 1rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 7%, transparent);
}
.legal-part__body > .legal-clause:first-child {
  border-top: none;
  padding-top: 0.15rem;
}
.legal-clause__title {
  margin: 0 0 0.45rem;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.35;
}
.legal-clause__body {
  color: color-mix(in oklab, var(--color-base-content) 82%, transparent);
}
.legal-clause__body > p:last-child,
.legal-clause__body > ul:last-child,
.legal-clause__body > ol:last-child {
  margin-bottom: 0;
}
@media (max-width: 639px) {
  .legal-toc--chips {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .legal-toc--chips a {
    justify-content: center;
    min-height: 2.6rem;
    border-radius: 0.55rem;
    text-align: center;
    padding: 0.45rem 0.5rem;
    font-size: 0.8rem;
  }
}

/* Site footer — version + © left, sandbox nav right */
.app-footer {
  margin-top: 1.5rem;
  padding: 0.85rem 1rem 1.1rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.app-footer--minimal {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
}
.app-footer--minimal .app-footer__inner {
  justify-content: flex-end;
}
.app-footer--minimal .app-footer__nav {
  display: none;
}
.app-footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  max-width: 72rem;
  margin: 0 auto;
  font-size: 0.75rem;
}
.app-footer__meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  opacity: 0.62;
}
.app-footer__ver {
  letter-spacing: 0.02em;
}
.app-footer__copy {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.app-footer__c {
  display: inline-flex;
  width: 0.95rem;
  height: 0.95rem;
  opacity: 0.9;
}
.app-footer__c svg {
  width: 100%;
  height: 100%;
}
.app-footer__sep {
  opacity: 0.45;
}
.app-footer__nav {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  gap: 0.1rem;
  padding: 0.22rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 75%, transparent);
  box-shadow: 0 4px 18px color-mix(in oklab, #000 8%, transparent);
}
.app-footer__pip {
  width: 1px;
  height: 0.75rem;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.app-footer__link {
  text-decoration: none;
  color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
  padding: 0.28rem 0.7rem;
  border-radius: 9999px;
  font-weight: 500;
  transition: color 0.15s ease, background 0.15s ease;
}
.app-footer__link:hover {
  color: var(--color-primary);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
  text-decoration: none;
}
@media (max-width: 640px) {
  .app-footer__inner {
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
  }
  .app-footer__meta {
    justify-content: center;
  }
  .app-footer__nav {
    width: auto;
    max-width: 100%;
    justify-content: center;
    /* Drop pill chrome on narrow screens — less cramped */
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    gap: 0.15rem;
  }
  .app-footer__link {
    padding: 0.4rem 0.6rem;
    border-radius: 0.35rem;
    min-height: 2.4rem;
    display: inline-flex;
    align-items: center;
    color: color-mix(in oklab, var(--color-base-content) 78%, transparent);
    font-size: 0.82rem;
  }
}
.m-app .app-footer {
  padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
}

/* Workplace tickets board */
.ticket-board-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
}
.ticket-tool.btn {
  width: 1.85rem;
  height: 1.85rem;
  min-height: 1.85rem;
  padding: 0;
}
.ticket-tool__ico {
  width: 0.95rem;
  height: 0.95rem;
  display: block;
}
.ticket-tool.is-on {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: var(--color-primary);
}
.ticket-board-controls .select {
  min-height: 1.75rem;
  height: 1.75rem;
}
.ticket-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.ticket-head__title {
  min-width: 0;
  flex: 1 1 12rem;
}
.ticket-head__tools {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.55rem;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}
.ticket-stats {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  flex: 0 1 auto;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  border-radius: 0.4rem;
  overflow: hidden;
  background: color-mix(in oklab, var(--color-base-200) 45%, var(--color-base-100));
}
.ticket-stat {
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.3rem 0.5rem;
  white-space: nowrap;
}
.ticket-stat + .ticket-stat {
  border-inline-start: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.ticket-stat__label {
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: color-mix(in oklab, var(--color-base-content) 50%, transparent);
  line-height: 1;
  white-space: nowrap;
}
.ticket-stat .count-pill {
  margin: 0;
  flex-shrink: 0;
}
.ticket-board-group__head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}
.ticket-board-group__title {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.55;
}
.ticket-board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.75rem;
}
.ticket-card {
  margin: 0;
  padding: 0.85rem 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 8rem;
  text-decoration: none;
  color: inherit;
  border-inline-start-width: 3px;
  border-inline-start-style: solid;
  border-inline-start-color: color-mix(in oklab, var(--color-base-content) 18%, transparent);
  transition: background-color 0.12s ease, border-color 0.12s ease;
}
.ticket-card:hover,
.ticket-card:focus-visible {
  background: color-mix(in oklab, var(--color-primary) 7%, var(--color-base-100));
}
.ticket-card--open {
  border-inline-start-color: var(--color-warning, #ca8a04);
  background: color-mix(in oklab, #eab308 7%, var(--color-base-100));
}
.ticket-card--in_progress {
  border-inline-start-color: var(--color-primary);
  background: color-mix(in oklab, var(--color-primary) 7%, var(--color-base-100));
}
.ticket-card--waiting {
  border-inline-start-color: var(--color-secondary, #f471b5);
  background: color-mix(in oklab, #f472b6 7%, var(--color-base-100));
}
.ticket-card--done {
  border-inline-start-color: oklch(0.72 0.17 145);
  background: color-mix(in oklab, #22c55e 6%, var(--color-base-100));
}
.ticket-card--rejected {
  border-inline-start-color: var(--color-error, #dc2626);
  background: color-mix(in oklab, #ef4444 7%, var(--color-base-100));
}
.ticket-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.ticket-card__ids {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  font-size: 0.72rem;
}
.ticket-card__id {
  font-weight: 700;
  opacity: 0.85;
}
.ticket-card__cat {
  opacity: 0.5;
  letter-spacing: 0.03em;
}
.ticket-card__badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem;
  flex-shrink: 0;
}
.ticket-card__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ticket-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.65rem;
  margin-top: auto;
  padding-top: 0.35rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  font-size: 0.72rem;
  opacity: 0.65;
}
.ticket-card__who {
  font-weight: 550;
  opacity: 0.95;
}
.ticket-card__loc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
/* legacy row selectors kept for any deep links / detail crumbs */
.ticket-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  border-inline-start: 3px solid color-mix(in oklab, var(--color-base-content) 18%, transparent);
  text-decoration: none;
  color: inherit;
}
.ticket-row__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  font-size: 0.72rem;
  margin-bottom: 0.2rem;
}
.ticket-row__title {
  font-weight: 650;
  font-size: 0.95rem;
  line-height: 1.3;
}
.ticket-row__sub {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  opacity: 0.6;
}
.ticket-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin: 0;
  font-size: 0.875rem;
}
.ticket-facts dt {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.55;
  margin-bottom: 0.15rem;
}
.ticket-facts dd {
  margin: 0;
}
.ticket-facts__wide {
  grid-column: 1 / -1;
}
.ticket-note {
  border-inline-start: 2px solid color-mix(in oklab, var(--color-base-content) 15%, transparent);
  padding-inline-start: 0.75rem;
}
.ticket-note__meta {
  font-size: 0.72rem;
  opacity: 0.55;
}
.ticket-note__body {
  margin-top: 0.2rem;
  font-size: 0.875rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

/* Ticket history timeline */
.ticket-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ticket-tl {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  gap: 0 0.85rem;
  position: relative;
}
.ticket-tl:not(:last-child) .ticket-tl__rail::after {
  content: "";
  position: absolute;
  top: 1.15rem;
  bottom: -0.35rem;
  left: 50%;
  width: 1.5px;
  transform: translateX(-50%);
  background: color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.ticket-tl__rail {
  position: relative;
  display: flex;
  justify-content: center;
  padding-top: 0.35rem;
}
.ticket-tl__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 9999px;
  background: color-mix(in oklab, var(--color-base-content) 28%, transparent);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-base-100) 90%, transparent);
  flex-shrink: 0;
}
.ticket-tl--opened .ticket-tl__dot,
.ticket-tl--done .ticket-tl__dot {
  background: var(--color-success);
}
.ticket-tl--rejected .ticket-tl__dot {
  background: var(--color-error);
}
.ticket-tl--progress .ticket-tl__dot,
.ticket-tl--status .ticket-tl__dot {
  background: var(--color-warning);
}
.ticket-tl--waiting .ticket-tl__dot {
  background: color-mix(in oklab, var(--color-info, #38bdf8) 80%, var(--color-base-content));
}
.ticket-tl--assign .ticket-tl__dot {
  background: var(--color-primary);
}
.ticket-tl__card {
  min-width: 0;
  padding: 0.35rem 0 1rem;
}
.ticket-tl:last-child .ticket-tl__card {
  padding-bottom: 0.15rem;
}
.ticket-tl__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.55rem;
  margin-bottom: 0.3rem;
}
.ticket-tl__who {
  font-size: 0.78rem;
  font-weight: 600;
}
.ticket-tl__when {
  font-size: 0.68rem;
  opacity: 0.5;
}
.ticket-tl__body {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}
.ticket-tl__action {
  font-size: 0.8rem;
  opacity: 0.55;
  font-weight: 500;
}
.ticket-tl__text {
  font-size: 0.875rem;
  line-height: 1.4;
  white-space: pre-wrap;
}




/* Commercial month board (flights × days) */
.commercial-month {
  min-width: 40rem;
  padding: 0.5rem 0.75rem 1rem;
  --cm-route: 9.25rem;
}
.commercial-month__head,
.commercial-month__row {
  display: grid;
  grid-template-columns: var(--cm-route) minmax(0, 1fr);
  column-gap: 0.35rem;
  align-items: stretch;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.commercial-month__route-col {
  min-width: 0;
  padding: 0.35rem 0.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
}
.commercial-month__row--pair .commercial-month__route-col {
  box-shadow: inset 2px 0 0 color-mix(in oklab, var(--color-primary) 45%, transparent);
  padding-inline-start: 0.55rem;
}
.commercial-month__row--out .commercial-month__route-col {
  border-start-start-radius: 0.35rem;
}
.commercial-month__row--in .commercial-month__route-col {
  border-end-start-radius: 0.35rem;
}
.commercial-month__flt {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
}
.commercial-month__days {
  display: grid;
  grid-template-columns: repeat(var(--cm-days, 31), minmax(0, 1fr));
  gap: 1px;
  min-width: 0;
}
.commercial-month__day-h,
.commercial-month__cell {
  min-width: 0;
  text-align: center;
  font-size: 0.65rem;
}
.commercial-month__day-h {
  opacity: 0.55;
  padding: 0.25rem 0;
}
.commercial-month__day-h--today {
  opacity: 1;
  font-weight: 700;
  color: color-mix(in oklab, var(--color-primary) 55%, var(--color-base-content));
}
.commercial-month__cell {
  min-height: 2.35rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 1px;
  padding: 2px;
  box-sizing: border-box;
  background: color-mix(in oklab, var(--color-base-content) 3%, transparent);
  border-radius: 0.2rem;
}
.commercial-month__cell--today {
  outline: 1px solid color-mix(in oklab, var(--color-primary) 35%, transparent);
}
.commercial-bar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 1.85rem;
  min-height: 1.85rem;
  padding: 0;
  border-radius: 0.2rem;
  font-size: 0.68rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  border: 0;
  cursor: pointer;
  line-height: 1;
  color: inherit;
  background: color-mix(in oklab, var(--color-base-content) 8%, var(--color-base-100));
}
.commercial-bar--empty {
  opacity: 0.45;
}
.commercial-bar--set {
  background: color-mix(in oklab, #34d399 28%, var(--color-base-100));
  color: color-mix(in oklab, #059669 40%, var(--color-base-content));
}
.commercial-bar--over {
  background: color-mix(in oklab, #fbbf24 35%, var(--color-base-100));
  color: color-mix(in oklab, #b45309 35%, var(--color-base-content));
}
.commercial-bar--warn {
  background: color-mix(in oklab, #f59e0b 22%, var(--color-base-100));
  color: color-mix(in oklab, #b45309 45%, var(--color-base-content));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, #f59e0b 45%, transparent);
}
.commercial-bar--locked {
  background: color-mix(in oklab, #f87171 28%, var(--color-base-100));
  color: color-mix(in oklab, #b91c1c 40%, var(--color-base-content));
  cursor: default;
  opacity: 0.9;
}
.commercial-bar:hover {
  filter: brightness(1.06);
}
.commercial-month-nav .btn {
  min-height: 2rem;
  height: 2rem;
}

/* —— Workplace help modal —— */
.sky-help-box {
  display: flex;
  flex-direction: column;
  max-height: min(90vh, 44rem);
  overflow: hidden;
  border-radius: 0.5rem;
  padding: 0;
}
.sky-help-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  padding: 1rem 1.25rem 0.85rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 92%, var(--color-primary));
}
.sky-help-head__text {
  flex: 1 1 auto;
  min-width: 0;
}
.sky-help-head__close {
  flex: 0 0 auto;
  margin: -0.15rem -0.25rem 0 0;
  order: 2;
  line-height: 0;
}
.sky-help-layout {
  display: grid;
  grid-template-columns: minmax(10.5rem, 14rem) minmax(0, 1fr);
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
@media (max-width: 640px) {
  .sky-help-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .sky-help-nav {
    max-height: 9.5rem;
    border-inline-end: 0;
    border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  }
}
.sky-help-nav {
  overflow: auto;
  padding: 0.65rem 0.5rem 0.85rem;
  border-inline-end: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 55%, var(--color-base-100));
}
.sky-help-nav__group {
  margin: 0.65rem 0.5rem 0.25rem;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.5;
  font-weight: 600;
}
.sky-help-nav__group:first-child {
  margin-top: 0.15rem;
}
.sky-help-nav__list {
  list-style: none;
  margin: 0 0 0.25rem;
  padding: 0;
}
.sky-help-nav__btn {
  display: block;
  width: 100%;
  text-align: start;
  border: 0;
  border-radius: 0.4rem;
  padding: 0.4rem 0.55rem;
  font-size: 0.8125rem;
  line-height: 1.25;
  cursor: pointer;
  color: inherit;
  background: transparent;
}
.sky-help-nav__btn:hover {
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.sky-help-nav__btn.is-active {
  background: color-mix(in oklab, var(--color-primary) 18%, var(--color-base-100));
  color: var(--color-primary);
  font-weight: 600;
}
.sky-help-body {
  overflow: auto;
  padding: 1rem 1.15rem 1.25rem;
  min-height: 0;
}
.sky-help-article__title {
  margin: 0.35rem 0 0.5rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.25;
}
.sky-help-who {
  margin: 0;
}
.sky-help-summary {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0.9;
}
.sky-help-h {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.55;
  font-weight: 650;
}
.sky-help-steps {
  margin: 0 0 1rem;
  padding-inline-start: 1.2rem;
  font-size: 0.9rem;
  line-height: 1.5;
}
.sky-help-steps li + li {
  margin-top: 0.45rem;
}
.sky-help-callout {
  margin: 0 0 0.85rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.45rem;
  font-size: 0.84rem;
  line-height: 1.45;
}
.sky-help-callout ul {
  margin: 0.25rem 0 0;
  padding-inline-start: 1.1rem;
}
.sky-help-callout li + li {
  margin-top: 0.3rem;
}
.sky-help-callout__label {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 700;
  opacity: 0.7;
}
.sky-help-callout--tip {
  background: color-mix(in oklab, var(--color-info) 12%, var(--color-base-100));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-info) 25%, transparent);
}
.sky-help-callout--warn {
  background: color-mix(in oklab, var(--color-warning) 14%, var(--color-base-100));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-warning) 30%, transparent);
}
.sky-help-related-label {
  margin: 0.5rem 0 0.35rem;
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.5;
  font-weight: 650;
}
.sky-help-related {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.sky-help-foot {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 1.1rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, var(--color-base-100));
}

/* —— Ops inbox board —— */
.ops-inbox-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 17.5rem);
  gap: 1rem;
  align-items: start;
}
@media (max-width: 960px) {
  .ops-inbox-layout {
    grid-template-columns: 1fr;
  }
}
.ops-ex-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.65rem;
}
.ops-ex-card {
  margin: 0;
  padding: 0.7rem 0.8rem 0.75rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 40%, var(--color-base-100));
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.ops-ex-card--critical,
.ops-ex-card--block {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 75%, transparent);
  background: color-mix(in oklab, var(--color-error) 8%, var(--color-base-100));
}
.ops-ex-card--warn {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 70%, transparent);
  background: color-mix(in oklab, var(--color-warning) 7%, var(--color-base-100));
}
.ops-ex-card--closed {
  opacity: 0.62;
}
.ops-ex-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.35rem;
  margin-bottom: 0.4rem;
}
.ops-ex-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.ops-ex-card__actions {
  display: flex;
  gap: 0.1rem;
  flex-shrink: 0;
}
.ops-ex-card__title {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
}
.ops-ex-card__code {
  margin: 0 0 0.55rem;
  font-size: 0.7rem;
  opacity: 0.5;
  line-height: 1.2;
}
.ops-ex-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.ops-ex-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 0.12rem 0.4rem;
  border-radius: 0.3rem;
  font-size: 0.7rem;
  line-height: 1.3;
  background: color-mix(in oklab, var(--color-base-content) 7%, transparent);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
a.ops-ex-chip:hover {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: var(--color-primary);
}
.ops-ex-chip--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.68rem;
}
.ops-ex-chip--muted {
  opacity: 0.55;
}
.ops-sev-badge--critical,
.ops-sev-badge--block {
  background: color-mix(in oklab, var(--color-error) 22%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-error) 35%, var(--color-base-content));
  border: 0;
}
.ops-sev-badge--warn {
  background: color-mix(in oklab, var(--color-warning) 22%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-warning) 30%, var(--color-base-content));
  border: 0;
}
.ops-inbox-empty {
  padding: 1.25rem 0.25rem;
  text-align: center;
}
.ops-inbox-scroll {
  max-height: 16rem;
  overflow: auto;
}
.ops-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ops-side-item {
  margin: 0;
  padding: 0.45rem 0;
}
.ops-side-item + .ops-side-item {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.ops-side-item__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.ops-side-item__sub {
  margin: 0.15rem 0 0;
  font-size: 0.68rem;
  opacity: 0.55;
  line-height: 1.3;
}
.ops-side-item__err {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  line-height: 1.3;
  color: color-mix(in oklab, var(--color-error) 55%, var(--color-base-content));
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.count-pill--warn {
  background: color-mix(in oklab, var(--color-warning) 22%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-warning) 25%, var(--color-base-content));
}

/* —— AODB event stream —— */
.aodb-stream__lede {
  font-size: 0.75rem;
  opacity: 0.7;
  max-width: 42rem;
}
.aodb-src {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.7rem;
  opacity: 0.55;
}
.aodb-src--on {
  opacity: 1;
  color: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
  font-weight: 600;
}
.aodb-day-nav {
  align-items: stretch;
}
.aodb-day-nav__date {
  border-radius: 0;
}
.aodb-stream__body {
  padding-top: 0.35rem;
}
.aodb-flight-groups {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.aodb-flight-group {
  margin: 0;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
  overflow: hidden;
}
.aodb-flight-group__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 45%, var(--color-base-100));
}
.aodb-flight-group__id {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.65rem;
}
.aodb-flight-group__no {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
}
.aodb-flight-group__route {
  font-size: 0.78rem;
  opacity: 0.55;
}
.aodb-flight-group__count {
  flex-shrink: 0;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: color-mix(in oklab, var(--color-primary) 35%, var(--color-base-content));
}
.aodb-flight-group .aodb-event-list {
  gap: 0;
  padding: 0.35rem 0.45rem 0.45rem;
}
.aodb-flight-group .aodb-event {
  border-radius: 0.4rem;
  border-color: transparent;
  background: transparent;
}
.aodb-flight-group .aodb-event + .aodb-event {
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 6%, transparent);
  border-radius: 0;
}
.aodb-flight-group .aodb-event--warn,
.aodb-flight-group .aodb-event--alert {
  border-radius: 0.4rem;
  border-style: solid;
  border-width: 1px;
}
.aodb-event__value-inline {
  font-size: 0.84rem;
  line-height: 1.3;
  opacity: 0.88;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 8rem;
}
.aodb-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.aodb-event {
  display: grid;
  grid-template-columns: 3.6rem 0.75rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: stretch;
  margin: 0;
  padding: 0.55rem 0.7rem 0.55rem 0.45rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.aodb-event__time {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0.05rem;
  padding-top: 0.1rem;
}
.aodb-event__clock {
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.aodb-event__zone {
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.45;
}
.aodb-event__rail {
  position: relative;
  width: 0.75rem;
  justify-self: center;
}
.aodb-event__rail::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0.15rem;
  bottom: 0.15rem;
  width: 2px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.aodb-event__rail::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0.85rem;
  width: 0.55rem;
  height: 0.55rem;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: 2px solid color-mix(in oklab, var(--color-base-content) 28%, transparent);
  background: var(--color-base-100);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-base-100) 80%, transparent);
}
.aodb-event--plan .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
}
.aodb-event--est .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-info) 65%, transparent);
}
.aodb-event--live .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-success) 70%, transparent);
  background: color-mix(in oklab, var(--color-success) 35%, var(--color-base-100));
}
.aodb-event--ops .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-secondary, var(--color-primary)) 60%, transparent);
}
.aodb-event--warn {
  background: color-mix(in oklab, var(--color-warning) 7%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-warning) 18%, transparent);
}
.aodb-event--warn .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-warning) 75%, transparent);
  background: color-mix(in oklab, var(--color-warning) 40%, var(--color-base-100));
}
.aodb-event--alert {
  background: color-mix(in oklab, var(--color-error) 8%, var(--color-base-100));
  border-color: color-mix(in oklab, var(--color-error) 18%, transparent);
}
.aodb-event--alert .aodb-event__rail::after {
  border-color: color-mix(in oklab, var(--color-error) 75%, transparent);
  background: color-mix(in oklab, var(--color-error) 35%, var(--color-base-100));
}
.aodb-event__main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  justify-content: center;
}
.aodb-event__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
}
.aodb-event__type {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.45rem;
  border-radius: 0.3rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.aodb-event--live .aodb-event__type {
  background: color-mix(in oklab, var(--color-success) 18%, transparent);
}
.aodb-event--warn .aodb-event__type {
  background: color-mix(in oklab, var(--color-warning) 22%, transparent);
}
.aodb-event--alert .aodb-event__type {
  background: color-mix(in oklab, var(--color-error) 18%, transparent);
}
.aodb-event--est .aodb-event__type {
  background: color-mix(in oklab, var(--color-info) 16%, transparent);
}
.aodb-event__flight {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 0.78rem;
  min-width: 0;
}
.aodb-event__fn {
  font-weight: 650;
}
.aodb-event__source {
  margin-inline-start: auto;
  font-size: 0.68rem;
  opacity: 0.5;
  text-transform: lowercase;
  letter-spacing: 0.02em;
}
.aodb-event__value {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.35;
  opacity: 0.88;
}
.aodb-stream__empty {
  padding: 1.75rem 1rem;
  text-align: center;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 25%, transparent);
}
.aodb-stream__empty-title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 550;
}
.aodb-stream__empty-hint {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  opacity: 0.5;
}
@media (max-width: 640px) {
  .aodb-event {
    grid-template-columns: 3.1rem 0.55rem minmax(0, 1fr);
    padding-inline: 0.4rem 0.55rem;
  }
  .aodb-event__source {
    margin-inline-start: 0;
    width: 100%;
  }
}

/* —— MX board / component dues —— */
.mx-board__body {
  padding-top: 0.35rem;
}
.mx-stat {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.mx-wo-list,
.mx-due-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.mx-wo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin: 0;
  padding: 0.7rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 32%, var(--color-base-100));
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.mx-wo--aog {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-error) 75%, transparent);
  background: color-mix(in oklab, var(--color-error) 7%, var(--color-base-100));
}
.mx-wo--high {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 70%, transparent);
  background: color-mix(in oklab, var(--color-warning) 6%, var(--color-base-100));
}
.mx-wo--closed {
  opacity: 0.62;
}
.mx-wo__main {
  flex: 1 1 14rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  cursor: pointer;
  border-radius: 0.35rem;
}
.mx-wo__main:hover .mx-wo__title {
  color: var(--color-primary);
}
.mx-wo__main:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 2px;
}
.mx-wo__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.mx-wo__no {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.mx-wo__reg {
  font-size: 0.8rem;
  font-weight: 650;
}
.mx-wo__title {
  font-size: 0.9rem;
  font-weight: 550;
  line-height: 1.3;
  color: inherit;
}
.mx-wo__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.72rem;
  opacity: 0.55;
}
.mx-wo__actions {
  align-self: center;
}
.mx-status-icons .btn {
  min-height: 1.75rem;
  height: 1.75rem;
  width: 1.75rem;
}
.mx-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.4rem;
  border-radius: 0.3rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-transform: lowercase;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.mx-pill--pri-aog {
  background: color-mix(in oklab, var(--color-error) 18%, transparent);
  text-transform: uppercase;
}
.mx-pill--pri-high {
  background: color-mix(in oklab, var(--color-warning) 20%, transparent);
}
.mx-pill--st-in_progress,
.mx-pill--st-assigned {
  background: color-mix(in oklab, var(--color-info) 14%, transparent);
}
.mx-pill--st-awaiting_parts {
  background: color-mix(in oklab, var(--color-warning) 16%, transparent);
}
.mx-pill--st-done {
  background: color-mix(in oklab, var(--color-success) 16%, transparent);
}
.mx-pill--mel {
  opacity: 0.75;
  font-weight: 550;
}
/* Dues: same flight-group / timeline chrome as AODB event stream */
.mx-dues .aodb-event {
  grid-template-columns: 6.5rem 0.75rem minmax(0, 1fr);
}
.mx-dues .aodb-event__time {
  min-width: 6.25rem;
  align-items: flex-end;
}
.mx-dues .aodb-event__clock {
  font-size: 0.78rem;
  white-space: nowrap;
}
.mx-dues .aodb-event__type {
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.8rem;
  font-weight: 650;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mx-due--edit {
  cursor: pointer;
}
.mx-due--edit:hover {
  background: color-mix(in oklab, var(--color-base-content) 4%, transparent);
}
.mx-due--edit:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 55%, transparent);
  outline-offset: 1px;
  border-radius: 0.4rem;
}
.mx-empty {
  padding: 1.5rem 1rem;
  text-align: center;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, transparent);
}
.mx-empty__title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 550;
}
.mx-empty__hint {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  opacity: 0.5;
}

/* —— HR / Payroll boards —— */
.hr-emp-groups {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.hr-emp-group {
  margin: 0;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
  overflow: hidden;
}
.hr-emp-group__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 45%, var(--color-base-100));
}
.hr-emp-group__id {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 0.65rem;
}
.hr-emp-group__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.hr-emp-group__sub {
  font-size: 0.78rem;
  opacity: 0.55;
}
.hr-emp-group__count {
  flex-shrink: 0;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: color-mix(in oklab, var(--color-primary) 35%, var(--color-base-content));
}
.hr-mini-grid {
  list-style: none;
  margin: 0;
  padding: 0.55rem 0.65rem 0.7rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
  gap: 0.5rem;
}
.hr-mini {
  margin: 0;
  padding: 0.65rem 0.7rem;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 8%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-height: 5.5rem;
}
.hr-mini__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
}
.hr-mini__kind {
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  opacity: 0.45;
  font-weight: 600;
}
.hr-mini__name {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1.25;
}
.hr-mini__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  margin: 0;
  font-size: 0.68rem;
  opacity: 0.5;
  line-height: 1.3;
}
.hr-mini__pay {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
}
.hr-mini__cycle {
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.45;
}
.hr-mini__block {
  font-size: 0.7rem;
  font-weight: 650;
  color: color-mix(in oklab, var(--color-info) 45%, var(--color-base-content));
}
.hr-pill--lt-block {
  background: color-mix(in oklab, var(--color-info) 16%, transparent);
}
.hr-pill--lt-salary {
  background: color-mix(in oklab, var(--color-primary) 12%, transparent);
}
.hr-person-list,
.hr-run-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.hr-person,
.hr-run {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.65rem 0.85rem;
  align-items: center;
  margin: 0;
  padding: 0.7rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100));
}
.hr-person__name,
.hr-run__label {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.25;
}
.hr-person__meta,
.hr-run__dates {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
  opacity: 0.55;
}
.hr-person__pay,
.hr-run__tot {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.05rem;
  font-size: 0.8rem;
}
.hr-person__pay-label,
.hr-run__tot-label {
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.45;
}
.hr-run__main {
  color: inherit;
  text-decoration: none;
  min-width: 0;
}
.hr-run__main:hover .hr-run__label {
  color: var(--color-primary);
}
.hr-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.45rem;
  border-radius: 0.3rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: lowercase;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.hr-pill--crew {
  background: color-mix(in oklab, var(--color-info) 14%, transparent);
}
.hr-pill--office {
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
}
.hr-pill--contractor {
  background: color-mix(in oklab, var(--color-warning) 16%, transparent);
}
.hr-pill--st-draft {
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
}
.hr-pill--st-approved {
  background: color-mix(in oklab, var(--color-info) 14%, transparent);
}
.hr-pill--st-paid {
  background: color-mix(in oklab, var(--color-success) 16%, transparent);
}
.hr-empty {
  padding: 1.5rem 1rem;
  text-align: center;
  border-radius: 0.5rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, transparent);
}
.hr-empty__title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 550;
}
.hr-empty__hint {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  opacity: 0.5;
}
@media (max-width: 640px) {
  .hr-mini-grid {
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  }
  .hr-person,
  .hr-run {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .hr-person__pay,
  .hr-run__tot {
    grid-column: 1 / -1;
    align-items: flex-start;
  }
}

/* Journey LOG board — event stream (reuses AODB rail language) */
.jl-board-head__title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  min-width: 0;
}
.jl-board-head__title .panel-eyebrow {
  white-space: nowrap;
}
.jl-board-head__title .panel-title {
  white-space: nowrap;
}
.jl-board-head__hint {
  font-size: 0.78rem;
  opacity: 0.55;
  line-height: 1.25;
  min-width: 0;
}
.jl-stats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
  gap: 0.55rem;
}
.jl-stats--line {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.15rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.35rem 0.45rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
}
.jl-stats--in-head {
  margin: 0;
  max-width: min(100%, 36rem);
}
.jl-board-head__aside {
  max-width: 100%;
}
.jl-stats--line .jl-stat {
  flex: 0 0 auto;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  padding: 0.2rem 0.45rem;
  border: none;
  background: transparent;
}
.jl-stats--line .jl-stat__n {
  font-size: 0.95rem;
}
.jl-stats--line .jl-stat__l {
  font-size: 0.55rem;
  white-space: nowrap;
}
.jl-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100));
}
.jl-stat__n {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.15rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.jl-stat__l {
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  opacity: 0.55;
}
.jl-stat--ok .jl-stat__n { color: color-mix(in oklab, var(--color-success) 70%, var(--color-base-content)); }
.jl-stat--ready .jl-stat__n { color: color-mix(in oklab, var(--color-primary) 65%, var(--color-base-content)); }
.jl-stat--warn .jl-stat__n { color: color-mix(in oklab, var(--color-warning) 75%, var(--color-base-content)); }

.jl-stream__body { padding-top: 0.35rem; }
.jl-days {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}
.jl-day__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.55rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.jl-day__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 650;
  letter-spacing: 0.01em;
}
.jl-day__meta {
  font-size: 0.72rem;
  opacity: 0.45;
}
.jl-rotations { gap: 0.75rem; }

.jl-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
  width: 1.15rem;
  height: 1.15rem;
  padding: 0;
  border-radius: 0.3rem;
}
.jl-pill svg {
  width: 0.78rem;
  height: 0.78rem;
}
.jl-pill--turn {
  color: color-mix(in oklab, var(--color-primary) 45%, var(--color-base-content));
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
}
.jl-rotation--turn {
  border-color: color-mix(in oklab, var(--color-primary) 22%, transparent);
}
.jl-rotation--signed {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-success) 55%, transparent);
}
.jl-rotation--ready {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-primary) 50%, transparent);
}
.jl-rotation--partial {
  box-shadow: inset 3px 0 0 color-mix(in oklab, var(--color-warning) 55%, transparent);
}

.jl-status {
  flex-shrink: 0;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding: 0.15rem 0.45rem;
  border-radius: 0.35rem;
  background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
  opacity: 0.85;
}
.jl-status--sm { font-size: 0.62rem; padding: 0.1rem 0.35rem; }
.jl-status--signed {
  background: color-mix(in oklab, var(--color-success) 18%, transparent);
  color: color-mix(in oklab, var(--color-success) 45%, var(--color-base-content));
}
.jl-status--ready {
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
  color: color-mix(in oklab, var(--color-primary) 40%, var(--color-base-content));
}
.jl-status--partial {
  background: color-mix(in oklab, var(--color-warning) 18%, transparent);
  color: color-mix(in oklab, var(--color-warning) 40%, var(--color-base-content));
}
.jl-status--cancelled {
  background: color-mix(in oklab, var(--color-error) 16%, transparent);
  color: color-mix(in oklab, var(--color-error) 45%, var(--color-base-content));
}

.jl-event__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.35rem;
  margin-top: 0.2rem;
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.9;
}
.jl-event__actions {
  display: flex;
  gap: 0.15rem;
  margin-top: 0.35rem;
}

.jl-help-item {
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 20%, var(--color-base-100));
  padding: 0.15rem 0.65rem 0.15rem;
}
.jl-help-item__sum {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  cursor: pointer;
  list-style: none;
  padding: 0.45rem 0;
  font-weight: 600;
  font-size: 0.88rem;
}
.jl-help-item__sum::-webkit-details-marker { display: none; }
.jl-help-item__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
  height: 1.4rem;
  padding: 0 0.3rem;
  border-radius: 0.35rem;
  font-size: 0.72rem;
  background: color-mix(in oklab, var(--color-primary) 16%, transparent);
}
.jl-help-item__body {
  margin: 0 0 0.55rem 2.65rem;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.78;
}

.jl-ref {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.jl-ref:hover {
  border-color: color-mix(in oklab, var(--color-primary) 35%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100));
}
.jl-ref__title {
  font-weight: 650;
  font-size: 0.88rem;
  line-height: 1.3;
}
.jl-ref__note {
  font-size: 0.75rem;
  line-height: 1.4;
  opacity: 0.62;
}

.jl-guide-modal__box {
  position: relative;
  padding-top: 1.1rem;
  padding-inline-end: 0.5rem;
}
.jl-guide-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  left: auto;
  z-index: 20;
  margin: 0;
  line-height: 0;
}
.jl-guide-modal__tabs .tab {
  font-size: 0.8rem;
}
.jl-guide-modal__pane {
  border-width: 1px;
}

/* Journey log PDF-style edit modal — landscape A4 fill */
.jl-edit-modal {
  overflow-x: hidden;
}
.jl-edit-modal__box {
  max-width: min(70rem, calc(100vw - 1.25rem)) !important;
  width: min(70rem, calc(100vw - 1.25rem));
  max-height: 94vh;
  padding: 0.65rem 0.85rem 0.85rem;
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
}
.jl-edit-modal__close {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  margin: -0.25rem -0.25rem 0.25rem 0;
}
.jl-paper {
  background: color-mix(in oklab, var(--color-base-100) 92%, white);
  color: var(--color-base-content);
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  border-radius: 0.35rem;
  padding: 0.75rem 1rem 0.9rem;
  box-shadow: 0 1px 0 color-mix(in oklab, var(--color-base-content) 6%, transparent);
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  box-sizing: border-box;
}
.jl-paper--inline {
  padding: 0.65rem 0.75rem;
  background: color-mix(in oklab, var(--color-base-200) 25%, var(--color-base-100));
}
.jl-paper__mast {
  text-align: center;
  margin-bottom: 0.55rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  max-width: 100%;
  min-width: 0;
}
.jl-paper__doc {
  margin: 0;
  font-size: clamp(0.85rem, 2.4vw, 1.05rem);
  font-weight: 750;
  letter-spacing: 0.04em;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.jl-paper__sub {
  margin: 0.15rem 0 0;
  font-size: 0.68rem;
  opacity: 0.55;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.jl-paper__co {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  font-weight: 650;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.jl-paper__sec {
  margin-top: 0.35rem;
  min-width: 0;
  max-width: 100%;
}
.jl-paper__sec-h {
  margin: 0 0 0.35rem;
  padding: 0.3rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background: color-mix(in oklab, var(--color-base-200) 70%, var(--color-base-100));
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}
.jl-paper__sec-sub {
  margin: 0.35rem 0 0.25rem;
  font-size: 0.7rem;
  font-weight: 650;
  opacity: 0.75;
}
.jl-paper__boxes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem;
}
/* OCC journey summary: OFF/ON · Block · Flight time · Fuel · Nature — one row */
.jl-paper__boxes--strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.3rem;
}
.jl-paper__boxes--strip .jl-paper__lab {
  font-size: 0.55rem;
  white-space: nowrap;
}
.jl-paper__boxes--strip .jl-paper__val {
  font-size: 0.8rem;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jl-paper__times {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0.3rem;
}
.jl-paper__times--fuel {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.jl-paper__times--load {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.jl-paper__box {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  padding: 0.25rem 0.35rem 0.35rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 14%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 88%, var(--color-base-200));
  border-radius: 0.2rem;
}
.jl-paper__box--ro {
  background: color-mix(in oklab, var(--color-base-200) 35%, var(--color-base-100));
}
.jl-paper__box--grow { grid-column: span 2; }
.jl-paper__box--block { grid-column: 1 / -1; }
.jl-paper__lab {
  font-size: 0.58rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  opacity: 0.55;
  line-height: 1.2;
}
.jl-paper__val {
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1.25;
  min-height: 1.35rem;
}
.jl-paper__input {
  width: 100%;
  min-height: 1.65rem;
  padding: 0.15rem 0.25rem;
  border: 0;
  border-radius: 0.15rem;
  background: color-mix(in oklab, var(--color-base-100) 70%, transparent);
  font-size: 0.78rem;
  line-height: 1.2;
}
.jl-paper__input.input {
  /* Keep paper cell chrome; Daisy `input` only for theme tokens */
  height: auto;
  border-width: 0;
  border-radius: 0.15rem;
  box-shadow: none;
}
.jl-paper__input:focus {
  outline: 1px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
}
.jl-paper__textarea {
  min-height: 3rem;
  resize: vertical;
}
.jl-paper__table {
  width: 100%;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
}
.jl-paper__table th {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  opacity: 0.65;
}
.jl-paper__sec--sign {
  margin-top: 0.65rem;
}
.jl-paper__sign {
  padding: 0.45rem 0.55rem;
  border: 1px dashed color-mix(in oklab, var(--color-base-content) 18%, transparent);
  border-radius: 0.25rem;
  background: color-mix(in oklab, var(--color-base-200) 22%, var(--color-base-100));
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.jl-paper__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  position: sticky;
  bottom: 0;
  background: color-mix(in oklab, var(--color-base-100) 92%, transparent);
  backdrop-filter: blur(6px);
  z-index: 1;
  max-width: 100%;
  min-width: 0;
}
@media (max-width: 900px) {
  .jl-paper__boxes:not(.jl-paper__boxes--strip),
  .jl-paper__times,
  .jl-paper__times--fuel,
  .jl-paper__times--load {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .jl-paper__box--grow { grid-column: span 2; }
  .jl-paper__boxes--strip {
    grid-template-columns: repeat(5, minmax(4.5rem, 1fr));
    overflow-x: auto;
  }
}
@media (max-width: 520px) {
  .jl-paper__boxes:not(.jl-paper__boxes--strip),
  .jl-paper__times,
  .jl-paper__times--fuel,
  .jl-paper__times--load {
    grid-template-columns: 1fr;
  }
  .jl-paper__box--grow { grid-column: auto; }
}

/* FlightAware track panel — collapsible */
#fa-track-panel details > summary { outline: none; }
#fa-track-panel details > summary::-webkit-details-marker { display: none; }
#fa-track-panel .fa-track-chevron { transition: transform 0.15s ease; }
#fa-track-panel details[open] .fa-track-chevron { transform: rotate(180deg); }

/* Flight production rail — OCC → Roster → Prep → Fly → Journal */
.prod-rail {
  margin-bottom: 0.75rem;
  padding: 0.75rem 0.85rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background:
    linear-gradient(
      120deg,
      color-mix(in oklab, var(--color-primary) 7%, transparent),
      transparent 42%
    ),
    color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100));
}
.prod-rail__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
}
.prod-rail__head {
  flex: 0 1 14rem;
  min-width: 0;
  padding-top: 0.1rem;
}
.prod-rail__eyebrow {
  margin: 0;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.5;
  font-weight: 650;
}
.prod-rail__title {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
}
.prod-rail__day {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
  opacity: 0.55;
}
.prod-rail__stages {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  flex: 1 1 28rem;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.prod-rail__stage {
  display: flex;
  align-items: stretch;
  flex: 1 1 0;
  min-width: 7.5rem;
}
.prod-rail__link {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
  padding: 0.5rem 0.55rem;
  border-radius: 0.4rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 85%, transparent);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.prod-rail__link:hover {
  border-color: color-mix(in oklab, var(--color-primary) 35%, transparent);
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100));
}
.prod-rail__n {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  background: color-mix(in oklab, var(--color-base-content) 10%, transparent);
}
.prod-rail__body {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  flex: 1;
}
.prod-rail__label {
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.15;
}
.prod-rail__detail {
  font-size: 0.78rem;
  line-height: 1.25;
  opacity: 0.88;
  font-weight: 550;
}
.prod-rail__count {
  font-size: 0.62rem;
  line-height: 1.2;
  opacity: 0.45;
  margin-top: 0.05rem;
}
.prod-rail__dot {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  margin-top: 0.35rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--color-base-content) 28%, transparent);
}
.prod-rail__arrow {
  flex-shrink: 0;
  align-self: center;
  padding: 0 0.2rem;
  opacity: 0.3;
  font-size: 0.8rem;
}
.prod-rail__hint {
  margin: 0.55rem 0 0;
  font-size: 0.68rem;
  opacity: 0.5;
  line-height: 1.35;
}
.prod-rail__stage--ok .prod-rail__dot {
  background: color-mix(in oklab, var(--color-success) 70%, transparent);
}
.prod-rail__stage--ok .prod-rail__n {
  background: color-mix(in oklab, var(--color-success) 18%, transparent);
}
.prod-rail__stage--warn .prod-rail__dot {
  background: color-mix(in oklab, var(--color-warning) 75%, transparent);
}
.prod-rail__stage--warn .prod-rail__n {
  background: color-mix(in oklab, var(--color-warning) 18%, transparent);
}
.prod-rail__stage--block .prod-rail__dot {
  background: color-mix(in oklab, var(--color-error) 70%, transparent);
}
.prod-rail__stage--block .prod-rail__n {
  background: color-mix(in oklab, var(--color-error) 16%, transparent);
}
.prod-rail__stage--missing .prod-rail__dot,
.prod-rail__stage--idle .prod-rail__dot {
  background: color-mix(in oklab, var(--color-base-content) 22%, transparent);
}
.prod-rail__stage--active .prod-rail__link {
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 20%, transparent);
}
@media (max-width: 720px) {
  .prod-rail__head {
    flex: 1 1 100%;
  }
  .prod-rail__stages {
    flex: 1 1 100%;
  }
  .prod-rail__stage {
    flex: 0 0 auto;
    min-width: 8.25rem;
  }
}

/* Crew day cycle (life tech loop vs STD) */
.crew-cycle {
  overflow: hidden;
}
.crew-cycle--compact .card-soft-head {
  padding-bottom: 0.35rem;
}
.crew-cycle-chip {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  max-width: 100%;
  height: auto;
  min-height: 2rem;
  padding: 0.35rem 0.65rem;
  text-align: start;
  font-weight: 500;
  line-height: 1.25;
}
.crew-cycle-chip__eyebrow {
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.55;
  font-weight: 650;
}
.crew-cycle-chip__flt {
  font-size: 0.8125rem;
  font-weight: 650;
}
.crew-cycle-chip__sep {
  opacity: 0.35;
}
.crew-cycle-chip__now {
  font-size: 0.8125rem;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.crew-cycle-modal__box {
  max-height: min(88vh, 40rem);
  overflow: auto;
  padding-top: 1rem;
}
.crew-cycle__list {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0.85rem 0.85rem;
}
.crew-cycle__list--modal {
  padding: 0 0 0.25rem;
}
.crew-cycle__step {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: 0.55rem;
  position: relative;
  padding-bottom: 0.65rem;
}
.crew-cycle__step:last-child {
  padding-bottom: 0.15rem;
}
.crew-cycle__rail {
  display: flex;
  justify-content: center;
  position: relative;
}
.crew-cycle__rail::after {
  content: "";
  position: absolute;
  top: 0.85rem;
  bottom: -0.65rem;
  width: 1px;
  background: color-mix(in oklab, var(--color-base-content) 14%, transparent);
}
.crew-cycle__step:last-child .crew-cycle__rail::after {
  display: none;
}
.crew-cycle__dot {
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.35rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--color-base-content) 28%, transparent);
  z-index: 1;
}
.crew-cycle__step--done .crew-cycle__dot {
  background: var(--color-success);
}
.crew-cycle__step--now .crew-cycle__dot {
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.crew-cycle__step--late .crew-cycle__dot {
  background: var(--color-warning);
}
.crew-cycle__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
}
.crew-cycle__clock {
  font-size: 0.75rem;
  opacity: 0.65;
  min-width: 3.2rem;
}
.crew-cycle__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: inherit;
  text-decoration: none;
}
a.crew-cycle__label:hover {
  color: var(--color-primary);
}
.crew-cycle__detail {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  opacity: 0.55;
  line-height: 1.35;
}
.crew-cycle__step--todo .crew-cycle__label {
  opacity: 0.85;
}
.crew-cycle__step--done .crew-cycle__label {
  opacity: 0.55;
}

/* Icon pick rows — equal columns, one line, crew-type face styling */
.icon-pick-row {
  display: grid;
  width: 100%;
  gap: 0.2rem;
  align-items: start;
}
.icon-pick-row--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.icon-pick-row--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.icon-pick-row--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.icon-pick-row--7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.icon-pick-row--8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}
.icon-pick-row--10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}
@media (max-width: 639px) {
  .icon-pick-row--7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.12rem;
  }
  .icon-pick-row--8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0.12rem;
  }
  .icon-pick-row--10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 0.08rem;
  }
  .icon-pick-row--7 .icon-pick-row__lbl,
  .icon-pick-row--8 .icon-pick-row__lbl,
  .icon-pick-row--10 .icon-pick-row__lbl {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}
.icon-pick-row__opt {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.18rem;
  min-width: 0;
  margin: 0;
  cursor: pointer;
}
.icon-pick-row__opt input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
.icon-pick-row__face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, var(--sky-icon-pick-face, 2.55rem));
  height: var(--sky-icon-pick-face, 2.55rem);
  margin-inline: auto;
  flex-shrink: 0;
  border-radius: 0.45rem;
  border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent);
  background: color-mix(in oklab, var(--color-base-100) 82%, transparent);
  color: color-mix(in oklab, var(--color-base-content) 52%, transparent);
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.icon-pick-row__face svg {
  width: var(--sky-icon-pick-svg, 1.15rem);
  height: var(--sky-icon-pick-svg, 1.15rem);
}
.icon-pick-row__lbl {
  display: block;
  width: 100%;
  text-align: center;
  font-size: clamp(0.48rem, 2.4vw, 0.62rem);
  font-weight: 650;
  letter-spacing: 0.01em;
  line-height: 1.05;
  opacity: 0.62;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.icon-pick-row__opt input:checked + .icon-pick-row__face,
.icon-pick-row__opt--on .icon-pick-row__face {
  border-color: color-mix(in oklab, var(--color-primary) 55%, transparent);
  background: color-mix(in oklab, var(--color-primary) 16%, var(--color-base-100));
  color: var(--color-primary);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--color-primary) 28%, transparent);
}
.icon-pick-row__opt input:checked ~ .icon-pick-row__lbl,
.icon-pick-row__opt--on .icon-pick-row__lbl {
  opacity: 1;
  color: var(--color-primary);
}
.icon-pick-row__opt input:focus-visible + .icon-pick-row__face {
  outline: 2px solid color-mix(in oklab, var(--color-primary) 45%, transparent);
  outline-offset: 2px;
}
.work-region-pick,
.agency-avail-pick {
  width: 100%;
}
.agency-profile-avail {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.card-soft-head:has(.agency-profile-avail) {
  flex-wrap: wrap;
  align-items: flex-start;
  row-gap: 0.45rem;
}
.agency-desk .agency-profile-avail .agency-avail-pick,
.agency-desk .agency-profile-avail .icon-pick-row--2 {
  width: auto;
  flex: 0 0 auto;
  grid-template-columns: repeat(2, minmax(2.45rem, 2.95rem));
  gap: 0.2rem;
}
.agency-desk .agency-profile-avail .icon-pick-row--3 {
  width: auto;
  flex: 0 0 auto;
  grid-template-columns: repeat(3, minmax(2.35rem, 2.85rem));
  gap: 0.18rem;
}
.agency-desk .agency-profile-avail .icon-pick-row--2 .icon-pick-row__lbl,
.agency-desk .agency-profile-avail .icon-pick-row--3 .icon-pick-row__lbl,
.agency-desk .agency-profile-avail__from-lbl {
  position: static;
  width: 100%;
  height: auto;
  margin: 0;
  clip: auto;
  overflow: hidden;
  white-space: nowrap;
  font-size: 0.52rem;
  line-height: 1.05;
  max-height: none;
  display: block;
  -webkit-line-clamp: unset;
}
.agency-profile-avail__from {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.18rem;
}
.agency-profile-avail__from input {
  width: 8.6rem;
  height: var(--sky-icon-pick-face, 2.45rem);
  min-height: var(--sky-icon-pick-face, 2.45rem);
}
.agency-profile-avail__from-lbl {
  text-align: center;
  font-weight: 650;
  letter-spacing: 0.01em;
  opacity: 0.62;
  color: inherit;
}
.agency-avail-pick--locked {
  pointer-events: none;
}
.agency-avail-pick--locked .icon-pick-row__opt:not(.icon-pick-row__opt--on) {
  opacity: 0.42;
  cursor: not-allowed;
}
.crew-job-rank-block.is-locked,
.crew-type-pick.is-locked,
.rank-pick.is-locked {
  pointer-events: none;
}
.crew-type-pick.is-locked .crew-type-pick__opt:not(:has(input:checked)),
.rank-pick.is-locked .rank-pick__opt:not(:has(input:checked)) {
  opacity: 0.42;
}
.agency-type-hours input[readonly] {
  opacity: 0.72;
  cursor: default;
}
