:root {
    --navy-950: #0d1625;
    --navy-900: #162238;
    --navy-800: #20314d;
    --blue-600: #3c68a8;
    --blue-500: #4f82c5;
    --blue-100: #e9f2ff;
    --slate-700: #42526a;
    --slate-500: #6b7a90;
    --slate-300: #cad3df;
    --slate-200: #dfe5ed;
    --slate-100: #eff3f7;
    --white: #fff;
    --green: #25a36f;
    --amber: #e3a227;
    --red: #d95a5a;
    --shadow: 0 16px 42px rgba(13, 28, 48, .16);
    font-family: Verdana, Arial, sans-serif;
    color: var(--navy-950);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

body {
    background: #e8eef5;
}

button,
input {
    font: inherit;
}

button {
    -webkit-tap-highlight-color: transparent;
}

.tracking-page {
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

.app-shell {
    display: grid;
    grid-template-rows: 70px minmax(0, 1fr);
    height: 100%;
}

.topbar {
    position: relative;
    z-index: 1001;
    display: grid;
    grid-template-columns: minmax(230px, 1fr) auto minmax(230px, 1fr);
    align-items: center;
    gap: 20px;
    min-width: 0;
    padding: 0 22px;
    color: var(--white);
    background: linear-gradient(120deg, var(--navy-950), var(--navy-800));
    box-shadow: 0 4px 18px rgba(5, 14, 28, .28);
}

.brand,
.login-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.brand strong,
.brand small {
    display: block;
}

.brand strong {
    font-size: 15px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.brand small {
    margin-top: 2px;
    color: #bdcbe0;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.brand-mark {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 11px;
    color: var(--white);
    background: rgba(255, 255, 255, .1);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.brand-mark-large {
    width: 52px;
    height: 52px;
    border-color: rgba(60, 84, 148, .22);
    color: var(--white);
    background: var(--navy-900);
    font-size: 16px;
}

/* Option A branding. The SVG owns its blue tile and rounded corners. */
.brand-mark.brand-mark-icon {
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    object-fit: contain;
}

/* Keep the sign-in icon larger, including at narrow mobile widths. */
.login-brand .brand-mark-icon {
    width: 52px;
    height: 52px;
}

.topbar-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 0;
    color: #d5deea;
    font-size: 12px;
    white-space: nowrap;
}

.refresh-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    margin-left: 3px;
    padding: 5px 9px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    color: var(--white);
    background: rgba(255, 255, 255, .1);
    cursor: pointer;
    font-size: 9px;
    font-weight: 700;
}

.refresh-toggle:hover,
.refresh-toggle.is-paused {
    background: rgba(255, 255, 255, .18);
}

.refresh-toggle-icon {
    font-size: 8px;
}

.sync-dot,
.status-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--slate-300);
}

.sync-dot.is-live {
    background: var(--green);
    box-shadow: 0 0 0 4px rgba(37, 163, 111, .14);
}

.status-current {
    background: var(--blue-500);
    box-shadow: 0 0 0 4px rgba(79, 130, 197, .14);
}

.sync-dot.is-warning {
    background: var(--amber);
}

.sync-dot.is-error,
.status-unknown {
    background: var(--red);
}

.status-on-ground {
    background: var(--green);
    box-shadow: 0 0 0 4px rgba(37, 163, 111, .14);
}

.sync-dot.is-loading {
    background: #83a9d8;
    animation: pulse 1.4s ease-in-out infinite;
}

.topbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}

.topbar-actions form {
    margin: 0;
}

.button {
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid transparent;
    border-radius: 9px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button:focus-visible,
input:focus-visible,
.fleet-card-summary:focus-visible,
.flight-card-toggle:focus-visible,
.refresh-toggle:focus-visible {
    outline: 3px solid rgba(79, 130, 197, .38);
    outline-offset: 2px;
}

.button-primary {
    color: var(--white);
    background: var(--blue-600);
}

.button-primary:hover {
    background: #315b96;
}

.button-secondary {
    color: var(--white);
    border-color: rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .1);
}

.button-secondary:hover {
    background: rgba(255, 255, 255, .17);
}

.button-quiet {
    color: #c8d4e4;
    background: transparent;
}

.button-quiet:hover {
    color: var(--white);
    background: rgba(255, 255, 255, .08);
}

.button-full {
    width: 100%;
    min-height: 46px;
    margin-top: 8px;
}

.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.tracking-layout {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    min-height: 0;
}

.fleet-panel {
    position: relative;
    z-index: 500;
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 22px 18px 15px;
    border-right: 1px solid var(--slate-200);
    background: rgba(249, 251, 253, .97);
    box-shadow: 8px 0 26px rgba(27, 44, 69, .08);
}

.fleet-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
}

.fleet-panel-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fleet-mobile-navigation {
    display: none;
}

.eyebrow {
    margin: 0 0 5px;
    color: var(--blue-600);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.fleet-panel h1,
.login-card h1 {
    margin: 0;
    color: var(--navy-950);
    font-size: 23px;
    line-height: 1.15;
}

.fleet-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 35px;
    height: 30px;
    padding: 0 9px;
    border-radius: 15px;
    color: var(--blue-600);
    background: var(--blue-100);
    font-size: 12px;
    font-weight: 700;
}

.flight-map-switch {
    min-width: 0;
    margin: 0 0 10px;
    padding: 0;
    border: 0;
}

.flight-map-switch legend {
    margin-bottom: 5px;
    padding: 0;
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.flight-map-switch-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3px;
    padding: 3px;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
    background: var(--slate-100);
}

.flight-map-switch-options label {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.flight-map-switch-options input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.flight-map-switch-options span {
    display: block;
    padding: 7px 9px;
    border-radius: 7px;
    color: var(--slate-500);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    transition: color .15s ease, background .15s ease, box-shadow .15s ease;
}

.flight-map-switch-options input:checked + span {
    color: var(--blue-600);
    background: var(--white);
    box-shadow: 0 2px 7px rgba(32, 49, 77, .12);
}

.flight-map-switch-options input:focus-visible + span {
    outline: 2px solid var(--blue-500);
    outline-offset: 1px;
}

.flight-map-switch small {
    display: block;
    margin-top: 5px;
    color: var(--slate-500);
    font-size: 8px;
    line-height: 1.35;
}

/* Shared map-mode explanation: readable desktop text, compact mobile dialog. */
#flight-map-mode-description { font-size: 10px; line-height: 1.45; }
.map-display-help-button { display: none; }
.map-display-help-dialog {
    width: min(400px, calc(100vw - 32px));
    max-height: calc(100dvh - 40px);
    margin: auto;
    padding: 22px;
    border: 1px solid var(--slate-200);
    border-radius: 14px;
    color: var(--navy-800);
    background: var(--white);
    box-shadow: 0 14px 44px rgba(20, 35, 56, .28);
}
.map-display-help-dialog::backdrop { background: rgba(20, 35, 56, .45); }
.map-display-help-dialog h2 { margin: 0 0 12px; font-size: 20px; }
.map-display-help-dialog p { margin: 0 0 18px; font-size: 14px; line-height: 1.6; }
.map-display-help-dialog form { display: flex; justify-content: flex-end; }

.fleet-list {
    min-height: 0;
    flex: 1;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 1px 3px 12px 1px;
    scrollbar-width: thin;
    scrollbar-color: var(--slate-300) transparent;
}

.fleet-loading,
.fleet-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 130px;
    padding: 20px;
    border: 1px dashed var(--slate-300);
    border-radius: 12px;
    color: var(--slate-500);
    text-align: center;
    font-size: 12px;
    line-height: 1.55;
}

.spinner {
    width: 17px;
    height: 17px;
    border: 2px solid var(--slate-200);
    border-top-color: var(--blue-600);
    border-radius: 50%;
    animation: spin .8s linear infinite;
}

