:root:not(.gps-mobile-device) [data-action="open-gps-log"],
:root:not(.gps-mobile-device) .gps-sync-status { display:none !important; }
:root.gps-mobile-device .hero-actions:has([data-action="open-gps-log"]) { display:flex; flex-direction:column; gap:10px; }
.gps-sync-status:empty { display:none; }
.gps-log, .drawer.gps-review { --gps-bg:#f4f7fb; --gps-card:#fff; --gps-ink:#10283c; --gps-muted:#506679; --gps-line:#c5d3df; --gps-accent:#007c80; --gps-button:#fff; }
.gps-log.gps-night, .drawer.gps-review.gps-night { --gps-bg:#100202; --gps-card:#1c0606; --gps-ink:#ff7870; --gps-muted:#d95e59; --gps-line:#77302c; --gps-accent:#ed625a; --gps-button:#180303; color-scheme:dark; }
/* GPS day mode is independent of the main app's dark theme, including native suggestions. */
:root .gps-log:not(.gps-night), :root .drawer.gps-review:not(.gps-night) { color-scheme:light; }
:root .gps-log input, :root .drawer.gps-review input { color-scheme:inherit; -webkit-text-fill-color:currentColor; }
:root .drawer.gps-review .crew-name-input { color:var(--gps-ink); background:var(--gps-card); }
:root .drawer.gps-review .crew-name-input::placeholder { color:var(--gps-muted); -webkit-text-fill-color:var(--gps-muted); opacity:1; }
:root .drawer.gps-review .field-menu-option :is(strong,span) { color:var(--gps-ink); }
:root .drawer.gps-review .field-menu-option small { color:var(--gps-muted); }
:root .drawer.gps-review :is(datalist,option) { color:var(--gps-ink); background:var(--gps-card); }
.gps-log { position:fixed; inset:0; box-sizing:border-box; width:min(100%,520px); max-width:100%; height:100dvh; max-height:100dvh; margin:auto; border:0; padding:24px 20px max(24px,env(safe-area-inset-bottom)); overflow:auto; background:var(--gps-bg); color:var(--gps-ink); font-family:inherit; }
.gps-log::backdrop { background:#061321c9; }
body:has(.gps-log[open]) { overflow:hidden; }
.gps-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; }
.gps-head h1 { font-size:24px; margin:5px 0; color:inherit; letter-spacing:-.6px; }
.gps-log small, .gps-head small, .gps-review-banner small { display:block; color:var(--gps-muted); font-size:12px; line-height:1.6; }
.gps-log button, .gps-review-banner button { min-height:48px; border:1px solid var(--gps-line); border-radius:13px; background:var(--gps-card); color:var(--gps-ink); font-family:inherit; font-size:13px; font-weight:700; padding:12px 16px; cursor:pointer; }
.gps-log button:focus-visible, .gps-log input:focus-visible { outline:3px solid var(--gps-accent); outline-offset:3px; }
.gps-log button:disabled { opacity:.4; cursor:default; }
.gps-clock { text-align:center; padding:18px 0; }
.gps-clock > strong { display:block; font-size:clamp(42px,12vw,58px); font-weight:600; letter-spacing:-2px; font-variant-numeric:tabular-nums; line-height:1.3; }
#gpsPhase { color:var(--gps-accent); font-size:12px; font-weight:700; min-height:20px; }
.gps-speed { display:flex; align-items:baseline; justify-content:center; gap:10px; padding:12px; margin-bottom:18px; }
.gps-speed strong { font-size:30px; font-variant-numeric:tabular-nums; }
.gps-speed span { font-size:10px; color:var(--gps-muted); }
.gps-milestones { display:grid; gap:10px; }
.gps-milestones article, .gps-date { border:1px solid var(--gps-line); background:var(--gps-card); border-radius:15px; padding:15px 17px; }
.gps-milestones article > span, .gps-date > span { display:block; color:var(--gps-muted); font-size:11px; letter-spacing:1px; margin-bottom:4px; }
.gps-milestones strong { font-size:22px; font-variant-numeric:tabular-nums; }
.gps-status { font-size:13px; line-height:1.5; min-height:20px; }
.gps-note { color:var(--gps-muted); font-size:12px; line-height:1.6; }
.gps-actions { display:grid; gap:10px; margin-top:20px; }
.gps-log > .gps-actions { position:sticky; bottom:-24px; z-index:3; background:var(--gps-bg); padding:12px 0 max(12px,env(safe-area-inset-bottom)); grid-template-columns:1fr 1fr; }
.gps-log > .gps-actions button[data-gps="close"] { grid-column:1 / -1; }
.gps-log > .gps-clock { position:sticky; top:-24px; z-index:2; background:var(--gps-bg); }
.gps-log .gps-primary { background:var(--gps-accent); color:var(--gps-button); border-color:var(--gps-accent); }
.gps-log form { display:grid; gap:18px; }
.gps-log label { display:grid; gap:7px; font-size:11px; font-weight:700; color:var(--gps-ink); min-width:0; }
.gps-log input { box-sizing:border-box; width:100%; min-width:0; min-height:50px; border:1px solid var(--gps-line); border-radius:10px; padding:10px; color:var(--gps-ink); background:var(--gps-card); font-family:inherit; font-size:16px; }
.gps-two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.gps-log .airport-field { position:relative; }
.gps-log .airport-suggest { background:var(--gps-card); border-color:var(--gps-line); min-width:min(300px, calc(100vw - 48px)); }
.gps-log .gps-two > .airport-field:last-child .airport-suggest { left:auto; right:0; }
.gps-log .airport-option { display:block; width:100%; text-align:left; padding:10px; margin:0 0 4px; }
.gps-log .airport-option :is(strong,span), .gps-review .airport-option :is(strong,span) { color:var(--gps-ink); }
.gps-log .airport-option.is-active, .gps-review .airport-option.is-active { outline:2px solid var(--gps-accent); outline-offset:-2px; }
#gpsSummaryError { color:var(--gps-ink); font-size:13px; }
.drawer.gps-review .drawer-panel { width:min(100%,540px); background:var(--gps-bg); color:var(--gps-ink); }
.gps-review-banner { grid-column:1 / -1; border-bottom:1px solid var(--gps-line); padding-bottom:16px; }
.gps-review form[data-gps-capture="true"] > label:has([name="date"]), .gps-review #flightTimeModeRow, .gps-review #flightBlocksRow, .gps-review label:has([name="durationInput"]) { display:none !important; }
.gps-review .grid-2:has([name="tail_number"]) { grid-template-columns:1fr; }
.gps-advanced { grid-column:1 / -1; border:1px solid var(--gps-line); border-radius:12px; padding:14px; }
.gps-advanced summary { cursor:pointer; min-height:36px; font-size:12px; font-weight:700; }
.gps-advanced > .grid-2 { margin:12px 0; }
.drawer.gps-review .check-pill { min-height:48px; border-radius:12px; }
.drawer.gps-review .check-pill:has(input:checked) { background:var(--gps-accent); color:var(--gps-button); }
.drawer.gps-review input { font-size:16px; min-height:44px; }
.drawer.gps-review input[type="radio"], .drawer.gps-review input[type="checkbox"] { min-height:0; accent-color:var(--gps-accent); }
.drawer.gps-review :is(.drawer-head,.drawer-body,.form-section,.check-pill,.field-menu,.airport-suggest,input,button,.flight-time-mode-indicator) { background:var(--gps-card); color:var(--gps-ink); border-color:var(--gps-line); box-shadow:none; }
.drawer.gps-review :is(h2,span,label,.eyebrow) { color:var(--gps-ink); }
.drawer.gps-review input::placeholder { color:var(--gps-muted); }
.drawer.gps-review .role-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.drawer.gps-review .button-primary { background:var(--gps-accent); color:var(--gps-button); }
.drawer.gps-review .check-pill:has(input:checked) { background:var(--gps-accent); color:var(--gps-button); }
.drawer.gps-review.gps-night :is(.drawer-head,.drawer-body,.form-section,.check-pill,.field-menu,.airport-suggest,input,button,.flight-time-mode-indicator) { background:var(--gps-card); color:var(--gps-ink); border-color:var(--gps-line); box-shadow:none; }
.drawer.gps-review.gps-night :is(h2,span,label,.eyebrow) { color:var(--gps-ink); }
.drawer.gps-review.gps-night input::placeholder { color:var(--gps-muted); }
.drawer.gps-review.gps-night .button-primary, .drawer.gps-review.gps-night .check-pill:has(input:checked) { background:var(--gps-accent); color:var(--gps-button); }
@media (max-width:540px) { .gps-head { margin-bottom:8px; } .gps-clock { padding:10px 0; } .gps-speed { padding:5px; margin-bottom:10px; } .gps-milestones article { padding:11px 14px; } .drawer.gps-review .grid-3 { grid-template-columns:1fr; } .drawer.gps-review .drawer-panel { max-width:100%; } }

/* Keep GPS day-mode copy readable when the surrounding app uses its light theme. */
:root[data-theme="light"] .gps-log:not(.gps-night),
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) {
  --gps-ink: #10283c;
  --gps-muted: #40576b;
  --gps-line: #aebdca;
  --gps-accent: #006b70;
}

:root[data-theme="light"] .gps-log:not(.gps-night) :is(.gps-status, .gps-note, .gps-speed span, .gps-milestones article > span, .gps-date > span),
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) :is(.gps-review-banner small, .form-grid span, .form-grid small, .form-section small, .gps-advanced small) {
  color: var(--gps-muted);
}

:root[data-theme="light"] .drawer.gps-review:not(.gps-night) :is(.form-grid label, .form-section, .gps-review-banner, .gps-advanced, .gps-advanced summary),
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) :is(.drawer-head h2, .form-section h3, .form-grid legend, .gps-review-banner p) {
  color: var(--gps-ink);
}

:root[data-theme="light"] .gps-log:not(.gps-night) input,
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) input {
  color: var(--gps-ink);
  -webkit-text-fill-color: var(--gps-ink);
}

:root[data-theme="light"] .gps-log:not(.gps-night) input::placeholder,
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) input::placeholder {
  color: var(--gps-muted);
  -webkit-text-fill-color: var(--gps-muted);
  opacity: 1;
}

:root[data-theme="light"] .drawer.gps-review:not(.gps-night) .check-pill:has(input:checked),
:root[data-theme="light"] .drawer.gps-review:not(.gps-night) .check-pill:has(input:checked) :is(span, label, strong) {
  color: #ffffff;
}
