:root{--bg:#080814;--surface:#0e0e1e;--surface-deep:#090913;--surface-raised:#141426;--line:#29293e;--line-soft:#5b587a4d;--text:#f4f3f8;--muted:#9290a6;--accent:#8f86cf;--accent-soft:#b3add8;--amber:#c9a66b;--danger:#ff776f;--accent-strong:#a855f7;--accent-indigo:#4f46e5;--accent-gradient:linear-gradient(120deg, var(--accent-strong), var(--accent-indigo));--radius:12px;--sans:Inter, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display:var(--sans);--mono:var(--sans)}*{box-sizing:border-box}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(circle at 47% -15%, #5b48a01a, transparent 34rem), radial-gradient(circle at 12% 18%, #fff3 0 1px, transparent 1.35px) 0 0 / 230px 230px, radial-gradient(circle at 74% 42%, #b8b1e724 0 .75px, transparent 1.2px) 0 0 / 310px 310px, radial-gradient(circle at 37% 76%, #ffffff1c 0 .7px, transparent 1.1px) 0 0 / 190px 190px, var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4,strong{font-family:var(--sans)}h1,h2,h3{font-weight:800}.mono,strong,output,td,th,.summary-stat{font-variant-numeric:tabular-nums lining-nums}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,select{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:30;background:#080814e6;grid-template-columns:minmax(270px,1fr) auto minmax(250px,1fr);align-items:center;height:66px;padding:0 clamp(20px,3vw,44px);display:grid;position:sticky;top:0}.brand{align-items:center;gap:9px;width:fit-content;display:inline-flex}.brand-mark{flex:none;place-items:center;width:34px;height:34px;display:grid}.brand-mark img{object-fit:contain;width:100%;height:100%}.brand-copy{white-space:nowrap;align-items:baseline;gap:8px;display:inline-flex}.brand strong{letter-spacing:-.035em;font-size:18px;font-weight:800}.brand-copy>span{color:#aaa8b8;letter-spacing:.01em;font-size:11px}.main-nav{align-items:center;gap:8px;height:100%;display:flex}.main-nav a{color:#aaa8b8;place-items:center;min-width:88px;height:100%;font-size:14px;transition:color .16s;display:grid;position:relative}.main-nav a:hover,.main-nav a:focus-visible,.main-nav a.active{color:var(--text)}.main-nav a.active:after{content:"";background:#8178c2;height:2px;position:absolute;bottom:0;left:14px;right:14px}.primary-action{background:var(--accent-gradient);color:#fff;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 16px;font-size:13px;font-weight:650;transition:transform .16s,filter .16s,box-shadow .16s;display:inline-flex;box-shadow:0 7px 24px #5046c826}.header-actions{justify-self:end;align-items:center;gap:8px;display:flex}.language-switch{color:#c1becb;cursor:pointer;background:#0d0d1cdb;border:1px solid #343449;border-radius:8px;align-items:center;gap:6px;min-height:38px;padding:0 11px;font-size:11px;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.language-switch:hover{color:#e8e5ef;background:#8f86cf12;border-color:#625d82}.language-switch:disabled{opacity:.6;cursor:wait}.primary-action:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 9px 28px #5849d738}.admin-action{color:var(--muted);align-items:center;gap:6px;padding:7px 9px;font-size:12px;display:inline-flex}.admin-action:hover{color:var(--text)}.primary-action:focus-visible,.main-nav a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.page{width:min(1600px,100%);margin:0 auto;padding:30px clamp(20px,3vw,44px) 50px}.summary-rail{grid-template-columns:minmax(300px,1.35fr) repeat(3,minmax(145px,.76fr)) minmax(190px,.95fr);align-items:center;min-height:92px;margin-bottom:18px;display:grid}.summary-title{padding-right:26px}.summary-title h1{letter-spacing:-.045em;margin:0 0 5px;font-size:clamp(29px,3vw,43px);font-weight:800;line-height:1.05}.summary-title p{color:var(--muted);margin:0;font-size:12px}.summary-stat{border-left:1px solid var(--line);text-align:center;flex-direction:column;justify-content:center;min-height:66px;padding:3px 26px;display:flex}.summary-stat strong{font-family:var(--display);letter-spacing:-.035em;color:#eeedf3;font-size:clamp(33px,3.4vw,51px);font-weight:700;line-height:.94}.primary-summary-stat strong{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;width:fit-content;margin-inline:auto}.summary-stat span{color:var(--muted);margin-top:8px;font-size:12px}.summary-stat.range-stat strong{font-size:clamp(23px,2.4vw,34px)}.distance-summary-stat{padding-inline:18px}.distance-unit-row{justify-content:center;align-items:center;gap:11px;min-height:25px;margin-top:10px;display:flex}.distance-unit-row>span{margin:0}.unit-toggle{border:1px solid #38384f;border-radius:5px;display:inline-flex;overflow:hidden}.unit-toggle button{color:#88869b;min-width:27px;height:20px;font-family:var(--mono);cursor:pointer;background:0 0;border:0;border-left:1px solid #38384f;padding:0 5px;font-size:8px}.unit-toggle button:first-child{border-left:0}.unit-toggle button.active{color:#fff;background:#6f68a9}.public-home{width:min(1600px,100%);margin:0 auto;padding:20px clamp(20px,3vw,44px) 64px}.journey-hero{isolation:isolate;border:1px solid var(--line);background:#090914;border-radius:18px;min-height:550px;position:relative;overflow:hidden}.journey-hero-copy{z-index:2;width:min(920px,63%);padding:clamp(42px,7vw,105px) clamp(30px,6vw,90px) 130px;position:relative}.eyebrow{color:#b5afd0;letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:15px;font-size:10px;font-weight:750;display:inline-flex}.journey-hero h1{color:#f5f4f8;letter-spacing:-.055em;margin:0;font-size:clamp(46px,5vw,78px);line-height:1.02}.journey-hero h1>span{white-space:nowrap;display:block}.journey-hero-copy>p{color:#b5b2c5;text-wrap:pretty;margin:22px 0 29px;font-size:15px;line-height:1.8}:lang(zh) .journey-hero-copy{width:min(920px,63%)}:lang(zh) .journey-hero h1{letter-spacing:-.07em;max-width:12em;line-height:1.12}:lang(zh) .journey-hero-copy>p{letter-spacing:.01em;max-width:32em;line-height:1.82}:lang(en) .journey-hero-copy{width:min(920px,63%)}:lang(en) .journey-hero h1{letter-spacing:-.058em;max-width:760px;font-size:clamp(44px,4.45vw,74px);font-weight:700;line-height:1.03}:lang(en) .journey-hero-copy>p{letter-spacing:-.012em;max-width:550px;line-height:1.72}.journey-hero-actions,.admin-links{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.hero-link{color:#c9c6d6;align-items:center;gap:7px;font-size:13px;display:inline-flex}.hero-link:hover{color:#fff}.journey-instagram-link{color:#d4cbe7;background:linear-gradient(100deg,#b656bf1c,#725dd514);border:1px solid #bc75d54d;border-radius:999px;align-items:center;gap:7px;width:fit-content;margin-top:20px;padding:7px 10px 7px 8px;font-size:11px;line-height:1;transition:border-color .18s,background .18s,transform .18s;display:inline-flex}.journey-instagram-link strong{color:#f0d8f4;font-size:11px;font-weight:700}.journey-instagram-link svg:first-child{color:#e1a4da}.journey-instagram-link svg:last-child{margin-left:1px}.journey-instagram-link:hover{color:#fff;background:linear-gradient(100deg,#c357b038,#7862de2b);border-color:#e098dcbd;transform:translate(2px)}.journey-hero-art{z-index:-1;opacity:.93;background:linear-gradient(90deg,#090914 18%,#09091473 49%,#0909140a 100%),url(/brand/flight-journey-hero-changsha.png) 100%/cover no-repeat;position:absolute;inset:0}.journey-stats{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0909149e;border-top:1px solid #9890cb40;grid-template-columns:repeat(4,1fr);margin:0;display:grid;position:absolute;bottom:0;left:0;right:0}.journey-stats div{border-left:1px solid #9890cb33;min-height:108px;padding:23px clamp(18px,3vw,42px)}.journey-stats div:first-child{border-left:0}.journey-stats dt{color:var(--muted);margin-bottom:7px;font-size:11px}.journey-stats dd{color:#f1f0f7;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(25px,2.8vw,42px);font-weight:700;line-height:1}.journey-stats small{color:#aaa6bb;letter-spacing:0;font-size:.42em;font-weight:500}.journey-stat-primary dd{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;width:fit-content}.journey-intro-band{color:var(--muted);align-items:center;gap:22px;padding:24px 2px;font-size:13px;display:flex}.journey-intro-band span,.journey-intro-band a{color:#cbc7dd;white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.journey-intro-band p{flex:1;margin:0}.public-map-section .map-panel{min-height:540px}.public-flight-section{padding-top:68px}.public-section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px;display:flex}.public-section-heading .eyebrow{margin-bottom:6px}.public-section-heading h2{letter-spacing:-.04em;margin:0;font-size:28px}.public-flight-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.public-flight-card{border:1px solid var(--line);background:#0e0e1eb8;border-radius:10px;min-height:124px;padding:20px;transition:border-color .18s,transform .18s}.public-flight-card:hover{border-color:#8f86cf9e;transform:translateY(-2px)}.public-flight-card time,.public-flight-card span{color:var(--muted);font-size:11px;display:block}.public-flight-card strong{letter-spacing:-.035em;margin:10px 0 7px;font-size:21px;display:block}.public-flight-card i{color:var(--accent-soft);font-style:normal}.admin-page{place-items:center;min-height:calc(100vh - 66px);display:grid}.admin-gate{border:1px solid var(--line);background:#0e0e1ebf;border-radius:15px;width:min(540px,100%);padding:42px}.admin-gate h1{letter-spacing:-.045em;margin:0;font-size:32px}.admin-gate>p{color:var(--muted);line-height:1.7}.admin-login-form{gap:16px;margin-top:28px;display:grid}.admin-login-form label,.guestbook-form label{color:#cbc8d7;gap:7px;font-size:12px;display:grid}.admin-login-form input,.guestbook-form input,.guestbook-form textarea{width:100%;color:var(--text);background:#090914;border:1px solid #39384f;border-radius:8px;padding:11px 12px}.admin-login-form .primary-action{border:0;justify-content:center}.admin-dashboard{gap:15px;display:grid}.text-action{width:fit-content;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.guestbook-page{max-width:1240px}.guestbook-intro{max-width:780px;padding:42px 0 36px}.guestbook-intro h1{letter-spacing:-.052em;margin:11px 0 0;font-size:clamp(34px,4.2vw,58px);line-height:1.08}.guestbook-intro p{max-width:560px;color:var(--muted);margin:16px 0 0;font-size:15px;line-height:1.75}.guestbook-layout{grid-template-columns:minmax(310px,.8fr) minmax(0,1.42fr);align-items:start;gap:22px;display:grid}.guestbook-form,.guestbook-list{border:1px solid var(--line);background:#0e0e1eb8;border-radius:16px}.guestbook-form{gap:18px;padding:24px;display:grid;position:sticky;top:18px;box-shadow:0 20px 55px #0000002e}.guestbook-form:before{content:"";opacity:.85;background:linear-gradient(90deg,#a855f7,#4f46e5);width:42px;height:1px}.guestbook-form-heading{color:#9995ae;letter-spacing:.16em;align-items:center;gap:8px;margin:-8px 0 2px;font-size:10px;font-weight:750;display:flex}.guestbook-form-heading p{margin:0}.guestbook-form-signal{background:#8a78dd;border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 4px #8a78dd1f}.guestbook-form label{color:#cbc8d7;letter-spacing:.02em;gap:8px;font-size:12px;font-weight:650;display:grid}.guestbook-form input,.guestbook-form textarea{width:100%;color:var(--text);background:#070712c2;border:1px solid #39384f;border-radius:10px;padding:12px 13px;transition:border-color .18s,box-shadow .18s}.guestbook-form input:focus,.guestbook-form textarea:focus{border-color:#826dddd1;outline:none;box-shadow:0 0 0 3px #745dd521}.guestbook-form textarea{resize:vertical;min-height:148px;line-height:1.65}.guestbook-photo-field{background:linear-gradient(110deg,#7c5bcf14,#0a0a1833);border:1px dashed #8a78dd75;border-radius:10px;padding:12px}.guestbook-photo-field>span{color:#d0c7ec;align-items:center;gap:7px;display:inline-flex}.guestbook-photo-field input[type=file]{color:#aaa4bd;background:0 0;border:0;border-radius:0;padding:7px 0 0;font-size:12px}.guestbook-photo-field input[type=file]::file-selector-button{color:#e5ddff;cursor:pointer;font:inherit;background:#745dd52e;border:1px solid #a48be499;border-radius:7px;margin-right:9px;padding:6px 9px}.guestbook-photo-field small{color:#8d879f;letter-spacing:0;font-size:10px;font-weight:500}.guestbook-message-field{position:relative}.guestbook-counter{color:#858197;font-variant-numeric:tabular-nums;letter-spacing:0;justify-self:end;margin-top:-2px;font-size:11px;font-weight:500}.guestbook-counter-warning{color:#e6bd6e}.guestbook-counter-limit{color:#ea8585}.guestbook-submit{justify-content:center;min-height:42px}.honeypot{left:-10000px;position:absolute!important}.form-success,.form-info{margin:-4px 0 0;font-size:12px;line-height:1.55}.form-success{color:#a8d5b0}.form-info{color:#ada2e8}.form-error{color:#ff9c98;margin:-4px 0 0;font-size:12px;line-height:1.55}.guestbook-list{min-width:0;padding:0;overflow:hidden}.guestbook-list-heading{border-bottom:1px solid var(--line-soft);color:#a7a2bb;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:17px 20px 15px;font-size:10px;font-weight:750;display:flex}.guestbook-list-heading span:last-child{color:#7d78a0;font-variant-numeric:tabular-nums}.guestbook-wall{scrollbar-width:thin;scrollbar-color:#9483da61 transparent;max-height:600px;padding:14px;overflow-y:auto}.guestbook-wall::-webkit-scrollbar{width:6px}.guestbook-wall::-webkit-scrollbar-track{background:0 0}.guestbook-wall::-webkit-scrollbar-thumb{background:#9483da59;border-radius:99px}.guestbook-card{background:linear-gradient(135deg,#ffffff0b,#ffffff05);border:1px solid #7a759e3d;border-radius:13px;padding:16px 16px 13px;transition:transform .18s,border-color .18s,background .18s;position:relative;box-shadow:0 8px 22px #0000001f}.guestbook-card:hover{background:linear-gradient(135deg,#7d67d316,#ffffff06);border-color:#9782e175;transform:translateY(-1px)}.guestbook-card+.guestbook-card,.guestbook-wall>div+div{margin-top:12px}.guestbook-card-header{align-items:center;gap:10px;display:flex}.guestbook-avatar{color:#fff;text-shadow:0 1px 4px #0000003d;border:1px solid #fff3;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:760;display:grid}.guestbook-card-author{gap:2px;min-width:0;display:grid}.guestbook-card-author strong{color:#eeeef6;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.guestbook-card-author time{color:#858197;font-variant-numeric:tabular-nums;font-size:10px}.guestbook-card-message{color:#ccc9d8;white-space:pre-wrap;word-break:break-word;margin:14px 0 0;font-size:13px;line-height:1.72}.guestbook-card-photo{background:#070712;border:1px solid #937edd4d;border-radius:9px;margin:14px 0 0;position:relative;overflow:hidden}.guestbook-card-photo:before{z-index:1;content:"";background:linear-gradient(90deg,#c084fc,#6366f1);width:46px;height:2px;position:absolute;top:0;left:0}.guestbook-card-photo img{object-fit:contain;width:100%;height:auto;max-height:520px;display:block}.guestbook-card-footer{justify-content:flex-end;align-items:flex-end;gap:12px;min-height:20px;margin-top:9px;display:flex}.guestbook-delete{color:#da858c;cursor:pointer;opacity:0;background:0 0;border:0;align-items:center;gap:5px;padding:2px 0;font-size:10px;transition:opacity .16s,color .16s;display:inline-flex}.guestbook-card:hover .guestbook-delete,.guestbook-card:focus-within .guestbook-delete{opacity:.82}.guestbook-delete:hover{color:#ffabb0}.guestbook-delete:disabled{cursor:wait}.guestbook-delete-error{color:#ed969c;margin-right:auto;font-size:10px}.guestbook-empty{color:#8f8aa3;text-align:center;place-content:center;gap:10px;min-height:250px;padding:24px;display:grid}.guestbook-empty span{color:#a48ae4;font-size:18px}.guestbook-empty p{max-width:260px;margin:0;font-size:13px;line-height:1.7}.guestbook-arrival{animation:.28s cubic-bezier(.16,1,.3,1) both guestbook-arrival}@keyframes guestbook-arrival{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.crew-cell{min-width:122px}.crew-cell span,.crew-cell small{display:block}.crew-cell small{color:var(--muted);margin-top:2px}.map-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-deep);min-height:670px;transition:border-color .18s;position:relative;overflow:hidden}.map-panel:hover{border-color:#7e76b88f}.map-panel-compact{min-height:505px}.map-panel-header{z-index:5;pointer-events:none;background:linear-gradient(#090913fa,#090913b3,#0000);justify-content:space-between;align-items:flex-start;min-height:64px;padding:15px 18px;display:flex;position:absolute;top:0;left:0;right:0}.map-panel-header h2,.panel-heading h2{letter-spacing:-.01em;margin:0;font-size:18px;line-height:1.2}.map-panel-header p,.panel-heading p{color:var(--muted);margin:4px 0 0;font-size:11px}.map-year-tabs{z-index:7;scrollbar-width:thin;scrollbar-color:#3c3953 transparent;gap:5px;padding:1px 1px 7px;display:flex;position:absolute;top:66px;left:18px;right:74px;overflow-x:auto}.map-year-tabs button{color:#918fa2;min-width:48px;height:29px;font-family:var(--mono);cursor:pointer;background:#0d0d1ce6;border:1px solid #343449;border-radius:7px;flex:none;padding:0 10px;font-size:10px;transition:border-color .15s,color .15s,background .15s}.map-year-tabs button:hover{color:#d8d5e0;border-color:#5e597c}.map-year-tabs button.active{background:var(--accent-gradient);color:#fff;border-color:#0000;box-shadow:0 5px 16px #4f46e526}.map-zoom-controls{z-index:8;background:#0d0d1ceb;border:1px solid #35354a;border-radius:8px;display:grid;position:absolute;top:112px;left:16px;overflow:hidden}.map-zoom-controls button{color:#c9c7d2;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #35354a;place-items:center;width:36px;height:35px;padding:0;display:grid}.map-zoom-controls button:last-child{border-bottom:0}.map-zoom-controls button:hover:not(:disabled){color:#b9b0e7;background:#8f86cf14}.map-zoom-controls button:disabled{color:#525069;cursor:default}.flight-map{width:100%;height:100%;display:block;position:absolute;inset:0}.flight-map.is-pannable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.flight-map.is-dragging{cursor:grabbing}.flight-map.is-pannable .map-route{cursor:pointer}.flight-map.is-dragging .map-route{cursor:grabbing}.map-panel-compact .flight-map{min-height:505px}.map-grid line{stroke:#74718b;stroke-width:.55px;opacity:.075}.map-countries path{fill:none;stroke:#303047;stroke-width:.68px;opacity:.96;vector-effect:non-scaling-stroke}.map-countries path.visited{fill:none;stroke:#8178bd;stroke-width:1px;opacity:.96}.map-countries path.china-region{stroke:#4a476a;stroke-width:.82px;opacity:1}.map-countries path.china-region.visited{stroke:#9186d1;stroke-width:1.08px}.map-route{fill:none;stroke:url(#flight-route-gradient);opacity:.3;stroke-linecap:round;cursor:pointer;vector-effect:non-scaling-stroke;transition:opacity .18s}.map-route-planned{opacity:.2;stroke-dasharray:5 5}.map-route:hover,.map-route:focus-visible{opacity:.67;outline:none}.map-route.selected{opacity:.82}.map-airports circle{vector-effect:non-scaling-stroke}.map-airport-standard{fill:#8d899e;opacity:.88}.map-airport-hub{fill:#a99ddb;stroke:#ece9fa;stroke-width:.55px;opacity:.96;filter:url(#hub-airport-glow)}.map-airports text{fill:#c8c5d3;font-family:var(--mono);text-anchor:middle;paint-order:stroke;stroke:#080814;stroke-width:2.5px;pointer-events:none;font-size:9px}.maplibregl-ctrl-top-left{top:66px;left:9px}.maplibregl-ctrl-group{border:1px solid #343449;box-shadow:none!important;background:#0d0d1ced!important}.maplibregl-ctrl button+button{border-top-color:#343449!important}.maplibregl-ctrl button .maplibregl-ctrl-icon{filter:invert(90%);opacity:.85}.maplibregl-popup-content{color:var(--text);background:#111123;border:1px solid #343449;border-radius:8px;padding:12px 14px;box-shadow:0 16px 34px #00000059}.maplibregl-popup-tip{border-top-color:#111123!important}.map-popup-content{gap:2px;min-width:180px;display:grid}.map-popup-content strong{color:var(--accent-soft);font-family:var(--mono);font-size:14px}.map-popup-content span{font-size:12px}.map-popup-content small{color:var(--muted);font-size:10px}.map-legend{z-index:5;color:#c1bfca;pointer-events:none;gap:7px;font-size:11px;display:grid;position:absolute;top:112px;right:18px}.map-legend span{align-items:center;gap:8px;display:flex}.legend-line{opacity:.72;background:#8178bd;width:24px;height:2px;display:block}.legend-line.planned{opacity:.5;background:repeating-linear-gradient(90deg,#8178bd 0 5px,#0000 5px 9px);height:1px}.selected-route-card{z-index:5;pointer-events:none;background:#0f0f1fed;border:1px solid #35354a;border-radius:9px;gap:3px;width:min(255px,46vw);padding:14px 16px;display:grid;position:absolute;bottom:22%;left:clamp(74px,20vw,320px);box-shadow:0 18px 40px #0000004d}.selected-route-card strong{font-family:var(--mono);color:#b8b2dc}.selected-route-card span{font-size:12px}.selected-route-card small{color:var(--muted);font-size:10px}.selected-route-card button{color:#c7bfff;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;width:fit-content;margin-top:5px;padding:0;font-size:11px;font-weight:700;display:inline-flex}.selected-route-card button:hover{color:#f0edff}.map-loading,.chart-loading{min-height:300px;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);place-items:center;display:grid}.dashboard-lower-grid{grid-template-columns:minmax(350px,1.15fr) minmax(250px,.62fr) minmax(430px,1.15fr);gap:10px;margin-top:10px;display:grid}.data-panel{border:1px solid var(--line);border-radius:var(--radius);background:#0e0e1db8;min-width:0;padding:15px 16px 13px;transition:border-color .18s}.data-panel:hover{border-color:#6f6a9994}.panel-heading{justify-content:space-between;align-items:flex-start;min-height:42px;display:flex}.panel-heading>a{color:var(--muted);padding:3px}.panel-heading>a:hover{color:var(--accent)}.trend-chart{width:100%;height:245px}.ranking-list{margin:5px 0 0;padding:0;list-style:none}.ranking-list li{border-top:1px solid var(--line-soft);grid-template-columns:25px 1fr auto;align-items:center;min-height:29px;font-size:12px;display:grid}.rank-index{color:var(--muted);font-family:var(--mono);font-size:10px}.route-code,.mono{font-family:var(--mono);letter-spacing:-.02em}.ranking-list strong{color:#dce5e7;font-size:11px;font-weight:560}.table-scroll{overflow-x:auto}.recent-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11px}.recent-table th{height:28px;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);font-weight:500}.recent-table td{border-bottom:1px solid var(--line-soft);height:34px;padding-right:14px}.recent-table tbody tr{transition:background .14s}.recent-table tbody tr:hover{background:#8f86cf0e}.recent-table a:hover{color:var(--accent)}.distance-note{border-top:1px solid var(--line);align-items:baseline;gap:28px;margin-top:28px;padding:18px 0 0;display:flex}.distance-note>span{color:var(--accent);font-family:var(--display);flex:none;font-size:22px}.distance-note p{color:var(--muted);margin:0;font-size:12px}.distance-note strong{color:var(--text);font-weight:600}.page-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;min-height:86px;margin-bottom:22px;display:flex}.page-heading h1{letter-spacing:-.045em;margin:0;font-size:clamp(30px,3vw,43px);line-height:1.05}.page-heading p{color:var(--muted);margin:8px 0 0;font-size:12px}.map-page .map-panel{min-height:calc(100vh - 210px)}.rankings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ranking-section{border:1px solid var(--line);border-radius:var(--radius);background:#0e0e1db3;padding:18px 20px 16px;transition:border-color .18s}.ranking-section:hover{border-color:#6f6a9994}.ranking-section header{justify-content:space-between;align-items:baseline;padding-bottom:12px;display:flex}.ranking-section h2{margin:0;font-size:18px}.ranking-section header span{color:var(--muted);font-size:10px}.expanded-ranking{margin:0;padding:0;list-style:none}.expanded-ranking li{border-top:1px solid var(--line-soft);grid-template-columns:34px minmax(0,1fr) minmax(62px,auto);align-items:center;gap:10px;min-height:42px;font-size:12px;display:grid}.expanded-ranking li>span:last-child{text-align:right;color:#d5dee2}.ranking-name{align-items:center;min-width:0;height:28px;display:flex;position:relative;overflow:hidden}.ranking-name strong{z-index:1;text-overflow:ellipsis;white-space:nowrap;font-weight:550;position:relative;overflow:hidden}.ranking-name i{background:var(--accent-gradient);opacity:.72;height:2px;position:absolute;bottom:1px;left:0}.ranking-empty{color:var(--muted);margin:6px 0 2px;font-size:12px}.crew-ranking li{min-height:55px}.crew-ranking-name{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;height:42px}.crew-ranking-name strong{max-width:100%}.crew-ranking-name small{z-index:1;max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.35;position:relative;overflow:hidden}.crew-ranking-name i{bottom:0}.enrichment-status{border-top:1px solid var(--line);grid-template-columns:230px minmax(0,700px);gap:30px;margin-top:28px;padding:22px 0 0;display:grid}.enrichment-status h2{margin:0;font-size:18px}.enrichment-status p{color:var(--muted);margin:0;font-size:12px}.flight-toolbar{grid-template-columns:minmax(250px,1fr) repeat(4,minmax(112px,138px)) auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.flight-toolbar select,.flight-form select,.flight-form input,.flight-form textarea{width:100%;color:var(--text);background:#0d0d1c;border:1px solid #343449;border-radius:8px}.flight-toolbar select{height:40px;padding:0 12px;font-size:12px}.search-field{height:40px;color:var(--muted);background:#0d0d1c;border:1px solid #343449;border-radius:8px;align-items:center;gap:9px;padding:0 12px;display:flex}.search-field input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:12px}.search-field input::placeholder{color:#706e83}.export-actions{justify-self:end;gap:6px;display:flex}.export-actions a{color:#c4c1ce;border:1px solid #343449;border-radius:8px;align-items:center;gap:6px;height:40px;padding:0 11px;font-size:11px;display:inline-flex}.export-actions a:hover{color:#bcb5e5;border-color:#666187}.result-count{color:var(--muted);margin:14px 0 8px;font-size:10px}.flight-table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#0e0e1d99;overflow:auto}.flight-log-table{border-collapse:collapse;width:100%;min-width:1360px;font-size:11px}.flight-log-table th{height:42px;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);z-index:1;background:#0d0d1c;padding:0 14px;font-weight:500;position:sticky;top:0}.flight-log-table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;min-height:48px;padding:10px 14px}.flight-log-table tbody tr:last-child td{border-bottom:0}.flight-log-table tbody tr{transition:background .14s}.flight-log-table tbody tr:hover{background:#8f86cf0e}.flight-log-table a:hover{color:var(--accent)}.registration-edit-link{color:#aaa7b7;align-items:center;gap:5px;display:inline-flex}.registration-edit-link svg{opacity:0;transition:opacity .14s,transform .14s;transform:translate(-2px)}.registration-edit-link:hover svg,.registration-edit-link:focus-visible svg{opacity:1;transform:translate(0)}.registration-edit-link.registration-missing{color:#e6bd73}.registration-edit-link.registration-missing svg{opacity:.75}.row-action-cell{text-align:right;width:84px;min-width:84px}.row-edit-link{color:#b8b5c2;white-space:nowrap;background:#0f0f1fb8;border:1px solid #343449;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-height:28px;padding:0 9px;display:inline-flex}.row-edit-link:hover,.row-edit-link:focus-visible{color:#bcb5e5;background:#8f86cf17;border-color:#666187}.route-cell{min-width:220px}.route-code-sequence{white-space:nowrap;align-items:center;gap:7px;display:flex}.route-code-sequence i{color:var(--muted);font-style:normal}.route-stopovers{color:#aaa5cb;font-size:10px}.route-cell small{color:var(--muted);margin-top:3px;font-size:9px;display:block}.time-cell{font-family:var(--mono);white-space:nowrap}.time-cell span{color:var(--muted);margin-inline:5px}.muted-cell{color:#828095}.table-cabin{color:var(--muted);margin-top:2px;font-size:9px;display:block}.airline-cell{align-items:center;gap:9px;min-width:152px;display:flex}.airline-cell>span:last-child{min-width:0}.airline-logo{color:#25233a;background:#f7f7fb;border:1px solid #323147;border-radius:8px;flex:none;place-items:center;display:grid;overflow:hidden}.airline-logo img{object-fit:contain;width:78%;height:78%}.airline-logo>span{font-family:var(--mono);letter-spacing:-.02em;font-size:9px;font-weight:800}.aircraft-cell{align-items:center;gap:9px;min-width:205px;display:flex}.aircraft-cell>span:last-child{color:#cbc8d2;max-width:126px;line-height:1.3}.aircraft-image{color:#6f6b84;background:#0a1020;border:1px solid #302f43;border-radius:9px;place-items:center;display:grid;position:relative;overflow:hidden}.aircraft-image:not(.aircraft-image-compact){aspect-ratio:16/7;width:100%;min-height:220px}.aircraft-image-compact{border-radius:7px;flex:none;width:68px;height:42px}.aircraft-image img{object-fit:cover}.status-text{white-space:nowrap}.status-flown{color:var(--accent)}.status-planned{color:var(--amber)}.flight-form{border:1px solid var(--line);background:#0e0e1dad;border-radius:14px;max-width:1120px;margin:0 auto;padding:0 28px;box-shadow:0 30px 90px #00000029}.form-section{border-bottom:1px solid var(--line);padding:28px 0 30px}.form-section>header{justify-content:space-between;align-items:flex-start;min-height:46px;margin-bottom:20px;display:flex}.form-section>header h2{letter-spacing:-.02em;margin:0;font-size:19px}.form-section>header p{color:var(--muted);margin:5px 0 0;font-size:10px}.form-section>header>span{color:#5f5d75;font-family:var(--mono);font-size:11px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}.form-grid label{color:#cac7d1;gap:7px;font-size:11px;display:grid}.form-grid label>span b,.combobox-field label>span b{color:var(--accent);font-weight:500}.form-grid .span-two{grid-column:1/-1}.flight-form input,.flight-form select{min-height:43px;padding:0 12px}.flight-form textarea{resize:vertical;padding:12px;line-height:1.6}.flight-form input::placeholder,.flight-form textarea::placeholder{color:#6d6a80}.flight-form input[aria-invalid=true],.flight-form .field-invalid{border-color:#ff776fcc;box-shadow:0 0 0 2px #ff776f14}.field-error{color:#ff9d96;margin:0;font-size:10px}.form-message{color:#ffc1bc;background:#ff776f14;border:1px solid #ff776f6b;border-radius:8px;margin:20px 0 0;padding:11px 13px;font-size:11px}.form-message-info,.form-message-success{color:#ada2e8;background:#6f5bcb1a;border-color:#8f7fdc6b}.form-message-success{color:#a8d5b0;background:#53a56e1a;border-color:#79c49166}.form-actions{justify-content:flex-end;align-items:center;gap:18px;padding:22px 0 26px;display:flex}.form-actions a{color:var(--muted);font-size:12px}.form-actions button{color:#fff;cursor:pointer;background:#7169ad;border:0;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-weight:700;display:inline-flex}.form-actions button:hover:not(:disabled){background:#7e75bd}.form-actions button:disabled{opacity:.62;cursor:wait}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.combobox-field{min-width:0;position:relative}.combobox-field>label{color:#cac7d1;gap:7px;font-size:11px;display:grid}.combobox-input{color:#77748b;background:#0d0d1c;border:1px solid #343449;border-radius:8px;align-items:center;gap:9px;height:43px;padding:0 11px;display:flex}.combobox-input:focus-within{border-color:#68628a}.combobox-input>input{background:0 0;border:0;outline:0;flex:1;width:auto;min-width:0;min-height:0;padding:0}.combobox-input>input:focus-visible{outline:0}.combobox-clear{color:#77748b;cursor:pointer;background:0 0;border:0;place-items:center;width:25px;height:25px;padding:0;display:grid}.combobox-menu{z-index:20;background:#111123;border:1px solid #3c3b52;border-radius:10px;max-height:330px;padding:5px;position:absolute;top:69px;left:0;right:0;overflow-y:auto;box-shadow:0 24px 60px #0000006b}.combobox-menu>button{text-align:left;width:100%;min-height:50px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:7px;gap:2px;padding:8px 10px;display:grid}.combobox-menu>button:hover,.combobox-menu>button.active{background:#8f86cf1a}.combobox-menu>button strong{font-size:11px;font-weight:580}.combobox-menu>button span{color:var(--muted);font-size:9px}.combobox-menu>p{color:var(--muted);margin:8px 10px;font-size:10px}.combobox-menu>.combobox-create{border-top:1px solid var(--line-soft);min-height:40px;color:var(--accent);border-radius:0 0 7px 7px;align-items:center;gap:7px;display:flex}.inline-create-link{color:#9b96b2;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-top:6px;padding:0;font-size:10px;display:inline-flex}.inline-create-link:hover{color:var(--accent)}.inline-create-panel{background:#8f86cf0a;border:1px dashed #4b4868;border-radius:9px;margin-top:12px;padding:16px}.inline-create-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.inline-create-heading strong{font-size:11px}.inline-create-heading button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:10px}.inline-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inline-create-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.route-logic-hint{border:1px solid var(--line-soft);color:#8d899b;background:#0a0a187a;border-radius:8px;margin:-5px 0 0;padding:11px 13px;font-size:10px;line-height:1.55}.stopover-editor{background:#0a0a1894;border:1px solid #3b3951;border-radius:10px;padding:17px}.stopover-editor-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;display:flex}.stopover-editor-heading>div{gap:4px;display:grid}.stopover-editor-heading strong{font-size:12px}.stopover-editor-heading small{color:var(--muted);font-size:9px;line-height:1.45}.stopover-editor-heading button{color:#bbb6d5;cursor:pointer;background:0 0;border:1px solid #494662;border-radius:7px;align-items:center;gap:6px;min-height:34px;padding:0 11px;font-size:10px;display:inline-flex}.stopover-editor-heading button:hover:not(:disabled){color:#d2cdf0;border-color:#68628a}.stopover-editor-heading button:disabled{opacity:.45;cursor:not-allowed}.stopover-list{gap:11px;display:grid}.stopover-row{border:1px solid var(--line-soft);background:#08081394;border-radius:9px;grid-template-columns:28px minmax(220px,1.4fr) repeat(3,minmax(108px,.55fr)) 36px;align-items:end;gap:10px;padding:12px;display:grid}.stopover-order{color:#77728f;font-family:var(--mono);align-self:center;font-size:9px}.stopover-row>label{color:#cac7d1;gap:7px;font-size:10px;display:grid}.stopover-remove{color:#8d889c;cursor:pointer;background:0 0;border:1px solid #403c50;border-radius:8px;place-items:center;width:36px;height:43px;padding:0;display:grid}.stopover-remove:hover{color:#ff9d96;border-color:#ff776f73}.photo-upload{background:#09091380;border:1px dashed #46445d;border-radius:9px;padding:16px}.photo-upload>span{color:var(--accent);align-items:center;gap:7px;display:inline-flex}.photo-upload input{background:0 0;border:0;min-height:auto;padding:7px 0}.photo-upload small{color:var(--muted);font-size:9px}.existing-photos{border:0;margin:0;padding:0}.existing-photos legend{color:#cac7d1;margin-bottom:8px;font-size:11px}.photo-edit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.photo-edit-grid label{aspect-ratio:4/3;border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden}.photo-edit-grid img{object-fit:cover;width:100%;height:100%}.photo-edit-grid label>span{color:#e0e6e8;background:#030a10d1;border-radius:5px;align-items:center;gap:5px;padding:5px 7px;font-size:9px;display:flex;position:absolute;bottom:6px;left:6px}.photo-edit-grid input{width:13px;min-height:13px;margin:0}.existing-single-photo{border:0;margin:0;padding:0}.existing-single-photo legend{color:#cac7d1;margin-bottom:8px;font-size:11px}.existing-single-photo>label{aspect-ratio:16/9;border:1px solid var(--line);border-radius:9px;width:min(310px,100%);position:relative;overflow:hidden}.existing-single-photo img{object-fit:cover}.existing-single-photo label>span{color:#e0dfea;background:#03030cd6;border-radius:5px;align-items:center;gap:6px;padding:6px 8px;font-size:9px;display:flex;position:absolute;bottom:7px;left:7px}.existing-single-photo input{width:13px;min-height:13px;margin:0}.form-technical-section{padding-bottom:0}.form-technical-section>summary{cursor:pointer;grid-template-columns:1fr auto auto;align-items:center;gap:14px;min-height:82px;list-style:none;display:grid}.form-technical-section>summary::-webkit-details-marker{display:none}.form-technical-section>summary>div{color:#8d87c2;align-items:flex-start;gap:10px;display:flex}.form-technical-section>summary h2{color:var(--text);letter-spacing:-.02em;margin:0;font-size:19px}.form-technical-section>summary p{color:var(--muted);margin:5px 0 0;font-size:10px}.form-technical-section>summary>span{color:#5f5d75;font-family:var(--mono);font-size:11px}.form-technical-section>summary>svg{color:#6e6a82;transition:transform .18s}.form-technical-section[open]>summary>svg{transform:rotate(180deg)}.technical-form-content{gap:24px;padding:0 0 30px;display:grid}.technical-form-group{border:1px solid var(--line-soft);background:#08081461;border-radius:10px;padding:20px}.technical-form-group>header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:17px;display:flex}.technical-form-group h3{letter-spacing:-.01em;margin:0;font-size:13px}.technical-form-group>header>span{color:var(--muted);font-size:9px}.technical-ground-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid-single{grid-template-columns:1fr}.speed-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.crew-signature-editor{gap:10px;display:grid}.crew-signature-row{grid-template-columns:32px minmax(120px,.55fr) minmax(180px,1fr) 36px;align-items:end;gap:10px;display:grid}.crew-signature-row>span{color:#666278;font-family:var(--mono);align-self:center;font-size:9px}.crew-signature-row label{color:#cac7d1;gap:7px;font-size:10px;display:grid}.crew-signature-row button{color:#8d889c;cursor:pointer;background:0 0;border:1px solid #403c50;border-radius:8px;place-items:center;width:36px;height:43px;padding:0;display:grid}.crew-signature-row button:hover{color:#ff9d96;border-color:#ff776f73}.add-signature-button{color:#aaa5bd;cursor:pointer;background:0 0;border:1px solid #403d55;border-radius:7px;align-items:center;gap:7px;width:fit-content;min-height:36px;padding:0 12px;font-size:10px;display:inline-flex}.add-signature-button:hover:not(:disabled){color:#d3cfee;border-color:#625d82}.add-signature-button:disabled{opacity:.45;cursor:not-allowed}.detail-topbar{justify-content:space-between;align-items:flex-start;gap:18px;min-height:42px;display:flex}.back-link{color:var(--muted);align-items:center;gap:7px;margin-bottom:24px;font-size:11px;display:inline-flex}.back-link:hover{color:var(--accent)}.detail-actions{align-items:center;gap:8px;display:flex}.secondary-action,.danger-action{color:#c8c5cf;cursor:pointer;background:#101020;border:1px solid #3b3a50;border-radius:7px;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-size:10px;display:inline-flex}.secondary-action:hover{color:#c9c4eb;border-color:#625d82}.danger-action{color:#ffaba5;background:#ff776f0d;border-color:#ff776f59}.danger-action:hover{border-color:#ff776fbf}.archive-edit-heading{border-bottom:1px solid var(--line);max-width:1120px;margin:2px auto 22px;padding-bottom:20px}.archive-edit-heading>span{color:#8e89a4;text-transform:uppercase;letter-spacing:.16em;font-size:9px}.archive-edit-heading h1{letter-spacing:-.045em;margin:7px 0 5px;font-size:clamp(28px,4vw,46px)}.archive-edit-heading p{color:var(--muted);margin:0;font-size:11px}.flight-form-archive{box-shadow:none}.boarding-pass{background:#0e0e1e;border:1px solid #35344a;border-radius:12px;grid-template-columns:minmax(0,1fr) 286px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 70px #00000038}.boarding-pass-main{min-width:0;padding:25px 28px 0;position:relative}.boarding-pass-header{justify-content:space-between;align-items:center;gap:18px;display:flex}.boarding-airline{align-items:center;gap:11px;min-width:0;display:flex}.boarding-airline>span{gap:3px;display:grid}.boarding-airline b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.boarding-airline small{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:8px}.boarding-pass-header>div:last-child{color:var(--muted);font-family:var(--mono);align-items:center;gap:13px;font-size:10px;display:flex}.ticket-status{font-family:var(--sans);border:1px solid #3d3b52;border-radius:5px;padding:5px 7px;font-size:9px}.ticket-status.status-flown{color:#bcb5e5}.ticket-status.status-planned{color:var(--amber)}.ticket-status.status-cancelled{color:#ff9d96}.boarding-route-stage{position:relative}.boarding-route-atmosphere{z-index:0;opacity:.28;pointer-events:none;position:absolute;inset:12px 7% 3px;overflow:hidden}.boarding-route-atmosphere svg{fill:none;stroke:#716ba2;stroke-width:.7px;vector-effect:non-scaling-stroke;width:100%;height:100%}.boarding-route-atmosphere path:last-child{stroke:#9c8be0;stroke-dasharray:3 6;opacity:.78}.boarding-route{z-index:1;grid-template-columns:minmax(130px,auto) minmax(80px,1fr) minmax(130px,auto);align-items:center;gap:24px;padding:31px 0 20px;display:grid;position:relative}.boarding-route>div:not(.boarding-route-line){gap:4px;min-width:0;display:grid}.boarding-route>div:last-child{text-align:right}.boarding-route strong{font-family:var(--mono);letter-spacing:-.055em;font-size:clamp(45px,6vw,82px);font-weight:750;line-height:.84}.boarding-route span{color:#dddbe3;margin-top:8px;font-size:12px}.boarding-route small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.boarding-route-line{color:#9089c6;align-items:center;gap:10px;min-height:50px;display:flex;position:relative}.boarding-route-line i{z-index:1;background:#4b486c;flex:1;height:1px;position:relative}.boarding-route-line:before{content:"";z-index:0;border-top:1px solid #9281d68a;border-radius:50%;height:19px;position:absolute;top:6px;left:10%;right:10%;transform:rotate(-4deg)}.boarding-route-line:after{content:"";z-index:0;border-top:1px dashed #7369aa73;border-radius:50%;height:9px;position:absolute;top:16px;left:18%;right:26%;transform:rotate(-4deg)}.boarding-route-plane{z-index:2;filter:drop-shadow(0 2px 5px #8268d959);position:relative;transform:rotate(7deg)}.ticket-status-stamp{z-index:3;letter-spacing:.08em;background:#0e0e1eb8;border-width:1px;border-radius:3px;padding:4px 7px;font-size:8px;position:absolute;top:29px;left:50%;transform:translate(-50%)rotate(-12deg);box-shadow:0 4px 12px #00000029}.ticket-status-stamp.status-flown{color:#c9bee9;border-color:#a794e3a6}.ticket-status-stamp.status-planned{border-color:#e1b159a6}.ticket-status-stamp.status-cancelled{border-color:#ff918ba6}.boarding-stopover-strip{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);gap:10px;margin:0 0 22px;padding:13px 0;list-style:none;display:flex;overflow-x:auto}.boarding-stopover-strip li{border-left:1px solid var(--line-soft);gap:3px;min-width:150px;padding:0 14px;display:grid}.boarding-stopover-strip li:first-child{border-left:0;padding-left:0}.boarding-stopover-strip span{color:#817baa;letter-spacing:.08em;text-transform:uppercase;font-size:8px}.boarding-stopover-strip strong{font-family:var(--mono);font-size:19px}.boarding-stopover-strip small{color:#aaa6b6;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.boarding-stopover-strip em{color:var(--muted);font-family:var(--mono);margin-top:2px;font-size:8px;font-style:normal}.boarding-facts{border-top:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));display:grid;position:relative}.boarding-facts>div{border-left:1px solid var(--line-soft);align-content:center;gap:5px;min-height:86px;padding:17px 13px;display:grid}.boarding-facts>div:first-child{border-left:0;padding-left:0}.boarding-facts span,.boarding-pass-stub span,.boarding-pass-stub dt{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:8px}.boarding-facts strong{font-variant-numeric:tabular-nums;font-size:12px;font-weight:620}.boarding-facts small{color:#8d899b;font-size:8px}.boarding-pass-stub{background:#0b0b19;border-left:1px dashed #46445c;flex-direction:column;gap:22px;padding:25px 22px 20px;display:flex;position:relative}.boarding-pass-stub:before,.boarding-pass-stub:after{content:"";background:var(--bg);border:1px solid #35344a;border-radius:50%;width:16px;height:16px;position:absolute;left:-9px}.boarding-pass-stub:before{top:-9px}.boarding-pass-stub:after{bottom:-9px}.boarding-pass-stub>div{gap:5px;display:grid}.boarding-pass-stub>div>strong{letter-spacing:.03em;font-size:14px}.boarding-pass-stub .stub-flight strong{font-family:var(--mono);letter-spacing:-.05em;font-size:clamp(30px,4vw,48px);line-height:.95}.boarding-pass-stub dl{gap:12px;margin:0;display:grid}.boarding-pass-stub dl>div{gap:4px;display:grid}.boarding-pass-stub dd{color:#cbc8d2;margin:0;font-size:10px;line-height:1.35}.ticket-qr{justify-items:start;gap:7px;margin-top:auto;display:grid}.ticket-qr-frame{background:#f0f3f6;border:1px solid #c4bedd3d;border-radius:10px;width:min(148px,100%);padding:8px;overflow:hidden;box-shadow:0 8px 22px #00000026}.ticket-qr-frame img{width:100%;height:auto;image-rendering:pixelated;display:block}.ticket-qr>span{color:#a8a4b4;letter-spacing:.08em;text-transform:uppercase;font-size:8px;line-height:1.4}.aircraft-profile-section{border:1px solid var(--line);background:#0e0e1dad;border-radius:12px;grid-template-columns:minmax(360px,.85fr) minmax(260px,1.15fr);align-items:stretch;margin-top:30px;display:grid;overflow:hidden}.aircraft-profile-section>div{align-content:center;padding:28px 32px;display:grid}.aircraft-profile-section>div>span{color:var(--accent-soft);text-transform:uppercase;letter-spacing:.12em;font-size:10px}.aircraft-profile-section h2{letter-spacing:-.03em;margin:8px 0 5px;font-size:clamp(22px,3vw,36px)}.aircraft-profile-section p{color:var(--muted);margin:0;font-size:11px}.aircraft-profile-section .aircraft-image{border:0;border-right:1px solid var(--line);border-radius:0;min-height:220px}.aircraft-owned-photo{border-right:1px solid var(--line);background:#090916;min-height:220px;margin:0;position:relative;overflow:hidden}.aircraft-owned-photo img{object-fit:cover}.flight-archive-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:.82fr 1.18fr;margin-top:30px;display:grid}.archive-section{min-height:270px;padding:27px 30px 30px}.archive-section+.archive-section{border-left:1px solid var(--line)}.archive-section>header{margin-bottom:24px}.archive-section>header>div{color:#8d87c2;align-items:flex-start;gap:10px;display:flex}.archive-section>header span{gap:3px;display:grid}.archive-section h2{color:var(--text);margin:0;font-size:17px}.archive-section header p{color:var(--muted);margin:0;font-size:9px}.archive-empty{color:var(--muted);margin:0;font-size:11px}.crew-details dl{grid-template-columns:repeat(2,1fr);gap:14px;margin:0;display:grid}.crew-details dl>div{gap:6px;display:grid}.crew-details dt{color:var(--muted);font-size:9px}.crew-details dd{color:#d5d2dc;margin:0;font-size:12px}.crew-details blockquote{border-top:1px solid var(--line-soft);color:#817baa;align-items:flex-start;gap:10px;margin:25px 0 0;padding:16px 0 0;display:flex}.crew-details blockquote p{color:#bbb7c7;margin:0;font-size:11px;line-height:1.7}.detail-rating{align-items:center;gap:12px;display:flex}.detail-rating>div{color:#4c4a5c;gap:4px;display:flex}.detail-rating svg.selected{color:#9b93d0}.detail-rating>span{color:var(--muted);font-family:var(--mono);font-size:9px}.experience-copy{color:#c5c2cc;white-space:pre-wrap;margin:22px 0 0;font-size:12px;line-height:1.85}.technical-archive{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px;overflow:hidden}.technical-archive>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:0 4px;list-style:none;display:flex}.technical-archive>summary::-webkit-details-marker{display:none}.technical-archive>summary>div{color:#8d87c2;align-items:flex-start;gap:10px;display:flex}.technical-archive>summary span{gap:3px;display:grid}.technical-archive>summary h2{color:var(--text);margin:0;font-size:17px}.technical-archive>summary p{color:var(--muted);margin:0;font-size:9px}.technical-archive>summary>svg{color:#706c84;transition:transform .18s}.technical-archive[open]>summary>svg{transform:rotate(180deg)}.technical-archive-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:5px 4px 30px;display:grid}.technical-archive-content>section{border:1px solid var(--line-soft);background:#0b0b1985;border-radius:9px;padding:22px}.technical-archive-content>.archive-empty{grid-column:1/-1;padding:4px 0 20px}.technical-archive-content h3{color:#aaa5c5;letter-spacing:.08em;text-transform:uppercase;margin:0 0 17px;font-size:10px;font-weight:650}.technical-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin:0;display:grid}.technical-facts>div{gap:5px;display:grid}.technical-facts dt{color:var(--muted);font-size:8px}.technical-facts dd{color:#d0cdd8;font-family:var(--mono);margin:0;font-size:11px;line-height:1.45}.crew-signature-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.crew-signature-list li{border:1px solid #302e40;border-radius:7px;justify-content:space-between;align-items:center;gap:16px;min-height:42px;padding:0 11px;display:flex}.crew-signature-list span{color:#85809a;font-family:var(--mono);font-size:9px}.crew-signature-list strong{color:#d6d3dd;font-size:11px;font-weight:600}.technical-notes{color:#c5c2cc;white-space:pre-wrap;margin:0;font-size:11px;line-height:1.8}.technical-record-section{grid-column:1/-1}.technical-record-section figure{background:#080814;border:1px solid #2d2b3d;border-radius:8px;min-height:360px;margin:0;position:relative;overflow:hidden}.technical-record-section img{object-fit:contain}.technical-record-section figcaption{color:#bdb9c8;text-overflow:ellipsis;text-shadow:0 1px 8px #000;white-space:nowrap;max-width:calc(100% - 20px);font-size:8px;position:absolute;bottom:9px;left:10px;overflow:hidden}.rating-field{color:#cac7d1;gap:8px;font-size:11px;display:grid}.rating-stars{align-items:center;gap:4px;min-height:43px;display:flex}.rating-stars button{color:#565365;cursor:pointer;background:0 0;border:0;place-items:center;width:31px;height:31px;padding:0;display:grid}.rating-stars button:hover,.rating-stars button.selected{color:#9b93d0}.rating-stars small{color:var(--muted);margin-left:7px;font-size:9px}.photo-wall-section{padding-top:36px}.photo-wall-section>div:first-child{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:12px;display:flex}.photo-wall-section h2{margin:0;font-size:18px}.photo-wall-section>div:first-child span{color:var(--muted);font-size:10px}.photo-wall{columns:3;column-gap:9px}.photo-wall figure{break-inside:avoid;border:1px solid var(--line);background:var(--surface-deep);vertical-align:top;border-radius:10px;width:100%;margin:0 0 9px;display:inline-block;position:relative;overflow:hidden}.photo-wall img{width:100%;height:auto;transition:transform .26s;display:block}.photo-wall figure:hover img{transform:scale(1.025)}.photo-wall figcaption{color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 8px #000;font-size:9px;position:absolute;bottom:8px;left:10px;right:10px;overflow:hidden}.empty-photo-wall{color:#7d7a90;border:1px dashed #3d3b52;border-radius:10px;align-content:center;place-items:center;gap:5px;min-height:150px;display:grid}.empty-photo-wall span{color:#c5c2cc;font-size:12px}.empty-photo-wall small{font-size:9px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:1180px){.site-header{grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr)}.brand-copy>span{display:none}.main-nav{justify-content:center}.main-nav a{min-width:76px}.summary-rail{grid-template-columns:minmax(250px,1.15fr) repeat(4,minmax(125px,.7fr))}.summary-stat{padding-inline:18px}.dashboard-lower-grid{grid-template-columns:1fr .8fr}.recent-panel{grid-column:1/-1}}@media (max-width:820px){.site-header{grid-template-columns:1fr auto;grid-template-areas:"brand action""nav nav";height:auto;min-height:62px;padding:12px 18px 0}.brand{grid-area:brand}.header-actions{grid-area:action}.primary-action{min-height:34px;padding-inline:12px}.language-switch{min-height:34px}.main-nav{grid-area:nav;justify-content:flex-start;width:100%;height:42px;overflow-x:auto}.main-nav a{flex:none;min-width:82px}.page{padding:24px 16px 40px}.summary-rail{grid-template-columns:repeat(2,1fr);gap:0}.summary-title{grid-column:1/-1;padding:0 0 20px}.summary-title h1{font-size:34px}.summary-stat{border-left:0;border-top:1px solid var(--line);min-height:82px;padding:14px 8px}.summary-stat:nth-of-type(2n){border-left:1px solid var(--line)}.summary-stat strong{font-size:36px}.summary-stat.range-stat strong{font-size:25px}.map-panel,.map-panel-compact{min-height:340px}.map-page .map-panel{min-height:390px}.map-panel-compact .flight-map{min-height:340px}.map-panel-header{padding:13px 14px}.map-panel-header p,.map-legend{display:none}.map-year-tabs{top:56px;left:12px;right:12px}.map-year-tabs button{height:28px}.map-zoom-controls{top:96px;left:12px}.selected-route-card{width:calc(100% - 82px);bottom:16px;left:66px}.dashboard-lower-grid{grid-template-columns:1fr}.recent-panel{grid-column:auto}.trend-chart{height:230px}.distance-note{flex-direction:column;align-items:flex-start;gap:4px}.rankings-grid{grid-template-columns:1fr}.enrichment-status{grid-template-columns:1fr;gap:8px}.flight-toolbar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.export-actions{justify-self:stretch}.flight-toolbar .export-actions{grid-column:1/-1}.export-actions a{flex:1;justify-content:center}.form-grid{grid-template-columns:1fr}.form-grid .span-two{grid-column:auto}.flight-form{padding:0 18px}.inline-create-grid,.inline-create-grid-three{grid-template-columns:1fr}.stopover-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 36px}.stopover-row .combobox-field,.stopover-row>label:last-of-type{grid-column:2/4}.stopover-remove{grid-area:1/4/span 3;align-self:center}.technical-ground-grid{grid-template-columns:1fr}.speed-grid,.photo-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.boarding-pass{grid-template-columns:1fr}.boarding-pass-main{padding-inline:20px}.boarding-pass-stub{border-top:1px dashed #46445c;border-left:0;grid-template-columns:repeat(3,1fr);align-items:end;display:grid}.boarding-pass-stub:before,.boarding-pass-stub:after{top:-9px;bottom:auto}.boarding-pass-stub:before{left:-9px}.boarding-pass-stub:after{left:auto;right:-9px}.ticket-qr{grid-column:1/-1;justify-items:center}.ticket-qr>small{max-width:min(240px,100%)}.boarding-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.boarding-facts>div:nth-child(4){border-left:0}.boarding-facts>div:first-child{padding-left:13px}.aircraft-profile-section{grid-template-columns:1fr}.aircraft-profile-section .aircraft-image,.aircraft-owned-photo{border-right:0;border-bottom:1px solid var(--line)}.flight-archive-grid{grid-template-columns:1fr}.archive-section+.archive-section{border-top:1px solid var(--line);border-left:0}.photo-wall{columns:2}.technical-archive-content{grid-template-columns:1fr}.technical-record-section{grid-column:auto}.journey-hero{min-height:540px}.journey-hero-copy,:lang(en) .journey-hero-copy,:lang(zh) .journey-hero-copy{width:min(650px,70%)}.journey-stats div{padding-inline:18px}.public-flight-grid{grid-template-columns:repeat(2,1fr)}.guestbook-layout{grid-template-columns:1fr}.guestbook-form{position:static}.guestbook-wall{max-height:520px}}@media (max-width:480px){.brand-copy>span{display:none}.brand strong{font-size:16px}.primary-action{font-size:12px}.primary-action svg,.admin-action{display:none}.public-home{padding-top:12px}.journey-hero{border-radius:13px;min-height:630px}.journey-hero-copy,:lang(en) .journey-hero-copy,:lang(zh) .journey-hero-copy{width:100%;padding:45px 25px 185px}.journey-hero h1{max-width:9.5em;font-size:47px;line-height:1.13}:lang(en) .journey-hero h1{max-width:100%;font-size:clamp(36px,10vw,44px);line-height:1.06}:lang(zh) .journey-hero h1{max-width:9.5em;line-height:1.13}.journey-hero h1>span{white-space:normal}.journey-hero-copy>p{font-size:13px}.journey-instagram-link{margin-top:17px;font-size:10px}.journey-hero-art{opacity:.6;background-position:63%}.journey-stats{grid-template-columns:1fr 1fr}.journey-stats div{border-top:1px solid #9890cb29;min-height:80px;padding:15px 20px}.journey-stats div:nth-child(odd){border-left:0}.journey-stats div:nth-child(-n+2){border-top:0}.journey-stats dd{font-size:27px}.journey-intro-band{flex-direction:column;align-items:flex-start;gap:8px;padding-block:18px}.public-flight-section{padding-top:43px}.public-flight-grid{grid-template-columns:1fr}.public-flight-card{min-height:105px}.admin-gate{padding:27px 22px}.language-switch{padding-inline:9px}.summary-title p{max-width:290px}.map-panel-header h2{font-size:16px}.recent-table th:last-child,.recent-table td:last-child{display:none}.detail-topbar{flex-direction:column;align-items:stretch}.detail-actions{justify-content:stretch}.detail-actions>*,.detail-actions form{flex:1}.detail-actions .secondary-action,.detail-actions button{justify-content:center;width:100%}.boarding-pass-main{padding:20px 15px 0}.boarding-pass-header{align-items:flex-start}.boarding-pass-header>div:last-child{flex-direction:column;align-items:flex-end;gap:6px}.boarding-route{grid-template-columns:minmax(76px,auto) minmax(40px,1fr) minmax(76px,auto);gap:9px;padding:30px 0 24px}.boarding-route strong{font-size:44px}.boarding-route span{font-size:10px}.boarding-route-line{gap:5px}.boarding-stopover-strip{margin-bottom:12px}.boarding-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.boarding-facts>div,.boarding-facts>div:nth-child(4){border-top:1px solid var(--line-soft)}.boarding-facts>div:nth-child(odd){border-left:0}.boarding-facts>div:nth-child(-n+2){border-top:0}.boarding-pass-stub{grid-template-columns:1fr 1fr}.boarding-pass-stub dl{grid-column:1/-1;grid-template-columns:1fr 1fr}.archive-section{padding-inline:18px}.technical-form-group{padding:16px}.crew-signature-row{grid-template-columns:24px 1fr 36px}.crew-signature-row label:nth-of-type(2){grid-column:2/3}.crew-signature-row button{grid-area:1/3/span 2;align-self:center}.technical-facts{grid-template-columns:1fr}.technical-record-section figure{min-height:240px}.photo-wall{columns:1}.stopover-editor{padding:13px}.stopover-editor-heading{flex-direction:column;align-items:stretch}.stopover-editor-heading button{justify-content:center}.stopover-row{grid-template-columns:24px minmax(0,1fr) 36px}.stopover-row .combobox-field,.stopover-row>label,.stopover-row>label:last-of-type{grid-column:2}.stopover-remove{grid-area:1/3/span 4}}