.fleet-card {
    position: relative;
    display: block;
    width: 100%;
    margin: 0 0 9px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: 12px;
    color: inherit;
    background: var(--white);
    box-shadow: 0 4px 14px rgba(32, 49, 77, .05);
    cursor: default;
    text-align: left;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.fleet-card-summary,
.flight-card-toggle {
    display: block;
    width: 100%;
    border: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.fleet-card-summary {
    padding: 13px 13px 12px 16px;
}

.fleet-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--aircraft-color, var(--blue-600));
    content: '';
}

.fleet-card:hover {
    border-color: #b8c5d6;
    box-shadow: 0 8px 21px rgba(32, 49, 77, .1);
    transform: translateY(-1px);
}

.fleet-card-head,
.fleet-card-line,
.fleet-card-metrics {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fleet-card-title {
    overflow: hidden;
    font-size: 14px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fleet-card-status {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    color: var(--slate-500);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fleet-card-status::after {
    margin-left: 2px;
    color: var(--slate-400);
    content: '⌄';
    font-size: 13px;
    line-height: 1;
    transition: transform .18s ease;
}

.fleet-card.is-expanded .fleet-card-status::after {
    transform: rotate(180deg);
}

.fleet-card-line {
    margin-top: 7px;
    color: var(--slate-500);
    font-size: 10px;
}

.fleet-card-day {
    display: block;
    margin-top: 7px;
    color: var(--blue-600);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fleet-card-metrics {
    justify-content: flex-start;
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px solid var(--slate-100);
}

.fleet-metric {
    min-width: 0;
    flex: 1;
}

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

.fleet-metric span {
    margin-bottom: 3px;
    color: var(--slate-500);
    font-size: 8px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fleet-metric strong {
    color: var(--navy-800);
    font-size: 11px;
}

.fleet-card-flights,
.fleet-card-activity {
    display: none;
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid var(--slate-200);
}

.fleet-card.is-expanded > .fleet-card-flights,
.flight-card.is-expanded > .fleet-card-activity {
    display: block;
}

.fleet-card-flights {
    margin: 0 13px 13px 16px;
    padding-top: 11px;
    border-top: 1px solid var(--slate-200);
}

.flight-card {
    margin-top: 7px;
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: 9px;
    background: #f9fbfd;
}

.flight-card-toggle {
    padding: 9px;
}

.flight-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--slate-500);
    font-size: 8px;
}

.flight-card-heading strong {
    color: var(--navy-800);
    font-size: 10px;
    letter-spacing: .06em;
}

.flight-card-heading::after {
    content: '⌄';
    color: var(--slate-500);
    font-size: 12px;
    transition: transform .18s ease;
}

.flight-card.is-expanded .flight-card-heading::after {
    transform: rotate(180deg);
}

.flight-card-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 5px;
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid var(--slate-200);
}

.flight-card > .fleet-card-activity {
    margin: 0 9px 9px;
    padding-top: 9px;
}

.flight-card-actions {
    display: none;
    padding: 0 9px 9px;
}

.flight-card.is-expanded > .flight-card-actions {
    display: block;
}

.flight-card-actions button {
    width: 100%;
    padding: 7px 9px;
    border: 1px solid rgba(60, 104, 168, .35);
    border-radius: 7px;
    color: var(--blue-600);
    background: var(--blue-100);
    cursor: pointer;
    font-size: 9px;
    font-weight: 700;
}

.fleet-card-activity-heading,
.fleet-card-activity-empty,
.fleet-card-activity-row,
.fleet-card-activity-label,
.fleet-card-activity-duration {
    display: block;
}

.fleet-card-activity-heading {
    margin-bottom: 7px;
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fleet-card-activity-row {
    position: relative;
    width: 100%;
    margin-top: 5px;
    padding: 8px 9px 8px 20px;
    border: 1px solid rgba(79, 130, 197, .65);
    border-radius: 7px;
    background: rgba(79, 130, 197, .08);
    font: inherit;
    text-align: left;
}

.fleet-card-activity-row.is-clickable {
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.fleet-card-activity-row.is-clickable:hover,
.fleet-card-activity-row.is-clickable:focus-visible {
    border-color: var(--blue-500);
    box-shadow: 0 4px 12px rgba(32, 49, 77, .14);
    outline: none;
    transform: translateY(-1px);
}

.fleet-card-activity-row::before {
    position: absolute;
    top: 11px;
    left: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--green);
    content: '';
}

.fleet-card-activity-row.is-airborne::before {
    background: var(--blue-500);
}

.fleet-card-activity-row.is-on-ground {
    border-color: rgba(37, 163, 111, .68);
    background: rgba(37, 163, 111, .08);
}

.fleet-card-activity-row.is-on-ground::before {
    background: var(--green);
}

.fleet-card-activity-row.is-unknown {
    border-color: rgba(217, 58, 58, .68);
    background: rgba(217, 58, 58, .07);
}

.fleet-card-activity-row.is-unknown::before {
    background: var(--red);
}

.fleet-card-activity-label {
    color: var(--navy-800);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
}

.fleet-card-activity-duration {
    margin-top: 3px;
    color: var(--slate-500);
    font-size: 9px;
    font-weight: 400;
}

.fleet-card-activity-empty {
    padding: 8px 0 2px;
    color: var(--slate-500);
    font-size: 9px;
}

.status-key {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 12px 4px 0;
    border-top: 1px solid var(--slate-200);
    color: var(--slate-500);
    font-size: 9px;
}

.status-key span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.status-key .status-dot,
.fleet-card-status .status-dot {
    width: 7px;
    height: 7px;
    box-shadow: none;
}

.map-wrap,
#map {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
}

#map {
    z-index: 1;
    background: #c9d4df;
}

.map-message {
    position: absolute;
    z-index: 700;
    top: 16px;
    left: 50%;
    max-width: min(520px, calc(100% - 32px));
    padding: 11px 15px;
    border: 1px solid #e5c576;
    border-radius: 10px;
    color: #6f5217;
    background: #fff6dc;
    box-shadow: var(--shadow);
    font-size: 11px;
    line-height: 1.45;
    transform: translateX(-50%);
}

.map-message.is-error {
    border-color: #e0a1a1;
    color: #833333;
    background: #fff0f0;
}

.map-message.is-hidden {
    display: none;
}

.selected-flight-bar {
    position: absolute;
    z-index: 700;
    bottom: 18px;
    left: 18px;
    display: flex;
    align-items: flex-end;
    gap: 12px;
    width: min(1040px, calc(100% - 90px));
    max-width: calc(100% - 90px);
    padding: 10px 11px 10px 14px;
    border: 1px solid rgba(60, 104, 168, .34);
    border-radius: 10px;
    color: var(--navy-800);
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--shadow);
    font-size: 10px;
    font-weight: 700;
}

.selected-flight-summary {
    min-width: 0;
    flex: 1 1 auto;
}

.selected-flight-title {
    display: block;
    margin-bottom: 9px;
    font-size: 11px;
}

.selected-flight-metrics {
    display: grid;
    grid-template-columns: repeat(7, minmax(76px, 1fr));
    gap: 7px 12px;
}

.selected-flight-metrics .fleet-metric span {
    font-size: 7px;
}

.selected-flight-metrics .fleet-metric strong {
    font-size: 9px;
    white-space: normal;
}

.selected-flight-bar.is-hidden {
    display: none;
}

.selected-flight-bar button {
    flex: 0 0 auto;
    padding: 7px 9px;
    border: 0;
    border-radius: 7px;
    color: var(--white);
    background: var(--blue-600);
    cursor: pointer;
    font-size: 9px;
    font-weight: 700;
}

.aircraft-div-icon {
    background: transparent;
    border: 0;
}

.landing-div-icon {
    background: transparent;
    border: 0;
}

.landing-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    border: 2px solid rgba(255, 255, 255, .96);
    border-radius: 50%;
    color: var(--white);
    background: var(--landing-color, var(--blue-500));
    box-shadow: 0 2px 7px rgba(10, 24, 42, .32), 0 0 0 1px var(--landing-color, var(--blue-500));
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.landing-popup {
    display: grid;
    gap: 4px;
    min-width: 230px;
    color: var(--navy-950);
    font-size: 10px;
}

