:root {
    color-scheme: dark;
    --bg: #07101d;
    --panel: #101c2c;
    --panel-2: #142337;
    --line: #263b55;
    --text: #f3f7fc;
    --muted: #97abc3;
    --blue: #42a5ff;
    --green: #37ca83;
    --yellow: #f2bf4a;
    --red: #f36f74;
    --gray: #8592a4;
    --shadow: 0 20px 60px rgba(0, 0, 0, .28);
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
}

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% -10%, rgba(32, 101, 157, .28), transparent 35rem),
        var(--bg);
    color: var(--text);
    font-family: "Segoe UI", Inter, system-ui, sans-serif;
}

a {
    color: inherit;
}

button,
input,
select {
    font: inherit;
}

.site-header {
    position: sticky;
    z-index: 20;
    top: 0;
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px clamp(20px, 5vw, 72px);
    border-bottom: 1px solid rgba(66, 87, 114, .55);
    background: rgba(7, 16, 29, .86);
    backdrop-filter: blur(18px);
}

.brand img {
    display: block;
    width: min(360px, 48vw);
    max-height: 48px;
    object-fit: contain;
    object-position: left center;
}

.top-nav,
.top-nav form {
    display: flex;
    align-items: center;
    gap: 18px;
}

.top-nav a,
.link-button {
    border: 0;
    background: none;
    color: #c1cee0;
    cursor: pointer;
    text-decoration: none;
}

.top-nav a:hover,
.link-button:hover {
    color: white;
}

.user-name {
    color: var(--muted);
}

.page-shell {
    width: min(1460px, calc(100% - 32px));
    min-height: calc(100vh - 140px);
    margin: 0 auto;
    padding: 44px 0 60px;
}

footer {
    padding: 22px;
    color: #71869f;
    font-size: 13px;
    text-align: center;
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 28px;
}

.page-heading h1 {
    margin: 7px 0 8px;
    font-size: clamp(32px, 5vw, 54px);
    letter-spacing: -.04em;
}

.page-heading p,
.section-title p {
    margin: 0;
    color: var(--muted);
}

.eyebrow {
    color: #77bcff;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.environment-badge {
    padding: 9px 14px;
    border: 1px solid rgba(66, 165, 255, .35);
    border-radius: 999px;
    background: rgba(66, 165, 255, .1);
    color: #a8d6ff;
    font-size: 13px;
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    gap: 14px;
    margin: 0 0 26px;
}

.stat-card {
    position: relative;
    overflow: hidden;
    min-height: 112px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(22, 38, 59, .96), rgba(13, 25, 41, .96));
    box-shadow: 0 12px 34px rgba(0, 0, 0, .16);
    text-decoration: none;
}

.stat-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: currentColor;
    content: "";
}

.stat-card span {
    display: block;
    color: #aebdd0;
    font-size: 14px;
}

.stat-card strong {
    display: block;
    margin-top: 8px;
    color: var(--text);
    font-size: 34px;
}

.current { color: var(--green); }
.new { color: var(--blue); }
.changed { color: var(--yellow); }
.expired { color: var(--red); }
.deleted { color: var(--gray); }

.section-card,
.login-card {
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(15, 28, 45, .94);
    box-shadow: var(--shadow);
}

.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 26px;
    border-bottom: 1px solid var(--line);
}

.section-title h2 {
    margin: 0 0 4px;
}

.dashboard-top-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(300px, .8fr);
    gap: 18px;
    margin-bottom: 24px;
}

.start-card,
.presence-card,
.jobs-card {
    margin-bottom: 24px;
}

.dashboard-top-grid .section-card {
    margin-bottom: 0;
}

.sync-form {
    padding: 24px 26px;
}

.icao-input-row {
    display: grid;
    grid-template-columns: minmax(200px, 1fr) auto;
    align-items: end;
    gap: 14px;
}

.field-group {
    display: grid;
    gap: 8px;
}

.field-group label,
.delete-form label {
    color: #afbed0;
    font-size: 13px;
    font-weight: 650;
}

.field-group input,
.delete-form input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #344b68;
    border-radius: 11px;
    outline: none;
    background: #0b1726;
    color: white;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.field-group input:focus,
.delete-form input:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(66, 165, 255, .13);
}

.field-error {
    color: #ffc3c6;
    font-size: 13px;
}

.sync-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 18px;
}

.sync-options label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #bfd0e3;
    cursor: pointer;
    font-size: 13px;
}

.sync-options input {
    width: 17px;
    height: 17px;
    accent-color: var(--blue);
}

.form-hint {
    margin: 16px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.online-count {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(55, 202, 131, .45);
    border-radius: 50%;
    color: var(--green);
    font-weight: 800;
}

.presence-list {
    display: grid;
    gap: 2px;
    padding: 14px 20px 20px;
}

.presence-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 6px;
    border-bottom: 1px solid rgba(43, 64, 92, .65);
}

.presence-item:last-child {
    border-bottom: 0;
}

.presence-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 0 5px rgba(55, 202, 131, .11);
}

.presence-item strong,
.presence-item span {
    display: block;
}

.presence-item span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.airline-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
    gap: 18px;
    padding: 24px;
}

.airline-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 18px;
    padding: 22px;
    border: 1px solid #2b405c;
    border-radius: 16px;
    background: linear-gradient(145deg, var(--panel-2), #0d1929);
}

.airline-code {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid rgba(66, 165, 255, .44);
    border-radius: 15px;
    background: rgba(66, 165, 255, .12);
    color: #92ccff;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .06em;
}

.airline-code.large {
    width: 78px;
    height: 78px;
    font-size: 21px;
}

.airline-main h3 {
    margin: 4px 0 6px;
    font-size: 21px;
}

.airline-main p {
    margin: 0;
    color: var(--muted);
}

.mini-status,
.airline-footer,
.dataset-meta {
    grid-column: 1 / -1;
}

.dataset-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}

.dataset-meta div {
    padding: 11px 12px;
    border: 1px solid rgba(43, 64, 92, .7);
    border-radius: 10px;
    background: rgba(7, 16, 29, .35);
}

.dataset-meta dt {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.dataset-meta dd {
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 650;
}

.mini-status {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.status-pill {
    display: inline-flex;
    padding: 5px 9px;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 12%, transparent);
    font-size: 12px;
    font-weight: 700;
}

.airline-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 16px;
    border-top: 1px solid #2b405c;
    color: var(--muted);
    font-size: 13px;
}

.primary-link,
.back-link {
    color: #91cbff;
    font-weight: 650;
    text-decoration: none;
}

.primary-link:hover,
.back-link:hover {
    color: white;
}

.back-link {
    display: inline-block;
    margin-bottom: 22px;
}

.airline-heading {
    align-items: center;
}

.airline-identity {
    display: flex;
    align-items: center;
    gap: 20px;
}

.primary-button,
.filter-form button,
.secondary-button,
.danger-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #238de9, #55b4ff);
    color: white;
    cursor: pointer;
    font-weight: 750;
    text-decoration: none;
    box-shadow: 0 10px 30px rgba(38, 145, 235, .25);
}

.secondary-button {
    border: 1px solid #365372;
    background: #14263a;
    box-shadow: none;
    color: #b9d8f5;
}

.heading-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.dataset-info-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin: -10px 0 24px;
    padding: 13px 16px;
    border: 1px solid rgba(43, 64, 92, .8);
    border-radius: 12px;
    background: rgba(15, 28, 45, .65);
    color: var(--muted);
    font-size: 13px;
}

.primary-button:hover,
.filter-form button:hover {
    filter: brightness(1.08);
}

.compact .stat-card {
    min-height: 90px;
    padding: 15px 18px;
}

.compact .stat-card strong {
    font-size: 28px;
}

.filters-title {
    align-items: flex-end;
}

.filter-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.filter-form input,
.filter-form select,
.login-form input {
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid #344b68;
    border-radius: 10px;
    outline: none;
    background: #0b1726;
    color: white;
}

.filter-form input:focus,
.filter-form select:focus,
.login-form input:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(66, 165, 255, .13);
}

.filter-form a {
    color: var(--muted);
    font-size: 13px;
}

.table-wrap {
    overflow: auto;
}

table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
}

th,
td {
    padding: 14px 16px;
    border-bottom: 1px solid #243750;
    text-align: left;
    vertical-align: middle;
}

th {
    position: sticky;
    z-index: 2;
    top: 0;
    background: #111f32;
    color: #9fb2ca;
    font-size: 12px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

tbody tr {
    transition: background .15s ease;
}

tbody tr:hover {
    background: rgba(83, 125, 170, .09);
}

.route-status {
    color: currentColor;
}

.route-aktuell { color: var(--green); }
.route-neu { color: var(--blue); }
.route-änderung { color: var(--yellow); }
.route-abgelaufen { color: var(--red); }
.route-gelöscht { color: var(--gray); }
.route-aktuell td:not(:first-child),
.route-neu td:not(:first-child),
.route-änderung td:not(:first-child),
.route-abgelaufen td:not(:first-child),
.route-gelöscht td:not(:first-child) {
    color: var(--text);
}

.route-arrow {
    color: #6f88a5;
}

.comment-cell {
    max-width: 360px;
    color: #b3c1d2 !important;
}

.empty-state {
    padding: 42px;
    color: var(--muted);
    text-align: center;
}

.empty-state.small {
    padding: 24px 10px;
}

.job-list {
    display: grid;
}

.job-row {
    display: grid;
    grid-template-columns: 110px 60px 160px minmax(180px, 1fr) 130px 140px;
    align-items: center;
    gap: 14px;
    padding: 14px 24px;
    border-bottom: 1px solid #243750;
    color: #c5d3e3;
    font-size: 13px;
    text-decoration: none;
}

.job-row:hover {
    background: rgba(83, 125, 170, .09);
}

.job-status {
    display: inline-flex;
    width: max-content;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.job-status.large {
    padding: 9px 14px;
    font-size: 13px;
}

.status-queued { color: var(--blue); }
.status-running { color: var(--yellow); }
.status-success { color: var(--green); }
.status-failed { color: var(--red); }

.job-progress-card {
    margin-bottom: 20px;
    padding: 22px 24px;
}

.job-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
}

.job-progress-head strong,
.job-progress-head span {
    display: block;
}

.job-progress-head span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.progress-track {
    overflow: hidden;
    height: 10px;
    border-radius: 999px;
    background: #07111e;
}

.progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #238de9, #52d49a);
    transition: width .3s ease;
}

.job-log {
    overflow: auto;
    min-height: 320px;
    max-height: 62vh;
    margin: 0;
    padding: 22px 24px;
    color: #c5d4e4;
    font: 13px/1.55 "Cascadia Mono", Consolas, monospace;
    white-space: pre-wrap;
}

.danger-zone {
    margin-top: 24px;
    border: 1px solid rgba(243, 111, 116, .38);
    border-radius: 14px;
    background: rgba(243, 111, 116, .05);
}

.danger-zone summary {
    padding: 16px 18px;
    color: #ffc3c6;
    cursor: pointer;
    font-weight: 700;
}

.danger-zone > div {
    padding: 0 18px 18px;
    color: #c7aeb2;
}

.delete-form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto;
    align-items: end;
    gap: 12px;
    max-width: 620px;
}

.delete-form label {
    grid-column: 1 / -1;
}

.danger-button {
    background: linear-gradient(135deg, #ae3440, #ee6870);
    box-shadow: 0 10px 30px rgba(190, 53, 65, .2);
}

.dashboard-delete {
    grid-column: 1 / -1;
    padding-top: 2px;
    text-align: right;
}

.dashboard-delete summary {
    color: #f69a9f;
    cursor: pointer;
    font-weight: 650;
    list-style: none;
}

.dashboard-delete summary::-webkit-details-marker {
    display: none;
}

.dashboard-delete[open] {
    width: 100%;
    padding: 14px;
    border: 1px solid rgba(243, 111, 116, .35);
    border-radius: 12px;
    background: #101b2a;
    text-align: left;
}

.dashboard-delete form {
    display: grid;
    gap: 9px;
}

.dashboard-delete label {
    color: #d5b7ba;
    font-size: 12px;
}

.dashboard-delete form > div {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto;
    gap: 9px;
}

.dashboard-delete input {
    min-width: 0;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid #6d3f48;
    border-radius: 9px;
    outline: none;
    background: #0b1726;
    color: white;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.compact-button {
    min-height: 40px;
    padding: 0 14px;
    font-size: 12px;
}

.messages {
    margin-bottom: 20px;
}

.message {
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--panel);
}

.message.error {
    border-color: rgba(243, 111, 116, .5);
    color: #ffc3c6;
}

.message.success {
    border-color: rgba(55, 202, 131, .45);
    color: #a9f1ce;
}

.welcome-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 34px;
}

.welcome-heading h1 {
    margin: 8px 0 8px;
    font-size: clamp(38px, 6vw, 68px);
    letter-spacing: -.055em;
}

.welcome-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 18px;
}

.welcome-presence {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 15px;
    border: 1px solid rgba(55, 202, 131, .35);
    border-radius: 999px;
    background: rgba(55, 202, 131, .07);
    color: #b9e8d2;
    font-size: 13px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 28px;
}

.module-tile {
    position: relative;
    display: grid;
    min-height: 210px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: end;
    gap: 22px;
    overflow: hidden;
    padding: 28px;
    border: 1px solid #2c4563;
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(24, 44, 68, .98), rgba(11, 23, 38, .98));
    box-shadow: 0 22px 55px rgba(0, 0, 0, .25);
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease;
}

.module-tile::after {
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: currentColor;
    content: "";
    filter: blur(80px);
    opacity: .12;
    right: -70px;
    top: -95px;
}

.module-tile:hover {
    border-color: currentColor;
    transform: translateY(-4px);
}

