/* Midnight remote-control surfaces; a quiet monochrome street map. */
:root{--bg:#0e181b;--ink:#eef6f5;--muted:#a2b6b8;--green:#8ce5d3;--lime:#a3eee0;--line:#2c4045;--white:#16262b;--airport-glow:#4c9eac;--airport-warm:#8d78b7}body{background:var(--bg);color:var(--ink);font-size:14px}#shell{padding-top:17px;padding-bottom:112px}.brand{font-size:18px;font-weight:800;letter-spacing:-.6px}.mark{border-radius:14px;background:linear-gradient(145deg,#31545a,#15272c);border:1px solid #598b91;color:#a4efdf;box-shadow:inset 0 1px 1px #ffffff20,0 0 23px #5bbbba24}.avatar{background:linear-gradient(145deg,#35474f,#1b2930);color:#bde7e0;border:1px solid #4d6b70;box-shadow:inset 0 1px #fff2}.welcome-name{color:#91aeb0}.demo{background:#17282c80;border-color:#36545a;color:#a3bcc0;border-radius:30px;font-size:10px;padding:8px 12px;margin-top:14px}.airport-backdrop{color:#639ba2}.airport-backdrop:before,.airport-backdrop:after{opacity:.13}.airport-backdrop:before{background:var(--airport-glow)}.airport-backdrop:after{background:var(--airport-warm)}.airport-backdrop svg{opacity:.05}
.hero{position:relative;padding:22px 0 18px;min-height:130px}.hero h1{font-size:clamp(28px,8vw,36px);letter-spacing:-1.4px;font-weight:750;max-width:62%;margin-top:8px!important}.hero>.muted{max-width:62%;font-size:12px;line-height:1.45;margin-top:10px}.hero>.label{color:#80c8bd;font-size:10px;letter-spacing:2px}.airport-scene{position:absolute;width:36%;right:0;top:22px;height:116px;margin:0;border-radius:20px;background:radial-gradient(ellipse at 50% 50%,#31565c90,#17282cb0);border:1px solid #3b5d62;padding:11px 5px;color:#91d7ca;box-shadow:inset 0 1px #fff1,0 0 28px #468f9630}.airport-scene .row{justify-content:center}.scene-tag{font-size:9px;max-width:100%;overflow:hidden;white-space:nowrap}.scene-tag .icon,.scene-live{display:none}.journey-scene{height:78px;width:100%}.airport-scene:after{background:#94a2eb;opacity:.1}.journey-flow{opacity:.6}.journey-ufo path{fill:#c5dde0}
h1,h2,h3{color:inherit}.card,.stat{background:linear-gradient(140deg,#1c2e33,#14252a);border:1px solid #344b51;border-radius:24px;box-shadow:inset 0 1px 0 #ffffff09,0 10px 28px #0002}.route-controller{padding:16px}.accent-card,.admin-hero,.admin-entry{background:linear-gradient(135deg,#23474a,#18343b);color:#edf8f4;border:1px solid #52797a}.accent-card .muted,.admin-hero p{color:#b0cfd0}.pill,.segment,.admin-tabs button{background:#233d43;color:#c1e0dc;border:1px solid #3c5c61}.pill{padding:6px 9px;line-height:1.3}.pill.lime{background:#8adac8;color:#0e2a2b}.notice{background:#203b3f;color:#c1dad6;border:1px solid #36585d;font-size:11px}.error-notice{background:#412d2c;color:#ffd6bf;border-color:#79524b}.label{color:#99cbc5}label{color:#b7cdce;font-size:11px;font-weight:650}input,select,textarea{background:#0f2025;color:#e7f5f2;border-color:#36545a;border-radius:14px;font-size:13px;padding:13px;min-height:46px;color-scheme:dark}input:focus,select:focus,textarea:focus{border-color:#85cfc4;box-shadow:0 0 0 3px #85cfc41b}.segment{border:1px solid #304e54;padding:4px;border-radius:16px;background:#102226}.segment button{color:#a9c5c8;min-height:40px}.segment .selected{color:#dff8f3;background:linear-gradient(135deg,#36565a,#254247);box-shadow:inset 0 1px #fff2,0 3px 8px #0003}.destination-result{border-color:#334b50;min-height:48px}.destination-result small{color:#9cb5b6}.btn{background:linear-gradient(145deg,#afeadd,#78baad);color:#102b2d;min-height:52px;font-size:13px;font-weight:800;border-radius:17px;border:1px solid #b3f2e3;box-shadow:inset 0 1px 1px #fff8,0 6px 20px #7dd4c421}.btn.secondary{background:linear-gradient(140deg,#2c454c,#1e343c);color:#d3ece8;border:1px solid #4e6a72;box-shadow:inset 0 1px #fff1,0 5px 14px #0002}.btn.light{background:#b7eadd;color:#102b2d}.btn.danger{background:#4c3534;color:#ffcabc;border-color:#895c54}.btn:active:not(:disabled){box-shadow:0 0 25px #81d6cf55;transform:scale(.975)}.btn:before{background:radial-gradient(circle at var(--press-x,50%) var(--press-y,50%),#fff9,transparent 65%)}.link{color:#a9e8db}.back{background:linear-gradient(135deg,#2b4148,#1b2e35);color:#d2f0e9;border:1px solid #47646d;border-radius:14px}.divider{border-color:#344c52}.toast{background:#cfebe4;color:#153035;border:1px solid #a8d4c9;box-shadow:0 8px 32px #0005;pointer-events:none}
.tabs{background:#17272eef;border:1px solid #3a545c;border-radius:24px;width:calc(min(100%,640px) - 26px);bottom:9px;min-height:68px;padding:7px;box-shadow:inset 0 1px #fff1,0 9px 30px #0007;backdrop-filter:blur(12px)}.tabs button{color:#8ca8af;font-size:10px}.tabs .active{background:linear-gradient(130deg,#375558,#253f45);color:#c6f3e9;border:1px solid #496f74;border-radius:18px}.tabs .active .icon{color:#9ce7d9;filter:drop-shadow(0 0 5px #88cab640)}.tabs .icon{stroke-width:1.6;width:24px;height:24px}
.trip-settings{background:#11252a;border:1px solid #36535a;border-radius:16px;padding:12px 13px}.trip-settings summary{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;font-weight:700;min-height:24px}.trip-settings summary span{margin-left:auto;font-size:10px;font-weight:400;color:#a9c5c6}.trip-settings summary .icon{width:17px;height:17px}.trip-settings-body{display:grid;gap:13px;padding-top:16px}.trip-settings[open] summary span{display:none}
.map-card{background:#101f24;border:1px solid #3e555d;border-radius:22px;padding:11px}.map-card strong{font-size:13px;letter-spacing:.1px}.map-card strong .icon{width:17px;height:17px;color:#93cabc}.map-size{background:#29434b;color:#c9e7e2;min-height:34px;border:1px solid #47646c;padding:7px 10px;border-radius:12px;font-size:10px}.map-switch-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:11px;color:#aac5c5}.map-filters{gap:4px;margin-top:9px}.map-filter{font-size:10px;min-height:33px;color:#9bb8bd;background:#193138;border:1px solid #36505a;border-radius:11px}.map-filter.selected{background:#a2d7cb;color:#173236;border-color:#a2d7cb}.route-map{height:380px;border-color:#75878a;border-radius:17px;margin-top:10px;background:#e1e6e7;box-shadow:none}.leaflet-tile-pane{filter:grayscale(1) saturate(0) contrast(.72) brightness(1.16)}body[data-map-night=on] .leaflet-tile-pane{filter:grayscale(1) invert(1) contrast(.8) brightness(.75)}.leaflet-container{background:#dce4e5}.leaflet-control-zoom{border:1px solid #7d939750!important;box-shadow:0 3px 9px #1b333225!important}.leaflet-control-zoom a{background:#f5f8f8!important;color:#283f45!important;font-size:19px!important}.leaflet-control-attribution{background:#f5f8f8dd!important;color:#354b52!important;font-size:9px!important}.leaflet-control-attribution a{color:#35585e!important}.map-legend{font-size:9px;color:#99b4b7;gap:6px 10px;margin-top:10px}.map-card>p{font-size:10px}.map-info{font-size:10px;margin-top:9px;border-top:1px solid #29434a;padding-top:8px;color:#90afb3}.map-info summary{min-height:28px;cursor:pointer}.map-info p{font-size:10px;line-height:1.45}.city-chips{gap:6px;margin-top:9px}.city-chip{background:#1f3b42;color:#b7d8d3;border-color:#3b5960;min-height:37px;font-size:10px;border-radius:12px;padding:8px 10px}.city-chip svg{width:14px;height:14px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#f8fbfb;color:#253e45}.leaflet-popup-content{font-size:12px;max-width:250px}.leaflet-popup-content .muted{color:#667b81}.leaflet-popup-content .btn{font-size:12px}.leaflet-popup-content .map-group-link{color:#243e45;border-color:#d5e0e0}.leaflet-popup-content .map-group-link:hover{background:#dce9e7}.leaflet-popup-content .btn.secondary{color:#d3ece8}.leaflet-tooltip.place-label{display:none}
.map-marker{border:2px solid #fff;background:#1b363c;color:#e9f9f5;border-radius:10px;box-shadow:0 3px 8px #18333135;font-size:12px}.airport-marker{background:#18343a}.destination-marker{background:#276d69;border-radius:50%;animation:none}.group-marker{background:#99d6bf;color:#15342e;border-radius:10px}.map-ufo span{width:30px;height:22px;color:#e9f9f5;background:#17393e;border-color:#fff;box-shadow:0 4px 7px #132c2b33}.map-ufo .icon{width:17px;height:17px}.place-marker{display:block;padding:0;border:0;background:none!important;box-shadow:none;overflow:visible;color:#2c4a51}.place-unit{height:28px;display:flex;align-items:center;gap:5px;border:1px solid #adbfc2;background:#f5f9f8f5;border-radius:11px;padding:4px 7px 4px 4px;box-shadow:0 2px 5px #163d3920;color:#29464d;white-space:nowrap;max-width:164px}.place-glyph{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;background:#dce9e5;border-radius:6px;color:#416b67}.place-glyph svg{width:13px;height:13px;stroke-width:1.6}.place-name{font-size:10px;line-height:18px;font-weight:650;overflow:hidden;text-overflow:ellipsis}.place-unit small{position:static;background:#436b68;border:0;padding:1px 4px;min-width:15px;font-size:8px;line-height:14px;margin-left:0;color:#fff}.place-neighbourhood .place-glyph{background:#e0e6f0;color:#5b6b89}.place-sight .place-glyph{background:#e8e5ed;color:#766385}body[data-map-night=on] .place-unit{background:#20353cf5;border-color:#567178;color:#d9edeb}body[data-map-night=on] .place-glyph{background:#3c5d60;color:#d5ece7}.place-name-only .place-glyph{display:none}.place-name-only{border-color:#c2cecf;box-shadow:none;background:#f4f8f7e5;padding:3px 6px;height:24px}
.elastic-switch{flex:0 0 auto;width:58px;height:34px;padding:3px;border-radius:20px;touch-action:manipulation;background:none;position:relative;-webkit-tap-highlight-color:transparent}.switch-track{display:block;position:relative;width:52px;height:28px;border:1px solid #567178;background:linear-gradient(145deg,#101d22,#2c4148);border-radius:22px;box-shadow:inset 0 2px 5px #0005,inset 0 -1px #ffffff15;transition:background .3s,border-color .3s}.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:linear-gradient(150deg,#edf8f7,#bdd0d3);box-shadow:inset 0 1px 1px #fff,0 2px 5px #0004;transition:left .36s cubic-bezier(.25,1.45,.45,1),transform .2s ease;transform-origin:center}.switch-knob i{position:absolute;width:4px;height:4px;border-radius:50%;background:#69878c;left:8px;top:8px}.is-on .switch-track{background:linear-gradient(130deg,#476d73,#6ea19e);border-color:#91c5bc;box-shadow:inset 0 1px 3px #1d403b55,0 0 15px #84d6c11a}.is-on .switch-knob{left:27px}.switch-pressed .switch-knob{transform:scaleX(1.22) scaleY(.9)}.switch-settle .switch-knob{animation:switch-spring .52s ease both}.elastic-switch:active:not(:disabled){transform:none}.elastic-switch:focus-visible{outline:2px solid #a1e9da;outline-offset:3px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #365057}.setting-row strong{font-size:12px}.setting-row p{font-size:10px;margin-top:4px}.setting-row .elastic-switch{margin-right:0}.identity-owner{font-size:11px;color:#a7d3c9;line-height:1.5}.identity-owner summary{min-height:38px;padding-top:12px;cursor:pointer}.consent input{accent-color:#8fcdbb}.consent{color:#b6ced0}.stat strong{color:#b5e4d8}.stat span,.stat small{color:#a1bcc0}.admin-tabs .selected{background:#94cdbd;color:#13302e}.bar-track{background:#1d3840}.bar-track span{background:linear-gradient(90deg,#76b4ad,#94bcb8)}.audit-line,.ledger-line,.chat-note{border-color:#37575b}.skeleton{background:linear-gradient(100deg,#20373f,#35545a,#20373f);color:#afcdce}
.launch-intro{background:#0e181b}.launch-brand{fill:#b7eee1}.launch-tag{fill:#9bb9bd}.launch-intro svg{filter:drop-shadow(0 0 25px #6e9e9b28)}@keyframes switch-spring{0%{transform:scaleX(1.2) scaleY(.91)}30%{transform:scaleX(.87) scaleY(1.07)}58%{transform:scaleX(1.07) scaleY(.96)}80%{transform:scaleX(.98) scaleY(1.01)}100%{transform:scale(1)}}
body[data-motion=off] *,body[data-motion=off] *:before,body[data-motion=off] *:after{animation:none!important;transition:none!important}body[data-motion=off] .airport-backdrop:before,body[data-motion=off] .airport-backdrop:after{filter:blur(55px);opacity:.05}body[data-motion=off] button:active{transform:none!important}@media(prefers-reduced-motion:reduce){.switch-knob{transition:none}.switch-settle .switch-knob{animation:none!important}}@media(max-width:360px){#shell{padding-left:13px;padding-right:13px}.route-controller{padding:12px}.hero>.muted{max-width:60%}.airport-scene{width:37%}.route-map{height:340px}.map-card strong{font-size:12px}.map-switch-row{font-size:10px}}@media(min-width:600px){.route-map{height:440px}.airport-scene{width:32%;height:125px}.journey-scene{height:86px}}.route-map.expanded{height:min(70dvh,650px)}

.place-unit{width:100%}.place-unit.place-left{flex-direction:row-reverse}

.map-focus{position:fixed;inset:12px max(12px,calc((100vw - 620px)/2)) 88px;z-index:45;display:flex;flex-direction:column;margin:0!important;border-radius:25px;box-shadow:0 0 0 100vmax #0d181bb8,0 15px 60px #0007}.map-focus>.row,.map-focus .map-switch-row,.map-focus .map-filters,.map-focus .city-chips{flex-shrink:0}.map-focus .route-map.expanded{height:auto;min-height:100px;flex:1}.map-focus .map-info,.map-focus .map-legend{display:none}.map-focus>p{font-size:10px;margin-top:9px}.place-name{min-width:0}

.place-unit{max-width:none}.place-name{font-size:11px;flex:1}.place-unit small{flex-shrink:0}

/* Cream, muted teal and peach return; controls keep their mechanical movement. */
:root{--bg:#f2ebe7;--ink:#345653;--muted:#637775;--green:#527f78;--lime:#f0c4a6;--line:#dedad2;--white:#fffaf5;--airport-glow:#71a59b;--airport-warm:#d39976}
.card,.stat{background:linear-gradient(140deg,#fffaf5,#f8f1eb);border-color:#d5ded6;box-shadow:inset 0 1px #fff,0 8px 24px #3456530c}.mark{background:#345653;color:#f0c4a6;border-color:#527f78}.avatar{background:#f2d6c4;color:#345653;border-color:#d7bca7}.welcome-name{color:#637775}.demo{background:#fffaf582;color:#637775;border-color:#bac8c0}.label,label{color:#52736c}.hero>.label{color:#527f78}.airport-backdrop:before,.airport-backdrop:after{opacity:.2}.airport-backdrop svg{opacity:.08}
.hero{padding:25px 0 22px;min-height:0}.hero h1{max-width:100%;font-size:clamp(32px,8vw,40px)}.hero>.muted{max-width:100%;font-size:14px;line-height:1.5}.airport-scene{position:relative;top:auto;right:auto;width:100%;height:auto;margin-top:20px;padding:14px 12px 0;border-color:#c6d3ca;border-radius:23px;background:linear-gradient(135deg,#e2ece6e8,#f6ddcbda);color:#345653;box-shadow:0 0 30px color-mix(in srgb,var(--airport-glow) 20%,transparent)}.airport-scene .row{justify-content:space-between}.scene-tag{font-size:11px}.scene-tag .icon,.scene-live{display:inline-block}.scene-live{color:#637775}.journey-scene{height:144px;width:100%}.journey-ufo path{fill:#dda98c}.journey-ufo{animation:journey-cruise 3.2s ease-in-out infinite}.journey-flow{animation-duration:2.6s}.airport-scene:after{background:var(--airport-glow)}
.accent-card,.admin-hero,.admin-entry{background:linear-gradient(125deg,#345653,#527d73);color:#fffaf5;border-color:#527f78}.accent-card .muted,.admin-hero p{color:#d1e0d8}.pill{background:#e2ede7;color:#456c61;border-color:#c4d5cd}.pill.lime{background:#f0c4a6;color:#345653}.notice{background:#e8efea;color:#456962;border-color:#cbdcd1}.error-notice{background:#fae4d9;color:#913d29;border-color:#ddb7a4}input,select,textarea{background:#fffdf9;color:#345653;border-color:#d5ded8;color-scheme:light}input:focus,select:focus,textarea:focus{border-color:#7ca69a;box-shadow:0 0 0 3px #7ca69a26}.destination-result{border-color:#d5ded8}.destination-result small{color:#637775}
.btn{background:linear-gradient(120deg,#345653,#527d73);color:#fffaf5;border-color:#527f78;box-shadow:inset 0 1px #ffffff30,0 5px 14px #3456531a}.btn.secondary{background:linear-gradient(140deg,#edf3ed,#dce8df);color:#345653;border-color:#c2d2c7;box-shadow:inset 0 1px #fff,0 5px 14px #3456530a}.btn.light{background:#f0c4a6;color:#345653;border-color:#ddaa88}.btn.danger{background:#fae4d9;color:#913d29;border-color:#ddb7a4}.back{background:linear-gradient(135deg,#edf3ed,#dce8df);color:#345653;border-color:#c2d2c7}.link{color:#527f78}.divider,.audit-line,.ledger-line,.chat-note{border-color:#d5ded8}.toast{background:#345653;color:#fffaf5;border-color:#527f78}.trip-settings{background:#e8efea;border-color:#c2d2c7}.trip-settings summary span{color:#637775}.stat strong{color:#345653}.stat span,.stat small{color:#637775}.bar-track{background:#dce8df}.bar-track span{background:linear-gradient(90deg,#7ca69a,#dfa680)}.skeleton{background:linear-gradient(100deg,#e8efea,#fffaf5,#e8efea);color:#637775}.identity-owner{color:#456962}.consent{color:#456962}.setting-row{border-color:#d5ded8}
.map-card{background:#fffaf5;border-color:#c2d2c7}.map-size{background:#f2d6c4;color:#345653;border-color:#d7bca7}.map-card strong .icon{color:#527f78}.map-switch-row,.map-legend,.map-info{color:#637775}.map-info{border-color:#d5ded8}.map-filter{background:#e5eee8;color:#456962;border-color:#c2d2c7}.map-filter.selected{background:#345653;color:#fffaf5;border-color:#345653}.city-chip{background:#edf2ec;color:#345653;border-color:#c2d2c7}.group-marker{background:#e6ba97;color:#345653}.destination-marker{background:#c88f6d}.airport-marker{background:#345653}.map-ufo span{background:#345653;color:#f0c4a6}.map-focus{box-shadow:0 0 0 100vmax #34565388,0 15px 60px #34565340}.leaflet-popup-content .btn.secondary{color:#345653}
.switch-track{background:linear-gradient(145deg,#c9d4cc,#e5eee8);border-color:#9aafa4;box-shadow:inset 0 2px 5px #34565325}.switch-knob{background:linear-gradient(150deg,#fffdf9,#f3d4be)}.is-on .switch-track{background:linear-gradient(130deg,#527f78,#80a99b);border-color:#527f78}.switch-knob i{background:#527f78}.elastic-switch:focus-visible{outline-color:#527f78}
.tabs{background:linear-gradient(145deg,#eee9e0f5,#dce7dff5);border:1px solid #b6c8bc;border-radius:20px;padding:8px;gap:6px;min-height:84px;box-shadow:inset 0 1px #fff,0 9px 28px #34565330}.tabs button,.segment button,.admin-tabs button{position:relative;border:1px solid #b6c8bc;border-radius:10px;background:linear-gradient(180deg,#fffaf5,#d4e0d6);color:#52736c;box-shadow:inset 0 1px #fff,0 3px 0 #9db2a5;transition:transform .3s cubic-bezier(.22,1.5,.45,1),box-shadow .25s,background .25s;transform-origin:50% 90%}.tabs button{padding:11px 3px 7px;min-height:62px;font-size:10px;gap:4px}.tabs button:before,.segment button:before,.admin-tabs button:before{content:'';position:absolute;left:50%;top:4px;transform:translateX(-50%);width:18px;height:3px;border-radius:3px;background:#acbcb1;box-shadow:inset 0 1px #34565325}.tabs .active,.segment .selected,.admin-tabs .selected{background:linear-gradient(180deg,#5c8579,#345653);color:#fffaf5;border-color:#345653;box-shadow:inset 0 1px #ffffff40,0 2px 0 #254440,0 0 16px #71a59b30;animation:cockpit-engage .42s ease both}.tabs .active:before,.segment .selected:before,.admin-tabs .selected:before{background:#f0c4a6;box-shadow:0 0 7px #f0c4a6}.tabs .active .icon{color:#f0c4a6;filter:drop-shadow(0 0 3px #f0c4a650)}.tabs button:active:not(:disabled),.segment button:active:not(:disabled),.admin-tabs button:active:not(:disabled){transform:perspective(180px) rotateX(12deg) translateY(3px);box-shadow:inset 0 2px 6px #34565335,0 0 0 #9db2a5}.segment{background:#dce7df;border-color:#b6c8bc;border-radius:13px;gap:6px;padding:6px}.segment button{padding:11px 5px 6px;font-size:12px;min-height:47px}.admin-tabs button{padding-top:15px}.tabs button:focus-visible,.segment button:focus-visible{outline:3px solid #527f78;outline-offset:2px}.launch-intro{background:#f2ebe7}.launch-brand{fill:#345653}.launch-tag{fill:#637775}
@keyframes cockpit-engage{0%{transform:perspective(180px) rotateX(12deg) translateY(3px)}55%{transform:perspective(180px) rotateX(-4deg) translateY(-1px)}100%{transform:none}}@keyframes journey-cruise{0%,100%{transform:translate(159px,48px);translate:-10px 2px}50%{transform:translate(159px,48px);translate:18px -5px}}
@media(max-width:360px){.hero>.muted{max-width:100%}.airport-scene{width:100%}.scene-live{display:none}.journey-scene{height:132px}.tabs{gap:4px;padding:7px}.tabs button{font-size:9px}.segment button{font-size:11px}}@media(min-width:600px){.airport-scene{width:100%;height:auto}.journey-scene{height:180px}}

/* Anchored SVG groups keep motion local, smooth and bounded. */
.journey-flow{stroke-dasharray:3 6;opacity:.4;animation-duration:3.6s}.journey-craft{transform-box:fill-box;transform-origin:center;animation:craft-hover 3.8s ease-in-out infinite;filter:drop-shadow(0 2px 2px #34565318)}.journey-home{transform-box:fill-box;transform-origin:50% 100%;animation:home-arrive .7s cubic-bezier(.22,1.2,.4,1) both}.house-1{animation-delay:.12s}.house-2{animation-delay:.24s}.house-window{animation:window-welcome 6s ease-in-out infinite}.house-1 .house-window{animation-delay:1.6s}.house-2 .house-window{animation-delay:3.2s}.journey-signal{stroke-dasharray:3 97;animation:route-signal 4.8s cubic-bezier(.35,0,.4,1) infinite;opacity:0}.signal-1{animation-delay:1.6s}.signal-2{animation-delay:3.2s}.ufo-shadow{transform-box:fill-box;transform-origin:center;animation:craft-shadow 3.8s ease-in-out infinite}.ufo-light{animation:cabin-lights 2.8s ease-in-out infinite}.light-1{animation-delay:.15s}.light-2{animation-delay:.3s}.light-3{animation-delay:.45s}.light-4{animation-delay:.6s}.journey-scene .ufo-dome{fill:url(#ufoGlass)}
@keyframes craft-hover{0%,100%{transform:translate(-6px,1px) rotate(-2deg)}50%{transform:translate(10px,-5px) rotate(2deg)}}@keyframes craft-shadow{0%,100%{transform:scaleX(1);opacity:.13}50%{transform:scaleX(.75);opacity:.07}}@keyframes home-arrive{from{opacity:0;transform:translateY(6px) scale(.9)}to{opacity:1;transform:none}}@keyframes window-welcome{0%,100%{fill:#efcba1}35%,60%{fill:#ffdfa2}}@keyframes route-signal{0%{stroke-dashoffset:100;opacity:0}12%{opacity:.85}75%{opacity:.85}95%,100%{stroke-dashoffset:0;opacity:0}}@keyframes cabin-lights{0%,100%{opacity:.6}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.journey-signal{display:none}}body[data-motion=off] .journey-signal{display:none}

.group h3,#screen h1{overflow-wrap:anywhere}.airport-groups-list{max-height:380px;overflow-y:auto;overscroll-behavior:contain;padding:3px 1px}.airport-groups-list .group:last-child{margin-bottom:3px}

.map-visibility{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--white)}.map-visibility>span{display:flex;align-items:center;gap:8px;font-weight:700;font-size:12px}.group-thumbnail{flex:0 0 46px;width:46px;height:54px;display:grid;place-items:center;background:linear-gradient(140deg,#e2ece6,#f2d6c4);border-radius:13px;color:#345653}.group-thumbnail small{font-size:9px;font-weight:800}.group>.row{flex-wrap:wrap}.group .grow{flex-basis:50%}.nearby-panel summary{font-weight:750;cursor:pointer;min-height:30px}.nearby-devices,.nearby-messages{max-height:250px;overflow:auto}.offline-banner{border-color:#c69b54;background:#f6e4bc;color:#704f28}body[data-connection=offline]{--bg:#eee4d3;--ink:#665039;--muted:#7c6a55;--green:#976b37;--lime:#efc37e;--line:#d4c2a8;--white:#fff7e9;background:var(--bg);color:var(--ink)}body[data-connection=offline] .card,body[data-connection=offline] .stat{background:linear-gradient(135deg,#fff7e9,#f1e4d1);border-color:#d4c2a8}body[data-connection=offline] .btn,body[data-connection=offline] .accent-card,body[data-connection=offline] .admin-hero,body[data-connection=offline] .admin-entry{background:linear-gradient(130deg,#755a3c,#a57f4e);border-color:#977346;color:#fff7e9}body[data-connection=offline] .btn.secondary,body[data-connection=offline] .notice,body[data-connection=offline] .trip-settings,body[data-connection=offline] .segment,body[data-connection=offline] .tabs{background:#ebdcc5;color:#665039;border-color:#cbb899}body[data-connection=offline] input,body[data-connection=offline] select,body[data-connection=offline] textarea{background:#fff9ee;color:#665039;border-color:#cbb899}body[data-connection=offline] .tabs .active,body[data-connection=offline] .segment .selected,body[data-connection=offline] .is-on .switch-track{background:linear-gradient(130deg,#a17b4b,#755a3c);border-color:#977346;color:#fff7e9}body[data-connection=offline] .airport-scene{background:linear-gradient(135deg,#e9ddc6,#f5d3b0);color:#79613f;border-color:#cbb899}body[data-connection=offline] .airport-backdrop:before,body[data-connection=offline] .airport-backdrop:after{background:#c99b57}body[data-connection=offline] .mark{background:#755a3c;color:#efc37e}body[data-connection=offline] .link,body[data-connection=offline] label,body[data-connection=offline] .label,body[data-connection=offline] .map-card strong .icon{color:#896535}body[data-connection=offline] .muted,body[data-connection=offline] .time{color:#7c6a55}body[data-connection=offline] .avatar,body[data-connection=offline] .group-thumbnail,body[data-connection=offline] .map-size,body[data-connection=offline] .city-chip,body[data-connection=offline] .map-filter{background:#ebdcc5;color:#665039;border-color:#cbb899}body[data-connection=offline] .map-filter.selected{background:#755a3c;color:#fff7e9}body[data-connection=offline] .demo{background:#fff7e982;color:#7c6a55;border-color:#cbb899}

body[data-connection=offline] .pill,body[data-connection=offline] .back{background:#ebdcc5;color:#665039;border-color:#cbb899}body[data-connection=offline] .toast{background:#755a3c;color:#fff7e9;border-color:#977346}body[data-connection=offline] .map-ufo span,body[data-connection=offline] .airport-marker{background:#755a3c}body[data-connection=offline] .group-marker{background:#efc37e;color:#665039}body[data-connection=offline] .map-info,body[data-connection=offline] .map-legend,body[data-connection=offline] .map-switch-row{color:#7c6a55}

/* 0.12: compact controls, explicit surface roles and readable text. */
:root{--field-surface:#fffdf9;--field-ink:#294940;--field-outline:#748d80;--info-surface:#e6eef3;--info-ink:#355668;--chat-surface:#f5e4d6;--tab-surface:#dce7df}
.btn{width:auto;max-width:100%;min-height:48px;padding:10px 16px;border-radius:12px;font-size:13px;line-height:1.4;box-shadow:inset 0 1px #ffffff30,0 3px 9px #34565315}.btn.secondary{box-shadow:none;background:#e0ebe4;border-color:#8da496}.btn.danger{background:#fae4d9;color:#823c28}.grid>.btn,.row.section>.btn{width:100%}.link{min-height:44px;padding:8px 4px;font-size:13px;color:#385d51;text-decoration:underline;text-underline-offset:3px}.back{width:48px;height:48px}.btn:focus-visible,.link:focus-visible,.back:focus-visible{outline:3px solid #ab6c43;outline-offset:3px}.btn:disabled{opacity:.6;box-shadow:none}
input,select,textarea{min-height:48px;padding:10px 12px;border-radius:10px;border:1px solid var(--field-outline);background:var(--field-surface);color:var(--field-ink);font-size:16px;line-height:1.4;box-shadow:inset 0 1px 2px #34565308}textarea{min-height:96px}input::placeholder,textarea::placeholder{color:#61736b;opacity:1}input:focus,select:focus,textarea:focus{outline:2px solid #ab6c43;outline-offset:2px;border-color:#345653;box-shadow:none}label{color:#49615b;font-size:12px;margin-bottom:6px}.muted,.small.muted,.time{color:#526a61}.consent{color:#3e5b50}.consent input{min-height:22px;width:22px;height:22px;box-shadow:none}.field-icon select{min-height:44px;border-radius:7px;background:var(--field-surface);padding:8px}
.notice{background:var(--info-surface);color:var(--info-ink);border:1px solid #8ca6b1;border-radius:10px;font-size:12px;line-height:1.55}.error-notice{background:#fae4d9;color:#823c28;border-color:#ba7a5f;border-left:3px solid #9d4d31}.chat-note{background:var(--chat-surface);color:#563f32;border-left:3px solid #ab6c43;padding:10px 12px;border-radius:4px 12px 12px 4px;font-size:13px}.chat-note p{margin-top:4px}.pill{background:#e4ece4;color:#3d5c4c;border-color:#92aa9b}.toast{font-size:13px;line-height:1.4}
.tabs{min-height:68px;padding:6px;gap:5px;border-radius:17px;background:var(--tab-surface)}.tabs button{min-height:50px;padding:7px 3px 5px;gap:3px;font-size:10px;border-radius:9px}.tabs .icon{width:21px;height:21px}.tabs button:before{width:14px;height:2px;top:3px}.segment{padding:4px;gap:4px;border-radius:12px;background:var(--tab-surface)}.segment button{min-height:48px;padding:9px 6px 7px;border-radius:9px;font-size:12px}.segment .selected{color:#fffaf5;background:#345653}.admin-tabs button{min-height:44px;font-size:12px;padding:10px 12px}.elastic-switch{height:48px;display:flex;align-items:center;justify-content:center}.map-visibility{padding:7px 12px;border-radius:12px}.card{border-radius:20px}.destination-result{border-radius:10px;min-height:48px}.destination-result small{color:#526a61}
body[data-connection=offline]{--field-surface:#fff9ee;--field-ink:#665039;--field-outline:#947c5f;--info-surface:#ebdcc5;--info-ink:#665039;--chat-surface:#f3dfbf;--tab-surface:#ebdcc5}body[data-connection=offline] label,body[data-connection=offline] .muted,body[data-connection=offline] .time{color:#69563e}body[data-connection=offline] .chat-note{color:#5f482d;border-color:#977346}
@media(max-width:360px){.btn{padding-inline:12px}.tabs button{font-size:10px}.segment button{font-size:11px}}

.btn:not(.secondary):not(.light):not(.danger),.accent-card,.admin-hero,.admin-entry{background:linear-gradient(125deg,#345653,#456d63)}
body[data-connection=offline] .btn:not(.secondary):not(.light):not(.danger),body[data-connection=offline] .accent-card,body[data-connection=offline] .admin-hero{background:linear-gradient(130deg,#755a3c,#8b693f)}
/* 0.13: shared switch markup and one legible colour system. */
:root{--body-text:#294940;--support-text:#435e52;--active-control:#2e5044;--control-text:#fffaf5}
body,.card,.stat{color:var(--body-text)}h1,h2,h3,.card strong{color:inherit}.card label,.muted,.time,.welcome-name,.stat span,.stat small,.trip-settings summary span,.destination-result small,.map-switch-row,.map-legend,.map-info{color:var(--support-text)}.accent-card,.admin-hero{color:#fffaf5}.accent-card .muted,.admin-hero p,.accent-card .label,.admin-hero .label,.admin-entry .label{color:#eef5ef}.card .notice{color:var(--info-ink)}.card .error-notice{color:#823c28}.tabs button,.segment button,.admin-tabs button,.map-filter,.city-chip{color:#354f44}.tabs .active,.segment .selected,.admin-tabs .selected,.map-filter.selected{background:var(--active-control);color:var(--control-text);border-color:var(--active-control)}.tabs .active .icon{color:#f0c4a6}.stat strong{color:#294940}.field-icon select{color:var(--field-ink)}.consent{color:#294940;background:#f9f6ef;border:1px solid #91a69a;border-radius:10px;padding:12px;line-height:1.6}.consent input{accent-color:#2e5044;flex-shrink:0}
.map-size-control{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--support-text);flex-shrink:0}.map-size-control .elastic-switch{width:58px;flex-shrink:0}.map-filter,.city-chip{position:relative;transition:transform .28s cubic-bezier(.22,1.5,.45,1),box-shadow .2s;box-shadow:inset 0 1px #fff,0 2px 0 #a4b9ac;border-radius:9px;min-height:44px}.map-filter.selected{box-shadow:inset 0 1px #ffffff35,0 1px 0 #183b2e;animation:cockpit-engage .42s ease both}.map-filter:active,.city-chip:active{transform:perspective(180px) rotateX(10deg) translateY(2px);box-shadow:inset 0 2px 5px #34565325}.map-filter:focus-visible,.city-chip:focus-visible{outline:3px solid #ab6c43;outline-offset:2px}.map-switch-row{padding-block:4px}.switch-track{background:#d4ded6;border-color:#718a7c;box-shadow:inset 0 2px 5px #34565325}.is-on .switch-track{background:linear-gradient(130deg,#345653,#628f7d);border-color:#345653}.switch-knob{background:linear-gradient(145deg,#fffdf9,#f0c4a6);border:1px solid #dbc0aa}.switch-knob i{background:#345653}.group-thumbnail{color:#294940}.demo{color:#435e52}.launch-tag{fill:#435e52}
body[data-connection=offline]{--body-text:#57442e;--support-text:#624c30;--active-control:#755a3c;--control-text:#fff9ee}body[data-connection=offline] .card,body[data-connection=offline] .stat{color:var(--body-text)}body[data-connection=offline] .card label,body[data-connection=offline] .stat span,body[data-connection=offline] .stat small,body[data-connection=offline] .map-switch-row,body[data-connection=offline] .map-legend{color:var(--support-text)}body[data-connection=offline] .consent{background:#fff9ee;color:#57442e;border-color:#947c5f}
@media(prefers-reduced-motion:reduce){.map-filter,.city-chip{animation:none!important;transition:none!important}}