.landing-popup-title {
    font-size: 12px;
}

.landing-popup-type,
.landing-popup-coordinates {
    color: var(--slate-500);
}

.landing-popup-details {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 5px 10px;
    margin: 4px 0;
    padding: 8px 0;
    border-top: 1px solid var(--slate-200);
    border-bottom: 1px solid var(--slate-200);
}

.landing-popup-details span {
    color: var(--slate-500);
}

.landing-popup-details strong {
    color: var(--navy-800);
    text-align: right;
}

.aircraft-marker {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid rgba(255, 255, 255, .96);
    border-radius: 50%;
    background: var(--marker-color, var(--blue-500));
    box-shadow: 0 4px 11px rgba(10, 24, 42, .32), 0 0 0 1.5px var(--marker-color, var(--blue-500));
}

.aircraft-marker.is-current {
    --marker-color: var(--blue-500);
}

.aircraft-marker.is-on-ground {
    --marker-color: var(--green);
}

.aircraft-marker.is-unknown {
    --marker-color: var(--red);
}

.aircraft-marker.is-on-ground.is-stopover {
    --marker-color: var(--aircraft-color, var(--blue-500));
    width: 21px;
    height: 21px;
    border-width: 2px;
    box-shadow: 0 2px 7px rgba(10, 24, 42, .32), 0 0 0 1px var(--marker-color);
}

.aircraft-marker.is-on-ground.is-stopover .aircraft-marker-symbol.is-letter {
    font-size: 10px;
}

.aircraft-marker.is-on-ground.is-stopover .aircraft-marker-label {
    top: 24px;
}

.aircraft-marker.is-emergency {
    animation: emergency 1s ease-in-out infinite;
}

.aircraft-marker-symbol {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
}

.aircraft-marker-symbol.is-direction {
    width: 19px;
    height: 19px;
    transform: rotate(var(--course, 0deg));
    transform-origin: center;
}

.aircraft-marker-symbol.is-direction svg {
    width: 19px;
    height: 19px;
    overflow: visible;
    fill: currentColor;
    filter: drop-shadow(0 1px 1px rgba(8, 25, 48, .25));
}

.aircraft-marker-symbol.is-letter {
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
}

.aircraft-marker-symbol.is-current-stationary {
    width: 8px;
    height: 8px;
    border: 1.5px solid rgba(255, 255, 255, .7);
    border-radius: 50%;
    background: var(--white);
}

.aircraft-marker-label {
    position: absolute;
    top: 33px;
    left: 50%;
    max-width: 160px;
    padding: 4px 7px;
    overflow: hidden;
    border: 1px solid rgba(13, 22, 37, .13);
    border-radius: 6px;
    color: var(--navy-950);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 3px 10px rgba(13, 22, 37, .14);
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
    transform: translateX(-50%);
}

.leaflet-container {
    font-family: Verdana, Arial, sans-serif;
}

.leaflet-control-layers,
.leaflet-bar {
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: 0 6px 18px rgba(13, 28, 48, .2) !important;
}

.leaflet-bar a:first-child,
.leaflet-bar a:last-child {
    border-radius: 8px;
}

.leaflet-popup-content-wrapper {
    border-radius: 13px;
    box-shadow: 0 12px 32px rgba(13, 28, 48, .22);
}

.leaflet-popup-content {
    width: 245px !important;
    margin: 15px 16px 14px;
}

.position-popup h2 {
    margin: 0 0 3px;
    color: var(--navy-950);
    font-size: 15px;
}

.position-popup-time {
    margin: 0 0 12px;
    color: var(--slate-500);
    font-size: 9px;
}

.position-popup-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px 12px;
}

.position-popup-item {
    min-width: 0;
    padding-top: 7px;
    border-top: 1px solid var(--slate-100);
}

.position-popup-item.is-wide {
    grid-column: 1 / -1;
}

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

