/* FlightHourIQ — bespoke pass. Editorial type, asymmetric hero, schematic
   accents, warm amber, colophon footer. Brand colours from CycleIQ family. */
:root{
  --ink:#0B1A33; --ink2:#13294a; --ink3:#1d3866;
  --iqblue:#3082F0; --blue:#2A74EC; --lblue:#6FB2F6; --soft:#A8D2FA;
  --amber:#C9933E; --amber-soft:#E2B66E; --cream:#F4ECD6; --paper-warm:#FBF5E6;
  --paper:#f5f8fd; --card:#ffffff;
  --text:#0B1A33; --muted:#5b6c87; --faint:#90a0ba;
  --line:#e3e9f3; --line2:#d3dcec;
  --grad:linear-gradient(110deg,#5BA0F4 0%,#2A74EC 95%);
  --grad-soft:linear-gradient(160deg,#13294a 0%,#0B1A33 70%);
  --ok:#1f9d57; --err:#d6453d;
  --sh-sm:0 1px 3px rgba(10,20,40,.06),0 1px 2px rgba(10,20,40,.04);
  --sh-md:0 10px 30px rgba(10,20,40,.10),0 3px 8px rgba(10,20,40,.06);
  --sh-lg:0 30px 70px rgba(8,18,40,.22),0 10px 24px rgba(8,18,40,.12);
  --serif:"Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --sora:"Sora", "Inter", sans-serif;
  --mono:"JetBrains Mono", ui-monospace, Consolas, monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--sans); color:var(--text); background:var(--paper);
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;}
a{color:var(--blue); text-decoration:none;}
em{font-family:var(--serif); font-style:italic; font-weight:500; color:var(--ink);}
b,strong{font-weight:700;}

/* ---- editorial utilities ---- */
.serif{font-family:var(--serif); font-weight:700; letter-spacing:-.018em;
  line-height:1.04; color:var(--ink);}
.serif .it{font-style:italic; font-weight:700;}
.serif .up{font-style:normal;}
.kicker{font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  color:var(--amber); display:flex; align-items:baseline; gap:8px;}
.kicker .sect{font-family:var(--mono); font-weight:500; letter-spacing:.04em;
  color:var(--muted); text-transform:none;}
.kicker.on-dark{color:var(--amber-soft);}
.kicker.on-dark .sect{color:rgba(208,222,243,.55);}

/* ---- nav ---- */
.nav{position:sticky; top:0; z-index:50; background:rgba(11,26,51,.94);
  backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(168,210,250,.10);}
.nav-in{max-width:1240px; margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:11px;}
.brand-text{font-family:var(--sora); font-weight:800; font-size:19px;
  color:#fff; letter-spacing:-.022em;}
.brand-text b{font-weight:800; color:var(--iqblue);}
.nav-links{display:flex; align-items:center; gap:8px;}
.nav-rule{display:inline-block; width:1px; height:16px;
  background:rgba(168,210,250,.18); margin:0 6px;}
.nav-links a{color:#aeb9cc; font-weight:500; font-size:13.5px;
  padding:8px 12px; border-radius:6px; letter-spacing:.012em;}
.nav-links a:hover{color:#fff;}
.nav-cta{color:#fff!important; font-weight:600!important;
  border:1px solid rgba(168,210,250,.30); padding:8px 16px!important;
  margin-left:6px;}
.nav-cta:hover{background:rgba(48,130,240,.18); border-color:var(--iqblue);}

/* ---- HERO (asymmetric magazine) ---- */
.hero{background:var(--ink); color:#fff; padding:74px 28px 96px;
  position:relative; z-index:5; isolation:isolate;}
.hero::before, .hero::after{z-index:-1;}
.hero::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(60% 50% at 18% 14%, rgba(48,130,240,.16), transparent 70%),
    radial-gradient(46% 40% at 86% 84%, rgba(108,178,246,.10), transparent 75%);}
.hero::after{content:""; position:absolute; left:0; right:0; bottom:0;
  height:1px; background:linear-gradient(90deg,transparent,
    rgba(201,147,62,.45) 25%, rgba(201,147,62,.45) 75%, transparent);}
.hero-grid{position:relative; max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center;}
.hero-text{min-width:0;}
.eyebrow{font:600 11px/1.4 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  color:var(--amber-soft); display:inline-flex; align-items:baseline; gap:10px;
  padding-bottom:22px;}
.eyebrow .sect{font-family:var(--mono); font-weight:500; letter-spacing:.04em;
  color:rgba(208,222,243,.55); text-transform:none;}

.hero-h1{font-family:var(--serif); margin:0; font-size:80px; line-height:.98;
  letter-spacing:-.028em; color:#fff;}
.hero-h1 .up{font-weight:600; font-style:normal; color:#fff;}
.hero-h1 .it{font-weight:600; font-style:italic; color:#fff;
  background:linear-gradient(110deg,#A8D2FA 0%,#5BA0F4 60%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;}
.hero-h1 br + .it{display:inline-block;}

.hero-sub{font-size:17px; line-height:1.55; color:#b8c5db; max-width:560px;
  margin:26px 0 36px;}
.hero-sub em{color:#fff;}

/* search — refined, editorial (not the SaaS glow card) */
.search{position:relative; max-width:560px; z-index:60;}
.search-box{display:flex; align-items:center; gap:10px;
  background:#fff; border:1px solid rgba(255,255,255,.55);
  border-radius:10px; padding:4px 6px 4px 18px;
  box-shadow:0 8px 28px rgba(0,0,0,.32), 0 1px 2px rgba(0,0,0,.18);}
.search-icon{width:18px; height:18px; color:var(--muted); flex:none;}
.tailsearch{flex:1; border:0; outline:0; padding:16px 0;
  font:600 17px/1 var(--sora); color:var(--ink); background:transparent;
  letter-spacing:.018em; text-transform:uppercase;}
.tailsearch::placeholder{color:#9fadc2; font-weight:500; text-transform:none;
  letter-spacing:normal; font-family:var(--serif); font-style:italic;}
.search-spin{width:18px; height:18px; margin:0 14px; flex:none;
  border:2.4px solid var(--line2); border-top-color:var(--amber);
  border-radius:50%; animation:spin .6s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.search-hint{margin-top:20px; font:500 12px/1 var(--sans);
  letter-spacing:.05em; color:#7c8aa3;}
.search-hint .dim{color:#5a6c87; letter-spacing:.14em; font-size:10.5px;}
.search-hint .num{font-family:var(--mono); font-weight:500;
  color:#e2ecf7; font-size:13px;}

.search-results{position:absolute; left:0; right:0; top:calc(100% + 8px);
  background:#fff; border-radius:10px; box-shadow:var(--sh-lg);
  border:1px solid var(--line); overflow:hidden; z-index:20;
  text-align:left; max-height:540px; overflow-y:auto;}
.sr-item{padding:14px 18px; cursor:pointer; border-bottom:1px solid var(--line);
  transition:background .08s;}
.sr-item:last-child{border-bottom:0;}
.sr-item:hover,.sr-item.active{background:#f4f8ff;}
.sr-top{display:flex; align-items:center; justify-content:space-between;
  margin-bottom:5px;}
.sr-reg{font:700 17px/1 var(--sora); color:var(--ink); letter-spacing:.014em;}
.sr-model{font-weight:600; font-size:14px; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sr-op{color:var(--muted); font-weight:500;}
.sr-fact{font-size:12.5px; color:var(--muted); margin-top:4px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  font-family:var(--mono); font-weight:500;}
.sr-fact b{color:var(--ink); font-weight:600;}
.sr-fact .sep{color:var(--faint); margin:0 7px;}
.sr-fact .dim{color:var(--faint); font-style:italic; font-family:var(--serif);}
.sr-fact sup{font-size:9px; vertical-align:6px; font-weight:600;}
.sr-seg{font:700 9.5px/1 var(--mono); letter-spacing:.14em;
  padding:5px 9px; border-radius:4px;}
.sr-seg.bizjet{background:#fdf2dc; color:#9c6e1f;}
.sr-seg.commercial{background:#eaf0fd; color:#1b56b0;}
.sr-empty{padding:18px; color:var(--muted); font-size:14px; text-align:center;
  font-family:var(--serif); font-style:italic;}

/* hero schematic illustration (Boeing 737-800 top-view blueprint) */
.hero-art{position:relative;}
.schem{position:relative; border:1px solid rgba(168,210,250,.20);
  border-radius:4px; overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.55), 0 6px 20px rgba(0,0,0,.30);}
.schem::before{content:""; position:absolute; top:-6px; right:38px;
  width:46px; height:1px; background:rgba(201,147,62,.55); pointer-events:none;}
.schem::after{content:""; position:absolute; top:-1px; right:60px;
  width:1px; height:7px; background:rgba(201,147,62,.55); pointer-events:none;}
.schem-img{display:block; width:100%; height:auto;}
.schem-cap{margin-top:12px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.08em; color:#9FB1CC; padding-left:6px;}
.schem-cap .fig{color:var(--amber); font-weight:500; margin-right:8px;}

/* ---- HOW (editorial numbered list) ---- */
.how{padding:96px 28px; position:relative;}
.how::before{content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:140px; height:1px; background:var(--line2);}
.how-in{max-width:920px; margin:0 auto;}
.how-in h2{font-size:46px; max-width:600px; margin:10px 0 38px;}
.how-list{list-style:none; margin:0; padding:0;
  border-top:1px solid var(--line);}
.how-list li{display:grid; grid-template-columns:90px 1fr; gap:32px;
  padding:30px 0; border-bottom:1px solid var(--line); align-items:start;}
.how-list .num{font-family:var(--mono); font-weight:500; font-size:14px;
  color:var(--amber); letter-spacing:.05em; padding-top:6px;}
.how-list h3{font-family:var(--serif); font-weight:700; font-size:22px;
  margin:0 0 8px; color:var(--ink); letter-spacing:-.012em;}
.how-list p{margin:0; color:var(--muted); font-size:15px; max-width:580px;}

/* ---- COVERAGE ---- */
.coverage{background:var(--ink); color:#fff; padding:96px 28px; position:relative;}
.coverage::before{content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:140px; height:1px; background:rgba(168,210,250,.18);}
.cov-in{max-width:1100px; margin:0 auto; display:grid;
  grid-template-columns:1.05fr 1fr; gap:64px; align-items:start;}
.cov-text h2{color:#fff; font-size:46px; margin:10px 0 18px; max-width:520px;}
.cov-text h2 .it{
  background:linear-gradient(110deg,#A8D2FA 0%,#5BA0F4 60%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;}
.cov-text p{color:#aab8cd; font-size:16px; max-width:520px; margin:0 0 26px;}
.cov-list{list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:1fr 1fr; gap:9px 20px;}
.cov-list li{display:flex; align-items:center; gap:11px; font-size:14px;
  color:#dce6f2; font-weight:500;}
.cov-list .dot{width:5px; height:5px; background:var(--amber);
  border-radius:50%; flex:none;}
.cov-list li.emph{grid-column:1 / -1; align-items:baseline; font-weight:600;
  color:#fff;}
.cov-list li.emph em{font-family:var(--serif); font-style:italic;
  font-weight:500; color:var(--amber-soft); margin-left:6px; font-size:13.5px;}
.cov-callout{grid-column:1 / -1; margin-top:24px; padding:18px 22px;
  border:1px solid rgba(201,147,62,.30); border-left:3px solid var(--amber);
  border-radius:4px; background:rgba(201,147,62,.06);}
.cov-callout-h{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  color:var(--amber); margin-bottom:8px;}
.cov-callout p{font-family:var(--serif); font-style:italic; font-size:15px;
  line-height:1.55; color:#e8edf5; margin:0; max-width:none;}
.cov-callout p em{font-style:normal; font-weight:600; color:var(--amber-soft);
  font-family:var(--serif);}
.chip-emph{background:var(--paper-warm)!important; border-color:var(--cream)!important;
  color:#5e3d12!important; font-weight:600!important;}
.chip-emph em{font-family:var(--serif); font-style:italic; font-weight:500;
  color:#7a5320; margin-left:5px;}

.cov-quote{background:linear-gradient(160deg,#0f2038,#0a1424);
  border:1px solid rgba(48,130,240,.20); border-radius:8px; padding:32px 30px;
  position:relative;}
.cov-mono{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  color:var(--amber); margin-bottom:18px;}
.cov-quote blockquote{margin:0; padding:0; position:relative;}
.cov-quote blockquote::before{content:"\201C"; position:absolute;
  top:-30px; left:-8px; font-family:var(--serif); font-style:italic;
  font-size:84px; color:var(--amber); opacity:.35; line-height:1;}
.cov-quote p{font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:19px; line-height:1.45; color:#fff; margin:0;}
.cov-link{display:inline-block; margin-top:24px; color:var(--amber-soft);
  font-weight:600; font-size:13.5px; border-bottom:1px solid rgba(226,182,110,.4);
  padding-bottom:2px;}
.cov-link:hover{color:var(--amber);}

/* ---- QUOTE: confirm band (asymmetric layout, with photo) ---- */
.confirm{background:var(--grad-soft); color:#fff; padding:54px 28px 50px;
  border-bottom:1px solid rgba(48,130,240,.18); position:relative;}
.confirm-in{max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:40px; align-items:center;}
.confirm-text{min-width:0;}
.confirm-tag{display:flex; align-items:center; gap:12px; color:#9fb0c8;
  font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.08em;
  text-transform:uppercase;}
.seg{font:700 10px/1 var(--mono); letter-spacing:.12em; text-transform:uppercase;
  padding:6px 10px; border-radius:4px;}
.seg-bizjet{background:#fdf2dc; color:#9c6e1f;}
.seg-commercial{background:#eaf0fd; color:#1b56b0;}
.confirm-reg{font-family:var(--sora); font-weight:800; font-size:60px;
  color:#fff; letter-spacing:-.025em; margin:14px 0 6px; line-height:.98;}
.confirm-model{font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:24px; color:#dbe6f3;}
.confirm-facts{display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:16px;
  color:#92a4bd; font-size:13.5px; font-family:var(--mono); font-weight:500;}
.confirm-facts b{color:#cfe6ef; font-weight:600;}
.confirm-facts sup{font-size:8.5px; vertical-align:5px;}
.confirm-again{display:inline-block; margin-top:22px; color:var(--amber-soft);
  font-weight:600; font-size:13.5px; border-bottom:1px solid rgba(226,182,110,.4);
  padding-bottom:2px;}
.confirm-photo{position:relative; border-radius:6px; overflow:hidden;
  border:1px solid rgba(48,130,240,.20); aspect-ratio:16/10;
  background:linear-gradient(160deg,#13294a,#0a1424);
  box-shadow:0 14px 30px rgba(0,0,0,.30);}
.confirm-photo img{display:block; width:100%; height:100%; object-fit:cover;}
.confirm-photo .credit{position:absolute; bottom:7px; right:11px;
  font-family:var(--mono); font-size:10px; letter-spacing:.10em;
  color:rgba(255,255,255,.65); text-shadow:0 1px 3px rgba(0,0,0,.5);}
.confirm-photo.no{display:none;}
.confirm-photo .ph-fallback{position:absolute; inset:0; display:flex;
  align-items:center; justify-content:center; padding:0 20px; text-align:center;
  color:rgba(126,158,196,.6); font-family:var(--serif); font-style:italic;
  font-size:15px;}

/* ---- QUOTE: result ---- */
.result{max-width:1100px; margin:0 auto; padding:54px 28px 20px;}
.result-head{display:flex; align-items:baseline; gap:12px; margin-bottom:22px;}
.result-head .sect{font-family:var(--mono); font-size:11.5px; color:var(--muted);
  letter-spacing:.06em;}
.result-head .title{font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:20px; color:var(--ink);}
.result-grid{display:grid; grid-template-columns:1.55fr 1fr; gap:24px;}

/* mission profile section (bizjet only) — full-width, large globe + side stats */
.mission-section{max-width:1100px; margin:0 auto; padding:24px 28px 60px;}
.mission-section .result-head{margin-bottom:14px;}
.mission-card{background:linear-gradient(165deg,#0f2038,#0a1424); color:#fff;
  border:1px solid rgba(201,147,62,.22); border-radius:8px; padding:30px 36px 36px;
  position:relative;}
.mission-card::before{content:""; position:absolute; top:0; left:36px; right:36px;
  height:3px; background:var(--amber);}
.mission-body{display:grid; grid-template-columns:1.45fr 1fr; gap:42px;
  align-items:stretch;}
.mission-badge{background:rgba(201,147,62,.16)!important; color:var(--amber-soft)!important;
  display:inline-block;}
.globe-col{display:flex; flex-direction:column;}
.globe-wrap{width:100%; height:520px; border-radius:6px; overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #0c1a32, #06101e 75%);
  border:1px solid rgba(168,210,250,.08); position:relative;}
.globe-wrap canvas{display:block;}
.globe-wrap{cursor:grab;}
.globe-wrap.globe-grabbed{cursor:grab;}
.globe-wrap.globe-grabbed:active{cursor:grabbing;}
.globe-legend{display:flex; gap:18px; margin-top:10px; flex-wrap:wrap;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:#a7b6cb; text-transform:uppercase;}
.globe-legend .lg-item{display:inline-flex; align-items:center; gap:6px;}
.globe-legend .lg-dot{display:inline-block; width:10px; height:10px;
  border-radius:50%; box-shadow:0 0 0 2px rgba(255,255,255,.06);}
.globe-legend .lg-route{background:#E2B66E;}
.globe-legend .lg-now{background:#3ddc7a;
  box-shadow:0 0 0 2px rgba(61,220,122,.18), 0 0 8px rgba(61,220,122,.55);}
.globe-legend .lg-ts{color:#dbe6f3; text-transform:none; letter-spacing:.02em;
  font-weight:500;}
.mission-side{display:flex; flex-direction:column; justify-content:center;}
.mission-totals{font-family:var(--mono); font-size:12px; color:var(--amber-soft);
  letter-spacing:.08em; margin:16px 0 4px; text-transform:uppercase;}
.mission-totals b{color:#fff; font-weight:700; font-family:var(--sora);
  font-size:38px; letter-spacing:-.02em; margin-right:4px; text-transform:none;}
.mission-annualized{margin-top:4px; font-family:var(--serif); font-style:italic;
  font-size:12.5px; color:#a7b6cb; line-height:1.4;}
.mission-annualized b{color:#dbe6f3; font-style:normal; font-weight:600;
  font-family:var(--mono); letter-spacing:.02em;}
.mission-annualized i{color:var(--amber-soft); font-style:italic; font-weight:600;
  text-transform:uppercase; font-size:10px; letter-spacing:.10em; margin-right:4px;}
.mission-annualized .ma-since{color:#7d8ba2; font-size:11px;}

/* ============================================================
 * Auth + My Tails
 * ============================================================ */
.nav-links .nav-user{font-family:var(--mono); font-size:12px; color:var(--ink);
  letter-spacing:.02em; padding:4px 10px; background:var(--paper-warm);
  border-radius:4px; border:1px solid var(--cream);}
.nav-links .nav-login, .nav-links .nav-logout{font-family:var(--sans);
  font-weight:500; color:var(--muted);}
.nav-links .nav-login:hover, .nav-links .nav-logout:hover{color:var(--ink);}

/* Sign-in page */
.signin{min-height:calc(100vh - 200px); display:flex; align-items:center;
  justify-content:center; padding:48px 24px;}
.signin-card{background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:40px 44px; max-width:440px; width:100%;
  box-shadow:var(--sh-md); position:relative;}
.signin-card::before{content:""; position:absolute; top:0; left:36px;
  right:36px; height:3px; background:var(--amber);}
.signin-brand{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.signin-tag{font-family:var(--sora); font-weight:700; font-size:18px;
  letter-spacing:-.01em; color:var(--ink);}
.signin-tag b{font-weight:800;}
.signin-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:14px; margin:0 0 22px;}
.signin-err{padding:10px 12px; margin-bottom:14px; border-radius:5px;
  background:#fce8e6; border:1px solid #f4b8b1; color:#8a1c11;
  font-size:13px; font-family:var(--sans);}
.google-btn{display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; padding:11px 14px; border:1.5px solid #dadce0; border-radius:6px;
  background:#fff; color:#3c4043; font-family:var(--sans); font-weight:600;
  font-size:14.5px; text-decoration:none; transition:border .15s, background .15s;}
.google-btn:hover{border-color:var(--blue); background:#f7faff;}
.signin-or{display:flex; align-items:center; gap:10px; margin:18px 0;
  color:var(--muted); font-family:var(--mono); font-size:11px;
  letter-spacing:.10em; text-transform:uppercase;}
.signin-or::before, .signin-or::after{content:""; flex:1; height:1px;
  background:var(--line);}
.signin-form{display:flex; flex-direction:column; gap:12px;}
.signin-form label{display:flex; flex-direction:column; gap:5px;
  font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);}
.signin-form input{font-family:var(--sans); font-size:14px; padding:10px 12px;
  border:1px solid var(--line); border-radius:5px; background:#fff;
  color:var(--ink);}
.signin-form input:focus{outline:none; border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(60,108,182,.12);}
.signin-form .btn-primary{margin-top:6px;}
.signin-foot{margin-top:22px; text-align:center; font-family:var(--mono);
  font-size:11px; letter-spacing:.06em;}
.signin-foot a{color:var(--muted); text-decoration:none;}
.signin-foot a:hover{color:var(--ink);}

/* Heart button (quote-page tail header + my-tails list) */
.heart{display:inline-flex; align-items:center; justify-content:center;
  vertical-align:middle; margin-left:14px; padding:6px;
  background:transparent; border:0; cursor:pointer; color:#bcc6d6;
  transition:color .15s, transform .12s;
  position:relative; top:-4px;}
.heart:hover{color:#e85a5a; transform:scale(1.10);}
.heart:disabled{opacity:.5; cursor:wait;}
.heart .h-outline{display:block;}
.heart .h-filled{display:none;}
.heart.filled{color:#e85a5a;}
.heart.filled .h-outline{display:none;}
.heart.filled .h-filled{display:block;}

/* My Tails page */
.mytails{padding:48px 28px 80px; max-width:1080px; margin:0 auto;}
.mytails-head{display:flex; justify-content:space-between; align-items:flex-end;
  gap:24px; margin-bottom:28px; flex-wrap:wrap;}
.mytails-head h1{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:34px; color:var(--ink); margin:6px 0 6px; letter-spacing:-.01em;}
.mytails-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:15px; max-width:560px; margin:0;}
.mytails-list{list-style:none; padding:0; margin:0; display:grid; gap:8px;}
.mytails-row{display:flex; align-items:center; gap:12px;
  background:var(--card); border:1px solid var(--line); border-radius:6px;
  padding:14px 18px; transition:border-color .15s, transform .12s;}
.mytails-row:hover{border-color:var(--amber);}
.mytails-link{flex:1; display:flex; align-items:baseline; gap:14px;
  text-decoration:none; color:inherit; min-width:0;}
.mt-reg{font-family:var(--sora); font-weight:700; font-size:20px;
  color:var(--ink); letter-spacing:-.01em;}
.mt-model{font-family:var(--sans); font-size:14px; color:var(--muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.mt-model i{font-style:italic; color:#bbb;}
.mt-op{font-family:var(--mono); font-size:11px; color:var(--muted);
  letter-spacing:.06em; text-transform:uppercase; margin-left:auto;}
.mt-unfav{margin-left:auto;}
.mt-unfav.heart{position:static; margin-left:auto;}
.mytails-empty{text-align:center; padding:60px 24px;
  background:var(--card); border:1px solid var(--line); border-radius:8px;}
.mte-h{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:22px; color:var(--ink); margin-bottom:10px;}
.mytails-empty p{font-family:var(--serif); color:var(--muted); font-size:15px;
  margin:0 0 22px;}
.heart-inline{display:inline-block; color:#e85a5a; font-size:18px;
  vertical-align:middle; margin:0 2px;}
@media(max-width:680px){
  .mytails-row{flex-wrap:wrap;}
  .mt-op{margin-left:0;}
}

/* ============================================================
 * Density pass — tightens the quote card so /quote/<reg> and
 * /my-tails (embed swap) both pack more on screen. Pure overrides
 * of the original spacing — nothing structural changed.
 * ============================================================ */
.confirm{padding:32px 24px 28px;}
.confirm-in{gap:28px;}
.confirm-reg{font-size:48px; margin:8px 0 4px;}
.confirm-model{font-size:20px;}
.confirm-facts{gap:6px 16px; margin-top:10px; font-size:12.5px;}
.confirm-again{margin-top:12px; font-size:12.5px;}
.confirm-photo{aspect-ratio:16/9;}

.result{padding:24px 24px 14px;}
.result-head{margin-bottom:14px;}
.result-head .title{font-size:18px;}
.result-grid{gap:18px;}
.rate-card{padding:22px 26px;}
.rate-card::before{left:24px; right:24px;}
.rate-label{font-size:10px; margin-bottom:8px;}
.rate-range{font-size:50px; margin:4px 0 2px;}
.rate-cur{font-size:30px; vertical-align:14px;}
.rate-unit{font-size:14px;}
.rate-alacarte{margin-top:8px; padding:7px 11px; font-size:12.5px;}
.rate-annual{margin-top:14px; padding:10px 14px; font-size:12.5px;}
.breakdown{margin-top:18px; padding-top:14px;}
.bd-head{margin-bottom:10px;}
.bd-row{margin-bottom:10px;}
.bd-top{font-size:13px; margin-bottom:5px;}
.bd-val{font-size:11.5px;}
.bd-bar{height:5px;}
.cycle-card{padding:22px 24px;}
.cycle-card::before{left:24px; right:24px;}
.cycle-card h3{font-size:18px;}
.cycle-card h3 + p{font-size:13px; margin:8px 0 14px;}
.cycle-facts li{padding:8px 0;}
.cycle-facts span, .cycle-facts b{font-size:12.5px;}
.covers{margin-top:16px; padding-top:14px;}
.covers-head{margin-bottom:10px;}
.chips{gap:7px;}
.chip{font-size:11.5px; padding:5px 10px;}
.disclaimer{margin-top:14px; padding:10px 12px; font-size:11.5px;}

.mission-section{padding:14px 24px 28px;}
.mission-section .result-head{margin-bottom:10px;}
.mission-card{padding:20px 24px 22px;}
.mission-card::before{left:24px; right:24px;}
.mission-body{gap:28px;}
.globe-wrap{height:380px;}
.globe-legend{margin-top:6px; font-size:10px;}
.mission-totals{margin:8px 0 2px; font-size:11px;}
.mission-totals b{font-size:30px;}
.mission-annualized{font-size:11.5px;}
.mission-stats{margin-top:14px;}
.mission-stats li{padding:7px 0; font-size:13.5px;}
.mission-stats span{font-size:9.5px;}
.mission-routes{margin-top:12px; padding-top:10px;}
.mission-routes li{padding:2px 0; font-size:11.5px;}
.mission-cal{margin-top:14px; padding-top:12px;}
.mission-cal .mc-host{height:130px;}

/* ============================================================
 * DataGrid — used on /my-tails for the favorites list. Search,
 * sort by header click, 10-row pagination. Selected row gets a
 * subtle amber tint to anchor the card below.
 * ============================================================ */
.grid-card{background:var(--card); border:1px solid var(--line);
  border-radius:7px; padding:0; overflow:hidden; box-shadow:var(--sh-md);
  margin-bottom:18px;}
.grid-toolbar{display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:10px 14px; border-bottom:1px solid var(--line);
  background:var(--paper-warm);}
.grid-toolbar input[type="search"]{flex:1; max-width:360px; padding:7px 10px;
  border:1px solid var(--line); border-radius:5px; background:#fff;
  font-family:var(--sans); font-size:13px; color:var(--ink);}
.grid-toolbar input[type="search"]:focus{outline:none; border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(60,108,182,.10);}
.grid-info{font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);}
.grid-wrap{overflow-x:auto;}
table.grid{width:100%; border-collapse:collapse;}
table.grid th, table.grid td{text-align:left; padding:8px 14px;
  font-family:var(--sans); font-size:13px; vertical-align:middle;
  border-bottom:1px solid var(--line);}
table.grid th{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); font-weight:600;
  background:#fcfaf6; user-select:none;}
table.grid th.sortable{cursor:pointer;}
table.grid th.sortable:hover{color:var(--ink);}
table.grid th.asc::after, table.grid th.desc::after{
  content:""; display:inline-block; margin-left:4px;
  border-left:4px solid transparent; border-right:4px solid transparent;}
table.grid th.asc::after{border-bottom:5px solid var(--ink);}
table.grid th.desc::after{border-top:5px solid var(--ink);}
table.grid tr.grid-row{cursor:pointer; transition:background .12s;}
table.grid tr.grid-row:hover{background:#fcf6e8;}
table.grid tr.grid-row.selected{background:#fdf2d8;}
table.grid tr.grid-row.selected td{border-bottom-color:var(--amber);}
table.grid td.g-reg b{font-family:var(--sora); font-size:14px;
  letter-spacing:-.01em; color:var(--ink);}
table.grid td.g-model{color:var(--ink);}
table.grid td.g-op{color:var(--muted); font-family:var(--mono);
  font-size:11.5px; letter-spacing:.04em; text-transform:uppercase;}
table.grid td.g-saved{color:var(--muted); font-family:var(--mono);
  font-size:11.5px; white-space:nowrap;}
table.grid td.grid-actions{width:42px; text-align:right;}
table.grid .mt-unfav.heart{position:static; margin-left:0; padding:4px;}

/* ============================================================
 * /onboard — fleet operator tail-onboarding flow
 * ============================================================ */
.onb{padding:32px 0 60px; background:var(--paper);}
.onb-in{max-width:1180px; margin:0 auto; padding:0 28px;}
.onb-head{margin-bottom:24px;}
.onb-head h1{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:36px; color:var(--ink); margin:6px 0 8px;}
.onb-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:16px; line-height:1.55; max-width:820px;}
.onb-head-tail{display:flex; align-items:flex-start; justify-content:space-between; gap:24px;}
.onb-back{font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--blue); text-decoration:none;
  padding:8px 12px; border:1px solid var(--line); border-radius:4px;}
.onb-back:hover{background:var(--paper-warm);}

.onb-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:32px;
  margin-bottom:36px;}
.onb-intake{background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:24px;}
.onb-intake h2{font-family:var(--sora); font-weight:700; font-size:18px;
  margin:0 0 14px; color:var(--ink);}
.onb-intake label{display:block; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  margin-bottom:10px;}
.onb-intake input, .onb-intake textarea{display:block; width:100%;
  margin-top:4px; padding:8px 10px;
  font-family:var(--sans); font-size:14px; color:var(--ink);
  border:1px solid var(--line); border-radius:4px;
  text-transform:none; letter-spacing:0;}
.onb-intake input:focus{outline:none; border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(60,108,182,.10);}
.onb-intake .req{color:#9c3a18;}
.onb-intake .lf-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.onb-intake .btn-primary{margin-top:12px;}
.onb-intake .fineprint{margin-top:10px; font-size:11.5px; color:var(--muted);
  font-family:var(--serif); font-style:italic;}

/* Reuse the hero tail-search look inside the onboard intake form. The
   .search wrapper carries position:relative for the dropdown to anchor to. */
.onb-tail-label{margin-bottom:14px;}
.onb-intake .onb-tail-search{max-width:none; z-index:30;}
.onb-intake .onb-tail-box{padding:0 10px; gap:8px;
  border:1px solid var(--line); border-radius:4px; background:#fff;
  transition:border-color .12s, box-shadow .12s;}
.onb-intake .onb-tail-box:focus-within{border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(60,108,182,.10);}
.onb-intake .onb-tail-input{flex:1; border:0; outline:0;
  padding:10px 0; font-family:var(--sans); font-size:14px;
  letter-spacing:0; color:var(--ink); background:transparent;
  width:100%;}
.onb-intake .onb-tail-input::placeholder{font-weight:400;
  color:var(--muted); font-style:italic; text-transform:none;}
.onb-pickhint{display:block; margin-top:6px;
  color:#1c6748 !important; font-style:normal !important;}

/* ============================================================
 * /admin landing — tile grid
 * ============================================================ */
.adm{padding:32px 0 60px; background:var(--paper);}
.adm-in{max-width:1180px; margin:0 auto; padding:0 28px;}
.adm-head{margin-bottom:28px;}
.adm-head h1{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:36px; color:var(--ink); margin:6px 0 8px;}
.adm-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:15px; line-height:1.55; max-width:820px;}
.adm-crumb{margin-bottom:14px;}
.adm-crumb a{font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--blue); text-decoration:none;}
.adm-crumb a:hover{text-decoration:underline;}
.adm-tiles{display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:20px;}
.adm-tile{display:flex; flex-direction:column; padding:20px;
  background:#fff; border:1px solid var(--line); border-radius:8px;
  color:var(--ink); text-decoration:none;
  transition:transform .12s, box-shadow .12s, border-color .12s;
  min-height:200px;}
a.adm-tile:hover{transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
  border-color:var(--amber);}
.adm-tile-h{font-family:var(--sora); font-weight:700; font-size:18px;
  color:var(--ink); margin-bottom:10px;}
.adm-tile-body{font-family:var(--serif); font-size:14px; line-height:1.55;
  color:var(--muted); flex:1;}
.adm-tile-body b{color:var(--ink);}
.adm-tile-cta{margin-top:14px; font-family:var(--mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--blue);
  font-weight:600;}
.adm-tile-info{background:var(--paper-warm);}
.adm-tile-info ul.adm-list{list-style:none; padding:0; margin:6px 0 12px;
  font-family:var(--mono); font-size:12px;}
.adm-tile-info ul.adm-list li{padding:2px 0; color:var(--ink);}
.adm-tile-info code{background:#fff; padding:1px 5px; border-radius:3px;
  font-family:var(--mono); font-size:11px; color:#8a5a14;}
.adm-tile-info .fineprint{font-family:var(--serif); font-style:italic;
  font-size:12.5px; color:var(--muted); margin-top:10px;}

.nav-admin{color:#9c3a18 !important; font-weight:600 !important;}

/* Provider type pills for competitive-landscape grid */
.provider-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;}
.provider-oem               {background:#e8f1fa; color:#2a4d80;
                              border:1px solid #b8d0ea;}
.provider-third_party_mro,
.provider-third_party_mro_asset_specialist {background:rgba(28,103,72,.10);
                              color:#1c6748;
                              border:1px solid rgba(28,103,72,.30);}
.provider-airframer         {background:rgba(201,147,62,.12); color:#8a5a14;
                              border:1px solid rgba(201,147,62,.35);}
.provider-lessor            {background:rgba(90,74,122,.12); color:#5a4a7a;
                              border:1px solid rgba(90,74,122,.30);}
.provider-oem_component_,
.provider-oem__component_   {background:#eef0f4; color:#444;
                              border:1px solid #d3d7de;}
.provider-captive___third_party_mro {background:#fdf2d8; color:#8a5a14;
                              border:1px solid #e5c980;}

/* Admin at-a-glance counters strip */
.adm-counters{display:grid;
  grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
  gap:10px; margin-bottom:28px;}
.cnt{background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:10px 12px; text-align:center;}
.cnt b{display:block; font-family:var(--sora); font-weight:700;
  font-size:22px; color:var(--ink); line-height:1.1;}
.cnt span{display:block; font-family:var(--mono); font-size:10px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  margin-top:2px;}

/* Two-action header (page-h + action button on right) */
.adm-head-row{display:flex; justify-content:space-between;
  align-items:flex-end; gap:20px; margin-bottom:18px;}
.adm-head-row h1{font-family:var(--serif); font-style:italic;
  font-weight:700; font-size:32px; color:var(--ink); margin:0 0 4px;}
.adm-head-row .adm-sub{margin:0;}

/* Form pages (pipeline edit, lease edit, incident edit) */
.adm-form{max-width:760px;}
.adm-form-actions{display:flex; align-items:center; gap:14px;
  margin-top:18px;}
.btn-text-danger{background:none; border:none; color:#9c3a18;
  font-family:var(--sora); font-weight:600; font-size:13px;
  cursor:pointer; padding:0 4px;}
.btn-text-danger:hover{color:#5d1010;}

.adm-callout{background:rgba(60,108,182,.06);
  border:1px solid rgba(60,108,182,.20); border-radius:5px;
  padding:10px 14px; margin-bottom:14px;
  font-family:var(--sans); font-size:13px;}
.adm-callout b{font-family:var(--sora); margin-right:6px;}

/* Stage pill (pipeline) */
.stage-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;}
.stage-pill.stage-cold        {background:#eef0f4; color:#4a5566;
                                border:1px solid #d3d7de;}
.stage-pill.stage-reached_out {background:#e8f1fa; color:#2a4d80;
                                border:1px solid #b8d0ea;}
.stage-pill.stage-discovery   {background:#fdf2d8; color:#8a5a14;
                                border:1px solid #e5c980;}
.stage-pill.stage-demo        {background:rgba(201,147,62,.15);
                                color:#8a5a14;
                                border:1px solid rgba(201,147,62,.35);}
.stage-pill.stage-quote       {background:rgba(28,103,72,.10); color:#1c6748;
                                border:1px solid rgba(28,103,72,.30);}
.stage-pill.stage-bound       {background:#1c6748; color:#fff;}
.stage-pill.stage-lost        {background:rgba(180,40,40,.10); color:#8c1a1a;
                                border:1px solid rgba(180,40,40,.30);}

/* Gate decision pill (cross-session onboarding list) */
.gate-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;}
.gate-pill.gate-green{background:rgba(28,103,72,.10); color:#1c6748;
  border:1px solid rgba(28,103,72,.30);}
.gate-pill.gate-yellow{background:#fdf2d8; color:#8a5a14;
  border:1px solid #e5c980;}
.gate-pill.gate-red{background:rgba(180,40,40,.10); color:#8c1a1a;
  border:1px solid rgba(180,40,40,.30);}

/* Lease pool — kind + status pills */
.kind-pill.kind-aircraft{background:rgba(60,108,182,.10); color:#2a4d80;
  border:1px solid rgba(60,108,182,.30);}
.kind-pill.kind-engine{background:rgba(201,147,62,.12); color:#8a5a14;
  border:1px solid rgba(201,147,62,.35);}
.kind-pill.kind-apu{background:#eef0f4; color:#4a5566;
  border:1px solid #d3d7de;}
.lease-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;}
.lease-pill.lease-available{background:rgba(28,103,72,.10); color:#1c6748;
  border:1px solid rgba(28,103,72,.30);}
.lease-pill.lease-on_lease{background:#e8f1fa; color:#2a4d80;
  border:1px solid #b8d0ea;}
.lease-pill.lease-in_shop{background:#fdf2d8; color:#8a5a14;
  border:1px solid #e5c980;}
.lease-pill.lease-retired{background:#eef0f4; color:#888;
  border:1px solid #d3d7de;}

/* Users page bootstrap-admin pill */
.adm-bootstrap-pill{display:inline-block; margin-left:6px;
  padding:1px 6px; border-radius:3px; font-family:var(--mono);
  font-size:9px; letter-spacing:.06em; text-transform:uppercase;
  background:var(--amber); color:#fff; font-weight:600;}
.adm-yes{font-family:var(--mono); font-weight:700; color:#1c6748;}

/* Research queue — 3-column layout */
.adm-three-col{display:grid; grid-template-columns:repeat(3, 1fr);
  gap:18px; margin-top:14px;}
.rq-col{background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:16px;}
.rq-col h3{font-family:var(--sora); font-weight:700; font-size:15px;
  margin:0 0 8px;}
.rq-col.rq-stub h3{color:#9c3a18;}
.rq-col.rq-basic h3{color:#8a5a14;}
.rq-col.rq-deep h3{color:#1c6748;}
.rq-list{list-style:none; padding:0; margin:0;
  font-family:var(--sans); font-size:13px;}
.rq-list li{padding:3px 0; border-bottom:1px dashed var(--line);}
.rq-list li:last-child{border-bottom:0;}
.rq-list a{color:var(--ink); text-decoration:none;}
.rq-list a:hover{color:var(--blue);}

.adm-two-col{display:grid; grid-template-columns:1fr 1fr; gap:18px;}

@media (max-width:720px){
  .adm-three-col{grid-template-columns:1fr;}
  .adm-two-col{grid-template-columns:1fr;}
  .adm-head-row{flex-direction:column; align-items:flex-start;}
}

/* Featured admin tile (regional aircraft first-wave) */
.adm-tile-pri{border-color:var(--amber); border-width:2px;
  background:linear-gradient(180deg, rgba(201,147,62,.05), #fff 70%);}
.adm-tile-pri .adm-tile-h{color:#8a5a14;}

/* Priority pills on the regional aircraft grid */
.pri-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:700;}
.pri-pill.pri-highest{background:#c9933e; color:#fff;}
.pri-pill.pri-high{background:rgba(201,147,62,.15); color:#8a5a14;
  border:1px solid rgba(201,147,62,.35);}
.pri-pill.pri-medium{background:#eef0f4; color:#4a5566;
  border:1px solid #d3d7de;}
.pri-pill.pri-low{background:#fafafa; color:#888;
  border:1px solid #e0e0e0;}

/* Lease expiries — month grid */
.lx-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
  gap:12px; margin-bottom:28px;}
.lx-month{background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:12px 14px; cursor:pointer; transition:transform .12s, box-shadow .12s;}
.lx-month:hover{transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  border-color:var(--amber);}
.lx-month.selected{border-color:var(--amber); border-width:2px;
  padding:11px 13px; background:rgba(201,147,62,.05);}
.lx-month.lx-past{background:var(--paper-warm); opacity:.85;}
.lx-month.lx-current{border-color:var(--blue);}
.lx-mlabel{font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); font-weight:600;
  margin-bottom:4px; display:flex; justify-content:space-between;
  align-items:baseline;}
.lx-mtotal{font-family:var(--sora); font-weight:700; font-size:26px;
  color:var(--ink); line-height:1.1; margin-bottom:8px;}
.lx-tag{font-family:var(--mono); font-size:9px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;
  background:#eef0f4; color:#888; padding:1px 5px; border-radius:3px;}
.lx-tag.lx-tag-now{background:var(--blue); color:#fff;}
.lx-types{list-style:none; padding:0; margin:0; display:grid; gap:3px;}
.lx-type{display:flex !important; justify-content:space-between;
  cursor:pointer; transition:filter .12s;
  font-family:var(--sans) !important; font-size:11px !important;
  letter-spacing:.02em !important; text-transform:none !important;
  padding:3px 8px !important;}
.lx-type:hover{filter:brightness(.92);}
.lx-tname{flex:1;}
.lx-tn{font-family:var(--mono); font-weight:700; margin-left:8px;}
.lx-more{font-family:var(--mono); font-size:10px; color:var(--muted);
  letter-spacing:.04em;}
.lx-empty{font-family:var(--mono); font-size:11px; color:var(--muted);
  text-align:center; padding:8px 0;}

.lx-detail{margin-top:20px;}
.lx-detail-h{font-family:var(--sora); font-weight:700; font-size:18px;
  margin-bottom:10px;}
.lx-detail-hint{padding:18px; background:#fff; border:1px dashed var(--line);
  border-radius:6px; font-family:var(--serif); font-style:italic;
  color:var(--muted);}
.lx-loading{padding:18px; font-family:var(--mono); font-size:12px;
  color:var(--muted);}

/* Lessor concentration — type pills inside the grid cell */
.lc-types{display:flex; flex-wrap:wrap; gap:4px; max-width:480px;}
.lc-tpill{display:inline-flex !important; align-items:center; gap:5px;
  font-family:var(--sans) !important; font-size:10.5px !important;
  letter-spacing:.02em !important; text-transform:none !important;
  padding:2px 7px !important;}
.lc-tpill b{font-family:var(--mono); font-weight:700;}
.lc-listed{display:inline-block; padding:1px 5px; border-radius:3px;
  font-family:var(--mono); font-size:9px; letter-spacing:.06em;
  font-weight:700; background:var(--amber); color:#fff;
  margin-left:4px;}
.lc-detail{margin-top:20px;}

/* Aircraft dossier */
.ds-top{display:grid; grid-template-columns:340px 1fr; gap:24px;
  margin-bottom:24px; align-items:start;}
.ds-photo{position:relative; width:340px; height:230px;
  background:var(--paper-warm); border-radius:8px; overflow:hidden;
  border:1px solid var(--line);}
.ds-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.ds-photo-fallback{position:absolute; inset:0;
  display:none; flex-direction:column;
  align-items:center; justify-content:center;
  color:var(--muted);}
.ds-photo-empty .ds-photo-fallback{display:flex;}
.ds-photo-icon{font-size:56px; margin-bottom:6px;}
.ds-photo-msg{font-family:var(--mono); font-size:11px;
  letter-spacing:.06em; text-transform:uppercase;}
.ds-photo-links{display:flex; flex-direction:column; gap:6px;
  margin-top:10px; font-family:var(--sans); font-size:12px;}
.ds-photo-links a{color:var(--blue); text-decoration:none;
  border-bottom:1px solid transparent;}
.ds-photo-links a:hover{border-bottom-color:var(--blue);}
.ds-headline h1{font-family:var(--sora); font-weight:800;
  font-size:36px; margin:0 0 4px; letter-spacing:-.01em;}
.ds-aircraft{font-family:var(--serif); font-style:italic;
  font-size:18px; color:var(--ink); margin-bottom:14px;}
.ds-tags{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.ds-snapshot-link{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--blue);
  text-decoration:none; padding:2px 8px; border:1px solid var(--blue);
  border-radius:3px;}
.ds-snapshot-link:hover{background:var(--blue); color:#fff;}

/* At-a-glance headline row */
.ds-glance{display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:0; padding:18px 22px; margin-bottom:6px;
  background:#fff; border:1px solid var(--line); border-radius:8px;
  border-left:3px solid var(--amber);}
.ds-glance-cell{padding:4px 14px; border-left:1px solid var(--line);}
.ds-glance-cell:first-child{border-left:none; padding-left:0;}
.ds-gn-label{font-family:var(--mono); font-size:9.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  margin-bottom:6px;}
.ds-gn-value{font-family:var(--sora); font-weight:800;
  font-size:26px; color:var(--ink); line-height:1.0;
  letter-spacing:-.01em;}
.ds-gn-value-sm{font-family:var(--sora); font-weight:700;
  font-size:14px; color:var(--ink); line-height:1.2;}
.ds-gn-unit{font-family:var(--mono); font-weight:500; font-size:14px;
  color:var(--muted); margin-left:3px;}
.ds-gn-sub{font-family:var(--mono); font-size:10.5px;
  color:#8a5a14; margin-top:4px;}
.ds-glance-foot{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.02em; color:var(--muted);
  margin:0 0 18px 22px; display:flex; flex-wrap:wrap; align-items:baseline;
  gap:8px;}
.ds-glance-foot b{color:var(--ink); font-weight:700; margin-right:4px;
  text-transform:uppercase; letter-spacing:.06em;}
.ds-part{background:rgba(201,147,62,.08);
  padding:3px 8px; border-radius:3px; color:var(--ink);}
.ds-part-sep{font-weight:700; color:var(--amber); padding:0 2px;}
.ds-glance-foot-meta{flex-basis:100%; font-size:9.5px; color:var(--muted);
  margin-top:6px; letter-spacing:.04em;}
.ds-partial-flag{color:#8a5a14 !important;}

/* Storage-exits CH-status badge: amber when CH still says "stored" but
   we see recent flying (the flag worth surfacing). */
.se-badge{display:inline-block; padding:2px 7px; border-radius:3px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.04em;}
.se-badge-warn{background:rgba(201,147,62,.15); color:#8a5a14;
  border:1px solid rgba(201,147,62,.35);}

/* Card grid — dense packing so short cards fill gaps */
.ds-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(360px, 1fr));
  grid-auto-flow:dense;
  gap:16px; margin-bottom:24px;}
.ds-card{background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:16px 18px;}
.ds-card-hl{background:rgba(201,147,62,.05);
  border-color:rgba(201,147,62,.30);}
.ds-card-wide{grid-column:1 / -1;}
.ds-card h3{font-family:var(--sora); font-weight:700; font-size:13px;
  letter-spacing:.04em; text-transform:uppercase; color:var(--ink);
  margin:0 0 10px; padding-bottom:6px;
  border-bottom:1px solid var(--line);}
.ds-card-sub{font-family:var(--mono); font-weight:400; font-size:10.5px;
  letter-spacing:.02em; text-transform:none; color:var(--muted);
  margin-left:6px;}
#ds-cal-card{margin-bottom:24px;}
.ds-field{display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; padding:4px 0;
  border-bottom:1px dashed var(--line); min-height:24px;}
.ds-field:last-child{border-bottom:0;}
.ds-flabel{font-family:var(--mono); font-size:10px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  white-space:nowrap;}
.ds-fvalue{font-family:var(--sans); font-size:13.5px; color:var(--ink);
  text-align:right; max-width:60%;
  word-break:break-word;}
.ds-fvalue.mono{font-family:var(--mono); font-size:12.5px;}
.ds-divider{margin:10px 0; border-top:1px solid var(--line);}
.ds-remarks{font-family:var(--serif); font-size:13.5px; line-height:1.55;
  color:var(--ink); margin:0; white-space:pre-line;}
.ds-foot{font-family:var(--mono); font-size:11px; color:var(--muted);
  letter-spacing:.04em; text-align:right; margin-top:16px;}

/* Lease-expiry tabs */
.lx-tabs{display:flex; gap:0; margin:8px 0 18px; border-bottom:1px solid var(--line);}
.lx-tab{background:transparent; border:0; border-bottom:3px solid transparent;
  padding:10px 18px; font-family:var(--sora); font-weight:600; font-size:13px;
  color:var(--muted); cursor:pointer; transition:color .15s, border-color .15s;}
.lx-tab:hover{color:var(--ink);}
.lx-tab.lx-tab-active{color:var(--ink); border-bottom-color:var(--amber);}
.lx-tabpane{display:none;}
.lx-tabpane.lx-tabpane-active{display:block;}

/* Pivot grid (Tabs 2-5) */
.lx-pivot{font-size:12.5px;}
.lx-pivot th{font-size:9.5px; padding:6px 8px;}
.lx-pivot td{padding:5px 8px;}
.lx-pivot-key{min-width:240px;}
.lx-pivot-mth.lx-past, .lx-pivot-cell.lx-past{background:var(--paper-warm);}
.lx-pivot-mth.lx-current, .lx-pivot-cell.lx-current{background:rgba(60,108,182,.06);}
.lx-pivot-cell[data-mkey]{cursor:pointer;}
.lx-pivot-cell[data-mkey]:hover{background:rgba(201,147,62,.12);}
.lx-pivot-row{cursor:pointer;}
.lx-pivot-row:hover td:first-child{background:rgba(201,147,62,.06);}

/* Shared admin grid controls + map */
.ag-toolbar{display:flex; gap:12px; align-items:center;
  flex-wrap:wrap;}
.ag-search{flex:1; min-width:240px;}
.ag-controls{display:flex; gap:8px; align-items:center;}
.ag-pagesize{padding:5px 8px; font-family:var(--mono); font-size:11px;
  border:1px solid var(--line); border-radius:3px; background:#fff;}
.ag-export{padding:4px 10px;}
.lx-map{height:480px; width:100%; margin-top:24px;
  border:1px solid var(--line); border-radius:8px; overflow:hidden;
  background:#eef0f4;}
.ag-loc{color:var(--blue); text-decoration:none;
  border-bottom:1px dashed var(--blue);}
.ag-loc:hover{background:rgba(60,108,182,.10); border-bottom-style:solid;}
.ag-total{font-family:var(--mono); font-size:13px;}

/* Hyperlinked tail in admin grid → dossier (new tab) */
.ds-tail-link{color:var(--blue); text-decoration:none;
  border-bottom:1px dashed var(--blue);}
.ds-tail-link:hover{background:rgba(60,108,182,.08);
  border-bottom-style:solid;}

@media (max-width:720px){
  .ds-top{grid-template-columns:1fr;}
  .ds-photo{width:100%; height:200px;}
}

/* Pricing Intel page */
.pi-card{background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:22px 24px; margin-bottom:24px;}
.pi-head{display:flex; justify-content:space-between; align-items:flex-start;
  gap:24px; margin-bottom:18px;
  border-bottom:1px solid var(--line); padding-bottom:14px;}
.pi-head h2{font-family:var(--sora); font-weight:700; font-size:22px;
  margin:0 0 4px;}
.pi-engine{font-family:var(--mono); font-size:12px;
  letter-spacing:.04em; color:var(--muted);}
.pi-target-callout{background:rgba(201,147,62,.10);
  border:2px solid var(--amber); border-radius:6px;
  padding:10px 14px; min-width:230px; text-align:right;}
.pi-target-label{font-family:var(--mono); font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:#8a5a14;
  font-weight:700;}
.pi-target-value{font-family:var(--sora); font-size:22px; font-weight:700;
  color:#8a5a14; line-height:1.1; margin-top:4px;}
.pi-target-value span{font-family:var(--mono); font-size:13px;
  font-weight:500; color:#8a5a14; margin-left:2px;}
.pi-target-scope{font-family:var(--serif); font-size:11.5px;
  color:var(--muted); margin-top:6px; line-height:1.4;
  font-style:italic; max-width:300px;}

.pi-sec-h{font-family:var(--sora); font-weight:700; font-size:14px;
  color:var(--ink); margin:18px 0 8px;
  text-transform:uppercase; letter-spacing:.04em;}

.prov-pill{display:inline-block; padding:1px 7px; border-radius:3px;
  background:#eef0f4; color:#444; font-family:var(--mono); font-size:9.5px;
  letter-spacing:.06em; font-weight:600;}

.src-tag{display:inline-block; padding:1px 6px; border-radius:3px;
  font-family:var(--mono); font-size:9px; letter-spacing:.06em;
  font-weight:700; text-transform:uppercase; margin-right:6px;}
.src-tag.src-public{background:rgba(28,103,72,.12); color:#1c6748;}
.src-tag.src-triangulated{background:rgba(201,147,62,.12); color:#8a5a14;}
.src-tag.src-industry{background:#e8f1fa; color:#2a4d80;}
.src-tag.src-tbd{background:#eef0f4; color:#888;}

.pi-anchor{background:#fcfaf6; border-left:3px solid var(--amber);
  padding:10px 14px; margin:14px 0;}
.pi-anchor-h{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:#8a5a14;
  font-weight:700; margin-bottom:4px;}
.pi-anchor p{margin:0; font-family:var(--serif); font-size:13.5px;
  line-height:1.5; color:var(--ink);}

.pi-shootat{background:rgba(60,108,182,.06);
  border:1px solid rgba(60,108,182,.20); border-radius:5px;
  padding:14px 18px; margin:14px 0;}
.pi-shootat-h{font-family:var(--sora); font-weight:700; font-size:13.5px;
  letter-spacing:.04em; text-transform:uppercase; color:#2a4d80;
  margin-bottom:6px;}
.pi-shootat p{margin:0; font-family:var(--serif); font-size:14px;
  line-height:1.55; color:var(--ink);}

.pi-footer{margin-top:32px; padding:18px 22px;
  background:var(--paper-warm); border:1px solid var(--line);
  border-radius:6px;}
.pi-footer h3{font-family:var(--sora); margin:0 0 8px; font-size:15px;}
.pi-footer ul.cp-prose{margin:8px 0 8px 22px;}
.pi-footer ul.cp-prose li{margin-bottom:4px;}

@media (max-width:720px){
  .pi-head{flex-direction:column;}
  .pi-target-callout{text-align:left; min-width:0; width:100%;}
}

.cp-card{margin-top:16px;}
.cp-prose{font-family:var(--serif); font-size:14px; line-height:1.55;
  color:var(--ink); margin:0;}
.cp-fhiq-section{background:rgba(201,147,62,.06);
  padding:14px 18px; border-radius:6px;
  border-left:3px solid var(--amber); margin-top:18px;}
.cp-fhiq-section h3{margin-top:0;}

/* Toast — bottom-right transient notification. */
.fhiq-toast{position:fixed; right:24px; bottom:24px; z-index:9999;
  padding:12px 18px; min-width:260px; max-width:480px;
  border-radius:6px; box-shadow:0 6px 22px rgba(0,0,0,.18);
  font-family:var(--sans); font-size:13.5px; line-height:1.45;
  color:#fff; opacity:0; transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease;}
.fhiq-toast.show{opacity:1; transform:translateY(0);}
.fhiq-toast.info{background:#3d6caf; border-left:3px solid #2a4d80;}
.fhiq-toast.ok  {background:#1c6748; border-left:3px solid #134d35;}
.fhiq-toast.warn{background:#8a5a14; border-left:3px solid #5e3d0e;
  color:#fdf2d6;}
.fhiq-toast.err {background:#8c1a1a; border-left:3px solid #5d1010;}
@media (max-width:520px){
  .fhiq-toast{right:12px; left:12px; bottom:12px; max-width:none;}
}

.onb-side{background:var(--paper-warm); border:1px solid var(--line);
  border-radius:8px; padding:20px;}
.onb-side h3{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); margin:0 0 10px;}
.onb-list{list-style:none; padding:0; margin:0;
  font-family:var(--sans); font-size:13px;}
.onb-list li{padding:6px 0; border-bottom:1px dashed var(--line);}
.onb-list li:last-child{border-bottom:none;}
.onb-list b{color:var(--ink);}

.onb-existing{margin-top:36px;}
.onb-existing h2{font-family:var(--sora); font-weight:700; font-size:20px;
  margin:0 0 12px;}
.status-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;}
.status-intake{background:#e8f1fa; color:#3d6caf;}
.status-uploading{background:#fdf2d8; color:#8a5a14;}
.status-extracting{background:#fbe9c4; color:#8a5a14;}
.status-review{background:#dfe9d5; color:#1c6748;}
.status-inspection{background:#e0d2f0; color:#5a4a7a;}
.status-bound{background:#d6f0e2; color:#1c6748;}
.status-declined{background:#f5d8d2; color:#9c3a18;}

.onb-steps{list-style:none; padding:0; margin:0 0 32px;
  display:flex; flex-wrap:wrap; gap:0; counter-reset:step;
  border:1px solid var(--line); border-radius:6px; overflow:hidden;
  background:#fff;}
.onb-steps .step{flex:1; padding:10px 14px; border-right:1px solid var(--line);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:var(--muted); position:relative;
  background:#fff;}
.onb-steps .step:last-child{border-right:none;}
.onb-steps .step.done{background:rgba(28,103,72,.08); color:#1c6748;}
.onb-steps .step.done::before{content:"✓ "; font-weight:bold;}

/* Drag/drop upload zones */
.dz-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:18px; margin-bottom:24px;}
.dz{background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:14px;}
.dz-head{display:flex; justify-content:space-between; align-items:baseline;
  margin-bottom:10px;}
.dz-head b{font-family:var(--sora); font-size:13.5px; color:var(--ink);}
.dz-count{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; color:var(--muted);}
.dz-drop{border:2px dashed var(--line); border-radius:6px;
  padding:22px 12px; text-align:center;
  font-family:var(--serif); font-style:italic; font-size:13px;
  color:var(--muted); cursor:pointer; transition:all .15s;}
.dz-drop.hover, .dz-drop:hover{border-color:var(--amber);
  background:rgba(201,147,62,.06); color:var(--ink);}
.dz-pick{cursor:pointer;}
.dz-pick span{color:var(--blue); border-bottom:1px solid var(--blue);}
.dz-list{list-style:none; padding:0; margin:10px 0 0;
  display:grid; gap:4px;}
.dz-item{display:grid;
  grid-template-columns:1fr auto auto auto; gap:8px;
  align-items:center; padding:5px 8px;
  background:var(--paper-warm); border-radius:4px;
  font-family:var(--sans); font-size:12px;}
.dz-name{color:var(--ink); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis;}
.dz-size{font-family:var(--mono); font-size:10.5px; color:var(--muted);
  white-space:nowrap;}
.dz-status{font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; padding:2px 6px; border-radius:3px;}
.dz-status.dz-pending{background:#fdf2d8; color:#8a5a14;}
.dz-status.dz-uploaded{background:rgba(28,103,72,.10); color:#1c6748;}
.dz-status.dz-failed{background:rgba(180,40,40,.12); color:#8c1a1a;}
.dz-rm{background:none; border:none; color:var(--muted); cursor:pointer;
  font-size:16px; padding:0 4px; line-height:1;}
.dz-rm:hover{color:#9c3a18;}

.onb-actions{margin:24px 0 28px; display:flex; align-items:center; gap:14px;}
.onb-actionhint{font-family:var(--serif); font-style:italic;
  font-size:13px; color:var(--muted); flex:1;}
.onb-help{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:14px; margin-bottom:16px;}

/* Gates board */
.gates-host{margin:24px 0 32px;}
.gates-banner{display:flex; align-items:center; gap:18px;
  padding:18px 22px; border-radius:8px; margin-bottom:14px;}
.gates-banner h3{font-family:var(--sora); font-weight:700;
  font-size:18px; margin:0;}
.gates-banner p{font-family:var(--mono); font-size:11px;
  letter-spacing:.06em; color:var(--muted); margin:4px 0 0;
  text-transform:uppercase;}
.gates-icon{font-size:32px; font-weight:700; width:48px; text-align:center;
  font-family:var(--sora);}
.gates-green{background:rgba(28,103,72,.10); border:1px solid rgba(28,103,72,.30);}
.gates-green .gates-icon{color:#1c6748;}
.gates-yellow{background:rgba(201,147,62,.10); border:1px solid rgba(201,147,62,.30);}
.gates-yellow .gates-icon{color:#8a5a14;}
.gates-red{background:rgba(180,40,40,.10); border:1px solid rgba(180,40,40,.35);}
.gates-red .gates-icon{color:#8c1a1a;}
.gates-findings{list-style:none; padding:0; margin:0; display:grid; gap:6px;}
.gates-findings .finding{display:flex; gap:12px; align-items:flex-start;
  padding:8px 12px; background:#fff; border:1px solid var(--line);
  border-radius:5px;}
.gates-findings .finding b{display:block; font-family:var(--sans);
  font-size:14px; color:var(--ink); font-weight:600;}
.gates-findings .finding .dim{font-size:12.5px; margin-top:2px;}
.gates-findings .finding-red{border-left:3px solid #9c3a18;}
.gates-findings .finding-yellow{border-left:3px solid #c9933e;}
.gates-findings .finding-green{border-left:3px solid #1c6748;}

/* Facts review form */
.facts-form{background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:20px; margin-bottom:32px;}
.facts-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:20px;}
.facts-grid fieldset{border:1px solid var(--line); border-radius:6px;
  padding:14px;}
.facts-grid legend{font-family:var(--sora); font-weight:700;
  padding:0 8px; font-size:13px; color:var(--ink);}
.facts-grid label{display:block; margin-bottom:8px;
  font-family:var(--mono); font-size:10px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);}
.facts-grid input{display:block; width:100%; margin-top:3px;
  padding:6px 8px; font-family:var(--sans); font-size:13px;
  color:var(--ink); border:1px solid var(--line); border-radius:3px;
  text-transform:none; letter-spacing:0;}
.facts-form .full-wide{display:block; margin-top:20px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);}
.facts-form .full-wide textarea{width:100%; padding:8px 10px; margin-top:4px;
  font-family:var(--sans); font-size:13px; border:1px solid var(--line);
  border-radius:4px; resize:vertical;
  text-transform:none; letter-spacing:0;}
.facts-form button{margin-top:16px;}

/* Contracts list */
.contracts-host{margin-bottom:32px;}
.contracts-list{list-style:none; padding:0; margin:0 0 12px;
  display:grid; gap:8px;}
.contracts-list li{display:flex; align-items:baseline; gap:14px;
  padding:10px 14px; background:#fff; border:1px solid var(--line);
  border-radius:5px;}
.contract-kind{font-family:var(--sora); font-weight:700; font-size:14px;
  color:var(--ink); flex:1;}
.btn-text{background:none; border:none; color:var(--blue);
  font-family:var(--sans); font-size:13px; cursor:pointer; padding:0;
  text-decoration:none; border-bottom:1px solid transparent;}
.btn-text:hover{border-bottom-color:var(--blue);}

.inspect-form{background:#fff; border:1px solid var(--line); border-radius:8px;
  padding:20px; margin-bottom:32px;}
.inspect-form .lf-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;
  margin-bottom:14px;}
.inspect-form label{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  display:block;}
.inspect-form input{display:block; width:100%; margin-top:4px; padding:8px 10px;
  font-family:var(--sans); font-size:14px; border:1px solid var(--line);
  border-radius:4px; text-transform:none; letter-spacing:0;}
.btn-secondary{padding:9px 16px; font-family:var(--sora); font-weight:700;
  font-size:13px; background:#fff; color:var(--ink);
  border:1px solid var(--ink); border-radius:4px; cursor:pointer;}
.btn-secondary:hover{background:var(--paper-warm);}

@media (max-width:820px){
  .onb-grid{grid-template-columns:1fr;}
  .onb-head-tail{flex-direction:column;}
  .dz-grid{grid-template-columns:1fr;}
  .onb-steps{flex-direction:column;}
  .onb-steps .step{border-right:none; border-bottom:1px solid var(--line);}
  .onb-actions{flex-direction:column; align-items:flex-start;}
}

/* My Tails: secondary row beneath each tail carrying Owner / Engines / MSN.
   Visually attached to the primary row above it — no border between them,
   shared hover/selected background, slightly muted background to read as a
   second line on the same "card". */
table.grid th .th-sub{display:block; font-weight:500; font-size:9.5px;
  letter-spacing:.06em; color:#b8a878; margin-top:1px;
  text-transform:uppercase;}
table.grid tr.grid-row td{border-bottom:none;}
table.grid tr.grid-row-sub{cursor:pointer; transition:background .12s;}
table.grid tr.grid-row-sub td{padding-top:0; padding-bottom:9px;
  background:rgba(252,246,232,.45);}
table.grid tr.grid-row:hover,
table.grid tr.grid-row:hover + tr.grid-row-sub,
table.grid tr.grid-row-sub:hover,
table.grid tr.grid-row-sub:hover{background:#fcf6e8;}
table.grid tr.grid-row-sub:hover td{background:#fcf6e8;}
table.grid tr.selected td{background:#fdf2d8 !important;
  border-bottom-color:var(--amber);}
table.grid td.g-sub{display:flex; flex-wrap:wrap; gap:4px 22px;
  font-family:var(--sans); font-size:12px; color:var(--ink);}
.g-sub-field{display:inline-flex; align-items:baseline; gap:6px;
  min-width:0;}
.g-sub-lbl{font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); font-weight:600;
  white-space:nowrap;}
table.grid td.g-sub .dim{color:var(--muted); font-style:italic;}
.grid-pager{display:flex; align-items:center; justify-content:center;
  gap:14px; padding:10px 14px; border-top:1px solid var(--line);
  background:var(--paper-warm);}
.grid-pager button{padding:5px 12px; font-family:var(--mono); font-size:11.5px;
  letter-spacing:.04em; background:#fff; border:1px solid var(--line);
  border-radius:4px; color:var(--ink); cursor:pointer;}
.grid-pager button:hover:not(:disabled){border-color:var(--amber);
  color:var(--amber);}
.grid-pager button:disabled{opacity:.4; cursor:not-allowed;}
.grid-pager #mt-page{font-family:var(--mono); font-size:11.5px;
  color:var(--muted); letter-spacing:.06em;}

.card-host{min-height:180px; margin-bottom:32px;}
.card-host-hint{padding:36px 24px; text-align:center;
  background:var(--card); border:1px dashed var(--line); border-radius:7px;
  font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:14px;}
.card-host-hint.err{border-color:#f4b8b1; color:#8a1c11;}
.card-host-loading{padding:36px 24px; text-align:center;
  background:var(--card); border:1px solid var(--line); border-radius:7px;
  font-family:var(--mono); font-size:11px; letter-spacing:.10em;
  text-transform:uppercase; color:var(--muted);}

/* On my-tails, the embedded card sits inside .card-host — pull the section
 * padding in even more so it doesn't double-pad with the page container. */
.page-mytails .card-host .confirm,
.page-mytails .card-host .result,
.page-mytails .card-host .mission-section,
.page-mytails .card-host .post-mission{
  padding-left:18px; padding-right:18px;}
.page-mytails .card-host .confirm-in,
.page-mytails .card-host .result,
.page-mytails .card-host .mission-section,
.page-mytails .card-host .post-mission{max-width:none;}

/* ============================================================
 * Rate card — additional -25% vertical compression (req'd by Jeremy).
 * Kept side-by-side cycle-card aligned. No text collision: line-heights
 * stay > 1.2 and adjacent elements still have ≥4px between baselines.
 * ============================================================ */
.rate-card{padding:16px 22px;}
.rate-label{font-size:9.5px; margin-bottom:5px;}
.rate-range{font-size:42px; margin:2px 0 1px; line-height:.95;}
.rate-cur{font-size:26px; vertical-align:11px;}
.rate-unit{font-size:13px;}
.rate-alacarte{margin-top:6px; padding:5px 9px; font-size:12px; line-height:1.35;}
.rate-annual{margin-top:9px; padding:7px 11px; font-size:12px; line-height:1.4;}
.breakdown{margin-top:11px; padding-top:9px;}
.bd-head{margin-bottom:6px; font-size:9.5px;}
.bd-row{margin-bottom:6px;}
.bd-top{font-size:12.5px; margin-bottom:3px;}
.bd-val{font-size:11px;}
.bd-bar{height:4px;}
.cycle-card{padding:16px 20px;}
.cycle-card h3{font-size:16px;}
.cycle-card h3 + p{font-size:12.5px; margin:6px 0 10px; line-height:1.4;}
.cycle-facts li{padding:5px 0;}
.cycle-facts span, .cycle-facts b{font-size:12px;}
.result{padding:18px 24px 8px;}
.result-head{margin-bottom:10px;}

/* ============================================================
 * Mission sidebar — make the right column (stats + top routes)
 * fit inside the globe's 380px height. Top routes get its own
 * inner scroll bar if it overflows; rest of the column stays
 * static so the eye-catching numbers don't move on scroll.
 * ============================================================ */
.mission-body{align-items:stretch;}
.mission-side{max-height:380px; min-height:380px; overflow:hidden;
  display:flex; flex-direction:column;}
.mission-side .mission-badge{flex:0 0 auto;}
.mission-side .mission-totals,
.mission-side .mission-annualized,
.mission-side .mission-stats{flex:0 0 auto;}
.mission-side .mission-routes{flex:1 1 auto; min-height:0;
  display:flex; flex-direction:column;}
.mission-routes ul{flex:1 1 auto; min-height:0; overflow-y:auto;
  scrollbar-width:thin; scrollbar-color:rgba(201,147,62,.4) transparent;}
.mission-routes ul::-webkit-scrollbar{width:6px;}
.mission-routes ul::-webkit-scrollbar-thumb{
  background:rgba(201,147,62,.35); border-radius:3px;}
.mission-totals{margin:4px 0 0;}
.mission-totals b{font-size:26px;}
.mission-stats{margin-top:8px;}
.mission-stats li{padding:4px 0; font-size:13px;}
.mission-stats span{font-size:9px;}
.mission-routes{margin-top:8px; padding-top:6px;}
.mission-routes .mr-head{margin-bottom:4px; font-size:9.5px;}
.mission-routes li{padding:1px 0; font-size:11px;}

/* ============================================================
 * .post-mission — covers chips + disclaimer relocated from
 * inside .result to under the Mission section so the rate /
 * pricing block stays tight and the coverage list reads at the
 * bottom (a more natural narrative: "what + why + history + what's covered").
 * ============================================================ */
.post-mission{max-width:1100px; margin:0 auto;
  padding:8px 24px 36px;}
.post-mission .covers{margin-top:0;}

/* ============================================================
 * Mission sidebar — SEVERE compression pass. Goal: everything
 * stacks from the top, fits in the 380px globe height, no scroll.
 * The earlier pass left `justify-content: center` on .mission-side
 * fighting the column flow → content overflowed the card.
 * ============================================================ */
.mission-side{justify-content:flex-start!important; gap:0;}
.mission-badge{font-size:9px!important; padding:3px 7px!important;
  letter-spacing:.10em;}
.mission-totals{margin:6px 0 0; font-size:9.5px;
  letter-spacing:.06em;}
.mission-totals b{font-size:22px; margin-right:2px;}
.mission-annualized{margin-top:2px; font-size:10.5px; line-height:1.3;}
.mission-annualized i{font-size:8.5px; letter-spacing:.08em;}
.mission-annualized .ma-since{font-size:9.5px;}

/* Stats list: 2-column compact grid (was 5 stacked rows). */
.mission-stats{margin-top:8px; display:grid;
  grid-template-columns:1fr 1fr; gap:0 14px; border-top:none;}
.mission-stats li{display:flex; justify-content:space-between;
  align-items:baseline; padding:3px 0; border-top:1px solid rgba(255,255,255,.08);
  font-size:11.5px;}
.mission-stats li:nth-child(-n+2){border-top:none;}  /* no top rule on first row */
.mission-stats span{font-size:8.5px; letter-spacing:.06em;}
.mission-stats b{font-size:11.5px;}

/* Routes — tighter list, fewer routes by default. The container can scroll
 * if more than ~7 fit, but most cases now stay on one screen. */
.mission-routes{margin-top:8px; padding-top:6px;
  border-top:1px solid rgba(255,255,255,.10);}
.mission-routes .mr-head{font-size:8.5px; letter-spacing:.08em;
  margin-bottom:3px;}
.mission-routes .mr-sub{font-size:8px; margin-left:4px;}
.mission-routes li{padding:1px 0; font-size:10.5px; line-height:1.25;}
.mission-routes .mr-pair{gap:4px;}
.mission-routes .mr-pair i{font-size:9.5px;}
.mission-routes .mr-n{font-size:9px;}
.mission-stats{list-style:none; padding:0; margin:22px 0 0;}
.mission-stats li{display:flex; justify-content:space-between; align-items:baseline;
  padding:11px 0; border-top:1px solid rgba(255,255,255,.10);}
.mission-stats span{color:#8497af; font-family:var(--mono); letter-spacing:.08em;
  text-transform:uppercase; font-size:10.5px;}
.mission-stats b{color:#dbe6f3; font-weight:600; font-family:var(--mono);
  font-size:14.5px; letter-spacing:.02em;}
.mission-empty{margin-top:16px; padding:16px; background:rgba(255,255,255,.04);
  border-radius:6px; font-family:var(--serif); font-style:italic;
  font-size:13.5px; color:#9aa9c0; text-align:center;}

/* Top routes mini-grid — tight, sits under the stats list. */
.mission-routes{margin-top:18px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.10);}
.mission-routes .mr-head{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.10em; text-transform:uppercase; color:var(--amber-soft);
  margin-bottom:8px;}
.mission-routes .mr-sub{margin-left:6px; font-size:9.5px; letter-spacing:.06em;
  color:#7d8ba2; text-transform:none; font-style:italic;}
.mission-routes ul{list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:1fr; row-gap:3px;}
.mission-routes li{display:flex; justify-content:space-between;
  align-items:baseline; padding:3px 0; font-family:var(--mono);
  font-size:12px; color:#dbe6f3;}
.mission-routes .mr-pair{display:inline-flex; align-items:baseline; gap:6px;}
.mission-routes .mr-pair b{color:#fff; font-weight:600; letter-spacing:.02em;}
.mission-routes .mr-pair i{color:var(--amber-soft); font-style:normal;
  font-size:11px;}
.mission-routes .mr-n{color:#8497af; font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase;}

/* Daily-activity calendar heatmap — full-width below the globe + stats row. */
.mission-cal{margin-top:24px; padding-top:18px;
  border-top:1px solid rgba(255,255,255,.10);}
.mission-cal .mc-head{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.10em; text-transform:uppercase; color:var(--amber-soft);
  margin-bottom:6px;}
.mission-cal .mc-host{width:100%; height:160px;}

/* Home base chip in the confirm-facts row */
.confirm-facts .home-base b{font-weight:700; letter-spacing:.02em;}
.confirm-facts .home-base span{color:var(--muted); font-weight:400;}

@media(max-width:880px){
  .mission-body{grid-template-columns:1fr;}
  .globe-wrap{height:380px;}
  .mission-cal .mc-host{height:140px;}
}
.rate-card{background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:36px 38px; box-shadow:var(--sh-md);
  position:relative;}
.rate-card::before{content:""; position:absolute; top:0; left:36px; right:36px;
  height:3px; background:var(--amber);}
.rate-label{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
.rate-range{font-family:var(--sora); font-weight:800; font-size:64px;
  letter-spacing:-.03em; margin:6px 0 4px; line-height:1;
  color:var(--ink);}
.rate-cur{font-family:var(--serif); font-weight:600; font-style:italic;
  font-size:36px; vertical-align:18px; margin-right:2px; color:var(--blue);
  -webkit-text-fill-color:var(--blue);}
.rate-dash{font-family:var(--serif); font-style:italic; font-weight:500;
  padding:0 8px; color:var(--amber);
  -webkit-text-fill-color:var(--amber);}
.rate-unit{font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:16px; color:var(--muted);}
.rate-alacarte{margin-top:10px; padding:9px 12px;
  border:1px dashed var(--cream); border-radius:5px; background:transparent;
  font-family:var(--serif); font-style:italic; font-size:13px;
  color:#6a5a3a; line-height:1.45;}
.rate-alacarte b{color:#3a2a08; font-style:normal; font-weight:700;
  font-family:var(--sans); letter-spacing:.01em;}
.rate-annual{margin-top:18px; padding:14px 18px; background:var(--paper-warm);
  border:1px solid var(--cream); border-radius:6px;
  font-family:var(--mono); font-size:13px; color:#7a5320; line-height:1.5;}
.rate-annual b{color:#5e3d12; font-weight:600;}
.breakdown{margin-top:28px; border-top:1px solid var(--line); padding-top:22px;}
.bd-head{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
.bd-row{margin-bottom:14px;}
.bd-top{display:flex; justify-content:space-between; font-size:14px;
  margin-bottom:6px;}
.bd-label{font-weight:600; color:var(--ink);}
.bd-val{color:var(--muted); font-family:var(--mono); font-size:12.5px;}
.bd-bar{height:6px; background:var(--paper); border-radius:3px; overflow:hidden;}
.bd-bar span{display:block; height:100%; background:var(--grad); border-radius:3px;}

.cycle-card{background:linear-gradient(165deg,#0f2038,#0a1424); color:#fff;
  border:1px solid rgba(48,130,240,.22); border-radius:8px; padding:32px;
  position:relative;}
.cycle-card::before{content:""; position:absolute; top:0; left:32px; right:32px;
  height:3px; background:var(--amber);}
.cycle-badge{display:inline-block; font:700 10.5px/1 var(--mono); letter-spacing:.12em;
  padding:6px 10px; border-radius:4px; background:rgba(255,255,255,.08);
  color:#aab8cd; margin-bottom:18px;}
.cycle-badge.live{background:var(--amber); color:#1a1108;}
.cycle-card h3{font-family:var(--serif); font-weight:700; font-size:21px;
  color:#fff; margin:0; letter-spacing:-.012em;}
.cycle-card h3 + p{color:#a7b6cb; font-size:14.5px; margin:12px 0 22px;
  font-family:var(--serif); font-style:italic;}
.cycle-facts{list-style:none; margin:0; padding:0;}
.cycle-facts li{display:flex; justify-content:space-between; padding:11px 0;
  border-top:1px solid rgba(255,255,255,.10); font-size:13px;}
.cycle-facts span{color:#8497af; font-family:var(--mono); letter-spacing:.05em;
  text-transform:uppercase; font-size:10.5px;}
.cycle-facts b{color:#dbe6f3; font-weight:600; font-family:var(--sans);
  text-transform:none; font-size:13px; letter-spacing:0;}

.covers{margin-top:28px;}
.covers-head{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); margin-bottom:13px;}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{background:#fff; border:1px solid var(--line2); color:var(--ink);
  font-size:13px; font-weight:500; padding:7px 13px; border-radius:4px;}
.disclaimer{margin-top:28px; background:var(--paper-warm);
  border:1px solid var(--cream); border-radius:6px;
  padding:18px 20px 18px 60px; position:relative;
  font-size:13px; color:#7a5320; line-height:1.65;
  font-family:var(--serif); font-style:italic;}
.disclaimer::before{content:"\00A7"; position:absolute; left:22px; top:14px;
  font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:26px; color:var(--amber);}
.disclaimer strong{color:#5e3d12; font-weight:700; font-style:normal;}

/* ---- LEAD section ---- */
.lead{background:var(--ink); color:#fff; padding:80px 28px; margin-top:42px;
  position:relative;}
.lead::before{content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:140px; height:1px; background:rgba(201,147,62,.5);}
.lead-in{max-width:1100px; margin:0 auto; display:grid;
  grid-template-columns:.85fr 1.15fr; gap:56px; align-items:start;}
.lead-copy .kicker{margin-bottom:14px;}
.lead-copy h2{font-family:var(--serif); font-weight:700; font-size:42px;
  color:#fff; margin:0; letter-spacing:-.018em;}
.lead-copy h2 .it{font-style:italic;}
.lead-copy p{color:#aab8cd; margin-top:18px; font-size:15.5px;}
.lead-form{background:var(--card); border-radius:8px; padding:30px;
  box-shadow:var(--sh-lg); border-top:3px solid var(--amber);}
.lf-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.lead-form label{display:block; font-family:var(--mono); font-size:10.5px;
  font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin-bottom:14px;}
.lead-form input,.lead-form textarea{width:100%; margin-top:7px;
  border:1px solid var(--line2); border-radius:5px; padding:11px 13px;
  font:500 15px/1.4 var(--sans); color:var(--ink); background:#fff;}
.lead-form textarea{resize:vertical; font-family:var(--serif); font-style:italic;}
.lead-form input:focus,.lead-form textarea:focus{outline:0;
  border-color:var(--amber); box-shadow:0 0 0 3px rgba(201,147,62,.18);}
.btn-primary{width:100%; border:0; cursor:pointer; background:var(--ink);
  color:#fff; font:700 15px/1 var(--sora); padding:16px;
  border-radius:5px; margin-top:6px; letter-spacing:.01em;
  border-bottom:3px solid var(--amber); transition:background .15s;}
.btn-primary:hover{background:var(--ink2);}
.btn-primary:disabled{opacity:.6; cursor:default;}
.lead-msg{margin-top:12px; font-size:13.5px; padding:10px 13px; border-radius:5px;}
.lead-msg.err{background:#fdeceb; color:var(--err);}
.lead-thanks{font-family:var(--serif); font-size:16px; color:var(--ink);
  line-height:1.6;}
.lead-thanks b{color:var(--ok); font-family:var(--sans);}

/* ---- COLOPHON FOOTER ---- */
.colophon{background:#070f1d; color:#7e8ea6; padding:64px 28px 40px;
  border-top:1px solid rgba(168,210,250,.08);}
.cl-in{max-width:1240px; margin:0 auto;}
.cl-brand{display:flex; align-items:center; gap:14px;
  padding-bottom:32px; border-bottom:1px solid rgba(168,210,250,.10);
  margin-bottom:32px;}
.cl-brand .brand-mark{width:42px; height:42px;}
.cl-wm{font-family:var(--sora); font-weight:800; font-size:22px; color:#fff;
  letter-spacing:-.022em;}
.cl-wm b{color:var(--iqblue);}
.cl-tag{font-family:var(--serif); font-style:italic; font-size:13.5px;
  color:#9aa9c0; margin-top:2px;}
.cl-cols{display:grid; grid-template-columns:repeat(2, 1fr); gap:48px;
  max-width:720px;
  padding-bottom:32px; border-bottom:1px solid rgba(168,210,250,.10);
  margin-bottom:22px;}
.cl-h{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  color:var(--amber); margin-bottom:14px;}
.cl-cols section ul{list-style:none; padding:0; margin:0;}
.cl-cols section li{font-size:13.5px; padding:5px 0; color:#9aa9c0;}
.cl-cols section p{font-size:13px; line-height:1.6; margin:0 0 10px;
  color:#9aa9c0;}
.cl-cols section i{font-family:var(--serif); font-style:italic; color:#cdd9e8;}
.cl-sans{font-family:var(--sans); font-weight:600; color:#cdd9e8;}
.cl-sora{font-family:var(--sora); font-weight:700; color:#cdd9e8;}
.cl-mono{font-family:var(--mono); color:#cdd9e8;}
.cl-fine{display:flex; flex-wrap:wrap; gap:6px 12px; font-family:var(--mono);
  font-size:10.5px; letter-spacing:.06em; color:#5a6c87; text-transform:uppercase;}
.cl-sep{color:rgba(168,210,250,.18);}

/* ---- generic helpers ---- */
.mono{font-family:var(--mono); font-size:12px;}
.muted{color:var(--muted);}

/* ---- ADMIN (kept simple, matched palette) ---- */
.admin{max-width:1240px; margin:0 auto; padding:42px 28px 70px;}
.admin h1{font-family:var(--serif); font-size:30px; font-weight:700;}
.admin h2{font-family:var(--mono); font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--amber); margin:36px 0 14px;}
.admin-stats{display:flex; gap:16px; margin-top:20px;}
.astat{background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:18px 24px; box-shadow:var(--sh-sm);}
.astat b{display:block; font:800 26px/1 var(--sora); color:var(--ink);}
.astat span{font-family:var(--mono); font-size:10.5px; color:var(--muted);
  letter-spacing:.06em; text-transform:uppercase;}
.atable{width:100%; border-collapse:collapse; background:#fff;
  border:1px solid var(--line); border-radius:6px; overflow:hidden; font-size:13px;}
.atable th,.atable td{padding:9px 12px; text-align:left;
  border-bottom:1px solid var(--line); vertical-align:top;}
.atable th{background:#eef3fb; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.atable tr:last-child td{border-bottom:0;}

/* ---- responsive ---- */
@media(max-width:980px){
  .hero-h1{font-size:60px;}
  .hero-grid{grid-template-columns:1fr; gap:48px;}
  .hero-art{max-width:520px; margin:0 auto;}
  .cov-in,.result-grid,.lead-in,.confirm-in{grid-template-columns:1fr;}
  .cl-cols{grid-template-columns:1fr 1fr;}
  .nav-links a:not(.nav-cta),.nav-rule{display:none;}
}
@media(max-width:640px){
  .hero{padding:54px 22px 70px;}
  .hero-h1{font-size:46px;}
  .how-in h2,.cov-text h2{font-size:34px;}
  .rate-range{font-size:46px;} .rate-cur{font-size:26px; vertical-align:12px;}
  .confirm-reg{font-size:44px;}
  .cl-cols{grid-template-columns:1fr;}
  .lf-row{grid-template-columns:1fr;}
  .admin-stats{flex-wrap:wrap;}
  .how-list li{grid-template-columns:60px 1fr; gap:18px;}
}

/* ============================================================
 * Why a program — 3-card ROI strip between the rate card and
 * the Mission Profile. Single tight row, mobile-stacks. Numbered
 * (01/02/03) rather than icons so it matches the section-mark
 * typography elsewhere (§ 01 / § 02 / § 03 etc.).
 * ============================================================ */
.why-program{background:var(--paper-warm); border-top:1px solid var(--cream);
  border-bottom:1px solid var(--cream);}
.wp-in{max-width:1100px; margin:0 auto; padding:18px 24px 20px;}
.wp-eyebrow{display:flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:#7a5320; margin-bottom:10px;}
.wp-eyebrow .sect{font-size:11px; color:var(--amber);}
.wp-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.wp-card{position:relative; padding:14px 16px 14px 46px;
  background:var(--card); border:1px solid var(--cream); border-radius:6px;
  box-shadow:0 1px 2px rgba(60,40,8,.04);}
.wp-num{position:absolute; top:14px; left:14px;
  font-family:var(--sora); font-weight:800; font-size:18px;
  color:var(--amber); letter-spacing:-.01em;}
.wp-card h4{margin:0 0 6px; font-family:var(--sans); font-weight:700;
  font-size:14px; color:var(--ink); letter-spacing:-.005em;}
.wp-card p{margin:0; font-family:var(--serif); font-size:13px;
  line-height:1.45; color:#4a4030;}
.wp-card p em{font-style:italic; font-weight:600; color:#3a2a08;}
@media(max-width:820px){
  .wp-cards{grid-template-columns:1fr; gap:10px;}
}
.page-mytails .card-host .why-program .wp-in{max-width:none;
  padding-left:18px; padding-right:18px;}

/* Lead form — two-quote sales hook. Lives inside .lead (dark navy bg).
 *
 * NOTE on specificity: `.lead-copy p { color:#aab8cd }` further up the
 * file beats a bare `.lead-twoquote` class selector (0,1,1 vs 0,1,0).
 * Use `.lead-copy p.lead-twoquote` (0,2,1) to win, with !important as
 * belt-and-suspenders since previous overrides were silently swallowed. */
/* Lead form — two-quote sales hook.
 *
 * History: I lost the cascade three times trying to color this block.
 * Line 27 of this file sets `em { color: var(--ink) }` (dark navy)
 * globally, and .lead-copy p sets a light-blue. The fix was to (a)
 * stop using <em> in the markup entirely and (b) use inline styles
 * on the <p> + <b> for the color-critical bits so no CSS rule can
 * silently win the fight. This block only handles layout — colors
 * live inline in templates/quote.html. */
.lead-copy p.lead-twoquote{
  margin-top:14px!important;
  padding:14px 16px!important;
  background:rgba(226,182,110,.16)!important;
  border:1px solid rgba(226,182,110,.35)!important;
  border-left:3px solid var(--amber)!important;
  border-radius:0 5px 5px 0!important;
  font-family:var(--serif)!important;
  font-size:15px!important;
  line-height:1.55!important;
}
.lead-copy p.lead-twoquote .lq-key{
  color:#ffe9b0;     /* warm amber accent on the key phrases */
  font-weight:600;
}

/* ============================================================
 * Mission Profile empty state — when 0 ADS-B cycles exist for
 * the tail (common for LADD/PIA-blocked corporate jets). The
 * rich body is hidden; this panel explains why and reassures
 * the visitor that pricing still works without it.
 * ============================================================ */
.m-no-data{padding:28px 32px; text-align:center; color:#dbe6f3;}
.m-no-data .mnd-icon{font-size:42px; line-height:1; margin-bottom:14px;
  color:var(--amber-soft); font-family:Inter,Helvetica,sans-serif;}
.m-no-data h3{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:20px; color:#fff; margin:0 0 14px; letter-spacing:-.005em;}
.m-no-data p{font-family:var(--serif); font-size:14.5px; line-height:1.6;
  color:#a7b6cb; margin:0 auto 10px; max-width:620px;}
.m-no-data p b{color:#e8d9b8; font-weight:600;
  font-family:var(--mono); font-size:12px;
  background:rgba(201,147,62,.18); padding:1px 6px; border-radius:3px;}
.m-no-data .mnd-cta{color:#cfe6ef; font-style:italic; font-size:13.5px;
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.10);
  max-width:620px;}

/* ============================================================
 * /engines — engine + APU reference page. Reuses the grid-*
 * styles from /my-tails for the DataGrid; this block adds the
 * page-level layout, the kind/status pills, and the detail card.
 * ============================================================ */
.eng{padding:28px 0 60px; background:var(--paper);}
.eng-in{max-width:1180px; margin:0 auto; padding:0 28px;}
.eng-head{margin-bottom:18px;}
.eng-head h1{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:34px; color:var(--ink); margin:6px 0 8px; letter-spacing:-.01em;}
.eng-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:15px; line-height:1.55; max-width:760px;}
.eng-sub .dim{color:#9aa9c0; font-size:13.5px;}

/* Grid extra bits — kind/status pills, depth dots */
.kind-pill{display:inline-block; padding:2px 7px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.10em;
  font-weight:700;}
.kind-engine{background:var(--paper-warm); color:#5e3d12;}
.kind-apu{background:#e6efff; color:#1b56b0;}
table.grid .dep-deep{color:#27ae60; margin-left:5px; font-weight:700;}
table.grid .dep-basic{color:#bbb; margin-left:5px;}
.prod-on{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:#166534; background:#dcfce7; padding:2px 7px; border-radius:3px;
  font-weight:600;}
.prod-off{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:#7a5320; background:var(--paper-warm); padding:2px 7px;
  border-radius:3px; font-weight:600;}

/* Engine detail card (lives below the grid, swaps on click) */
.eng-detail-host{margin-bottom:32px;}
.eng-detail-hint{padding:32px 24px; text-align:center;
  background:var(--card); border:1px dashed var(--line); border-radius:7px;
  font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:14px;}
.eng-detail-hint.err{border-color:#f4b8b1; color:#8a1c11;}
.eng-detail-loading{padding:32px 24px; text-align:center;
  background:var(--card); border:1px solid var(--line); border-radius:7px;
  font-family:var(--mono); font-size:11px; letter-spacing:.10em;
  text-transform:uppercase; color:var(--muted);}

.eng-card{background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:24px 28px; box-shadow:var(--sh-md);
  position:relative;}
.eng-card::before{content:""; position:absolute; top:0; left:28px; right:28px;
  height:3px; background:var(--amber);}
.eng-card-top{display:flex; justify-content:space-between; align-items:flex-start;
  gap:24px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.ec-kind{font-family:var(--mono); font-size:10.5px; letter-spacing:.10em;
  text-transform:uppercase; color:var(--amber); margin-bottom:4px;}
.ec-model{font-family:var(--sora); font-weight:800; font-size:28px;
  color:var(--ink); margin:0 0 4px; letter-spacing:-.01em;}
.ec-mfg{font-family:var(--serif); font-style:italic; font-size:15px;
  color:var(--muted);}
.ec-meta{text-align:right; display:flex; flex-direction:column;
  align-items:flex-end; gap:6px; font-family:var(--mono); font-size:11px;
  color:var(--muted);}
.depth-tag{display:inline-block; padding:2px 8px; border-radius:3px;
  font-size:9.5px; letter-spacing:.08em; font-weight:700;
  text-transform:uppercase; font-family:var(--mono);}
.depth-deep{background:#dcfce7; color:#166534;}
.depth-basic{background:var(--paper-warm); color:#7a5320;}
.depth-stub{background:#e2e3e5; color:#6c757d;}

.ec-blurb{font-family:var(--serif); font-size:15px; line-height:1.6;
  color:#2a3140; margin:14px 0 18px; max-width:820px;}

.ec-specs{display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px 18px; margin-bottom:20px;}
.ec-spec{background:var(--paper-warm); padding:9px 12px; border-radius:5px;
  border:1px solid var(--cream);}
.ec-spec span{display:block; font-family:var(--mono); font-size:9.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  margin-bottom:3px;}
.ec-spec b{font-family:var(--sans); font-size:14px; color:var(--ink);
  font-weight:600;}
.ec-spec-hl{background:rgba(201,147,62,.12);
  border-color:rgba(201,147,62,.40);}
.ec-spec-hl b{color:var(--amber); font-family:var(--sora); font-size:15px;
  font-weight:700;}

.ec-section{margin-top:18px;}
.ec-section h3{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.10em; text-transform:uppercase; color:var(--muted);
  margin:0 0 8px; font-weight:600;}
.ec-apps{list-style:none; padding:0; margin:0; display:grid; gap:5px;
  font-family:var(--sans); font-size:13.5px; line-height:1.45;}
.ec-apps li{padding:4px 0; border-bottom:1px dashed var(--line);}
.ec-apps b{font-family:var(--mono); font-size:11.5px; color:var(--amber);
  letter-spacing:.04em; margin-right:6px;}

.ec-table{width:100%; border-collapse:collapse;
  font-family:var(--sans); font-size:13px;}
.ec-table th{text-align:left; padding:6px 10px;
  font-family:var(--mono); font-size:10px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); font-weight:600;
  border-bottom:1px solid var(--line);}
.ec-table td{padding:7px 10px; border-bottom:1px solid var(--line);
  vertical-align:top;}
.ec-table .num{text-align:right; font-variant-numeric:tabular-nums;
  font-family:var(--mono); font-size:12.5px;}
.ec-table .dim{color:var(--muted); font-size:12px;
  font-family:var(--serif); font-style:italic;}

.ec-sources{list-style:none; padding:0; margin:0; display:grid; gap:4px;}
.ec-sources li{padding:3px 0;}
.ec-sources a{font-family:var(--sans); font-size:13px; color:var(--blue);
  text-decoration:none; border-bottom:1px solid transparent;}
.ec-sources a:hover{border-bottom-color:var(--blue);}

.ec-foot{margin-top:18px; padding-top:14px; border-top:1px solid var(--line);
  font-family:var(--serif); font-style:italic; font-size:12.5px;
  color:var(--muted);}

/* New ec-* sections — maintenance ladder, coverage programs, reliability,
   MRO providers, same-airframe alternatives. */
.ec-note{margin-top:8px; padding:8px 12px;
  background:rgba(201,147,62,.06); border-left:2px solid var(--amber);
  font-family:var(--serif); font-style:italic; font-size:12.5px;
  color:var(--muted); line-height:1.45;}
.ec-dispatch{display:flex; align-items:baseline; justify-content:space-between;
  padding:10px 14px; margin-bottom:10px;
  background:rgba(28,103,72,.06); border:1px solid rgba(28,103,72,.20);
  border-radius:6px;}
.ec-dispatch span{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}
.ec-dispatch b{font-family:var(--sora); font-size:16px; color:#1c6748;
  font-weight:700; font-variant-numeric:tabular-nums;}
.sev-pill{display:inline-block; padding:2px 8px; border-radius:3px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.06em;
  font-weight:600; text-transform:uppercase; white-space:nowrap;}
.sev-pill.sev-minor{background:rgba(28,103,72,.10); color:#1c6748;
  border:1px solid rgba(28,103,72,.30);}
.sev-pill.sev-watch{background:rgba(201,147,62,.10); color:#8a5a14;
  border:1px solid rgba(201,147,62,.30);}
.sev-pill.sev-AD{background:rgba(180,80,40,.10); color:#9c3a18;
  border:1px solid rgba(180,80,40,.30);}
.sev-pill.sev-major{background:rgba(180,40,40,.12); color:#8c1a1a;
  border:1px solid rgba(180,40,40,.35);}
.ec-mro{list-style:none; padding:0; margin:0; display:grid;
  grid-template-columns:1fr 1fr; gap:5px 14px;
  font-family:var(--sans); font-size:13px;}
.ec-mro li{padding:5px 0; border-bottom:1px dashed var(--line);
  color:var(--ink);}
.ec-alts{list-style:none; padding:0; margin:0; display:grid; gap:6px;
  font-family:var(--sans); font-size:13.5px;}
.ec-alts li{padding:6px 10px; background:var(--paper-warm);
  border-left:2px solid var(--amber); border-radius:0 4px 4px 0;}
.ec-alts b{font-family:var(--sora); font-weight:700; color:var(--ink);}

/* Shop-visit cost decomposition — stacked horizontal bar + legend. */
.svb-bar{display:flex; width:100%; height:32px; border-radius:5px;
  overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.10);
  margin-bottom:10px;}
.svb-seg{display:block; height:100%; transition:filter .15s;}
.svb-seg:hover{filter:brightness(1.1);}
.svb-legend{list-style:none; padding:0; margin:0; display:grid;
  grid-template-columns:1fr 1fr; gap:5px 16px;
  font-family:var(--sans); font-size:13px;}
.svb-legend li{padding:4px 0; display:flex; align-items:center; gap:8px;
  color:var(--ink);}
.svb-legend li b{font-family:var(--mono); font-size:12px;
  font-variant-numeric:tabular-nums; color:var(--ink);
  margin-left:auto; font-weight:700;}
.svb-dot{display:inline-block; width:10px; height:10px;
  border-radius:2px; flex:0 0 auto;}

/* Market economics — label/value 2-col table. */
.ec-market td{vertical-align:top;}
.ec-market .me-label{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); font-weight:600; width:32%; padding-right:14px;}

/* Selection-rate callout inside the Alternatives section. */
.ec-selrate{display:flex; align-items:baseline; justify-content:space-between;
  gap:14px; padding:10px 14px; margin-top:10px;
  background:rgba(201,147,62,.08); border:1px solid rgba(201,147,62,.30);
  border-radius:5px;}
.ec-selrate span{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  white-space:nowrap;}
.ec-selrate b{font-family:var(--sans); font-size:13.5px; color:var(--ink);
  font-weight:600; text-align:right;}

@media (max-width:720px){
  .ec-mro{grid-template-columns:1fr;}
  .ec-dispatch{flex-direction:column; gap:4px;}
  .svb-legend{grid-template-columns:1fr;}
  .ec-selrate{flex-direction:column; align-items:flex-start; gap:4px;}
  .ec-selrate b{text-align:left;}
}

/* ============================================================
 * /pricing-model — verbose explainer page. Lives at site nav,
 * shows BANDS table, severity & age factor ladders, and live
 * worked examples computed via quote_engine.explain().
 * ============================================================ */
.pm{padding:32px 0 60px; background:var(--paper);}
.pm-in{max-width:1100px; margin:0 auto; padding:0 28px;}
.pm-head{margin-bottom:32px;}
.pm-head h1{font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:38px; color:var(--ink); margin:8px 0 10px; letter-spacing:-.015em;}
.pm-sub{font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:16px; line-height:1.55; max-width:780px;}
.pm-meta{font-family:var(--mono); font-size:11px; color:var(--muted);
  margin-top:10px;}
.pm-meta code{background:var(--paper-warm); padding:1px 6px; border-radius:3px;
  font-size:10.5px; color:var(--ink);}
.pm-block{margin-top:36px; padding-top:24px;
  border-top:1px solid var(--line);}
.pm-block h2{font-family:var(--sora); font-weight:700; font-size:22px;
  color:var(--ink); margin:0 0 12px; display:flex; align-items:baseline;
  gap:14px;}
.pm-block h2 .num{font-family:var(--sora); font-weight:800;
  color:var(--amber); font-size:16px;}
.pm-block h3.pm-sub-h{font-family:var(--sans); font-weight:600;
  font-size:14px; color:var(--ink); margin:18px 0 6px;
  letter-spacing:.01em;}
.pm-block p{font-family:var(--sans); font-size:14px; line-height:1.55;
  color:var(--ink); margin:0 0 12px; max-width:760px;}
.pm-block p .dim, .pm .dim{color:var(--muted);
  font-family:var(--mono); font-size:11.5px;}
.pm-table{width:100%; border-collapse:collapse; margin:6px 0 8px;
  font-family:var(--sans); font-size:13px;
  background:var(--card); border:1px solid var(--line); border-radius:5px;
  overflow:hidden;}
.pm-table th, .pm-table td{text-align:left; padding:8px 12px;
  border-bottom:1px solid var(--line); vertical-align:top;}
.pm-table th{font-family:var(--mono); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  background:var(--paper-warm); font-weight:600;}
.pm-table tr:last-child td{border-bottom:none;}
.pm-table .num{text-align:right; font-variant-numeric:tabular-nums;
  font-family:var(--mono); font-size:12.5px;}
.pm-table.tight th, .pm-table.tight td{padding:6px 10px;}
.pm-table .dim{color:var(--muted); font-size:11px; font-family:var(--mono);}
.pm-code{background:#1a2030; color:#dbe6f3;
  padding:14px 18px; border-radius:5px; font-family:Consolas,monospace;
  font-size:12.5px; line-height:1.55; overflow-x:auto;
  border-left:3px solid var(--amber);}
.pm-examples{display:grid; gap:18px; margin-top:8px;}
.pm-ex{background:var(--card); border:1px solid var(--line);
  border-radius:7px; padding:18px 22px; box-shadow:var(--sh-md);
  position:relative;}
.pm-ex::before{content:""; position:absolute; top:0; left:22px; right:22px;
  height:3px; background:var(--amber);}
.pm-ex-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 18px;
  margin-bottom:10px; padding-bottom:10px;
  border-bottom:1px solid var(--line);}
.pm-ex-reg{font-family:var(--sora); font-weight:800; font-size:22px;
  color:var(--ink); letter-spacing:-.01em; text-decoration:none;}
.pm-ex-reg:hover{color:var(--amber);}
.pm-ex-model{font-family:var(--serif); font-style:italic; font-size:15px;
  color:var(--muted);}
.pm-ex-class{font-family:var(--mono); font-size:10.5px; letter-spacing:.10em;
  text-transform:uppercase; color:#5e3d12;
  background:var(--paper-warm); padding:3px 8px; border-radius:3px;}
.pm-ex-op{font-family:var(--mono); font-size:11px; color:var(--muted);
  letter-spacing:.04em; text-transform:uppercase; margin-left:auto;}
.pm-walk{list-style:none; padding:0; margin:0;
  counter-reset:pm-step;}
.pm-walk li{padding:8px 0; padding-left:36px; position:relative;
  font-family:var(--sans); font-size:13.5px; line-height:1.5;
  color:var(--ink); border-top:1px dashed var(--line);}
.pm-walk li:first-child{border-top:none;}
.pm-walk li::before{counter-increment:pm-step;
  content:counter(pm-step, decimal-leading-zero);
  position:absolute; left:0; top:8px;
  font-family:var(--mono); font-size:10px; color:var(--amber);
  font-weight:700; letter-spacing:.06em;}
.pm-walk b{color:var(--ink);}
.pm-walk code{background:var(--paper-warm); padding:0 4px; border-radius:2px;
  font-size:11.5px; color:var(--ink);}
.pm-walk .quote{font-family:var(--serif); font-style:italic;
  font-size:12.5px; color:var(--muted); margin-top:4px;
  padding-left:6px; border-left:2px solid var(--cream);}
.pm-walk .pm-result{color:var(--amber); font-weight:700; font-size:15px;
  font-family:var(--sora); letter-spacing:-.005em;}
.pm-todo{font-family:var(--sans); font-size:14px; line-height:1.6;
  margin:8px 0; padding-left:22px;}
.pm-todo li{margin-bottom:8px;}
.pm-todo code{background:var(--paper-warm); padding:1px 6px;
  border-radius:3px; font-size:11.5px;}
@media(max-width:780px){
  .pm-ex-head{flex-direction:column; gap:6px;}
  .pm-ex-op{margin-left:0;}
  .pm-table{font-size:12px;}
}

/* ============================================================
 * MISSION SIDEBAR — final compression overrides.
 *
 * These rules MUST sit at the bottom of the file because earlier
 * passes appended the override block in the middle, where the
 * cascade was still being beaten by the original (less tight)
 * rules further down. Everything below is the source of truth
 * for the sidebar layout — edit here, nowhere else.
 * ============================================================ */
.mission-side{
  max-height:380px!important; min-height:380px!important;
  overflow:hidden;
  display:flex!important; flex-direction:column!important;
  justify-content:flex-start!important;
  gap:0;
}
.mission-badge{font-size:9px!important; padding:3px 7px!important;
  letter-spacing:.10em; margin:0;}
.mission-totals{margin:6px 0 0!important; font-size:9.5px!important;
  letter-spacing:.06em;}
.mission-totals b{font-size:22px!important; margin-right:2px;}
.mission-annualized{margin-top:2px!important; font-size:10.5px;
  line-height:1.3;}

/* Stats: 2-column grid — packs 5 rows into 3 rows of ~16px each.
   `!important` because the original .mission-stats rule (added in
   the first pass) still lives further up the file as a flat list. */
.mission-stats{
  list-style:none; padding:0!important;
  margin:8px 0 0!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:0 14px!important;
  border-top:none!important;
}
.mission-stats li{
  display:flex!important;
  justify-content:space-between!important;
  align-items:baseline!important;
  padding:3px 0!important;
  border-top:1px solid rgba(255,255,255,.08)!important;
  font-size:11.5px!important;
}
.mission-stats li:nth-child(-n+2){border-top:none!important;}
.mission-stats span{font-size:8.5px!important;
  letter-spacing:.06em;}
.mission-stats b{font-size:11.5px!important;}

/* Routes: tight list, takes whatever space is left in the column. */
.mission-routes{
  margin-top:8px!important;
  padding-top:6px!important;
  border-top:1px solid rgba(255,255,255,.10)!important;
  flex:1 1 auto; min-height:0;
  display:flex; flex-direction:column;
}
.mission-routes .mr-head{
  font-size:8.5px!important;
  letter-spacing:.08em;
  margin-bottom:3px!important;
  font-family:var(--mono);
  text-transform:uppercase;
  color:var(--amber-soft);
}
.mission-routes .mr-sub{font-size:8px!important;
  margin-left:4px!important;
  letter-spacing:.04em;
  color:#7d8ba2;
  text-transform:none;
  font-style:italic;}
.mission-routes ul{
  list-style:none; padding:0!important; margin:0!important;
  display:flex!important; flex-direction:column!important;
  flex:1 1 auto; min-height:0;
  overflow-y:auto;
  row-gap:0!important;
  scrollbar-width:thin;
  scrollbar-color:rgba(201,147,62,.4) transparent;
}
.mission-routes ul::-webkit-scrollbar{width:6px;}
.mission-routes ul::-webkit-scrollbar-thumb{
  background:rgba(201,147,62,.35); border-radius:3px;}
.mission-routes li{
  display:flex!important;
  justify-content:space-between!important;
  align-items:baseline!important;
  padding:1px 0!important;
  font-family:var(--mono);
  font-size:10.5px!important;
  line-height:1.25!important;
  color:#dbe6f3;
}
.mission-routes .mr-pair{display:inline-flex; align-items:baseline;
  gap:4px!important;}
.mission-routes .mr-pair b{color:#fff; font-weight:600;
  letter-spacing:.02em;}
.mission-routes .mr-pair i{font-size:9.5px!important;
  color:var(--amber-soft); font-style:normal;}
.mission-routes .mr-n{font-size:9px!important;
  color:#8497af; letter-spacing:.06em; text-transform:uppercase;}

/* GE90 LLP hover image previews. */
.llp-hover-row,.variant-hover-row{cursor:zoom-in; outline:none;}
.llp-hover-row:hover td,
.llp-hover-row:focus td,
.variant-hover-row:hover td,
.variant-hover-row:focus td{background:rgba(201,147,62,.075);}
.llp-hover-row:focus,.variant-hover-row:focus{box-shadow:inset 3px 0 0 var(--amber);}
.llp-image-dot{display:inline-block; width:7px; height:7px; margin-left:7px;
  border-radius:50%; background:var(--amber); vertical-align:middle;
  box-shadow:0 0 0 3px rgba(201,147,62,.13);}
.llp-preview{position:fixed; z-index:9999; width:540px; max-width:calc(100vw - 24px);
  pointer-events:none; opacity:0; transform:translateY(6px) scale(.985);
  transition:opacity .12s ease, transform .12s ease;
  background:#fff; border:1px solid rgba(20,31,46,.18); border-radius:10px;
  box-shadow:0 18px 44px rgba(20,31,46,.24); padding:8px;}
.llp-preview.show{opacity:1; transform:translateY(0) scale(1);}
.llp-preview img{display:block; width:100%; height:auto; max-height:390px;
  object-fit:contain; border-radius:7px; background:#f6f7f9;}
@media (max-width:720px){.llp-preview{display:none;}.llp-hover-row,.variant-hover-row{cursor:default;}}

/* ============================================================
   Proposal packets — admin list, admin detail, public memo.
   ============================================================ */

/* --- Dossier "Create outreach packet" button row --- */
.ds-outreach{display:flex; align-items:center; gap:14px;
  margin:10px 0 22px; padding:14px 16px;
  background:var(--paper-warm); border:1px solid var(--cream);
  border-radius:8px; flex-wrap:wrap;}
.ds-outreach-btn{width:auto; padding:10px 18px; font-size:13.5px;}
.ds-outreach-hint{font-family:var(--serif); font-style:italic;
  color:var(--muted); font-size:14px;}

/* --- Admin list table --- */
.pp-table{width:100%; border-collapse:collapse; margin-top:18px;
  font-size:14px;}
.pp-table th{text-align:left; font:600 10.5px/1.4 var(--mono);
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  padding:10px 12px; border-bottom:1px solid var(--line2);}
.pp-table th.num,.pp-table td.num{text-align:right;}
.pp-table td{padding:11px 12px; border-bottom:1px solid var(--line);
  vertical-align:middle;}
.pp-table tbody tr:hover{background:var(--paper-warm);}
.pp-table .mono{font:500 12.5px/1.4 var(--mono); letter-spacing:.01em;
  color:var(--ink);}
.pp-table .dim{color:var(--faint);}

/* --- Admin detail grid --- */
.pp-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;
  margin-top:18px;}
.pp-card{background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:22px 22px 20px; box-shadow:var(--sh-sm);}
.pp-card-share{grid-column:1 / -1; background:var(--paper-warm);
  border-color:var(--cream);}
.pp-card-h{font:700 11px/1.4 var(--mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink); margin-bottom:12px;}
.pp-share-row{display:flex; align-items:center; gap:12px;
  flex-wrap:wrap;}
.pp-share-input{flex:1 1 320px; padding:10px 12px;
  border:1px solid var(--line2); border-radius:5px;
  font:500 13px/1.4 var(--mono); background:#fff; color:var(--ink);}
.pp-share-row .btn-primary{width:auto; padding:10px 18px; font-size:13px;}
.pp-email-blurb{width:100%; padding:14px; border:1px solid var(--line2);
  border-radius:5px; font:500 13px/1.55 var(--mono); background:#fff;
  color:var(--ink); resize:vertical;}
.pp-counters{display:grid; grid-template-columns:repeat(3, 1fr);
  gap:14px; margin-top:18px;}
.pp-counter{background:#fff; border:1px solid var(--cream);
  border-radius:6px; padding:12px 14px; text-align:center;}
.pp-counter b{display:block; font:700 22px/1 var(--sora);
  color:var(--ink);}
.pp-counter span{display:block; margin-top:4px;
  font:500 10.5px/1.2 var(--mono); letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);}
.pp-dl{margin:0; display:grid; grid-template-columns:max-content 1fr;
  gap:6px 16px;}
.pp-dl dt{font:600 10.5px/1.4 var(--mono); letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); padding-top:3px;}
.pp-dl dd{margin:0; font-size:14px; color:var(--ink);}
.pp-dl dd.mono,.pp-dl .mono{font:500 13px/1.4 var(--mono);}
.pp-events{width:100%; border-collapse:collapse; font-size:13px;}
.pp-events th{text-align:left; font:600 10.5px/1.4 var(--mono);
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  padding:7px 8px; border-bottom:1px solid var(--line2);}
.pp-events td{padding:7px 8px; border-bottom:1px solid var(--line);}
.pp-events .mono{font:500 12px/1.4 var(--mono);}
.pp-events .dim{color:var(--faint);}

/* --- Public packet memo --- */
.page-proposal{background:var(--paper);}
.pp-hero{background:var(--grad-soft); color:#fff; padding:64px 28px 56px;
  position:relative;}
.pp-hero-in{max-width:980px; margin:0 auto;}
.pp-hero .eyebrow{color:var(--amber-soft);}
.pp-hero .eyebrow .sect{color:var(--amber-soft);}
.pp-hero h1{font:700 44px/1.08 var(--serif); font-style:italic;
  margin:14px 0 14px; color:#fff; letter-spacing:-.015em;}
.pp-hero h1 em{color:var(--amber-soft); font-style:italic;}
.pp-hero-sub{font-family:var(--serif); font-size:18px; line-height:1.55;
  color:#dde6f6; max-width:680px; margin:0 0 18px;}
.pp-hero-tags{display:flex; flex-wrap:wrap; gap:8px;}
.pp-hero-tags .prov-pill{background:rgba(255,255,255,.10);
  color:#fff; border:1px solid rgba(255,255,255,.20);
  font:500 11.5px/1 var(--mono); letter-spacing:.06em;
  padding:6px 10px; border-radius:99px;}

.pp-body{padding:48px 28px 80px;}
.pp-body-in{max-width:880px; margin:0 auto;}
.pp-section{margin:0 0 36px; padding:28px 30px 26px;
  background:var(--card); border:1px solid var(--line);
  border-radius:10px; box-shadow:var(--sh-sm);}
.pp-section-warm{background:var(--paper-warm); border-color:var(--cream);}
.pp-section-cta{background:var(--ink); color:#fff; border-color:var(--ink);}
.pp-section-cta .pp-num{color:var(--amber-soft);}
.pp-section-cta h2{color:#fff;}
.pp-section-cta .pp-lede{color:#dde6f6;}
.pp-sh{display:flex; align-items:baseline; gap:14px; margin-bottom:14px;}
.pp-num{font:500 12px/1 var(--mono); letter-spacing:.12em;
  color:var(--amber); text-transform:uppercase;}
.pp-sh h2{margin:0; font:700 24px/1.18 var(--serif); font-style:italic;
  color:var(--ink); letter-spacing:-.01em;}
.pp-lede{font-family:var(--serif); font-size:17px; line-height:1.55;
  color:var(--ink); margin:0 0 16px;}
.pp-section p{font-family:var(--serif); font-size:15.5px; line-height:1.62;
  color:var(--ink); margin:0 0 12px;}
.pp-section-cta p,.pp-section-cta li,.pp-section-cta label{color:#dde6f6;}
.pp-fine{font-family:var(--serif); font-style:italic; font-size:13.5px;
  color:var(--muted);}
.pp-disclaimer{font-family:var(--serif); font-style:italic;
  font-size:12.5px; color:var(--muted); margin:24px 0 0;
  padding:14px 16px; background:var(--paper-warm);
  border-radius:6px; border:1px solid var(--cream);}

.pp-snap{margin:0; display:grid;
  grid-template-columns:max-content 1fr; gap:8px 22px;}
.pp-snap dt{font:600 10.5px/1.4 var(--mono); letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); padding-top:3px;}
.pp-snap dd{margin:0; font-size:15px; color:var(--ink);}
.pp-snap dd.mono{font:500 14px/1.4 var(--mono);}
.pp-snap-mission{margin-bottom:14px;}

.pp-trigger-label{font:700 12px/1.4 var(--mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--amber); margin-bottom:8px;}
.pp-trigger-detail{font-family:var(--serif); font-size:16.5px;
  line-height:1.55; color:var(--ink); margin:0;}

.pp-band{background:var(--paper-warm); border:1px solid var(--cream);
  border-radius:8px; padding:18px 22px; margin-bottom:14px;}
.pp-band-row{display:flex; justify-content:space-between;
  align-items:baseline; gap:14px; padding:6px 0;}
.pp-band-row + .pp-band-row{border-top:1px dashed var(--cream);
  padding-top:12px; margin-top:6px;}
.pp-band-label{font:600 11.5px/1.4 var(--mono); letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);}
.pp-band-value{font:700 26px/1.05 var(--sora); color:var(--ink);
  letter-spacing:-.005em;}
.pp-band-row-sub .pp-band-value{font-size:18px;}
.pp-band-unit{font-family:var(--mono); font-weight:500; font-size:12px;
  color:var(--muted); letter-spacing:.04em; margin-left:6px;}

.pp-twoq{display:grid; grid-template-columns:1fr 1fr; gap:14px;
  margin-top:8px;}
.pp-twoq-card{background:var(--paper-warm); border:1px solid var(--cream);
  border-radius:8px; padding:18px 18px 16px;}
.pp-twoq-card-emph,.pp-twoq-emph{background:#fff; border-color:var(--amber-soft);
  box-shadow:0 0 0 3px rgba(201,147,62,.10);}
.pp-twoq-h{font:700 13px/1.4 var(--mono); letter-spacing:.10em;
  text-transform:uppercase; color:var(--amber); margin-bottom:8px;}
.pp-twoq-card p{font-size:14.5px; margin:0;}

.pp-routes-h{font:600 10.5px/1.4 var(--mono); letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); margin:14px 0 6px;}
.pp-routes ul{list-style:none; margin:0; padding:0;}
.pp-routes li{font:500 13.5px/1.55 var(--mono); padding:2px 0;
  color:var(--ink);}
.pp-routes .dim{color:var(--faint);}

.pp-section-cta .lead-form{background:#fff; color:var(--ink);}
.pp-section-cta .lead-form input,
.pp-section-cta .lead-form textarea{color:var(--ink);}
.pp-cta-alt{margin-top:18px; font-family:var(--serif); font-size:14.5px;
  color:#dde6f6;}
.pp-cta-alt a{color:var(--amber-soft); font-weight:600;}
.pp-cta-alt a:hover{color:#fff;}

@media (max-width:720px){
  .pp-hero h1{font-size:32px;}
  .pp-section{padding:22px 20px;}
  .pp-twoq{grid-template-columns:1fr;}
  .pp-grid{grid-template-columns:1fr;}
  .pp-band-row{flex-direction:column; align-items:flex-start;}
}

/* ---- ACARS dossier section (shared partial _acars_card.html) ---- */
.acars-section{margin:28px 0; padding:0;}
.acars-head{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  margin-bottom:14px; padding-bottom:10px;
  border-bottom:1px solid var(--line);}
.acars-head .sect{font:500 12px/1 var(--mono); letter-spacing:.12em;
  color:var(--amber); text-transform:uppercase;}
.acars-head h3{margin:0; font:700 19px/1.15 var(--serif);
  color:var(--ink); letter-spacing:-.012em;}
.acars-sub{font:500 12px/1.4 var(--mono); color:var(--muted);
  letter-spacing:.02em;}

.acars-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:16px;}
.acars-card{background:var(--card); border:1px solid var(--line);
  border-radius:8px; padding:18px 18px 16px; box-shadow:var(--sh-sm);}
.acars-card-wide{grid-column:1 / -1;}
.ac-card-h{font:700 11px/1.4 var(--mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink); margin-bottom:12px;}
.ac-card-sub{font-weight:500; color:var(--muted); letter-spacing:.04em;
  text-transform:none;}
.ac-subh{font:600 11px/1 var(--mono); letter-spacing:.10em;
  text-transform:uppercase; color:var(--muted); margin-bottom:6px;}
.ac-line{display:flex; gap:14px; flex-wrap:wrap; align-items:baseline;
  padding:4px 0;}

.ac-table{width:100%; border-collapse:collapse; font:500 13px/1.5 var(--sans);}
.ac-table th{text-align:left; font:600 10.5px/1.2 var(--mono);
  letter-spacing:.10em; text-transform:uppercase; color:var(--muted);
  padding:4px 10px 6px 0; border-bottom:1px solid var(--line);}
.ac-table td{padding:6px 10px 6px 0; border-bottom:1px solid var(--line);
  vertical-align:top;}
.ac-table tr:last-child td{border-bottom:0;}
.ac-table .num{text-align:right;}
.ac-table .mono{font-family:var(--mono); font-size:12.5px;}
.ac-table .dim{color:var(--muted);}

.ac-kv{display:flex; flex-direction:column; gap:6px;}
.ac-kv-row{display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; padding:4px 0; border-bottom:1px dotted var(--line);}
.ac-kv-row:last-child{border-bottom:0;}
.ac-kv-row span{font:500 12px/1.3 var(--mono); color:var(--muted);
  letter-spacing:.04em;}
.ac-kv-row b{font:600 14px/1.2 var(--mono); color:var(--ink);}

.ac-sev{display:inline-block; padding:2px 8px; border-radius:999px;
  font:700 10.5px/1.4 var(--mono); letter-spacing:.08em;
  text-transform:uppercase;}
.ac-sev-urgent{background:#fde7e3; color:#a82a22;}
.ac-sev-attention{background:#fbeed5; color:#7a5310;}
.ac-sev-info{background:#e3edfb; color:#1f4d8f;}

.acars-foot{margin-top:14px; text-align:right;}
.acars-foot a{font:500 13px/1 var(--sans); color:var(--blue);}

/* Public summary view */
.acars-summary{background:var(--paper-warm); border:1px solid var(--cream);
  border-radius:8px; padding:22px 22px 20px;}
.acars-sum-stats{display:grid; grid-template-columns:repeat(4, 1fr);
  gap:16px; margin-bottom:16px;}
.acars-sum-stat{padding:8px 0;}
.ass-v{font:700 26px/1 var(--serif); color:var(--ink);
  letter-spacing:-.012em;}
.ass-l{font:500 11.5px/1.4 var(--sans); color:var(--muted);
  letter-spacing:.02em; margin-top:4px;}
.acars-sum-copy{font:500 14.5px/1.55 var(--sans); color:var(--text);
  margin:0 0 14px;}
.acars-sum-copy em{font-style:italic; color:var(--ink);}
.acars-deep-link{display:inline-block; font:600 13.5px/1 var(--sans);
  color:var(--blue); padding:8px 0;}

@media (max-width: 820px){
  .acars-grid{grid-template-columns:1fr;}
  .acars-sum-stats{grid-template-columns:repeat(2, 1fr);}
}
