/* "List your business" pop-up on the airport page (flights/js/airport-business.js). Light and dark (body.dark-mode, the site rule).
   Bump ?v= on the page when this file changes. */
.ab-link-row { margin: 10px 0 4px; }
.ab-link { background: transparent; border: 1.5px solid var(--blue-text, #1078b3); color: var(--blue-text, #1078b3); border-radius: 18px; padding: 6px 16px;
    font-size: 14px; font-weight: bold; cursor: pointer; min-height: 36px; font-family: inherit; }
.ab-link:hover, .ab-link:focus { background: rgba(22, 159, 230, .12); outline: none; }
.ab-link:focus-visible { box-shadow: 0 0 0 3px rgba(22, 159, 230, .35); }
body.dark-mode .ab-link { color: #4da6ff !important; border-color: #4da6ff; background: transparent; }

body.ab-open { overflow: hidden; }
.ab-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100000; background: rgba(10, 20, 30, .6);
    display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; -webkit-justify-content: center; justify-content: center;
    overflow-y: auto; padding: 24px 12px; box-sizing: border-box; }
.ab-modal[hidden] { display: none; }
.ab-dialog { --ab-bg: #fff; --ab-ink: #222; --ab-sub: #667; --ab-line: #cdd5dd; --ab-link: #1078b3; --ab-err-bg: #fdecea; --ab-err-ink: #8a1f17;
    position: relative; background: var(--ab-bg); color: var(--ab-ink); width: 100%; max-width: 580px; border-radius: 10px; padding: 22px 22px 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .35); box-sizing: border-box; font-size: 15px; line-height: 1.5; overflow-y: auto; }
.ab-dialog:focus { outline: none; }
body.dark-mode .ab-dialog { --ab-bg: #232628; --ab-ink: #e8eaec; --ab-sub: #a3abb3; --ab-line: #3a4046; --ab-link: #4da6ff; --ab-err-bg: #3a1f1d; --ab-err-ink: #ffb4ab; }

.ab-head { display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.ab-dialog .ab-title { margin: 0; -webkit-flex: 1; flex: 1; font-size: 20px; line-height: 1.3; color: var(--ab-link); }
body.dark-mode .ab-dialog .ab-title { color: #4da6ff !important; }
.ab-x { background: transparent; border: 1px solid var(--ab-line); color: var(--ab-ink); border-radius: 6px; padding: 6px 12px; min-height: 36px; font-size: 14px; cursor: pointer; font-family: inherit; }
.ab-intro, .ab-help { color: var(--ab-sub); font-size: 14px; margin: 0 0 8px; }
.ab-help { margin: 0 0 6px; }
.ab-dialog .ab-sub { margin: 22px 0 10px; font-size: 16px; color: var(--ab-ink); }
body.dark-mode .ab-dialog .ab-sub { color: #e8eaec !important; }

.ab-field { margin-bottom: 16px; }
.ab-field[hidden], .ab-form[hidden], .ab-done[hidden] { display: none; }
.ab-label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 5px; color: var(--ab-ink); }
.ab-req { color: #c0392b; }
body.dark-mode .ab-req { color: #ff8a80; }
.ab-input, .ab-file { display: block; width: 100%; box-sizing: border-box; padding: 10px 12px; font-size: 16px; font-family: inherit; color: var(--ab-ink);
    background: var(--ab-bg); border: 1px solid var(--ab-line); border-radius: 6px; }
.ab-note { resize: vertical; min-height: 80px; }
.ab-input:focus, .ab-time:focus, .ab-file:focus { border-color: #169fe6; outline: none; box-shadow: 0 0 0 3px rgba(22, 159, 230, .25); }
body.dark-mode .ab-input, body.dark-mode .ab-time, body.dark-mode .ab-file { background: #1b1d1f; color: #e8eaec; }

.ab-hours { border: 0; margin: 0 0 16px; padding: 0; min-width: 0; }
.ab-hours legend { padding: 0; }
.ab-check { display: inline-block; font-size: 14px; color: var(--ab-ink); cursor: pointer; }
.ab-check input { margin-right: 4px; }
.ab-days { margin: 8px 0 12px; }
.ab-days.ab-off { opacity: .4; }
.ab-day { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 6px 8px; padding: 4px 0; }
.ab-dayname { width: 36px; font-weight: 600; font-size: 14px; }
.ab-time { padding: 7px 8px; font-size: 16px; font-family: inherit; color: var(--ab-ink); background: var(--ab-bg); border: 1px solid var(--ab-line); border-radius: 6px; }
.ab-to { color: var(--ab-sub); font-size: 14px; }
.ab-closed { margin-left: 4px; }

.ab-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ab-turnstile { margin: 6px 0 14px; min-height: 0; }
.ab-error { color: var(--ab-err-ink); background: var(--ab-err-bg); border-radius: 6px; padding: 0 12px; margin: 0; font-size: 14px; }
.ab-error:empty { padding: 0; }
.ab-error:not(:empty) { padding: 10px 12px; margin: 0 0 14px; }

.ab-actions { display: -webkit-flex; display: flex; gap: 10px; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.ab-btn { background: #169fe6; color: #fff; border: 0; border-radius: 6px; padding: 11px 22px; font-size: 16px; font-weight: 600; cursor: pointer; min-height: 44px; font-family: inherit; }
.ab-btn:hover { background: #1078b3; }
.ab-btn:disabled { opacity: .55; cursor: default; }
.ab-cancel { background: transparent; color: var(--ab-ink); border: 1px solid var(--ab-line); }
.ab-cancel:hover { background: rgba(128, 128, 128, .15); }
.ab-btn:focus-visible, .ab-x:focus-visible, .ab-check input:focus-visible { outline: 3px solid rgba(22, 159, 230, .6); outline-offset: 2px; }
.ab-done { padding: 12px 0 4px; }
.ab-done:focus { outline: none; }
.ab-done-text { font-size: 16px; margin: 0 0 16px; }

@media (max-width: 600px) {
    .ab-modal { padding: 0; }
    .ab-dialog { border-radius: 0; min-height: 100%; padding: 16px 14px 20px; }
    .ab-day { padding: 6px 0; }
    .ab-actions .ab-btn { -webkit-flex: 1; flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .ab-btn, .ab-link { transition: none; } }

/* Public cards (flights/js/airport-business-cards.js): reuse the ax-* look; only the logo is new. */
/* Business names beside their dots on the airport map (weather/js/wx-radar-map.js places()): dark text, not the airport label's red. */
.wp-radar .wp-radar-label.wp-radar-biz { color: #1f2a36; font-weight: 600; font-size: 12px; }
body.dark-mode .wp-radar .wp-radar-label.wp-radar-biz { color: #1f2a36 !important; }
.ax-card .ax-logo { display: block; width: auto; height: auto; max-width: 120px; max-height: 60px; object-fit: contain; border-radius: 4px; }