.position-popup-item span {
    margin-bottom: 3px;
    color: var(--slate-500);
    font-size: 8px;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.position-popup-item strong {
    overflow-wrap: anywhere;
    color: var(--navy-800);
    font-size: 10px;
    line-height: 1.35;
}

.position-popup-item strong.is-unavailable {
    color: #8a97a8;
    font-weight: 400;
}

.login-page {
    min-height: 100vh;
    min-height: 100dvh;
    color: var(--navy-950);
    background:
        radial-gradient(circle at 20% 15%, rgba(83, 126, 184, .26), transparent 34%),
        radial-gradient(circle at 80% 85%, rgba(43, 72, 108, .26), transparent 32%),
        linear-gradient(145deg, #111d31, #243a59);
}

.login-shell {
    display: flex;
    min-height: 100vh;
    min-height: 100dvh;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login-card {
    width: min(100%, 430px);
    padding: 34px;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 20px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 28px 70px rgba(4, 13, 26, .34);
}

.login-brand {
    margin-bottom: 23px;
}

.login-intro {
    margin: 0 0 24px;
    color: var(--slate-500);
    font-size: 12px;
    line-height: 1.55;
}

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

.login-form label {
    margin-top: 7px;
    color: var(--slate-700);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.login-form input {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid var(--slate-300);
    border-radius: 9px;
    color: var(--navy-950);
    background: var(--white);
    font-size: 14px;
}

.login-form input:focus {
    border-color: var(--blue-500);
}

.alert {
    margin-bottom: 15px;
    padding: 11px 12px;
    border-radius: 9px;
    font-size: 11px;
    line-height: 1.45;
}

.alert-error {
    border: 1px solid #efb6b6;
    color: #8a3535;
    background: #fff0f0;
}

.alert-success {
    border: 1px solid rgba(37, 163, 111, .35);
    color: #176c4a;
    background: #eaf8f2;
}

.login-footnote {
    margin: 22px 0 0;
    padding-top: 16px;
    border-top: 1px solid var(--slate-200);
    color: var(--slate-500);
    font-size: 9px;
    line-height: 1.55;
}

.admin-page {
    min-height: 100vh;
    color: var(--navy-950);
    background: var(--slate-100);
}

.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 70px;
    padding: 10px 22px;
    color: var(--white);
    background: linear-gradient(120deg, var(--navy-950), var(--navy-800));
}

.admin-topbar .brand strong,
.admin-topbar .brand small {
    display: block;
}

.admin-topbar .brand small {
    margin-top: 3px;
    color: #bdcbe0;
    font-size: 9px;
}

.admin-topbar form {
    margin: 0;
}

.admin-main {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 34px 0 60px;
}

.admin-heading h1 {
    margin: 0;
    font-size: 26px;
}

.admin-heading > p:last-child {
    max-width: 760px;
    color: var(--slate-500);
    font-size: 12px;
    line-height: 1.6;
}

.admin-heading-row,
.admin-table-heading,
.admin-filter-form {
    display: flex;
    align-items: center;
}

.admin-heading-row,
.admin-table-heading {
    justify-content: space-between;
    gap: 20px;
}

.admin-heading-row > div {
    min-width: 0;
}

.admin-heading-row form {
    flex: 0 0 auto;
}

.button:disabled {
    cursor: not-allowed;
    opacity: .5;
    transform: none;
}

.admin-notice,
.admin-table-card,
.admin-force-card,
.admin-import-card,
.admin-stats > details,
.admin-stats > div {
    border: 1px solid var(--slate-200);
    border-radius: 12px;
    background: var(--white);
    box-shadow: 0 6px 20px rgba(32, 49, 77, .06);
}

.admin-notice,
.admin-table-card,
.admin-force-card,
.admin-import-card {
    margin-top: 24px;
    padding: 20px;
}

.admin-notice h2,
.admin-table-card h2,
.admin-force-card h2,
.admin-import-card h2 {
    margin: 0 0 9px;
    font-size: 16px;
}

.admin-table-heading {
    margin-bottom: 14px;
}

.admin-table-heading h2 {
    margin: 0;
}

.admin-table-note {
    color: var(--slate-500);
    font-size: 10px;
}

.admin-live-note {
    padding: 7px 9px;
    border: 1px solid rgba(39, 117, 219, .25);
    border-radius: 999px;
    color: var(--blue-600);
    background: var(--blue-100);
    font-weight: 700;
    white-space: nowrap;
}

.admin-cron-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 16px;
    padding: 12px;
    border: 1px solid var(--blue-100);
    border-radius: 10px;
    background: #f5f9ff;
}

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

.admin-cron-summary span {
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-cron-summary strong {
    margin-top: 4px;
    color: var(--navy-800);
    font-size: 11px;
}

.admin-cron-history-heading {
    margin: 0 0 10px;
}

.admin-cron-history-heading h3 {
    margin: 0;
    color: var(--navy-800);
    font-size: 12px;
}

.admin-cron-summary-secondary {
    margin-top: 24px;
}

.admin-disclosure {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
    background: var(--white);
}

.admin-disclosure + .admin-disclosure {
    margin-top: 12px;
}

.admin-disclosure > summary,
.admin-import-disclosure-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 44px 14px 15px;
    cursor: pointer;
    list-style: none;
    position: relative;
}

.admin-disclosure > summary::-webkit-details-marker,
.admin-import-disclosure-summary::-webkit-details-marker {
    display: none;
}

.admin-disclosure > summary::after,
.admin-import-disclosure-summary::after {
    position: absolute;
    top: 50%;
    right: 16px;
    content: '›';
    color: var(--blue-600);
    font-size: 20px;
    line-height: 1;
    transform: translateY(-50%) rotate(90deg);
    transition: transform .16s ease;
}

.admin-disclosure[open] > summary::after,
.admin-disclosure-card[open] > summary::after {
    transform: translateY(-50%) rotate(-90deg);
}

.admin-disclosure > summary:hover,
.admin-disclosure > summary:focus-visible,
.admin-import-disclosure-summary:hover,
.admin-import-disclosure-summary:focus-visible {
    outline: 0;
    background: #f5f9ff;
}

.admin-disclosure > summary strong,
.admin-disclosure > summary small,
.admin-import-disclosure-summary strong,
.admin-import-disclosure-summary small {
    display: block;
}

.admin-disclosure > summary strong,
.admin-import-disclosure-summary > span > strong {
    color: var(--navy-800);
    font-size: 12px;
}

.admin-disclosure > summary small,
.admin-import-disclosure-summary > span > small:last-child {
    margin-top: 4px;
    color: var(--slate-500);
    font-size: 9px;
    font-weight: 500;
}

.admin-disclosure-content {
    padding: 14px;
    border-top: 1px solid var(--slate-200);
}

.admin-disclosure-content .admin-cron-summary {
    margin-top: 0;
}

.admin-cron-error-heading {
    margin: 22px 0 10px;
}

.admin-cron-error-heading h3 {
    margin: 0;
    color: #a13535;
    font-size: 12px;
}

.admin-sync-error {
    min-width: 320px;
    color: #a13535;
    white-space: normal;
}

.admin-disclosure-card {
    display: block;
    padding: 0;
}

.admin-import-disclosure-summary {
    padding: 18px 48px 18px 20px;
}

.admin-import-disclosure-summary .eyebrow {
    margin: 0 0 5px;
    color: var(--blue-600);
    font-size: 8px;
    font-weight: 800;
}

.admin-import-disclosure-summary > span > strong {
    font-size: 16px;
}

.admin-import-disclosure-content {
    padding: 0 20px 20px;
    border-top: 1px solid var(--slate-200);
}

.admin-import-disclosure-content > .admin-section-intro {
    margin-top: 16px;
}

.admin-rebuild-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 16px 0 20px;
    padding: 15px;
    border: 1px solid rgba(39, 117, 219, .24);
    border-radius: 10px;
    background: #f5f9ff;
}

.admin-rebuild-card h2 {
    margin: 0 0 7px;
}

.admin-rebuild-card p:last-of-type,
.admin-rebuild-card small,
.admin-setting-description p,
.admin-settings-notice p,
.admin-aircraft-setting-card small {
    max-width: 760px;
    margin: 0;
    color: var(--slate-500);
    font-size: 10px;
    line-height: 1.5;
}

.admin-rebuild-card small {
    display: block;
    margin-top: 7px;
}

.admin-rebuild-card form {
    flex: 0 0 auto;
    margin: 0;
}

.admin-force-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.admin-force-card h2 {
    margin-bottom: 7px;
}

.admin-force-card p:last-child {
    max-width: 680px;
    margin: 0;
    color: var(--slate-500);
    font-size: 11px;
    line-height: 1.55;
}

.admin-force-card form {
    flex: 0 0 auto;
    margin: 0;
}

.admin-settings-section {
    margin-top: 24px;
}

.admin-settings-heading { flex-wrap: wrap; }
.admin-settings-heading h2 { margin: 0; font-size: 16px; }
.admin-settings-heading > p { max-width: 760px; }
.admin-settings-card { min-width: 0; overflow: hidden; }
.admin-settings-card > summary > span:first-child { min-width: 0; }
.admin-settings-form { display: grid; gap: 18px; margin: 20px 0 0; }
.admin-settings-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.admin-settings-group > legend { padding: 0; font-weight: 700; }
.admin-setting-list-heading,
.admin-setting-row { display: grid; grid-template-columns: minmax(0, 1fr) 200px; }
.admin-setting-list-heading { align-items: center; }
.admin-setting-row { align-items: center; min-height: 58px; border-top: 1px solid var(--slate-200); }
.admin-setting-description { min-width: 0; }
.admin-setting-description label { display: block; font-weight: 700; cursor: pointer; }
.admin-setting-description p { margin-top: 4px; }
.admin-setting-control { min-width: 0; }
.admin-settings-form .admin-setting-control input,
.admin-settings-form .admin-setting-control select { width: 100%; min-width: 0; }
.admin-setting-number { min-width: 0; }
.admin-settings-actions { flex-wrap: wrap; }
.admin-settings-actions > div { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-settings-notice { margin: 0; }
.admin-settings-notice p + p { margin-top: 7px; }
.admin-aircraft-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-aircraft-setting-card { display: grid; align-content: start; gap: 8px; min-width: 0; margin: 0; }
.admin-aircraft-setting-card legend { padding: 0 6px; font-weight: 700; }
.admin-aircraft-setting-card small { overflow-wrap: anywhere; }
.admin-settings-form .admin-aircraft-setting-card input[type="color"] { width: 88px; padding: 4px; cursor: pointer; }

@media (max-width: 720px) {
    .admin-setting-list-heading { display: none; }
    .admin-setting-row { grid-template-columns: minmax(0, 1fr); }
    .admin-setting-row:nth-child(2) { border-top: 0; }
    .admin-setting-row > .admin-setting-control { width: min(100%, 280px); padding-top: 0; }
    .admin-aircraft-settings { grid-template-columns: minmax(0, 1fr); }
    .admin-settings-actions, .admin-settings-actions > div { align-items: stretch; flex-direction: column; width: 100%; }
}

.admin-map-heading,
.admin-map-actions,
.admin-settings-heading,
.admin-settings-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.admin-map-heading h2 {
    margin-bottom: 6px;
}

.admin-map-heading p:last-child,
.admin-map-actions p,
.admin-settings-heading > p,
.admin-settings-actions > p,
.admin-settings-note {
    margin: 0;
    color: var(--slate-500);
    font-size: 11px;
    line-height: 1.55;
}

.admin-map-form {
    margin-top: 17px;
}

.admin-map-disclosure-content .admin-map-form {
    margin-top: 20px;
}

.admin-map-list,
.admin-setting-list {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
}

.admin-map-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 78px 78px 72px 126px;
    align-items: center;
    min-height: 58px;
    border-top: 1px solid var(--slate-200);
}

.admin-map-row:first-child {
    border-top: 0;
}

.admin-map-row > *,
.admin-setting-row > *,
.admin-setting-list-heading > span {
    padding: 10px 13px;
}

.admin-map-row-heading,
.admin-setting-list-heading {
    min-height: 36px;
    color: var(--slate-500);
    background: var(--slate-100);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-map-name strong,
.admin-map-name small {
    display: block;
}

.admin-map-name strong,
.admin-setting-description label {
    color: var(--navy-800);
    font-size: 12px;
}

.admin-map-name small {
    margin-top: 4px;
    color: var(--slate-500);
    font-size: 9px;
}

.admin-map-choice,
.admin-checkbox-setting {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--navy-800);
    font-size: 10px;
    cursor: pointer;
}

.admin-map-choice input,
.admin-checkbox-setting input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--blue-600);
}

