/* Preflight — page styles for launch.html / contribute.html on top of preflight.css */
.pf-banner{background:#f8988c;color:#2a0d0a;font-size:12px;text-align:center;padding:8px 16px}
.pf-page{max-width:1120px;margin:40px auto 0;padding:0 12px;position:relative;z-index:20}
.pf-page-head{margin-bottom:34px}
.pf-page-head h1{font-size:40px;font-weight:600;letter-spacing:-1px;line-height:1.05}
.pf-page-head p{font-size:14px;color:rgb(var(--accent-50));margin-top:12px;max-width:560px;line-height:1.7}
.pf-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
.pf-card{border-radius:16px;padding:28px 32px;background:rgb(var(--accent-0))}
.pf-card h2{font-size:18px;font-weight:600;margin-bottom:6px}
.pf-card>p{font-size:12px;color:rgb(var(--accent-50));line-height:1.7;margin-bottom:18px}
.pf-form label{display:block;font-size:12px;color:rgb(var(--accent-50));margin:18px 0 8px}
.pf-form input,.pf-form select,.pf-form textarea{width:100%;border:1px solid rgb(var(--accent-30));border-radius:10px;background:rgb(var(--background));color:rgb(var(--foreground));padding:13px 15px;font-size:14px;outline:none}
.pf-form textarea{min-height:84px;resize:vertical;font-family:inherit}
.pf-form input:focus,.pf-form select:focus,.pf-form textarea:focus{border-color:rgb(var(--primary))}
.pf-form .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pf-form select option{background:rgb(var(--accent-0));color:rgb(var(--foreground))}
.raise-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.raise-opt{border:1px solid rgb(var(--accent-30));border-radius:14px;padding:18px 16px;text-align:left;transition:.15s;background:rgb(var(--background))}
.raise-opt:hover{border-color:rgb(var(--accent-50))}
.raise-opt.active{border-color:rgb(var(--primary));box-shadow:0 0 0 1px rgb(var(--primary)) inset}
.raise-opt strong{display:block;font-size:24px;font-weight:600;letter-spacing:-.5px}
.raise-opt small{display:block;font-size:10px;color:rgb(var(--accent-50));margin-top:6px;line-height:1.5}
.raise-opt .tag{display:inline-block;font-size:9px;letter-spacing:1px;color:rgb(var(--primary));margin-bottom:8px}
.ca-box{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px dashed rgb(var(--accent-30));border-radius:10px;padding:12px 14px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;margin-top:8px;word-break:break-all}
.ca-box button{font-size:11px;color:rgb(var(--primary));white-space:nowrap}
.ca-box b{color:rgb(var(--primary));font-weight:600}
.terms{margin:4px 0 0;display:grid;gap:12px;font-size:12px}
.terms>div{display:flex;justify-content:space-between;gap:16px;color:rgb(var(--accent-50));padding-bottom:12px;border-bottom:1px solid rgb(var(--accent-20))}
.terms>div:last-child{border:0}
.terms b{font-weight:500;color:rgb(var(--foreground));text-align:right}
.pf-primary:disabled{opacity:.45;cursor:not-allowed}
.pf-secondary{border-radius:999px;border:1px solid rgb(var(--accent-30));color:rgb(var(--foreground));font-size:13px;font-weight:500;padding:12px 22px;width:100%;transition:.2s}
.pf-secondary:hover{border-color:rgb(var(--primary));color:rgb(var(--primary))}
.pf-secondary:disabled{opacity:.45;cursor:not-allowed}
.btn-row{display:grid;gap:10px;margin-top:18px}
.status-pill{display:inline-flex;align-items:center;gap:7px;font-size:10px;letter-spacing:1px;padding:6px 12px;border-radius:99px;background:rgb(var(--accent-10));color:rgb(var(--accent-50));text-transform:uppercase}
.status-pill.Open{color:#73caa0}.status-pill.Open:before{content:'';width:5px;height:5px;border-radius:50%;background:#73caa0}
.status-pill.Filled{color:#e3b778}.status-pill.Migrated{color:#7bbdff}.status-pill.Failed{color:#f8988c}
.vault-progress i{width:0}
.vault-logo{width:52px;height:52px;border-radius:50%;object-fit:cover;background:linear-gradient(145deg,#7bbdff,#275cf6 55%,#152e91);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;font-style:italic;color:#fff}
.vault-identity{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.vault-identity h2{font-size:22px;margin:0}
.vault-identity p{font-size:11px;color:rgb(var(--accent-50));margin-top:4px}
.vault-identity .status-pill{margin-left:auto}
.links{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:11px;margin-top:16px}
.links a{color:rgb(var(--primary))}
.desc{font-size:13px;color:rgb(var(--accent-50));line-height:1.7;margin-top:14px}
.your-pos{margin-top:22px;border-top:1px solid rgb(var(--accent-20));padding-top:16px}
.your-pos h3{font-size:12px;color:rgb(var(--accent-50));margin-bottom:10px;letter-spacing:.5px}
.kv{display:flex;justify-content:space-between;font-size:12px;padding:8px 0;color:rgb(var(--accent-50))}
.kv b{color:rgb(var(--foreground));font-weight:500}
.tx-note{font-size:11px;color:rgb(var(--accent-50));margin-top:12px;line-height:1.6;text-align:center}
.tx-note a{color:rgb(var(--primary))}
.vault-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.vault-card{border-radius:16px;padding:22px;background:rgb(var(--accent-0));display:block;transition:.15s;border:1px solid transparent}
.vault-card:hover{border-color:rgb(var(--accent-30))}
.vault-card .vault-identity{margin-bottom:14px}
.vault-card .vault-logo{width:40px;height:40px;font-size:18px}
.vault-card .vault-identity h2{font-size:16px}
.vault-card .meta{display:flex;justify-content:space-between;font-size:11px;color:rgb(var(--accent-50));margin-top:10px}
.vault-card .meta b{color:rgb(var(--foreground));font-weight:500}
.empty{padding:50px;text-align:center;color:rgb(var(--accent-50));font-size:13px;background:rgb(var(--accent-0));border-radius:16px}
.ok-box{border:1px solid #73caa066;background:#73caa014;border-radius:12px;padding:16px 18px;font-size:12px;line-height:1.8;margin-top:18px;word-break:break-all}
.ok-box a{color:rgb(var(--primary))}
.nav-active{background:rgb(var(--accent-10))}
@media(max-width:900px){.pf-grid{grid-template-columns:1fr}.pf-page-head h1{font-size:30px}.raise-picker{grid-template-columns:1fr 1fr 1fr}.pf-card{padding:22px 18px}}
@media(max-width:560px){.raise-picker{grid-template-columns:1fr}.pf-form .two{grid-template-columns:1fr}}

.logo-row{display:flex;align-items:center;gap:12px}
.logo-row input[type=file]{padding:9px 10px;font-size:12px}
.logo-preview{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid rgb(var(--accent-30))}
.hint{display:block;font-size:10px;color:rgb(var(--accent-50));margin-top:6px}

/* migrated badge + chart + swap */
.badge-migrated{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#275cf6,#7bbdff);color:#fff;font-size:11px;font-weight:700;letter-spacing:1.4px;padding:8px 14px;border-radius:99px;text-transform:uppercase;box-shadow:0 6px 24px #275cf655}
.badge-migrated:before{content:'✈';font-size:13px}
.chart-card{padding:0;overflow:hidden}
.chart-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;font-size:12px;color:rgb(var(--accent-50))}
.chart-head b{color:rgb(var(--foreground));font-weight:600;font-size:14px}
.chart-head a{color:rgb(var(--primary));margin-left:14px}
.chart-frame{width:100%;height:420px;border:0;display:block;background:#0b1020}
.swap{margin-top:0}
.swap-tabs{display:flex;gap:6px;background:rgb(var(--accent-10));padding:4px;border-radius:99px;margin-bottom:16px}
.swap-tabs button{flex:1;padding:9px;border-radius:99px;font-size:12px;font-weight:600;color:rgb(var(--accent-50))}
.swap-tabs button.active{background:rgb(var(--primary));color:#fff}
.swap-box{border:1px solid rgb(var(--accent-30));border-radius:12px;padding:14px 16px;margin-bottom:8px}
.swap-box .lbl{display:flex;justify-content:space-between;font-size:10px;color:rgb(var(--accent-50));margin-bottom:8px}
.swap-box .lbl button{color:rgb(var(--primary))}
.swap-box .row{display:flex;align-items:center;gap:10px}
.swap-box input{flex:1;min-width:0;background:none;border:0;outline:none;font-size:26px;color:rgb(var(--foreground));-moz-appearance:textfield}
.swap-box input::-webkit-inner-spin-button{display:none}
.swap-box .cur{display:inline-flex;align-items:center;gap:7px;background:rgb(var(--accent-10));border-radius:99px;padding:7px 12px 7px 7px;font-size:13px;font-weight:600;white-space:nowrap}
.swap-box .cur i{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#627eea;font-style:normal;font-size:11px;color:#fff;overflow:hidden}
.swap-box .cur i img{width:100%;height:100%;object-fit:cover}
.swap-box .out{font-size:26px;color:rgb(var(--foreground));flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.swap-arrow{text-align:center;color:rgb(var(--accent-50));font-size:14px;margin:-4px 0}
.swap-meta{display:flex;justify-content:space-between;font-size:11px;color:rgb(var(--accent-50));margin:10px 2px 4px}
.swap-meta b{color:rgb(var(--foreground));font-weight:500}
.mock-bar{background:#e3b778;color:#2a1d05;font-size:12px;text-align:center;padding:8px 16px}
.mock-bar a{color:#2a1d05;text-decoration:underline;margin:0 6px}

.runway-aero{display:flex;align-items:center;gap:10px}
.runway-aero img{height:18px;width:auto;opacity:.9;filter:brightness(1.1)}
.footer-aero img{height:14px;width:auto;opacity:.8}

/* ===== departures layout (contribute page) ===== */
.dep .k{font:8px ui-monospace,'JetBrains Mono',monospace;letter-spacing:2px;color:#6585bb}
.dep .k.row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.dep .k.row button{color:#9bb8ff;letter-spacing:1px}
.dep-head{margin:24px 0 30px}
.dep-head h1{font-size:clamp(44px,6vw,70px);font-weight:550;letter-spacing:-.05em;line-height:1;margin:10px 0 16px;color:#f6f8ff}
.dep-head p{font-size:14px;line-height:1.85;color:#8c9fbe;max-width:560px}
.dep-tabs{display:flex;gap:26px;border-bottom:1px solid #ffffff17;margin-bottom:26px;overflow-x:auto}
.dep-tabs button{font:9px ui-monospace,monospace;letter-spacing:2px;color:#55729e;padding:0 0 12px;border-bottom:1px solid transparent;white-space:nowrap}
.dep-tabs button.on{color:#fff;border-color:#9bb8ff}
.dep-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.dep-card{display:block;border:1px solid #ffffff14;border-radius:14px;padding:22px 24px;transition:.15s;background:#0a112050}
.dep-card:hover{border-color:#9bb8ff66;background:#0d1530}
.dep-card .dep-id{margin-bottom:8px}
.dep-card .dep-logo{width:44px;height:44px;font-size:18px}
.dep-card h1{font-size:22px}
.dep-card .dep-big b{font-size:34px}
.dep-card .dep-big small{font-size:12px}
.dep-card .dep-track{margin-top:10px}
.dep-card .dep-track-foot{margin-top:8px}
.dep-card .card-foot{display:flex;justify-content:space-between;margin-top:16px;font:8px ui-monospace,monospace;letter-spacing:1.6px;color:#55729e}
.dep-card .card-foot b{color:#9bb8ff;font-weight:500}
.dep-back{margin:14px 0 26px;font:9px ui-monospace,monospace;letter-spacing:2px}
.dep-back a{color:#9bb8ff}
.dep-wrap{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:70px;align-items:start}
.dep-id{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.dep-logo{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #ffffff22;background:linear-gradient(145deg,#7bbdff,#275cf6 55%,#152e91);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;font-style:italic;color:#fff;flex-shrink:0}
.dep-name h1{font-size:46px;font-weight:550;letter-spacing:-2px;line-height:1;margin:0;color:#f6f8ff}
.dep-tags{display:flex;align-items:center;gap:10px;margin-top:10px}
.flip{display:inline-block;background:#111a33;border-radius:5px;padding:5px 10px;box-shadow:inset 0 -1px 0 #000,0 1px 0 #ffffff10;font:600 11px ui-monospace,monospace;letter-spacing:1.5px;color:#8c9fbe}
.flip.Open{color:#73caa0}.flip.Migrated{color:#9bb8ff}.flip.Failed{color:#f8988c}.flip.Filled{color:#e3b778}
.dep-links{display:flex;gap:8px;margin-left:auto;align-items:center}
.ico{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ffffff22;color:#c9d6f2;transition:.2s;background:#ffffff08}
.ico:hover{border-color:#9bb8ff;color:#fff;background:#9bb8ff18}
.ico svg{width:15px;height:15px;fill:currentColor}
.dep-desc{font-size:14px;line-height:1.85;color:#8c9fbe;max-width:520px;margin:22px 0 0}
.dep-desc:empty{display:none}
.dep-raised{margin-top:40px;padding-top:26px;border-top:1px solid #ffffff17}
.dep-big{display:flex;align-items:baseline;gap:12px;margin-top:10px}
.dep-big b{font-size:72px;font-weight:550;letter-spacing:-3px;line-height:1;color:#f6f8ff}
.dep-big small{font-size:15px;color:#8c9fbe}
.dep-track{height:3px;background:#ffffff14;margin-top:18px;border-radius:3px;max-width:520px}
.dep-track i{display:block;height:100%;width:0;background:#9bb8ff;border-radius:3px;box-shadow:0 0 14px #9bb8ff66;transition:width .4s}
.dep-track-foot{display:flex;justify-content:space-between;max-width:520px;margin-top:10px;font:8px ui-monospace,monospace;letter-spacing:1.6px;color:#55729e}
.dep-stats{display:flex;gap:56px;margin-top:34px;flex-wrap:wrap}
.dep-stats b{display:block;font-size:26px;font-weight:500;letter-spacing:-.8px;margin-top:8px;color:#e9eefc}
.dep-stats small{display:block;font-size:11px;color:#8c9fbe;margin-top:4px}
.dep-route{margin-top:40px}
.aero-dest{display:inline-flex;align-items:center;gap:8px}
.aero-dest img{height:15px;width:auto;opacity:.9}
.aero-inline img{height:11px;width:auto;vertical-align:-2px;margin:0 2px}
.dep-chart{margin-top:36px}
.dep-chart-foot{display:flex;gap:22px;margin-top:10px;font:8px ui-monospace,monospace;letter-spacing:1.6px}
.dep-chart-foot a{color:#9bb8ff}
.dep-panel{padding-top:6px;position:sticky;top:24px}
.big-amt{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid #ffffff30;padding-bottom:12px}
.big-amt input{flex:1;min-width:0;background:none;border:0;outline:none;font-size:64px;font-weight:550;letter-spacing:-3px;color:#f6f8ff;-moz-appearance:textfield}
.big-amt input::-webkit-inner-spin-button{display:none}
.big-amt span{font-size:14px;color:#8c9fbe}
.panel-note{display:flex;justify-content:space-between;font-size:11px;color:#8c9fbe;margin:12px 0 22px}
.panel-note b{color:#dce7ff;font-weight:500}
.b-btn{width:100%;background:#f3f6ff;color:#101b32;font-size:12px;font-weight:600;padding:16px;border-radius:7px;box-shadow:0 0 0 3px #5987ff26;transition:.2s}
.b-btn:hover{background:#d7e4ff;box-shadow:0 0 0 4px #5987ff40}
.b-btn:disabled{opacity:.45;cursor:not-allowed}
.b-sec{width:100%;border:1px solid #ffffff24;color:#acbad4;background:#0a112050;font-size:11px;padding:13px;border-radius:7px}
.b-sec:hover{border-color:#96b2ea;color:#fff}
.terms-line{margin-top:24px;font:8px ui-monospace,monospace;letter-spacing:1.6px;color:#55729e;line-height:2.3}
.terms-line b{color:#9bb8ff;font-weight:500}
.b-swap-tabs{display:flex;gap:22px;margin-bottom:18px}
.b-swap-tabs button{font:10px ui-monospace,monospace;letter-spacing:2px;color:#55729e;padding-bottom:8px;border-bottom:1px solid transparent}
.b-swap-tabs button.on{color:#fff;border-color:#9bb8ff}
.b-out{font-size:34px;font-weight:550;letter-spacing:-1.2px;color:#f3f6ff;margin-top:6px;display:flex;align-items:baseline;gap:8px;min-height:40px}
.b-out small{font-size:13px;color:#8c9fbe;letter-spacing:0;font-weight:400}
.dep .error{font-size:11px}
.dep .tx-note{text-align:left}
@media(max-width:900px){.dep-wrap{grid-template-columns:1fr;gap:40px}.dep-panel{position:static}.dep-big b{font-size:54px}.big-amt input{font-size:48px}.dep-stats{gap:32px}}

.nav-x{width:40px;height:40px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgb(var(--accent-30));background:rgb(var(--accent-0));color:#c9d6f2;margin-right:8px;transition:.2s}
.nav-x:hover{background:rgb(var(--accent-10));color:#fff}
.nav-x svg{width:15px;height:15px;fill:currentColor}

.copy-ca{display:inline-flex;align-items:center;gap:7px;background:#111a33;border:1px solid #ffffff14;border-radius:5px;padding:5px 10px;font:600 10px ui-monospace,monospace;letter-spacing:1.5px;color:#9bb8ff;transition:.15s}
.copy-ca:hover{border-color:#9bb8ff;color:#fff}
.copy-ca svg{width:12px;height:12px;fill:currentColor}