.module-tile.capture { color: #53adff; }
.module-tile.fleet { color: #7bd8b0; }
.module-tile.export { color: #b38cff; }
.module-tile.storage { color: #ffb45f; }

.module-icon {
    display: grid;
    width: 66px;
    height: 66px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 19px;
    background: color-mix(in srgb, currentColor 12%, #0c1828);
    font-size: 19px;
    font-weight: 850;
    letter-spacing: .05em;
}

.module-copy strong,
.module-copy small {
    display: block;
}

.module-copy strong {
    margin-bottom: 9px;
    color: white;
    font-size: clamp(23px, 3vw, 32px);
}

.module-copy small {
    max-width: 540px;
    color: #a9bbd0;
    font-size: 14px;
    line-height: 1.55;
}

.module-arrow {
    color: white;
    font-size: 30px;
}

.dashboard-section {
    margin-top: 24px;
}

.dashboard-lower-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, .65fr);
    gap: 20px;
}

.dashboard-lower-grid .dashboard-section {
    margin-top: 0;
}

.dashboard-stats {
    margin: 0;
    padding: 22px;
}

.dashboard-stats .stat-card {
    min-width: 0;
}

.workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(320px, .75fr);
    align-items: start;
    gap: 20px;
}

.advanced-form,
.upload-form {
    display: grid;
    gap: 20px;
    padding: 24px 26px 28px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.primary-fields {
    grid-template-columns: minmax(150px, .55fr) minmax(130px, .4fr) minmax(240px, 1fr);
}

.numeric-grid {
    grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.wide-field {
    grid-column: span 2;
}

.advanced-form .field-group input,
.advanced-form .field-group select,
.mapping-row input,
.mapping-row select,
.upload-form input[type="file"] {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #344b68;
    border-radius: 10px;
    outline: none;
    background: #0b1726;
    color: white;
}

.field-group small,
.upload-form small,
.mapping-select small {
    color: var(--muted);
    font-size: 11px;
}

.option-panel {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.option-panel label {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 13px;
    border: 1px solid #2d445f;
    border-radius: 11px;
    background: #0c1929;
    color: #c3d3e5;
    cursor: pointer;
    font-size: 13px;
}

.option-panel input {
    width: 17px;
    height: 17px;
    accent-color: var(--blue);
}

.advanced-settings {
    border: 1px solid #2a405b;
    border-radius: 14px;
    background: rgba(7, 16, 29, .32);
}

.advanced-settings summary {
    padding: 15px 17px;
    color: #c9d8e9;
    cursor: pointer;
    font-weight: 700;
}

.advanced-settings .form-grid {
    padding: 5px 17px 18px;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.form-actions p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.live-job-stack {
    display: grid;
    gap: 12px;
    padding: 18px;
}

.live-job-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid #2a405b;
    border-radius: 13px;
    background: #0b1726;
    text-decoration: none;
}

.live-job-card > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.live-job-card p,
.live-job-card small {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.network-badge {
    display: inline-flex;
    width: max-content;
    align-items: center;
    padding: 5px 9px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.network-badge.large {
    padding: 9px 14px;
    font-size: 13px;
}

.network-waiting { color: var(--blue); }
.network-cache { color: #a9c6e2; }
.network-live { color: var(--green); }
.network-blocked,
.network-error { color: var(--red); }
.network-paused { color: var(--yellow); }

.status-pause_requested,
.status-paused,
.status-cancel_requested { color: var(--yellow); }
.status-cancelled { color: var(--gray); }

.job-control-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    margin-bottom: 20px;
}

.job-control-grid .job-progress-card {
    margin: 0;
}

.job-stage-progress {
    height: 12px;
}

.job-progress-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 8px;
    margin-top: 16px;
}

.job-progress-metrics div {
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(5, 18, 32, .38);
}

.job-progress-metrics span,
.job-progress-metrics strong {
    display: block;
}

.job-progress-metrics span {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 10px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.job-progress-metrics strong {
    overflow: hidden;
    color: #f4f8fc;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.transfer-stats {
    display: flex;
    gap: 22px;
    margin-top: 16px;
    color: var(--muted);
    font-size: 12px;
}

.transfer-stats strong {
    color: white;
}

.run-controls {
    display: flex;
    min-width: 250px;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding: 20px;
}

.run-controls form,
.run-controls button {
    width: 100%;
}

.run-controls small {
    color: var(--muted);
    line-height: 1.45;
}

.module-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
    padding: 15px 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(15, 28, 45, .82);
}

.upload-form label,
.mapping-select label {
    color: #afbed0;
    font-size: 13px;
    font-weight: 650;
}

.fleet-workspace {
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
}

.summary-number {
    padding: 28px 24px 0;
    color: #8dcaff;
    font-size: 64px;
    font-weight: 850;
    letter-spacing: -.05em;
}

.summary-caption {
    margin: 0;
    padding: 0 24px 28px;
    color: var(--muted);
}

.mapping-list {
    display: grid;
}

.mapping-row {
    display: grid;
    grid-template-columns: 130px minmax(130px, .55fr) minmax(280px, 1.4fr) auto;
    align-items: end;
    gap: 18px;
    padding: 16px 22px;
    border-bottom: 1px solid #243750;
}

.mapping-row:last-child {
    border-bottom: 0;
}

.mapping-code strong,
.mapping-code span,
.mapping-row > div > small,
.mapping-row > div > strong {
    display: block;
}

.mapping-code strong {
    font-size: 22px;
}

.mapping-code span,
.mapping-row > div > small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.mapping-select {
    display: grid;
    gap: 6px;
}

.export-summary,
.storage-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 22px;
}

.summary-chip,
.storage-meter-card {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(145deg, var(--panel-2), #0d1929);
}

.summary-chip span,
.summary-chip strong {
    display: block;
}

.summary-chip span {
    color: var(--muted);
    font-size: 12px;
}

.summary-chip strong {
    margin-top: 8px;
    font-size: 25px;
}

.summary-chip.rejected strong { color: var(--red); }
.summary-chip.ready strong { color: var(--green); }

.storage-overview {
    grid-template-columns: minmax(360px, 2fr) repeat(2, minmax(180px, .6fr));
}

.storage-meter-head,
.storage-numbers {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.storage-meter-head span,
.storage-numbers {
    color: var(--muted);
    font-size: 12px;
}

.storage-meter-head strong {
    display: block;
    margin-top: 4px;
    color: white;
    font-size: 22px;
}

.storage-meter {
    overflow: hidden;
    height: 12px;
    margin: 18px 0 10px;
    border-radius: 999px;
    background: #07111e;
}

.storage-meter span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--green), var(--blue));
}

.decision-form {
    display: flex;
    gap: 6px;
}

.decision-form button {
    padding: 6px 9px;
    border: 1px solid #39516d;
    border-radius: 8px;
    background: #101e30;
    color: #aebed0;
    cursor: pointer;
    font-size: 11px;
}

.decision-form .selected.include {
    border-color: var(--green);
    color: var(--green);
}

.decision-form .selected.exclude {
    border-color: var(--red);
    color: var(--red);
}

.route-rejected {
    opacity: .58;
    background: rgba(243, 111, 116, .06);
}

.route-status-row td:not(:first-child) {
    color: var(--text);
}

.route-status-row td:first-child .route-status {
    color: inherit;
}

.route-row-current { color: var(--green); }
.route-row-new { color: var(--blue); }
.route-row-changed { color: var(--yellow); }
.route-row-expired { color: var(--red); }
.route-row-deleted { color: var(--gray); }

.login-layout {
    display: grid;
    min-height: calc(100vh - 240px);
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
    align-items: center;
    gap: clamp(40px, 8vw, 120px);
    width: min(1120px, 100%);
    margin: 0 auto;
}

.login-copy h1 {
    margin: 12px 0 18px;
    font-size: clamp(42px, 7vw, 76px);
    letter-spacing: -.055em;
    line-height: .98;
}

.login-copy > p {
    max-width: 620px;
    color: #b8c7d9;
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.6;
}

.feature-list {
    display: grid;
    gap: 12px;
    margin: 30px 0 0;
    padding: 0;
    color: #c7d4e4;
    list-style: none;
}

.feature-list li::before {
    margin-right: 10px;
    color: var(--green);
    content: "✓";
}

.login-card {
    padding: clamp(26px, 5vw, 42px);
}

.login-logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 30px;
}

.login-logo img {
    width: 58px;
    height: 58px;
    border-radius: 13px;
}

.login-logo > div {
    min-width: 0;
}

.login-logo strong,
.login-logo span {
    display: block;
    overflow-wrap: anywhere;
}

.login-logo strong {
    font-size: 21px;
}

.login-logo span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 13px;
}

.login-card h2 {
    margin: 0 0 24px;
    font-size: 28px;
}

.login-form {
    display: grid;
    gap: 9px;
}

.login-form label {
    margin-top: 7px;
    color: #afbed0;
    font-size: 13px;
    font-weight: 650;
}

.login-form .primary-button {
    margin-top: 18px;
}

.form-error {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid rgba(243, 111, 116, .45);
    border-radius: 10px;
    background: rgba(243, 111, 116, .08);
    color: #ffc4c7;
    font-size: 14px;
}

@media (max-width: 900px) {
    .stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stat-grid .stat-card:last-child {
        grid-column: span 2;
    }

    .login-layout {
        grid-template-columns: 1fr;
    }

    .dashboard-top-grid {
        grid-template-columns: 1fr;
    }

    .module-grid,
    .dashboard-lower-grid,
    .workspace-grid,
    .job-control-grid {
        grid-template-columns: 1fr;
    }

    .numeric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mapping-row {
        grid-template-columns: 100px 1fr;
    }

    .mapping-select {
        grid-column: 1 / -1;
    }

    .export-summary,
    .storage-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .job-row {
        grid-template-columns: 100px 55px 1fr;
    }

    .job-row span:nth-of-type(3),
    .job-row span:nth-of-type(4),
    .job-row time {
        display: none;
    }

    .login-copy {
        text-align: center;
    }

    .feature-list {
        justify-content: center;
        text-align: left;
    }

    .page-heading,
    .section-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .filter-form {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .site-header {
        position: relative;
        align-items: flex-start;
        flex-direction: column;
    }

    .brand img {
        width: min(100%, 320px);
    }

    .top-nav {
        width: 100%;
        flex-wrap: wrap;
    }

    .welcome-heading,
    .module-toolbar,
    .form-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .module-grid,
    .export-summary,
    .storage-overview {
        grid-template-columns: 1fr;
    }

    .module-tile {
        min-height: 180px;
        grid-template-columns: auto 1fr;
        padding: 21px;
        border-radius: 21px;
    }

    .module-arrow {
        display: none;
    }

    .primary-fields,
    .numeric-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .wide-field {
        grid-column: auto;
    }

    .mapping-row {
        grid-template-columns: 1fr;
    }

    .mapping-select {
        grid-column: auto;
    }

    .mapping-row button,
    .module-toolbar > * {
        width: 100%;
    }

    .page-shell {
        width: min(100% - 22px, 1460px);
        padding-top: 26px;
    }

    .stat-grid {
        grid-template-columns: 1fr;
    }

    .stat-grid .stat-card:last-child {
        grid-column: auto;
    }

    .airline-heading,
    .airline-identity {
        align-items: flex-start;
        flex-direction: column;
    }

    .download-button {
        width: 100%;
    }

    .heading-actions {
        width: 100%;
    }

    .heading-actions > * {
        width: 100%;
    }

    .icao-input-row,
    .delete-form {
        grid-template-columns: 1fr;
    }

    .icao-input-row .primary-button,
    .danger-button {
        width: 100%;
    }

    .dataset-meta {
        grid-template-columns: 1fr;
    }

    .airline-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-delete {
        width: 100%;
    }

    .dashboard-delete form > div {
        grid-template-columns: 1fr;
    }

    .job-row {
        grid-template-columns: 92px 48px 1fr;
        padding-inline: 14px;
    }

    .filter-form input,
    .filter-form select,
    .filter-form button {
        width: 100%;
    }
}

.dashboard-airline-workspaces {
    margin: 0 0 1.25rem;
    overflow: hidden;
}

.dashboard-airline-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    max-height: 380px;
    overflow-y: auto;
    padding: 1rem;
}

.dashboard-airline-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: .8rem;
    align-items: center;
    padding: .8rem;
    border: 1px solid #2e4963;
    border-radius: 11px;
    background: #0d1d2e;
    color: #dce9f5;
    text-decoration: none;
}

.dashboard-airline-card:hover,
.dashboard-airline-card.active {
    border-color: #3e8bc4;
    background: #112b42;
}

.dashboard-airline-card.active {
    box-shadow: inset 3px 0 #42a5ff;
}

.dashboard-airline-copy,
.dashboard-airline-copy strong,
.dashboard-airline-copy small {
    display: block;
    min-width: 0;
}

.dashboard-airline-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-airline-copy small {
    margin-top: .12rem;
    color: #8fa6bc;
}

.dashboard-airline-metrics {
    display: flex;
    gap: .35rem;
}

.dashboard-airline-metrics > span {
    display: grid;
    min-width: 56px;
    padding: .25rem .4rem;
    border: 1px solid #2d475f;
    border-radius: 7px;
    color: #89a0b7;
    font-size: .65rem;
    text-align: center;
}

.dashboard-airline-metrics strong {
    color: #eff8ff;
    font-size: .82rem;
}

@media (max-width: 1150px) {
    .dashboard-airline-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .dashboard-airline-card {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .dashboard-airline-metrics {
        grid-column: 1 / -1;
    }
}

/* v0.82: unified professional workspace shell and accessibility baseline. */
:root {
    --workspace-sidebar: 248px;
    --workspace-sidebar-collapsed: 74px;
    --workspace-topbar: 72px;
    --focus-ring: 0 0 0 3px rgba(66, 165, 255, .32);
}

body.has-workspace-shell {
    min-width: 320px;
    background: #0b1726;
    font-size: 15px;
    line-height: 1.5;
}

.workspace-shell {
    display: grid;
    grid-template-columns: var(--workspace-sidebar) minmax(0, 1fr);
    min-height: 100vh;
    transition: grid-template-columns .18s ease;
}

.workspace-sidebar {
    position: sticky;
    z-index: 60;
    top: 0;
    display: flex;
    width: var(--workspace-sidebar);
    height: 100vh;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid #263b55;
    background: #07111e;
    box-shadow: 12px 0 32px rgba(0, 0, 0, .12);
    transition: width .18s ease, transform .18s ease;
}

.workspace-sidebar-head {
    display: flex;
    min-height: var(--workspace-topbar);
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .8rem .75rem 1rem;
    border-bottom: 1px solid #20344c;
}

.workspace-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .75rem;
    color: var(--text);
    text-decoration: none;
}

.workspace-brand img {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    object-fit: contain;
}

.workspace-brand span,
.workspace-brand strong,
.workspace-brand small {
    display: block;
    white-space: nowrap;
}

.workspace-brand strong {
    font-size: 1.15rem;
    letter-spacing: .04em;
}

.workspace-brand small {
    color: #8fa5bd;
    font-size: .75rem;
}

.sidebar-collapse-button,
.workspace-mobile-menu,
.workspace-sidebar-scrim {
    border: 0;
    cursor: pointer;
}

.sidebar-collapse-button {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    place-items: center;
    border: 1px solid #2a4664;
    border-radius: 9px;
    background: #102238;
    color: #b8d1ea;
    font-size: 1.35rem;
}

.workspace-navigation {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 1.2rem;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 1rem .75rem;
}

.workspace-nav-group {
    display: grid;
    gap: .3rem;
}

.workspace-nav-system {
    margin-top: auto;
}

.workspace-nav-label {
    padding: 0 .65rem .25rem;
    color: #68829e;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
    white-space: nowrap;
}

.workspace-navigation a {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    min-height: 44px;
    align-items: center;
    gap: .7rem;
    padding: .4rem .65rem;
    border: 1px solid transparent;
    border-radius: 10px;
    color: #b8c8da;
    font-size: .91rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.workspace-navigation a:hover {
    border-color: #284764;
    background: #102238;
    color: #f4f9ff;
}

.workspace-navigation a.active {
    border-color: rgba(66, 165, 255, .45);
    background: rgba(42, 132, 211, .16);
    color: #e9f6ff;
    box-shadow: inset 3px 0 #42a5ff;
}

.workspace-nav-step,
.workspace-nav-icon {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #31516e;
    border-radius: 8px;
    color: #8fcaff;
    font-size: .78rem;
    font-weight: 900;
}

.workspace-navigation a.active .workspace-nav-step,
.workspace-navigation a.active .workspace-nav-icon {
    border-color: #42a5ff;
    background: rgba(66, 165, 255, .12);
    color: #cdeaff;
}

.workspace-sidebar-footer {
    display: grid;
    gap: .1rem;
    padding: .85rem 1rem;
    border-top: 1px solid #20344c;
    color: #8aa0b8;
    font-size: .75rem;
    white-space: nowrap;
}

.workspace-sidebar-footer small {
    color: #617b96;
    font-size: .7rem;
}

.workspace-stage {
    min-width: 0;
}

.workspace-topbar {
    position: sticky;
    z-index: 50;
    top: 0;
    display: flex;
    min-height: var(--workspace-topbar);
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem clamp(1rem, 2.4vw, 2.25rem);
    border-bottom: 1px solid #294057;
    background: rgba(12, 27, 44, .96);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .13);
    backdrop-filter: blur(16px);
}

.workspace-mobile-menu {
    display: none;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid #31516e;
    border-radius: 10px;
    background: #102238;
    color: var(--text);
    font-size: 1.2rem;
}

.workspace-airline-switcher {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .9rem;
}

.workspace-airline-switcher label {
    display: grid;
    min-width: min(28rem, 40vw);
    gap: .15rem;
}

.workspace-airline-switcher label > span {
    color: #8ba4bd;
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.workspace-airline-switcher select {
    width: 100%;
    min-height: 38px;
    padding: .4rem 2.2rem .4rem .7rem;
    border: 1px solid #35536f;
    border-radius: 9px;
    background: #0a1928;
    color: #f2f7fc;
    font-weight: 750;
}

.workspace-airline-facts {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: .35rem;
    align-items: baseline;
    color: #92a9c0;
    white-space: nowrap;
}

.workspace-airline-facts strong {
    color: #eaf5ff;
}

.workspace-airline-facts time {
    grid-column: 1 / -1;
    font-size: .72rem;
}

.workspace-topbar-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.process-center {
    position: relative;
}

.process-center > summary {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: .45rem;
    padding: .35rem .55rem;
    border: 1px solid #31516e;
    border-radius: 10px;
    background: #102238;
    color: #c5d7e8;
    cursor: pointer;
    font-size: .82rem;
    font-weight: 800;
    list-style: none;
}

.process-center > summary::-webkit-details-marker {
    display: none;
}

.process-center > summary strong {
    display: grid;
    min-width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #263d55;
    color: #c8d8e8;
    font-size: .72rem;
}

.process-center[data-has-processes] > summary {
    border-color: #2f9b77;
    background: rgba(31, 130, 95, .16);
    color: #a9efd3;
}

.process-center[data-has-processes] .process-center-icon {
    animation: vaas-process-spin 2.5s linear infinite;
}

@keyframes vaas-process-spin {
    to { transform: rotate(360deg); }
}

.process-center-panel {
    position: absolute;
    top: calc(100% + .6rem);
    right: 0;
    width: min(430px, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid #35516e;
    border-radius: 14px;
    background: #0d1c2c;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .38);
}

.process-center-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #294057;
}

.process-center-head strong,
.process-center-head small {
    display: block;
}

.process-center-head small {
    margin-top: .1rem;
    color: #8fa5bd;
    font-size: .74rem;
}

.live-indicator {
    padding: .2rem .45rem;
    border-radius: 999px;
    background: rgba(55, 202, 131, .13);
    color: #77e4af;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.process-center-list {
    display: grid;
    max-height: 420px;
    overflow-y: auto;
}

.process-center-list > a {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    padding: .85rem 1rem 1rem;
    border-bottom: 1px solid #20364c;
    color: #dbe8f5;
    text-decoration: none;
}

.process-center-list > a:hover {
    background: #12263a;
}

.process-center-list strong,
.process-center-list small {
    display: block;
}

.process-center-list small {
    overflow: hidden;
    margin-top: .1rem;
    color: #8fa5bd;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.process-type {
    padding: .22rem .4rem;
    border: 1px solid #356487;
    border-radius: 6px;
    color: #8ecfff;
    font-size: .62rem;
    font-weight: 900;
    text-transform: uppercase;
}

.process-type.api {
    border-color: #7358aa;
    color: #c5a9ff;
}

.process-percent {
    font-size: .75rem;
    font-weight: 900;
}

.process-mini-track {
    position: absolute;
    right: 1rem;
    bottom: .45rem;
    left: 1rem;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: #23384c;
}

.process-mini-track i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #42a5ff, #37ca83);
}

.process-center-empty {
    padding: 1.2rem;
    color: #8fa5bd;
    text-align: center;
}

.workspace-topbar .language-switcher {
    gap: .15rem;
    padding: .2rem;
    border: 1px solid #31516e;
    border-radius: 9px;
    background: #0b1a29;
}

.workspace-topbar .language-switcher button {
    min-width: 31px;
    min-height: 31px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #8fa5bd;
    font-size: .7rem;
    font-weight: 900;
}

.workspace-topbar .language-switcher button.active {
    background: #214262;
    color: #eef8ff;
}

.workspace-topbar .account-menu {
    position: relative;
}

.workspace-topbar .account-menu > summary {
    min-height: 42px;
    padding: .25rem .4rem;
    border: 1px solid transparent;
    border-radius: 10px;
}

.workspace-topbar .account-menu > summary:hover,
.workspace-topbar .account-menu[open] > summary {
    border-color: #31516e;
    background: #102238;
}

.workspace-topbar .account-dropdown {
    top: calc(100% + .55rem);
    right: 0;
    min-width: 240px;
}

.workspace-context-strip {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: .85rem clamp(1rem, 2.4vw, 2.25rem);
    border-bottom: 1px solid #2b465f;
    background: #10243a;
}

.workspace-context-strip > div:first-child {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .75rem;
}

.workspace-context-strip > div:first-child strong,
.workspace-context-strip > div:first-child small {
    display: block;
}

.workspace-context-strip > div:first-child small {
    color: #94abc2;
    font-size: .76rem;
}

.workspace-context-counts {
    display: flex;
    gap: .4rem;
}

.workspace-context-counts span {
    display: grid;
    min-width: 62px;
    padding: .3rem .5rem;
    border: 1px solid #31516e;
    border-radius: 8px;
    color: #8fa6bd;
    font-size: .67rem;
    text-align: center;
}

.workspace-context-counts strong {
    color: #eef8ff;
    font-size: .88rem;
}

.workspace-context-strip > a {
    padding: .55rem .8rem;
    border: 1px solid #3c8dca;
    border-radius: 9px;
    color: #a7d9ff;
    font-size: .8rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.has-workspace-shell .page-shell {
    width: min(1760px, calc(100% - clamp(2rem, 4.8vw, 4.5rem)));
    min-height: calc(100vh - var(--workspace-topbar) - 70px);
    margin: 0 auto;
    padding: clamp(1.5rem, 3vw, 2.5rem) 0 3.5rem;
}

.has-workspace-shell footer {
    padding: 1rem 2rem 1.5rem;
}

.workspace-sidebar-scrim {
    display: none;
}

.workspace-shell.sidebar-collapsed {
    grid-template-columns: var(--workspace-sidebar-collapsed) minmax(0, 1fr);
}

.workspace-shell.sidebar-collapsed .workspace-sidebar {
    width: var(--workspace-sidebar-collapsed);
}

.workspace-shell.sidebar-collapsed .workspace-brand span,
.workspace-shell.sidebar-collapsed .workspace-nav-label,
.workspace-shell.sidebar-collapsed .workspace-navigation a > span:last-child,
.workspace-shell.sidebar-collapsed .workspace-sidebar-footer {
    opacity: 0;
    pointer-events: none;
}

.workspace-shell.sidebar-collapsed .workspace-sidebar-head {
    justify-content: center;
    padding-inline: .5rem;
}

.workspace-shell.sidebar-collapsed .workspace-brand {
    display: none;
}

.workspace-shell.sidebar-collapsed .sidebar-collapse-button span {
    transform: rotate(180deg);
}

.workspace-shell.sidebar-collapsed .workspace-navigation {
    padding-inline: .55rem;
}

.workspace-shell.sidebar-collapsed .workspace-navigation a {
    grid-template-columns: 1fr;
    justify-items: center;
    padding-inline: .35rem;
}

.has-workspace-shell .page-heading h1 {
    font-size: clamp(2rem, 3.2vw, 2.8rem);
}

.has-workspace-shell .section-title h2,
.has-workspace-shell .dataset-action-heading h2 {
    font-size: 1.25rem;
}

.has-workspace-shell :where(p, label, input, select, textarea, button, td, th) {
    line-height: 1.45;
}

.has-workspace-shell :where(input, select, textarea, button, .primary-button, .secondary-button) {
    min-height: 40px;
}

.has-workspace-shell :where(button, a, input, select, textarea):focus-visible {
    outline: 2px solid #70bcff;
    outline-offset: 2px;
    box-shadow: var(--focus-ring);
}

.has-workspace-shell small {
    font-size: max(.74rem, 11px);
}

.has-workspace-shell table {
    font-size: .875rem;
}

.has-workspace-shell th {
    font-size: .75rem;
}

.has-workspace-shell .section-card {
    border-color: #2b435c;
    background: #102033;
    box-shadow: 0 16px 42px rgba(0, 0, 0, .16);
}

@media (max-width: 1100px) {
    .workspace-airline-facts,
    .workspace-topbar .account-copy,
    .process-center > summary > span:nth-child(2) {
        display: none;
    }

    .workspace-airline-switcher label {
        min-width: min(24rem, 43vw);
    }

    .workspace-context-strip {
        grid-template-columns: minmax(220px, 1fr) auto;
    }

    .workspace-context-counts {
        display: none;
    }
}

@media (max-width: 860px) {
    .workspace-shell,
    .workspace-shell.sidebar-collapsed {
        grid-template-columns: minmax(0, 1fr);
    }

    .workspace-sidebar,
    .workspace-shell.sidebar-collapsed .workspace-sidebar {
        position: fixed;
        width: min(280px, calc(100vw - 3rem));
        transform: translateX(-105%);
    }

    .workspace-shell.sidebar-mobile-open .workspace-sidebar {
        transform: translateX(0);
    }

    .workspace-mobile-menu {
        display: grid;
    }

    .sidebar-collapse-button {
        display: none;
    }

    .workspace-shell.sidebar-mobile-open .workspace-sidebar-scrim {
        position: fixed;
        z-index: 55;
        inset: 0;
        display: block;
        background: rgba(2, 8, 15, .66);
    }

    .workspace-shell.sidebar-collapsed .workspace-brand {
        display: flex;
    }

    .workspace-shell.sidebar-collapsed .workspace-brand span,
    .workspace-shell.sidebar-collapsed .workspace-nav-label,
    .workspace-shell.sidebar-collapsed .workspace-navigation a > span:last-child,
    .workspace-shell.sidebar-collapsed .workspace-sidebar-footer {
        opacity: 1;
        pointer-events: auto;
    }

    .workspace-shell.sidebar-collapsed .workspace-navigation a {
        grid-template-columns: 32px minmax(0, 1fr);
        justify-items: stretch;
    }

    .workspace-airline-switcher {
        flex: 1 1 auto;
    }

    .workspace-airline-switcher label {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 620px) {
    .workspace-topbar {
        gap: .5rem;
        padding-inline: .7rem;
    }

    .workspace-topbar .language-switcher,
    .workspace-topbar .account-chevron {
        display: none;
    }

    .workspace-airline-switcher label > span {
        display: none;
    }

    .workspace-airline-switcher select {
        max-width: 48vw;
    }

    .process-center-panel {
        position: fixed;
        top: calc(var(--workspace-topbar) + .5rem);
        right: .7rem;
        left: .7rem;
        width: auto;
    }

    .workspace-context-strip {
        grid-template-columns: 1fr;
    }

    .workspace-context-strip > a {
        text-align: center;
    }

    .has-workspace-shell .page-shell {
        width: calc(100% - 1.4rem);
        padding-top: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .workspace-shell,
    .workspace-sidebar,
    .process-center[data-has-processes] .process-center-icon {
        animation: none;
        transition: none;
    }
}

/* v0.82: high-volume route workbench and safe bulk review. */
.route-table-workbench {
    display: grid;
    gap: .75rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #2b435c;
    background: #0d1d2e;
}

.route-table-filter {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 150px auto auto;
    gap: .65rem;
    align-items: end;
}

.route-table-filter label {
    display: grid;
    gap: .25rem;
}

.route-table-filter label > span {
    color: #91a9c0;
    font-size: .72rem;
    font-weight: 800;
}

.route-table-filter input,
.route-table-filter select {
    width: 100%;
    padding: .55rem .7rem;
    border: 1px solid #34536f;
    border-radius: 8px;
    background: #091827;
    color: #edf7ff;
}

.route-table-filter > a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    color: #8ecfff;
    font-size: .8rem;
    font-weight: 800;
}

.route-bulk-action-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .75rem;
    border: 1px solid #32516d;
    border-radius: 10px;
    background: #11263a;
}

.route-bulk-selection,
.route-bulk-filtered {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.route-bulk-filtered {
    justify-content: flex-end;
    padding-left: .75rem;
    border-left: 1px solid #34516b;
}

.route-bulk-action-form span {
    margin-right: .2rem;
    color: #94abc2;
    font-size: .78rem;
    white-space: nowrap;
}

.route-bulk-action-form span strong {
    color: #f1f8ff;
}

.route-bulk-action-form button {
    min-height: 34px;
    padding: .35rem .6rem;
    border: 1px solid #3b6484;
    border-radius: 7px;
    background: #102b43;
    color: #b9ddfa;
    cursor: pointer;
    font-size: .75rem;
    font-weight: 800;
}

.route-bulk-action-form button[value="INCLUDE"] {
    border-color: #278a68;
    background: rgba(39, 138, 104, .15);
    color: #8ce5bf;
}

.route-bulk-action-form button[value="IGNORE"] {
    border-color: #846b33;
    color: #f3cf78;
}

.route-bulk-action-form button:disabled {
    opacity: .42;
    cursor: not-allowed;
}

.route-reconcile-row {
    min-width: 1430px;
    grid-template-columns: 34px 130px 70px 100px 150px 150px 150px 85px minmax(330px, 1fr);
    font-size: .82rem;
}

.route-select-cell {
    display: grid;
    place-items: center;
}

.route-select-cell input {
    width: 17px;
    height: 17px;
    min-height: 0;
    accent-color: #42a5ff;
    cursor: pointer;
}

.route-reconcile-row.bulk-selected {
    background: rgba(66, 165, 255, .11);
    box-shadow: inset 0 0 0 1px rgba(66, 165, 255, .22);
}

@media (max-width: 1050px) {
    .route-table-filter {
        grid-template-columns: minmax(220px, 1fr) 150px auto;
    }

    .route-table-filter > a {
        grid-column: 1 / -1;
    }

    .route-bulk-action-form {
        align-items: stretch;
        flex-direction: column;
    }

    .route-bulk-filtered {
        justify-content: flex-start;
        padding-top: .65rem;
        padding-left: 0;
        border-top: 1px solid #34516b;
        border-left: 0;
    }
}

@media (max-width: 620px) {
    .route-table-filter {
        grid-template-columns: 1fr;
    }

    .route-bulk-selection,
    .route-bulk-filtered {
        align-items: stretch;
        flex-direction: column;
    }

    .route-bulk-action-form button {
        width: 100%;
    }
}

.role-access-notice,
.role-card-lock {
    display: flex;
    align-items: center;
    gap: .75rem;
    border: 1px solid rgba(86, 174, 255, .38);
    border-radius: 12px;
    background: rgba(24, 78, 119, .2);
    color: var(--muted);
    padding: .85rem 1rem;
}

.role-access-notice {
    max-width: 1480px;
    margin: 0 auto 1rem;
}

.role-access-notice strong,
.role-card-lock strong {
    color: var(--text);
}

.role-card-lock {
    margin: 1rem;
    min-height: 90px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.user-access-grid {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.4fr);
    gap: 1rem;
    align-items: start;
}

.user-access-grid > label,
.airline-access-fieldset {
    display: grid;
    gap: .55rem;
}

.airline-access-fieldset {
    margin: 0;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: .85rem 1rem 1rem;
}

.airline-access-fieldset legend {
    padding: 0 .35rem;
    color: var(--text);
    font-weight: 700;
}

.airline-scope-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.airline-permission-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: .5rem;
    max-height: 220px;
    overflow-y: auto;
    border-top: 1px solid var(--border);
    margin-top: .4rem;
    padding-top: .75rem;
}

.airline-permission-grid .api-checkbox {
    min-width: 0;
    justify-content: flex-start;
}

@media (max-width: 900px) {
    .user-access-grid,
    .airline-permission-grid {
        grid-template-columns: 1fr;
    }
}

/* Route packages: multiple captured airlines feeding one safe target workspace. */
.route-package-card { padding: 0; overflow: hidden; }
.route-package-card > summary {
    list-style: none; display: grid; grid-template-columns: auto 1fr auto;
    gap: 1rem; align-items: center; padding: 1.15rem 1.35rem; cursor: pointer;
}
.route-package-card > summary::-webkit-details-marker { display: none; }
.route-package-card > summary > span:nth-child(2) { display: grid; gap: .2rem; }
.route-package-card > summary small { color: var(--muted); font-weight: 400; }
.route-package-summary-icon {
    width: 2.55rem; height: 2.55rem; border: 1px solid #8b5cf6;
    border-radius: .75rem; display: grid; place-items: center; color: #c4b5fd;
    background: rgba(139, 92, 246, .12); font-weight: 800;
}
.route-package-active-badge, .route-package-warning-badge {
    border: 1px solid #27c58a; border-radius: 999px; padding: .4rem .7rem;
    color: #6ee7b7; font-size: .78rem; white-space: nowrap;
}
.route-package-warning-badge { border-color: #f6c85f; color: #f6c85f; }
.route-package-body { border-top: 1px solid var(--line); padding: 1.25rem; display: grid; gap: 1rem; }
.route-package-detection-warning {
    border: 1px solid rgba(246, 200, 95, .65); border-left: 4px solid #f6c85f;
    background: rgba(246, 200, 95, .08); border-radius: .65rem; padding: .9rem 1rem;
    display: grid; gap: .4rem;
}
.route-package-detection-warning > span { color: var(--muted); }
.route-package-detection-warning > div { display: flex; gap: .5rem; flex-wrap: wrap; }
.route-package-detection-warning > div span {
    border: 1px solid rgba(246, 200, 95, .45); border-radius: 999px;
    padding: .25rem .55rem; font-size: .78rem;
}
.route-package-form { display: grid; gap: 1rem; }
.route-package-name { display: grid; gap: .4rem; max-width: 34rem; }
.route-package-name input { min-height: 2.75rem; }
.route-package-form fieldset { border: 0; padding: 0; margin: 0; }
.route-package-form legend { margin-bottom: .65rem; font-weight: 700; }
.route-package-source-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: .65rem;
    max-height: 25rem; overflow: auto; padding-right: .35rem;
}
.route-package-source {
    border: 1px solid var(--line); border-radius: .75rem; padding: .75rem;
    display: grid; grid-template-columns: auto auto 1fr auto; gap: .65rem; align-items: center;
    background: rgba(5, 18, 32, .36);
}
.route-package-source.detected { border-color: rgba(246, 200, 95, .65); }
.route-package-source .airline-code { width: 3rem; height: 2.35rem; font-size: .82rem; }
.route-package-source > span:nth-of-type(2) { display: grid; gap: .18rem; }
.route-package-source small { display: block; color: var(--muted); font-weight: 400; }
.route-package-detected-mark { color: #f6c85f; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.route-package-actions, .route-package-current {
    display: flex; gap: 1rem; justify-content: space-between; align-items: center;
    border-top: 1px solid var(--line); padding-top: 1rem;
}
.route-package-actions > span, .route-package-current span { color: var(--muted); }
.route-package-current > div { display: grid; gap: .25rem; }
.route-package-current button { border-color: #ef6572; color: #ff9aa4; }
.route-status-card.unknown { border-left-color: #94a3b8; }
.route-status-card.unknown.active { background: rgba(148, 163, 184, .12); }
.route-reconcile-unknown { border-left-color: #94a3b8; }
.route-state-pill.unknown { border-color: #94a3b8; color: #cbd5e1; }
.route-source-airlines { color: #f6c85f; font-size: .68rem; margin-top: .2rem; display: block; }
@media (max-width: 760px) {
    .route-package-card > summary { grid-template-columns: auto 1fr; }
    .route-package-card > summary > :last-child { grid-column: 1 / -1; justify-self: start; }
    .route-package-actions, .route-package-current { align-items: stretch; flex-direction: column; }
}

.pagination-bar,
.aircraft-catalog-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pagination-bar {
    padding: .85rem 1rem;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .78rem;
}

.pagination-bar.compact {
    padding: 0;
    border: 0;
}

.pagination-bar > div {
    display: flex;
    gap: .55rem;
}

.pagination-bar a,
.aircraft-catalog-filter a {
    padding: .5rem .7rem;
    border: 1px solid #2e5f89;
    border-radius: 8px;
    color: #8fd0ff;
    text-decoration: none;
}

.aircraft-catalog-filter {
    margin: 1rem 0;
    padding: .85rem 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(12, 29, 47, .82);
}

.aircraft-catalog-filter > div strong,
.aircraft-catalog-filter > div span {
    display: block;
}

.aircraft-catalog-filter > div span {
    margin-top: .12rem;
    color: var(--muted);
    font-size: .72rem;
}

.aircraft-catalog-filter > form {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
    min-width: 0;
}

.aircraft-catalog-filter input[type="search"] {
    width: min(330px, 32vw);
}

.aircraft-catalog-filter input,
.aircraft-catalog-filter select {
    min-height: 39px;
    padding: 0 .75rem;
    border: 1px solid #38516c;
    border-radius: 9px;
    background: #081522;
    color: #eef7ff;
}

@media (max-width: 800px) {
    .aircraft-catalog-filter {
        align-items: stretch;
        flex-direction: column;
    }

    .aircraft-catalog-filter > form {
        align-items: stretch;
        flex-direction: column;
    }

    .aircraft-catalog-filter input[type="search"] {
        width: 100%;
    }
}

/* Version 0.25: batch fleet assignment by FR24 aircraft type */

.fleet-compare-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fleet-bulk-button {
    display: inline-flex;
    min-width: 170px;
    min-height: 41px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid rgba(169, 130, 255, .62);
    border-radius: 9px;
    background: rgba(169, 130, 255, .1);
    color: #decfff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.fleet-bulk-button:hover {
    border-color: #b99bff;
    background: rgba(169, 130, 255, .19);
    color: white;
}

.fleet-bulk-dialog {
    width: min(940px, calc(100vw - 32px));
}

.fleet-bulk-dialog[open] {
    grid-template-rows: auto minmax(0, 1fr);
}

.fleet-bulk-dialog-header {
    border-top: 4px solid #a982ff;
}

.fleet-bulk-form {
    display: grid;
    min-height: 0;
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: 16px;
    padding: 20px 22px 22px;
    overflow: hidden;
}

.fleet-bulk-columns {
    display: grid;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.fleet-bulk-column {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #2d4561;
    border-radius: 12px;
    background: rgba(7, 17, 29, .58);
}

.fleet-bulk-column-heading {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px 15px;
    border-bottom: 1px solid #293f59;
    background: rgba(20, 40, 63, .72);
}

.fleet-bulk-column-heading strong,
.fleet-bulk-column-heading small {
    display: block;
}

.fleet-bulk-column-heading strong {
    color: #e6eef8;
    font-size: 14px;
}

.fleet-bulk-column-heading small {
    margin-top: 3px;
    color: #8da2b9;
    font-size: 10px;
}

.fleet-bulk-options {
    display: grid;
    align-content: start;
    gap: 7px;
    overflow-y: auto;
    padding: 12px;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.fleet-bulk-options label {
    display: grid;
    min-height: 54px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 9px 11px;
    border: 1px solid #2b415b;
    border-radius: 9px;
    background: #0b1929;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.fleet-bulk-options label:hover {
    border-color: #4c6b8d;
}

.fleet-bulk-options label:has(input:checked) {
    border-color: rgba(55, 202, 131, .72);
    background: rgba(55, 202, 131, .11);
}

.fleet-bulk-options input {
    width: 17px;
    height: 17px;
    accent-color: var(--green);
}

.fleet-bulk-options strong,
.fleet-bulk-options small {
    display: block;
}

.fleet-bulk-options strong {
    color: #e0ebf6;
    font-size: 12px;
}

.fleet-bulk-options small {
    margin-top: 3px;
    color: #8298af;
    font-size: 9.5px;
}

.source-options label:has(input:checked) {
    border-color: rgba(66, 165, 255, .78);
    background: rgba(66, 165, 255, .12);
}

.source-options input {
    accent-color: var(--blue);
}

.fleet-bulk-note {
    padding: 12px 14px;
    border-left: 3px solid #a982ff;
    border-radius: 7px;
    background: rgba(169, 130, 255, .08);
}

.fleet-bulk-note strong,
.fleet-bulk-note span {
    display: block;
}

.fleet-bulk-note strong {
    color: #e2d7ff;
    font-size: 12px;
}

.fleet-bulk-note span {
    margin-top: 4px;
    color: #a7b7ca;
    font-size: 10.5px;
    line-height: 1.5;
}

.fleet-bulk-actions {
    justify-content: flex-end;
    margin: 0;
    padding-top: 14px;
    border-top: 1px solid #293f58;
}

.fleet-bulk-actions .secondary-button,
.fleet-bulk-actions .small-save-button {
    min-height: 41px;
}

@media (max-width: 760px) {
    .fleet-compare-action,
    .fleet-compare-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-compare-actions,
    .fleet-bulk-button,
    .fleet-compare-button {
        width: 100%;
    }

    .fleet-bulk-dialog {
        width: calc(100vw - 18px);
        max-height: calc(100vh - 18px);
    }

    .fleet-bulk-form {
        overflow-y: auto;
    }

    .fleet-bulk-columns {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .fleet-bulk-column {
        min-height: 280px;
    }

    .fleet-bulk-options {
        max-height: 260px;
    }

    .fleet-bulk-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}

/* Version 0.15: colored capture workflow and separate result workspace */

.title-blue {
    border-left: 4px solid var(--blue);
    background: linear-gradient(90deg, rgba(66, 165, 255, .08), transparent 36%);
}

.title-green {
    border-left: 4px solid var(--green);
    background: linear-gradient(90deg, rgba(55, 202, 131, .08), transparent 55%);
}

.title-purple {
    border-left: 4px solid #a982ff;
    background: linear-gradient(90deg, rgba(169, 130, 255, .08), transparent 55%);
}

.title-cyan {
    border-left: 4px solid #45d5df;
    background: linear-gradient(90deg, rgba(69, 213, 223, .08), transparent 42%);
}

.capture-config-card {
    overflow: hidden;
}

.workflow-card.compare-mode.selected {
    border-color: rgba(66, 165, 255, .9);
    background: linear-gradient(135deg, rgba(66, 165, 255, .16), rgba(66, 165, 255, .04));
}

.workflow-card.compare-mode .workflow-mark {
    border-color: rgba(66, 165, 255, .65);
    background: rgba(66, 165, 255, .1);
    color: #8ccaff;
}

.workflow-card.new-mode.selected {
    border-color: rgba(169, 130, 255, .9);
    background: linear-gradient(135deg, rgba(169, 130, 255, .16), rgba(169, 130, 255, .04));
}

.workflow-card.new-mode .workflow-mark {
    border-color: rgba(169, 130, 255, .65);
    background: rgba(169, 130, 255, .1);
    color: #c8adff;
}

.compare-fields {
    border-color: rgba(66, 165, 255, .4);
    background: rgba(66, 165, 255, .045);
}

.new-fields {
    border-color: rgba(169, 130, 255, .4);
    background: rgba(169, 130, 255, .045);
}

.settings-group {
    display: grid;
    gap: 7px;
}

.settings-group-title {
    color: #8fa5bd;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.color-options label {
    border-width: 1px;
}

.color-options .option-callsign {
    border-color: rgba(55, 202, 131, .48);
    background: rgba(55, 202, 131, .07);
}

.color-options .option-callsign:has(input:checked) {
    background: rgba(55, 202, 131, .15);
    color: #c3f4dc;
}

.color-options .option-routes {
    border-color: rgba(242, 191, 74, .48);
    background: rgba(242, 191, 74, .06);
}

.color-options .option-routes:has(input:checked) {
    background: rgba(242, 191, 74, .15);
    color: #ffe1a1;
}

.color-options .option-history {
    border-color: rgba(169, 130, 255, .5);
    background: rgba(169, 130, 255, .06);
}

.color-options .option-history:has(input:checked) {
    background: rgba(169, 130, 255, .15);
    color: #ddceff;
}

.advanced-settings {
    border-color: rgba(111, 136, 165, .46);
    background: linear-gradient(135deg, rgba(111, 136, 165, .07), rgba(7, 16, 29, .3));
}

.advanced-field:nth-child(4n + 1) input {
    border-color: rgba(66, 165, 255, .48);
}

.advanced-field:nth-child(4n + 2) input {
    border-color: rgba(55, 202, 131, .42);
}

.advanced-field:nth-child(4n + 3) input {
    border-color: rgba(242, 191, 74, .45);
}

.advanced-field:nth-child(4n + 4) input {
    border-color: rgba(169, 130, 255, .48);
}

.sidebar-stack {
    position: sticky;
    top: 78px;
    display: grid;
    gap: 14px;
}

.sidebar-stack .run-panel {
    position: static;
}

.sidebar-run-body {
    padding-bottom: 17px;
}

.sidebar-status span,
.sidebar-status strong {
    display: block;
}

.sidebar-status span {
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sidebar-status strong {
    font-size: 17px;
    font-weight: 650;
}

.result-link-button {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
    border: 1px solid rgba(55, 202, 131, .5);
    border-radius: 8px;
    background: rgba(55, 202, 131, .1);
    color: #aef0d1;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
}

.mini-log-card {
    overflow: hidden;
}

.mini-log {
    min-height: 126px;
    max-height: 170px;
    padding: 13px 15px;
    background: rgba(5, 13, 23, .68);
    color: #aebfd1;
    font-size: 9px;
    line-height: 1.45;
}

.progress-console {
    overflow: hidden;
    margin-top: 16px;
}

.large-progress-number {
    color: #d9fbff;
    font-size: 26px;
    font-weight: 680;
}

.large-progress-body {
    padding: 25px 24px 22px;
}

.large-progress-track {
    height: 18px;
    border: 1px solid rgba(69, 213, 223, .22);
    background: #050e19;
}

.large-progress-track span {
    background: linear-gradient(90deg, #238de9 0%, #45d5df 55%, #52d49a 100%);
    box-shadow: 0 0 18px rgba(69, 213, 223, .24);
}

.progress-meta {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-top: 18px;
    color: var(--muted);
    font-size: 11px;
}

.progress-meta span strong {
    margin-right: 4px;
    color: white;
    font-size: 15px;
}

.progress-meta .primary-button {
    margin-left: auto;
}

.comparison-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}

.comparison-page-heading .back-link {
    display: block;
}

.comparison-page-heading h1 {
    margin: 5px 0;
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 680;
    letter-spacing: -.04em;
}

.comparison-page-heading p {
    margin: 0;
    color: var(--muted);
}

.result-page-status {
    padding: 0;
    border-bottom: 0;
    margin-bottom: 16px;
}

.result-page-status .comparison-status {
    min-height: 102px;
    text-decoration: none;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .15);
}

.result-page-status .comparison-status:hover {
    border-color: currentColor;
}

.comparison-table-card {
    overflow: hidden;
}

.result-table-wrap {
    max-height: calc(100vh - 310px);
}

.result-table-wrap table {
    min-width: 1160px;
}

@media (max-width: 1000px) {
    .sidebar-stack {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .comparison-page-heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Version 0.70: selectable Legacy / official FR24 API capture */

.source-selector {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.source-card {
    position: relative;
    display: grid;
    min-height: 82px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid #2d455f;
    border-radius: 10px;
    background: #0a1726;
    cursor: pointer;
}

.source-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.source-card strong,
.source-card small {
    display: block;
}

.source-card strong {
    color: #e7f0fa;
    font-size: 14px;
}

.source-card small {
    margin-top: 4px;
    color: #89a0b9;
    font-size: 10px;
    line-height: 1.45;
}

.source-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #3b5b7c;
    border-radius: 9px;
    color: #8bc9ff;
    font-size: 18px;
}

.source-card.selected.legacy-source {
    border-color: rgba(66, 165, 255, .72);
    background: linear-gradient(135deg, rgba(66, 165, 255, .16), rgba(66, 165, 255, .06));
}

.source-card.selected.api-source {
    border-color: rgba(167, 111, 255, .78);
    background: linear-gradient(135deg, rgba(145, 91, 238, .2), rgba(66, 165, 255, .08));
}

.source-card.selected.viacc-source {
    border-color: rgba(36, 201, 151, .78);
    background: linear-gradient(135deg, rgba(27, 151, 116, .2), rgba(66, 165, 255, .07));
}

.source-card.selected.intrepid-source {
    border-color: rgba(244, 157, 54, .82);
    background: linear-gradient(135deg, rgba(222, 119, 35, .22), rgba(66, 165, 255, .08));
}

.source-card.selected .selection-indicator {
    display: block;
}

.api-source-settings {
    display: none;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(156, 105, 244, .45);
    border-radius: 10px;
    background: rgba(42, 28, 75, .2);
}

.viacc-source-settings {
    display: none;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(36, 201, 151, .45);
    border-radius: 10px;
    background: rgba(13, 69, 58, .2);
}

.intrepid-source-settings {
    display: none;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(244, 157, 54, .48);
    border-radius: 10px;
    background: rgba(84, 48, 14, .2);
}

.intrepid-source-settings strong,
.intrepid-source-settings p {
    display: block;
}

.intrepid-source-settings > div > strong {
    margin-top: 4px;
    color: #ffe8ce;
}

.intrepid-source-settings p {
    margin: 6px 0 0;
    color: #c9a985;
    font-size: 11px;
    line-height: 1.5;
}

.intrepid-profile {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.intrepid-profile > span {
    padding: 10px 12px;
    border: 1px solid rgba(244, 157, 54, .3);
    border-radius: 8px;
    background: rgba(9, 23, 38, .36);
}

.intrepid-profile strong {
    color: #ffd49b;
}

.intrepid-profile small {
    display: block;
    margin-top: 2px;
    color: #b89b7d;
}

.viacc-source-settings strong,
.viacc-source-settings p {
    display: block;
}

.viacc-source-settings strong {
    margin-top: 4px;
    color: #dff8ef;
}

.viacc-source-settings p {
    margin: 6px 0 0;
    color: #91b8ae;
    font-size: 11px;
}

.source-api .api-source-settings {
    display: grid;
}

.source-viacc .viacc-source-settings {
    display: grid;
}

.source-intrepid .intrepid-source-settings {
    display: grid;
}

.source-api .legacy-only,
.source-api .source-slug-field {
    display: none !important;
}

.source-viacc .legacy-only,
.source-viacc .legacy-api-only {
    display: none !important;
}

.viacc-window-copy {
    display: none;
}

.source-viacc .viacc-window-copy {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #dff8ef;
}

.intrepid-window-copy {
    display: none;
}

.source-intrepid .intrepid-window-copy {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #ffe8ce;
}

.source-intrepid .intrepid-window-copy small {
    color: #c9a985;
}

.source-intrepid .source-history-field,
.source-intrepid .legacy-capture-options,
.source-intrepid details.advanced-settings {
    display: none !important;
}

.source-viacc .viacc-window-copy small {
    color: #91b8ae;
}

.api-credential-heading,
.api-preview-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.api-credential-heading strong,
.api-credential-heading span {
    display: block;
}

.api-credential-heading strong {
    margin-top: 4px;
    color: #e8e1fa;
    font-size: 13px;
}

.api-credential-grid {
    grid-template-columns: minmax(0, 2fr) minmax(130px, .7fr) minmax(160px, .8fr);
}

.api-token-replace-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 10px 12px;
    border: 1px solid #344b68;
    border-radius: 8px;
    background: rgba(7, 17, 29, .48);
    cursor: pointer;
}

.api-token-replace-toggle span,
.api-token-replace-toggle strong,
.api-token-replace-toggle small {
    display: block;
}

.api-token-replace-toggle small {
    margin-top: 2px;
    color: #91a6bc;
}

.api-preview-result {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.api-preview-result > div {
    padding: 11px 12px;
    border: 1px solid #344b68;
    border-radius: 8px;
    background: rgba(7, 17, 29, .62);
}

.api-preview-result span,
.api-preview-result strong {
    display: block;
}

.api-preview-result span {
    color: #8298b0;
    font-size: 9px;
    text-transform: uppercase;
}

.api-preview-result strong {
    margin-top: 5px;
    color: #eaf2fb;
    font-size: 14px;
}

.api-preview-result.is-empty strong {
    color: #667d96;
}

.api-preview-message {
    padding: 10px 12px;
    border-left: 3px solid #6283a6;
    border-radius: 5px;
    background: rgba(73, 104, 137, .12);
    color: #a8bbcf;
    font-size: 10.5px;
}

.api-preview-message.is-success {
    border-color: var(--green);
    background: rgba(55, 202, 131, .1);
    color: #a4e6c5;
}

.api-preview-message.is-error {
    border-color: var(--red);
    background: rgba(243, 111, 116, .1);
    color: #ffb5b9;
}

.api-confirm-option {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #c9d7e6;
    font-size: 11px;
    cursor: pointer;
}

.api-confirm-option input {
    width: 17px;
    height: 17px;
    accent-color: var(--green);
}

.source-window-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 360px));
    gap: 16px 24px;
    align-items: start;
}

.source-window-field,
.source-history-field {
    display: grid;
    max-width: 360px;
    grid-template-columns: minmax(0, 1fr) 90px;
    align-items: center;
    gap: 5px 12px;
}

.source-window-field label,
.source-history-field label {
    grid-column: 1;
}

.source-window-field input,
.source-history-field input {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.source-window-field small,
.source-window-field .field-error,
.source-history-field small,
.source-history-field .field-error {
    grid-column: 1;
}

.source-api .form-actions .primary-button {
    background: linear-gradient(135deg, #7650d8, #42a5ff);
    box-shadow: 0 9px 25px rgba(115, 81, 216, .22);
}

@media (max-width: 820px) {
    .source-selector,
    .api-preview-result,
    .api-credential-grid,
    .source-window-fields {
        grid-template-columns: 1fr;
    }

    .api-preview-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 700px) {
    .sidebar-stack {
        grid-template-columns: 1fr;
    }

    .progress-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .progress-meta .primary-button {
        width: 100%;
        margin-left: 0;
    }
}

/* Version 0.12: compact professional workspace */

body {
    font-size: 14px;
}

.site-header {
    min-height: 62px;
    padding-block: 8px;
}

.brand img {
    width: min(290px, 42vw);
    max-height: 40px;
}

.top-nav,
.top-nav form {
    gap: 14px;
}

.top-nav a,
.link-button,
.user-name {
    font-size: 13px;
}

.page-shell {
    width: min(1380px, calc(100% - 40px));
    min-height: calc(100vh - 118px);
    padding: 28px 0 42px;
}

footer {
    padding: 16px;
    font-size: 12px;
}

.back-link {
    margin-bottom: 14px;
    font-size: 13px;
}

.page-heading {
    margin-bottom: 20px;
}

.page-heading h1,
.compact-heading h1 {
    margin: 4px 0 5px;
    font-size: clamp(29px, 4vw, 40px);
    font-weight: 680;
    letter-spacing: -.035em;
}

.page-heading p,
.section-title p {
    font-size: 13px;
    line-height: 1.45;
}

.eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}

.environment-badge {
    padding: 7px 11px;
    font-size: 11px;
}

.section-card,
.login-card {
    border-radius: 15px;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .2);
}

.section-title,
.compact-title {
    gap: 16px;
    padding: 17px 20px;
}

.section-title h2,
.compact-title h2 {
    margin: 0 0 3px;
    font-size: 18px;
    font-weight: 650;
    letter-spacing: -.015em;
}

.primary-button,
.filter-form button,
.secondary-button,
.danger-button {
    min-height: 39px;
    padding: 0 15px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 650;
}

.module-grid {
    gap: 15px;
}

.module-tile {
    min-height: 154px;
    gap: 17px;
    padding: 22px;
    border-radius: 20px;
}

.module-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    font-size: 15px;
}

.module-copy strong {
    margin-bottom: 6px;
    font-size: clamp(19px, 2vw, 24px);
    font-weight: 650;
}

.module-copy small {
    font-size: 12px;
}

.welcome-heading {
    margin-bottom: 24px;
}

.welcome-heading h1 {
    margin: 5px 0;
    font-size: clamp(32px, 5vw, 48px);
    font-weight: 670;
}

.welcome-heading p {
    font-size: 15px;
}

.stat-card {
    min-height: 86px;
    padding: 15px;
    border-radius: 13px;
}

.stat-card strong {
    margin-top: 5px;
    font-size: 27px;
    font-weight: 680;
}

.fr24-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.62fr) minmax(310px, .68fr);
    align-items: start;
    gap: 16px;
}

.compact-form {
    gap: 15px;
    padding: 18px 20px 20px;
}

.workflow-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.workflow-card {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-height: 82px;
    padding: 13px 14px;
    border: 1px solid #2d445f;
    border-radius: 10px;
    background: rgba(8, 19, 32, .55);
    color: #c4d2e2;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.workflow-card:hover {
    border-color: #42658a;
}

.workflow-card.selected {
    border-color: rgba(66, 165, 255, .72);
    background: rgba(66, 165, 255, .09);
}

.workflow-card:has(input:disabled) {
    cursor: default;
    opacity: .45;
}

.workflow-card input {
    width: 15px;
    height: 15px;
    accent-color: var(--blue);
}

.workflow-mark {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #395675;
    border-radius: 9px;
    color: #82c5ff;
    font-size: 18px;
}

.workflow-card strong,
.workflow-card small {
    display: block;
}

.workflow-card strong {
    margin-bottom: 4px;
    color: white;
    font-size: 13px;
    font-weight: 630;
}

.workflow-card small {
    color: var(--muted);
    font-size: 10px;
    line-height: 1.4;
}

.mode-fields {
    padding: 13px 14px;
    border: 1px solid rgba(42, 64, 91, .8);
    border-radius: 10px;
    background: rgba(7, 16, 29, .28);
}

.mode-fields[hidden] {
    display: none;
}

.mode-fields > .field-group {
    display: grid;
    gap: 6px;
}

.mode-fields select {
    width: 100%;
    min-height: 41px;
    padding: 0 11px;
    border: 1px solid #344b68;
    border-radius: 8px;
    outline: none;
    background: #0b1726;
    color: white;
    font-size: 13px;
}

.rebuild-notice {
    margin: 10px 0 0;
    padding: 9px 11px;
    border-left: 3px solid var(--yellow);
    background: rgba(242, 191, 74, .06);
    color: #cfbf93;
    font-size: 10px;
    line-height: 1.45;
}

.compact-form .primary-fields {
    grid-template-columns: minmax(145px, .55fr) minmax(110px, .38fr) minmax(220px, 1fr);
    gap: 12px;
}

.compact-form .field-group {
    gap: 5px;
}

.compact-form .field-group label {
    font-size: 11px;
    font-weight: 600;
}

.advanced-form .field-group input,
.advanced-form .field-group select {
    min-height: 39px;
    padding: 0 11px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.compact-form .icao-field input,
.compact-form #id_iata {
    font-weight: 650;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.compact-options {
    gap: 7px;
}

.compact-options label {
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 11px;
}

.compact-options input {
    width: 15px;
    height: 15px;
}

.advanced-settings {
    border-radius: 10px;
}

.advanced-settings summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    font-size: 12px;
    font-weight: 620;
}

.advanced-settings summary span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 400;
}

.advanced-settings .form-grid {
    padding: 4px 14px 15px;
}

.numeric-grid {
    grid-template-columns: repeat(4, minmax(100px, 1fr));
    gap: 11px;
}

.compact-actions {
    justify-content: space-between;
}

.compact-actions span {
    color: var(--muted);
    font-size: 10px;
}

.run-panel {
    position: sticky;
    top: 78px;
}

.run-panel-body {
    padding: 19px 20px 20px;
}

.run-state-line {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.run-state-line span,
.run-state-line strong {
    display: block;
}

.run-state-line span {
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}

.run-state-line > div > strong {
    font-size: 18px;
    font-weight: 650;
}

.run-state-line > strong {
    font-size: 24px;
    font-weight: 680;
}

.run-phase {
    min-height: 38px;
    margin: 13px 0;
    color: #b4c4d7;
    font-size: 12px;
    line-height: 1.45;
}

.progress-track.prominent {
    height: 8px;
}

.compact-transfer {
    justify-content: space-between;
    margin-top: 13px;
}

.inline-controls {
    display: flex;
    gap: 8px;
    margin-top: 17px;
    padding-top: 15px;
    border-top: 1px solid #253a53;
}

.inline-controls form,
.inline-controls button {
    flex: 1;
}

.inline-controls button {
    width: 100%;
}

.inline-controls button:disabled {
    cursor: default;
    opacity: .52;
}

.subtle-danger {
    border: 1px solid rgba(243, 111, 116, .42);
    background: rgba(243, 111, 116, .08);
    color: #ffb6ba;
    box-shadow: none;
}

.console-card,
.recent-runs,
.comparison-result {
    margin-top: 16px;
}

.comparison-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    padding: 15px 18px;
    border-bottom: 1px solid var(--line);
}

.comparison-status {
    position: relative;
    overflow: hidden;
    padding: 12px 14px;
    border: 1px solid #2b405b;
    border-radius: 10px;
    background: #0b1726;
}

.comparison-status::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: currentColor;
    content: "";
}

.comparison-status span,
.comparison-status strong,
.comparison-status small {
    display: block;
}

.comparison-status span {
    color: #afbed0;
    font-size: 10px;
    text-transform: uppercase;
}

.comparison-status strong {
    margin: 3px 0;
    color: white;
    font-size: 23px;
    font-weight: 680;
}

.comparison-status small {
    color: var(--muted);
    font-size: 9px;
}

.compact-result-table {
    max-height: 480px;
}

.compact-result-table table {
    min-width: 820px;
}

.compact-result-table th,
.compact-result-table td {
    padding: 10px 13px;
    font-size: 11px;
}

.compact-log {
    min-height: 180px;
    max-height: 330px;
    padding: 16px 19px;
    background: rgba(5, 13, 23, .58);
    color: #b8c8d9;
    font-size: 11px;
    line-height: 1.5;
}

.compact-job-list {
    display: grid;
}

.compact-job-row {
    display: grid;
    grid-template-columns: 118px 54px minmax(180px, 1fr) 48px 118px;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
    border-bottom: 1px solid #243750;
    color: #b9c8d9;
    font-size: 11px;
    text-decoration: none;
}

.compact-job-row:last-child {
    border-bottom: 0;
}

.compact-job-row:hover,
.compact-job-row.selected {
    background: rgba(66, 165, 255, .07);
}

.compact-job-row strong {
    color: white;
    font-size: 12px;
}

.compact-job-row .job-status {
    font-size: 9px;
}

.mapping-row {
    padding-block: 12px;
}

.airline-card {
    padding: 18px;
    border-radius: 13px;
}

.airline-main h3 {
    font-size: 18px;
    font-weight: 650;
}

@media (max-width: 1000px) {
    .fr24-workspace {
        grid-template-columns: 1fr;
    }

    .run-panel {
        position: static;
    }
}

@media (max-width: 760px) {
    .workflow-selector,
    .comparison-status-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .compact-form .primary-fields,
    .numeric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .compact-job-row {
        grid-template-columns: 105px 48px 1fr 42px;
    }

    .compact-job-row time {
        display: none;
    }
}

@media (max-width: 620px) {
    .page-shell {
        width: min(100% - 20px, 1380px);
        padding-top: 20px;
    }

    .compact-form .primary-fields,
    .numeric-grid {
        grid-template-columns: 1fr;
    }

    .workflow-selector,
    .comparison-status-grid {
        grid-template-columns: 1fr;
    }

    .advanced-settings summary span {
        display: none;
    }

    .compact-job-row {
        grid-template-columns: 96px 44px 1fr;
    }

    .compact-job-row > span:nth-last-of-type(1) {
        display: none;
    }
}

/* Version 0.16: calm configuration hierarchy and compact navigation */

.site-header {
    min-height: 68px;
    padding: 0 22px;
    border-bottom-color: rgba(55, 78, 105, .58);
    background: rgba(6, 14, 25, .93);
}

.header-inner {
    display: grid;
    width: min(1460px, 100%);
    min-height: 68px;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 28px;
    margin: 0 auto;
}

.compact-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.compact-brand img {
    width: 38px;
    height: 38px;
    object-fit: contain;
}

.compact-brand span,
.compact-brand strong,
.compact-brand small {
    display: block;
}

.compact-brand strong {
    color: #f5f9ff;
    font-size: 15px;
    letter-spacing: .08em;
}

.compact-brand small {
    margin-top: 1px;
    color: #6f859e;
    font-size: 9px;
    letter-spacing: .04em;
}

.primary-navigation {
    display: flex;
    width: max-content;
    max-width: 100%;
    align-items: center;
    justify-self: center;
    gap: 3px;
    padding: 4px;
    border: 1px solid rgba(46, 68, 94, .72);
    border-radius: 11px;
    background: rgba(12, 25, 42, .72);
}

.primary-navigation a {
    position: relative;
    padding: 8px 13px;
    border-radius: 7px;
    color: #91a5bc;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}

.primary-navigation a:hover {
    background: rgba(255, 255, 255, .035);
    color: #dce8f5;
}

.primary-navigation a.active {
    background: #17314d;
    color: #f5f9ff;
    box-shadow: inset 0 0 0 1px rgba(74, 162, 241, .28);
}

.primary-navigation a.active::after {
    position: absolute;
    right: 13px;
    bottom: 4px;
    left: 13px;
    height: 2px;
    border-radius: 2px;
    background: var(--blue);
    content: "";
}

.account-menu {
    position: relative;
}

.language-switcher {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 3px;
    border: 1px solid rgba(46, 68, 94, .72);
    border-radius: 9px;
    background: rgba(12, 25, 42, .72);
}

.language-switcher button {
    display: flex;
    min-width: 40px;
    height: 32px;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 7px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #8297af;
    cursor: pointer;
}

.language-switcher button:hover {
    background: rgba(255, 255, 255, .04);
    color: white;
}

.language-switcher button.active {
    background: #17314d;
    color: white;
    box-shadow: inset 0 0 0 1px rgba(74, 162, 241, .3);
}

.language-switcher button span {
    font-size: 15px;
    line-height: 1;
}

.language-switcher button small {
    font-size: 9px;
    font-weight: 750;
}

.direct-export-button {
    border-color: rgba(55, 202, 131, .55);
    background: rgba(55, 202, 131, .1);
    color: #a9eccb;
}

.account-menu summary {
    display: flex;
    min-width: 154px;
    align-items: center;
    gap: 9px;
    padding: 6px 9px;
    border: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    list-style: none;
}

.account-menu summary::-webkit-details-marker {
    display: none;
}

.account-menu summary:hover,
.account-menu[open] summary {
    border-color: rgba(54, 78, 105, .7);
    background: rgba(18, 34, 54, .78);
}

.user-avatar {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgba(66, 165, 255, .48);
    border-radius: 9px;
    background: rgba(66, 165, 255, .12);
    color: #9ed2ff;
    font-size: 12px;
    font-weight: 750;
}

.account-copy,
.account-copy strong,
.account-copy small {
    display: block;
}

.account-copy {
    min-width: 76px;
}

.account-copy strong {
    overflow: hidden;
    max-width: 110px;
    color: #dce7f4;
    font-size: 12px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-copy small {
    margin-top: 1px;
    color: #7288a1;
    font-size: 9px;
}

.account-chevron {
    margin-left: auto;
    color: #6f849c;
    font-size: 13px;
}

.account-dropdown {
    position: absolute;
    z-index: 40;
    top: calc(100% + 8px);
    right: 0;
    display: grid;
    width: 190px;
    padding: 7px;
    border: 1px solid #2b425d;
    border-radius: 11px;
    background: #0d1b2c;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .38);
}

.account-dropdown a,
.account-dropdown .link-button {
    display: flex;
    width: 100%;
    min-height: 36px;
    align-items: center;
    padding: 0 10px;
    border-radius: 7px;
    color: #b7c7d9;
    font-size: 12px;
    text-align: left;
    text-decoration: none;
}

.account-dropdown a:hover,
.account-dropdown .link-button:hover {
    background: rgba(66, 165, 255, .09);
    color: white;
}

.config-card-header {
    border-left: 0;
    background: rgba(18, 34, 54, .55);
}

.config-state {
    padding: 5px 9px;
    border: 1px solid rgba(55, 202, 131, .32);
    border-radius: 999px;
    background: rgba(55, 202, 131, .07);
    color: #83dfb2;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.capture-config-card .compact-form {
    gap: 0;
    padding: 0;
}

.capture-form-errors {
    margin: 18px;
    padding: 14px 16px;
    border: 1px solid var(--danger, #c9475c);
    border-radius: 12px;
    background: color-mix(in srgb, var(--danger, #c9475c) 9%, var(--surface, #ffffff));
    color: var(--text-primary, #16233a);
}

.capture-form-errors:focus {
    outline: 3px solid color-mix(in srgb, var(--danger, #c9475c) 28%, transparent);
    outline-offset: 2px;
}

.capture-form-errors > strong,
.capture-form-errors > span {
    display: block;
}

.capture-form-errors > span {
    margin-top: 3px;
    color: var(--text-secondary, #64748b);
}

.capture-form-errors ul {
    margin: 10px 0 0;
    padding-left: 20px;
}

.capture-form-errors a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.config-section {
    display: grid;
    gap: 13px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(41, 61, 84, .72);
}

.config-section-heading {
    display: flex;
    align-items: center;
    gap: 10px;
}

.config-section-heading > div,
.config-section-heading strong,
.config-section-heading small {
    display: block;
}

.config-section-heading strong {
    color: #dce7f4;
    font-size: 12px;
    font-weight: 680;
}

.config-section-heading small {
    margin-top: 2px;
    color: #758aa2;
    font-size: 9px;
}

.config-step {
    display: grid;
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    place-items: center;
    border: 1px solid #365675;
    border-radius: 7px;
    background: #12263b;
    color: #81c4ff;
    font-size: 10px;
    font-weight: 750;
}

.workflow-switch {
    gap: 4px;
    padding: 4px;
    border: 1px solid #2a4059;
    border-radius: 10px;
    background: #091523;
}

.workflow-switch .workflow-card {
    min-height: 64px;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    padding: 10px 12px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    box-shadow: none;
}

.workflow-switch .workflow-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.workflow-switch .workflow-card.selected,
.workflow-switch .workflow-card.compare-mode.selected,
.workflow-switch .workflow-card.new-mode.selected {
    border: 0;
    background: #17314d;
    box-shadow: inset 0 0 0 1px rgba(66, 165, 255, .36);
}

.workflow-switch .workflow-card:hover {
    background: rgba(255, 255, 255, .025);
}

.workflow-switch .workflow-card.selected:hover {
    background: #17314d;
}

.workflow-switch .workflow-mark,
.workflow-switch .compare-mode .workflow-mark,
.workflow-switch .new-mode .workflow-mark {
    width: 30px;
    height: 30px;
    border-color: rgba(93, 126, 160, .52);
    border-radius: 7px;
    background: rgba(11, 24, 39, .66);
    color: #8da7c0;
    font-size: 15px;
}

.workflow-switch .selected .workflow-mark {
    border-color: rgba(66, 165, 255, .54);
    background: rgba(66, 165, 255, .1);
    color: #9bd1ff;
}

.workflow-switch .workflow-card strong {
    margin-bottom: 2px;
    font-size: 12px;
}

.workflow-switch .workflow-card small {
    font-size: 9px;
}

.config-section .mode-fields {
    padding: 0;
    border: 0;
    background: transparent;
}

.config-section .mode-fields select {
    min-height: 39px;
    background: #0a1726;
}

.config-section .mode-fields .field-group > small {
    color: #71879f;
    font-size: 9px;
}

.scope-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.capture-enrichment {
    display: grid;
    gap: 8px;
    padding: 11px 12px;
    border: 1px solid rgba(66, 165, 255, .28);
    border-radius: 9px;
    background: rgba(66, 165, 255, .055);
}

.capture-enrichment-heading strong,
.capture-enrichment-heading small {
    display: block;
}

.capture-enrichment-heading strong {
    color: #dce7f4;
    font-size: 11px;
}

.capture-enrichment-heading small {
    margin-top: 3px;
    color: #7f95ad;
    font-size: 9px;
}

.capture-enrichment-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-capture-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cache-rebuild-notice {
    cursor: default;
}

.cache-rebuild-icon {
    display: inline-grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border: 1px solid rgba(66, 165, 255, .45);
    border-radius: 50%;
    color: #74baff;
    font-size: 15px;
}

.scope-option {
    display: grid;
    min-height: 66px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 10px 11px;
    border: 1px solid #293f58;
    border-radius: 8px;
    background: rgba(8, 19, 32, .55);
    color: #aebed0;
    cursor: pointer;
}

.scope-option:hover {
    border-color: #3a5878;
}

.scope-option:has(input:checked) {
    border-color: rgba(66, 165, 255, .52);
    background: rgba(66, 165, 255, .075);
}

.scope-option input {
    width: 15px;
    height: 15px;
    accent-color: var(--blue);
}

.scope-option span,
.scope-option strong,
.scope-option small {
    display: block;
}

.scope-option strong {
    color: #d4dfeb;
    font-size: 10px;
    font-weight: 650;
}

.scope-option small {
    margin-top: 3px;
    color: #70869e;
    font-size: 8px;
    line-height: 1.3;
}

.capture-config-card .advanced-settings {
    margin: 14px 20px 0;
    border-color: #2a415a;
    background: #0b1828;
}

.capture-config-card .advanced-settings summary {
    color: #b9c8d9;
}

.capture-config-card .advanced-field:nth-child(n) input {
    border-color: #344b68;
}

.capture-config-card .form-actions {
    min-height: 68px;
    align-items: center;
    margin-top: 14px;
    padding: 13px 20px;
    border-top: 1px solid rgba(41, 61, 84, .72);
    background: rgba(8, 18, 30, .44);
}

.capture-config-card .form-actions > div,
.capture-config-card .form-actions strong,
.capture-config-card .form-actions span {
    display: block;
}

.capture-config-card .form-actions strong {
    color: #dce7f4;
    font-size: 11px;
    font-weight: 650;
}

.capture-config-card .form-actions span {
    margin-top: 2px;
    color: #748aa2;
    font-size: 9px;
}

@media (max-width: 1100px) {
    .header-inner {
        gap: 16px;
    }

    .compact-brand small,
    .account-copy small {
        display: none;
    }

    .primary-navigation a {
        padding-inline: 9px;
    }
}

@media (max-width: 820px) {
    .site-header {
        position: relative;
        padding: 8px 12px;
    }

    .header-inner {
        grid-template-columns: 1fr auto auto;
    }

    .primary-navigation {
        width: 100%;
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: stretch;
        overflow-x: auto;
    }

    .primary-navigation a {
        flex: 1 0 auto;
        text-align: center;
    }

    .language-switcher {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .account-menu {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
    }

    .account-menu summary {
        min-width: 0;
    }
}

@media (max-width: 700px) {
    .capture-enrichment-options {
        grid-template-columns: 1fr;
    }

    .legacy-capture-options {
        grid-template-columns: 1fr;
    }

    .scope-options {
        grid-template-columns: 1fr;
    }

    .workflow-switch {
        grid-template-columns: 1fr;
    }

    .capture-config-card .form-actions {
        align-items: stretch;
    }

    .capture-config-card .form-actions .primary-button {
        width: 100%;
    }
}

/* Version 0.17: mandatory first-login password setup */

.password-setup-layout {
    display: grid;
    min-height: calc(100vh - 190px);
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .72fr);
    align-items: center;
    gap: clamp(42px, 8vw, 120px);
}

.password-setup-copy h1 {
    max-width: 680px;
    margin: 8px 0 14px;
    font-size: clamp(36px, 5vw, 58px);
    letter-spacing: -.045em;
}

.password-setup-copy > p {
    max-width: 650px;
    color: #9eb0c5;
    font-size: 16px;
    line-height: 1.65;
}

.password-rules {
    display: grid;
    gap: 10px;
    margin: 28px 0 0;
    padding: 0;
    color: #9fb2c8;
    list-style: none;
}

.password-rules li {
    position: relative;
    padding-left: 25px;
}

.password-rules li::before {
    position: absolute;
    top: 1px;
    left: 0;
    color: var(--green);
    content: "✓";
}

.password-setup-card {
    width: 100%;
    max-width: 500px;
    justify-self: end;
    padding: 28px;
}

.password-change-form input {
    width: 100%;
    min-height: 45px;
    padding: 0 12px;
    border: 1px solid #344b68;
    border-radius: 9px;
    outline: none;
    background: #0b1726;
    color: white;
}

.password-change-form input:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(66, 165, 255, .13);
}

.password-help {
    color: #758ba3;
    font-size: 10px;
    line-height: 1.45;
}

.password-help ul {
    margin: 4px 0 0;
    padding-left: 18px;
}

.password-logout {
    display: flex;
    justify-content: center;
    margin-top: 15px;
}

.password-logout .link-button {
    color: #8298b1;
    font-size: 11px;
}

@media (max-width: 850px) {
    .password-setup-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .password-setup-card {
        max-width: none;
        justify-self: stretch;
    }
}

/* Version 0.18: clearer type and unmistakable selections */

.config-card-header h2 {
    font-size: 20px;
}

.config-card-header p {
    font-size: 13px;
}

.config-state {
    padding: 6px 11px;
    font-size: 10px;
}

.config-section {
    gap: 15px;
    padding-block: 20px;
}

.config-section-heading strong {
    font-size: 14px;
}

.config-section-heading small {
    margin-top: 3px;
    font-size: 10.5px;
}

.config-step {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
    border-color: #42678d;
    font-size: 11px;
}

.workflow-switch .workflow-card {
    position: relative;
    min-height: 72px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 12px 13px;
}

.workflow-switch .workflow-card strong {
    margin-bottom: 4px;
    font-size: 13.5px;
}

.workflow-switch .workflow-card small {
    font-size: 10.5px;
    line-height: 1.35;
}

.selection-indicator {
    display: none;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.workflow-switch .workflow-card.selected .selection-indicator {
    display: block;
}

.workflow-switch .workflow-card.compare-mode.selected {
    background: linear-gradient(135deg, rgba(55, 202, 131, .18), rgba(55, 202, 131, .08));
    box-shadow: inset 0 0 0 1px rgba(55, 202, 131, .72);
}

.workflow-switch .workflow-card.compare-mode.selected:hover {
    background: linear-gradient(135deg, rgba(55, 202, 131, .21), rgba(55, 202, 131, .1));
}

.workflow-switch .compare-mode.selected .workflow-mark {
    border-color: rgba(55, 202, 131, .7);
    background: rgba(55, 202, 131, .14);
    color: #82e3b5;
}

.workflow-switch .compare-mode.selected .selection-indicator {
    border: 1px solid rgba(55, 202, 131, .5);
    background: rgba(55, 202, 131, .12);
    color: #8de9bd;
}

.workflow-switch .workflow-card.new-mode.selected {
    background: linear-gradient(135deg, rgba(240, 151, 52, .2), rgba(240, 151, 52, .08));
    box-shadow: inset 0 0 0 1px rgba(240, 151, 52, .76);
}

.workflow-switch .workflow-card.new-mode.selected:hover {
    background: linear-gradient(135deg, rgba(240, 151, 52, .23), rgba(240, 151, 52, .11));
}

.workflow-switch .new-mode.selected .workflow-mark {
    border-color: rgba(240, 151, 52, .72);
    background: rgba(240, 151, 52, .15);
    color: #ffc47f;
}

.workflow-switch .new-mode.selected .selection-indicator {
    border: 1px solid rgba(240, 151, 52, .52);
    background: rgba(240, 151, 52, .13);
    color: #ffc581;
}

.config-section .field-group label {
    font-size: 12px;
}

.config-section .mode-fields select {
    min-height: 43px;
    font-size: 14px;
}

.config-section .mode-fields .field-group > small {
    font-size: 10.5px;
    line-height: 1.4;
}

.scope-option {
    min-height: 74px;
    padding: 12px;
}

.scope-option strong {
    font-size: 11.5px;
}

.scope-option small {
    margin-top: 4px;
    font-size: 9.5px;
    line-height: 1.35;
}

.scope-option:has(input:checked) {
    border-color: rgba(55, 202, 131, .72);
    background: linear-gradient(135deg, rgba(55, 202, 131, .16), rgba(55, 202, 131, .07));
    box-shadow: inset 0 0 0 1px rgba(55, 202, 131, .16);
}

.scope-option:has(input:checked) strong {
    color: #baf1d5;
}

.scope-option:has(input:checked) small {
    color: #8dc7aa;
}

.scope-option input {
    width: 17px;
    height: 17px;
    accent-color: var(--green);
}

.capture-config-card .advanced-settings summary {
    font-size: 13px;
}

.capture-config-card .advanced-settings summary span {
    font-size: 10.5px;
}

.capture-config-card .form-actions {
    min-height: 76px;
}

.capture-config-card .form-actions strong {
    font-size: 13px;
}

.capture-config-card .form-actions span {
    font-size: 10.5px;
}

.capture-config-card .form-actions .primary-button {
    min-height: 43px;
    font-size: 13.5px;
    transition: background .15s ease, box-shadow .15s ease;
}

.capture-config-card form.mode-compare .form-actions .primary-button {
    background: linear-gradient(135deg, #24aa69, #39cb83);
    box-shadow: 0 9px 25px rgba(55, 202, 131, .2);
}

.capture-config-card form.mode-new .form-actions .primary-button {
    background: linear-gradient(135deg, #dc7d22, #f09a3e);
    box-shadow: 0 9px 25px rgba(240, 151, 52, .2);
}

@media (max-width: 620px) {
    .workflow-switch .workflow-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .selection-indicator {
        grid-column: 2;
        width: max-content;
    }
}

/* Version 0.19: full-height eventlog and protected history cleanup */

.fr24-workspace {
    align-items: stretch;
}

.sidebar-stack {
    height: 100%;
    grid-template-rows: auto minmax(0, 1fr);
}

.mini-log-card {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
}

.mini-log {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
}

.history-clear-button {
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(243, 111, 116, .5);
    border-radius: 8px;
    background: rgba(243, 111, 116, .08);
    color: #ffafb3;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
}

.history-clear-button:hover {
    border-color: rgba(243, 111, 116, .8);
    background: rgba(243, 111, 116, .15);
    color: #ffd4d6;
}

@media (max-width: 1000px) {
    .sidebar-stack {
        height: auto;
        grid-template-rows: none;
    }

    .mini-log {
        min-height: 240px;
        max-height: 360px;
    }
}

/* Version 0.20: complete route-based fleet workspace */

.fleet-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
}

.fleet-assignment-mode-card {
    margin-top: 16px;
    border-top: 3px solid #47c7ff;
}

.fleet-assignment-mode-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 18px 20px 20px;
}

.fleet-assignment-mode-option {
    display: flex;
    gap: 12px;
    min-height: 86px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(6, 22, 38, 0.5);
    cursor: pointer;
}

.fleet-assignment-mode-option.selected {
    border-color: #38d39f;
    background: rgba(31, 132, 104, 0.13);
}

.fleet-assignment-mode-option input {
    margin-top: 3px;
}

.fleet-assignment-mode-option strong,
.fleet-assignment-mode-option small {
    display: block;
}

.fleet-assignment-mode-option small {
    margin-top: 5px;
    color: var(--muted);
    line-height: 1.45;
}

.fleet-assignment-mode-form .primary-button {
    grid-column: 1 / -1;
    justify-self: end;
}

.route-schedule-enrichment-card {
    margin-top: 16px;
    border-top: 3px solid #a56dff;
    scroll-margin-top: 92px;
}

.route-schedule-enrichment-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 18px 20px 20px;
}

.route-schedule-enrichment-option {
    display: flex;
    gap: 12px;
    min-height: 78px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(6, 22, 38, 0.5);
    cursor: pointer;
}

.route-schedule-enrichment-option.selected {
    border-color: #a56dff;
    background: rgba(130, 82, 219, 0.14);
}

.route-schedule-enrichment-option input {
    margin-top: 3px;
}

.route-schedule-enrichment-option strong,
.route-schedule-enrichment-option small {
    display: block;
}

.route-schedule-enrichment-option small {
    margin-top: 5px;
    color: var(--muted);
    line-height: 1.45;
}

.route-schedule-enrichment-actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.route-schedule-enrichment-actions span {
    color: var(--muted);
    font-size: 12px;
}

.fleet-source-card {
    display: grid;
    min-height: 560px;
    overflow: hidden;
}

.fleet-upload-card {
    grid-template-rows: auto auto minmax(0, 1fr);
}

.fleet-import-sources {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    border-bottom: 1px solid var(--line);
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.fleet-import-sources::-webkit-scrollbar { width: 9px; }
.fleet-import-sources::-webkit-scrollbar-track { background: #091523; }
.fleet-import-sources::-webkit-scrollbar-thumb {
    border: 2px solid #091523;
    border-radius: 999px;
    background: #506983;
}

.fleet-dataset-card {
    grid-template-rows: auto auto auto minmax(0, 1fr);
}

.fleet-source-card .section-title {
    min-height: 92px;
}

.fleet-source-card .section-title > div {
    position: relative;
    padding-left: 38px;
}

.fleet-card-step {
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border: 1px solid #3f658b;
    border-radius: 7px;
    background: #12263c;
    color: #8ac9ff;
    font-size: 11px;
    font-weight: 750;
}

.fleet-upload-title {
    border-left: 4px solid #a982ff;
}

.fleet-dataset-title {
    border-left: 4px solid var(--green);
}

.fleet-count-badge {
    padding: 6px 10px;
    border: 1px solid #37526f;
    border-radius: 999px;
    background: rgba(8, 19, 32, .55);
    color: #a9bdd2;
    font-size: 10px;
    font-weight: 650;
    white-space: nowrap;
}

.fleet-upload-form {
    gap: 10px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
    background: rgba(9, 20, 34, .35);
}

.fleet-upload-form label,
.fleet-dataset-selector label {
    color: #c6d3e1;
    font-size: 12px;
    font-weight: 650;
}

.fleet-upload-form small {
    color: #778da5;
    font-size: 10px;
}

.fleet-upload-form input[type="file"] {
    min-height: 43px;
    padding: 8px;
    border: 1px solid #344c68;
    border-radius: 9px;
    background: #0a1726;
    color: #b9c8d9;
    font-size: 11px;
}

.fleet-catalog-preview,
.aircraft-mapping-preview {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    padding: 17px 20px 20px;
}

.fleet-preview-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}

.fleet-preview-heading strong {
    color: #dce7f4;
    font-size: 12px;
}

.fleet-preview-heading span {
    color: #71869e;
    font-size: 9px;
}

.fleet-preview-list,
.aircraft-mapping-list {
    overflow: auto;
    min-height: 0;
    border: 1px solid #283e57;
    border-radius: 10px;
    background: rgba(6, 15, 26, .44);
}

.fleet-preview-row {
    display: grid;
    grid-template-columns: 60px 70px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 7px 10px;
    border-bottom: 1px solid rgba(40, 62, 87, .75);
    color: #aebfd1;
    font-size: 10px;
}

.fleet-preview-row:last-child {
    border-bottom: 0;
}

.fleet-preview-row strong {
    color: white;
}

.fleet-type-code {
    width: max-content;
    padding: 3px 6px;
    border: 1px solid rgba(169, 130, 255, .45);
    border-radius: 5px;
    background: rgba(169, 130, 255, .08);
    color: #cdb9ff;
    font-weight: 700;
}

.fleet-preview-row small {
    color: #e3aa68;
    font-size: 8px;
}

.fleet-preview-row.fleet-hidden {
    opacity: .62;
}

.fleet-dataset-selector {
    display: grid;
    gap: 7px;
    padding: 18px 20px 12px;
}

.fleet-dataset-selector select {
    min-height: 43px;
    padding: 0 11px;
    border: 1px solid #3c5a79;
    border-radius: 9px;
    outline: none;
    background: #0a1726;
    color: white;
    font-size: 13px;
    font-weight: 650;
}

.dataset-identity {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 20px;
    padding: 11px 12px;
    border: 1px solid rgba(55, 202, 131, .35);
    border-radius: 9px;
    background: rgba(55, 202, 131, .065);
}

.dataset-identity .airline-code {
    display: grid;
    min-width: 48px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(55, 202, 131, .5);
    border-radius: 8px;
    color: #8be8bb;
    font-weight: 750;
}

.dataset-identity strong,
.dataset-identity small {
    display: block;
}

.dataset-identity strong {
    font-size: 13px;
}

.dataset-identity small {
    margin-top: 3px;
    color: #80a68f;
    font-size: 9px;
}

.aircraft-mapping-row {
    display: grid;
    grid-template-columns: minmax(105px, .45fr) minmax(190px, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 63px;
    padding: 9px 10px;
    border-bottom: 1px solid rgba(40, 62, 87, .75);
}

.aircraft-mapping-row:last-child {
    border-bottom: 0;
}

.aircraft-code-block strong,
.aircraft-code-block small {
    display: block;
}

.aircraft-code-block strong {
    color: #9fd3ff;
    font-size: 13px;
}

.aircraft-code-block small {
    margin-top: 3px;
    color: #71869e;
    font-size: 8.5px;
}

.aircraft-mapping-row select {
    width: 100%;
    min-height: 36px;
    padding: 0 8px;
    border: 1px solid #344d69;
    border-radius: 7px;
    background: #0a1726;
    color: #d7e2ee;
    font-size: 10px;
}

.fleet-quick-default-form {
    display: contents;
}

.fleet-type-options {
    grid-column: 1 / -1;
    width: 100%;
    border: 1px solid rgba(139, 92, 246, .35);
    border-radius: 8px;
    background: rgba(139, 92, 246, .055);
}

.fleet-type-options > summary {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 11px;
    color: #c8b5ff;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
}

.fleet-type-options > summary span {
    color: #8ea4bc;
    font-weight: 500;
}

.fleet-type-options-form {
    padding: 0 11px 11px;
}

.fleet-type-option-heading,
.fleet-type-option-row {
    display: grid;
    grid-template-columns: 56px 62px minmax(180px, 1fr);
    align-items: center;
    gap: 8px;
}

.fleet-type-option-heading {
    padding: 8px 6px;
    color: #71869e;
    font-size: 8px;
    text-transform: uppercase;
}

.fleet-type-option-list {
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid rgba(52, 77, 105, .7);
    border-radius: 7px;
    background: #091625;
}

.fleet-type-option-row {
    min-height: 37px;
    padding: 5px 8px;
    border-bottom: 1px solid rgba(40, 62, 87, .65);
    color: #cbd8e6;
    font-size: 9px;
}

.fleet-type-option-row:last-child {
    border-bottom: 0;
}

.fleet-type-options-form > small {
    display: block;
    margin: 9px 0;
    color: #7f95ac;
    line-height: 1.4;
}

.small-save-button {
    min-height: 35px;
    padding: 0 10px;
    border: 1px solid rgba(66, 165, 255, .52);
    border-radius: 7px;
    background: rgba(66, 165, 255, .1);
    color: #a8d7ff;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
}

.small-save-button:hover {
    background: rgba(66, 165, 255, .18);
}

.mapping-suggestion,
.mapping-saved {
    grid-column: 2 / -1;
    color: #8ab6dc;
    font-size: 8px;
}

.mapping-saved {
    color: #78d5a7;
}

.fleet-compare-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 16px 0;
    padding: 17px 20px;
    border: 1px solid #2b435e;
    border-radius: 13px;
    background: linear-gradient(120deg, rgba(19, 38, 60, .96), rgba(10, 23, 39, .96));
}

.fleet-compare-action strong,
.fleet-compare-action span {
    display: block;
}

.fleet-compare-action strong {
    color: #dce8f4;
    font-size: 13px;
}

.fleet-compare-action div > span {
    margin-top: 3px;
    color: #8298b0;
    font-size: 10px;
}

.fleet-compare-button {
    display: flex;
    min-width: 170px;
    min-height: 41px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid rgba(55, 202, 131, .55);
    border-radius: 9px;
    background: linear-gradient(135deg, #249f65, #38c982);
    color: white;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.fleet-compare-button.disabled {
    border-color: #40536a;
    background: #24364a;
    color: #7f93aa;
}

.fleet-route-section {
    overflow: hidden;
}

.fleet-route-title {
    border-left: 4px solid var(--green);
}

.fleet-route-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.fleet-route-legend span {
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 8px;
    font-weight: 700;
}

.legend-suggested {
    border: 1px solid rgba(66, 165, 255, .42);
    color: #94cbfa;
}

.legend-manual {
    border: 1px solid rgba(55, 202, 131, .44);
    color: #80dfb0;
}

.legend-deleted {
    border: 1px solid rgba(243, 111, 116, .44);
    color: #f8a4a8;
}

.fleet-route-list {
    overflow-x: auto;
}

.fleet-route-row {
    display: grid;
    min-width: 1260px;
    grid-template-columns: 105px 165px 100px minmax(185px, .8fr) minmax(185px, .8fr) minmax(300px, 1.15fr);
    align-items: center;
    gap: 13px;
    padding: 11px 16px;
    border-bottom: 1px solid #263b54;
    background: rgba(10, 23, 38, .38);
    color: #b8c8d9;
    font-size: 10px;
}

.fleet-route-row:last-child {
    border-bottom: 0;
}

.fleet-route-row:not(.fleet-route-header):hover {
    background: rgba(18, 38, 61, .55);
}

.fleet-route-header {
    position: sticky;
    z-index: 2;
    top: 68px;
    min-height: 39px;
    padding-block: 8px;
    background: #14253a;
    color: #87a4c4;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.fleet-route-identity strong,
.fleet-route-identity span,
.fleet-route-identity small,
.fleet-route-aircraft strong,
.fleet-route-aircraft small,
.fleet-recommendation strong,
.fleet-recommendation small,
.effective-fleet-values small {
    display: block;
}

.fleet-route-identity strong {
    color: white;
    font-size: 12px;
}

.fleet-route-identity span {
    margin-top: 2px;
    color: #a9bdd2;
}

.fleet-route-identity small {
    margin-top: 2px;
    color: #7189a2;
    font-size: 8px;
}

.fleet-route-aircraft strong {
    color: #9cd1ff;
    font-size: 13px;
}

.fleet-route-aircraft small,
.fleet-recommendation small,
.effective-fleet-values small {
    margin-top: 3px;
    color: #71879f;
    font-size: 8px;
}

.fleet-recommendation strong {
    color: #d8e5f1;
    font-size: 11px;
}

.missing-value {
    color: #f1b95d !important;
}

.effective-fleet-values {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

.effective-fleet-values small {
    width: 100%;
}

.fleet-id-chip {
    padding: 4px 7px;
    border: 1px solid rgba(66, 165, 255, .4);
    border-radius: 6px;
    background: rgba(66, 165, 255, .07);
    color: #a8d7ff;
    font-size: 9px;
    font-weight: 700;
}

.fleet-id-chip.manual {
    border-color: rgba(55, 202, 131, .5);
    background: rgba(55, 202, 131, .09);
    color: #9be9c2;
}

.route-deleted-label {
    padding: 5px 8px;
    border: 1px solid rgba(243, 111, 116, .48);
    border-radius: 6px;
    background: rgba(243, 111, 116, .08);
    color: #ffb3b7;
    font-weight: 700;
}

.fleet-route-excluded {
    background: rgba(70, 30, 38, .22);
    opacity: .72;
}

.route-fleet-picker {
    position: relative;
}

.route-fleet-picker > summary {
    display: flex;
    min-height: 35px;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border: 1px solid #3b5c7d;
    border-radius: 7px;
    background: #13263b;
    color: #a9d4fa;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
    list-style: none;
}

.route-fleet-picker > summary::-webkit-details-marker {
    display: none;
}

.route-fleet-picker[open] > summary {
    border-color: var(--green);
    color: #a3e8c5;
}

.route-fleet-form {
    width: 100%;
    margin-top: 7px;
    padding: 10px;
    border: 1px solid #3a5675;
    border-radius: 10px;
    background: #0b1929;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
}

.route-fleet-checkboxes {
    display: grid;
    max-height: 260px;
    gap: 5px;
    overflow-y: auto;
}

.route-fleet-checkboxes label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    border: 1px solid #293f58;
    border-radius: 7px;
    background: rgba(8, 19, 32, .65);
    cursor: pointer;
}

.route-fleet-checkboxes label:has(input:checked) {
    border-color: rgba(55, 202, 131, .55);
    background: rgba(55, 202, 131, .09);
}

.route-fleet-checkboxes input {
    width: 15px;
    height: 15px;
    accent-color: var(--green);
}

.route-fleet-checkboxes strong,
.route-fleet-checkboxes small {
    display: block;
}

.route-fleet-checkboxes strong {
    color: #dce7f3;
    font-size: 10px;
}

.route-fleet-checkboxes small {
    margin-top: 2px;
    color: #71879f;
    font-size: 8px;
}

.route-fleet-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid #293f58;
}

.route-reset-button,
.route-delete-button,
.route-restore-button {
    min-height: 34px;
    padding: 0 9px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 9px;
    font-weight: 700;
}

.route-reset-button {
    border: 1px solid #485d74;
    background: rgba(123, 143, 165, .08);
    color: #b8c5d3;
}

.route-delete-button {
    margin-left: auto;
    border: 1px solid rgba(243, 111, 116, .5);
    background: rgba(243, 111, 116, .08);
    color: #ffb2b6;
}

.route-restore-button {
    width: 100%;
    border: 1px solid rgba(55, 202, 131, .5);
    background: rgba(55, 202, 131, .09);
    color: #9be9c2;
}

.export-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 1050px) {
    .fleet-source-grid {
        grid-template-columns: 1fr;
    }

    .fleet-source-card {
        min-height: 500px;
    }

    .export-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .fleet-source-card {
        min-height: auto;
    }

    .fleet-preview-list,
    .aircraft-mapping-list {
        max-height: 360px;
    }

    .fleet-preview-heading,
    .fleet-compare-action {
        align-items: flex-start;
        flex-direction: column;
    }

    .fleet-compare-button {
        width: 100%;
    }

    .aircraft-mapping-row {
        grid-template-columns: 1fr;
    }

    .mapping-suggestion,
    .mapping-saved {
        grid-column: auto;
    }

    .export-summary {
        grid-template-columns: 1fr;
    }
}

/* Airport editing and individual aircraft workspace */
.airport-row {
    grid-template-columns: 110px 110px minmax(250px, 1fr) 70px 145px 230px;
}
.airport-row-changed { border-left: 3px solid #ffb84f; background: rgba(255, 184, 79, .055); }
.airport-row-delete { border-left: 3px solid var(--red); background: rgba(243, 111, 116, .07); }
.airport-state-pill.changed { color: #ffb84f; }
.airport-state-pill.delete { color: var(--red); }
.airport-row-actions { display: flex; align-items: center; gap: 7px; }
.airport-row-actions button { min-height: 34px; padding: 0 10px; white-space: nowrap; }

.fleet-cost-index-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 21px;
    cursor: pointer;
    list-style: none;
}
.fleet-cost-index-summary::-webkit-details-marker { display: none; }
.fleet-cost-index-summary > span:first-child { display: grid; gap: 3px; }
.fleet-cost-index-summary strong { color: #eef7ff; font-size: .92rem; }
.fleet-cost-index-summary small { color: var(--muted); font-size: .7rem; }
.fleet-cost-index-card[open] .fleet-cost-index-summary { border-bottom: 1px solid var(--line); }

.aircraft-source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.aircraft-capture-card { margin-bottom: 16px; overflow: hidden; }
.aircraft-capture-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px 22px; }
.aircraft-capture-option {
    display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px;
    align-items: start; padding: 16px; border: 1px solid #304964; border-radius: 12px;
    background: #0a1929;
}
.aircraft-capture-option.online { border-color: rgba(58, 203, 185, .5); background: rgba(31, 185, 159, .055); }
.aircraft-capture-option.local { border-color: rgba(159, 112, 255, .52); background: rgba(139, 92, 246, .055); }
.aircraft-capture-icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid currentColor; border-radius: 10px; color: #68d9cb; font-size: 1.1rem; }
.aircraft-capture-option.local .aircraft-capture-icon { color: #bd9cff; }
.aircraft-capture-option > div { display: grid; gap: 4px; }
.aircraft-capture-option strong { color: #f4f8ff; font-size: .84rem; }
.aircraft-capture-option small { color: var(--muted); font-size: .66rem; line-height: 1.45; }
.aircraft-capture-option label { grid-column: 1 / -1; display: grid; gap: 5px; color: #b9c9d9; font-size: .68rem; font-weight: 700; }
.aircraft-capture-option label input[type="text"], .aircraft-capture-option label input:not([type]) { min-height: 40px; }
.aircraft-capture-option .compact-check { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.aircraft-capture-option .compact-check input { width: 16px; height: 16px; }
.aircraft-capture-option button { grid-column: 1 / -1; }
.aircraft-source-summary { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.aircraft-source-summary span { display: grid; gap: 4px; padding: 13px 20px; border-right: 1px solid var(--line); }
.aircraft-source-summary span:last-child { border-right: 0; }
.aircraft-source-summary small { color: var(--muted); font-size: .62rem; }
.aircraft-source-summary strong { color: #eef7ff; font-size: .9rem; }
.aircraft-source-card { overflow: hidden; }
.aircraft-source-card > .upload-form { padding: 18px 22px 22px; }
.aircraft-identity-card { display: flex; flex-direction: column; }
.aircraft-identity-card .fleet-dataset-selector { padding: 20px 22px 0; }
.aircraft-identity-card .dataset-identity { margin: 14px 22px; }
.aircraft-download-link {
    display: flex; align-items: center; justify-content: center; min-height: 42px;
    margin: auto 22px 22px; border: 1px solid rgba(56, 209, 154, .55);
    border-radius: 9px; background: rgba(56, 209, 154, .08); color: #79e2ba;
    font-size: .75rem; font-weight: 800; text-decoration: none;
}
.aircraft-download-link.disabled { border-color: rgba(255, 184, 79, .5); background: rgba(255, 184, 79, .07); color: #ffd28b; }
.aircraft-observation-card { margin-bottom: 16px; overflow: hidden; }
.aircraft-observation-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 21px; cursor: pointer; list-style: none; }
.aircraft-observation-card > summary::-webkit-details-marker { display: none; }
.aircraft-observation-card > summary > span:first-child { display: grid; gap: 3px; }
.aircraft-observation-card summary small { color: var(--muted); font-size: .68rem; }
.aircraft-observation-list { max-height: 330px; overflow: auto; border-top: 1px solid var(--line); }
.aircraft-observation-row { display: grid; grid-template-columns: 130px 90px 100px minmax(260px, 1fr) 110px; gap: 12px; align-items: center; padding: 11px 18px; border-bottom: 1px solid var(--line); }
.aircraft-observation-row > strong { color: #8ed8ff; }
.aircraft-catalog-card { overflow: hidden; }
.aircraft-bulk-fleet-card {
    margin-bottom: 18px;
    border-top: 4px solid #8b5cf6;
}
.aircraft-bulk-fleet-form {
    display: grid;
    grid-template-columns: minmax(260px, 1.25fr) minmax(240px, 1fr) minmax(250px, .9fr) auto;
    align-items: end;
    gap: 14px;
    padding: 18px 22px 22px;
}
.aircraft-bulk-fleet-form > label > span,
.aircraft-bulk-overwrite span strong,
.aircraft-bulk-overwrite span small {
    display: block;
}
.aircraft-bulk-fleet-form > label > span {
    margin-bottom: 7px;
    color: #a9bdd1;
    font-size: .72rem;
    font-weight: 700;
}
.aircraft-bulk-fleet-form select {
    width: 100%;
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid #38516c;
    border-radius: 8px;
    background: #081522;
    color: #eef7ff;
}
.aircraft-bulk-overwrite {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 8px 11px;
    border: 1px solid rgba(255, 184, 79, .4);
    border-radius: 8px;
    background: rgba(255, 184, 79, .06);
}
.aircraft-bulk-overwrite input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}
.aircraft-bulk-overwrite span {
    margin: 0 !important;
}
.aircraft-bulk-overwrite span strong {
    color: #ffd18a;
    font-size: .68rem;
}
.aircraft-bulk-overwrite span small {
    margin-top: 2px;
    color: #8298af;
    font-size: .57rem;
    line-height: 1.35;
}
@media (max-width: 1180px) {
    .aircraft-bulk-fleet-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
    .aircraft-bulk-fleet-form { grid-template-columns: 1fr; }
}
.aircraft-list { max-height: 650px; overflow: auto; scrollbar-color: #506983 #091523; scrollbar-width: thin; }
.aircraft-row {
    display: grid; min-width: 1220px;
    grid-template-columns: 86px 150px minmax(210px, 1fr) minmax(220px, .9fr) minmax(300px, 1.15fr) 205px;
    gap: 12px; align-items: center; min-height: 68px; padding: 10px 16px;
    border-bottom: 1px solid #263b53; box-shadow: inset 3px 0 transparent;
}
.aircraft-row-header { position: sticky; z-index: 3; top: 0; min-height: 42px; background: #14263d; color: #9eb2ca; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.aircraft-row-api { box-shadow: inset 3px 0 var(--green); }
.aircraft-row-local { box-shadow: inset 3px 0 #ffb84f; }
.aircraft-row-delete { box-shadow: inset 3px 0 var(--red); background: rgba(243, 111, 116, .055); }
.aircraft-row input, .aircraft-row select, .aircraft-new-form input, .aircraft-new-form select, .aircraft-observation-row select { width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid #38516c; border-radius: 8px; background: #081522; color: #eef7ff; }
.aircraft-registration { display: grid; gap: 3px; }
.aircraft-registration small { color: var(--muted); font-size: .6rem; }
.aircraft-source-fields { display: grid; gap: 5px; }
.aircraft-source-fields > span { display: grid; grid-template-columns: .7fr 1fr .8fr; gap: 5px; }
.aircraft-source-fields > span input { min-height: 29px; padding: 0 7px; color: #9edfff; font-size: .64rem; }
.aircraft-compact-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.aircraft-new-dialog { width: min(760px, calc(100vw - 32px)); }
.aircraft-new-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 20px; }
.aircraft-new-form label { display: grid; gap: 5px; color: var(--muted); font-size: .72rem; }
.aircraft-new-form .primary-button { grid-column: 1 / -1; }

@media (max-width: 1050px) {
    .aircraft-source-grid, .aircraft-capture-grid { grid-template-columns: 1fr; }
    .aircraft-source-summary { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
    .aircraft-source-summary { grid-template-columns: 1fr; }
    .aircraft-source-summary span { border-right: 0; border-bottom: 1px solid var(--line); }
    .aircraft-new-form { grid-template-columns: 1fr; }
    .aircraft-new-form .primary-button { grid-column: auto; }
}

/* Version 0.21: bounded Fleet panels with independent scrolling */

.fleet-source-card {
    height: 650px;
    min-height: 650px;
    max-height: 650px;
}

.fleet-catalog-preview,
.aircraft-mapping-preview {
    overflow: hidden;
}

.fleet-preview-list,
.aircraft-mapping-list {
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.fleet-preview-list::-webkit-scrollbar,
.aircraft-mapping-list::-webkit-scrollbar {
    width: 9px;
}

.fleet-preview-list::-webkit-scrollbar-track,
.aircraft-mapping-list::-webkit-scrollbar-track {
    background: #091523;
}

.fleet-preview-list::-webkit-scrollbar-thumb,
.aircraft-mapping-list::-webkit-scrollbar-thumb {
    border: 2px solid #091523;
    border-radius: 999px;
    background: #506983;
}

.fleet-preview-list::-webkit-scrollbar-thumb:hover,
.aircraft-mapping-list::-webkit-scrollbar-thumb:hover {
    background: #6685a5;
}

@media (max-width: 1050px) {
    .fleet-source-card {
        height: 620px;
        min-height: 620px;
        max-height: 620px;
    }
}

@media (max-width: 680px) {
    .fleet-source-card {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .fleet-preview-list,
    .aircraft-mapping-list {
        height: min(360px, 55vh);
        max-height: min(360px, 55vh);
    }
}

/* Version 0.22: clearer Fleet typography and route editor dialog */

.fleet-source-card .section-title h2,
.fleet-route-section .section-title h2 {
    font-size: 20px;
}

.fleet-source-card .section-title p,
.fleet-route-section .section-title p {
    font-size: 13px;
    line-height: 1.45;
}

.fleet-count-badge {
    font-size: 11px;
}

.fleet-upload-form label,
.fleet-dataset-selector label {
    font-size: 13px;
}

.fleet-upload-form small {
    font-size: 11px;
    line-height: 1.4;
}

.fleet-upload-form input[type="file"] {
    font-size: 12px;
}

.fleet-preview-heading strong {
    font-size: 13px;
}

.fleet-preview-heading span {
    font-size: 10px;
}

.fleet-preview-row {
    min-height: 45px;
    font-size: 11.5px;
}

.fleet-preview-row small {
    font-size: 9.5px;
}

.dataset-identity strong {
    font-size: 14px;
}

.dataset-identity small {
    font-size: 10px;
}

.aircraft-code-block strong {
    font-size: 14px;
}

.aircraft-code-block small {
    font-size: 10px;
}

.aircraft-mapping-row select,
.small-save-button {
    font-size: 11.5px;
}

.mapping-suggestion,
.mapping-saved {
    font-size: 9.5px;
}

.fleet-compare-action strong {
    font-size: 14px;
}

.fleet-compare-action div > span {
    font-size: 11px;
}

.fleet-compare-button {
    font-size: 13px;
}

.fleet-route-list {
    position: relative;
    isolation: isolate;
}

.fleet-route-row {
    font-size: 11.5px;
}

.fleet-route-header {
    position: static;
    min-height: 43px;
    font-size: 10.5px;
}

.fleet-route-identity strong {
    font-size: 13.5px;
}

.fleet-route-identity small,
.fleet-route-aircraft small,
.fleet-recommendation small,
.effective-fleet-values small {
    font-size: 9.5px;
}

.fleet-route-aircraft strong {
    font-size: 14px;
}

.fleet-recommendation strong {
    font-size: 12.5px;
}

.fleet-id-chip {
    font-size: 10.5px;
}

.route-fleet-edit-button {
    width: 100%;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid #47709a;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(66, 165, 255, .13), rgba(66, 165, 255, .06));
    color: #b9deff;
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 700;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.route-fleet-edit-button:hover {
    border-color: #65b5ff;
    background: rgba(66, 165, 255, .18);
    color: white;
}

.route-fleet-dialog {
    width: min(760px, calc(100vw - 32px));
    max-height: min(780px, calc(100vh - 40px));
    padding: 0;
    overflow: hidden;
    border: 1px solid #3a5878;
    border-radius: 16px;
    background: #0d1b2c;
    color: var(--text);
    box-shadow: 0 28px 90px rgba(0, 0, 0, .72);
}

.route-fleet-dialog::backdrop {
    background: rgba(2, 8, 16, .78);
    backdrop-filter: blur(5px);
}

.route-fleet-dialog[open] {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
}

.route-fleet-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid #2a405a;
    background: linear-gradient(135deg, rgba(24, 47, 73, .98), rgba(13, 27, 44, .98));
}

.route-fleet-dialog-header h3 {
    margin: 5px 0 5px;
    font-size: 22px;
    letter-spacing: -.02em;
}

.route-fleet-dialog-header p {
    margin: 0;
    color: #9eb1c8;
    font-size: 12.5px;
}

.route-dialog-close {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    padding: 0;
    border: 1px solid #45617f;
    border-radius: 9px;
    background: rgba(7, 17, 29, .45);
    color: #bad0e6;
    cursor: pointer;
    font-size: 23px;
    line-height: 1;
}

.route-dialog-close:hover {
    border-color: #77bfff;
    color: white;
}

.route-fleet-dialog-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 14px 24px;
    border-bottom: 1px solid #2a405a;
    background: rgba(7, 17, 29, .34);
}

.route-fleet-dialog-summary div {
    padding: 9px 10px;
    border: 1px solid #293f58;
    border-radius: 8px;
    background: rgba(11, 25, 41, .76);
}

.route-fleet-dialog-summary span,
.route-fleet-dialog-summary strong {
    display: block;
}

.route-fleet-dialog-summary span {
    color: #7990a9;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.route-fleet-dialog-summary strong {
    margin-top: 4px;
    color: #dce8f5;
    font-size: 12px;
}

.route-fleet-dialog-form {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr) auto;
    margin: 0;
    padding: 18px 24px 22px;
    border: 0;
    border-radius: 0;
    overflow: hidden;
    background: #0d1b2c;
    box-shadow: none;
}

.route-fleet-dialog-copy {
    margin-bottom: 12px;
}

.route-fleet-dialog-copy strong,
.route-fleet-dialog-copy span {
    display: block;
}

.route-fleet-dialog-copy strong {
    font-size: 14px;
}

.route-fleet-dialog-copy span {
    margin-top: 3px;
    color: #8ea3ba;
    font-size: 11px;
}

.route-fleet-dialog .route-fleet-checkboxes {
    min-height: 0;
    max-height: none;
    padding-right: 4px;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.route-fleet-dialog .route-fleet-checkboxes label {
    min-height: 49px;
    padding: 9px 10px;
}

.route-fleet-dialog .route-fleet-checkboxes strong {
    font-size: 12px;
}

.route-fleet-dialog .route-fleet-checkboxes small {
    font-size: 10px;
}

.route-fleet-dialog .route-fleet-form-actions {
    margin-top: 14px;
    padding-top: 14px;
}

.route-fleet-dialog .small-save-button,
.route-fleet-dialog .route-reset-button,
.route-fleet-dialog .route-delete-button {
    min-height: 39px;
    font-size: 11px;
}

@media (max-width: 680px) {
    .route-fleet-dialog {
        width: calc(100vw - 18px);
        max-height: calc(100vh - 18px);
    }

    .route-fleet-dialog-header {
        padding: 18px;
    }

    .route-fleet-dialog-header h3 {
        font-size: 19px;
    }

    .route-fleet-dialog-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 12px 18px;
    }

    .route-fleet-dialog-form {
        padding: 16px 18px 18px;
    }

    .route-fleet-dialog .route-fleet-form-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .route-fleet-dialog .route-delete-button {
        margin-left: 0;
    }
}

/* Keep the FR24 event log inside the height defined by the configuration card. */

@media (min-width: 1001px) {
    .fr24-workspace {
        align-items: start;
    }

    .capture-config-card {
        align-self: start;
    }

    .sidebar-stack {
        height: var(--capture-panel-height, 700px);
        min-height: 0;
        max-height: var(--capture-panel-height, 700px);
        align-self: start;
        overflow: hidden;
    }

    .mini-log-card {
        min-height: 0;
        overflow: hidden;
    }

    .mini-log {
        height: auto;
        min-height: 0;
        max-height: none;
        overflow: auto;
        overscroll-behavior: contain;
        scrollbar-color: #506983 #091523;
        scrollbar-width: thin;
    }
}

.mini-log::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

.mini-log::-webkit-scrollbar-track {
    background: #091523;
}

.mini-log::-webkit-scrollbar-thumb {
    border: 2px solid #091523;
    border-radius: 999px;
    background: #506983;
}

.mini-log::-webkit-scrollbar-thumb:hover {
    background: #6685a5;
}

@media (max-width: 1000px) {
    .sidebar-stack {
        height: auto;
        min-height: 0;
        max-height: none;
        overflow: visible;
    }

    .mini-log {
        height: min(360px, 48vh);
        min-height: 220px;
        max-height: min(360px, 48vh);
        overflow: auto;
    }
}

/* Version 0.24: compact active jobs, active-run notice and stable live log */

.dashboard-active-section {
    overflow: hidden;
    margin-bottom: 20px;
}

.dashboard-active-title p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.dashboard-active-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
    padding: 18px;
}

.dashboard-active-card {
    display: grid;
    gap: 13px;
    padding: 17px;
    border: 1px solid #29415e;
    border-radius: 13px;
    background:
        radial-gradient(circle at 100% 0, rgba(242, 191, 74, .1), transparent 42%),
        #0b1828;
    color: #c2d1e1;
    text-decoration: none;
    transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.dashboard-active-card:hover {
    border-color: rgba(66, 165, 255, .7);
    background:
        radial-gradient(circle at 100% 0, rgba(66, 165, 255, .14), transparent 44%),
        #0d1c2e;
    transform: translateY(-1px);
}

.dashboard-active-card-head,
.dashboard-active-phase,
.dashboard-active-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.dashboard-active-icao {
    color: white;
    font-size: 22px;
    font-weight: 750;
    letter-spacing: .04em;
}

.dashboard-active-phase strong {
    overflow: hidden;
    color: #e4edf7;
    font-size: 13px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-active-phase span {
    color: #8ccaff;
    font-size: 16px;
    font-weight: 750;
}

.dashboard-active-progress {
    height: 7px;
}

.dashboard-active-details {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.dashboard-active-details span {
    display: grid;
    gap: 2px;
    padding: 8px 10px;
    border: 1px solid rgba(53, 81, 114, .72);
    border-radius: 8px;
    background: rgba(7, 18, 31, .6);
    color: #8198af;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.dashboard-active-details strong {
    overflow: hidden;
    color: #d9e8f7;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-active-meta {
    justify-content: flex-start;
    color: #8fa4ba;
    font-size: 10px;
}

.dashboard-active-meta time {
    margin-left: auto;
}

@media (max-width: 620px) {
    .dashboard-active-details {
        grid-template-columns: 1fr;
    }
}

.active-job-dialog {
    width: min(92vw, 620px);
    overflow: hidden;
    padding: 0;
    border: 1px solid #355172;
    border-radius: 16px;
    background: #0b1726;
    color: #d9e5f1;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .58);
}

.active-job-dialog::backdrop {
    background: rgba(2, 8, 15, .76);
    backdrop-filter: blur(4px);
}

.active-job-dialog-accent {
    height: 4px;
    background: linear-gradient(90deg, #f2bf4a, #f09a3e);
}

.active-job-dialog-header,
.active-job-dialog-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
}

.active-job-dialog-header {
    border-bottom: 1px solid #263c56;
}

.active-job-dialog-header h2 {
    margin: 5px 0 0;
    color: white;
    font-size: 22px;
}

.active-job-dialog-body {
    padding: 22px;
}

.active-job-dialog-body p {
    margin: 0;
    color: #afc0d2;
    font-size: 13px;
    line-height: 1.6;
}

.active-job-dialog-status {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 14px;
    border: 1px solid #2b425e;
    border-radius: 11px;
    background: #081421;
}

.active-job-dialog-status strong {
    overflow: hidden;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.active-job-dialog-status > span:last-child {
    color: #8ccaff;
    font-size: 18px;
    font-weight: 750;
}

.active-job-dialog-actions {
    justify-content: flex-end;
    padding-top: 0;
}

.active-job-dialog-actions .primary-button,
.active-job-dialog-actions .secondary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.stable-job-log {
    height: min(62vh, 720px);
    min-height: 360px;
    max-height: min(62vh, 720px);
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

@media (max-width: 620px) {
    .dashboard-active-grid {
        grid-template-columns: 1fr;
        padding: 12px;
    }

    .dashboard-active-meta {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .dashboard-active-meta time {
        width: 100%;
        margin-left: 0;
    }

    .active-job-dialog-status {
        grid-template-columns: auto 1fr;
    }

    .active-job-dialog-status > span:last-child {
        grid-column: 2;
    }

    .active-job-dialog-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .stable-job-log {
        height: 56vh;
        min-height: 300px;
        max-height: 56vh;
    }
}

.route-fleet-dialog.fleet-bulk-dialog {
    width: min(940px, calc(100vw - 32px));
}

.route-fleet-dialog.fleet-bulk-dialog[open] {
    grid-template-rows: auto minmax(0, 1fr);
}

.fleet-bulk-dialog-content {
    min-height: 0;
    overflow-y: auto;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.fleet-bulk-remove-form {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr);
    align-items: center;
    gap: 18px;
    margin: 0 22px 22px;
    padding: 16px;
    border: 1px solid rgba(243, 111, 116, .48);
    border-radius: 11px;
    background:
        linear-gradient(120deg, rgba(243, 111, 116, .08), transparent 52%),
        #0a1725;
}

.fleet-bulk-remove-copy {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fleet-bulk-remove-copy strong,
.fleet-bulk-remove-copy small {
    display: block;
}

.fleet-bulk-remove-copy strong {
    color: #ffd4d6;
    font-size: 14px;
}

.fleet-bulk-remove-copy small {
    margin-top: 4px;
    color: #9daec1;
    font-size: 10px;
    line-height: 1.45;
}

.danger-step {
    border-color: rgba(243, 111, 116, .65);
    background: rgba(243, 111, 116, .13);
    color: #ffb7ba;
}

.fleet-bulk-remove-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
}

.fleet-bulk-remove-controls select {
    width: 100%;
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid #3b526e;
    border-radius: 8px;
    outline: none;
    background: #081522;
    color: white;
    font-size: 11px;
}

.fleet-bulk-remove-controls select:focus {
    border-color: rgba(243, 111, 116, .8);
}

.fleet-bulk-remove-controls .route-delete-button {
    min-height: 42px;
    margin: 0;
    padding-inline: 16px;
}

@media (max-width: 760px) {
    .route-fleet-dialog.fleet-bulk-dialog {
        width: calc(100vw - 18px);
        max-height: calc(100vh - 18px);
    }

    .fleet-bulk-remove-form,
    .fleet-bulk-remove-controls {
        grid-template-columns: 1fr;
    }

    .fleet-bulk-remove-form {
        margin: 0 16px 16px;
    }
}

/* Version 0.27: explicit Fleet-to-Exporter workflow handoff */

.fleet-export-handoff {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-top: 16px;
    padding: 17px 18px;
    border: 1px solid rgba(55, 202, 131, .48);
    border-radius: 13px;
    background:
        radial-gradient(circle at 100% 0, rgba(55, 202, 131, .13), transparent 42%),
        linear-gradient(120deg, #10243a, #0b1929);
}

.fleet-export-handoff-status {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 13px;
}

.fleet-handoff-check {
    display: inline-flex;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(55, 202, 131, .65);
    border-radius: 50%;
    background: rgba(55, 202, 131, .12);
    color: #77e4ae;
    font-size: 20px;
    font-weight: 800;
}

.fleet-export-handoff-status strong,
.fleet-export-handoff-status span {
    display: block;
}

.fleet-export-handoff-status strong {
    color: #e3edf7;
    font-size: 14px;
}

.fleet-export-handoff-status div > span {
    max-width: 760px;
    margin-top: 4px;
    color: #94a9bf;
    font-size: 10.5px;
    line-height: 1.5;
}

.fleet-export-next-button {
    display: flex;
    min-width: 230px;
    min-height: 52px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 8px 15px 8px 17px;
    border: 1px solid rgba(55, 202, 131, .7);
    border-radius: 10px;
    background: linear-gradient(135deg, #219d62, #35c57f);
    color: white;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(55, 202, 131, .18);
    transition: filter .16s ease, transform .16s ease;
}

.fleet-export-next-button:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.fleet-export-next-button small,
.fleet-export-next-button strong {
    display: block;
}

.fleet-export-next-button small {
    margin-bottom: 2px;
    color: #c7f5dd;
    font-size: 8.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fleet-export-next-button strong {
    font-size: 13px;
}

.fleet-export-next-arrow {
    font-size: 21px;
}

@media (max-width: 760px) {
    .fleet-export-handoff {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-export-next-button {
        width: 100%;
    }
}

/* Version 0.28: Airport comparison between FR24 and Fleet Management */

.module-grid {
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
}

.module-tile.airports {
    color: #45d5df;
}

.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;
}

.airport-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
}

.airport-source-card {
    display: grid;
    min-height: 610px;
    grid-template-rows: auto auto minmax(0, 1fr);
    overflow: hidden;
}

.airport-card-title {
    border-top: 4px solid #45d5df;
}

.airport-upload-card .airport-card-title {
    border-top-color: #a982ff;
}

.airport-upload-form {
    display: grid;
    gap: 10px;
    padding: 18px 20px;
    border-bottom: 1px solid #293f58;
}

.airport-upload-form small {
    color: #8fa5bd;
    font-size: 10px;
    line-height: 1.45;
}

.airport-catalog-preview {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    padding: 15px 20px 20px;
}

.airport-preview-list {
    min-height: 0;
    overflow-y: auto;
    border: 1px solid #2d4561;
    border-radius: 10px;
    background: #091725;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.airport-preview-row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    padding: 9px 12px;
    border-bottom: 1px solid #263b53;
    font-size: 11px;
}

.airport-preview-row:last-child {
    border-bottom: 0;
}

.airport-preview-row strong {
    color: #8ed8ff;
    font-size: 12px;
}

.airport-preview-row span {
    color: #c7d5e4;
}

.airport-preview-row small {
    padding: 3px 7px;
    border: 1px solid rgba(55, 202, 131, .55);
    border-radius: 999px;
    color: #79e3ae;
    font-size: 9px;
}

.airport-dataset-card {
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
}

.airport-dataset-card .fleet-dataset-selector {
    padding: 18px 20px 0;
}

.airport-dataset-identity {
    margin: 14px 20px;
}

.airport-dataset-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 20px;
}

.airport-dataset-summary div {
    padding: 14px;
    border: 1px solid rgba(55, 202, 131, .42);
    border-radius: 10px;
    background: rgba(55, 202, 131, .07);
}

.airport-dataset-summary .missing {
    border-color: rgba(243, 111, 116, .5);
    background: rgba(243, 111, 116, .07);
}

.airport-dataset-summary .prepared {
    border-color: rgba(255, 180, 95, .5);
    background: rgba(255, 180, 95, .07);
}

.airport-dataset-summary span,
.airport-dataset-summary strong {
    display: block;
}

.airport-dataset-summary span {
    color: #9fb2c7;
    font-size: 10px;
}

.airport-dataset-summary strong {
    margin-top: 5px;
    color: #e9f2fa;
    font-size: 24px;
}

.airport-cache-note {
    align-self: end;
    margin: 16px 20px 20px;
    padding: 12px 14px;
    border-left: 3px solid #45d5df;
    border-radius: 7px;
    background: rgba(69, 213, 223, .07);
    color: #9eb3c8;
    font-size: 10.5px;
    line-height: 1.5;
}

.airport-compare-action {
    margin-top: 16px;
}

.airport-compare-button {
    background: linear-gradient(135deg, #168c96, #3fc8d3);
}

.airport-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0;
}

.airport-status-card {
    padding: 16px 18px;
    border: 1px solid currentColor;
    border-radius: 12px;
    background: color-mix(in srgb, currentColor 7%, #0d1b2d);
}

.airport-status-card.present {
    color: var(--green);
}

.airport-status-card.missing {
    color: var(--red);
}

.airport-status-card.prepared {
    color: #ffb45f;
}

.airport-status-card span,
.airport-status-card strong,
.airport-status-card small {
    display: block;
}

.airport-status-card span {
    font-size: 11px;
}

.airport-status-card strong {
    margin: 4px 0;
    color: white;
    font-size: 28px;
}

.airport-status-card small {
    color: #9fb1c5;
    font-size: 9.5px;
}

.airport-comparison-card {
    overflow: hidden;
}

.airport-comparison-title {
    border-left: 4px solid #45d5df;
}

.airport-download-button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    border: 1px solid rgba(55, 202, 131, .65);
    border-radius: 9px;
    background: rgba(55, 202, 131, .11);
    color: #8ce8b9;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.airport-list {
    max-height: 750px;
    overflow: auto;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}

.airport-row {
    display: grid;
    min-width: 1030px;
    grid-template-columns: 120px 120px minmax(270px, 1fr) 80px 180px 110px;
    align-items: center;
    gap: 14px;
    min-height: 64px;
    padding: 10px 16px;
    border-bottom: 1px solid #263b53;
    color: #c9d6e4;
    font-size: 12px;
}

.airport-row-header {
    position: sticky;
    z-index: 3;
    top: 0;
    min-height: 42px;
    background: #14263d;
    color: #9eb2ca;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.airport-row-present {
    border-left: 3px solid var(--green);
    background: rgba(55, 202, 131, .035);
}

.airport-row-missing {
    border-left: 3px solid var(--red);
    background: rgba(243, 111, 116, .065);
}

.airport-row-prepared {
    border-left: 3px solid #ffb45f;
    background: rgba(255, 180, 95, .055);
}

.airport-state-pill,
.airport-base-pill {
    display: inline-flex;
    padding: 4px 8px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 750;
    text-transform: uppercase;
}

.airport-state-pill.present,
.airport-base-pill {
    color: var(--green);
}

.airport-state-pill.missing {
    color: var(--red);
}

.airport-state-pill.prepared {
    color: #ffb45f;
}

.airport-code-cell strong,
.airport-code-cell small {
    display: block;
}

.airport-code-cell strong {
    color: #8ed8ff;
    font-size: 15px;
}

.airport-code-cell small {
    margin-top: 2px;
    color: #839ab2;
    font-size: 9px;
}

.airport-name-field input {
    width: 100%;
    min-height: 38px;
    padding: 0 11px;
    border: 1px solid #405773;
    border-radius: 8px;
    outline: none;
    background: #081522;
    color: white;
    font-size: 12px;
}

.airport-name-field input:focus {
    border-color: #ffb45f;
    box-shadow: 0 0 0 3px rgba(255, 180, 95, .1);
}

.airport-base-choice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #c7d4e2;
    font-size: 11px;
    cursor: pointer;
}

.airport-base-choice input {
    width: 17px;
    height: 17px;
    accent-color: var(--green);
}

.airport-save-button {
    min-height: 38px;
}

.airport-ok-mark {
    color: var(--green);
    font-size: 20px;
    font-weight: 800;
    text-align: center;
}

.airport-fleet-handoff {
    border-color: rgba(69, 213, 223, .48);
    background:
        radial-gradient(circle at 100% 0, rgba(69, 213, 223, .13), transparent 42%),
        linear-gradient(120deg, #10243a, #0b1929);
}

@media (max-width: 1050px) {
    .airport-source-grid {
        grid-template-columns: 1fr;
    }

    .airport-source-card {
        min-height: 540px;
    }
}

@media (max-width: 700px) {
    .airport-source-card {
        min-height: 500px;
    }

    .airport-dataset-summary,
    .airport-status-grid {
        grid-template-columns: 1fr;
    }

    .airport-download-button {
        width: 100%;
    }
}

/* Version 0.29: compact dashboard workflow and bounded airport catalogs */

.module-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.module-tile.storage {
    min-height: 104px;
    grid-column: 1 / -1;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}

.module-tile.storage .module-copy strong {
    margin-bottom: 3px;
}

.module-tile.storage .module-copy small {
    max-width: none;
}

.airport-source-card {
    height: 620px;
    min-height: 0;
}

.airport-preview-list,
.airport-list {
    overscroll-behavior: contain;
}

.airport-preview-list::-webkit-scrollbar,
.airport-list::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.airport-preview-list::-webkit-scrollbar-track,
.airport-list::-webkit-scrollbar-track {
    background: #091523;
}

.airport-preview-list::-webkit-scrollbar-thumb,
.airport-list::-webkit-scrollbar-thumb {
    border: 2px solid #091523;
    border-radius: 999px;
    background: #506983;
}

.airport-preview-list::-webkit-scrollbar-thumb:hover,
.airport-list::-webkit-scrollbar-thumb:hover {
    background: #6f8aa5;
}

@media (max-width: 1180px) {
    .module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .airport-source-card {
        height: 560px;
    }
}

@media (max-width: 620px) {
    .module-grid {
        grid-template-columns: 1fr;
    }

    .module-tile.storage {
        grid-column: auto;
    }

    .airport-source-card {
        height: 540px;
    }
}

/* Version 0.30: dashboard icons and clean module workspaces */

.module-icon svg {
    width: 27px;
    height: 27px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.module-tile:hover .module-icon {
    background: color-mix(in srgb, currentColor 19%, #0c1828);
    box-shadow: 0 0 24px color-mix(in srgb, currentColor 24%, transparent);
}

.module-tile:hover .module-icon svg {
    transform: scale(1.08);
}

.module-icon,
.module-icon svg {
    transition:
        background .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

.workspace-clear-button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 14px;
    border: 1px solid #405a76;
    border-radius: 9px;
    background: rgba(13, 29, 47, .78);
    color: #b8cbe0;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition:
        border-color .16s ease,
        background .16s ease,
        color .16s ease;
}

.workspace-clear-button span {
    color: #ffb45f;
    font-size: 18px;
    line-height: 1;
}

.workspace-clear-button:hover {
    border-color: #ffb45f;
    background: rgba(255, 180, 95, .08);
    color: white;
}

.workspace-empty-state {
    display: grid;
    grid-template-columns: auto minmax(220px, .75fr) minmax(340px, 1.25fr);
    align-items: center;
    gap: 24px;
    min-height: 180px;
    padding: 28px;
    border-style: dashed;
    background:
        radial-gradient(circle at 0 50%, rgba(69, 213, 223, .08), transparent 30%),
        rgba(12, 25, 41, .72);
}

.workspace-empty-state h2 {
    margin: 0 0 6px;
    color: white;
    font-size: 20px;
}

.workspace-empty-state p {
    margin: 0;
    color: #9eb1c6;
    font-size: 12px;
    line-height: 1.55;
}

.workspace-empty-icon {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid #45d5df;
    border-radius: 15px;
    background: rgba(69, 213, 223, .08);
    color: #62e4ec;
    font-size: 15px;
    font-weight: 850;
    letter-spacing: .06em;
}

.fleet-empty-icon {
    border-color: #7bd8b0;
    background: rgba(123, 216, 176, .08);
    color: #8be7bf;
}

.export-empty-icon {
    border-color: #b38cff;
    background: rgba(179, 140, 255, .08);
    color: #c7a9ff;
}

.workspace-dataset-picker {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    align-items: end;
    gap: 10px;
}

.workspace-dataset-picker label {
    grid-column: 1 / -1;
    color: #afc2d6;
    font-size: 11px;
    font-weight: 700;
}

.workspace-dataset-picker select {
    width: 100%;
    min-height: 42px;
}

.compact-empty-state {
    grid-template-columns: auto 1fr;
}

@media (max-width: 800px) {
    .workspace-empty-state {
        grid-template-columns: auto 1fr;
    }

    .workspace-dataset-picker {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .workspace-empty-state,
    .workspace-dataset-picker {
        grid-template-columns: 1fr;
    }

    .workspace-empty-icon {
        width: 50px;
        height: 50px;
    }

    .workspace-dataset-picker label {
        grid-column: auto;
    }
}

/* Version 0.31: vAMSYS route reconciliation and delta workflow */

/* Version 0.51: shared dataset workflow */
.data-workflow {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -2px 0 18px;
    padding: 9px 11px;
    overflow-x: auto;
    border: 1px solid #263f5b;
    border-radius: 12px;
    background: rgba(9, 23, 39, .68);
}

/* Version 0.52: focused dataset action selection */
.dataset-action-card {
    margin-top: 18px;
    padding: 0;
    overflow: hidden;
    border-top: 3px solid #4da8ff;
}

.airport-dataset-actions { border-top-color: #43d7df; }

.dataset-action-heading,
.comparison-source-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid #29435d;
}

.dataset-action-heading > div,
.comparison-source-heading > div {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    align-items: center;
}

.dataset-action-heading h2,
.comparison-source-heading h2 {
    margin: 0;
    font-size: 19px;
}

.dataset-action-heading p,
.comparison-source-heading p {
    grid-column: 2;
    margin: 3px 0 0;
    color: #91a9c1;
    font-size: 12px;
}

.dataset-action-selector {
    display: grid;
    grid-template-columns: 190px minmax(260px, 1fr);
    align-items: center;
    gap: 14px;
    padding: 18px 22px 12px;
}

.dataset-action-selector label {
    color: #a9bdd1;
    font-size: 12px;
    font-weight: 700;
}

.dataset-action-selector select {
    width: 100%;
    min-height: 44px;
    border: 1px solid #365b7d;
    border-radius: 10px;
    background: #0a1b2d;
    color: #f2f8ff;
    padding: 0 14px;
    font-weight: 700;
}

.dataset-action-identity {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 4px 22px 16px;
    padding: 12px 14px;
    border: 1px solid rgba(58, 203, 142, .42);
    border-radius: 11px;
    background: rgba(33, 157, 110, .08);
}

.dataset-action-identity .airline-code {
    display: grid;
    place-items: center;
    min-width: 58px;
    height: 38px;
    border: 1px solid #218a6b;
    border-radius: 9px;
    color: #67e2b3;
    font-size: 17px;
    font-weight: 800;
}

.dataset-action-identity div { display: grid; gap: 2px; }
.dataset-action-identity strong { font-size: 15px; }
.dataset-action-identity small { color: #78a99c; font-size: 11px; }

.dataset-action-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 0 22px 22px;
}

.dataset-action-option {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    min-height: 84px;
    padding: 14px 16px;
    border: 1px solid #315575;
    border-radius: 12px;
    background: #0a1c2e;
    color: #edf7ff;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.dataset-action-option:hover {
    transform: translateY(-1px);
    border-color: #5e9bc9;
    background: #10263b;
}

.dataset-action-option.direct { border-color: rgba(49, 200, 137, .55); }
.dataset-action-option.direct:hover { background: rgba(33, 157, 110, .12); }
.dataset-action-option.compare { border-color: rgba(164, 116, 255, .55); }
.dataset-action-option.compare:hover,
.dataset-action-option.compare.active { background: rgba(134, 85, 223, .14); border-color: #a474ff; }

.dataset-action-option > span:nth-child(2) { display: grid; gap: 4px; }
.dataset-action-option strong { font-size: 14px; }
.dataset-action-option small { color: #8da9c3; font-size: 11px; line-height: 1.45; }
.dataset-action-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(66, 157, 226, .12);
    color: #62bcff;
    font-size: 19px;
    font-weight: 800;
}
.dataset-action-option.direct .dataset-action-icon { color: #52dca5; background: rgba(49, 200, 137, .12); }
.dataset-action-option.compare .dataset-action-icon { color: #c09aff; background: rgba(164, 116, 255, .12); }
.dataset-action-arrow { color: #7ba6ca; font-size: 20px; }

.comparison-source-card {
    margin-top: 16px;
    padding: 0;
    overflow: hidden;
    border-top: 3px solid #a474ff;
}

.comparison-source-heading > a {
    min-width: max-content;
    color: #79bfff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.comparison-source-layout {
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(420px, 1.1fr);
    min-height: 330px;
}

.comparison-upload-panel,
.comparison-catalog-panel { padding: 18px 20px; }
.comparison-upload-panel { border-right: 1px solid #29435d; }

.comparison-source-label {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 15px;
}

.comparison-source-label > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 34px;
    border: 1px solid #8060c4;
    border-radius: 8px;
    background: rgba(137, 88, 222, .12);
    color: #c8a7ff;
    font-size: 11px;
    font-weight: 800;
}

.comparison-source-label div { display: grid; gap: 2px; }
.comparison-source-label strong { font-size: 14px; }
.comparison-source-label small { color: #88a1ba; font-size: 11px; }

.comparison-source-card .route-preview-list,
.comparison-source-card .airport-preview-list {
    height: 270px;
    max-height: 270px;
    overflow: auto;
    border: 1px solid #29455f;
    border-radius: 10px;
}

@media (max-width: 900px) {
    .dataset-action-options,
    .comparison-source-layout { grid-template-columns: 1fr; }
    .comparison-upload-panel { border-right: 0; border-bottom: 1px solid #29435d; }
}

@media (max-width: 620px) {
    .dataset-action-heading,
    .comparison-source-heading { align-items: flex-start; flex-direction: column; }
    .dataset-action-selector { grid-template-columns: 1fr; }
    .dataset-action-option { grid-template-columns: 42px minmax(0, 1fr); }
    .dataset-action-arrow { display: none; }
}

.data-workflow a {
    display: inline-flex;
    min-width: max-content;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #9eb3c9;
    font-size: 12px;
}

.data-workflow a:hover {
    border-color: #35597e;
    color: white;
}

.data-workflow a.active {
    border-color: rgba(70, 177, 255, .65);
    background: rgba(70, 177, 255, .12);
    color: white;
}

.data-workflow a span {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid #3d668e;
    border-radius: 7px;
    color: #72c4ff;
    font-size: 10px;
}

.data-workflow-arrow { color: #52718f; }
.data-workflow > small { margin-left: auto; min-width: max-content; color: #7890a8; font-size: 10px; }

@media (max-width: 900px) {
    .data-workflow > small { display: none; }
}

.module-tile.routes { color: #f6c85f; }

.scope-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding: 12px 15px;
    border: 1px solid currentColor;
    border-radius: 10px;
    background: color-mix(in srgb, currentColor 7%, #0c1b2c);
    color: #55adff;
}
.scope-banner.changed { color: #ffc857; }
.scope-banner strong,
.scope-banner span { display: block; }
.scope-banner strong { color: white; font-size: 12px; }
.scope-banner span { margin-top: 2px; color: #a7bbcf; font-size: 10px; }
.scope-banner a { color: currentColor; font-size: 10px; font-weight: 800; text-decoration: none; }

.module-tile.export,
.module-tile.storage {
    min-height: 104px;
    grid-column: span 2;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}

.route-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
}

.route-source-card {
    display: grid;
    height: 590px;
    min-height: 0;
    grid-template-rows: auto auto minmax(0, 1fr);
    overflow: hidden;
}

.route-card-title {
    border-top: 4px solid #45d5df;
}

.route-upload-card .route-card-title {
    border-top-color: #a982ff;
}

.route-upload-form {
    padding: 18px 20px;
    border-bottom: 1px solid #29415d;
}

.route-duplicate-hint {
    padding: 8px 10px;
    border-left: 3px solid #ffc857;
    border-radius: 6px;
    background: rgba(255, 200, 87, .07);
    color: #e8c878 !important;
    line-height: 1.4;
}

.route-catalog-preview {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    padding: 16px 20px 20px;
}

.route-preview-list {
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    border: 1px solid #29415d;
    border-radius: 10px;
    background: #091726;
}

.route-preview-row {
    display: grid;
    min-width: 560px;
    grid-template-columns: 70px 90px minmax(145px, 1fr) minmax(100px, .8fr);
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-bottom: 1px solid #263d56;
    color: #c4d5e7;
    font-size: 12px;
}

.route-preview-row:last-child { border-bottom: 0; }
.route-preview-row strong { color: white; }
.route-preview-row small { color: #83bcea; }
.route-preview-id { color: #8ba1b8; font-variant-numeric: tabular-nums; }

.route-dataset-card {
    grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
}

.route-dataset-card .fleet-dataset-selector { padding-bottom: 8px; }
.route-dataset-identity { margin: 0 20px 14px; }

.route-fr24-export {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin: 0 20px 14px;
    padding: 13px 14px;
    border: 1px solid rgba(53, 212, 154, .55);
    border-radius: 10px;
    background: rgba(53, 212, 154, .08);
}

.route-fr24-export div {
    display: grid;
    gap: 3px;
}

.route-fr24-export strong {
    color: #e9fff7;
    font-size: 12px;
}

.route-fr24-export span {
    color: #91b8aa;
    font-size: 10px;
    line-height: 1.35;
}

.route-fr24-export a {
    padding: 10px 13px;
    border: 1px solid #35d49a;
    border-radius: 8px;
    background: rgba(53, 212, 154, .14);
    color: #baffdf;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.route-fr24-export a:hover {
    background: #35d49a;
    color: #061710;
}

.route-no-reference-note {
    align-self: start;
    display: grid;
    gap: 5px;
    margin: 0 20px;
    padding: 14px;
    border: 1px dashed #3c5874;
    border-radius: 10px;
    color: #91a9c0;
}

.route-no-reference-note strong {
    color: #dce9f6;
    font-size: 12px;
}

.route-no-reference-note span {
    font-size: 10px;
    line-height: 1.4;
}

.route-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-content: start;
    padding: 0 20px;
}

.route-legend > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 9px;
    align-items: center;
    padding: 12px;
    border: 1px solid #2b425d;
    border-radius: 10px;
    background: #0a1929;
}

.route-legend > div > span {
    width: 9px;
    height: 9px;
    grid-row: span 2;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 12px currentColor;
}

.route-legend strong { color: white; font-size: 12px; }
.route-legend small { color: #8da5bd; font-size: 10px; }
.route-legend .current { color: #35d49a; }
.route-legend .changed { color: #ffc857; }
.route-legend .expired { color: #ff6577; }
.route-legend .new { color: #55adff; }

.route-safety-note {
    align-self: end;
    margin: 14px 20px 20px;
    padding: 12px;
    border-left: 3px solid #45d5df;
    border-radius: 7px;
    background: rgba(69, 213, 223, .08);
    color: #9dc7d7;
    font-size: 11px;
}

.route-feedback-card {
    margin-top: 16px;
    overflow: hidden;
}

.route-feedback-title { border-top: 4px solid #ff9e45; }
.route-feedback-badges { display: flex; gap: 8px; }
.route-feedback-badges span {
    padding: 6px 9px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
}
.route-feedback-badges .resolved { color: #35d49a; }
.route-feedback-badges .open { color: #ffbd66; }

.route-feedback-content {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    min-height: 260px;
}

.route-failure-upload-form {
    align-content: start;
    padding: 18px 20px;
    border-right: 1px solid #29415d;
}

.route-feedback-results {
    display: grid;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr);
    padding: 16px 20px 20px;
}
.route-feedback-results .fleet-preview-heading form { margin: 0; }

.route-feedback-list {
    max-height: 260px;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    border: 1px solid #29415d;
    border-radius: 10px;
    background: #091726;
}

.route-feedback-row {
    display: grid;
    grid-template-columns: 24px 90px minmax(150px, .55fr) minmax(240px, 1.45fr);
    gap: 10px;
    align-items: center;
    min-width: 700px;
    padding: 10px 12px;
    border-bottom: 1px solid #263d56;
    font-size: 11px;
}
.route-feedback-row:last-child { border-bottom: 0; }
.route-feedback-row > span { font-size: 15px; font-weight: 900; }
.route-feedback-row strong { color: white; }
.route-feedback-row small { color: #91abc4; }
.route-feedback-row p { margin: 0; color: #c7d5e4; line-height: 1.35; }
.route-feedback-row.resolved > span { color: #35d49a; }
.route-feedback-row.open > span { color: #ffbd66; }

.route-compare-action {
    min-height: 78px;
    margin-top: 16px;
}

.route-compare-action .fleet-compare-button {
    min-width: 210px;
    flex: 0 0 210px;
    box-shadow: 0 8px 24px rgba(31, 177, 112, .16);
}

.route-compare-action .fleet-compare-button.disabled {
    border-color: #405a74;
    background: #1b2d41;
    box-shadow: none;
    color: #9eb1c5;
    opacity: 1;
}

.route-duplicate-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0 -4px;
    padding: 11px 14px;
    border: 1px solid rgba(255, 200, 87, .45);
    border-radius: 9px;
    background: rgba(255, 200, 87, .07);
}
.route-duplicate-summary strong { color: #ffd777; font-size: 12px; }
.route-duplicate-summary span { color: #b8c7d7; font-size: 10px; }

.route-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.route-status-card {
    position: relative;
    display: grid;
    gap: 4px;
    overflow: hidden;
    padding: 15px 16px;
    border: 1px solid #2c4563;
    border-radius: 12px;
    background: #0e2033;
    color: inherit;
    text-decoration: none;
    transition: border-color .15s ease, transform .15s ease, background .15s ease;
}

.route-status-card:hover {
    transform: translateY(-2px);
    border-color: currentColor;
}

.route-status-card.active {
    border-color: currentColor;
    background: color-mix(in srgb, currentColor 11%, #0e2033);
    box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 18%, transparent);
}

.route-status-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: currentColor;
    content: "";
}

.route-status-card span { color: #b9cbe0; font-size: 11px; }
.route-status-card strong { color: white; font-size: 25px; }
.route-status-card small { color: #7f97ae; font-size: 9px; }
.route-status-card.current { color: #35d49a; }
.route-status-card.changed { color: #ffc857; }
.route-status-card.expired { color: #ff6577; }
.route-status-card.new { color: #55adff; }
.route-status-card.retained { color: #a9b6c6; }
.route-status-card.missing { color: #f39a48; }
.route-status-card.manual-delete { color: #ff7182; }

.route-comparison-card { overflow: hidden; }
.route-comparison-title { border-top: 4px solid #35d49a; }
.route-comparison-title .route-review-warning { color: #ffc857; }

.route-show-all {
    padding: 8px 12px;
    border: 1px solid #3a5d7e;
    border-radius: 8px;
    color: #8fcaff;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.route-reconcile-list {
    height: clamp(650px, 76vh, 800px);
    max-height: none;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    background: #091726;
}

.route-reconcile-row {
    display: grid;
    min-width: 1400px;
    grid-template-columns:
        40px
        78px
        76px
        108px
        120px
        112px
        112px
        150px
        minmax(500px, 1fr);
    gap: 8px;
    align-items: center;
    padding: 8px 14px;
    border-bottom: 1px solid #263f5a;
    color: #c5d5e7;
    font-size: 12px;
}

.route-reconcile-header {
    position: sticky;
    z-index: 3;
    top: 0;
    background: #142b45;
    color: #8fc6fb;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.route-reconcile-row:not(.route-reconcile-header) { border-left: 4px solid transparent; }
.route-duplicate-badge {
    display: block;
    width: max-content;
    margin-top: 3px;
    padding: 2px 5px;
    border: 1px solid rgba(255, 200, 87, .55);
    border-radius: 999px;
    color: #ffd777;
    font-size: 8px;
    font-weight: 800;
}
.route-reconcile-current { border-left-color: #35d49a !important; background: rgba(53, 212, 154, .025); }
.route-reconcile-changed { border-left-color: #ffc857 !important; background: rgba(255, 200, 87, .055); }
.route-reconcile-expired { border-left-color: #ff6577 !important; background: rgba(255, 101, 119, .065); }
.route-reconcile-new { border-left-color: #55adff !important; background: rgba(85, 173, 255, .06); }
.route-reconcile-retained { border-left-color: #9daabd !important; background: rgba(157, 170, 189, .04); }
.route-reconcile-missing { border-left-color: #f39a48 !important; background: rgba(243, 154, 72, .055); }
.route-reconcile-manual-delete { border-left-color: #ff435d !important; background: rgba(255, 67, 93, .09); }
.route-row-ignored {
    opacity: .58;
    filter: grayscale(.25);
}

.route-state-pill {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 0 9px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 850;
}

.route-state-pill.current { color: #35d49a; }
.route-state-pill.changed { color: #ffc857; }
.route-state-pill.expired { color: #ff7182; }
.route-state-pill.new { color: #62b7ff; }
.route-state-pill.retained { color: #bdc7d4; }
.route-state-pill.missing { color: #f5a55e; }
.route-state-pill.manual-delete { color: #ff7182; }

.route-retention-action form { margin: 0; }
.route-keep-button,
.route-expire-button {
    min-height: 31px;
    padding: 0 11px;
    border: 1px solid currentColor;
    border-radius: 7px;
    background: transparent;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.route-keep-button { color: #64e3b5; }
.route-expire-button { color: #ff8997; }
.route-ok-mark { color: #55dca9; font-size: 16px; }

.route-row-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 7px;
    align-items: center;
    white-space: nowrap;
}

.route-row-actions form { margin: 0; }

.route-choice-switch {
    display: inline-flex;
    min-height: 31px;
    align-items: center;
    gap: 7px;
    padding: 0 10px;
    border: 1px solid #2fbf88;
    border-radius: 7px;
    background: rgba(47, 191, 136, .09);
    color: #78e4ba;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.route-choice-switch input {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: #35d49a;
}

.route-choice-switch:not(:has(input:checked)) {
    border-color: #536b84;
    background: rgba(83, 107, 132, .08);
    color: #afbdcb;
}

.route-choice-switch.review-open:not(:has(input:checked)) {
    border-color: #c99630;
    background: rgba(255, 200, 87, .09);
    color: #ffd777;
}

.route-choice-switch.locked { cursor: default; }
.route-choice-state.ignored,
.route-required-choice {
    color: #b7c1cd;
    font-size: 10px;
    font-weight: 800;
}

.route-detail-button,
.route-inline-button {
    min-height: 31px;
    padding: 0 10px;
    border: 1px solid #3c6286;
    border-radius: 7px;
    background: #112940;
    color: #91caff;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.route-inline-button.ignore { border-color: #b17f33; color: #ffd074; }
.route-inline-button.restore { border-color: #2fbf88; color: #78e4ba; }

.route-detail-dialog {
    width: min(780px, calc(100vw - 36px));
    max-height: calc(100vh - 50px);
    overflow: auto;
    padding: 0;
    border: 1px solid #3b5876;
    border-radius: 16px;
    background: #0d1d2e;
    color: #d5e2ef;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .62);
}

.route-detail-dialog::backdrop { background: rgba(2, 10, 19, .78); }

.route-detail-header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    border-bottom: 1px solid #29415d;
    background: #11253a;
}

.route-detail-header h3 { margin: 10px 0 2px; color: white; font-size: 20px; }
.route-detail-header p { margin: 0; color: #8ea7c0; font-size: 11px; }
.route-dialog-close {
    width: 34px;
    height: 34px;
    border: 1px solid #45637f;
    border-radius: 50%;
    background: transparent;
    color: white;
    font-size: 22px;
    cursor: pointer;
}

.route-detail-duplicate {
    margin: 16px 22px 0;
    padding: 10px 12px;
    border-left: 3px solid #ffc857;
    border-radius: 7px;
    background: rgba(255, 200, 87, .08);
    color: #f0cf83;
    font-size: 11px;
}

.route-detail-grid {
    display: grid;
    grid-template-columns: minmax(130px, .8fr) repeat(2, minmax(170px, 1fr));
    margin: 18px 22px;
    overflow: hidden;
    border: 1px solid #29415d;
    border-radius: 10px;
}

.route-detail-grid > * {
    min-height: 40px;
    padding: 11px 12px;
    border-right: 1px solid #29415d;
    border-bottom: 1px solid #29415d;
    font-size: 11px;
}

.route-detail-grid > *:nth-child(3n) { border-right: 0; }
.route-detail-grid > *:nth-last-child(-n + 3) { border-bottom: 0; }
.route-detail-grid > strong { background: #142b45; color: #8fc6fb; font-size: 10px; text-transform: uppercase; }
.route-detail-grid .changed { background: rgba(255, 200, 87, .09); color: #ffd777; font-weight: 800; }

.route-detail-note {
    margin: 0 22px 18px;
    padding: 11px 13px;
    border-left: 3px solid currentColor;
    border-radius: 7px;
    background: rgba(255, 255, 255, .035);
    font-size: 11px;
}
.route-detail-note.expired { color: #ff8795; }
.route-detail-note.changed { color: #ffd06a; }
.route-detail-note.new { color: #73beff; }

.route-dialog-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
    padding: 16px 22px;
    border-top: 1px solid #29415d;
    background: #0a1929;
}

.route-dialog-actions form { margin: 0; }
.route-dialog-actions button { min-height: 36px; }

.route-workflow-card {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid #2d4662;
    border-radius: 14px;
    background: #0d1f32;
}

.route-workflow-heading {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 18px 20px;
    border-bottom: 1px solid #29415c;
}
.route-workflow-heading strong,
.route-workflow-heading span { display: block; }
.route-workflow-heading strong { color: white; font-size: 15px; }
.route-workflow-heading div > span { margin-top: 3px; color: #9fb3c8; font-size: 11px; }

.route-workflow-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: #29415c;
}

.route-workflow-options article {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    padding: 18px;
    background: #0b1a2a;
}
.route-workflow-options strong,
.route-workflow-options small { display: block; }
.route-workflow-options strong { color: white; font-size: 13px; }
.route-workflow-options small { margin-top: 4px; color: #8fa6bd; font-size: 10px; line-height: 1.45; }

.route-workflow-number {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #b38cff;
    border-radius: 8px;
    color: #c8adff;
    font-weight: 850;
}
.route-workflow-number.new { border-color: #55adff; color: #70bcff; }
.route-workflow-number.changed { border-color: #ffc857; color: #ffd77e; }
.route-workflow-number.expired { border-color: #ff6577; color: #ff8795; }

.route-workflow-buttons {
    display: flex;
    grid-column: 1 / -1;
    gap: 8px;
}
.route-workflow-buttons a {
    display: inline-flex;
    min-height: 34px;
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border: 1px solid #3d658b;
    border-radius: 7px;
    color: #9fd2ff;
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}
.route-workflow-buttons a:hover { border-color: #55adff; background: rgba(85, 173, 255, .08); color: white; }

.route-preview-list::-webkit-scrollbar,
.route-feedback-list::-webkit-scrollbar,
.route-reconcile-list::-webkit-scrollbar { width: 10px; height: 10px; }
.route-preview-list::-webkit-scrollbar-track,
.route-feedback-list::-webkit-scrollbar-track,
.route-reconcile-list::-webkit-scrollbar-track { background: #07131f; }
.route-preview-list::-webkit-scrollbar-thumb,
.route-feedback-list::-webkit-scrollbar-thumb,
.route-reconcile-list::-webkit-scrollbar-thumb { border: 2px solid #07131f; border-radius: 999px; background: #526c86; }

@media (max-width: 1180px) {
    .module-tile.export,
    .module-tile.storage { grid-column: auto; }
    .route-source-grid { grid-template-columns: 1fr; }
    .route-source-card { height: 560px; }
    .route-feedback-content { grid-template-columns: 1fr; }
    .route-failure-upload-form { border-right: 0; border-bottom: 1px solid #29415d; }
    .route-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .route-workflow-options { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .route-status-grid,
    .route-legend { grid-template-columns: 1fr; }
    .route-source-card { height: 540px; }
    .route-reconcile-list { height: 620px; }
    .route-compare-action .fleet-compare-button {
        width: 100%;
        flex-basis: auto;
    }
    .route-fr24-export { grid-template-columns: 1fr; }
}

/* Version 0.53: settings and encrypted vAMSYS connections */
.settings-page-heading {
    margin-bottom: 18px;
}

.settings-section-nav {
    display: inline-flex;
    gap: 6px;
    margin-bottom: 20px;
    padding: 5px;
    border: 1px solid #284561;
    border-radius: 12px;
    background: #0a192a;
}

.settings-section-nav a {
    padding: 9px 15px;
    border-radius: 8px;
    color: #9ebbd7;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.settings-section-nav a:hover {
    background: #142b43;
    color: #fff;
}

.settings-section-nav a.active {
    background: #173653;
    color: #fff;
    box-shadow: inset 0 -2px 0 #55baff;
}

.settings-api-section {
    margin-bottom: 20px;
    overflow: visible;
    border-top: 4px solid #34d399;
}

.settings-api-title {
    align-items: center;
}

.read-only-badge {
    flex: 0 0 auto;
    padding: 7px 11px;
    border: 1px solid #238a69;
    border-radius: 999px;
    background: rgba(52, 211, 153, .09);
    color: #7aefc2;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.settings-security-warning,
.api-last-error {
    margin: 16px 20px 0;
    padding: 11px 13px;
    border: 1px solid #9b4b55;
    border-radius: 8px;
    background: rgba(255, 93, 111, .08);
    color: #ffadb7;
    font-size: 12px;
}

.api-security-note {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 13px;
    align-items: center;
    margin: 18px 20px;
    padding: 13px 15px;
    border: 1px solid #235c55;
    border-radius: 10px;
    background: rgba(27, 94, 82, .14);
}

.api-security-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #2faa86;
    border-radius: 9px;
    color: #64e6b8;
    font-size: 20px;
}

.api-security-note strong,
.api-security-note p {
    display: block;
    margin: 0;
}

.api-security-note strong { color: #e9fff7; font-size: 13px; }
.api-security-note p { margin-top: 3px; color: #91b9ad; font-size: 11px; line-height: 1.45; }
.api-security-note a { color: #79d5ff; font-size: 11px; font-weight: 750; text-decoration: none; }

.api-connections-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 0 20px 20px;
}

.api-connection-card {
    padding: 16px;
    border: 1px solid #2b4965;
    border-radius: 12px;
    background: #0a1a2a;
}

.api-connection-card.status-connected { border-color: #28795f; }
.api-connection-card.status-error { border-color: #914657; }

.api-connection-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
}

.api-connection-head h3,
.api-connection-head p { margin: 0; }
.api-connection-head h3 { color: #f5f9ff; font-size: 15px; }
.api-connection-head p { margin-top: 3px; color: #83a7c8; font-size: 10px; }

.airline-logo {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    overflow: hidden;
    border: 1px solid #386584;
    border-radius: 12px;
    background: #f7fbff;
}

.airline-logo img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 5px;
    object-fit: contain;
}

.api-status-pill {
    padding: 6px 9px;
    border: 1px solid #4a6781;
    border-radius: 999px;
    color: #a9c2d8;
    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
}

.api-status-pill.connected { border-color: #1da873; color: #52e4ac; background: rgba(31, 185, 126, .08); }
.api-status-pill.error { border-color: #d65a69; color: #ff8996; background: rgba(214, 90, 105, .08); }

.api-connection-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 15px 0 0;
}

.api-connection-meta div {
    padding: 9px 10px;
    border: 1px solid #213c56;
    border-radius: 8px;
    background: #081726;
}

.api-connection-meta dt { color: #7194b4; font-size: 9px; text-transform: uppercase; }
.api-connection-meta dd { margin: 4px 0 0; color: #dceeff; font-size: 11px; font-weight: 700; }
.api-connection-card .api-last-error { margin: 12px 0 0; }

.api-connection-actions {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 1fr));
    gap: 8px;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    margin-top: 14px;
}

.api-connection-actions > form,
.api-connection-actions > details,
.api-connection-actions > form > button,
.api-connection-actions > details > summary {
    width: 100%;
    min-width: 0;
}

.connection-test-button,
.api-edit-details > summary,
.api-delete-details > summary {
    display: inline-flex;
    min-height: 35px;
    align-items: center;
    padding: 0 12px;
    border: 1px solid #386584;
    border-radius: 8px;
    background: #10253a;
    color: #aadaff;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.api-delete-details > summary { border-color: #75424d; color: #ff9ba7; }
.api-edit-details, .api-delete-details { position: static; }
.api-edit-details[open], .api-delete-details[open] {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
.api-edit-details > summary, .api-delete-details > summary { list-style: none; }
.api-edit-details > summary::-webkit-details-marker, .api-delete-details > summary::-webkit-details-marker { display: none; }

.api-edit-form,
.api-delete-details form {
    position: static;
    width: 100%;
    margin-top: 10px;
    padding: 14px;
    border: 1px solid #3c5c78;
    border-radius: 10px;
    background: #0b1b2c;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .45);
}

.api-edit-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    min-width: 0;
}

.api-edit-form > *,
.api-edit-form label,
.api-edit-form input { min-width: 0; max-width: 100%; }

.api-edit-form > :is(.api-checkbox, .settings-security-warning, button) {
    grid-column: 1 / -1;
}

.api-delete-details form { border-color: #75424d; }
.api-edit-form label, .api-delete-details label, .api-connection-form label { display: grid; gap: 5px; color: #a9c4dc; font-size: 10px; font-weight: 700; }
.api-edit-form label + label { margin-top: 0; }
.api-edit-form input, .api-delete-details input, .api-connection-form input, .api-connection-form select {
    width: 100%;
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid #35536d;
    border-radius: 8px;
    background: #071523;
    color: #fff;
}

.api-edit-form .api-checkbox,
.api-connection-form .api-checkbox {
    display: flex;
    align-items: center;
    margin: 11px 0;
}

.api-checkbox input { width: 16px; min-height: 16px; }
.api-delete-details form button { margin-top: 10px; }

.api-empty-state { grid-column: 1 / -1; }

.api-add-connection {
    margin: 0 20px 20px;
    border: 1px solid #325373;
    border-radius: 11px;
    background: #091827;
}

.api-add-connection > summary {
    display: flex;
    gap: 11px;
    align-items: center;
    padding: 14px 16px;
    list-style: none;
    cursor: pointer;
}

.api-add-connection > summary::-webkit-details-marker { display: none; }
.api-add-connection > summary > span { color: #59b9ff; font-size: 22px; }
.api-add-connection > summary strong, .api-add-connection > summary small { display: block; }
.api-add-connection > summary strong { color: #ecf7ff; font-size: 13px; }
.api-add-connection > summary small { margin-top: 2px; color: #7d9fbe; font-size: 10px; }

.api-connection-form {
    padding: 16px;
    border-top: 1px solid #29445e;
}

.api-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.api-form-hint {
    margin: 10px 0 0;
    color: #789ab9;
    font-size: 10px;
    line-height: 1.5;
}

.api-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 13px;
}

.api-form-actions button { width: auto; min-width: 180px; }
.settings-storage-overview { scroll-margin-top: 90px; }
.settings-datasets-section { scroll-margin-top: 90px; }

.settings-users-section {
    overflow: visible;
    border-top: 4px solid #55baff;
}

.settings-users-title {
    align-items: center;
}

.temporary-credential {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr);
    gap: 20px;
    align-items: center;
    margin: 20px;
    padding: 17px;
    border: 1px solid #2ab981;
    border-radius: 12px;
    background: rgba(28, 132, 98, .13);
}

.temporary-credential h3,
.temporary-credential p {
    margin: 0;
}

.temporary-credential h3 {
    margin-top: 4px;
    color: #effff9;
    font-size: 16px;
}

.temporary-credential p {
    margin-top: 5px;
    color: #9bc8b8;
    font-size: 11px;
    line-height: 1.5;
}

.temporary-credential dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.temporary-credential dl div {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 10px;
    align-items: center;
    padding: 9px 11px;
    border: 1px solid #2a6758;
    border-radius: 8px;
    background: #081b1c;
}

.temporary-credential dt {
    color: #75aa99;
    font-size: 9px;
    text-transform: uppercase;
}

.temporary-credential dd {
    min-width: 0;
    margin: 0;
}

.temporary-credential code {
    color: #fff;
    font-size: 12px;
    overflow-wrap: anywhere;
    user-select: all;
}

.user-create-panel {
    margin: 20px;
    border: 1px solid #365775;
    border-radius: 12px;
    background: #0a1a2a;
}

.user-create-panel > summary {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 15px 17px;
    list-style: none;
    cursor: pointer;
}

.user-create-panel > summary::-webkit-details-marker {
    display: none;
}

.user-create-panel > summary strong,
.user-create-panel > summary small {
    display: block;
}

.user-create-panel > summary strong {
    color: #edf7ff;
    font-size: 13px;
}

.user-create-panel > summary small {
    margin-top: 3px;
    color: #80a2c0;
    font-size: 10px;
}

.user-action-icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid #3480b7;
    border-radius: 9px;
    color: #63c2ff;
    font-size: 20px;
}

.user-management-form {
    padding: 16px;
    border-top: 1px solid #29445e;
}

.user-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 11px;
}

.user-management-form label {
    display: grid;
    gap: 5px;
    color: #a9c4dc;
    font-size: 10px;
    font-weight: 700;
}

.user-management-form input:not([type="checkbox"]):not([type="radio"]),
.user-management-form select {
    width: 100%;
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid #35536d;
    border-radius: 8px;
    background: #071523;
    color: #fff;
}

.user-management-form input[type="checkbox"],
.user-management-form input[type="radio"] {
    appearance: auto;
    width: 16px;
    height: 16px;
    min-height: 16px;
    padding: 0;
    margin: 0;
    flex: 0 0 16px;
    accent-color: #39a8f5;
}

.user-management-form .api-checkbox {
    display: flex;
    grid-template-columns: none;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    margin: 0;
    min-width: 0;
    cursor: pointer;
}

.user-management-form button {
    width: auto;
    margin-top: 13px;
}

.managed-user-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
    padding: 0 20px 20px;
}

.managed-user-card {
    padding: 16px;
    border: 1px solid #2d4c68;
    border-radius: 12px;
    background: #0a1a2a;
}

.managed-user-card:has(.managed-user-edit[open]),
.managed-user-card:has(.managed-user-reset[open]) {
    grid-column: 1 / -1;
}

.managed-user-card .user-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.managed-user-card .user-access-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 12px;
}

.managed-user-card .airline-access-fieldset {
    padding: 12px;
}

.airline-scope-options .api-checkbox {
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #294a65;
    border-radius: 8px;
    background: #081827;
}

.airline-scope-options .api-checkbox:has(input:checked) {
    border-color: #3d9bd5;
    background: rgba(52, 128, 183, .15);
    color: #e8f6ff;
}

.airline-permission-grid .airline-permission-option {
    min-height: 42px;
    padding: 7px 9px;
    border: 1px solid #24435d;
    border-radius: 8px;
    background: #071625;
}

.airline-permission-option > span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.airline-permission-option strong {
    color: #dff2ff;
    font-size: 10px;
}

.airline-permission-option small {
    color: #7f9fba;
    font-size: 9px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.managed-user-card .airline-permission-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-height: 190px;
}

.managed-user-card.inactive {
    opacity: .72;
    border-color: #65414a;
}

.managed-user-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.user-avatar.large {
    width: 45px;
    height: 45px;
    font-size: 15px;
}

.managed-user-summary h3,
.managed-user-summary p {
    margin: 0;
}

.managed-user-summary h3 {
    color: #f4f9ff;
    font-size: 14px;
}

.managed-user-summary p {
    margin-top: 3px;
    color: #86a9c8;
    font-size: 10px;
    overflow-wrap: anywhere;
}

.managed-user-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    justify-content: flex-end;
}

.api-status-pill.warning {
    border-color: #b88424;
    background: rgba(184, 132, 36, .08);
    color: #ffd273;
}

.managed-user-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}

.managed-user-meta div {
    padding: 9px 10px;
    border: 1px solid #213c56;
    border-radius: 8px;
    background: #081726;
}

.managed-user-meta dt {
    color: #7194b4;
    font-size: 9px;
    text-transform: uppercase;
}

.managed-user-meta dd {
    margin: 4px 0 0;
    color: #dceeff;
    font-size: 11px;
    font-weight: 700;
}

.managed-user-edit,
.managed-user-reset {
    margin-top: 8px;
    border: 1px solid #29465f;
    border-radius: 9px;
    background: #081725;
}

.managed-user-reset {
    border-color: #633c46;
}

.managed-user-edit > summary,
.managed-user-reset > summary {
    padding: 11px 13px;
    color: #aadaff;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.managed-user-reset > summary {
    color: #ff9aa7;
}

.managed-user-reset form {
    padding: 13px;
    border-top: 1px solid #633c46;
}

.managed-user-reset p {
    margin: 0 0 10px;
    color: #aa8f96;
    font-size: 10px;
    line-height: 1.5;
}

.user-permission-row {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 13px;
}

.user-permission-row .api-checkbox {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #294a65;
    border-radius: 8px;
    background: #081827;
}

@media (max-width: 900px) {
    .api-connections-grid,
    .api-form-grid,
    .managed-user-list { grid-template-columns: 1fr; }
    .user-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .managed-user-card .user-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .temporary-credential { grid-template-columns: 1fr; }
    .api-security-note { grid-template-columns: auto 1fr; }
    .api-security-note a { grid-column: 2; }
}

@media (max-width: 620px) {
    .settings-section-nav { display: flex; overflow-x: auto; }
    .settings-api-title { align-items: flex-start; }
    .api-connection-head { grid-template-columns: auto 1fr; }
    .api-status-pill { grid-column: 1 / -1; width: fit-content; }
    .api-connection-meta { grid-template-columns: 1fr; }
    .api-form-actions { flex-direction: column; }
    .api-form-actions button { width: 100%; }
    .user-form-grid { grid-template-columns: 1fr; }
    .managed-user-card .user-form-grid,
    .managed-user-card .airline-permission-grid,
    .airline-scope-options { grid-template-columns: 1fr; }
    .managed-user-summary { grid-template-columns: auto 1fr; }
    .managed-user-badges { grid-column: 1 / -1; justify-content: flex-start; }
    .temporary-credential dl div { grid-template-columns: 1fr; }
}

/* v0.54 route references from the read-only Operations API */
.route-api-source {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid #28445f;
    border-radius: 12px;
    background: rgba(8, 24, 39, .72);
}

.route-api-source.ready {
    border-color: rgba(46, 204, 143, .58);
    background: rgba(21, 93, 72, .13);
}

.route-api-source.warning { border-color: rgba(247, 181, 58, .45); }

.route-api-source .comparison-source-label { margin: 0; }

.api-import-button {
    display: grid;
    grid-template-columns: auto 1fr;
    width: 100%;
    gap: 2px 10px;
    padding: 12px 14px;
    border: 1px solid #28bd83;
    border-radius: 10px;
    color: #eafff7;
    background: linear-gradient(135deg, rgba(30, 145, 102, .34), rgba(18, 88, 71, .28));
    text-align: left;
    cursor: pointer;
}

.api-import-button > span {
    grid-row: 1 / 3;
    align-self: center;
    color: #43e2a5;
    font-size: 22px;
}

.api-import-button strong { font-size: 13px; }
.api-import-button small { color: #93bcae; font-size: 10px; }
.api-import-button:hover { background: rgba(30, 145, 102, .42); }

.api-source-notice {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    color: #c8d9e8;
}

.api-source-notice > span { color: #ffc85a; font-size: 20px; }
.api-source-notice div { display: grid; gap: 2px; }
.api-source-notice strong { font-size: 12px; }
.api-source-notice small { color: #789ab9; font-size: 10px; }
.api-source-notice a { color: #63bdff; font-size: 11px; font-weight: 700; }

.comparison-source-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0 14px;
    color: #6888a6;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.comparison-source-divider::before,
.comparison-source-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #223b54;
}

.api-sync-feedback {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 4px 10px;
    padding: 11px 12px;
    border: 1px solid #34536f;
    border-radius: 10px;
    background: rgba(13, 34, 53, .82);
}

.api-sync-feedback.success {
    border-color: rgba(47, 200, 139, .56);
    background: rgba(24, 112, 82, .14);
}

.api-sync-feedback.error {
    border-color: rgba(255, 101, 119, .62);
    background: rgba(122, 38, 52, .16);
}

.api-sync-feedback-icon {
    grid-row: 1 / 3;
    align-self: center;
    color: #42dfa5;
    font-size: 21px;
    font-weight: 900;
}

.api-sync-feedback.error .api-sync-feedback-icon { color: #ff7384; }
.api-sync-feedback > div { display: grid; gap: 2px; }
.api-sync-feedback strong { font-size: 12px; }
.api-sync-feedback small { color: #9bb2c7; font-size: 10px; }
.api-sync-feedback dl {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin: 4px 0 0;
}
.api-sync-feedback dl div { display: flex; gap: 4px; }
.api-sync-feedback dt { color: #7696b2; font-size: 9px; }
.api-sync-feedback dd { margin: 0; color: #dbe9f5; font-size: 9px; font-weight: 750; }
.fleet-import-sources > .route-api-source { margin: 16px 20px 0; }
.fleet-import-sources > .api-sync-feedback {
    position: static;
    width: auto;
    margin: 12px 20px 0;
}
.fleet-import-sources > .comparison-source-divider { margin: 16px 20px 12px; }
.fleet-import-sources > .fleet-csv-source { margin: 0 20px 10px; }
.fleet-import-sources > .fleet-upload-form {
    padding-top: 10px;
    border-bottom: 0;
}

.fleet-import-sources .api-sync-feedback {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 12px;
}

.fleet-import-sources .api-sync-feedback-icon { grid-row: auto; }
.fleet-import-sources .api-sync-feedback dl {
    grid-column: 3;
    justify-content: flex-end;
    margin: 0;
}

@media (max-width: 780px) {
    .fleet-import-sources .api-sync-feedback { grid-template-columns: auto minmax(0, 1fr); }
    .fleet-import-sources .api-sync-feedback dl {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

.fleet-cost-index-card { margin-top: 16px; overflow: hidden; }
.fleet-cost-index-row { scroll-margin-top: 110px; }

/* Version 0.72: full-width Fleet-ID batch workspace */
.fleet-mapping-overview-body {
    display: grid;
    align-content: center;
    gap: 16px;
    min-height: 0;
    padding: 14px 0;
}
.fleet-mapping-overview-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.fleet-mapping-overview-stats > span {
    display: grid;
    gap: 4px;
    padding: 13px;
    border: 1px solid #2e4965;
    border-radius: 10px;
    background: rgba(5, 17, 29, .55);
}
.fleet-mapping-overview-stats strong { color: #eef7ff; font-size: 1.25rem; }
.fleet-mapping-overview-stats small { color: var(--muted); font-size: .67rem; }
.fleet-mapping-overview-stats .warning { border-color: rgba(255, 184, 79, .52); }
.fleet-mapping-overview-stats .warning strong { color: #ffc567; }
.fleet-mapping-overview-stats .ready { border-color: rgba(55, 202, 131, .52); }
.fleet-mapping-overview-stats .ready strong { color: #60dca0; }
.fleet-open-mapping-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid rgba(55, 202, 131, .6);
    border-radius: 10px;
    background: rgba(55, 202, 131, .09);
    color: #a2efc8;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 750;
}
.fleet-open-mapping-button:hover { background: rgba(55, 202, 131, .16); }
.fleet-mapping-overview-body > p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.fleet-mapping-workspace { margin-top: 16px; overflow: hidden; scroll-margin-top: 92px; }
.fleet-mapping-workspace[open] .fleet-mapping-workspace-summary { border-bottom: 1px solid var(--line); }
.fleet-mapping-batch-form { display: grid; min-width: 0; }
.fleet-mapping-batch-heading,
.fleet-mapping-batch-row {
    display: grid;
    grid-template-columns: minmax(180px, .65fr) minmax(320px, 1.25fr) minmax(230px, .85fr);
    align-items: center;
    gap: 16px;
}
.fleet-mapping-batch-heading {
    padding: 12px 22px;
    border-bottom: 1px solid var(--line);
    background: #142941;
    color: #8ebce5;
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.fleet-mapping-batch-list {
    max-height: min(680px, 68vh);
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: #506983 #091523;
    scrollbar-width: thin;
}
.fleet-mapping-batch-row {
    min-height: 78px;
    padding: 12px 22px;
    border-bottom: 1px solid rgba(40, 62, 87, .82);
    background: rgba(7, 19, 32, .42);
}
.fleet-mapping-batch-row:last-child { border-bottom: 0; }
.fleet-mapping-batch-row:hover { background: rgba(39, 84, 125, .1); }
.fleet-mapping-batch-type { display: grid; gap: 4px; }
.fleet-mapping-batch-type > strong { color: #9fd3ff; font-size: .9rem; }
.fleet-mapping-batch-type > small { color: var(--muted); font-size: .64rem; line-height: 1.35; }
.fleet-mapping-batch-type em { grid-column: auto; width: max-content; font-size: .58rem; font-style: normal; font-weight: 750; text-transform: uppercase; }
.fleet-mapping-batch-type .mapping-open { color: #ffbd58; }
.fleet-mapping-batch-select select {
    width: 100%;
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid #3b5877;
    border-radius: 9px;
    background: #081727;
    color: #eef6ff;
    font-size: .73rem;
}
.fleet-batch-allowed-options {
    min-width: 0;
    border: 1px solid rgba(139, 92, 246, .42);
    border-radius: 9px;
    background: rgba(139, 92, 246, .055);
}
.fleet-batch-allowed-options > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 40px;
    padding: 0 11px;
    color: #c8b5ff;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 700;
}
.fleet-batch-allowed-options > summary small { color: #8096ae; font-size: .58rem; }
.fleet-batch-allowed-list {
    max-height: 250px;
    overflow-y: auto;
    border-top: 1px solid rgba(139, 92, 246, .25);
}
.fleet-batch-allowed-list label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 5px 9px;
    border-bottom: 1px solid rgba(40, 62, 87, .6);
    color: #b9c9da;
    cursor: pointer;
    font-size: .62rem;
}
.fleet-batch-allowed-list label:last-child { border-bottom: 0; }
.fleet-batch-allowed-list input { width: 15px; height: 15px; }
.fleet-mapping-batch-footer {
    display: flex;
    position: sticky;
    z-index: 3;
    bottom: 0;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 22px;
    border-top: 1px solid #36536f;
    background: #0d1d2f;
    box-shadow: 0 -12px 30px rgba(0, 0, 0, .22);
}
.fleet-mapping-batch-footer > span { display: grid; gap: 3px; }
.fleet-mapping-batch-footer strong { color: #eef7ff; font-size: .78rem; }
.fleet-mapping-batch-footer small { color: var(--muted); font-size: .64rem; }
.fleet-mapping-batch-footer .primary-button { min-width: 240px; }

.fleet-group-workspace { margin-top: 16px; overflow: hidden; scroll-margin-top: 92px; }
.fleet-group-workspace[open] > .fleet-group-summary { border-bottom: 1px solid var(--line); }
.fleet-group-body { display: grid; gap: 16px; padding: 18px 20px 20px; }
.fleet-group-editor { display: grid; gap: 15px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4, 18, 33, .38); }
.fleet-group-new { border-color: rgba(47, 191, 136, .45); }
.fleet-group-editor-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 420px); gap: 18px; align-items: end; }
.fleet-group-editor-heading h3 { margin: 3px 0 0; color: #eef7ff; font-size: 1rem; }
.fleet-group-name { display: grid; gap: 6px; color: var(--muted); font-size: .7rem; }
.fleet-group-name input { min-width: 0; padding: 10px 12px; border: 1px solid #31506d; border-radius: 8px; background: #081a2c; color: #eef7ff; }
.fleet-group-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fleet-group-columns > section { display: grid; gap: 6px; min-width: 0; }
.fleet-group-columns > section > strong { color: #dceeff; font-size: .78rem; }
.fleet-group-columns > section > small { color: var(--muted); font-size: .64rem; }
.fleet-group-options { max-height: 300px; overflow: auto; border: 1px solid #29445e; border-radius: 9px; background: #071827; }
.fleet-group-options label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: center; padding: 9px 11px; border-bottom: 1px solid rgba(49, 80, 109, .65); cursor: pointer; }
.fleet-group-options label:last-child { border-bottom: 0; }
.fleet-group-options label:hover { background: rgba(55, 202, 131, .08); }
.fleet-group-options input { width: 15px; height: 15px; }
.fleet-group-options span { display: grid; gap: 2px; min-width: 0; }
.fleet-group-options strong { color: #dceeff; font-size: .72rem; }
.fleet-group-options small { color: var(--muted); font-size: .62rem; }
.fleet-group-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.fleet-group-list { display: grid; gap: 10px; }
.fleet-group-card { overflow: hidden; border: 1px solid #29445e; border-radius: 10px; background: rgba(8, 27, 45, .6); }
.fleet-group-card > summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 13px 15px; cursor: pointer; }
.fleet-group-card > summary > span:first-child { display: grid; gap: 3px; }
.fleet-group-card > summary strong { color: #eef7ff; font-size: .8rem; }
.fleet-group-card > summary small { color: var(--muted); font-size: .64rem; }
.fleet-group-card[open] > summary { border-bottom: 1px solid var(--line); }
.fleet-group-card .fleet-group-editor { border: 0; border-radius: 0; }
.fleet-group-reset-all { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid rgba(255, 184, 79, .42); border-radius: 10px; background: rgba(255, 184, 79, .06); }
.fleet-group-reset-all > div { display: grid; gap: 3px; }
.fleet-group-reset-all strong { color: #ffd087; font-size: .78rem; }
.fleet-group-reset-all small { color: var(--muted); font-size: .64rem; }
.fleet-route-pagination { display: flex; justify-content: center; align-items: center; gap: 16px; padding: 14px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.fleet-route-pagination a { padding: 8px 12px; border: 1px solid #31506d; border-radius: 8px; color: #9fd3ff; text-decoration: none; }
.fleet-route-pagination a:hover { background: rgba(67, 158, 229, .12); }

/* Version 0.73.2: taller searchable comparison workspaces */
.fleet-route-list {
    max-height: 750px;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-color: #506983 #091523;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}

.fleet-route-list .fleet-route-header {
    position: sticky;
    z-index: 5;
    top: 0;
}

.fleet-route-list::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.fleet-route-list::-webkit-scrollbar-track {
    background: #091523;
}

.fleet-route-list::-webkit-scrollbar-thumb {
    border: 2px solid #091523;
    border-radius: 999px;
    background: #506983;
}

.fleet-route-list::-webkit-scrollbar-thumb:hover {
    background: #6f8aa5;
}

.comparison-search-toolbar {
    display: flex;
    min-height: 66px;
    align-items: end;
    gap: 10px;
    padding: 11px 16px 12px;
    border-bottom: 1px solid #263b53;
    background: rgba(8, 21, 34, .72);
}

.comparison-search-toolbar label {
    display: grid;
    min-width: min(520px, 100%);
    flex: 1;
    gap: 5px;
}

.comparison-search-toolbar label > span {
    color: #9eb2ca;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.comparison-search-toolbar input[type="search"] {
    width: 100%;
    min-height: 39px;
    padding: 0 12px;
    border: 1px solid #405773;
    border-radius: 8px;
    outline: none;
    background: #081522;
    color: #eef7ff;
    font: inherit;
}

.comparison-search-toolbar input[type="search"]:focus {
    border-color: #45d5df;
    box-shadow: 0 0 0 3px rgba(69, 213, 223, .1);
}

.comparison-search-button,
.comparison-search-reset {
    display: inline-flex;
    min-height: 39px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid #315f86;
    border-radius: 8px;
    background: rgba(55, 149, 229, .12);
    color: #a7d8ff;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.comparison-search-reset {
    border-color: rgba(255, 180, 95, .5);
    background: rgba(255, 180, 95, .08);
    color: #ffd08f;
}

.comparison-search-result {
    min-width: 76px;
    margin-left: auto;
    padding-bottom: 10px;
    color: #8fa8c1;
    font-size: 11px;
    font-weight: 700;
    text-align: right;
}

.airport-row[hidden],
.comparison-search-empty[hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .comparison-search-toolbar {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .comparison-search-toolbar label {
        min-width: 100%;
    }

    .comparison-search-result {
        align-self: center;
        padding-bottom: 0;
    }
}

@media (max-width: 980px) {
    .fleet-mapping-batch-heading { display: none; }
    .fleet-mapping-batch-row { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 620px) {
    .fleet-mapping-overview-stats { grid-template-columns: 1fr; }
    .fleet-mapping-batch-footer { align-items: stretch; flex-direction: column; }
    .fleet-mapping-batch-footer .primary-button { width: 100%; min-width: 0; }
    .fleet-group-editor-heading,
    .fleet-group-columns { grid-template-columns: 1fr; }
    .fleet-group-reset-all { align-items: stretch; flex-direction: column; }
}

@media (max-width: 620px) {
    .api-source-notice { grid-template-columns: auto 1fr; }
    .api-source-notice a { grid-column: 2; }
    .api-sync-feedback dl { grid-column: 1 / -1; }
}
.api-write-card { margin-top: 18px; overflow: hidden; }
.api-write-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 12px; padding: 18px 22px; }
.api-write-preview-grid.single { grid-template-columns: minmax(180px, 320px); }
.api-write-preview-grid > span { display: flex; flex-direction: column; gap: 5px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4, 17, 31, .45); }
.api-write-preview-grid small { color: var(--muted); }
.api-write-preview-grid strong { font-size: 1.35rem; }
.api-write-preview-grid .danger strong { color: #ff7182; }
.api-write-confirm-form { display: flex; align-items: end; justify-content: flex-end; gap: 12px; padding: 0 22px 20px; }
.api-write-confirm-form label { display: grid; gap: 6px; color: var(--muted); font-size: .78rem; }
.api-write-confirm-form input { min-width: 180px; text-transform: uppercase; }
.api-write-readonly-note, .api-write-last { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 22px 20px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 10px; background: rgba(53, 113, 167, .08); }
.api-write-last { margin-top: 16px; }
.api-write-last > div { display: grid; gap: 3px; }
.api-write-last span { color: var(--muted); font-size: .78rem; }
.api-write-last.status-success { border-color: rgba(42, 205, 144, .45); }
.api-write-last.status-partial, .api-write-last.status-failed { border-color: rgba(255, 91, 111, .55); }
.fleet-api-write-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 20px 22px; }
.api-write-panel { display: grid; gap: 11px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(4, 17, 31, .38); }
.api-write-panel label { display: grid; gap: 5px; color: var(--muted); font-size: .78rem; }
.api-write-panel p { margin: 0; color: var(--muted); }
.api-batch-summary, .api-batch-items { margin-top: 18px; }
.api-batch-progress { height: 10px; margin: 18px 22px 2px; overflow: hidden; border-radius: 999px; background: #061422; }
.api-batch-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2799f5, #38d19a); transition: width .25s ease; }
.api-preflight-note { display: flex; justify-content: space-between; gap: 14px; margin: 12px 22px 0; padding: 11px 13px; border: 1px solid rgba(56, 209, 154, .35); border-radius: 9px; background: rgba(56, 209, 154, .06); color: var(--muted); font-size: .75rem; }
.api-preflight-note strong { color: #7be2bd; }
.api-preflight-note b { color: #ff91a0; }
.api-batch-list { max-height: 520px; overflow: auto; }
.api-batch-row { display: grid; grid-template-columns: 48px 110px minmax(220px, 1fr) 150px auto; gap: 12px; align-items: center; padding: 13px 20px; border-top: 1px solid var(--line); }
.api-batch-row.status-success { box-shadow: inset 3px 0 #27c98a; }
.api-batch-row.status-failed { box-shadow: inset 3px 0 #ff6074; }
.api-batch-row .error { grid-column: 3 / -1; color: #ff9aa8; }
.api-refresh-actions { display: flex; gap: 10px; align-items: center; padding: 14px 18px; }
@media (max-width: 900px) {
  .api-write-preview-grid, .fleet-api-write-grid { grid-template-columns: 1fr; }
  .api-write-confirm-form { align-items: stretch; flex-direction: column; }
  .api-batch-row { grid-template-columns: 38px 90px 1fr; }
  .api-batch-row > :nth-child(n+4) { grid-column: 3; }
}
.workflow-completion-card form {
    flex: 0 0 auto;
    margin: 0;
}

.workflow-run-status {
    display: grid;
    gap: 1px;
    margin-left: auto;
    padding-left: 16px;
    border-left: 1px solid var(--line);
    color: #7fc6ff;
    white-space: nowrap;
}
.workflow-run-status strong { font-size: .72rem; }
.workflow-run-status small { color: var(--muted); font-size: .62rem; }

.route-bulk-delete-card { margin: 0 0 18px; overflow: hidden; }
.route-bulk-delete-card summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 18px;
    cursor: pointer;
}
.route-bulk-delete-card summary span { color: var(--muted); font-size: .74rem; }
.route-bulk-delete-form {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(220px, 1fr) auto;
    gap: 14px;
    align-items: end;
    padding: 17px 18px;
    border-top: 1px solid var(--line);
}
.route-bulk-delete-form label { display: grid; gap: 6px; color: var(--muted); font-size: .74rem; }
.route-inline-button.danger { border-color: rgba(255, 91, 111, .65); color: #ff91a0; }

@media (max-width: 900px) {
    .workflow-run-status { display: none; }
    .route-bulk-delete-form { grid-template-columns: 1fr; }
}

.workflow-completion-card .secondary-button {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .workflow-completion-card {
        align-items: stretch;
        flex-direction: column;
    }

    .workflow-completion-card .secondary-button {
        width: 100%;
        white-space: normal;
    }
}

/* v0.62: consolidated and auditable API cockpit in the exporter */
.exporter-api-cockpit {
    margin-top: 18px;
    overflow: hidden;
}

.exporter-api-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--line);
    background: rgba(31, 118, 91, .07);
}

.exporter-api-intro > div { display: grid; gap: 3px; }
.exporter-api-intro span { color: var(--muted); font-size: .72rem; }
.exporter-api-intro a { color: #69c3ff; font-size: .75rem; font-weight: 750; }

.exporter-api-resource-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 18px 20px 20px;
}

.exporter-api-resource {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 13px;
    padding: 16px;
    border: 1px solid var(--line);
    border-top: 3px solid #42a9ff;
    border-radius: 13px;
    background: rgba(5, 19, 33, .58);
}

.exporter-api-resource.airports { border-top-color: #35cbd2; }
.exporter-api-resource.fleet { border-top-color: #38d49a; }

.exporter-api-resource-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.exporter-api-resource-title > span {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid #346995;
    border-radius: 9px;
    color: #78c7ff;
    font-size: .7rem;
    font-weight: 850;
}

.exporter-api-resource.airports .exporter-api-resource-title > span { border-color: #2a8f96; color: #62e0e6; }
.exporter-api-resource.fleet .exporter-api-resource-title > span { border-color: #278d69; color: #66e4b4; }
.exporter-api-resource-title > div { display: grid; min-width: 0; gap: 2px; }
.exporter-api-resource-title strong { font-size: .94rem; }
.exporter-api-resource-title small { overflow: hidden; color: var(--muted); font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }

.exporter-api-counts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.exporter-api-counts.single { grid-template-columns: minmax(0, 1fr); }
.exporter-api-counts > span {
    display: grid;
    gap: 3px;
    padding: 9px 10px;
    border: 1px solid #29445e;
    border-radius: 9px;
    background: rgba(13, 34, 53, .65);
}
.exporter-api-counts small { color: var(--muted); font-size: .62rem; }
.exporter-api-counts strong { color: #e8f5ff; font-size: 1.1rem; }
.exporter-api-counts .danger strong { color: #ff7587; }

.exporter-api-last {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 10px;
    border: 1px solid rgba(56, 209, 154, .3);
    border-radius: 8px;
    background: rgba(56, 209, 154, .06);
    color: #a9c7bb;
    font-size: .66rem;
}
.exporter-api-last a { color: #72dcb5; font-weight: 800; }

.exporter-api-warning {
    padding: 9px 10px;
    border-left: 3px solid #f3b73f;
    border-radius: 6px;
    background: rgba(243, 183, 63, .08);
    color: #d9c38d;
    font-size: .67rem;
    line-height: 1.45;
}

.exporter-api-actions {
    display: grid;
    gap: 10px;
    margin-top: auto;
}
.exporter-api-actions > form > button,
.exporter-api-actions > div > form > button,
.exporter-api-actions > div > a { width: 100%; }
.exporter-api-actions.stacked > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.exporter-api-write-form { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(150px, 1fr); gap: 8px; align-items: end; }
.exporter-api-write-form label { display: grid; gap: 4px; color: var(--muted); font-size: .63rem; }
.exporter-api-write-form input { min-width: 0; text-transform: uppercase; }
.exporter-api-clean { padding: 9px 2px; color: #72dcb5; font-size: .7rem; font-weight: 750; }

.exporter-api-history {
    margin: 0 20px 20px;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
}
.exporter-api-history summary { padding: 12px 14px; color: #a9c3da; cursor: pointer; font-size: .73rem; font-weight: 750; }
.exporter-api-history > div { max-height: 260px; overflow-y: auto; border-top: 1px solid var(--line); }
.exporter-api-history a { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); color: #cbdceb; font-size: .68rem; }
.exporter-api-history a:last-child { border-bottom: 0; }
.exporter-api-history a small { color: var(--muted); }

@media (max-width: 1100px) {
    .exporter-api-resource-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .exporter-api-intro { align-items: flex-start; flex-direction: column; }
    .exporter-api-write-form { grid-template-columns: 1fr; }
    .exporter-api-actions.stacked > div { grid-template-columns: 1fr; }
    .exporter-api-history a { grid-template-columns: 1fr auto; }
    .exporter-api-history a small { grid-column: 1 / -1; }
}
/* v0.65: focused aircraft workspace and centralized delivery cockpit */
.aircraft-mode-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 0 0 1rem;
}
.aircraft-mode-nav a {
    display: grid;
    grid-template-columns: 2rem 1fr;
    column-gap: .7rem;
    align-items: center;
    min-width: 0;
    padding: .8rem .9rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel);
    color: var(--muted);
    text-decoration: none;
}
.aircraft-mode-nav a > span {
    grid-row: 1 / 3;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid #2f5f87;
    border-radius: 9px;
    color: #7fc8ff;
}
.aircraft-mode-nav strong { color: var(--text); font-size: .94rem; }
.aircraft-mode-nav small { font-size: .72rem; }
.aircraft-mode-nav a.active {
    border-color: #2fc68c;
    background: rgba(27, 128, 96, .14);
    box-shadow: inset 3px 0 #2fc68c;
}
.aircraft-source-inventory,
.aircraft-comparison-card { margin-top: 1rem; }
.aircraft-source-table,
.aircraft-comparison-list {
    max-height: 34rem;
    overflow: auto;
    scrollbar-gutter: stable;
}
.aircraft-source-table > div,
.aircraft-source-table-head {
    display: grid;
    grid-template-columns: 1fr 2fr .8fr 1fr .7fr;
    gap: .8rem;
    align-items: center;
    min-width: 760px;
    padding: .65rem .85rem;
    border-bottom: 1px solid var(--line);
}
.aircraft-source-table-head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--panel-2);
    color: #83bff0;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
}
.aircraft-comparison-row {
    display: grid;
    grid-template-columns: .8fr 1fr 2fr 2fr 1.1fr;
    gap: .7rem;
    align-items: center;
    min-width: 930px;
    padding: .65rem .85rem;
    border-bottom: 1px solid var(--line);
}
.aircraft-comparison-row.head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--panel-2);
    color: #83bff0;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
}
.aircraft-comparison-row.current { box-shadow: inset 3px 0 #2fc68c; }
.aircraft-comparison-row.new { box-shadow: inset 3px 0 #4aa8ff; }
.aircraft-comparison-row.changed { box-shadow: inset 3px 0 #ffc857; }
.aircraft-comparison-row.missing { box-shadow: inset 3px 0 #ff667d; }

.central-export-card { margin: 1rem 0; }
.central-export-grid,
.exporter-api-resource-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.central-export-resource {
    display: grid;
    grid-template-columns: 2.7rem 1fr auto;
    gap: .8rem;
    align-items: center;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(9, 28, 47, .65);
}
.central-export-resource > div { min-width: 0; }
.central-export-resource strong,
.central-export-resource small { display: block; }
.central-export-resource small { margin-top: .15rem; color: var(--muted); }
.central-export-resource > a {
    padding: .55rem .7rem;
    border: 1px solid #2a6b9d;
    border-radius: 9px;
    color: #8fd0ff;
    text-decoration: none;
    white-space: nowrap;
}
.central-export-resource > a.disabled { border-color: var(--line); color: var(--muted); }
.central-export-actions {
    display: flex;
    gap: .45rem;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.central-export-actions > a {
    padding: .55rem .7rem;
    border: 1px solid #2a6b9d;
    border-radius: 9px;
    color: #8fd0ff;
    text-decoration: none;
    white-space: nowrap;
}
.central-export-actions > a.primary {
    border-color: #27bfc9;
    background: rgba(39, 191, 201, .12);
    color: #72edf2;
}
.central-export-icon {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border: 1px solid #2f73a8;
    border-radius: 10px;
    color: #7fc8ff;
    font-weight: 900;
}
.central-export-resource.airports .central-export-icon { border-color: #27bfc9; color: #55dce5; }
.central-export-resource.fleet .central-export-icon { border-color: #35b987; color: #67e0ad; }
.central-export-resource.aircraft .central-export-icon { border-color: #9a70e8; color: #bd9aff; }
.exporter-api-all {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin: 1rem;
    padding: 1rem;
    border: 1px solid #2fc68c;
    border-radius: 12px;
    background: rgba(27, 128, 96, .12);
}
.exporter-api-all > div span { display: block; margin-top: .25rem; color: var(--muted); }
.exporter-fleet-create { margin-top: .7rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.exporter-fleet-create summary { cursor: pointer; color: #9dcbef; font-weight: 700; }
.exporter-fleet-create form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    margin-top: .7rem;
}
.exporter-fleet-create label { display: grid; gap: .25rem; color: var(--muted); font-size: .72rem; }

@media (max-width: 900px) {
    .aircraft-mode-nav,
    .central-export-grid,
    .exporter-api-resource-grid { grid-template-columns: 1fr; }
    .central-export-resource { grid-template-columns: 2.7rem 1fr; }
    .central-export-resource > a { grid-column: 1 / -1; text-align: center; }
    .central-export-actions { grid-column: 1 / -1; justify-content: stretch; }
    .central-export-actions > a { flex: 1 1 auto; text-align: center; }
    .exporter-api-all { align-items: stretch; flex-direction: column; }
}
.fleet-export-next-form { margin: 0; }
.fleet-export-next-form .fleet-export-next-button {
    width: 100%;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.dataset-action-options.single-option {
    grid-template-columns: minmax(0, 1fr);
}
.dataset-action-direct-form {
    min-width: 0;
    margin: 0;
}
.dataset-action-direct-form .dataset-action-option {
    width: 100%;
    height: 100%;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.fleet-draft-card { margin-top: 1rem; border-top: 3px solid #31c889; }
.fleet-draft-list { display: grid; gap: .5rem; padding: 0 1.25rem 1rem; }
.fleet-draft-row { display: grid; grid-template-columns: .7fr 1fr 2fr 1.2fr; gap: .7rem; align-items: center; }
.fleet-draft-row.head { color: var(--muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.fleet-draft-row input, .fleet-draft-row select { width: 100%; }
.fleet-draft-actions { display: flex; gap: .75rem; padding: 0 1.25rem 1rem; }
.fleet-draft-next { display: grid; gap: .25rem; padding: 1rem 1.25rem; border-top: 1px solid var(--line); color: var(--muted); }
.fleet-draft-next strong { color: #8ce3bd; }
@media (max-width: 850px) {
    .fleet-draft-row { grid-template-columns: 1fr; padding: .8rem; border: 1px solid var(--line); border-radius: .6rem; }
    .fleet-draft-row.head { display: none; }
    .fleet-draft-actions { flex-direction: column; }
}

/* Version 0.74.0: reference-free route inventory and Historic protection. */
.captured-route-card { margin-top: 1rem; }
.captured-route-search {
    display: grid;
    gap: .45rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.captured-route-search > div { display: flex; gap: .6rem; }
.captured-route-search input { flex: 1 1 auto; }
.captured-route-search a,
.captured-route-search button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7rem;
    padding: .65rem .9rem;
    border: 1px solid #2f5d82;
    border-radius: 9px;
    background: #10263a;
    color: #bfe2ff;
    font-weight: 800;
    cursor: pointer;
}
.captured-route-list {
    max-height: 750px;
    overflow: auto;
    scrollbar-gutter: stable;
}
.captured-route-row {
    display: grid;
    grid-template-columns: 8rem 9rem minmax(13rem, 1fr) 11rem minmax(15rem, 1.2fr);
    gap: 1rem;
    align-items: center;
    min-width: 780px;
    padding: .8rem 1.25rem;
    border-bottom: 1px solid var(--line);
}
.captured-route-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #142a40;
    color: #8fc8f5;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.captured-aircraft-variants { display: flex; flex-wrap: wrap; gap: .35rem; }
.captured-flight-source {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
}
.captured-flight-source > strong {
    width: 100%;
}
.captured-flight-source > small,
.intrepid-coverage small {
    color: var(--muted);
}
.captured-flight-source > small {
    padding: .12rem .35rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: .66rem;
    white-space: nowrap;
}
.captured-flight-source > .review-recommended {
    border-color: #b57a1b;
    color: #e6ae4d;
}
.intrepid-coverage {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    padding: .8rem 1.25rem;
    border-bottom: 1px solid var(--line);
}
.intrepid-coverage > span {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: .45rem;
    min-width: 0;
}
.intrepid-coverage strong {
    font-size: 1rem;
}
.intrepid-coverage small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .intrepid-coverage {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.captured-aircraft-variants small {
    padding: .25rem .45rem;
    border: 1px solid #2c8a70;
    border-radius: 999px;
    color: #79e7bd;
    font-weight: 800;
}
.historic-route-protection {
    display: grid;
    grid-template-columns: minmax(260px, .9fr) minmax(320px, 1.35fr) auto auto;
    align-items: center;
    gap: 1rem;
    margin: 0 1.25rem 1rem;
    padding: .85rem 1rem;
    border: 1px solid #946f21;
    border-radius: 10px;
    background: rgba(148, 111, 33, .11);
}
.historic-route-protection .historic-protection-toggle {
    display: flex;
    align-items: center;
    gap: .75rem;
    cursor: pointer;
}
.historic-route-protection label span { display: grid; gap: .2rem; }
.historic-route-protection label small { color: var(--muted); }
.historic-route-protection .historic-protection-tags {
    display: grid;
    gap: .35rem;
    cursor: text;
}
.historic-protection-tags > span {
    color: #ffd36d;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.historic-protection-tags input {
    min-height: 40px;
    padding: .6rem .75rem;
    border: 1px solid #7b612a;
    border-radius: 8px;
    background: #0b1927;
    color: #f7fbff;
}
.historic-route-protection button {
    padding: .6rem .85rem;
    border: 1px solid #bd8b22;
    border-radius: 8px;
    background: #382b13;
    color: #ffd36d;
    font-weight: 800;
    cursor: pointer;
}
.historic-protected-count {
    white-space: nowrap;
    color: #ffd36d;
    font-weight: 800;
}

@media (max-width: 1100px) {
    .historic-route-protection { align-items: stretch; flex-direction: column; }
    .historic-route-protection { grid-template-columns: 1fr; }
    .captured-route-search > div { align-items: stretch; flex-direction: column; }
}

/* Balanced dashboard: six workflow modules in two complete rows. */
.module-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.module-tile.storage {
    grid-column: 1 / -1;
}

.module-grid .module-tile.export {
    grid-column: auto;
}

.aircraft-variant-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

.aircraft-variant-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 7px;
    border: 1px solid #36536f;
    border-radius: 999px;
    background: #0a1a29;
    color: #b8cce0;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.aircraft-variant-chip.primary {
    border-color: #2cbf86;
    background: rgba(44, 191, 134, .1);
    color: #72e6b8;
}

.aircraft-variant-chip small {
    color: inherit;
    font-size: 9px;
    opacity: .78;
}

@media (max-width: 1050px) {
    .module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .module-grid {
        grid-template-columns: 1fr;
    }

    .module-tile.storage {
        grid-column: auto;
    }

    .fleet-assignment-mode-form,
    .route-schedule-enrichment-form {
        grid-template-columns: 1fr;
    }

    .route-schedule-enrichment-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* v0.82: live API throughput feedback for long-running safe writes. */
.api-batch-live-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.api-batch-live-metrics span {
    display: grid;
    gap: 4px;
    min-height: 64px;
    padding: 12px 14px;
    border: 1px solid #294966;
    border-radius: 12px;
    background: rgba(6, 22, 38, .7);
}

.api-batch-live-metrics small {
    color: #8eacc7;
    font-size: 11px;
}

.api-batch-live-metrics strong {
    color: #eef8ff;
    font-size: 18px;
}

.api-throughput-note {
    display: grid;
    grid-template-columns: minmax(140px, auto) 1fr;
    gap: 14px;
    align-items: start;
    margin-top: 14px;
    padding: 13px 15px;
    border: 1px solid rgba(255, 190, 76, .55);
    border-radius: 12px;
    background: rgba(255, 178, 52, .08);
    color: #bdd0e1;
}

.api-throughput-note strong {
    color: #ffd273;
}

@media (max-width: 780px) {
    .api-batch-live-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .api-throughput-note {
        grid-template-columns: 1fr;
    }
}