.admin-map-order select,
.admin-map-name input[type="text"],
.admin-setting-control select,
.admin-setting-control input {
    width: 64px;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid var(--slate-300);
    border-radius: 8px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 11px;
}

.admin-map-name input[type="text"] {
    width: 100%;
    min-width: 0;
}

.admin-map-zoom,
.admin-setting-number {
    display: flex;
    align-items: center;
    gap: 7px;
}

.admin-map-zoom input {
    width: 48px;
    min-height: 34px;
    padding: 6px;
    border: 1px solid var(--slate-300);
    border-radius: 8px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 11px;
    text-align: center;
}

.admin-map-zoom small,
.admin-map-not-applicable,
.admin-setting-number > span {
    color: var(--slate-500);
    font-size: 8px;
    white-space: nowrap;
}

.admin-map-actions {
    margin-top: 14px;
}

.admin-map-actions > .button {
    flex-shrink: 0;
}

.admin-map-registry {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    gap: 14px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--slate-200);
}

.admin-map-registry > section,
.admin-aircraft-setting-card {
    padding: 15px;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
    background: #fbfcfe;
}

.admin-map-registry h3,
.admin-settings-group > legend,
.admin-aircraft-setting-card legend {
    margin: 0 0 6px;
    color: var(--navy-800);
    font-size: 12px;
}

.admin-map-registry p {
    margin: 0;
    color: var(--slate-500);
    font-size: 10px;
    line-height: 1.55;
}

.admin-map-add-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.3fr) minmax(155px, .75fr) minmax(155px, 1fr) auto;
    gap: 8px;
    align-items: end;
    margin-top: 13px;
}

.admin-map-add-form label,
.admin-map-add-form label > span,
.admin-aircraft-setting-card label:not(.admin-checkbox-setting),
.admin-aircraft-setting-card label:not(.admin-checkbox-setting) > span {
    display: block;
}

.admin-map-add-form label > span,
.admin-aircraft-setting-card label:not(.admin-checkbox-setting) > span {
    margin-bottom: 5px;
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-map-add-form select,
.admin-map-add-form input,
.admin-aircraft-setting-card input:not([type="checkbox"]) {
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--slate-300);
    border-radius: 8px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 10px;
}

.admin-map-help,
.admin-map-empty {
    margin-top: 10px !important;
}

.admin-custom-map-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-top: 1px solid var(--slate-200);
}

.admin-custom-map-list > div:first-child {
    border-top: 0;
}

.admin-custom-map-list span,
.admin-custom-map-list strong,
.admin-custom-map-list small {
    display: block;
}

.admin-custom-map-list strong {
    color: var(--navy-800);
    font-size: 10px;
}

.admin-custom-map-list small {
    margin-top: 3px;
    color: var(--slate-500);
    font-size: 8px;
}

.admin-custom-map-list form {
    margin: 0;
}

#map-overlays { scroll-margin-top: 90px; }
.admin-overlay-registry { grid-template-columns: minmax(0, 1fr); }
.admin-map-row.admin-overlay-row {
    grid-template-columns: minmax(220px, 1fr) 78px 90px 72px 85px 105px;
}
.admin-overlay-row .admin-map-name { min-width: 0; }
.admin-overlay-row .admin-map-name small { overflow-wrap: anywhere; }

.admin-overlay-help {
    margin: 10px 0;
    color: var(--slate-500);
    font-size: 10px;
    line-height: 1.55;
}

.admin-overlay-upload-form {
    grid-template-columns: minmax(160px, 1fr) minmax(130px, 1fr) auto auto;
}

.admin-overlay-upload-form .admin-map-choice {
    display: flex;
    margin: 5px 0;
}

.admin-overlay-upload-form .admin-map-choice input {
    width: 16px;
    min-height: 16px;
    padding: 0;
}

