/* Selected Modern aviation direction. Shared application behavior stays in app.js. */
:root {
  --bg:#f2f6fa; --ink:#102c43; --muted:#5a7084; --line:#dce5ed;
  --accent:#135ce6; --tint:#e9f1ff;
  --hero-bg:#08213d; --hero-text:#e9f5ff; --hero-muted:#d2e4f4;
  --ice:#a1e5ff; --apricot:#ffbb74; --apricot-ink:#102c43;
  --tile-teal:#e1f6f4; --tile-teal-ink:#126f74;
  --tile-gold:#fff0da; --tile-gold-ink:#986122;
  --tile-violet:#ece9fc; --tile-violet-ink:#6855a6;
  --banner:#dfeeff;
  --header-gap:16px; --header-height:78px;
}
@media(prefers-color-scheme:dark) {
  :root {--bg:#101c27;--ink:#e8f0f6;--muted:#a0b3c2;--line:#304351;--accent:#8facff;--tint:#213550;--tile-teal:#193d40;--tile-teal-ink:#96ddd7;--tile-gold:#3d3325;--tile-gold-ink:#f1c990;--tile-violet:#312c49;--tile-violet-ink:#c5b4f5;--banner:#1a334a;}
}
:root[data-theme="light"] {--bg:#f2f6fa;--ink:#102c43;--muted:#5a7084;--line:#dce5ed;--accent:#135ce6;--tint:#e9f1ff;--tile-teal:#e1f6f4;--tile-teal-ink:#126f74;--tile-gold:#fff0da;--tile-gold-ink:#986122;--tile-violet:#ece9fc;--tile-violet-ink:#6855a6;--banner:#dfeeff;}
:root[data-theme="dark"] {--bg:#101c27;--ink:#e8f0f6;--muted:#a0b3c2;--line:#304351;--accent:#8facff;--tint:#213550;--tile-teal:#193d40;--tile-teal-ink:#96ddd7;--tile-gold:#3d3325;--tile-gold-ink:#f1c990;--tile-violet:#312c49;--tile-violet-ink:#c5b4f5;--banner:#1a334a;}
html {scroll-padding-top:calc(var(--header-height) + var(--header-gap) + 18px);}
.site-header {position:sticky;top:var(--header-gap);z-index:15;width:calc(100% - 48px);max-width:1240px;margin:var(--header-gap) auto 0;padding:14px 22px;gap:18px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);}
@supports (backdrop-filter:blur(16px)) {
  .site-header {background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
}
.site-header nav {gap:6px;}
.site-header nav a {padding:10px 13px;border:0;border-radius:10px;white-space:nowrap;}
.site-header nav a:hover {background:var(--tint);color:var(--ink);text-decoration:none;}
.site-header nav a.active {background:var(--tint);color:var(--accent);}
.menu-toggle {display:none;}
.application-panel {top:calc(var(--header-height) + var(--header-gap) + 18px);}
.brand {font-size:24px;letter-spacing:-.6px;gap:10px;}
.brand-light {display:inline;font-size:inherit;letter-spacing:inherit;font-weight:400;}
.brand-plane {width:36px;height:36px;fill:var(--accent);flex:none;}
.nav-count {border-radius:50%;}
.theme-button {border-radius:7px;}
.hero {position:relative;isolation:isolate;overflow:hidden;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:44px 40px 24px;margin-top:18px;border-radius:16px;background:var(--hero-bg);color:var(--hero-text);}
.hero-art {position:absolute;inset:0;z-index:-2;}
.hero-art img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 62%;}
.hero::after {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#061e3bf2 0%,#061e3b85 46%,#061e3b00 78%);pointer-events:none;}
.hero-copy {grid-column:1;gap:18px;}
.hero-copy .eyebrow {color:var(--ice);font-size:10px;letter-spacing:2px;}
.hero h1 {font-size:clamp(45px,4.5vw,64px);line-height:1.03;letter-spacing:-2.5px;}
.hero h1 span {color:var(--ice);}
.hero-copy>p:last-child {color:var(--hero-muted);font-size:15px;max-width:37ch;}
.hero-caption {position:absolute;right:28px;top:30px;font-family:"Plex Mono",monospace;font-size:9px;letter-spacing:1.6px;color:var(--hero-text);}
.hero-caption::before {content:"";display:inline-block;width:18px;height:1px;background:currentColor;vertical-align:middle;margin-right:10px;}
.hero-search {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.9fr) minmax(0,1fr) auto;align-items:center;gap:0;padding:12px;border-radius:9px;background:var(--surface);color:var(--ink);box-shadow:0 12px 35px #05182c20;}
.hero-search>label {min-width:0;padding:2px 18px;gap:6px;border-right:1px solid var(--line);font-size:10px;}
.hero-search input,.hero-search select {width:100%;padding:4px 0;border:0;background:var(--surface);font-size:13px;border-radius:0;}
.hero-search select:disabled {color:var(--muted);opacity:.7;cursor:not-allowed;}
.hero-search .primary {margin-left:14px;background:var(--apricot);color:var(--apricot-ink);border-radius:6px;padding:16px 20px;font-size:13px;gap:18px;}
.hero-bottom {padding:0;border:0;gap:12px 24px;font-size:11px;color:var(--hero-muted);}
.hero-bottom strong {color:var(--hero-text);}
.hero-bottom .update-label {font-size:9px;}
.hero :focus-visible {outline-color:var(--ice);}
.hero-search :focus-visible {outline-color:var(--accent);}
.job-discovery {padding-top:22px;}
.role-shortcuts {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.role-shortcut {display:flex;align-items:center;gap:14px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);}
.role-shortcut:hover {text-decoration:none;border-color:var(--accent);}
.shortcut-icon {flex:none;width:42px;height:42px;display:grid;place-items:center;background:var(--tint);color:var(--accent);border-radius:9px;}
.shortcut-icon svg {width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;}
.role-shortcut:nth-child(2) .shortcut-icon {background:var(--tile-teal);color:var(--tile-teal-ink);}
.role-shortcut:nth-child(3) .shortcut-icon {background:var(--tile-gold);color:var(--tile-gold-ink);}
.role-shortcut:nth-child(4) .shortcut-icon {background:var(--tile-violet);color:var(--tile-violet-ink);}
.shortcut-copy {display:flex;flex-direction:column;gap:4px;min-width:0;}
.shortcut-copy strong {font-size:15px;font-weight:500;}
.shortcut-copy>span {font-size:11px;color:var(--muted);}
.shortcut-arrow {margin-left:auto;font-size:18px;color:var(--accent);}
.featured-advertisers {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);}
.featured-advertisers .eyebrow {font-size:9px;letter-spacing:0;max-width:16ch;color:var(--muted);flex:none;}
.featured-advertisers a {font-size:16px;line-height:1.4;font-weight:500;color:var(--muted);overflow-wrap:anywhere;}
#view-jobs {padding-top:36px;}
.search-layout {grid-template-columns:minmax(0,1fr);gap:24px;}
.filter-panel {position:static;}
.filter-panel details {padding:18px 22px;border-radius:10px;}
.filter-panel summary {font-size:14px;}
.filters {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:20px;}
.filters label:last-of-type {grid-column:auto;}
.filters .text-button {grid-column:1/-1;justify-self:start;padding:0;}
.filter-note {display:none;}
.board-toolbar {flex-direction:row;align-items:center;}
.jobs-list {grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;}
.jobs-list>.empty {grid-column:1/-1;}
.job-card {min-width:0;padding:24px;gap:16px;border-radius:12px;box-shadow:0 5px 16px #14365204;}
.job-card-heading {gap:10px;align-items:flex-start;}
.company-line {font-size:11px;gap:10px;line-height:1.5;}
.initials {width:42px;min-width:42px;height:42px;background:var(--tint);color:var(--accent);border:0;border-radius:9px;}
.job-card:nth-child(3n+2) .initials {background:var(--tile-teal);color:var(--tile-teal-ink);}
.job-card:nth-child(3n) .initials {background:var(--tile-violet);color:var(--tile-violet-ink);}
.job-card .save-button {font-size:10px;padding:7px;border-radius:6px;}
.job-card h3 {font-size:20px;line-height:1.35;}
.card-facts {font-size:12px;}
.tag {background:var(--tint);color:var(--accent);font-size:9px;border-radius:4px;}
.card-bottom {margin-top:auto;font-size:9px;gap:10px;}
.card-bottom a {font-size:12px;}
.job-summary,.job-detail,.application-panel,.advertiser-card {border-radius:12px;}
.shortlist-banner {display:flex;align-items:center;justify-content:space-between;gap:26px;padding:30px 32px;background:var(--banner);border-radius:12px;margin-top:32px;}
.shortlist-banner>div {display:flex;flex-direction:column;gap:8px;}
.shortlist-banner h2 {font-size:25px;}
.shortlist-banner p {font-size:13px;color:var(--muted);}
.shortlist-banner .primary {font-size:13px;}
body[data-view="saved"] .hero {padding:0;background:none;overflow:visible;}
body[data-view="saved"] .hero-art,body[data-view="saved"] .hero-caption,body[data-view="saved"] .hero::after {display:none;}
body[data-view="saved"] .hero-search {border:1px solid var(--line);}
@media(max-width:1050px) {
  .hero {padding:36px 28px 22px;gap:26px;}
  .hero h1 {font-size:52px;}
  .hero-caption {font-size:8px;}
  .hero-search {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .hero-search .primary {grid-column:1/-1;margin:0;}
  .hero-search>label {padding-inline:10px;}
  .hero-search>label:nth-child(even) {border:0;}
  .role-shortcut {padding:16px;gap:10px;}
  .shortcut-icon {width:34px;height:34px;}
  .shortcut-copy strong {font-size:13px;}
  .shortcut-copy>span {font-size:10px;}
  .shortcut-arrow {display:none;}
  .featured-advertisers {gap:20px;}
  .featured-advertisers a {font-size:13px;}
  .jobs-list {grid-template-columns:repeat(2,minmax(0,1fr));}
  .filters {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:700px) {
  .brand {font-size:23px;}
  .brand-plane {width:31px;height:31px;}
  .hero {grid-template-columns:1fr;padding:30px 22px 20px;gap:24px;margin-top:18px;border-radius:14px;}
  .hero-copy {max-width:300px;gap:18px;}
  .hero h1 {font-size:43px;letter-spacing:-1.8px;}
  .hero-copy .eyebrow {font-size:8px;letter-spacing:1.4px;}
  .hero-copy>p:last-child {font-size:13px;}
  .hero-art {bottom:210px;}
  .hero-art img {object-position:67% top;}
  .hero::after {background:linear-gradient(90deg,#061e3bef,#061e3b75);}
  .hero-caption {display:none;}
  .hero-search {grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px;gap:12px;}
  .hero-search>label {padding:0;}
  .hero-search>label:first-child {grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line);padding-bottom:10px;}
  .hero-search>label:nth-child(2) {grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:10px;}
  .hero-search input {font-size:14px;}
  .hero-search select {font-size:12px;}
  .hero-search .primary {padding:12px;}
  .hero-bottom {gap:6px;font-size:10px;flex-direction:column;align-items:flex-start;}
  .hero-bottom .update-label {font-size:8px;}
  .job-discovery {padding-top:16px;}
  .role-shortcuts {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .role-shortcut {padding:14px;gap:10px;}
  .shortcut-icon {width:31px;height:31px;}
  .shortcut-icon svg {width:18px;height:18px;}
  .shortcut-copy strong {font-size:12px;}
  .shortcut-copy>span {font-size:9px;}
  .featured-advertisers {flex-wrap:wrap;gap:12px 20px;padding:20px 0;}
  .featured-advertisers .eyebrow {width:100%;max-width:none;}
  .featured-advertisers a {max-width:45%;font-size:12px;}
  #view-jobs {padding-top:28px;}
  .section-heading {flex-wrap:wrap;}
  .filters {grid-template-columns:repeat(2,minmax(0,1fr));}
  .filters label:last-of-type {grid-column:1/-1;}
  .filter-panel details {padding:16px;}
  .jobs-list {grid-template-columns:minmax(0,1fr);}
  .job-card {padding:21px;gap:14px;}
  .job-card .company-line {font-size:12px;}
  .shortlist-banner {padding:24px;flex-direction:column;align-items:flex-start;gap:20px;}
  .shortlist-banner h2 {font-size:23px;}
}

@media(max-width:900px) {
  :root {--header-gap:10px;}
  .site-header {width:calc(100% - 28px);padding:10px 14px;gap:10px;flex-wrap:wrap;border-radius:18px;}
  .site-header .brand {font-size:22px;gap:8px;margin-right:auto;}
  .site-header .brand-plane {width:30px;height:30px;}
  .site-header .theme-button {order:1;width:42px;height:42px;padding:0;font-size:0;border-radius:12px;}
  .site-header .theme-button::before {content:'◐';font-size:24px;line-height:1;}
  .site-header .menu-toggle:not([hidden]) {order:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:42px;height:42px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);}
  .menu-toggle span {display:block;width:20px;height:2px;background:currentColor;}
  .menu-toggle[aria-expanded="true"] span:first-child {transform:translateY(4px) rotate(45deg);}
  .menu-toggle[aria-expanded="true"] span:last-child {transform:translateY(-4px) rotate(-45deg);}
  .site-header nav {order:3;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid var(--line);padding-top:10px;}
  .site-header nav a {font-size:13px;white-space:normal;min-height:44px;display:flex;align-items:center;gap:5px;}
  .site-header.menu-ready:not(.menu-open) nav {display:none;}
}
@media(max-width:360px) {
  .hero {padding-inline:18px;}
  .hero h1 {font-size:37px;}
  .shortcut-icon {display:none;}
  .filters {grid-template-columns:1fr;}
  .job-card {padding:18px;}
}

.quality-note{max-width:none;padding:12px 16px;margin-bottom:18px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:12px}.quality-note .text-button{display:inline;padding:0;color:inherit;text-decoration:underline}

/* Job descriptions retain their wording, with readable type and native disclosures. */
.job-description {min-width:0;display:flex;flex-direction:column;gap:20px;}
.description-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.description-heading h2 {font-size:24px;}
.description-expand {font-size:13px;padding:10px 0;}
.description-section {min-width:0;border-top:1px solid var(--line);}
.description-section>summary {display:flex;align-items:center;gap:14px;min-height:72px;padding:18px 0;cursor:pointer;list-style:none;}
.description-section>summary::-webkit-details-marker {display:none;}
.description-section>summary h3 {flex:1;font-size:17px;line-height:1.45;letter-spacing:0;text-wrap:pretty;overflow-wrap:anywhere;}
.description-count {flex:none;color:var(--muted);font-size:12px;white-space:nowrap;}
.description-toggle {display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--accent);font-size:22px;line-height:1;}
.description-section[open]>summary .description-toggle {font-size:0;}
.description-section[open]>summary .description-toggle::before {content:'−';font-size:22px;}
.description-copy {max-width:72ch;font-size:16px;line-height:1.8;overflow-wrap:anywhere;white-space:normal;}
.description-copy p {max-width:none;margin-bottom:18px;}
.description-copy p:last-child {margin-bottom:0;}
ul.description-copy {margin:0;padding:0 0 0 22px;}
.description-copy li {padding-left:6px;margin-bottom:13px;}
.description-copy li::marker {color:var(--accent);}
.description-section[open]>.description-copy {margin-bottom:24px;}
.description-more {border-top:1px solid var(--line);padding-top:14px;}
.description-more>summary {padding:10px 0;cursor:pointer;color:var(--accent);font-size:14px;}
.description-more[open]>.description-copy {margin-top:18px;}
@media(max-width:700px) {
  .job-page>.job-summary {order:-2;}
  .job-description {gap:16px;}
  .description-heading h2 {font-size:22px;}
  .description-section>summary {gap:8px;min-height:68px;}
  .description-section>summary h3 {font-size:16px;}
  .description-count {font-size:11px;}
  .description-toggle {width:24px;height:24px;}
}
@media print {
  .description-section::details-content,.description-more::details-content {content-visibility:visible;display:block;}
  .description-expand,.description-toggle {display:none;}
}

/* Official marks retain their colours on a reviewed, theme-independent surface. */
.company-mark.has-logo {display:grid;position:relative;flex:0 0 88px;width:88px;min-width:88px;height:44px;padding:6px;background:#fff;color:#102c43;border:1px solid var(--line);border-radius:8px;}
.company-mark.has-logo[data-background="dark"] {background:#102c43;color:#fff;}
.company-mark.has-logo img {grid-area:1/1;width:100%;height:100%;min-height:0;object-fit:contain;opacity:0;}
.company-mark.logo-loaded img {opacity:1;}
.company-mark-fallback {grid-area:1/1;}
.detail-head .company-mark.has-logo,.advertiser-card .company-mark.has-logo {flex-basis:120px;width:120px;min-width:120px;height:60px;padding:8px;}
.advertiser-card .company-mark.has-logo {flex-basis:auto;}
.company-line .company-mark.has-logo {background:#fff;color:#102c43;}
.company-line .company-mark.has-logo[data-background="dark"] {background:#102c43;color:#fff;}
@media(max-width:360px){.company-line .company-mark.has-logo {display:grid;}.detail-head {flex-wrap:wrap;}}