.map-overlay-label small { display: block; color: #697386; font-size: 10px; }
.map-overlay-popup { max-height: 280px; overflow-y: auto; overflow-wrap: anywhere; }
.map-overlay-popup dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; }
.map-overlay-popup dt { color: #697386; }
.map-overlay-popup dd { margin: 0; }
.map-overlay-description { margin-top: 8px; white-space: pre-wrap; line-height: 1.5; }
.map-overlay-name-label { max-width: 220px; white-space: normal; font-size: 11px; line-height: 1.3; }
.leaflet-control-layers-expanded { max-width: min(340px, calc(100vw - 32px)); }
.leaflet-control-layers-overlays label { overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .admin-overlay-upload-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
    .admin-overlay-upload-form { grid-template-columns: minmax(0, 1fr); }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.admin-filter-form {
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.admin-flight-filter-heading {
    align-items: flex-end;
}

.admin-filter-field {
    display: grid;
    gap: 4px;
}

.admin-filter-form label {
    color: var(--slate-500);
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
}

.admin-filter-form select,
.admin-filter-form input[type="date"],
.admin-filter-form input[type="text"] {
    min-height: 38px;
    padding: 7px 28px 7px 10px;
    border: 1px solid var(--slate-300);
    border-radius: 8px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 11px;
}

.admin-filter-form input[type="date"] {
    padding-right: 10px;
}

.admin-filter-form input[type="text"] {
    width: 112px;
    padding-right: 10px;
}

.admin-flight-id-filter input[type="text"] {
    width: 126px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.admin-filter-buttons {
    display: flex;
    align-items: center;
    align-self: flex-end;
    gap: 5px;
}

.admin-year-shortcuts {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    margin: -2px 0 15px;
    padding: 10px;
    border: 1px solid var(--slate-200);
    border-radius: 9px;
    background: var(--slate-100);
}

.admin-year-shortcuts > span {
    margin-right: 3px;
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-year-shortcuts a {
    padding: 5px 7px;
    border: 1px solid var(--slate-200);
    border-radius: 7px;
    color: var(--blue-600);
    background: var(--white);
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
}

.admin-year-shortcuts a:hover,
.admin-year-shortcuts a.is-active {
    border-color: var(--blue-500);
    color: var(--white);
    background: var(--blue-600);
}

.admin-year-shortcuts small {
    margin-left: auto;
    color: var(--slate-500);
    font-size: 9px;
}

.admin-section-intro {
    max-width: 760px;
    margin: 0;
    color: var(--slate-500);
    font-size: 11px;
    line-height: 1.55;
}

.admin-import-form {
    display: grid;
    gap: 8px;
    margin: 16px 0 20px;
    padding: 15px;
    border: 1px solid var(--blue-100);
    border-radius: 10px;
    background: #f5f9ff;
}

.admin-import-form > label {
    color: var(--navy-800);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-import-picker {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-import-picker input[type="file"] {
    flex: 1 1 420px;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--slate-300);
    border-radius: 8px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 11px;
}

.admin-import-form p {
    margin: 0;
    color: var(--slate-500);
    font-size: 10px;
    line-height: 1.5;
}

.admin-cell-note,
.admin-import-progress small {
    display: block;
    margin-top: 4px;
    color: var(--slate-500);
    font-size: 9px;
    line-height: 1.45;
    white-space: normal;
}

.admin-import-progress {
    min-width: 260px;
    max-width: 390px;
    line-height: 1.45;
    white-space: normal !important;
}

.admin-import-progress .admin-import-error {
    color: #a13535;
}

.import-status-badge {
    display: inline-block;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.import-status-badge.is-queued {
    color: #775818;
    background: #fff3cf;
}

.import-status-badge.is-running {
    color: var(--blue-600);
    background: var(--blue-100);
}

.import-status-badge.is-completed {
    color: #176c4a;
    background: #eaf8f2;
}

.import-status-badge.is-failed {
    color: #8a3535;
    background: #fff0f0;
}

.admin-import-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.admin-import-actions form {
    margin: 0;
}

.admin-import-actions .button {
    min-height: 30px;
    padding: 5px 8px;
    font-size: 9px;
    white-space: nowrap;
}

.admin-clear-filter {
    min-height: 38px;
    color: var(--slate-500);
}

.admin-row-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.admin-row-actions a,
.admin-row-link {
    padding: 5px 7px;
    border: 0;
    border-radius: 6px;
    color: var(--blue-600);
    background: var(--blue-100);
    font: inherit;
    font-weight: 700;
    text-decoration: none;
}

.admin-row-link {
    cursor: pointer;
}

.admin-flight-summary-row {
    cursor: pointer;
    transition: background .16s ease;
}

.admin-flight-summary-row:hover,
.admin-flight-summary-row:focus,
.admin-flight-summary-row[data-expanded="true"] {
    outline: 0;
    background: #f5f9ff;
}

.admin-flight-name {
    color: var(--navy-800);
    font-weight: 700;
}

.admin-flight-id {
    display: inline-block;
    padding: 5px 8px;
    border: 1px solid var(--blue-100);
    border-radius: 7px;
    color: var(--blue-600);
    background: #f5f9ff;
    font-weight: 800;
    letter-spacing: .035em;
}

.admin-manual-badge {
    display: inline-block;
    margin: 4px 0 0 5px;
    padding: 3px 5px;
    border-radius: 999px;
    color: #775818;
    background: #fff3cf;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.admin-table-card .admin-flight-detail-row > td {
    padding: 0;
    white-space: normal;
}

.admin-flight-detail {
    position: sticky;
    left: 0;
    width: var(--flight-detail-width, auto);
    padding: 18px;
    border-bottom: 1px solid var(--slate-300);
    background: var(--slate-100);
}

.admin-flight-detail-loading {
    padding: 14px;
    border: 1px solid var(--blue-100);
    border-radius: 9px;
    color: var(--blue-600);
    background: var(--white);
    font-size: 10px;
}

.admin-flight-detail-loading.is-error {
    border-color: #f0caca;
    color: #a13535;
    background: #fff6f6;
}

.admin-flight-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.admin-leg-section {
    grid-column: 1 / -1;
}

.admin-flight-detail-grid > section,
.admin-flight-maintenance > section {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
    background: var(--white);
}

.admin-flight-detail h3 {
    margin: 0 0 12px;
    color: var(--navy-800);
    font-size: 12px;
}

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

.admin-quality-grid > div {
    min-width: 0;
    padding: 9px;
    border: 1px solid var(--slate-200);
    border-radius: 8px;
    background: #fbfcfe;
}

.admin-quality-grid span,
.admin-quality-grid strong {
    display: block;
}

.admin-quality-grid span {
    color: var(--slate-500);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.admin-quality-grid strong {
    margin-top: 5px;
    color: var(--navy-800);
    font-size: 10px;
    line-height: 1.35;
}

.admin-confidence {
    display: inline-block !important;
    width: auto;
    padding: 4px 7px;
    border-radius: 999px;
}

.admin-confidence.is-high {
    color: #176c4a;
    background: #eaf8f2;
}

.admin-confidence.is-medium {
    color: #775818;
    background: #fff3cf;
}

.admin-confidence.is-low {
    color: #8a3535;
    background: #fff0f0;
}

.admin-confidence-calculation {
    margin-top: 10px;
    padding: 11px;
    border: 1px solid var(--slate-200);
    border-radius: 9px;
    background: #fbfcfe;
}

.admin-confidence-calculation h4 {
    margin: 0;
    color: var(--navy-800);
    font-size: 10px;
}

.admin-confidence-calculation > p {
    margin: 4px 0 9px;
    color: var(--slate-500);
    font-size: 8px;
    line-height: 1.45;
}

.admin-confidence-levels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.admin-confidence-level {
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--slate-200);
    border-left-width: 3px;
    border-radius: 7px;
    background: var(--white);
}

.admin-confidence-level.is-passed {
    border-left-color: var(--green);
}

.admin-confidence-level.is-failed {
    border-left-color: var(--red);
}

.admin-confidence-level-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    margin-bottom: 5px;
}

.admin-confidence-level-heading strong,
.admin-confidence-level-heading span {
    font-size: 8px;
}

.admin-confidence-level-heading span {
    color: var(--slate-500);
    font-weight: 700;
}

.admin-confidence-level ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-confidence-level li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 5px;
    padding: 5px 0;
    border-top: 1px solid var(--slate-100);
    font-size: 7px;
}

.admin-confidence-level li span {
    min-width: 0;
    color: var(--slate-500);
}

.admin-confidence-level li strong {
    color: var(--navy-800);
    white-space: nowrap;
}

.admin-confidence-level li em {
    min-width: 27px;
    font-style: normal;
    font-weight: 800;
    text-align: right;
}

.admin-confidence-level li.is-passed em {
    color: #176c4a;
}

.admin-confidence-level li.is-failed em {
    color: #a13535;
}

.admin-detail-note {
    margin: 10px 0 0;
    color: var(--slate-500);
    font-size: 9px;
    line-height: 1.5;
}

.admin-leg-table-scroll {
    max-width: 100%;
    overflow-x: auto;
}

.admin-table-card .admin-leg-table {
    min-width: 1470px;
    font-size: 9px;
}

.admin-table-card .admin-leg-table th,
.admin-table-card .admin-leg-table td {
    padding: 7px;
}

.admin-flight-maintenance {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, .8fr);
    gap: 14px;
    margin-top: 14px;
}

.admin-flight-edit-form {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-flight-edit-form label {
    display: grid;
    gap: 4px;
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
}

.admin-flight-edit-form input {
    width: 112px;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid var(--slate-300);
    border-radius: 7px;
    color: var(--navy-800);
    background: var(--white);
    font-size: 10px;
}

.admin-flight-datetime-fields {
    display: flex;
    flex-basis: 100%;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 4px;
}

.admin-flight-datetime-fields input {
    width: 208px;
    max-width: 100%;
    font-variant-numeric: tabular-nums;
}

.admin-flight-datetime-fields .button {
    min-height: 34px;
    margin-bottom: 13px;
    color: var(--blue-600);
    border-color: var(--slate-300);
    background: var(--slate-100);
}

.admin-flight-elapsed {
    flex-basis: 100%;
    margin: 0;
    color: var(--slate-500);
    font-size: 9px;
    line-height: 1.5;
}

.admin-flight-edit-form input[name="landings"] {
    width: 76px;
}

.admin-flight-edit-form small {
    color: var(--slate-500);
    font-size: 7px;
    font-weight: 400;
    text-transform: none;
}

.admin-flight-delete-panel p {
    margin: 0 0 12px;
    color: var(--slate-500);
    font-size: 9px;
    line-height: 1.5;
}

.admin-delete-button {
    border: 1px solid #d7a8a8;
    color: #8a3535;
    background: #fff0f0;
}

.admin-notice p {
    margin: 0;
    color: var(--slate-500);
    font-size: 12px;
    line-height: 1.6;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
}

.admin-stats > div,
.admin-stats > details > summary {
    padding: 17px;
}

.admin-stat-disclosure {
    min-width: 0;
    overflow: hidden;
}

.admin-stat-disclosure[open] {
    grid-column: 1 / -1;
}

.admin-stat-disclosure > summary {
    position: relative;
    padding-right: 40px;
    cursor: pointer;
    list-style: none;
}

.admin-stat-disclosure > summary::-webkit-details-marker {
    display: none;
}

.admin-stat-disclosure > summary::after {
    position: absolute;
    top: 50%;
    right: 17px;
    content: '›';
    color: var(--blue-600);
    font-size: 18px;
    line-height: 1;
    transform: translateY(-50%) rotate(90deg);
    transition: transform .16s ease;
}

.admin-stat-disclosure[open] > summary::after {
    transform: translateY(-50%) rotate(-90deg);
}

.admin-stat-disclosure[open] > summary {
    border-bottom: 1px solid var(--slate-200);
    background: #f5f9ff;
}

.admin-stats span,
.admin-stats strong {
    display: block;
}

.admin-stats span {
    color: var(--slate-500);
    font-size: 9px;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.admin-stats strong {
    margin-top: 7px;
    color: var(--navy-800);
    font-size: 17px;
}

.admin-stat-disclosure summary small {
    display: block;
    margin-top: 5px;
    color: var(--blue-600);
    font-size: 9px;
    font-weight: 700;
}

.admin-exclusions-content {
    padding: 15px 17px 17px;
}

.admin-exclusions-content > p {
    margin: 0 0 12px;
    color: var(--slate-500);
    font-size: 10px;
    line-height: 1.5;
}

.admin-exclusions-content table {
    min-width: 980px;
}

.admin-exclusions-content code {
    font-size: 8px;
}

.admin-utilization-card {
    overflow: hidden;
}

.admin-utilization-note {
    margin: 5px 0 0;
    color: var(--slate-500);
    font-size: 10px;
}

.admin-utilization-period {
    flex: 0 0 auto;
    padding: 7px 10px;
    border: 1px solid var(--blue-100);
    border-radius: 999px;
    color: var(--blue-600);
    background: #f5f9ff;
    font-size: 9px;
    font-weight: 700;
}

.admin-utilization-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 18px;
}

.admin-utilization-stats > div {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--slate-200);
    border-radius: 9px;
    background: var(--slate-100);
}

.admin-utilization-stats span,
.admin-utilization-stats strong {
    display: block;
}

.admin-utilization-stats span {
    color: var(--slate-500);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-utilization-stats strong {
    margin-top: 5px;
    overflow: hidden;
    color: var(--navy-800);
    font-size: 14px;
    text-overflow: ellipsis;
}

.admin-utilization-layout {
    display: grid;
    grid-template-columns: minmax(230px, .75fr) minmax(0, 1.75fr);
    gap: 18px;
    align-items: start;
}

.admin-utilization-chart {
    padding: 14px;
    border: 1px solid var(--slate-200);
    border-radius: 10px;
    background: #fbfcfe;
}

.admin-utilization-chart h3 {
    margin: 0 0 14px;
    color: var(--navy-800);
    font-size: 11px;
}

.admin-utilization-bar-row + .admin-utilization-bar-row {
    margin-top: 13px;
}

.admin-utilization-bar-row > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 5px;
    color: var(--navy-800);
    font-size: 9px;
}

.admin-utilization-bar-row strong {
    white-space: nowrap;
}

.admin-utilization-bar-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--slate-200);
}

.admin-utilization-bar-fill {
    display: block;
    width: var(--utilization-width);
    min-width: 3px;
    height: 100%;
    border-radius: inherit;
    background: var(--aircraft-color);
}

.admin-utilization-table {
    border: 1px solid var(--slate-200);
    border-radius: 10px;
}

.admin-utilization-table table {
    min-width: 760px;
}

.admin-aircraft-swatch {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 7px;
    border-radius: 50%;
    background: var(--aircraft-color);
    vertical-align: 0;
}

.admin-utilization-empty {
    margin: 0;
    padding: 18px;
    border: 1px dashed var(--slate-300);
    border-radius: 9px;
    color: var(--slate-500);
    font-size: 11px;
    text-align: center;
}

.admin-table-scroll {
    overflow-x: auto;
}

.admin-table-card table {
    width: 100%;
    border-collapse: collapse;
    font-size: 10px;
    white-space: nowrap;
}

.admin-table-card th,
.admin-table-card td {
    padding: 10px 9px;
    border-bottom: 1px solid var(--slate-200);
    text-align: left;
}

.admin-table-card th {
    color: var(--slate-500);
    font-size: 8px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-table-card .admin-flight-totals th,
.admin-table-card .admin-flight-totals td {
    border-top: 2px solid var(--slate-300);
    border-bottom: 0;
    color: var(--navy-800);
    background: var(--slate-100);
    font-weight: 700;
}

.noscript {
    position: fixed;
    z-index: 9999;
    inset: 20px;
    padding: 15px;
    border-radius: 10px;
    background: var(--white);
    box-shadow: var(--shadow);
}

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

@keyframes pulse {
    50% { opacity: .4; }
}

@keyframes emergency {
    50% { box-shadow: 0 0 0 9px rgba(217, 58, 58, .3), 0 5px 16px rgba(10, 24, 42, .32); }
}

@media (max-width: 800px) {
    .selected-flight-bar {
        right: 10px;
        bottom: 10px;
        left: 10px;
        width: auto;
        max-width: none;
        max-height: calc(100% - 20px);
        align-items: stretch;
        flex-direction: column;
        overflow-y: auto;
    }

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

    .selected-flight-bar button {
        width: 100%;
    }

    .admin-cron-summary {
        grid-template-columns: 1fr;
    }

    .admin-import-disclosure-summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-sync-error {
        min-width: 240px;
    }

    .app-shell {
        grid-template-rows: 104px minmax(0, 1fr);
    }

    .topbar {
        grid-template-areas:
            "brand status"
            "actions actions";
        grid-template-rows: 50px 44px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0 10px;
        padding: 4px calc(10px + env(safe-area-inset-right)) 6px calc(10px + env(safe-area-inset-left));
    }

    .brand {
        grid-area: brand;
    }

    .topbar-status {
        grid-area: status;
    }

    .topbar-actions {
        grid-area: actions;
        width: 100%;
        gap: 6px;
    }

    .topbar-actions > .button,
    .topbar-actions > form {
        flex: 1 1 0;
        min-width: 0;
    }

    .topbar-actions > form .button {
        width: 100%;
    }

    .brand-mark {
        width: 34px;
        height: 34px;
        border-radius: 9px;
    }

    .brand strong {
        font-size: 12px;
    }

    .brand small {
        font-size: 9px;
    }

    .topbar-status {
        display: flex;
    }

    #sync-text,
    .refresh-toggle-label {
        display: none;
    }

    .topbar-actions .button {
        min-height: 38px;
        padding: 8px 10px;
        font-size: 10px;
    }

    .tracking-layout {
        grid-template-rows: 250px minmax(0, 1fr);
        grid-template-columns: 1fr;
    }

    .fleet-panel {
        min-width: 0;
        padding: 12px 12px 8px;
        overflow: hidden;
        border-right: 0;
        border-bottom: 1px solid var(--slate-200);
        box-shadow: 0 6px 18px rgba(27, 44, 69, .1);
    }

    .fleet-panel-heading {
        align-items: center;
        margin-bottom: 8px;
    }

    .fleet-panel-controls {
        gap: 7px;
    }

    .fleet-mobile-navigation {
        display: flex;
        align-items: center;
        gap: 5px;
    }

    .fleet-mobile-navigation button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        padding: 0;
        border: 1px solid var(--slate-200);
        border-radius: 8px;
        color: var(--navy-800);
        background: var(--white);
        cursor: pointer;
        font-size: 22px;
        line-height: 1;
    }

    .fleet-mobile-navigation button:disabled {
        color: var(--slate-300);
        cursor: default;
        opacity: .65;
    }

    .fleet-mobile-navigation span {
        min-width: 34px;
        color: var(--slate-500);
        font-size: 9px;
        font-weight: 700;
        text-align: center;
    }

    .fleet-panel-heading .eyebrow,
    .status-key {
        display: none;
    }

    .fleet-panel h1 {
        font-size: 17px;
    }

    .flight-map-switch {
        margin-bottom: 8px;
    }

    .flight-map-switch legend,
    .flight-map-switch small {
        display: none;
    }

    .map-display-help-button {
        display: inline-block;
        margin: 4px 0 0;
        padding: 2px 0;
        border: 0;
        color: var(--blue-600);
        background: transparent;
        font: inherit;
        font-size: 10px;
        cursor: pointer;
        text-decoration: underline;
        text-underline-offset: 2px;
    }

    .flight-map-switch-options span {
        padding: 5px 7px;
        font-size: 9px;
    }

    .fleet-list {
        display: grid;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        grid-auto-flow: column;
        grid-auto-columns: 100%;
        gap: 9px;
        overflow-x: scroll;
        overflow-y: hidden;
        padding: 0 0 7px;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    .fleet-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        height: 142px;
        margin: 0;
        overflow-y: auto;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .fleet-loading,
    .fleet-empty {
        width: 100%;
        min-height: 120px;
    }

    .map-message {
        top: 10px;
    }

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

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

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

    .admin-heading-row,
    .admin-table-heading,
    .admin-force-card,
    .admin-rebuild-card,
    .admin-map-heading,
    .admin-map-actions,
    .admin-settings-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-map-row {
        grid-template-columns: minmax(125px, 1fr) 52px 58px 48px 74px;
        min-width: 357px;
    }

    .admin-map-row.admin-overlay-row {
        grid-template-columns: minmax(145px, 1fr) 52px 65px 58px 60px 105px;
        min-width: 485px;
    }

    .admin-map-list {
        overflow-x: auto;
    }

    .admin-map-registry,
    .admin-map-add-form {
        grid-template-columns: 1fr;
    }

    .admin-map-row > *,
    .admin-setting-row > * {
        padding: 8px;
    }

    .admin-map-choice {
        gap: 4px;
        font-size: 8px;
    }

    .admin-map-order select {
        width: 42px;
    }

    .admin-map-zoom {
        display: block;
    }

    .admin-map-zoom input {
        width: 42px;
    }

    .admin-map-zoom small {
        margin-top: 3px;
        display: block;
    }

    .admin-filter-form {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .admin-filter-field {
        flex: 1 1 145px;
    }

    .admin-filter-form select,
    .admin-filter-form input[type="text"] {
        width: 100%;
    }

    .admin-year-shortcuts small {
        width: 100%;
        margin-left: 0;
    }

    .admin-import-picker {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-import-picker input[type="file"] {
        flex-basis: auto;
        width: 100%;
    }

    .admin-flight-detail-grid,
    .admin-flight-maintenance {
        grid-template-columns: 1fr;
    }

    .admin-confidence-levels {
        grid-template-columns: 1fr;
    }

}

/* Give the admin identity and actions separate rows on narrow screens. */
@media (max-width: 600px) {
    .admin-topbar {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px 16px;
    }

    .admin-topbar > .brand {
        width: 100%;
    }

    .admin-topbar .topbar-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 430px) {
    .brand small {
        display: none;
    }

    .login-card {
        padding: 27px 22px;
        border-radius: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* Keep the expanded editor usable inside the horizontally scrollable table. */
@media (max-width: 800px) {
    .admin-flight-detail { padding: 10px; }
    .admin-flight-datetime-fields label { flex: 1 1 208px; min-width: 0; }
    .admin-flight-datetime-fields input { width: 100%; min-height: 40px; font-size: 14px; }
    .admin-flight-datetime-fields .button { margin-bottom: 0; }
}

/* v2.12.6: legs first; the editor is outside the wide, horizontally scrolling table. */
.admin-flight-detail-stack { display: grid; gap: 14px; min-width: 0; }
.admin-flight-detail-stack > section { padding: 15px; min-width: 0; border: 1px solid var(--slate-200); border-radius: 10px; background: var(--white); }
.admin-leg-toolbar, .admin-leg-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.admin-leg-toolbar .button, .admin-leg-actions .button { font-size: 10px; min-height: 34px; }
.admin-leg-notice { margin: 8px 0; color: var(--blue-600); font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.admin-leg-notice:empty { display: none; }
.admin-leg-notice.is-error { color: #9d3030; padding: 10px; background: #fff2f2; border: 1px solid #e9bcbc; border-radius: 7px; }
.admin-leg-editor { margin-top: 16px; padding: 16px; background: var(--slate-100); border: 1px solid var(--slate-300); border-radius: 9px; min-width: 0; }
.admin-leg-editor[hidden] { display: none; }
.admin-leg-editor h4 { margin: 0 0 14px; color: var(--navy-800); font-size: 14px; }
.admin-leg-time-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.admin-leg-edit-form label { display: grid; gap: 5px; font-size: 10px; font-weight: 700; color: var(--navy-800); min-width: 0; }
.admin-leg-edit-form small { font-size: 9px; font-weight: 400; color: var(--slate-500); }
.admin-leg-edit-form input { width: 100%; min-width: 0; min-height: 40px; padding: 9px; font-size: 12px; border: 1px solid var(--slate-300); border-radius: 6px; color: var(--navy-800); background: var(--white); font-variant-numeric: tabular-nums; }
.admin-leg-coordinate-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.admin-leg-coordinate-fields fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; border: 1px solid var(--slate-300); border-radius: 8px; padding: 12px; }
.admin-leg-coordinate-fields legend { padding: 0 5px; color: var(--navy-800); font-size: 11px; font-weight: 700; }
.admin-leg-originals { margin: 12px 0; font-size: 10px; line-height: 1.6; color: var(--slate-500); }
.admin-leg-originals summary { cursor: pointer; font-weight: 700; }
.admin-table-card .admin-leg-table { min-width: 1620px; }
.admin-leg-table th:nth-child(1), .admin-leg-table td:nth-child(1) { position: sticky; left: 0; min-width: 56px; background: var(--white); z-index: 1; }
.admin-leg-table th:nth-child(2), .admin-leg-table td:nth-child(2) { position: sticky; left: 56px; min-width: 52px; background: var(--white); z-index: 1; }
.admin-leg-table button { min-height: 32px; min-width: 38px; }
@media (max-width: 760px) {
    .admin-leg-time-fields, .admin-leg-coordinate-fields { grid-template-columns: minmax(0, 1fr); }
    .admin-leg-editor { padding: 12px; }
    .admin-leg-edit-form input { font-size: 16px; }
    .admin-leg-actions { align-items: stretch; }
    .admin-leg-actions .button { flex: 1 1 180px; min-height: 42px; }
}
.admin-leg-toolbar .button-secondary,
.admin-leg-actions .button-secondary {
    color: var(--blue-600);
    background: var(--white);
    border: 1px solid var(--slate-300);
}
.admin-leg-toolbar .button-secondary:hover,
.admin-leg-actions .button-secondary:hover {
    background: var(--blue-50, #edf4ff);
    border-color: var(--blue-600);
}
.admin-leg-toolbar .button:focus-visible,
.admin-leg-actions .button:focus-visible {
    outline: 3px solid var(--blue-200, #b8d0f4);
    outline-offset: 2px;
}
@media (max-width: 760px) {
    .admin-leg-toolbar .button, .admin-leg-actions .button { font-size: 12px; }
}

/* Manual route corrections: keep their provenance distinct from live position reports. */
.selected-route-note { display: block; font-size: 11px; line-height: 1.5; color: #334155; margin-top: 5px; }
.selected-route-note.is-warning { color: #8a4600; }
.admin-route-note { padding: 10px 12px; margin: 8px 0 12px; background: #edf3fc; border-left: 3px solid #244d8c; }
