/* ──────────────────────────────────────────────────────────────────────────
   AI Group Travel Concierge — travel-concierge.css?v=20260620j
   Mobile-first (base → 768 → 1200). Uses the global :root palette/type from
   /style.css. Isolated namespace: .tc-*  (no collisions with existing pages).
   ────────────────────────────────────────────────────────────────────────── */
:root {
  --tc-maxw: 1180px; --tc-accent: #38bdf8; --tc-accent2: #fb923c;
  /* Premium tokens (ui-ux-pro-max: aurora + black/gold). Gold reads warm on dark navy. */
  --tc-gold: #f1c265; --tc-gold-deep: #d6a13e; --tc-gold-soft: rgba(241,194,101,.16);
  --tc-glass: rgba(255,255,255,.06); --tc-glass-brd: rgba(255,255,255,.12);
  --tc-shadow: 0 24px 60px -28px rgba(0,0,0,.85); --tc-shadow-sm: 0 12px 30px -18px rgba(0,0,0,.7);
  --tc-glow-gold: 0 16px 40px -16px rgba(214,161,62,.6);
}
html, body { height: auto; min-height: 100vh; }
body { overflow-y: auto; overflow-x: hidden; }
.tc-page { display: flex; flex-direction: column; min-height: 100vh; background: var(--navy-900); }

.tc-lang { display: flex; gap: .35rem; }
.tc-lang__btn { min-height: 32px; padding: .25rem .6rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-800); color: var(--muted); font-family: var(--font-b); font-weight: 600; font-size: .72rem; cursor: pointer; }
.tc-lang__btn--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }

.tc-app { flex: 1; width: 100%; max-width: var(--tc-maxw); margin: 0 auto; padding: 1rem 1rem 2rem; box-sizing: border-box; }
.tc-back { display: block; text-align: center; color: var(--muted); font-family: var(--font-b); font-size: .85rem; padding: 1rem; text-decoration: none; }
.tc-back:hover { color: var(--cream); }

/* Buttons */
.tc-cta { width: 100%; min-height: 48px; margin-top: 1rem; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-accent), #0ea5e9); color: #042038; font-family: var(--font-b); font-weight: 700; font-size: .95rem; cursor: pointer; touch-action: manipulation; box-shadow: 0 10px 26px -14px rgba(56,189,248,.7); }
.tc-cta--big { min-height: 54px; font-size: 1.02rem; }
.tc-cta:active { transform: translateY(1px); }
.tc-addbtn { width: 100%; min-height: 46px; margin-top: .8rem; border: 1px dashed var(--border-g); border-radius: 14px; background: transparent; color: var(--tc-accent); font-family: var(--font-b); font-weight: 700; font-size: .9rem; cursor: pointer; }
.tc-addbtn:hover { background: rgba(56,189,248,.08); }

/* Hero */
.tc-hero { text-align: center; padding: 1.5rem 0 1rem; }
.tc-hero { text-align: center; }
.tc-hero__chip { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tc-gold); background: var(--tc-gold-soft); border: 1px solid rgba(241,194,101,.42); padding: .34rem 1rem; border-radius: 99px; }
.tc-hero__title { font-family: var(--font-d); font-weight: 500; font-size: clamp(2.05rem, 8vw, 2.7rem); line-height: 1.06; letter-spacing: -.01em; color: var(--cream); margin: 1.05rem auto .55rem; max-width: 14ch; }
.tc-hero__sub { font-family: var(--font-b); font-size: 1rem; line-height: 1.6; color: #c9d4e2; max-width: 600px; margin: 0 auto; }
.tc-hero__cta { max-width: 380px; margin: 1.4rem auto 0; }
/* Premium gold primary CTA (landing only — in-app .tc-cta stays sky). */
.tc-hero__cta.tc-cta { background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; min-height: 54px; font-size: 1rem; letter-spacing: .01em; box-shadow: var(--tc-glow-gold); transition: transform .18s ease, box-shadow .18s ease; }
.tc-hero__cta.tc-cta:hover { transform: translateY(-2px); box-shadow: 0 22px 50px -16px rgba(214,161,62,.7); }
.tc-hero__free { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .7rem auto 0; max-width: 440px; }
/* Live in-hero sample preview card */
.tc-herosample { max-width: 460px; margin: 1.6rem auto 0; text-align: left; border: 1px solid var(--border); border-radius: 16px; background: var(--navy-800); padding: .9rem 1rem; box-shadow: 0 18px 40px -28px rgba(0,0,0,.7); }
.tc-herosample__head { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .55rem; margin-bottom: .45rem; }
.tc-herosample__badge { font-family: var(--font-b); font-weight: 700; font-size: .58rem; letter-spacing: .05em; text-transform: uppercase; color: #6ee7b7; background: rgba(16,185,129,.14); border: 1px solid rgba(16,185,129,.4); padding: .12rem .5rem; border-radius: 99px; }
.tc-herosample__dest { font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); }
.tc-herosample__meta { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-herosample__day { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--tc-accent); margin: .1rem 0 .5rem; }
.tc-herosample__list { display: flex; flex-direction: column; gap: .35rem; }
.tc-herosample__row { display: flex; align-items: center; gap: .5rem; }
.tc-herosample__ic { font-size: 1rem; flex: 0 0 auto; }
.tc-herosample__nm { font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-herosample__why { font-family: var(--font-b); font-size: .78rem; line-height: 1.45; color: var(--muted); margin: .55rem 0 0; }
.tc-herosample__why-k { color: var(--tc-accent2); font-weight: 700; }
.tc-herosample__more { font-family: var(--font-b); font-size: .72rem; color: var(--muted); margin: .5rem 0 .7rem; }
.tc-herosample__cta { width: 100%; min-height: 42px; border: 1px solid var(--tc-accent); border-radius: 99px; background: rgba(56,189,248,.12); color: #bae6fd; font-family: var(--font-b); font-weight: 700; font-size: .85rem; cursor: pointer; }
.tc-herosample__cta:hover { background: rgba(56,189,248,.2); }
@media (min-width: 768px) { .tc-herosample { max-width: 520px; } }
/* Issue #1: auto traveler breakdown + transport hints */
.tc-travelers { display: flex; flex-wrap: wrap; gap: .3rem .9rem; align-items: baseline; padding: .5rem .7rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); }
.tc-travelers__row { font-family: var(--font-b); font-size: .82rem; color: var(--muted); }
.tc-travelers__total { font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: var(--cream); width: 100%; margin-top: .15rem; }
.tc-hint { font-family: var(--font-b); font-size: .78rem; color: var(--muted); margin: .25rem 0 .4rem; }
.tc-hint--center { text-align: center; margin-top: .6rem; }
/* V2 simplified destination row — a single city field, no role/hotel/date sub-forms */
.tc-dest--simple { padding: .55rem .7rem; }
.tc-dest--simple .tc-dest__head { margin: 0; }
.tc-warn { font-family: var(--font-b); font-size: .78rem; color: #fbbf24; margin: .25rem 0 .4rem; }
/* Issue #3: image verification label + food card media */
.tc-place__imgnote { position: absolute; left: .5rem; bottom: .5rem; font-family: var(--font-b); font-size: .58rem; font-weight: 700; letter-spacing: .02em; color: #f1f5f9; background: rgba(8,12,24,.72); border: 1px solid rgba(255,255,255,.15); padding: .15rem .45rem; border-radius: 6px; }
.tc-foodcard__media { aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; margin-bottom: .55rem; }
/* Issue #6: per-destination hotel preference chips */
.tc-dest__hotelprefs { margin: .15rem 0 .5rem; }
.tc-dest__hotelprefs .tc-hint { margin: .1rem 0 .35rem; }
/* Issue #7: no AI/generic images — "no verified photo" panel with real-source links */
.tc-place__media--nophoto { aspect-ratio: auto; height: auto; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; padding: .9rem .7rem; text-align: center; background: radial-gradient(120% 120% at 20% 0%, rgba(56,189,248,.12), transparent 60%), linear-gradient(135deg, #12243f, #0c1a30); }
.tc-nophoto { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.tc-nophoto__ic { font-size: 1.5rem; opacity: .7; }
.tc-nophoto__msg { font-family: var(--font-b); font-size: .8rem; font-weight: 700; color: var(--muted); }
.tc-nophoto__links { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: center; }
.tc-nophoto__btn { font-size: .64rem; min-height: 30px; padding: .18rem .5rem; }
.tc-place__imgnote--ok { background: rgba(16,185,129,.78); border-color: rgba(16,185,129,.5); color: #ecfdf5; }
/* Media Enrichment: non-exact tiers (geosearch area / intitle name-match) — labelled, not a ✓. */
.tc-place__imgnote--area { background: rgba(56,90,140,.82); border-color: rgba(120,160,210,.5); color: #eaf2ff; }
.tc-place__attr { position: absolute; right: .5rem; bottom: .5rem; max-width: 60%; font-family: var(--font-b); font-size: .54rem; color: #e5e7eb; background: rgba(8,12,24,.62); padding: .1rem .4rem; border-radius: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-place__attr--link { text-decoration: none; }
.tc-place__attr--link:hover { text-decoration: underline; }
/* Multi-photo gallery thumb strip (tap to promote to hero) */
.tc-place__gallery { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: .25rem; padding: .3rem; overflow-x: auto; background: linear-gradient(0deg, rgba(8,12,24,.6), transparent); -webkit-overflow-scrolling: touch; }
.tc-place__galthumb { flex: 0 0 auto; width: 44px; height: 44px; object-fit: cover; border-radius: 5px; border: 1px solid rgba(255,255,255,.35); cursor: pointer; opacity: .85; transition: opacity .15s; }
.tc-place__galthumb:hover { opacity: 1; }
@media (min-width: 768px) { .tc-place__galthumb { width: 52px; height: 52px; } }
@media (min-width: 1200px) { .tc-place__galthumb { width: 58px; height: 58px; } }
.tc-hero__demos-lbl { font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 1.8rem 0 .5rem; }
.tc-hero__demos { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.tc-hero__demo { display: flex; flex-direction: column; gap: .2rem; align-items: flex-start; padding: .85rem; border-radius: 14px; border: 1px solid var(--border); background: var(--navy-800); color: var(--cream); cursor: pointer; text-align: left; }
.tc-hero__demo:hover { border-color: var(--tc-accent); }
.tc-hero__demo strong { font-family: var(--font-b); font-weight: 700; font-size: .92rem; }
.tc-hero__demo span { font-family: var(--font-b); font-size: .74rem; color: var(--muted); }

/* Step screens / forms */
.tc-screen { max-width: 560px; margin: 0 auto; }
.tc-screen__title { font-family: var(--font-d); font-weight: 400; font-size: 1.5rem; color: var(--cream); margin: .3rem 0 .2rem; }
.tc-screen__sub { font-family: var(--font-b); font-size: .85rem; color: var(--muted); margin: 0 0 1rem; }
.tc-stephead { margin-bottom: 1rem; }
.tc-stephead__step { font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; color: var(--tc-accent); }
.tc-stephead__bar { height: 4px; border-radius: 99px; background: var(--navy-800); margin-top: .4rem; overflow: hidden; }
.tc-stephead__bar i { display: block; height: 100%; background: var(--tc-accent); transition: width .25s; }
.tc-field { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .8rem; }
.tc-field__lbl { font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.tc-input { min-height: 44px; width: 100%; box-sizing: border-box; background: var(--navy-900); color: var(--cream); border: 1px solid var(--border); border-radius: 10px; font-family: var(--font-b); font-size: .92rem; padding: .55rem .8rem; }
.tc-input:focus { outline: none; border-color: var(--tc-accent); }
select.tc-input { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.tc-row2 { display: flex; gap: .6rem; } .tc-row2 .tc-field { flex: 1; }
.tc-seg { display: flex; gap: .4rem; flex-wrap: wrap; }
.tc-seg__btn { flex: 1; min-width: 30%; min-height: 42px; border: 1px solid var(--border); border-radius: 10px; background: var(--navy-800); color: var(--cream); font-family: var(--font-b); font-weight: 600; font-size: .82rem; cursor: pointer; }
.tc-seg__btn--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }
.tc-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .2rem 0 .6rem; }
.tc-chip { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--font-b); font-size: .72rem; font-weight: 600; padding: .25rem .6rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-900); color: var(--cream); }
.tc-chip--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; cursor: pointer; }
.tc-chips .tc-chip { cursor: pointer; }
.tc-check, .tc-toggle { display: flex; align-items: center; justify-content: space-between; gap: .6rem; font-family: var(--font-b); font-size: .88rem; color: var(--cream); padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.tc-check input, .tc-toggle input { width: 20px; height: 20px; accent-color: var(--tc-accent); }

/* Family cards */
.tc-famcard { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; padding: .9rem; margin-bottom: 1rem; }
.tc-famcard__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.tc-famcard__n { font-family: var(--font-d); font-size: 1.1rem; color: var(--tc-accent); }
.tc-famcard__rm { background: none; border: 1px solid var(--border); border-radius: 99px; color: var(--muted); font-family: var(--font-b); font-size: .72rem; min-height: 30px; padding: .2rem .65rem; cursor: pointer; }
.tc-famcard__tsep { height: 1px; background: rgba(255,255,255,.08); margin: .8rem 0; }
.tc-famcard__tt { display: block; font-family: var(--font-b); font-weight: 700; font-size: .8rem; color: var(--tc-accent2); margin-bottom: .5rem; }

/* Generating */
.tc-gen { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 50vh; gap: 1rem; }
.tc-gen__spinner { width: 46px; height: 46px; border-radius: 50%; border: 3px solid rgba(56,189,248,.25); border-top-color: var(--tc-accent); animation: tcspin 1s linear infinite; }
@keyframes tcspin { to { transform: rotate(360deg); } }
.tc-gen__msg { font-family: var(--font-b); color: var(--muted); }

/* Plan hero */
.tc-planhero { background: radial-gradient(140% 120% at 0% 0%, rgba(56,189,248,.18), transparent 55%), var(--navy-800); border: 1px solid var(--border); border-radius: 18px; padding: 1.1rem; margin-bottom: .9rem; }
.tc-planhero__chip { display: inline-block; font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: #bae6fd; }
.tc-planhero__title { font-family: var(--font-d); font-weight: 400; font-size: 1.6rem; color: var(--cream); margin: .25rem 0 .15rem; }
.tc-planhero__dates { font-family: var(--font-b); font-weight: 600; font-size: .85rem; color: var(--tc-accent); margin: 0 0 .5rem; }
.tc-planhero__summary { font-family: var(--font-b); font-size: .86rem; line-height: 1.5; color: var(--muted); margin: 0 0 .7rem; }
.tc-planhero__meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-chip--cost { background: rgba(212,175,55,.14); border-color: var(--border-g); color: #e6cf86; }
.tc-chip--meet { background: rgba(251,146,60,.14); border-color: rgba(251,146,60,.4); color: #fed7aa; }
.tc-chip--route, a.tc-chip--route { text-decoration: none; background: rgba(56,189,248,.14); border-color: rgba(56,189,248,.4); color: #bae6fd; }
.tc-unverified { font-family: var(--font-b); font-size: .72rem; color: #fbbf24; margin: .6rem 0 0; }

/* Tabs */
.tc-tabs { display: flex; gap: .4rem; margin-bottom: .9rem; }
.tc-tab { flex: 1; min-height: 42px; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-800); color: var(--muted); font-family: var(--font-b); font-weight: 700; font-size: .82rem; cursor: pointer; }
.tc-tab--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }

/* Day tabs */
.tc-daytabs { display: flex; gap: .5rem; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: .3rem; margin-bottom: .8rem; scrollbar-width: none; }
.tc-daytabs::-webkit-scrollbar { display: none; }
.tc-daytab { flex: 0 0 auto; min-width: 120px; display: flex; flex-direction: column; gap: .15rem; padding: .6rem .8rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-800); color: var(--cream); cursor: pointer; text-align: left; }
.tc-daytab strong { font-family: var(--font-b); font-weight: 700; font-size: .9rem; }
.tc-daytab span { font-family: var(--font-b); font-size: .7rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
.tc-daytab--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); }
.tc-daytab--on span { color: #bae6fd; }

.tc-dayhead { margin-bottom: .6rem; }
.tc-dayhead__t { font-family: var(--font-d); font-weight: 400; font-size: 1.3rem; color: var(--cream); margin: 0; }
.tc-dayhead__s { font-family: var(--font-b); font-size: .84rem; line-height: 1.5; color: var(--muted); margin: .3rem 0 .5rem; }
.tc-dayhead__meta { display: flex; flex-wrap: wrap; gap: .4rem; }

/* Timeline */
.tc-section { position: relative; padding-left: 1.1rem; margin-bottom: 1rem; border-left: 2px solid rgba(56,189,248,.3); }
.tc-section__head { display: flex; align-items: center; gap: .5rem; margin: 0 0 .6rem -1.1rem; padding-left: 0; }
.tc-section__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--tc-accent); border: 3px solid var(--navy-900); margin-left: -7px; box-shadow: 0 0 0 2px rgba(56,189,248,.4); }
.tc-section__time { font-family: var(--font-b); font-weight: 700; font-size: .72rem; color: var(--tc-accent); }
.tc-section__title { font-family: var(--font-b); font-weight: 600; font-size: .9rem; color: var(--cream); }

/* Place card */
.tc-place { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; margin-bottom: .8rem; }
.tc-place__media { position: relative; aspect-ratio: 16 / 9; background: var(--navy-900); }
.tc-place__media--ph { background: radial-gradient(120% 120% at 20% 0%, rgba(56,189,248,.22), transparent 60%), linear-gradient(135deg, #12243f, #0c1a30); }
.tc-place__img { width: 100%; height: 100%; object-fit: cover; }
.tc-place__cat { position: absolute; top: .5rem; left: .5rem; font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 99px; background: rgba(8,12,24,.7); color: #bae6fd; border: 1px solid rgba(56,189,248,.4); }
.tc-place__body { padding: .8rem; }
.tc-place__name { font-family: var(--font-b); font-weight: 700; font-size: 1rem; color: var(--cream); }
.tc-place__addr { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .15rem 0 .4rem; }
.tc-place__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--cream); margin: 0 0 .5rem; }
.tc-place__why-k { font-weight: 700; color: var(--tc-accent); }
.tc-place__chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .6rem; }
.tc-chip--score.tc-chip--hi { background: rgba(110,231,160,.14); border-color: rgba(110,231,160,.4); color: #9fe0b0; }
.tc-chip--score.tc-chip--mid { background: rgba(212,175,55,.14); border-color: var(--border-g); color: #e6cf86; }
.tc-chip--score.tc-chip--lo { background: rgba(148,163,184,.14); border-color: var(--border); color: var(--muted); }
.tc-chip--walk { background: rgba(192,132,252,.14); border-color: rgba(192,132,252,.4); color: #d8b4fe; }
.tc-place__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.tc-pbtn { display: inline-flex; align-items: center; min-height: 36px; padding: .3rem .7rem; border-radius: 99px; border: 1px solid var(--border-g); background: var(--navy-900); color: var(--cream); font-family: var(--font-b); font-weight: 600; font-size: .76rem; text-decoration: none; cursor: pointer; }
.tc-pbtn:hover { border-color: var(--tc-accent); }
.tc-pbtn--accent { background: rgba(251,146,60,.16); border-color: rgba(251,146,60,.5); color: #fed7aa; }
.tc-vote { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; padding-top: .5rem; border-top: 1px solid rgba(255,255,255,.06); }
.tc-vbtn { min-height: 34px; padding: .25rem .65rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-900); color: var(--muted); font-family: var(--font-b); font-weight: 600; font-size: .74rem; cursor: pointer; }
.tc-vbtn--on { background: rgba(56,189,248,.18); border-color: var(--tc-accent); color: #bae6fd; }
.tc-vbtn--fav.tc-vbtn--on { background: rgba(244,114,182,.2); border-color: #f472b6; color: #fbcfe8; }
.tc-vote--tp { padding-top: .35rem; }
/* Group consensus badge (weighted verdict from all family votes) */
.tc-cons { font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .02em; text-transform: uppercase; padding: .14rem .55rem; border-radius: 99px; border: 1px solid var(--border); white-space: nowrap; }
.tc-cons--loved { color: #fbcfe8; background: rgba(244,114,182,.16); border-color: rgba(244,114,182,.5); }
.tc-cons--liked { color: #bbf7d0; background: rgba(134,239,172,.14); border-color: rgba(134,239,172,.5); }
.tc-cons--mixed { color: #fde68a; background: rgba(250,204,21,.14); border-color: rgba(250,204,21,.5); }
.tc-cons--skip { color: #fca5a5; background: rgba(248,113,113,.14); border-color: rgba(248,113,113,.5); }
.tc-votesort { font-family: var(--font-b); font-size: .74rem; color: var(--muted); margin: .1rem 0 .5rem; }
/* Tours & unique experiences */
.tc-tours { border: 1px solid rgba(56,189,248,.4); background: rgba(56,189,248,.05); border-radius: 16px; padding: .85rem; margin: 0 0 1rem; }
.tc-tours__t { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); }
.tc-tours__sub { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0 .6rem; }
.tc-tour { border: 1px solid var(--border); border-radius: 12px; padding: .7rem .8rem; margin-bottom: .55rem; background: var(--navy-900); }
.tc-tour__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .25rem; }
.tc-tour__type { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .03em; text-transform: uppercase; padding: .12rem .5rem; border-radius: 99px; border: 1px solid rgba(56,189,248,.4); color: #bae6fd; background: rgba(56,189,248,.1); white-space: nowrap; }
.tc-tour__name { font-family: var(--font-d); font-size: 1rem; color: var(--cream); }
.tc-tour__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .15rem 0 .3rem; }
.tc-tour__note { font-family: var(--font-b); font-size: .74rem; color: var(--muted); margin: .1rem 0; }
.tc-tour__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--cream); margin: .2rem 0; }
.tc-tour__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .45rem; }
.tc-booksel { min-height: 34px; padding: .2rem .5rem; font-size: .74rem; width: auto; margin-left: auto; }

/* Place modal */
.tc-modal { position: fixed; inset: 0; z-index: 2100; background: rgba(6,14,26,.96); display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 1rem; box-sizing: border-box; }
.tc-modal__card { width: 100%; max-width: 480px; margin: auto; background: var(--navy-800); border: 1px solid var(--border-g); border-radius: 18px; padding: 1rem 1.1rem 1.2rem; }
.tc-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.tc-modal__title { font-family: var(--font-d); font-weight: 400; font-size: 1.3rem; color: var(--cream); }
.tc-modal__x { width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.1); color: var(--cream); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.tc-modal__media { aspect-ratio: 16 / 9; border-radius: 12px; margin-bottom: .7rem; position: relative; }
.tc-modal__desc { font-family: var(--font-b); font-size: .86rem; line-height: 1.55; color: var(--cream); margin: 0 0 .6rem; }
.tc-modal__row { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .2rem 0; }
.tc-modal__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.tc-kv { display: flex; flex-direction: column; gap: .15rem; padding: .4rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.tc-kv__k { font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .04em; text-transform: uppercase; color: var(--tc-accent); }
.tc-kv__v { font-family: var(--font-b); font-size: .84rem; line-height: 1.45; color: var(--cream); }

/* Arrival plan */
.tc-meetbar { font-family: var(--font-b); font-weight: 600; font-size: .85rem; color: #fed7aa; background: rgba(251,146,60,.12); border: 1px solid rgba(251,146,60,.4); border-radius: 12px; padding: .7rem .9rem; margin-bottom: .8rem; }
.tc-arr { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; padding: .9rem; margin-bottom: .8rem; }
.tc-arr__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .3rem; }
.tc-arr__fam { font-family: var(--font-b); font-weight: 700; font-size: 1rem; color: var(--cream); }
.tc-chip--method { background: rgba(56,189,248,.14); border-color: rgba(56,189,248,.4); color: #bae6fd; }
.tc-arr__route { font-family: var(--font-b); font-size: .82rem; color: var(--tc-accent); margin: 0 0 .5rem; }
.tc-arr__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .5rem; margin-bottom: .4rem; }
.tc-arr__links { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0; }
.tc-arr__status { display: flex; align-items: center; gap: .6rem; }
.tc-arr__status .tc-input { width: auto; }

/* Group / share / notes */
.tc-group > div { margin-bottom: 1rem; }
.tc-share, .tc-notes, .tc-listblock { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; padding: .9rem; }
.tc-share__t, .tc-notes__t, .tc-listblock__t { display: block; font-family: var(--font-d); font-weight: 400; font-size: 1.15rem; color: var(--cream); margin-bottom: .2rem; }
.tc-share__s { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: 0 0 .6rem; }
.tc-share__row, .tc-notes__row { display: flex; gap: .5rem; }
.tc-share__row .tc-cta, .tc-notes__row .tc-cta { width: auto; margin-top: 0; padding: 0 1.1rem; min-height: 44px; }
.tc-notes__item { font-family: var(--font-b); font-size: .85rem; color: var(--cream); margin: .3rem 0; }
.tc-listblock__ul { margin: .4rem 0 0; padding-left: 1.1rem; }
.tc-listblock__ul li { font-family: var(--font-b); font-size: .82rem; line-height: 1.5; color: var(--muted); margin-bottom: .3rem; }
.tc-empty { text-align: center; color: var(--muted); padding: 2rem; }

/* Toast */
.tc-toast { position: fixed; left: 50%; bottom: 2rem; transform: translate(-50%, 1rem); z-index: 2200; background: rgba(8,12,24,.95); color: var(--cream); border: 1px solid var(--border-g); border-radius: 99px; padding: .55rem 1.1rem; font-family: var(--font-b); font-weight: 600; font-size: .82rem; opacity: 0; transition: opacity .25s, transform .25s; pointer-events: none; max-width: 90vw; text-align: center; }
.tc-toast--on { opacity: 1; transform: translate(-50%, 0); }

@media (min-width: 768px) {
  .tc-hero__title { font-size: clamp(2.7rem, 5vw, 3.4rem); max-width: 16ch; }
  .tc-hero__sub { font-size: 1.08rem; }
  .tc-hero__demos { grid-template-columns: repeat(4, 1fr); }
  .tc-place { display: grid; grid-template-columns: 240px 1fr; }
  .tc-place__media { aspect-ratio: auto; height: 100%; min-height: 150px; }
}
@media (min-width: 1200px) {
  .tc-planhero__title { font-size: 2rem; }
}
@media (prefers-reduced-motion: reduce) { .tc-gen__spinner { animation: none; } .tc-toast { transition: none; } }

/* Per-family collaboration: "You are" picker + group suggestions (refinement) */
.tc-famsel { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0 0 .8rem; padding: .6rem .7rem; border-radius: 12px; background: var(--navy-800); border: 1px solid var(--border); }
.tc-famsel__lbl { font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.tc-famsel__btn { min-height: 34px; padding: .25rem .7rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-900); color: var(--cream); font-family: var(--font-b); font-weight: 600; font-size: .78rem; cursor: pointer; }
.tc-famsel__btn--on { background: rgba(110,231,160,.16); border-color: rgba(110,231,160,.5); color: #9fe0b0; }
.tc-suggest__t { display: block; font-family: var(--font-d); font-weight: 400; font-size: 1.15rem; color: var(--cream); margin-bottom: .4rem; }
.tc-suggest__empty { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: 0 0 .6rem; }
.tc-suggest__item { display: flex; align-items: center; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.tc-suggest__main { flex: 1; min-width: 0; }
.tc-suggest__text { font-family: var(--font-b); font-size: .86rem; color: var(--cream); margin: 0; }
.tc-suggest__by { font-family: var(--font-b); font-size: .7rem; color: var(--muted); }
.tc-suggest__row { display: flex; gap: .5rem; margin-top: .7rem; }
.tc-suggest__row .tc-cta { width: auto; margin-top: 0; padding: 0 1.1rem; min-height: 44px; }

/* Login gate (phone + password → unified DuLichCali customer account) */
.tc-login { max-width: 420px; }
.tc-login .tc-hero__chip { margin-bottom: .6rem; }
.tc-login__help { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: -.4rem 0 .6rem; }
.tc-login__err { font-family: var(--font-b); font-size: .8rem; color: #fca5a5; margin: .2rem 0 .4rem; }
.tc-login__switch { display: block; width: 100%; margin-top: .7rem; background: none; border: 0; color: var(--tc-accent); font-family: var(--font-b); font-weight: 600; font-size: .82rem; cursor: pointer; text-align: center; padding: .4rem; }
.tc-login__switch:hover { color: #bae6fd; }

/* Account chip (logged-in family member) */
.tc-acct { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .7rem; padding: .45rem .7rem; border-radius: 12px; background: var(--navy-800); border: 1px solid var(--border); }
.tc-acct__who { font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: var(--cream); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-acct__out { flex-shrink: 0; min-height: 32px; padding: .25rem .8rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-900); color: var(--muted); font-family: var(--font-b); font-weight: 600; font-size: .74rem; cursor: pointer; }
.tc-acct__out:hover { border-color: var(--tc-accent); color: #bae6fd; }

/* Live / seasonal / trending highlights strip */
.tc-live { background: radial-gradient(120% 120% at 0% 0%, rgba(251,146,60,.16), transparent 55%), var(--navy-800); border: 1px solid rgba(251,146,60,.4); border-radius: 16px; padding: .9rem; margin-bottom: 1rem; }
.tc-live__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; }
.tc-live__t { font-family: var(--font-d); font-weight: 400; font-size: 1.15rem; color: var(--cream); }
.tc-live__src { font-family: var(--font-b); font-size: .68rem; color: var(--muted); }
.tc-live__sub { font-family: var(--font-b); font-size: .78rem; line-height: 1.45; color: var(--muted); margin: .25rem 0 .7rem; }
.tc-live__grid { display: grid; grid-template-columns: 1fr; gap: .55rem; }
.tc-live__item { background: var(--navy-900); border: 1px solid var(--border); border-radius: 12px; padding: .7rem .8rem; }
.tc-live__top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .25rem; }
.tc-live__cat { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; color: #fed7aa; }
.tc-live__when { font-family: var(--font-b); font-weight: 600; font-size: .66rem; color: var(--tc-accent); background: rgba(56,189,248,.12); border: 1px solid rgba(56,189,248,.35); border-radius: 99px; padding: .12rem .5rem; }
.tc-live__name { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); margin-bottom: .15rem; }
.tc-live__note { font-family: var(--font-b); font-size: .8rem; line-height: 1.45; color: var(--muted); margin: 0 0 .5rem; }
.tc-live .tc-unverified { margin-top: .6rem; }
@media (min-width: 768px) { .tc-live__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .tc-live__grid { grid-template-columns: 1fr 1fr 1fr; } }

/* ── Phase 1: collapse groups, multi-destination editor, travel days, hotels ── */
.tc-chips .tc-chip { min-height: 36px; }

/* Collapsible preference / detail group */
.tc-collapse { border: 1px solid var(--border); border-radius: 14px; margin-top: .6rem; overflow: hidden; background: var(--navy-900); }
.tc-collapse__head { display: flex; align-items: center; gap: .5rem; width: 100%; min-height: 48px; padding: 0 .9rem; background: transparent; border: 0; cursor: pointer; color: var(--cream); font-family: var(--font-b); font-weight: 600; font-size: .9rem; text-align: left; }
.tc-collapse__title { flex: 1; }
.tc-collapse__badge { min-width: 20px; height: 20px; padding: 0 .35rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; background: var(--tc-accent); color: #042038; font-size: .68rem; font-weight: 700; }
.tc-collapse__chev { transition: transform .2s; color: var(--muted); }
.tc-collapse--open .tc-collapse__chev { transform: rotate(180deg); }
.tc-collapse__body { padding: 0 .9rem .9rem; }

/* Multi-destination editor */
.tc-destwrap { margin-top: .35rem; }
.tc-destlist { display: flex; flex-direction: column; gap: .6rem; }
.tc-dest { border: 1px solid var(--border); border-radius: 14px; padding: .7rem; background: var(--navy-900); }
.tc-dest__head { display: flex; align-items: center; gap: .5rem; }
.tc-dest__num { flex-shrink: 0; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; background: rgba(56,189,248,.16); color: var(--tc-accent); font-family: var(--font-b); font-weight: 700; font-size: .8rem; }
.tc-dest__citywrap { flex: 1; min-width: 0; }
.tc-dest__city { width: 100%; }
.tc-dest__ctrls { display: flex; gap: .3rem; flex-shrink: 0; }
.tc-dest__move, .tc-dest__rm { width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 10px; background: var(--navy-800); color: var(--cream); font-size: 1rem; cursor: pointer; }
.tc-dest__rm { color: #fca5a5; }
.tc-dest__move:hover, .tc-dest__rm:hover { border-color: var(--tc-accent); }
.tc-dest .tc-collapse { margin-top: .55rem; }
.tc-adddest { width: 100%; min-height: 46px; margin-top: .6rem; border: 1px dashed var(--border-g); border-radius: 14px; background: transparent; color: var(--tc-accent); font-family: var(--font-b); font-weight: 700; font-size: .88rem; cursor: pointer; }

/* ── Journey Builder (Step B) — Home → Segment 1…N → Return ── */
.tc-journeyed { display: flex; flex-direction: column; gap: .55rem; }
.tc-jsummary { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; padding: .55rem .7rem; border: 1px solid var(--tc-gold-deep); background: var(--tc-gold-soft); border-radius: 12px; font-family: var(--font-b); }
.tc-jsummary__item { font-weight: 600; font-size: .82rem; color: var(--cream); }
.tc-jsummary__sep { color: var(--muted); }
.tc-jsummary__total { font-size: .8rem; color: var(--tc-gold); font-weight: 700; }
.tc-jsummary__empty { font-size: .82rem; color: var(--muted); }
.tc-seg2list { display: flex; flex-direction: column; gap: .35rem; }
.tc-seg2 { border: 1px solid var(--border); border-radius: 14px; padding: .7rem; background: var(--navy-900); }
.tc-seg2__head { display: flex; align-items: center; gap: .5rem; }
.tc-seg2__num { flex-shrink: 0; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; background: rgba(56,189,248,.16); color: var(--tc-accent); font-family: var(--font-b); font-weight: 700; font-size: .8rem; }
.tc-seg2__ctrls { display: flex; gap: .3rem; flex-shrink: 0; }
.tc-seg2__move, .tc-seg2__rm { width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 10px; background: var(--navy-800); color: var(--cream); font-size: 1rem; cursor: pointer; }
.tc-seg2__rm { color: #fca5a5; }
.tc-seg2__move:hover, .tc-seg2__rm:hover { border-color: var(--tc-accent); }
.tc-seg2__dates { display: flex; gap: .5rem; margin-top: .55rem; }
.tc-seg2__dates .tc-field { flex: 1; margin-bottom: 0; }
.tc-seg2__date { width: 100%; }
.tc-seg2__nights { display: inline-block; margin-top: .45rem; font-family: var(--font-b); font-size: .78rem; font-weight: 700; color: var(--tc-gold); }
.tc-seg2__more { margin-top: .55rem; }
.tc-seg2__moresum { cursor: pointer; font-family: var(--font-b); font-size: .8rem; color: var(--tc-accent); list-style: none; padding: .35rem 0; }
.tc-seg2__morebody { display: flex; flex-direction: column; gap: .5rem; padding-top: .3rem; }
.tc-seg2__ov { display: flex; align-items: center; gap: .5rem; font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-seg2__ov input { width: 20px; height: 20px; }
.tc-seg2__bk { display: inline-block; margin-top: .5rem; font-family: var(--font-b); font-size: .72rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; }
.tc-seg2__bk--booked { color: #bbf7d0; background: rgba(34,197,94,.16); border: 1px solid rgba(34,197,94,.4); }
.tc-seg2__bk--pending { color: #fde68a; background: rgba(250,204,21,.14); border: 1px solid rgba(250,204,21,.4); }
.tc-leg { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; padding: .3rem .75rem; margin-left: .85rem; border-left: 2px dashed var(--border-g); }
.tc-leg__route { font-family: var(--font-b); font-size: .8rem; font-weight: 600; color: var(--muted); }
.tc-leg__via { font-family: var(--font-b); font-size: .75rem; color: var(--tc-accent); }
.tc-leg--return { display: block; }
.tc-leg__sum { cursor: pointer; font-family: var(--font-b); font-size: .8rem; color: var(--muted); list-style: none; }
.tc-leg__body { display: flex; flex-direction: column; gap: .45rem; padding: .5rem 0 .2rem; }
.tc-create__quick { margin-top: .8rem; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.tc-create__quicksum { cursor: pointer; padding: .7rem .8rem; font-family: var(--font-b); font-weight: 600; font-size: .85rem; color: var(--cream); list-style: none; }
.tc-create__quickbody { padding: 0 .8rem .8rem; }
@media (min-width: 768px) { .tc-seg2__dates { gap: .7rem; } .tc-jsummary { padding: .65rem .9rem; } }
@media (prefers-reduced-motion: reduce) { .tc-seg2__move, .tc-seg2__rm { transition: none; } }

/* Route overview strip (multi-destination) */
.tc-routeoverview { border: 1px solid rgba(251,146,60,.4); border-radius: 14px; padding: .7rem .8rem; margin-bottom: .9rem; background: radial-gradient(120% 120% at 0% 0%, rgba(251,146,60,.14), transparent 55%), var(--navy-800); }
.tc-routeoverview__head { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.tc-routeoverview__t { font-family: var(--font-d); font-weight: 400; font-size: 1.05rem; color: var(--cream); }
.tc-routeoverview__tot { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-routeoverview__chips { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; }
.tc-routechip { min-height: 34px; padding: .3rem .7rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-900); color: var(--cream); font-family: var(--font-b); font-weight: 600; font-size: .78rem; cursor: pointer; }
.tc-routechip:hover { border-color: var(--tc-accent); color: #bae6fd; }
.tc-routearrow { font-family: var(--font-b); font-size: .68rem; color: var(--tc-accent2); white-space: nowrap; }

/* Day tabs: travel-day variant + day-header destination label */
.tc-daytab--travel { border-color: rgba(251,146,60,.5); }
.tc-daytab--travel span { color: #fed7aa; }
.tc-dayhead__dest { display: inline-block; font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: uppercase; color: var(--tc-accent); margin-bottom: .2rem; }

/* Travel-day card */
.tc-travel { border: 1px solid rgba(251,146,60,.4); border-radius: 16px; padding: .9rem; background: var(--navy-800); }
.tc-travel__route { font-family: var(--font-d); font-size: 1.1rem; color: var(--cream); margin-bottom: .6rem; }
.tc-travel__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: .5rem; }
.tc-travel__sub { display: block; font-family: var(--font-b); font-weight: 700; font-size: .8rem; color: var(--tc-accent2); margin: .7rem 0 .3rem; }
.tc-travel__rest { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-travel .tc-place { margin-top: .4rem; }

/* Hotels block (arrival tab) */
.tc-hotels { margin-top: 1rem; }
.tc-hotels__t { display: block; font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); margin-bottom: .5rem; }
.tc-hotel { border: 1px solid var(--border); border-radius: 14px; padding: .8rem; margin-bottom: .6rem; background: var(--navy-900); }
.tc-hotel__head { display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.tc-hotel__city { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-hotel__name { font-family: var(--font-b); font-size: .85rem; color: var(--tc-accent); }
.tc-hotel__area, .tc-hotel__note { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .25rem 0; }
.tc-hotel__links { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0; }

@media (min-width: 768px) {
  .tc-travel__grid { grid-template-columns: repeat(4, 1fr); }
  .tc-dest__head { gap: .7rem; }
}
@media (min-width: 1200px) {
  .tc-routeoverview__chips { gap: .5rem; }
}

/* ── Travel Booking Concierge tab ── */
.tc-bookings__t { display: block; font-family: var(--font-d); font-size: 1.3rem; color: var(--cream); }
.tc-bookings__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .2rem 0 .6rem; }
.tc-bnotice { font-family: var(--font-b); font-size: .76rem; line-height: 1.45; color: #bae6fd; background: rgba(56,189,248,.1); border: 1px solid rgba(56,189,248,.35); border-radius: 12px; padding: .6rem .75rem; margin-bottom: .8rem; }
.tc-bookings__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .9rem; }
.tc-bookings__actions .tc-cta, .tc-bookings__actions .tc-addbtn { width: auto; margin-top: 0; flex: 1; min-width: 140px; }
.tc-bookings__add { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; align-items: stretch; }
.tc-bookings__add .tc-input { flex: 1; min-width: 120px; }
.tc-bookings__add .tc-cta { width: auto; margin-top: 0; padding: 0 1rem; min-height: 44px; }
.tc-bk { border: 1px solid var(--border); border-radius: 16px; padding: .85rem; margin-bottom: .7rem; background: var(--navy-900); }
.tc-bk__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .35rem; }
.tc-bk__type { font-family: var(--font-b); font-weight: 700; font-size: .72rem; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.tc-bk__stat { font-family: var(--font-b); font-weight: 700; font-size: .66rem; padding: .15rem .55rem; border-radius: 99px; border: 1px solid var(--border); }
.tc-bstat--research { color: var(--muted); }
.tc-bstat--researching { color: #fbbf24; border-color: rgba(251,191,36,.4); }
.tc-bstat--ready { color: var(--tc-accent); border-color: rgba(56,189,248,.4); background: rgba(56,189,248,.1); }
.tc-bstat--approve { color: #fb923c; border-color: rgba(251,146,60,.45); }
.tc-bstat--booked { color: #86efac; border-color: rgba(134,239,172,.45); background: rgba(134,239,172,.1); }
.tc-bstat--skip { color: var(--muted); opacity: .7; }
.tc-bk__title { display: block; font-family: var(--font-b); font-weight: 700; font-size: .98rem; color: var(--cream); margin-bottom: .3rem; }
.tc-bk__meta { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0; }
.tc-bk__rec { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--cream); margin: .3rem 0; }
.tc-bk__rec-k { color: var(--tc-accent); font-weight: 700; }
.tc-bk__acts, .tc-bk__ctrls { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0 0; align-items: center; }
.tc-bk__ctrls .tc-input { flex: 1; min-width: 130px; }
.tc-chip--bk { border-color: rgba(134,239,172,.45); color: #86efac; }

@media (min-width: 768px) {
  .tc-bk__ctrls .tc-input { flex: 0 0 auto; min-width: 160px; }
}
@media (min-width: 1200px) {
  .tc-bookings__actions .tc-cta, .tc-bookings__actions .tc-addbtn { flex: 0 0 auto; }
}

/* ── Shared trip access: Share button, modal, members, join screen ── */
.tc-sharebtn { width: 100%; min-height: 46px; margin-bottom: .8rem; border: 1px solid rgba(56,189,248,.5); border-radius: 12px; background: rgba(56,189,248,.1); color: #bae6fd; font-family: var(--font-b); font-weight: 700; font-size: .9rem; cursor: pointer; }
.tc-sharebtn:hover { background: rgba(56,189,248,.18); }
.tc-share2 { display: flex; flex-direction: column; gap: .35rem; }
.tc-share__perm { font-family: var(--font-b); font-size: .78rem; line-height: 1.5; color: var(--muted); margin: .3rem 0 .6rem; }
.tc-share__acts { display: flex; flex-wrap: wrap; gap: .5rem; margin: .3rem 0 .6rem; }
.tc-share__acts .tc-addbtn { width: auto; flex: 1; min-width: 140px; margin-top: 0; }
.tc-passcode { flex: 1; font-family: var(--font-d); font-size: 1.5rem; letter-spacing: .28em; color: var(--cream); background: var(--navy-900); border: 1px solid var(--border); border-radius: 10px; padding: .5rem .8rem; text-align: center; }
.tc-members { margin-top: .8rem; border-top: 1px solid rgba(255,255,255,.08); padding-top: .7rem; }
.tc-members__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .8rem; color: var(--tc-accent2); margin-bottom: .5rem; }
.tc-member { display: flex; align-items: center; gap: .5rem; padding: .4rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.tc-member__name { flex: 1; font-family: var(--font-b); font-size: .85rem; color: var(--cream); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-member .tc-pbtn { flex-shrink: 0; }
.tc-rolepill { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 99px; border: 1px solid var(--border); color: var(--muted); }
.tc-rolepill--owner { color: #fcd34d; border-color: rgba(252,211,77,.45); background: rgba(252,211,77,.1); }
.tc-rolepill--organizer { color: var(--tc-accent); border-color: rgba(56,189,248,.45); }
/* Join screen */
.tc-join { max-width: 460px; }
.tc-joinpreview { background: var(--navy-800); border: 1px solid var(--border); border-radius: 14px; padding: .9rem; margin-bottom: 1rem; text-align: center; }
.tc-joinpreview__name { display: block; font-family: var(--font-d); font-size: 1.4rem; color: var(--cream); }
.tc-joinpreview__dest { font-family: var(--font-b); font-size: .85rem; color: var(--muted); margin-top: .25rem; }
/* Suggestion status + approval */
.tc-suggest__meta { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .15rem; }
.tc-sgstat { font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; padding: .12rem .45rem; border-radius: 99px; border: 1px solid var(--border); color: var(--muted); }
.tc-sgstat--approved { color: #86efac; border-color: rgba(134,239,172,.45); background: rgba(134,239,172,.1); }
.tc-sgstat--rejected { color: #fca5a5; border-color: rgba(252,165,165,.4); }
.tc-suggest__item--rejected { opacity: .6; }
.tc-suggest__decide { display: flex; gap: .4rem; margin-top: .4rem; flex-basis: 100%; }
@media (min-width: 768px) {
  .tc-share__acts .tc-addbtn { flex: 0 0 auto; }
}

/* ── Hero: account strip + "Your trips" ── */
.tc-heroacct { display: flex; align-items: center; justify-content: flex-end; gap: .6rem; margin-bottom: .4rem; min-height: 36px; }
.tc-heroacct__who { font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: var(--muted); }
.tc-heroacct__btn { min-height: 36px; padding: .35rem .9rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-800); color: var(--muted); font-family: var(--font-b); font-weight: 600; font-size: .78rem; cursor: pointer; }
.tc-heroacct__btn:hover { border-color: var(--tc-accent); color: #bae6fd; }
.tc-heroacct__btn--login { border-color: rgba(56,189,248,.5); color: #bae6fd; background: rgba(56,189,248,.1); }
.tc-mytrips { margin-top: 1.6rem; text-align: left; }
.tc-mytrips__empty { font-family: var(--font-b); font-size: .82rem; color: var(--muted); }

/* Header account control (app-bar, persistent on every screen) */
.tc-hdrright { display: flex; align-items: center; gap: .5rem; }
.tc-hdracct { display: flex; align-items: center; gap: .4rem; }
.tc-hdracct__who { font-family: var(--font-b); font-weight: 600; font-size: .72rem; color: var(--muted); white-space: nowrap; }
.tc-hdracct__btn { min-height: 32px; padding: .25rem .7rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-800); color: var(--muted); font-family: var(--font-b); font-weight: 600; font-size: .72rem; cursor: pointer; white-space: nowrap; }
.tc-hdracct__btn:hover { border-color: var(--tc-accent); color: #bae6fd; }
.tc-hdracct__btn--login { border-color: rgba(56,189,248,.5); color: #bae6fd; background: rgba(56,189,248,.12); }

/* ── Member identity strip + richer member list + invite form ── */
.tc-acct { flex-wrap: wrap; gap: .5rem; }
.tc-acct__info { display: flex; flex-direction: column; gap: .1rem; flex: 1; min-width: 0; }
.tc-acct__sub { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-acct__btns { display: flex; gap: .4rem; flex-wrap: wrap; }
.tc-member { align-items: flex-start; }
.tc-member__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.tc-member__line { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tc-member__meta { font-family: var(--font-b); font-size: .7rem; color: var(--muted); line-height: 1.4; }
.tc-member__ctrls { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; flex-shrink: 0; }
.tc-member__fam { min-height: 32px; font-size: .72rem; padding: .2rem .5rem; width: auto; min-width: 96px; }
.tc-rolepill--pending { color: #fbbf24; border-color: rgba(251,191,36,.4); background: rgba(251,191,36,.1); }
.tc-invite { margin-top: .9rem; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.08); }
.tc-invite .tc-cta { min-height: 44px; }
@media (min-width: 768px) { .tc-member { align-items: center; } }

/* ── Destination roles: day-header tags + per-leg controls ── */
.tc-dayhead__dest { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-bottom: .25rem; font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: uppercase; color: var(--tc-accent); }
.tc-roletag { font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .03em; text-transform: uppercase; padding: .1rem .45rem; border-radius: 99px; border: 1px solid rgba(251,146,60,.4); color: #fed7aa; background: rgba(251,146,60,.1); }
.tc-roletag--opt { border-color: var(--border); color: var(--muted); background: transparent; }
.tc-roletag--return { border-color: rgba(56,189,248,.45); color: #bae6fd; background: rgba(56,189,248,.12); }
.tc-roletag--arrival { border-color: rgba(16,185,129,.45); color: #6ee7b7; background: rgba(16,185,129,.12); }
.tc-roletag--transfer { border-color: rgba(251,191,36,.45); color: #fde68a; background: rgba(251,191,36,.12); }
.tc-roletag--mixed { border-color: rgba(167,139,250,.45); color: #ddd6fe; background: rgba(167,139,250,.12); }
/* Pinned must-do activities editor */
.tc-pinwrap { display: flex; flex-direction: column; }
.tc-pin { border: 1px solid var(--border); border-radius: 14px; padding: .7rem .8rem; margin-bottom: .6rem; background: var(--navy-800); }
.tc-pin__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .2rem; }
.tc-pin__num { color: var(--tc-accent2); font-size: 1.05rem; }
/* Issue #9: skip / replace overrides */
.tc-skipped { border: 1px dashed var(--border-g); border-radius: 12px; padding: .6rem .8rem; margin-bottom: .6rem; background: rgba(255,255,255,.02); }
.tc-skipped__lbl { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--muted); text-decoration: line-through; }
.tc-skipped__why { display: block; font-family: var(--font-b); font-size: .72rem; color: var(--tc-accent); margin-top: .25rem; }
.tc-skipped__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.tc-replnote { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: -.15rem 0 .6rem; padding: .25rem .5rem; font-family: var(--font-b); font-size: .72rem; color: var(--tc-accent); }
.tc-altpanel { margin-top: .55rem; border: 1px solid var(--border); border-radius: 12px; padding: .6rem .7rem; background: var(--navy-800); display: flex; flex-direction: column; gap: .4rem; }
.tc-altpanel__h { font-family: var(--font-b); font-weight: 700; font-size: .78rem; color: var(--cream); margin: 0; }
.tc-altpanel__opt { text-align: left; border: 1px solid var(--border-g); border-radius: 10px; padding: .45rem .6rem; background: var(--navy-900); color: var(--cream); font-family: var(--font-b); cursor: pointer; display: block; width: 100%; }
.tc-altpanel__opt:hover { border-color: var(--tc-accent); }
.tc-altpanel__nm { font-size: .85rem; font-weight: 700; }
.tc-altpanel__cat { font-size: .76rem; color: var(--muted); }
.tc-altpanel__why { display: block; font-size: .74rem; color: var(--muted); margin-top: .1rem; }
.tc-altpanel__add { display: flex; gap: .4rem; }
.tc-altpanel__add .tc-input { flex: 1; }
/* Verified-route source tag (Google Maps vs estimated) */
.tc-routesrc { display: block; font-family: var(--font-b); font-size: .66rem; font-weight: 700; color: var(--muted); margin-top: .35rem; }
.tc-routesrc--ok { color: #6ee7b7; }
.tc-dayhead__legctl { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 .2rem; }
.tc-dest .tc-field { margin-bottom: .5rem; }

/* ── "Where to Stay" tab ── */
.tc-stays__t { display: block; font-family: var(--font-d); font-size: 1.3rem; color: var(--cream); }
.tc-stays__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .2rem 0 .7rem; }
.tc-stays__sub2 { display: block; font-family: var(--font-b); font-weight: 700; font-size: .76rem; color: var(--tc-accent2); margin: .7rem 0 .4rem; }
.tc-stayblock { border: 1px solid var(--border); border-radius: 16px; padding: .85rem; margin-bottom: .9rem; background: var(--navy-800); }
.tc-stayblock__head { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.tc-stayblock__city { font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); }
.tc-stayblock__area { font-family: var(--font-b); font-size: .74rem; font-weight: 700; color: var(--tc-accent); }
.tc-stayblock__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--muted); margin: .3rem 0 .6rem; }
.tc-stay, .tc-abnb { border: 1px solid var(--border); border-radius: 12px; padding: .7rem .8rem; margin-bottom: .55rem; background: var(--navy-900); }
.tc-stay__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .25rem; }
.tc-stay__name { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-stay__for { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .03em; text-transform: uppercase; padding: .12rem .5rem; border-radius: 99px; border: 1px solid rgba(56,189,248,.4); color: #bae6fd; background: rgba(56,189,248,.1); white-space: nowrap; }
.tc-stay__meta { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .12rem 0; }
.tc-stay__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--cream); margin: .3rem 0; }
.tc-stay__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.tc-hotelcard__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .15rem 0 .3rem; }
.tc-chip--star { border-color: rgba(251,191,36,.5); color: #fde68a; background: rgba(251,191,36,.12); }
/* Best-areas panel — the proactive "stay here" recommendations */
.tc-bestareas { border: 1px dashed rgba(56,189,248,.4); border-radius: 12px; padding: .6rem .7rem; margin: .4rem 0 .6rem; background: rgba(56,189,248,.06); }
.tc-bestareas__t { display: block; font-family: var(--font-d); font-size: .9rem; color: var(--cream); margin-bottom: .4rem; }
.tc-bestarea { margin-bottom: .45rem; }
.tc-bestarea__name { font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: #bae6fd; }
.tc-bestarea__why { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .1rem 0 .25rem; }
.tc-bestarea__reason { display: inline-block; font-family: var(--font-b); font-size: .72rem; color: #86efac; margin: 0 .5rem .2rem 0; }
/* Stay-strategy comparison cards */
.tc-staystrat { border: 1px solid var(--border); border-radius: 14px; padding: .75rem .85rem; margin-bottom: .6rem; background: var(--navy-900); }
.tc-staystrat--rec { border-color: rgba(250,204,21,.6); background: rgba(250,204,21,.07); }
.tc-staystrat__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .35rem; }
.tc-staystrat__name { font-family: var(--font-d); font-size: 1rem; color: var(--cream); }
.tc-staystrat__badge { font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .03em; text-transform: uppercase; padding: .14rem .55rem; border-radius: 99px; color: #fde68a; background: rgba(250,204,21,.16); border: 1px solid rgba(250,204,21,.5); }
.tc-staystrat__nights { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .4rem; }
.tc-staystrat__grid { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; }
@media (min-width: 768px) { .tc-stayblock { padding: 1rem; } }
/* Food Picks — warm-amber accent to distinguish from the sky-blue stays */
.tc-foodcard { border-left: 3px solid rgba(251,191,36,.55); }
.tc-foodcard .tc-stay__for { border-color: rgba(251,191,36,.45); color: #fde68a; background: rgba(251,191,36,.12); }

/* ── Phase 0: My Trips dashboard, breadcrumb, back nav, action bar ── */
.tc-pbtn--danger { border-color: rgba(248,113,113,.5); color: #fecaca; background: rgba(248,113,113,.1); }
.tc-pbtn--danger:hover { border-color: #f87171; }
/* Breadcrumb */
.tc-bc { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; font-family: var(--font-b); font-size: .76rem; margin: .2rem 0 .6rem; }
.tc-bc__seg { color: var(--muted); }
.tc-bc__seg--on { color: var(--cream); font-weight: 700; }
.tc-bc__link { background: none; border: 0; padding: 0; color: var(--tc-accent); font-family: var(--font-b); font-size: .76rem; cursor: pointer; }
.tc-bc__link:hover { text-decoration: underline; }
.tc-bc__sep { color: var(--muted); opacity: .6; }
/* Back-to-My-Trips buttons */
.tc-backbtn { display: inline-flex; align-items: center; min-height: 40px; padding: .35rem .9rem; border-radius: 99px; border: 1px solid var(--border-g); background: var(--navy-800); color: var(--cream); font-family: var(--font-b); font-weight: 700; font-size: .82rem; cursor: pointer; }
.tc-backbtn:hover { border-color: var(--tc-accent); }
.tc-backbtn--bottom { display: block; width: 100%; margin: 1.2rem 0 .4rem; text-align: center; }
.tc-plannav { display: flex; flex-direction: column; gap: .5rem; margin-bottom: .4rem; }
/* Dashboard */
.tc-dash { display: flex; flex-direction: column; }
.tc-dash__title { font-family: var(--font-d); font-size: 1.7rem; color: var(--cream); margin: .1rem 0 .8rem; }
.tc-dash__login { color: var(--muted); font-family: var(--font-b); font-size: .9rem; margin: .4rem 0 .2rem; }
.tc-dash__new { max-width: 340px; }
.tc-dash__section { font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); margin: 1.3rem 0 .6rem; }
/* ── Cross-trip travel memory (Step 6) — "what we remember" ── */
.tc-mem { border: 1px solid var(--tc-gold-deep); background: var(--tc-gold-soft); border-radius: 16px; padding: 1rem 1.05rem 1.1rem; margin: 1rem 0 1.4rem; box-shadow: var(--tc-shadow-sm); }
.tc-mem__head { margin: 0 0 .7rem; }
.tc-mem__title { font-family: var(--font-d); font-size: 1.12rem; color: var(--cream); margin: 0; }
.tc-mem__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .25rem 0 0; line-height: 1.5; }
.tc-mem__body { display: flex; flex-direction: column; gap: .55rem; }
.tc-mem__row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem .6rem; }
.tc-mem__label { font-family: var(--font-b); font-weight: 600; font-size: .78rem; color: var(--tc-gold); flex: 0 0 auto; min-width: 7.5rem; }
.tc-mem__val { font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-mem__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.tc-mem__chip { font-family: var(--font-b); font-size: .76rem; color: var(--cream); background: var(--tc-glass); border: 1px solid var(--tc-glass-brd); border-radius: 999px; padding: .18rem .6rem; }
.tc-mem__clear { margin-top: .9rem; font-family: var(--font-b); font-size: .8rem; color: var(--muted); background: transparent; border: 1px solid var(--tc-glass-brd); border-radius: 10px; padding: .45rem .8rem; cursor: pointer; transition: color .2s, border-color .2s; }
.tc-mem__clear:hover { color: var(--cream); border-color: var(--tc-gold-deep); }
@media (min-width: 768px) { .tc-mem { padding: 1.2rem 1.3rem 1.3rem; } .tc-mem__label { min-width: 9rem; } }
@media (prefers-reduced-motion: reduce) { .tc-mem__clear { transition: none; } }
.tc-tripgrid { display: grid; grid-template-columns: 1fr; gap: .8rem; }
.tc-tripcard { border: 1px solid var(--border); border-radius: 16px; background: var(--navy-800); overflow: hidden; }
.tc-tripcard__main { display: flex; flex-direction: column; gap: .25rem; width: 100%; text-align: left; padding: .9rem 1rem; background: none; border: 0; cursor: pointer; color: var(--cream); }
.tc-tripcard__main:hover { background: rgba(56,189,248,.06); }
.tc-tripcard__titlerow { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.tc-tripcard__name { font-family: var(--font-d); font-size: 1.1rem; color: var(--cream); }
.tc-tripcard__role { font-family: var(--font-b); font-weight: 700; font-size: .62rem; text-transform: uppercase; letter-spacing: .03em; padding: .12rem .5rem; border-radius: 99px; white-space: nowrap; }
.tc-tripcard__role--owner { border: 1px solid rgba(56,189,248,.45); color: #bae6fd; background: rgba(56,189,248,.12); }
.tc-tripcard__role--organizer { border: 1px solid rgba(251,191,36,.45); color: #fde68a; background: rgba(251,191,36,.12); }
.tc-tripcard__role--member, .tc-tripcard__role--guest { border: 1px solid var(--border-g); color: var(--muted); background: var(--navy-900); }
.tc-tripcard__dest, .tc-tripcard__dates, .tc-tripcard__upd { font-family: var(--font-b); font-size: .8rem; color: var(--muted); }
.tc-tripcard__acts { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 1rem .9rem; }
.tc-mytrips__hdr { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.tc-mytrips__manage { background: none; border: 0; color: var(--tc-accent); font-family: var(--font-b); font-weight: 700; font-size: .8rem; cursor: pointer; }
.tc-mytrips__manage:hover { text-decoration: underline; }
/* Delete confirm + more sheet */
.tc-del__name { font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin: .2rem 0; }
.tc-del__body { font-family: var(--font-b); font-size: .85rem; line-height: 1.5; color: var(--muted); margin: .2rem 0 .6rem; }
.tc-modal__acts { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; margin-top: .6rem; }
.tc-sheet__list { display: flex; flex-direction: column; gap: .5rem; }
.tc-sheet__list .tc-pbtn { justify-content: flex-start; min-height: 44px; font-size: .9rem; }
/* Mobile sticky action bar */
.tc-actionbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; justify-content: space-around; gap: .25rem; padding: .35rem .5rem calc(.35rem + env(safe-area-inset-bottom)); background: rgba(4,16,30,.96); border-top: 1px solid var(--border); backdrop-filter: blur(8px); }
.tc-actionbar__btn { display: flex; flex-direction: column; align-items: center; gap: .1rem; flex: 1; min-height: 48px; background: none; border: 0; color: var(--muted); font-family: var(--font-b); cursor: pointer; }
.tc-actionbar__btn:hover, .tc-actionbar__btn:active { color: var(--cream); }
.tc-actionbar__ic { font-size: 1.15rem; line-height: 1; }
.tc-actionbar__lbl { font-size: .62rem; font-weight: 700; }
.tc-plan { padding-bottom: 76px; } /* room for the sticky action bar on mobile */
@media (min-width: 768px) {
  .tc-tripgrid { grid-template-columns: 1fr 1fr; }
  .tc-plannav { flex-direction: row-reverse; align-items: center; justify-content: space-between; }
  .tc-actionbar { display: none; }   /* desktop uses the top nav + breadcrumb */
  .tc-plan { padding-bottom: 0; }
  .tc-backbtn--bottom { width: auto; display: inline-flex; }
}
@media (min-width: 1200px) { .tc-tripgrid { grid-template-columns: 1fr 1fr 1fr; } }
/* Phase 2: auto-research "still working" banner */
.tc-researching { display: flex; align-items: center; gap: .55rem; margin: .5rem 0; padding: .6rem .85rem; border: 1px solid rgba(56,189,248,.3); border-radius: 12px; background: rgba(56,189,248,.08); font-family: var(--font-b); font-size: .82rem; color: #bae6fd; }
.tc-researching__dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(56,189,248,.35); border-top-color: var(--tc-accent); animation: tc-spin .8s linear infinite; flex: 0 0 auto; }
.tc-researching__msg { flex: 1; }
@keyframes tc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tc-researching__dot { animation: none; } }
/* Phase 1: popular dishes on itinerary cards + day-level alternatives */
.tc-place__dishes { font-family: var(--font-b); font-size: .8rem; color: var(--cream); margin: .2rem 0 0; }
.tc-place__dishes-k { color: var(--tc-accent2); font-weight: 700; }
.tc-alts { margin: .7rem 0 .2rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-800); overflow: hidden; }
.tc-alts__sum { cursor: pointer; padding: .6rem .85rem; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); list-style: none; }
.tc-alts__sum::-webkit-details-marker { display: none; }
.tc-alts[open] .tc-alts__sum { border-bottom: 1px solid var(--border); }
.tc-alts__row { display: flex; gap: .5rem; padding: .4rem .85rem; align-items: baseline; }
.tc-alts__row + .tc-alts__row { border-top: 1px solid rgba(255,255,255,.04); }
.tc-alts__k { flex: 0 0 42%; font-family: var(--font-b); font-weight: 700; font-size: .76rem; color: var(--tc-accent); }
.tc-alts__v { flex: 1; font-family: var(--font-b); font-size: .8rem; color: var(--muted); }
@media (min-width: 768px) { .tc-alts__k { flex-basis: 30%; } }

/* ── Itinerary control: per-card move menu, drag, pin, why, day actions, replan (mobile-first) ── */
.tc-pbtn--ghost { background: transparent; border-color: rgba(255,255,255,.14); color: var(--muted); min-height: 32px; padding: .25rem .6rem; font-size: .72rem; }
.tc-pbtn--ghost:hover { color: var(--cream); border-color: var(--tc-accent); }
.tc-pbtn--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }
.tc-pbtn[disabled] { opacity: .4; cursor: not-allowed; }

.tc-place__ctl { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-bottom: .4rem; }
.tc-place__ctlsp { flex: 1 1 auto; }
.tc-place__drag { display: none; color: var(--muted); font-size: 1rem; line-height: 1; cursor: grab; user-select: none; }
.tc-place__pinbadge { font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .03em; padding: .15rem .45rem; border-radius: 99px; background: rgba(251,146,60,.18); color: #fed7aa; border: 1px solid rgba(251,146,60,.5); }
.tc-place__addedby { display: inline-block; font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .03em; padding: .12rem .45rem; margin-bottom: .3rem; border-radius: 99px; background: rgba(132,204,22,.14); color: #d9f99d; border: 1px solid rgba(132,204,22,.4); }
.tc-place--pinned { border-color: rgba(251,146,60,.5); box-shadow: 0 0 0 1px rgba(251,146,60,.25) inset; }
.tc-place--added { border-color: rgba(132,204,22,.4); }
.tc-place--dragging { opacity: .5; }
.tc-section--dropover { background: rgba(56,189,248,.06); border-left-color: var(--tc-accent); border-radius: 8px; }

.tc-cardmenu { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .6rem; margin-bottom: .5rem; display: grid; gap: .45rem; }
.tc-cardmenu__row { display: flex; gap: .45rem; }
.tc-cardmenu__row .tc-pbtn { flex: 1; justify-content: center; }
.tc-cardmenu .tc-field { gap: .2rem; }
.tc-cardmenu .tc-field__lbl { font-size: .68rem; }
.tc-cardmenu > .tc-pbtn { justify-content: center; min-height: 40px; }

.tc-whybox { border: 1px solid rgba(56,189,248,.3); border-radius: 12px; background: rgba(56,189,248,.06); padding: .55rem .7rem; margin-bottom: .5rem; }
.tc-whybox__k { display: block; font-family: var(--font-b); font-weight: 700; font-size: .7rem; color: var(--tc-accent); margin-bottom: .15rem; }
.tc-whybox__v { font-family: var(--font-b); font-size: .82rem; color: var(--cream); margin: 0; line-height: 1.45; }

.tc-dayactions { margin: .6rem 0 1rem; padding: .7rem; border: 1px dashed var(--border); border-radius: 14px; background: rgba(255,255,255,.02); }
.tc-dayactions__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .78rem; color: var(--cream); margin-bottom: .5rem; }
.tc-dayactions__row { display: flex; flex-wrap: wrap; gap: .45rem; }
.tc-addform { margin-top: .7rem; padding: .7rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); display: grid; gap: .5rem; }
.tc-addform__h { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--tc-accent); margin: 0; }
.tc-addform__acts { display: flex; gap: .45rem; }
.tc-addform__acts .tc-pbtn { flex: 1; justify-content: center; min-height: 40px; }

.tc-replan { margin: .2rem 0 .9rem; padding: .7rem .8rem; border: 1px solid rgba(251,146,60,.5); border-radius: 14px; background: rgba(251,146,60,.1); }
.tc-replan__msg { display: block; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: #fed7aa; margin-bottom: .5rem; }
.tc-replan__acts { display: flex; flex-wrap: wrap; gap: .45rem; }
.tc-replan__acts .tc-pbtn { flex: 1 1 45%; justify-content: center; min-height: 42px; }

@media (min-width: 768px) {
  /* Desktop: surface the drag handle (HTML5 drag/drop) + tighten replan/day-action rows */
  .tc-place__drag { display: inline-block; }
  .tc-place:hover .tc-place__drag { color: var(--tc-accent); }
  .tc-cardmenu__row .tc-pbtn { flex: 0 0 auto; }
  .tc-replan__acts .tc-pbtn { flex: 0 0 auto; }
  .tc-addform__acts .tc-pbtn { flex: 0 0 auto; min-width: 130px; }
}
@media (min-width: 1200px) {
  .tc-cardmenu { grid-template-columns: 1fr 1fr; align-items: end; }
  .tc-cardmenu__row, .tc-cardmenu > .tc-pbtn { grid-column: 1 / -1; }
}

/* ── Phase B: Transport tab ("How you'll get there") — mobile-first ── */
.tc-transport { padding: .2rem 0 1rem; }
.tc-transport__t { display: block; font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); margin-bottom: .2rem; }
.tc-transport__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: 0 0 .7rem; }
.tc-transport__sumrow { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0 .8rem; }
.tc-transport__sumchip { font-family: var(--font-b); font-weight: 700; font-size: .72rem; padding: .22rem .5rem; border-radius: 99px; background: var(--navy-800); border: 1px solid var(--border); color: var(--cream); }
.tc-transport__rettitle { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin: 1rem 0 .2rem; }
.tc-tpleg { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; padding: .8rem; margin-bottom: .9rem; }
.tc-tpleg__head { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-bottom: .4rem; }
.tc-tpleg__type { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; padding: .16rem .5rem; border-radius: 99px; background: rgba(56,189,248,.16); color: #bae6fd; border: 1px solid rgba(56,189,248,.4); }
.tc-tpleg__type--return { background: rgba(251,146,60,.16); color: #fed7aa; border-color: rgba(251,146,60,.45); }
.tc-tpleg__type--inter { background: rgba(132,204,22,.14); color: #d9f99d; border-color: rgba(132,204,22,.4); }
.tc-tpleg__route { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-tpleg__day { font-family: var(--font-b); font-size: .68rem; color: var(--muted); padding: .14rem .45rem; border-radius: 99px; border: 1px dashed var(--border); }
.tc-tpleg__drive { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .1rem 0 .5rem; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.tc-tpleg__why { font-family: var(--font-b); font-size: .82rem; color: var(--cream); background: rgba(56,189,248,.07); border: 1px solid rgba(56,189,248,.25); border-radius: 10px; padding: .5rem .65rem; margin: .2rem 0 .55rem; }
.tc-tpleg__why-k { color: var(--tc-accent); font-weight: 700; }
.tc-tpleg__crit { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.tc-tpopt { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .65rem .75rem; margin-bottom: .55rem; }
.tc-tpopt--chosen { border-color: var(--tc-accent); box-shadow: 0 0 0 1px rgba(56,189,248,.3) inset; }
.tc-tpopt__head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .4rem; }
.tc-tpopt__mode { font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: var(--cream); }
.tc-tpopt__prov { font-family: var(--font-b); font-size: .78rem; color: var(--muted); }
.tc-tpopt__badge { margin-left: auto; font-family: var(--font-b); font-weight: 700; font-size: .64rem; color: #bae6fd; background: rgba(56,189,248,.16); border: 1px solid rgba(56,189,248,.4); padding: .14rem .45rem; border-radius: 99px; }
.tc-tpopt__grid { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; margin-bottom: .4rem; }
.tc-tpopt__suit { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .35rem; }
.tc-chip--suit { background: var(--navy-800); border: 1px solid var(--border); color: var(--muted); font-size: .68rem; }
.tc-tpopt__acc { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .1rem 0; }
.tc-tpopt__note { font-family: var(--font-b); font-size: .74rem; color: var(--muted); margin: .1rem 0; line-height: 1.35; }
.tc-tpopt__why { font-family: var(--font-b); font-size: .78rem; color: var(--cream); margin: .2rem 0; line-height: 1.4; }
/* Travel-day Route Opportunities */
.tc-rop-wrap { border: 1px solid rgba(56,189,248,.4); background: rgba(56,189,248,.05); border-radius: 16px; padding: .85rem; margin: .9rem 0; }
.tc-rop-wrap__t { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); }
.tc-rop-added { border: 1px dashed rgba(134,239,172,.5); border-radius: 12px; padding: .5rem .65rem; margin: .5rem 0; background: rgba(134,239,172,.07); }
.tc-rop-added__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: #bbf7d0; margin-bottom: .3rem; }
.tc-rop-added__row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-family: var(--font-b); font-size: .82rem; color: var(--cream); padding: .15rem 0; }
.tc-rop-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0 .7rem; }
.tc-rop { border: 1px solid var(--border); border-radius: 12px; padding: .7rem .8rem; margin-bottom: .55rem; background: var(--navy-900); }
.tc-rop--must_see { border-color: rgba(250,204,21,.5); }
.tc-rop__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .25rem; }
.tc-rop__cat { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .03em; text-transform: uppercase; padding: .12rem .5rem; border-radius: 99px; border: 1px solid rgba(56,189,248,.4); color: #bae6fd; background: rgba(56,189,248,.1); white-space: nowrap; }
.tc-rop__name { font-family: var(--font-d); font-size: 1rem; color: var(--cream); }
.tc-rop__prio { font-family: var(--font-b); font-weight: 700; font-size: .62rem; text-transform: uppercase; color: #fde68a; background: rgba(250,204,21,.16); border: 1px solid rgba(250,204,21,.5); border-radius: 99px; padding: .12rem .5rem; }
.tc-rop__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .15rem 0 .3rem; }
.tc-rop__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.45; color: var(--cream); margin: .2rem 0; }
.tc-rop__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .45rem; }
/* Group → Travelers summary (who's on the trip) */
.tc-travelers { border: 1px solid var(--border); border-radius: 14px; padding: .8rem .85rem; margin-bottom: .9rem; background: var(--navy-800); }
.tc-travelers__t { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin-bottom: .5rem; }
.tc-traveler { padding: .35rem 0; border-top: 1px solid var(--border); }
.tc-traveler:first-of-type { border-top: 0; }
.tc-traveler__name { font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: var(--cream); }
.tc-traveler__meta { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .15rem 0; }
.tc-traveler__needs { font-family: var(--font-b); font-size: .8rem; color: var(--tc-accent); margin: .15rem 0; }
.tc-tpopt__pros { font-family: var(--font-b); font-size: .8rem; color: #d9f99d; margin: .15rem 0; }
.tc-tpopt__cons { font-family: var(--font-b); font-size: .8rem; color: #fca5a5; margin: .15rem 0; }
.tc-tpopt__k { font-weight: 700; }
.tc-tpopt__acts { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .5rem; }
.tc-tpopt__dlcnote, .tc-tpopt__needs { font-family: var(--font-b); font-size: .7rem; color: var(--muted); }
.tc-routesrc--warn { color: #fca5a5; border-color: rgba(248,113,113,.4); }
@media (min-width: 768px) {
  .tc-tpopt__grid { gap: .5rem 1.6rem; }
  .tc-tpleg { padding: 1rem 1.1rem; }
}
@media (min-width: 1200px) {
  .tc-transport__t { font-size: 1.4rem; }
}

/* ── Destination Signature Attraction Intelligence: Top-Picks panel ── */
.tc-topattr { border: 1px solid rgba(251,191,36,.4); background: rgba(251,191,36,.06); border-radius: 16px; padding: .85rem; margin-bottom: 1rem; }
.tc-topattr__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
.tc-topattr__t { font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); }
.tc-topattr__grp { font-family: var(--font-b); font-size: .76rem; color: var(--muted); }
.tc-topattr__sub { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0 .6rem; }
.tc-topattr__city { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--tc-accent); margin: .5rem 0 .35rem; }
.tc-attr { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .6rem .7rem; margin-bottom: .5rem; }
.tc-attr--very_high { border-color: rgba(251,191,36,.55); box-shadow: 0 0 0 1px rgba(251,191,36,.25) inset; }
.tc-attr__top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.tc-attr__tier { font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .04em; text-transform: uppercase; padding: .16rem .5rem; border-radius: 99px; background: var(--navy-800); border: 1px solid var(--border); color: var(--muted); }
.tc-attr__tier--very_high { background: rgba(251,191,36,.2); color: #fde68a; border-color: rgba(251,191,36,.5); }
.tc-attr__tier--high { background: rgba(56,189,248,.16); color: #bae6fd; border-color: rgba(56,189,248,.4); }
.tc-attr__name { font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); }
.tc-attr__tix { font-family: var(--font-b); font-weight: 700; font-size: .62rem; color: #fed7aa; background: rgba(251,146,60,.16); border: 1px solid rgba(251,146,60,.45); padding: .12rem .4rem; border-radius: 99px; }
.tc-attr__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .35rem 0; }
.tc-attr__why { font-family: var(--font-b); font-size: .8rem; color: var(--cream); margin: .2rem 0; }
.tc-attr__why-k { color: var(--tc-accent2); font-weight: 700; }
.tc-attr__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .45rem; }
@media (min-width: 768px) { .tc-topattr { padding: 1.1rem; } }

/* ── Batch 1: Events / Stopovers / Costs ── */
.tc-event, .tc-stop { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .65rem .75rem; margin-bottom: .55rem; }
.tc-event__top, .tc-stop__top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .25rem; }
.tc-event__cat, .tc-stop__type { font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: capitalize; color: var(--tc-accent); }
.tc-event__date, .tc-stop__dur, .tc-stop__leg { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-event__name, .tc-stop__name { display: block; font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-event__loc, .tc-stop__loc { font-family: var(--font-b); font-size: .78rem; color: var(--muted); margin: .15rem 0; }
.tc-event__chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: .3rem 0; }
.tc-event__why, .tc-stop__why { font-family: var(--font-b); font-size: .8rem; color: var(--cream); margin: .2rem 0; }
.tc-event__acts, .tc-stop__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .4rem; }
.tc-event__pending { display: inline-block; font-family: var(--font-b); font-size: .68rem; color: var(--muted); margin-top: .35rem; }
.tc-event__live { display: inline-block; font-family: var(--font-b); font-size: .68rem; font-weight: 700; color: #6ee7a0; margin-top: .35rem; }
.tc-stop__alts { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .2rem 0; }
.tc-stop__badge { font-family: var(--font-b); font-weight: 700; font-size: .62rem; color: #bae6fd; background: rgba(56,189,248,.16); border: 1px solid rgba(56,189,248,.4); padding: .12rem .4rem; border-radius: 99px; }
.tc-stop--skipped { opacity: .55; }
.tc-costs { padding: .2rem 0 1rem; }
.tc-costs__t { display: block; font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); }
.tc-costs__sub { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .1rem 0 .7rem; }
.tc-costs__h { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); margin: 1rem 0 .5rem; }
.tc-costs__range { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .2rem 0 .4rem; }
.tc-costs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.tc-costcard { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-800); padding: .6rem .7rem; }
.tc-costcard__k { display: block; font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-costcard__v { font-family: var(--font-d); font-size: 1.3rem; color: var(--cream); }
.tc-costrow { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; border-top: 1px solid rgba(255,255,255,.05); }
.tc-costrow__k { font-family: var(--font-b); font-size: .82rem; color: var(--cream); flex: 0 0 38%; }
.tc-costrow__v { font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: var(--cream); }
.tc-costrow__bar { flex: 1; height: 8px; background: var(--navy-900); border-radius: 99px; overflow: hidden; }
.tc-costrow__bar > i { display: block; height: 100%; background: linear-gradient(90deg, var(--tc-accent), var(--tc-accent2)); }
.tc-coststrip { display: flex; align-items: baseline; gap: .5rem; width: 100%; text-align: left; border: 1px solid rgba(251,191,36,.4); background: rgba(251,191,36,.08); border-radius: 12px; padding: .55rem .75rem; margin-bottom: .8rem; cursor: pointer; }
.tc-coststrip__k { font-family: var(--font-b); font-weight: 700; font-size: .78rem; color: #fde68a; }
.tc-coststrip__v { font-family: var(--font-d); font-size: 1.2rem; color: var(--cream); }
.tc-coststrip__sub { font-family: var(--font-b); font-size: .72rem; color: var(--muted); margin-left: auto; }
.tc-ledrow { display: flex; align-items: center; gap: .5rem; padding: .35rem 0; border-top: 1px solid rgba(255,255,255,.05); }
.tc-ledrow--paid { opacity: .6; }
.tc-ledrow__k { font-family: var(--font-b); font-size: .82rem; color: var(--cream); flex: 1; }
.tc-ledrow__v { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); }
.tc-ledadd { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; align-items: center; }
.tc-ledadd .tc-input { flex: 1; min-width: 90px; }
.tc-costassum { margin-top: 1rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .2rem .6rem; }
.tc-costassum__sum { cursor: pointer; padding: .5rem 0; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); }
@media (min-width: 768px) { .tc-costs__grid { grid-template-columns: repeat(4, 1fr); } }

/* ── Live trip location sharing ── */
.tc-live2 { padding: .2rem 0 1rem; }
.tc-live2__t { display: block; font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); }
.tc-live2__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .1rem 0 .7rem; }
.tc-live2__h { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); margin: 1rem 0 .5rem; }
.tc-live2__mine { border: 1px solid rgba(56,189,248,.3); background: rgba(56,189,248,.06); border-radius: 14px; padding: .7rem .8rem; margin: .5rem 0 .8rem; }
.tc-live2__on { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: #bae6fd; margin-bottom: .5rem; }
.tc-live2__off { display: block; font-family: var(--font-b); font-size: .82rem; color: var(--cream); margin-bottom: .5rem; }
.tc-live2__sharebtns, .tc-live2__statusrow, .tc-live2__nav { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-live2__statusrow { margin-bottom: .5rem; }
.tc-live2__nav { margin-bottom: .8rem; }
.tc-live2__m { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .6rem .75rem; margin-bottom: .5rem; }
.tc-live2__mhead { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tc-live2__mn { font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: var(--cream); }
.tc-live2__mstatus { margin-left: auto; font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .03em; padding: .14rem .5rem; border-radius: 99px; background: var(--navy-800); border: 1px solid var(--border); color: var(--muted); }
.tc-live2__mstatus--arrived { background: rgba(132,204,22,.16); color: #d9f99d; border-color: rgba(132,204,22,.4); }
.tc-live2__mstatus--on_the_way { background: rgba(56,189,248,.16); color: #bae6fd; border-color: rgba(56,189,248,.4); }
.tc-live2__mstatus--delayed { background: rgba(248,113,113,.14); color: #fca5a5; border-color: rgba(248,113,113,.4); }
.tc-live2__mmeta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .3rem 0; }
.tc-live2__macts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .35rem; }
.tc-live2__priv { margin-top: .8rem; }

/* ── Experience Optimizer ── */
.tc-improve { border: 1px solid rgba(192,132,252,.4); background: rgba(192,132,252,.06); border-radius: 14px; margin: 0 0 1rem; overflow: hidden; }
.tc-improve__sum { cursor: pointer; padding: .7rem .85rem; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); list-style: none; }
.tc-improve__sum::-webkit-details-marker { display: none; }
.tc-improve[open] .tc-improve__sum { border-bottom: 1px solid rgba(192,132,252,.25); }
.tc-improve__body { padding: .7rem .85rem; }
.tc-improve__btns { display: flex; flex-wrap: wrap; gap: .4rem; margin: .3rem 0 .6rem; }
.tc-improve__rebuild { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .2rem 0 .7rem; padding-bottom: .6rem; border-bottom: 1px solid rgba(192,132,252,.25); }
/* ✨ Auto-rebuild nudge (votes changed since last optimize) */
.tc-optnudge { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; border: 1px solid rgba(250,204,21,.55); background: rgba(250,204,21,.1); border-radius: 14px; padding: .7rem .85rem; margin: 0 0 .9rem; }
.tc-optnudge__t { font-family: var(--font-b); font-weight: 600; font-size: .88rem; color: var(--cream); flex: 1 1 auto; }
.tc-optnudge__btn { white-space: nowrap; }
.tc-impchip { transition: background .15s, border-color .15s; }
.tc-improve__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .2rem 0 .7rem; }
.tc-improve__count { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin-right: auto; }
.tc-improve__run[disabled] { opacity: .45; cursor: not-allowed; }
.tc-improve__summary { font-family: var(--font-b); font-size: .85rem; color: #e9d5ff; background: rgba(192,132,252,.1); border-radius: 10px; padding: .5rem .65rem; margin: .2rem 0 .6rem; }
.tc-impcard { border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); padding: .6rem .7rem; margin-bottom: .5rem; }
.tc-impcard__top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .25rem; }
.tc-impcard__cat { font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .03em; text-transform: uppercase; padding: .14rem .5rem; border-radius: 99px; background: rgba(192,132,252,.16); color: #e9d5ff; border: 1px solid rgba(192,132,252,.4); }
.tc-impcard__day { font-family: var(--font-b); font-size: .68rem; color: var(--muted); }
.tc-impcard__title { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); }
.tc-impcard__detail { font-family: var(--font-b); font-size: .82rem; color: var(--cream); margin: .15rem 0; }
.tc-impcard__why { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0; }
.tc-impcard__acts { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .4rem; }
.tc-impcard__tix { font-family: var(--font-b); font-weight: 700; font-size: .62rem; color: #fed7aa; }

/* ── Trip Album (V2 — link media, privacy-aware) ── */
.tc-album, .tc-clips { padding: .2rem 0 1rem; }
.tc-album__t, .tc-clips__t { display: block; font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); }
.tc-album__sub, .tc-clips__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .1rem 0 .8rem; }
.tc-album__add { border: 1px dashed rgba(56,189,248,.45); border-radius: 14px; background: rgba(56,189,248,.05); margin: 0 0 1rem; overflow: hidden; }
.tc-album__addsum { cursor: pointer; padding: .7rem .85rem; font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: #bae6fd; list-style: none; }
.tc-album__addsum::-webkit-details-marker { display: none; }
.tc-album__addbody { padding: .2rem .85rem .85rem; border-top: 1px solid rgba(56,189,248,.2); }
.tc-media__grid { display: grid; grid-template-columns: 1fr; gap: .7rem; margin-top: .3rem; }
.tc-media { border: 1px solid var(--border); border-radius: 14px; background: var(--navy-900); overflow: hidden; display: flex; flex-direction: column; }
.tc-media__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--navy-800); }
.tc-media__ph { width: 100%; aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; text-align: center; padding: .8rem; box-sizing: border-box; font-family: var(--font-b); font-weight: 600; font-size: .85rem; color: var(--muted); background: linear-gradient(135deg, rgba(56,189,248,.08), rgba(251,146,60,.08)); }
.tc-media__body { padding: .6rem .7rem .7rem; display: flex; flex-direction: column; gap: .4rem; }
.tc-media__cap { font-family: var(--font-b); font-weight: 600; font-size: .88rem; color: var(--cream); margin: 0; }
.tc-media__meta { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.tc-media__vis { font-family: var(--font-b); font-weight: 700; font-size: .62rem; letter-spacing: .03em; padding: .14rem .5rem; border-radius: 99px; background: var(--navy-800); border: 1px solid var(--border); color: var(--muted); }
.tc-media__vis--group { background: rgba(56,189,248,.14); color: #bae6fd; border-color: rgba(56,189,248,.4); }
.tc-media__vis--private { background: rgba(248,113,113,.14); color: #fca5a5; border-color: rgba(248,113,113,.4); }
.tc-media__vis--selected_only { background: rgba(250,204,21,.14); color: #fde68a; border-color: rgba(250,204,21,.4); }
.tc-media__acts { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin-top: .1rem; }
.tc-media__vissel { flex: 1 1 120px; min-width: 110px; }

/* ── AI Clips (V2 — export package only) ── */
.tc-clips__opts { display: grid; grid-template-columns: 1fr; gap: .6rem; margin: .3rem 0 .6rem; }
.tc-clip__consent { display: flex; align-items: flex-start; gap: .55rem; border: 1px solid rgba(250,204,21,.45); background: rgba(250,204,21,.08); border-radius: 12px; padding: .65rem .75rem; margin: .2rem 0 .3rem; font-family: var(--font-b); font-size: .82rem; color: var(--cream); cursor: pointer; }
.tc-clip__consent input { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--tc-accent); margin-top: .05rem; }
.tc-clip { border: 1px solid rgba(56,189,248,.3); background: rgba(56,189,248,.05); border-radius: 14px; padding: .85rem; margin-top: 1rem; }
.tc-clip__summary { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: #bae6fd; margin: 0 0 .6rem; }
.tc-clip__sec { margin: 0 0 .8rem; }
.tc-clip__sech { display: block; font-family: var(--font-b); font-weight: 700; font-size: .78rem; letter-spacing: .02em; text-transform: uppercase; color: var(--tc-accent2); margin-bottom: .35rem; }
.tc-clip__board { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .35rem; font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-clip__list { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .25rem; font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-clip__txt { font-family: var(--font-b); font-size: .85rem; line-height: 1.5; color: var(--cream); margin: 0; white-space: pre-wrap; }
.tc-clip__tags { font-family: var(--font-b); font-weight: 600; font-size: .82rem; color: #7dd3fc; margin: 0; word-break: break-word; }

/* ── Embedded live map (V2) ── */
.tc-livemap { width: 100%; height: 240px; border-radius: 14px; overflow: hidden; border: 1px solid var(--border); background: var(--navy-900); margin: 0 0 1rem; }

@media (min-width: 768px) {
  .tc-media__grid { grid-template-columns: 1fr 1fr; }
  .tc-clips__opts { grid-template-columns: repeat(3, 1fr); }
  .tc-livemap { height: 320px; }
}
@media (min-width: 1200px) {
  .tc-media__grid { grid-template-columns: repeat(3, 1fr); }
  .tc-livemap { height: 380px; }
}

/* ── Landing V3 — Who/Where/What band ── */
.tc-www { margin: 1.4rem 0; padding: 1rem; border: 1px solid rgba(56,189,248,.3); background: rgba(56,189,248,.05); border-radius: 16px; }
.tc-www__t { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin-bottom: .8rem; text-align: center; }
.tc-www__grid { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.tc-www__item { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15rem; padding: .7rem; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); }
.tc-www__ic { font-size: 1.6rem; line-height: 1; }
.tc-www__k { font-family: var(--font-b); font-weight: 700; font-size: .78rem; letter-spacing: .03em; color: var(--tc-accent); }
.tc-www__d { font-family: var(--font-b); font-size: .82rem; color: var(--muted); }
.tc-www__do { margin: .8rem 0 0; text-align: center; font-family: var(--font-b); font-weight: 600; font-size: .88rem; color: #bae6fd; }

/* ── Landing V3 — How it works ── */
.tc-hiw { margin: 1.6rem 0; }
.tc-hiw__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.4rem, 5vw, 1.9rem); color: var(--cream); margin-bottom: 1.1rem; text-align: center; letter-spacing: -.01em; }
.tc-hiw__grid { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.tc-hiw__step { display: flex; align-items: flex-start; gap: .7rem; padding: .8rem .85rem; border: 1px solid var(--border); border-radius: 14px; background: var(--navy-900); }
.tc-hiw__num { flex-shrink: 0; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; background: linear-gradient(135deg, var(--tc-accent), #0ea5e9); color: #042038; font-family: var(--font-d); font-weight: 700; font-size: 1rem; }
.tc-hiw__body { display: flex; flex-direction: column; gap: .15rem; }
.tc-hiw__h { font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); }
.tc-hiw__p { font-family: var(--font-b); font-size: .82rem; color: var(--muted); }

/* ── Landing V3 — Agent capability cards ── */
.tc-caps { margin: 2.4rem 0; }
.tc-caps__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.4rem, 5vw, 1.9rem); color: var(--cream); text-align: center; letter-spacing: -.01em; }
.tc-caps__sub { font-family: var(--font-b); font-size: .9rem; color: var(--muted); text-align: center; margin: .3rem auto 1.3rem; max-width: 460px; }
.tc-caps__grid { display: grid; grid-template-columns: 1fr; gap: .8rem; }
.tc-cap { display: flex; flex-direction: column; gap: .3rem; padding: 1.1rem; border: 1px solid var(--tc-glass-brd); border-radius: 18px; background: linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,.015)); box-shadow: var(--tc-shadow-sm); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.tc-cap:hover { transform: translateY(-3px); border-color: rgba(241,194,101,.4); box-shadow: var(--tc-shadow); }
.tc-cap__ic { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; line-height: 1; border-radius: 14px; background: var(--tc-gold-soft); border: 1px solid rgba(241,194,101,.3); margin-bottom: .2rem; }
.tc-cap__h { font-family: var(--font-b); font-weight: 700; font-size: 1rem; color: #eaf2fb; }
.tc-cap__d { font-family: var(--font-b); font-size: .84rem; color: var(--muted); line-height: 1.5; }

/* ── Landing V3 — Trust ── */
.tc-trust { margin: 1.6rem 0; padding: 1.1rem; border: 1px solid rgba(132,204,22,.35); background: rgba(132,204,22,.05); border-radius: 16px; text-align: center; }
.tc-trust__t { display: block; font-family: var(--font-d); font-size: 1.1rem; color: var(--cream); }
.tc-trust__sub { font-family: var(--font-b); font-size: .85rem; color: var(--muted); margin: .15rem 0 .8rem; }
.tc-trust__row { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
.tc-trust__badge { font-family: var(--font-b); font-weight: 700; font-size: .76rem; padding: .25rem .6rem; border-radius: 99px; background: rgba(132,204,22,.14); color: #d9f99d; border: 1px solid rgba(132,204,22,.4); }
.tc-trust__note { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .8rem 0 0; }

/* ── Onboarding — optional details (progressive disclosure) ── */
.tc-create__more { margin: .6rem 0 .2rem; border: 1px dashed var(--border); border-radius: 14px; background: var(--navy-900); overflow: hidden; }
.tc-create__moresum { cursor: pointer; padding: .75rem .85rem; font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: var(--tc-accent); list-style: none; }
.tc-create__moresum::-webkit-details-marker { display: none; }
.tc-create__morebody { padding: .2rem .85rem .85rem; border-top: 1px solid var(--border); }

/* ── In-app trip activity / notifications feed (Capability 8) ── */
.tc-actfeed { margin: .2rem 0 1rem; padding: .85rem; border: 1px solid rgba(250,204,21,.4); background: rgba(250,204,21,.06); border-radius: 14px; }
.tc-actfeed__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); margin-bottom: .5rem; }
.tc-actfeed__row { display: flex; align-items: flex-start; gap: .5rem; padding: .4rem 0; border-top: 1px solid rgba(250,204,21,.18); }
.tc-actfeed__ic { flex-shrink: 0; font-size: 1rem; line-height: 1.3; }
.tc-actfeed__tx { font-family: var(--font-b); font-size: .85rem; color: var(--cream); }
.tc-actfeed__note { margin: .6rem 0 0; }

@media (min-width: 768px) {
  .tc-www__grid { grid-template-columns: repeat(3, 1fr); }
  .tc-hiw__grid { grid-template-columns: 1fr 1fr; }
  .tc-caps__grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1200px) {
  .tc-hiw__grid { grid-template-columns: repeat(4, 1fr); }
  .tc-caps__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── V3 AI Transport STRATEGY + TRANSFER intelligence ── */
.tc-strat { margin: .2rem 0 1.2rem; padding: .9rem; border: 1px solid rgba(56,189,248,.35); background: rgba(56,189,248,.05); border-radius: 16px; }
.tc-strat__t { display: block; font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); }
.tc-strat__sub { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .1rem 0 .7rem; }
.tc-strat__h { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); margin: 1rem 0 .5rem; }
.tc-transport__h { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: var(--cream); margin: 1rem 0 .4rem; }
.tc-strat__hubs { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.tc-strat__hub { display: flex; flex-direction: column; gap: .15rem; padding: .55rem .7rem; border: 1px dashed rgba(251,146,60,.5); background: rgba(251,146,60,.07); border-radius: 12px; }
.tc-strat__hub strong { font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: #fed7aa; }
.tc-strat__hub span { font-family: var(--font-b); font-size: .8rem; color: var(--muted); }
.tc-strat__card { border: 1px solid var(--border); border-radius: 14px; background: var(--navy-900); padding: .8rem; margin-bottom: .7rem; }
.tc-strat__card--rec { border-color: rgba(132,204,22,.55); box-shadow: 0 0 0 1px rgba(132,204,22,.25) inset; }
.tc-strat__top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .3rem; }
.tc-strat__badge { font-family: var(--font-b); font-weight: 700; font-size: .66rem; letter-spacing: .03em; text-transform: uppercase; padding: .14rem .5rem; border-radius: 99px; background: rgba(56,189,248,.16); color: #bae6fd; border: 1px solid rgba(56,189,248,.4); }
.tc-strat__card--rec .tc-strat__badge { background: rgba(132,204,22,.16); color: #d9f99d; border-color: rgba(132,204,22,.45); }
.tc-strat__best { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-strat__name { display: block; font-family: var(--font-b); font-weight: 700; font-size: .98rem; color: var(--cream); }
.tc-strat__summary { font-family: var(--font-b); font-size: .84rem; color: var(--cream); margin: .15rem 0 .5rem; }
.tc-strat__leg { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; padding: .35rem 0; border-top: 1px solid var(--border); }
.tc-strat__legpath { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); }
.tc-strat__legmode { font-family: var(--font-b); font-size: .8rem; color: var(--tc-accent); }
.tc-strat__legnote { font-family: var(--font-b); font-size: .78rem; color: var(--muted); flex-basis: 100%; }
.tc-strat__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0; }
.tc-strat__risk { font-family: var(--font-b); font-weight: 700; font-size: .72rem; padding: .14rem .5rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-800); color: var(--muted); }
.tc-strat__risk--low { background: rgba(132,204,22,.14); color: #d9f99d; border-color: rgba(132,204,22,.4); }
.tc-strat__risk--medium { background: rgba(250,204,21,.14); color: #fde68a; border-color: rgba(250,204,21,.4); }
.tc-strat__risk--high { background: rgba(248,113,113,.14); color: #fca5a5; border-color: rgba(248,113,113,.4); }
.tc-strat__pc { display: flex; flex-direction: column; gap: .2rem; margin: .3rem 0; }
.tc-strat__pro { font-family: var(--font-b); font-size: .8rem; color: #bbf7d0; }
.tc-strat__con { font-family: var(--font-b); font-size: .8rem; color: #fecaca; }
.tc-strat__why { font-family: var(--font-b); font-size: .82rem; color: var(--cream); margin: .3rem 0; }
.tc-strat__why-k { font-weight: 700; color: var(--tc-accent); }
.tc-strat__return { border: 1px solid rgba(251,146,60,.45); background: rgba(251,146,60,.06); border-radius: 14px; padding: .8rem; margin: .3rem 0 .7rem; }
.tc-strat__returnt { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: #fed7aa; margin-bottom: .4rem; }
.tc-strat__returnchips { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .4rem; }
.tc-strat__returnline { font-family: var(--font-b); font-size: .84rem; color: var(--cream); margin: .15rem 0; }
.tc-strat__returnwhy { font-family: var(--font-b); font-size: .82rem; color: var(--muted); margin: .15rem 0 0; }
.tc-strat__modes { margin: .3rem 0; border: 1px solid var(--border); border-radius: 12px; background: var(--navy-900); overflow: hidden; }
.tc-strat__modessum { cursor: pointer; padding: .65rem .8rem; font-family: var(--font-b); font-weight: 700; font-size: .88rem; color: var(--tc-accent); list-style: none; }
.tc-strat__modessum::-webkit-details-marker { display: none; }
.tc-strat__modesbody { padding: .2rem .8rem .7rem; border-top: 1px solid var(--border); }
.tc-strat__mode { padding: .5rem 0; border-bottom: 1px solid var(--border); }
.tc-strat__modehead { display: flex; align-items: center; gap: .4rem; }
.tc-strat__modeic { font-size: 1.1rem; }
.tc-strat__modename { font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: var(--cream); }
.tc-strat__moderoute { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0; }
.tc-strat__modekv { display: flex; flex-direction: column; gap: .15rem; font-family: var(--font-b); font-size: .78rem; color: var(--cream); margin: .15rem 0; }

@media (min-width: 768px) {
  .tc-strat__hubs { grid-template-columns: 1fr 1fr; }
  .tc-strat__pc { flex-direction: row; flex-wrap: wrap; gap: .5rem 1rem; }
}
@media (min-width: 1200px) {
  .tc-strat__hubs { grid-template-columns: repeat(3, 1fr); }
}

/* ── V3 TransportConnectionPlan card (multi-leg transfer analysis) ── */
.tc-conn { border: 1px solid var(--border); border-radius: 14px; background: var(--navy-900); padding: .85rem; margin-bottom: .8rem; }
.tc-conn--transfer { border-color: rgba(251,146,60,.5); box-shadow: 0 0 0 1px rgba(251,146,60,.18) inset; }
.tc-conn__top { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.tc-conn__prov { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-conn__flag { font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .03em; text-transform: uppercase; padding: .16rem .55rem; border-radius: 99px; border: 1px solid var(--border); }
.tc-conn__flag--yes { background: rgba(251,146,60,.16); color: #fed7aa; border-color: rgba(251,146,60,.45); }
.tc-conn__flag--no { background: rgba(132,204,22,.14); color: #d9f99d; border-color: rgba(132,204,22,.4); }
.tc-conn__chain { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; padding: .5rem .6rem; background: var(--navy-800); border-radius: 12px; margin-bottom: .6rem; }
.tc-conn__node { display: flex; flex-direction: column; }
.tc-conn__node strong { font-family: var(--font-b); font-weight: 700; font-size: .84rem; color: var(--cream); }
.tc-conn__nodelbl { font-family: var(--font-b); font-size: .64rem; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.tc-conn__arrow { color: var(--tc-accent2); font-weight: 700; }
.tc-conn__h { display: block; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--tc-accent); margin: .5rem 0 .3rem; }
.tc-conn__opt { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; padding: .35rem 0; border-top: 1px solid var(--border); }
.tc-conn__optpath { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); }
.tc-conn__optmode { font-family: var(--font-b); font-size: .8rem; color: var(--tc-accent); }
.tc-conn__optnote { font-family: var(--font-b); font-size: .78rem; color: var(--muted); flex-basis: 100%; }
.tc-conn__hubstop { margin: .6rem 0; padding: .6rem .7rem; border: 1px dashed rgba(251,146,60,.45); background: rgba(251,146,60,.06); border-radius: 12px; }
.tc-conn__hubstop strong { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: #fed7aa; margin-bottom: .35rem; }
.tc-conn__hubchips { display: flex; flex-wrap: wrap; gap: .3rem; }
.tc-conn__return { margin: .6rem 0; padding: .6rem .7rem; border: 1px solid rgba(56,189,248,.3); background: rgba(56,189,248,.05); border-radius: 12px; }
.tc-conn__return strong { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: #bae6fd; margin-bottom: .3rem; }
.tc-conn__overnight { font-family: var(--font-b); font-weight: 600; font-size: .82rem; color: var(--cream); margin: .15rem 0; }
.tc-conn__retopt { font-family: var(--font-b); font-size: .82rem; color: var(--cream); margin: .15rem 0; }
.tc-conn__meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0; }
.tc-conn__links { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }

/* ── Immersive hero showcase (CSS/SVG — no images, no network) ── */
.tc-showcase { position: relative; width: 100%; min-height: 230px; margin: 1.3rem 0 1.2rem; border-radius: 24px; overflow: hidden; border: 1px solid var(--tc-glass-brd); background: radial-gradient(120% 90% at 50% -10%, #11315a, #0a1e38 70%); display: flex; align-items: center; justify-content: center; padding: 1.4rem; box-sizing: border-box; box-shadow: var(--tc-shadow), inset 0 1px 0 rgba(255,255,255,.06); }
.tc-showcase__aurora { position: absolute; inset: -30%; background: radial-gradient(40% 40% at 20% 30%, rgba(56,189,248,.45), transparent 60%), radial-gradient(45% 45% at 80% 25%, rgba(251,146,60,.4), transparent 60%), radial-gradient(40% 40% at 55% 80%, rgba(192,132,252,.4), transparent 60%); filter: blur(14px); animation: tcAurora 14s ease-in-out infinite alternate; }
.tc-showcase__route { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .55; }
.tc-showcase__path { fill: none; stroke: rgba(255,255,255,.75); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 6 6; stroke-dashoffset: 0; animation: tcDash 3.5s linear infinite; }
.tc-showcase__dot { fill: var(--cream); animation: tcDotPulse 2.4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.tc-showcase__chips { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; justify-content: center; max-width: 520px; }
.tc-showcase__lead { flex-basis: 100%; text-align: center; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin-bottom: .3rem; text-shadow: 0 2px 12px rgba(4,32,56,.7); }
.tc-showcase__chip { font-family: var(--font-b); font-weight: 600; font-size: .82rem; color: #eaf3ff; background: var(--tc-glass); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--tc-glass-brd); border-radius: 99px; padding: .34rem .8rem; box-shadow: 0 8px 22px -10px rgba(0,0,0,.6); opacity: 0; transform: translateY(8px); animation: tcChipIn .5s ease forwards, tcChipFloat 6s ease-in-out infinite; }
@keyframes tcChipFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.tc-showcase__lead { color: var(--tc-gold) !important; letter-spacing: .02em; }
@keyframes tcAurora { 0% { transform: translate3d(-4%, -2%, 0) scale(1); } 100% { transform: translate3d(4%, 3%, 0) scale(1.1); } }
@keyframes tcDash { to { stroke-dashoffset: -48; } }
@keyframes tcDotPulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.5); opacity: 1; } }
@keyframes tcChipIn { to { opacity: 1; transform: translateY(0); } }

/* ── Capability cards: example line + entrance animation ── */
.tc-cap__ex { display: block; font-family: var(--font-b); font-style: italic; font-size: .76rem; color: var(--tc-accent); margin-top: .35rem; line-height: 1.4; }
.tc-cap--in { opacity: 0; transform: translateY(10px); animation: tcFadeUp .5s ease forwards; }
@keyframes tcFadeUp { to { opacity: 1; transform: translateY(0); } }

/* ── Popular destination showcase ── */
.tc-dshow { margin: 1.6rem 0; }
.tc-dshow { margin: 2.4rem 0; }
.tc-dshow__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.4rem, 5vw, 1.9rem); color: var(--cream); text-align: center; letter-spacing: -.01em; }
.tc-dshow__sub { font-family: var(--font-b); font-size: .9rem; color: var(--muted); text-align: center; margin: .3rem auto 1.3rem; max-width: 480px; }
.tc-dshow__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.tc-dshow__note { font-family: var(--font-b); font-size: .76rem; color: var(--muted); text-align: center; margin: .9rem 0 0; }
.tc-dcard { position: relative; border: 1px solid var(--tc-glass-brd); border-radius: 20px; background: var(--navy-900); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--tc-shadow-sm); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.tc-dcard:hover { transform: translateY(-4px); box-shadow: var(--tc-shadow); border-color: color-mix(in srgb, var(--acc) 55%, transparent); }
.tc-dcard__tile { position: relative; height: 168px; overflow: hidden; background:
    radial-gradient(120% 85% at 18% 12%, color-mix(in srgb, var(--acc) 85%, transparent), transparent 60%),
    radial-gradient(130% 90% at 92% 8%, color-mix(in srgb, var(--acc) 55%, #ffffff 10%), transparent 62%),
    radial-gradient(150% 120% at 70% 120%, color-mix(in srgb, var(--acc) 70%, #001022), transparent 70%),
    linear-gradient(160deg, #0e2440, #0a1c33); background-color: #0c2034; }
.tc-dcard__glow { position: absolute; inset: -40% 30% 50% -10%; background: radial-gradient(circle, color-mix(in srgb, var(--acc) 60%, transparent), transparent 65%); filter: blur(22px); opacity: .8; }
.tc-dcard__icons { position: absolute; top: .8rem; left: 0; right: 0; text-align: center; font-size: 2.6rem; line-height: 1; letter-spacing: .15rem; filter: drop-shadow(0 6px 14px rgba(0,0,0,.55)); transition: transform .3s ease; }
.tc-dcard:hover .tc-dcard__icons { transform: scale(1.07); }
.tc-dcard__scrim { position: absolute; inset: 40% 0 0 0; background: linear-gradient(to top, rgba(6,18,34,.95) 12%, rgba(6,18,34,.55) 48%, transparent); }
.tc-dcard__name { position: absolute; left: .9rem; right: .9rem; bottom: .7rem; font-family: var(--font-d); font-weight: 500; font-size: 1.3rem; line-height: 1.1; color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.6); }
.tc-dcard__body { padding: .85rem .9rem 1rem; display: flex; flex-direction: column; gap: .6rem; }
.tc-dcard__best { font-family: var(--font-b); font-size: .82rem; color: #d7e2f0; }
.tc-dcard__best-k { font-weight: 700; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tc-gold); margin-right: .35rem; }
.tc-dcard__exp { display: flex; flex-wrap: wrap; gap: .35rem; }
.tc-dcard__chip { font-family: var(--font-b); font-size: .73rem; color: #dbe6f3; background: var(--tc-glass); border: 1px solid var(--tc-glass-brd); border-radius: 99px; padding: .2rem .6rem; }
.tc-dcard__cta { width: 100%; min-height: 46px; margin-top: .25rem; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; font-family: var(--font-b); font-weight: 700; font-size: .9rem; cursor: pointer; touch-action: manipulation; box-shadow: 0 10px 26px -16px rgba(214,161,62,.8); transition: transform .16s ease, box-shadow .16s ease; }
.tc-dcard__cta:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -16px rgba(214,161,62,.9); }
.tc-dcard__cta:active { transform: translateY(0); }

/* ── Premium closing CTA band ── */
.tc-finalcta { position: relative; overflow: hidden; margin: 2rem 0 .5rem; padding: 2.2rem 1.2rem; border-radius: 24px; border: 1px solid var(--tc-glass-brd); background: radial-gradient(120% 120% at 50% 0%, #143a66, #0a1d36 72%); box-shadow: var(--tc-shadow); text-align: center; }
.tc-finalcta__aurora { position: absolute; inset: -40%; background: radial-gradient(35% 40% at 25% 20%, rgba(56,189,248,.4), transparent 60%), radial-gradient(40% 45% at 80% 15%, rgba(241,194,101,.35), transparent 60%), radial-gradient(40% 50% at 60% 95%, rgba(192,132,252,.32), transparent 60%); filter: blur(16px); animation: tcAurora 16s ease-in-out infinite alternate; }
.tc-finalcta__inner { position: relative; z-index: 1; max-width: 540px; margin: 0 auto; }
.tc-finalcta__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.5rem, 6vw, 2.1rem); line-height: 1.1; color: #fff; letter-spacing: -.01em; }
.tc-finalcta__sub { font-family: var(--font-b); font-size: .95rem; line-height: 1.55; color: #d4dfee; margin: .55rem auto 0; }
.tc-finalcta .tc-hero__cta { margin-top: 1.2rem; }

@media (min-width: 768px) {
  .tc-showcase { min-height: 260px; }
  .tc-dshow__grid { grid-template-columns: 1fr 1fr; }
  .tc-finalcta { padding: 3rem 2rem; }
}
@media (min-width: 1200px) {
  .tc-showcase { min-height: 280px; }
  .tc-dshow__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .tc-showcase__aurora, .tc-showcase__path, .tc-showcase__dot, .tc-finalcta__aurora { animation: none; }
  .tc-showcase__chip, .tc-cap--in { animation: none; opacity: 1; transform: none; }
  .tc-dcard, .tc-cap, .tc-hero__cta { transition: none; }
}

/* ════════════════════════════════════════════════════════════════════════════
   CINEMATIC MAGAZINE LANDING (v=20260621b) — full-bleed hero + alternating
   full-width destination story panels. Decorative SVG only (no photos).
   ════════════════════════════════════════════════════════════════════════════ */
.tc-hero--cine { text-align: left; }
/* Full-bleed: break out of the centered .tc-app container to the viewport edges. */
.tc-cine { position: relative; width: 100vw; margin-left: calc(50% - 50vw); min-height: 86vh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; }
.tc-cine__bg { position: absolute; inset: 0; z-index: 0; }
.tc-cine__bg svg { width: 100%; height: 100%; display: block; }
.tc-cine__sun { animation: tcSunGlow 7s ease-in-out infinite alternate; transform-origin: 1040px 430px; }
.tc-cine__route { animation: tcDash 4s linear infinite; }
.tc-cine__hill { will-change: transform; }
@keyframes tcSunGlow { from { opacity: .9; } to { opacity: 1; transform: scale(1.03); } }
.tc-cine__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(4,13,26,.93) 2%, rgba(4,13,26,.55) 34%, rgba(4,13,26,.12) 62%, rgba(4,13,26,.4) 100%); }
.tc-cine__inner { position: relative; z-index: 3; width: 100%; max-width: var(--tc-maxw); margin: 0 auto; padding: 0 1.2rem 2.6rem; text-align: center; }
.tc-cine .tc-hero__chip { color: var(--tc-gold); background: rgba(4,13,26,.45); border-color: rgba(241,194,101,.5); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.tc-cine .tc-hero__title { font-size: clamp(2.4rem, 8.5vw, 4.6rem); font-weight: 500; line-height: 1.02; color: #fff; max-width: 18ch; margin: 1rem auto .6rem; text-shadow: 0 6px 36px rgba(0,0,0,.55); }
.tc-cine .tc-hero__sub { color: #e7eef7; font-size: 1.02rem; max-width: 560px; text-shadow: 0 2px 14px rgba(0,0,0,.5); }
.tc-cine .tc-hero__cta { margin: 1.4rem auto 0; }
.tc-cine .tc-hero__free { color: #cdd8e6; }
.tc-cine__chips { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; margin: 1.4rem auto 0; max-width: 640px; }
.tc-cine__chip { font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: #eef5ff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 99px; padding: .34rem .8rem; }
/* Floating decorative "AI picks" cards — desktop only (avoid mobile clutter). */
.tc-cine__floats { display: none; }
.tc-cine__float { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: .15rem; padding: .6rem .8rem; border-radius: 14px; background: rgba(10,22,40,.55); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: var(--tc-shadow-sm); animation: tcChipFloat 6s ease-in-out infinite; }
.tc-cine__float--1 { top: 16%; left: 6%; animation-delay: 0s; }
.tc-cine__float--2 { top: 30%; right: 7%; animation-delay: 1.2s; }
.tc-cine__float--3 { top: 56%; left: 9%; animation-delay: 2.1s; }
.tc-cine__float-tag { font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tc-gold); }
.tc-cine__float-txt { font-family: var(--font-b); font-weight: 600; font-size: .9rem; color: #fff; }

/* ── Destination STORY panels (full-width alternating, magazine) ── */
.tc-dshow__stories { display: flex; flex-direction: column; gap: 1.4rem; }
.tc-story { display: flex; flex-direction: column; border-radius: 22px; overflow: hidden; border: 1px solid var(--tc-glass-brd); background: var(--navy-900); box-shadow: var(--tc-shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.tc-story:hover { transform: translateY(-3px); box-shadow: var(--tc-shadow); }
.tc-story__media { position: relative; min-height: 220px; overflow: hidden; }
.tc-story__media svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.tc-story__mscrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(5,15,30,.85), rgba(5,15,30,.05) 55%); }
.tc-story__medianame { position: absolute; left: 1.1rem; bottom: .9rem; z-index: 1; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.8rem, 6vw, 2.6rem); color: #fff; text-shadow: 0 3px 18px rgba(0,0,0,.6); line-height: 1.05; }
.tc-story__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .7rem; }
.tc-story__eyebrow { font-family: var(--font-b); font-weight: 700; font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tc-gold); }
.tc-story__best { font-family: var(--font-d); font-size: 1.25rem; line-height: 1.25; color: #eaf2fb; margin: 0; }
.tc-story__exp { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-story__chip { font-family: var(--font-b); font-size: .76rem; color: #dbe6f3; background: var(--tc-glass); border: 1px solid var(--tc-glass-brd); border-radius: 99px; padding: .22rem .65rem; }
.tc-story__cta { align-self: flex-start; min-height: 48px; margin-top: .3rem; padding: 0 1.6rem; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; font-family: var(--font-b); font-weight: 700; font-size: .92rem; cursor: pointer; touch-action: manipulation; box-shadow: var(--tc-glow-gold); transition: transform .16s ease, box-shadow .16s ease; }
.tc-story__cta:hover { transform: translateY(-2px); box-shadow: 0 18px 38px -16px rgba(214,161,62,.85); }

@media (min-width: 768px) {
  .tc-cine { min-height: 92vh; }
  .tc-cine__inner { padding-bottom: 4rem; }
  .tc-cine__floats { display: block; }
  /* Alternating full-width story rows */
  .tc-story { flex-direction: row; align-items: stretch; min-height: 340px; }
  .tc-story--right { flex-direction: row-reverse; }
  .tc-story__media { flex: 1 1 52%; min-height: 0; }
  .tc-story__body { flex: 1 1 48%; justify-content: center; padding: 2rem 2.4rem; gap: .9rem; }
  .tc-story__best { font-size: 1.5rem; }
}
@media (min-width: 1200px) {
  .tc-cine .tc-hero__title { font-size: clamp(3.4rem, 5.2vw, 5rem); }
  .tc-story { min-height: 380px; }
}
@media (prefers-reduced-motion: reduce) {
  .tc-cine__sun, .tc-cine__route, .tc-cine__float { animation: none; }
  .tc-story { transition: none; }
  .tc-cine__bg svg [class*="animateMotion"] { display: none; }
}

/* ════════════════════════════════════════════════════════════════════════════
   REAL-PHOTO LAYER (v=20260621c) — verified licensed California photography
   (Wikimedia Commons; assets/travel-concierge/CREDITS.md) replaces SVG scenes.
   ════════════════════════════════════════════════════════════════════════════ */
.tc-eyebrow { font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--tc-gold); }
/* Hero: rotating real photos (crossfade + slow Ken-Burns) over a gradient poster/fallback. */
.tc-cine__bg { background: radial-gradient(120% 90% at 50% -10%, #16385f, #07142a 70%); }
.tc-cine__photo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; will-change: opacity, transform; animation: tcHeroCross 16s ease-in-out infinite, tcKen 16s ease-in-out infinite alternate; }
.tc-cine__photo.is-first { opacity: 1; }
.tc-cine__photo:nth-child(2) { animation-delay: -8s, -8s; }
@keyframes tcHeroCross { 0%,42% { opacity: 1; } 50%,92% { opacity: 0; } 100% { opacity: 1; } }
@keyframes tcKen { from { transform: scale(1.02); } to { transform: scale(1.12); } }
/* Destination story: real photo fills the media half. */
.tc-story__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.tc-story:hover .tc-story__img { transform: scale(1.05); }
/* AI Discovers — horizontal real-photo rail. */
.tc-disc { margin: 2.2rem 0; }
.tc-disc__head { text-align: center; max-width: 640px; margin: 0 auto 1.3rem; padding: 0 1rem; }
.tc-disc__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: clamp(1.6rem, 4.5vw, 2.3rem); color: var(--cream); margin: .35rem 0; letter-spacing: -.01em; }
.tc-disc__sub { font-family: var(--font-b); font-size: .92rem; color: var(--muted); }
.tc-disc__rail { display: flex; gap: 1rem; overflow-x: auto; padding: .4rem .2rem 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.tc-disc__rail::-webkit-scrollbar { display: none; }
.tc-disc__card { position: relative; flex: 0 0 218px; height: 290px; border-radius: 20px; overflow: hidden; scroll-snap-align: start; box-shadow: var(--tc-shadow-sm); }
.tc-disc__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.tc-disc__card:hover .tc-disc__img { transform: scale(1.06); }
.tc-disc__lbl { position: absolute; inset: auto 0 0 0; padding: 1.1rem .9rem .85rem; background: linear-gradient(transparent, rgba(5,12,24,.92)); font-family: var(--font-d); font-weight: 500; font-size: 1.18rem; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
@media (min-width: 768px) { .tc-disc__rail { padding-left: max(1.4rem, calc(50vw - var(--tc-maxw) / 2)); padding-right: max(1.4rem, calc(50vw - var(--tc-maxw) / 2)); } }
@media (prefers-reduced-motion: reduce) {
  .tc-cine__photo { animation: none; }
  .tc-cine__photo.is-first { opacity: 1; }
  .tc-cine__photo:not(.is-first) { opacity: 0; }
  .tc-story__img, .tc-disc__img { transition: none; }
}

/* ── Phase X — Journey Timeline (node graph UI) ── */
.tc-journey { padding: .2rem 0 1rem; }
.tc-journey__t { display: block; font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); }
.tc-journey__sub { font-family: var(--font-b); font-size: .85rem; color: var(--muted); margin: .1rem 0 1rem; }
.tc-journey__day { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1.3rem 0 .6rem; }
.tc-journey__day strong { font-family: var(--font-d); font-size: 1.1rem; color: var(--cream); }
.tc-journey__replan { margin-left: auto; border: 1px solid rgba(241,194,101,.5); background: var(--tc-gold-soft); color: var(--tc-gold); font-family: var(--font-b); font-weight: 700; font-size: .74rem; border-radius: 99px; padding: .3rem .75rem; cursor: pointer; }
.tc-journey__replan:disabled { opacity: .5; cursor: default; }
.tc-jn { display: flex; gap: .8rem; background: var(--navy-900); border: 1px solid var(--border); border-radius: 14px; padding: .8rem .9rem; }
.tc-jn--t { background: linear-gradient(90deg, rgba(56,189,248,.08), var(--navy-900)); }
.tc-jn--lock { border-color: rgba(241,194,101,.55); box-shadow: 0 0 0 1px rgba(241,194,101,.2) inset; }
.tc-jn__ic { flex: 0 0 40px; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; background: rgba(255,255,255,.05); border: 1px solid var(--border); }
.tc-jn__body { flex: 1; min-width: 0; }
.tc-jn__top { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.tc-jn__kind { font-family: var(--font-b); font-weight: 700; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tc-accent); }
.tc-jn__time { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-jn__lockbadge { font-family: var(--font-b); font-weight: 700; font-size: .62rem; color: var(--tc-gold); background: var(--tc-gold-soft); border: 1px solid rgba(241,194,101,.4); border-radius: 99px; padding: .1rem .45rem; }
.tc-jn__name { display: block; font-family: var(--font-b); font-weight: 700; font-size: .98rem; color: var(--cream); margin: .15rem 0 .4rem; }
.tc-jn__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .4rem; }
.tc-jn__conn { height: 16px; border-left: 2px dashed var(--border); margin-left: 1.9rem; }
.tc-journey__add { display: flex; gap: .4rem; margin: .6rem 0 .2rem; }
.tc-journey__add .tc-input { flex: 1; }

/* ── Phase X Step 5 — NL command bar + edit-plan preview ── */
.tc-cmd { display: flex; gap: .5rem; align-items: center; margin: 0 0 .9rem; padding: .55rem .6rem .55rem .9rem; border: 1px solid rgba(241,194,101,.4); background: var(--tc-gold-soft); border-radius: 99px; }
.tc-cmd__in { flex: 1; background: transparent; border: 0; }
.tc-cmd__in:focus { outline: none; }
.tc-cmd__go { flex-shrink: 0; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; font-family: var(--font-b); font-weight: 700; font-size: .82rem; padding: .5rem 1rem; cursor: pointer; }
.tc-editplan { border: 1px solid rgba(241,194,101,.45); background: rgba(241,194,101,.07); border-radius: 16px; padding: .9rem; margin: 0 0 1rem; }
.tc-editplan__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-editplan__sum { font-family: var(--font-b); font-size: .88rem; color: var(--cream); margin: .25rem 0 .6rem; }
.tc-editplan__ops { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .5rem; }
.tc-editplan__op { font-family: var(--font-b); font-size: .85rem; color: #e9d9b3; background: rgba(255,255,255,.04); border: 1px solid var(--border); border-radius: 10px; padding: .35rem .6rem; }
.tc-editplan__btns { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .4rem; }
.tc-editplan__btns .tc-cta { width: auto; min-height: 44px; margin: 0; padding: 0 1.5rem; }

/* ── Natural-language Journey Builder — "Tell AI exactly what you want" + review ── */
.tc-nlcard { border: 1px solid rgba(241,194,101,.45); background: linear-gradient(160deg, rgba(241,194,101,.10), rgba(56,189,248,.05)); border-radius: 16px; padding: .95rem; margin: .2rem 0 0; box-shadow: var(--tc-shadow-sm); }
.tc-nlcard__t { display: block; font-family: var(--font-d); font-weight: 500; font-size: 1.12rem; color: var(--cream); }
.tc-nlcard__hint { font-family: var(--font-b); font-size: .82rem; line-height: 1.5; color: #c9d4e2; margin: .3rem 0 .65rem; }
.tc-nlcard__ta { min-height: 110px; resize: vertical; line-height: 1.5; }
.tc-nlcard__btn { background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; box-shadow: var(--tc-glow-gold); }
.tc-nldiv { display: flex; align-items: center; text-align: center; gap: .7rem; margin: 1.1rem 0 .9rem; font-family: var(--font-b); font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.tc-nldiv::before, .tc-nldiv::after { content: ""; flex: 1; height: 1px; background: var(--border); }

.tc-jr-sum { border: 1px solid var(--tc-gold-deep); background: var(--tc-gold-soft); border-radius: 12px; padding: .7rem .8rem; margin-bottom: 1rem; }
.tc-jr-sum .tc-field { margin-bottom: 0; }
.tc-jr-sum__dates { font-family: var(--font-b); font-size: .85rem; color: #e9d9b3; margin: .5rem 0 0; }
.tc-jr-list { display: flex; flex-direction: column; gap: .5rem; }
.tc-jr-day { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--tc-accent); letter-spacing: .03em; margin: .55rem 0 .1rem; }
.tc-jr-day:first-child { margin-top: 0; }
.tc-jr { border: 1px solid var(--border); border-left: 3px solid var(--border-g); border-radius: 14px; padding: .7rem .75rem; background: var(--navy-900); }
.tc-jr--locked { border-left-color: var(--tc-gold); background: linear-gradient(180deg, rgba(241,194,101,.06), transparent); }
.tc-jr--flex { border-left-color: var(--tc-accent); }
.tc-jr__head { display: flex; align-items: center; gap: .5rem; margin-bottom: .55rem; }
.tc-jr__icon { font-size: 1.15rem; flex: 0 0 auto; }
.tc-jr__type { flex: 1; min-height: 38px; padding: .35rem .8rem; }
.tc-jr__ctrls { display: flex; gap: .3rem; flex: 0 0 auto; }
.tc-jr__mv, .tc-jr__rm { min-width: 32px; min-height: 32px; border: 1px solid var(--border); border-radius: 8px; background: var(--navy-800); color: var(--muted); font-size: 1rem; line-height: 1; cursor: pointer; }
.tc-jr__rm { color: #fca5a5; }
.tc-jr__mv:hover, .tc-jr__rm:hover { color: var(--cream); border-color: var(--border-g); }
.tc-jr .tc-field { margin-bottom: .5rem; }
.tc-jr__pills { display: flex; flex-wrap: wrap; gap: .35rem; margin: .15rem 0 .5rem; }
.tc-jr__acts { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-jr__add { margin-top: .5rem; }
.tc-jr__add .tc-pbtn { font-size: .72rem; min-height: 34px; opacity: .85; }

.tc-chip--lock { background: rgba(241,194,101,.16); border-color: rgba(241,194,101,.45); color: #e9d9b3; }
.tc-chip--flex { background: rgba(56,189,248,.14); border-color: rgba(56,189,248,.4); color: #bae6fd; }
.tc-chip--warn { background: rgba(251,146,60,.14); border-color: rgba(251,146,60,.4); color: #fed7aa; }
.tc-pbtn--ride { background: rgba(56,189,248,.14); border-color: var(--tc-accent); color: #bae6fd; font-weight: 700; }
.tc-pbtn--ride:hover { background: rgba(56,189,248,.22); }
.tc-pbtn--on { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }

.tc-jr-block { margin-top: 1.1rem; }
.tc-jr-block__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: var(--cream); margin-bottom: .45rem; }
.tc-jr-q { margin: 0; padding-left: 1.1rem; }
.tc-jr-q li { font-family: var(--font-b); font-size: .84rem; line-height: 1.5; color: #c9d4e2; margin-bottom: .3rem; }
.tc-jr-cta2 { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: .7rem; }

@media (min-width: 768px) {
  .tc-nlcard { padding: 1.15rem 1.25rem; }
  .tc-jr__acts .tc-pbtn { min-height: 38px; }
  .tc-jr-cta2 { gap: .7rem; }
}

/* Travel-day USER-LOCKED route (Bus Hoang + Michael etc.) — overrides the generic car route */
.tc-travel__leg { border: 1px solid var(--border); border-left: 3px solid var(--tc-gold); border-radius: 12px; padding: .6rem .7rem; margin: .5rem 0; background: linear-gradient(180deg, rgba(241,194,101,.06), transparent); }
.tc-travel__legroute { font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-travel__legmeta { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0; }
.tc-travel__legacts { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.tc-travel__caralt { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .5rem 0 0; }
.tc-jr-fail { font-family: var(--font-b); font-size: .9rem; line-height: 1.5; color: #fecaca; background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.4); border-radius: 12px; padding: .7rem .85rem; margin: 0 0 1rem; }

/* V3 Deal Hunter — watch toggle + research timestamp + "better deal" alert card */
.tc-dealwatch { border: 1px solid var(--border); border-radius: 14px; padding: .7rem .8rem; margin: .6rem 0 1rem; background: var(--navy-900); }
.tc-dealwatch__row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.tc-dealwatch__ts { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .5rem 0 .2rem; }
.tc-dealwatch__saved { font-family: var(--font-b); font-size: .84rem; font-weight: 700; color: #6ee7a0; margin: .35rem 0 .2rem; }
/* 🏷 Ticket Deals (deal-intelligence for ticketed attractions) */
.tc-tdeals { border: 1px solid var(--border); border-radius: 14px; padding: .7rem .8rem; margin: .6rem 0 1rem; background: var(--navy-900); }
.tc-tdeals__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .95rem; color: var(--cream); }
.tc-tdeals__sub { font-family: var(--font-b); font-size: .8rem; color: var(--muted); margin: .15rem 0 .6rem; }
.tc-tdeal { border: 1px solid rgba(251,191,36,.4); background: rgba(251,191,36,.07); border-radius: 12px; padding: .65rem .75rem; margin-top: .6rem; }
.tc-tdeal__name { display: block; font-family: var(--font-b); font-weight: 700; font-size: .9rem; color: #fbbf24; }
.tc-tdeal__note { font-family: var(--font-b); font-size: .83rem; line-height: 1.5; color: var(--cream); margin: .25rem 0 .4rem; }
.tc-tdeal__item { border-top: 1px solid var(--border); padding: .45rem 0 .15rem; }
.tc-tdeal__ihead { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; }
.tc-tdeal__type { font-family: var(--font-b); font-size: .76rem; font-weight: 600; color: #fde68a; }
.tc-tdeal__ttl { font-family: var(--font-b); font-size: .86rem; color: var(--cream); }
.tc-tdeal__desc { font-family: var(--font-b); font-size: .83rem; line-height: 1.5; color: var(--cream); margin: .2rem 0; }
.tc-tdeal__meta { display: flex; flex-wrap: wrap; gap: .5rem; font-family: var(--font-b); font-size: .78rem; color: var(--muted); }
.tc-tdeal__save { color: #6ee7a0; font-weight: 700; }
.tc-tdeal__acts { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .55rem; }
/* Side-by-side transport deal comparison (per leg) */
.tc-tpleg__toggles { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .4rem; }
.tc-tpgrid { display: flex; gap: .5rem; overflow-x: auto; padding: .5rem 0 .3rem; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
.tc-tpcol { flex: 0 0 auto; min-width: 146px; max-width: 172px; border: 1px solid var(--border); border-radius: 10px; padding: .55rem .6rem; background: var(--navy-900); display: flex; flex-direction: column; gap: .3rem; scroll-snap-align: start; }
.tc-tpcol--chosen { border-color: #e9c46a; background: rgba(233,196,106,.09); }
.tc-tpcol__mode { font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); }
.tc-tpcol__star { color: #e9c46a; }
.tc-tpcol__cost { font-family: var(--font-b); font-size: .8rem; font-weight: 600; color: #6ee7a0; }
.tc-tpcol__time { font-family: var(--font-b); font-size: .78rem; color: var(--muted); }
.tc-tpcol__pro { font-family: var(--font-b); font-size: .76rem; color: #cdd9ec; }
.tc-tpcol__btn { margin-top: auto; }
@media (min-width: 1200px) { .tc-tpcol { min-width: 160px; } }
/* Weather tab (P2) — real Open-Meteo forecast + labelled seasonal normals */
.tc-wxgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .5rem; margin: .5rem 0; }
.tc-wxday { border: 1px solid var(--border); border-radius: 10px; padding: .55rem .6rem; background: var(--navy-900); display: flex; flex-direction: column; gap: .25rem; }
.tc-wxday--seasonal { border-style: dashed; }
.tc-wxday--na { opacity: .7; }
.tc-wxday__top { display: flex; justify-content: space-between; align-items: baseline; gap: .4rem; flex-wrap: wrap; }
.tc-wxday__date { font-family: var(--font-b); font-size: .76rem; color: var(--muted); }
.tc-wxday__cond { font-family: var(--font-b); font-size: .8rem; color: var(--cream); }
.tc-wxday__temp { font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); margin: 0; }
.tc-wxday__na { font-family: var(--font-b); font-size: .78rem; color: var(--muted); margin: 0; }
.tc-wxday__meta { display: flex; flex-wrap: wrap; gap: .4rem; font-family: var(--font-b); font-size: .74rem; color: var(--muted); }
.tc-wxday__rec { color: #cdd9ec; }
.tc-wxpack { margin-top: .5rem; border-top: 1px solid var(--border); padding-top: .5rem; }
.tc-wxpack__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: var(--cream); margin-bottom: .3rem; }
.tc-wxpack__list { margin: 0; padding-left: 1.1rem; font-family: var(--font-b); font-size: .83rem; color: var(--cream); }
.tc-wxpack__list li { margin: .15rem 0; }
@media (min-width: 1200px) { .tc-wxgrid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); } }
.tc-deal { border: 1px solid rgba(110,231,160,.45); background: rgba(16,185,129,.1); border-radius: 12px; padding: .7rem .8rem; margin-top: .6rem; }
.tc-deal__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .92rem; color: #bbf7d0; }
.tc-deal__d { font-family: var(--font-b); font-size: .85rem; line-height: 1.5; color: var(--cream); margin: .3rem 0 .55rem; }
.tc-deal__acts { display: flex; flex-wrap: wrap; gap: .5rem; }
.tc-fares { border: 1px solid var(--border); border-radius: 12px; padding: .6rem .75rem; margin-top: .6rem; background: var(--navy-900); }
.tc-fares__t { display: block; font-family: var(--font-b); font-weight: 700; font-size: .85rem; color: var(--cream); margin-bottom: .35rem; }
.tc-fares__leg { font-family: var(--font-b); font-size: .84rem; color: #e9d9b3; margin: .15rem 0; }
.tc-fares__note { font-family: var(--font-b); font-size: .76rem; color: var(--muted); margin: .35rem 0 0; }

/* ── V4 Overview — immersive, image-first landing (dark navy + gold) ─────────── */
.tc-ov { display: flex; flex-direction: column; gap: 1.25rem; }

/* Hero */
.tc-ov-hero { position: relative; border-radius: 18px; overflow: hidden; min-height: 320px; display: flex; border: 1px solid var(--border); }
.tc-ov-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; }
.tc-ov-hero__media .tc-place__img { width: 100%; height: 100%; object-fit: cover; }
.tc-ov-hero__media .tc-nophoto, .tc-ov-hero__media .tc-place__cat, .tc-ov-hero__media .tc-place__imgnote, .tc-ov-hero__media .tc-place__attr { display: none; } /* keep just the honest navy gradient behind the title */
.tc-ov-hero__inner { position: relative; z-index: 2; margin-top: auto; width: 100%; padding: 1.2rem;
  background: linear-gradient(to top, rgba(8,18,36,.94) 0%, rgba(8,18,36,.6) 55%, rgba(8,18,36,0) 100%);
  color: var(--cream); display: flex; flex-direction: column; gap: .55rem; }
.tc-ov-hero__chip { align-self: flex-start; font-family: var(--font-b); font-weight: 600; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tc-gold); }
.tc-ov-hero__title { font-family: var(--font-d); font-weight: 400; font-size: 1.85rem; line-height: 1.05; margin: 0; color: var(--cream); }
.tc-ov-hero__sub { font-family: var(--font-b); font-size: .92rem; line-height: 1.4; opacity: .92; margin: 0; }
.tc-ov-hero__stat { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.tc-ov-hero__budget { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; background: var(--tc-gold-soft); border: 1px solid rgba(241,194,101,.4); border-radius: 12px; padding: .45rem .8rem; color: var(--cream); cursor: pointer; }
.tc-ov-hero__budget-k { font-family: var(--font-b); font-weight: 600; font-size: .64rem; opacity: .85; text-transform: uppercase; letter-spacing: .05em; }
.tc-ov-hero__budget-v { font-family: var(--font-d); font-size: 1.1rem; }
.tc-ov-hero__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-ov-chip { display: inline-flex; align-items: center; gap: .3rem; border-radius: 99px; padding: .3rem .65rem; font-family: var(--font-b); font-weight: 600; font-size: .78rem; cursor: pointer; border: 1px solid transparent; }
.tc-ov-chip--ok { background: rgba(132,204,22,.16); color: #d9f0a8; border-color: rgba(132,204,22,.45); }
.tc-ov-chip--warn { background: rgba(251,146,60,.18); color: #fed7aa; border-color: rgba(251,146,60,.5); }
.tc-ov-hero__cta { align-self: flex-start; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; font-family: var(--font-b); font-weight: 700; font-size: .9rem; padding: .65rem 1.1rem; min-height: 44px; cursor: pointer; box-shadow: var(--tc-glow-gold); }
.tc-ov-hero__cta:active { transform: translateY(1px); }
.tc-ov-hero__allset { font-family: var(--font-b); font-weight: 600; font-size: .9rem; color: #d9f0a8; margin: 0; }

/* Readiness ring */
.tc-ov-ring { position: relative; width: 64px; height: 64px; flex: 0 0 auto; }
.tc-ov-ring__svg { width: 64px; height: 64px; transform: rotate(-90deg); }
.tc-ov-ring__track { fill: none; stroke: rgba(255,255,255,.18); stroke-width: 6; }
.tc-ov-ring__prog { fill: none; stroke: var(--tc-gold); stroke-width: 6; stroke-linecap: round; transition: stroke-dashoffset .4s ease; }
.tc-ov-ring__lbl { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.tc-ov-ring__pct { font-family: var(--font-d); font-size: 1rem; line-height: 1; color: var(--cream); }
.tc-ov-ring__cap { font-family: var(--font-b); font-weight: 600; font-size: .48rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; color: var(--cream); }

/* Sections + rails */
.tc-ov-sec { display: flex; flex-direction: column; gap: .6rem; }
.tc-ov-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.tc-ov-sec__t { font-family: var(--font-d); font-weight: 400; font-size: 1.25rem; line-height: 1; margin: 0; color: var(--cream); }
.tc-ov-sec__more { background: none; border: 0; color: var(--tc-gold); font-family: var(--font-b); font-weight: 600; font-size: .82rem; cursor: pointer; padding: .2rem; }
.tc-ov-sec__src { font-family: var(--font-b); font-size: .7rem; line-height: 1.2; color: var(--muted); }
.tc-ov-rail { display: flex; gap: .7rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: .2rem .1rem .5rem; scrollbar-width: thin; }
.tc-ov-rail::-webkit-scrollbar { height: 6px; }
.tc-ov-rail::-webkit-scrollbar-thumb { background: var(--border); border-radius: 99px; }
.tc-ov-card { scroll-snap-align: start; flex: 0 0 78%; max-width: 280px; background: var(--navy-800); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; cursor: pointer; display: flex; flex-direction: column; }
.tc-ov-card__media { position: relative; height: 150px; background: var(--navy-900); overflow: hidden; }
.tc-ov-card__media .tc-place__img { width: 100%; height: 150px; object-fit: cover; }
.tc-ov-card__media .tc-nophoto__links { display: none; } /* compact: gradient + "no verified photo" only; full links live in the modal */
.tc-ov-card__body { padding: .65rem .75rem; display: flex; flex-direction: column; gap: .3rem; }
.tc-ov-card__tier { align-self: flex-start; font-family: var(--font-b); font-weight: 700; font-size: .6rem; text-transform: uppercase; letter-spacing: .04em; padding: .14rem .45rem; border-radius: 99px; background: var(--navy-900); border: 1px solid var(--border); color: var(--tc-gold); }
.tc-ov-card__name { font-family: var(--font-d); font-weight: 400; font-size: 1.05rem; line-height: 1.15; color: var(--cream); }
.tc-ov-card__why { font-family: var(--font-b); font-size: .82rem; line-height: 1.4; color: var(--muted); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tc-ov-card__foot { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-ov-card__tix { font-family: var(--font-b); font-weight: 700; font-size: .62rem; color: #fed7aa; background: rgba(251,146,60,.16); border: 1px solid rgba(251,146,60,.45); padding: .12rem .4rem; border-radius: 99px; }
.tc-ov-card__fit { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }

/* Timeline */
.tc-ov-tl { display: flex; flex-direction: column; gap: .5rem; }
.tc-ov-tl__row { text-align: left; background: var(--navy-800); border: 1px solid var(--border); border-radius: 12px; padding: .65rem .8rem; cursor: pointer; display: flex; flex-direction: column; gap: .4rem; }
.tc-ov-tl__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tc-ov-tl__d { font-family: var(--font-b); font-weight: 700; font-size: .72rem; color: var(--tc-gold); text-transform: uppercase; letter-spacing: .04em; }
.tc-ov-tl__city { font-family: var(--font-d); font-size: 1rem; color: var(--cream); }
.tc-ov-tl__travel { font-family: var(--font-b); font-weight: 600; font-size: .72rem; color: var(--tc-accent2); }
.tc-ov-tl__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.tc-ov-tl__chip { font-family: var(--font-b); font-size: .76rem; background: var(--navy-900); border: 1px solid var(--border); border-radius: 6px; padding: .22rem .5rem; color: var(--muted); }
.tc-ov-tl__more { background: none; border: 1px dashed var(--border); border-radius: 10px; padding: .5rem; font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: var(--muted); cursor: pointer; }

/* Quick links */
.tc-ov-quick { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .5rem; }
.tc-ov-quick__k { font-family: var(--font-b); font-weight: 600; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.tc-ov-quick__b { background: var(--navy-800); border: 1px solid var(--border); border-radius: 99px; padding: .38rem .8rem; font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: var(--cream); cursor: pointer; }

/* Floating concierge FAB + sheet */
.tc-ov-fab { position: fixed; right: 1rem; bottom: 5.5rem; z-index: 45; display: inline-flex; align-items: center; gap: .45rem; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; border: 0; border-radius: 99px; padding: .65rem 1.05rem; min-height: 44px; box-shadow: var(--tc-glow-gold); cursor: pointer; font-family: var(--font-b); font-weight: 700; font-size: .88rem; }
.tc-ov-fab__ic { font-size: 1.05rem; }
.tc-ov-sheet { position: fixed; inset: 0; z-index: 2200; background: rgba(6,14,26,.7); display: flex; align-items: flex-end; justify-content: center; padding: 0; }
.tc-ov-sheet__card { background: var(--navy-800); width: 100%; max-width: 620px; border: 1px solid var(--border); border-radius: 18px 18px 0 0; padding: 1rem 1rem calc(1.2rem + env(safe-area-inset-bottom)); max-height: 80vh; overflow-y: auto; }
.tc-ov-sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .7rem; }
.tc-ov-sheet__t { font-family: var(--font-d); font-size: 1.2rem; color: var(--cream); }
.tc-ov-sheet__x { background: none; border: 0; font-size: 1.2rem; cursor: pointer; min-width: 44px; min-height: 44px; color: var(--muted); }
.tc-ov-sheet__quick { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.tc-ov-sheet__chip { background: var(--tc-gold-soft); border: 1px solid rgba(241,194,101,.4); border-radius: 99px; padding: .4rem .8rem; font-family: var(--font-b); font-weight: 600; font-size: .8rem; color: var(--cream); cursor: pointer; }
.tc-ov-sheet__row { display: flex; gap: .5rem; align-items: center; border: 1px solid rgba(241,194,101,.4); background: var(--tc-gold-soft); border-radius: 99px; padding: .5rem .6rem .5rem .9rem; }
.tc-ov-sheet__in { flex: 1; background: transparent; border: 0; color: var(--cream); font-family: var(--font-b); }
.tc-ov-sheet__in:focus { outline: none; }
.tc-ov-sheet__go { flex-shrink: 0; border: 0; border-radius: 99px; background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #2a1c02; font-family: var(--font-b); font-weight: 700; font-size: .82rem; padding: .5rem 1rem; cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
  .tc-ov-ring__prog { transition: none; }
  .tc-ov-rail { scroll-behavior: auto; }
}
@media (min-width: 768px) {
  .tc-ov-hero { min-height: 400px; }
  .tc-ov-hero__title { font-size: 2.4rem; }
  .tc-ov-hero__inner { padding: 1.8rem; }
  .tc-ov-card { flex-basis: 46%; }
  .tc-ov-fab { right: 1.5rem; bottom: 1.5rem; }
  .tc-ov-sheet { align-items: center; }
  .tc-ov-sheet__card { border-radius: 18px; }
}
@media (min-width: 1200px) {
  .tc-ov-hero { min-height: 460px; }
  .tc-ov-card { flex-basis: 31%; max-width: 320px; } /* approved: rail still scrolls horizontally, no wrap */
  .tc-ov-fab { right: 2rem; bottom: 2rem; }
}

/* ── V5 Experience-First reset — overrides the V4 block above (source order wins) ───────── */
/* Cinematic hero */
.tc-ov-hero { min-height: clamp(380px, 62vh, 560px); border-radius: 22px; }
.tc-ov-hero__inner { padding: 1.4rem; gap: .65rem;
  background: linear-gradient(to top, rgba(8,18,36,.96) 0%, rgba(8,18,36,.55) 38%, rgba(8,18,36,.05) 72%, rgba(8,18,36,.35) 100%); }
.tc-ov-hero__eyebrow { align-self: flex-start; font-family: var(--font-b); font-weight: 600; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tc-gold); }
.tc-ov-hero__title { font-family: var(--font-d); font-weight: 500; font-size: clamp(2.6rem, 9vw, 4.6rem); line-height: 1; color: #fff; text-shadow: 0 6px 36px rgba(0,0,0,.55); margin: 0; }
.tc-ov-hero__sub { font-size: 1rem; color: #e7eef7; }
.tc-ov-hero__teasers { display: flex; flex-wrap: wrap; gap: .45rem; }
.tc-ov-hero__teaser { display: inline-flex; align-items: center; gap: .35rem; background: var(--tc-glass); border: 1px solid var(--tc-glass-brd); backdrop-filter: blur(8px); border-radius: 99px; padding: .34rem .8rem; font-family: var(--font-b); font-size: .8rem; color: #fff; }
.tc-ov-hero__cta { margin-top: .3rem; min-height: 48px; padding: 0 1.4rem; font-size: .95rem; }

/* Large photo-first card */
.tc-ov-rail { gap: .85rem; padding: .2rem 1rem 1rem; }
.tc-ov-rail::-webkit-scrollbar { display: none; }
.tc-ov-card--lg { flex: 0 0 86%; max-width: 340px; border-radius: 18px; box-shadow: 0 18px 40px -26px rgba(0,0,0,.9); }
.tc-ov-card--lg .tc-ov-card__media { height: 230px; }
.tc-ov-card--lg .tc-ov-card__media .tc-place__img { height: 230px; }
.tc-ov-card__badge { position: absolute; top: .7rem; left: .7rem; z-index: 2; background: rgba(8,18,36,.7); backdrop-filter: blur(6px); border: 1px solid var(--tc-glass-brd); color: #fff; font-family: var(--font-b); font-weight: 600; font-size: .66rem; letter-spacing: .04em; text-transform: uppercase; padding: .28rem .6rem; border-radius: 99px; }
.tc-ov-card__badge--gold { background: rgba(241,194,101,.94); color: #241803; border-color: transparent; }
.tc-ov-card--lg .tc-ov-card__body { padding: .85rem .95rem 1rem; gap: .35rem; }
.tc-ov-card--lg .tc-ov-card__name { font-size: 1.3rem; }
.tc-ov-card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; color: var(--muted); font-family: var(--font-b); font-size: .84rem; }
.tc-ov-card__dot { opacity: .5; }
.tc-ov-card__links { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.tc-ov-card__lnk { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--font-b); font-weight: 600; font-size: .76rem; color: var(--cream); background: var(--navy-700, var(--navy-900)); border: 1px solid var(--border); border-radius: 99px; padding: .34rem .7rem; text-decoration: none; }
.tc-ov-card__lnk--yt { color: #ffd0d0; }
/* P2 — discovery card Add/Replace actions */
.tc-ov-card__actions { display: flex; gap: .5rem; margin-top: .6rem; }
.tc-ov-card__act { flex: 1; text-align: center; font-family: var(--font-b); font-weight: 600; font-size: .8rem; padding: .5rem; border-radius: 10px; border: 1px solid var(--border); background: var(--navy-700, var(--navy-900)); color: var(--cream); cursor: pointer; }
.tc-ov-card__act--gold { background: rgba(241,194,101,.16); border-color: var(--tc-gold); color: var(--tc-gold); }
/* P2 — Memories teaser strip (real photos/clips only) */
.tc-ov-memstrip { display: flex; gap: .6rem; overflow-x: auto; padding: .2rem .1rem .5rem; -webkit-overflow-scrolling: touch; }
.tc-ov-memstrip::-webkit-scrollbar { display: none; }
.tc-ov-mem { flex: 0 0 130px; height: 150px; border-radius: 14px; overflow: hidden; position: relative; padding: 0; border: 1px solid var(--border); background: var(--navy-900); cursor: pointer; }
.tc-ov-mem__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-ov-mem__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.6); }

/* Sticky 5-tab bar */
.tc-tabs { position: sticky; top: 0; z-index: 26; margin: 0 -1rem .9rem; padding: .55rem 1rem; background: rgba(10,22,38,.82); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); }
.tc-tab--on { background: rgba(241,194,101,.16); border-color: var(--tc-gold); color: var(--tc-gold); }

/* Bottom nav (Trips / AI Concierge / Share / Profile) — replaces the old action bar; visible on
   mobile AND desktop (slim centered). Higher-specificity selector beats `.tc-actionbar{display:none}`. */
.tc-bottomnav { z-index: 40; padding-top: .5rem; padding-bottom: calc(.5rem + env(safe-area-inset-bottom)); }
.tc-plan { padding-bottom: 84px; }
.tc-ov-sheet__acct { font-family: var(--font-b); font-size: .9rem; color: var(--cream); margin: 0 0 .7rem; }
.tc-ov-sheet__chip--on { background: rgba(241,194,101,.3); border-color: var(--tc-gold); color: var(--tc-gold); }

@media (min-width: 768px) {
  .tc-ov-card--lg { flex-basis: 46%; }
  .tc-ov-card--lg .tc-ov-card__media, .tc-ov-card--lg .tc-ov-card__media .tc-place__img { height: 250px; }
  /* keep the bottom nav visible on desktop as a slim centered bar (overrides .tc-actionbar{display:none}) */
  .tc-actionbar.tc-bottomnav { display: flex; left: 50%; right: auto; transform: translateX(-50%); max-width: 520px; border: 1px solid var(--border); border-bottom: 0; border-radius: 16px 16px 0 0; }
  .tc-plan { padding-bottom: 84px; }
}
@media (min-width: 1200px) {
  .tc-ov-card--lg { flex-basis: 31%; max-width: 380px; }
}
/* P1 — collapsible centers (Timeline / Tasks / Costs / Details) */
.tc-ov-collapse { background: var(--navy-800); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.tc-ov-collapse + .tc-ov-collapse { margin-top: .7rem; }
.tc-ov-collapse__sum { list-style: none; cursor: pointer; padding: .95rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.tc-ov-collapse__sum::-webkit-details-marker { display: none; }
.tc-ov-collapse__lab { display: flex; flex-direction: column; gap: .15rem; }
.tc-ov-collapse__k { font-family: var(--font-d); font-size: 1.12rem; color: var(--cream); }
.tc-ov-collapse__v { font-family: var(--font-b); font-size: .8rem; color: var(--muted); }
.tc-ov-collapse__chev { color: var(--muted); transition: transform .2s; }
.tc-ov-collapse[open] .tc-ov-collapse__chev { transform: rotate(180deg); }
.tc-ov-collapse__body { padding: 0 1rem 1rem; border-top: 1px solid var(--border); }
.tc-ov-collapse__cta { margin-top: .7rem; background: none; border: 0; color: var(--tc-gold); font-family: var(--font-b); font-weight: 600; font-size: .84rem; cursor: pointer; padding: .2rem 0; }
/* collapsed day rows */
.tc-ov-days { display: flex; flex-direction: column; gap: .4rem; margin-top: .7rem; }
.tc-ov-day { background: var(--navy-900); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.tc-ov-day__sum { list-style: none; cursor: pointer; padding: .7rem .85rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tc-ov-day__sum::-webkit-details-marker { display: none; }
.tc-ov-day__d { font-family: var(--font-b); font-weight: 700; font-size: .72rem; color: var(--tc-gold); text-transform: uppercase; letter-spacing: .04em; }
.tc-ov-day__city { font-family: var(--font-d); font-size: 1rem; color: var(--cream); }
.tc-ov-day__travel { font-family: var(--font-b); font-weight: 600; font-size: .72rem; color: var(--tc-accent2); }
.tc-ov-day__chev { margin-left: auto; color: var(--muted); transition: transform .2s; }
.tc-ov-day[open] .tc-ov-day__chev { transform: rotate(180deg); }
.tc-ov-day__body { padding: 0 .85rem .8rem; }
.tc-ov-day__place { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; font-family: var(--font-b); font-size: .88rem; color: #cfd9ea; }
.tc-ov-day__pic { color: var(--tc-gold); }
.tc-ov-day__empty { font-family: var(--font-b); font-size: .84rem; color: var(--muted); margin: .3rem 0; }
.tc-ov-day__open { margin-top: .4rem; background: none; border: 0; color: var(--tc-gold); font-family: var(--font-b); font-weight: 600; font-size: .8rem; cursor: pointer; padding: 0; }
/* task rows */
.tc-ov-next { font-family: var(--font-b); font-size: .86rem; color: var(--tc-gold); margin: .7rem 0 .4rem; }
.tc-ov-task { display: flex; align-items: center; gap: .55rem; padding: .55rem 0; border-bottom: 1px solid var(--border); font-family: var(--font-b); font-size: .9rem; color: var(--cream); }
.tc-ov-task:last-child { border-bottom: 0; }
.tc-ov-task--done { opacity: .6; }
.tc-ov-task__pri { flex: 0 0 auto; font-weight: 700; font-size: .62rem; padding: .16rem .42rem; border-radius: 6px; }
.tc-ov-task__pri--p0 { background: rgba(251,146,60,.18); color: #fed7aa; }
.tc-ov-task__pri--p1 { background: rgba(56,189,248,.16); color: #bae6fd; }
.tc-ov-task__pri--p2 { background: var(--navy-700, var(--navy-900)); color: var(--muted); }
.tc-ov-task__pri--done { background: rgba(132,204,22,.16); color: #d9f0a8; }
.tc-ov-task__t { flex: 1; }
.tc-ov-task__meta { color: var(--muted); font-size: .76rem; text-align: right; }
/* cost grid */
.tc-ov-costgrid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .7rem; }
.tc-ov-costcell { background: var(--navy-900); border: 1px solid var(--border); border-radius: 12px; padding: .7rem; display: flex; flex-direction: column; gap: .15rem; }
.tc-ov-costcell__l { font-family: var(--font-b); font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.tc-ov-costcell__v { font-family: var(--font-d); font-size: 1.25rem; color: var(--cream); }
/* details rows */
.tc-ov-detrow { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: .7rem 0; border-bottom: 1px solid var(--border); background: none; border-left: 0; border-right: 0; border-top: 0; font-family: var(--font-b); font-size: .92rem; color: var(--cream); cursor: pointer; text-align: left; }
.tc-ov-detrow:last-child { border-bottom: 0; }
.tc-ov-detrow__arr { color: var(--muted); }

@media (min-width: 768px) {
  .tc-ov-costgrid { grid-template-columns: repeat(4, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .tc-tabs { backdrop-filter: none; }
  .tc-ov-collapse__chev, .tc-ov-day__chev { transition: none; }
}

/* ── Tasks tab — completion checkbox, progress bar, done dimming ─────────────── */
.tc-bookings__progress { margin: .2rem 0 .8rem; }
.tc-bookings__progline { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .35rem; }
.tc-bookings__progk { font-family: var(--font-b); font-weight: 600; font-size: .9rem; color: var(--cream); }
.tc-bookings__progpct { font-family: var(--font-d); font-size: 1.15rem; color: var(--tc-gold); }
.tc-bookings__bar { height: 8px; border-radius: 99px; background: var(--navy-900); overflow: hidden; border: 1px solid var(--border); }
.tc-bookings__barfill { height: 100%; background: linear-gradient(90deg, var(--tc-gold), var(--tc-gold-deep)); transition: width .3s ease; }
.tc-bk__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tc-bk__check { position: relative; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 10px; border: 2px solid var(--border); background: var(--navy-900); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.tc-bk__checkbox { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; } /* full 44px tap target */
.tc-bk__checkmark { font-size: 1.3rem; line-height: 1; color: transparent; pointer-events: none; }
.tc-bk__check--on { background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); border-color: var(--tc-gold); }
.tc-bk__check--on .tc-bk__checkmark { color: #241803; }
.tc-bk--done { opacity: .74; } /* dim completed cards but keep text ≥ WCAG AA on navy */
.tc-bk--done .tc-bk__title { text-decoration: line-through; text-decoration-color: var(--muted); }
.tc-bk__donemeta { font-family: var(--font-b); font-size: .78rem; color: #d9f0a8; margin: .15rem 0 .3rem; }
@media (prefers-reduced-motion: reduce) { .tc-bookings__barfill { transition: none; } }

/* ── V6 Dependency Graph — Next-Action hero, blocked badge, per-group progress ── */
.tc-na { background: radial-gradient(140% 120% at 0% 0%, rgba(241,194,101,.16), transparent 55%), var(--navy-800); border: 1px solid rgba(241,194,101,.45); border-radius: 16px; padding: 1rem 1.05rem; margin: 0 0 .9rem; box-shadow: var(--tc-glow-gold); }
.tc-na--done { background: var(--navy-800); border-color: rgba(132,204,22,.4); box-shadow: none; display: flex; align-items: center; gap: .5rem; }
.tc-na__k { display: block; font-family: var(--font-b); font-weight: 700; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tc-gold); margin-bottom: .25rem; }
.tc-na--done .tc-na__k { margin: 0; color: #d9f0a8; }
.tc-na__t { display: block; font-family: var(--font-d); font-weight: 400; font-size: 1.4rem; line-height: 1.15; color: var(--cream); }
.tc-na--done .tc-na__t { font-size: 1.05rem; }
.tc-na__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .5rem; }
.tc-na__pri { font-family: var(--font-b); font-weight: 700; font-size: .62rem; padding: .16rem .5rem; border-radius: 99px; background: var(--navy-900); border: 1px solid var(--border); color: var(--muted); }
.tc-na__pri--p0 { background: rgba(251,146,60,.2); color: #fed7aa; border-color: rgba(251,146,60,.5); }
.tc-na__pri--p1 { background: rgba(56,189,248,.16); color: #bae6fd; border-color: rgba(56,189,248,.4); }
.tc-na__chip { font-family: var(--font-b); font-size: .8rem; color: #cfd9ea; }
.tc-na__acts { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.tc-na__btn { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--font-b); font-weight: 600; font-size: .84rem; padding: .55rem .9rem; border-radius: 10px; border: 1px solid var(--border); background: var(--navy-900); color: var(--cream); cursor: pointer; text-decoration: none; min-height: 40px; }
.tc-na__btn--gold { background: linear-gradient(135deg, var(--tc-gold), var(--tc-gold-deep)); color: #241803; border-color: transparent; font-weight: 700; }
/* blocked task card */
.tc-bk--blocked { opacity: .82; border-style: dashed; }
.tc-bk__blocked { font-family: var(--font-b); font-weight: 600; font-size: .76rem; color: #fed7aa; background: rgba(251,146,60,.14); border: 1px solid rgba(251,146,60,.4); border-radius: 8px; padding: .35rem .6rem; margin-bottom: .5rem; }
/* per-group booking progress chips */
.tc-bookings__groups { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.tc-bookings__gchip { display: inline-flex; align-items: baseline; gap: .3rem; background: var(--navy-900); border: 1px solid var(--border); border-radius: 99px; padding: .25rem .6rem; }
.tc-bookings__gk { font-family: var(--font-b); font-size: .72rem; color: var(--muted); }
.tc-bookings__gv { font-family: var(--font-d); font-size: .9rem; color: var(--cream); }
/* V6 smart warnings */
.tc-warnings { display: flex; flex-direction: column; gap: .4rem; margin: 0 0 .9rem; }
.tc-warn { display: flex; align-items: flex-start; gap: .5rem; padding: .55rem .7rem; border-radius: 10px; font-family: var(--font-b); font-size: .84rem; line-height: 1.35; }
.tc-warn--warn { background: rgba(251,146,60,.14); border: 1px solid rgba(251,146,60,.4); color: #fed7aa; }
.tc-warn--info { background: rgba(56,189,248,.12); border: 1px solid rgba(56,189,248,.35); color: #bae6fd; }
.tc-warn__ic { flex: 0 0 auto; }
/* V6 dependency map (vertical chain) */
.tc-depmap { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin-top: .7rem; }
.tc-dep { display: flex; align-items: center; gap: .55rem; padding: .6rem .8rem; background: var(--navy-900); border: 1px solid var(--border); border-radius: 12px; }
.tc-dep__ic { flex: 0 0 1.3rem; text-align: center; color: var(--muted); }
.tc-dep__t { font-family: var(--font-b); font-size: .9rem; color: var(--cream); }
.tc-dep--done { opacity: .7; }
.tc-dep--done .tc-dep__ic { color: #a3e635; }
.tc-dep--done .tc-dep__t { text-decoration: line-through; text-decoration-color: var(--muted); }
.tc-dep--blocked { border-style: dashed; }
.tc-dep--blocked .tc-dep__ic { color: #fb923c; }
.tc-dep--next { border-color: var(--tc-gold); box-shadow: 0 0 0 1px rgba(241,194,101,.4) inset; }
.tc-dep--next .tc-dep__ic { color: var(--tc-gold); }
.tc-dep__conn { text-align: center; color: var(--muted); font-size: .9rem; line-height: 1; padding: .15rem 0; }

/* ════════════════════════════════════════════════════════════════════════
   STAY INTELLIGENCE ENGINE — tiers, alternatives, choose/lock, deals, cost.
   Mobile-first base → 768 → 1200. Isolated .tc-stayintel__* namespace.
   ════════════════════════════════════════════════════════════════════════ */
.tc-stayintel__h { display: block; font-family: var(--font-d); font-size: 1rem; color: var(--cream); margin: .6rem 0 .4rem; }
/* Hotel card states (extend .tc-stay) */
.tc-stayintel--chosen { border-color: var(--tc-gold); box-shadow: 0 0 0 1px var(--tc-gold-soft) inset, var(--tc-shadow-sm); }
.tc-stayintel--locked { border-color: var(--tc-gold-deep); }
.tc-stayintel__tier { display: inline-flex; align-items: center; gap: .2rem; font-family: var(--font-b); font-weight: 600; font-size: .66rem; padding: .12rem .45rem; border-radius: 99px; border: 1px solid var(--border); color: var(--cream); }
.tc-stayintel__tier--premium { background: var(--tc-gold-soft); border-color: var(--tc-gold); color: var(--tc-gold); }
.tc-stayintel__tier--best_value { background: rgba(56,189,248,.16); border-color: var(--tc-accent); color: #bae6fd; }
.tc-stayintel__tier--budget { background: rgba(255,255,255,.06); color: var(--muted); }
.tc-stayintel__badge { margin-left: auto; font-size: .66rem; font-weight: 700; padding: .12rem .45rem; border-radius: 99px; background: var(--tc-gold); color: #1a1407; }
.tc-stayintel__badge--lock { background: var(--tc-gold-deep); color: #0a0a0a; }
.tc-stayintel__ctrls { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0; }
.tc-stayintel__pick { display: inline-flex; align-items: center; font-size: .8rem; font-weight: 600; color: var(--tc-gold); }
.tc-stayintel__estlbl { color: var(--muted); font-size: .78rem; font-style: italic; }
.tc-stayintel__est { color: #bae6fd; font-size: .82rem; }
.tc-stayintel__warn { color: #fca5a5; font-size: .82rem; }
/* Tiers row */
.tc-stayintel__tierswrap { margin: .5rem 0; }
.tc-stayintel__tiers { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.tc-stayintel__tiercard { text-align: left; display: flex; flex-direction: column; gap: .15rem; padding: .6rem .7rem; border-radius: 12px; border: 1px solid var(--border); background: var(--navy-800); color: var(--cream); cursor: pointer; font-family: var(--font-b); }
.tc-stayintel__tiercard:active { transform: scale(.99); }
.tc-stayintel__tiercard--premium { border-color: var(--tc-gold); }
.tc-stayintel__tiercard--best_value { border-color: var(--tc-accent); }
.tc-stayintel__tierlbl { font-size: .7rem; font-weight: 700; color: var(--muted); }
.tc-stayintel__tiername { font-family: var(--font-d); font-size: .95rem; }
.tc-stayintel__tierprice { font-size: .8rem; color: var(--tc-gold); }
.tc-stayintel__tierstar { font-size: .74rem; color: var(--muted); }
/* Current pick + group winner */
.tc-stayintel__current { margin: .5rem 0; padding: .5rem; border-radius: 14px; border: 1px solid var(--tc-gold-soft); background: rgba(241,194,101,.05); }
.tc-stayintel__winner { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .4rem; padding: .45rem .6rem; border-radius: 10px; background: rgba(56,189,248,.1); border: 1px solid rgba(56,189,248,.3); }
.tc-stayintel__winlbl { font-size: .85rem; color: #bae6fd; }
/* Alternatives chips */
.tc-stayintel__alts { margin: .5rem 0; }
.tc-stayintel__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.tc-stayintel__chip { font-family: var(--font-b); font-size: .76rem; padding: .35rem .6rem; border-radius: 99px; border: 1px solid var(--border); background: var(--navy-800); color: var(--cream); cursor: pointer; }
.tc-stayintel__chip:active { transform: scale(.97); }
.tc-stayintel__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0; }
/* Deals / Locked / Cost / Booking-status panels */
.tc-stayintel__deals, .tc-stayintel__locked, .tc-stayintel__cost, .tc-stayintel__bstatus { margin: .8rem 0; padding: .6rem .7rem; border-radius: 14px; border: 1px solid var(--border); background: var(--tc-glass); }
.tc-stayintel__dealhead { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.tc-stayintel__deal { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .4rem 0; border-top: 1px solid var(--border); }
.tc-stayintel__dealtxt { font-size: .85rem; color: var(--cream); }
.tc-stayintel__lockrow { font-size: .85rem; color: var(--cream); margin: .2rem 0; }
.tc-stayintel__costgrid { display: grid; grid-template-columns: 1fr; gap: .4rem; margin: .4rem 0; }
.tc-stayintel__costrow { font-size: .82rem; color: var(--muted); margin: .15rem 0; }
.tc-stayintel__bsrow { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .35rem 0; border-top: 1px solid var(--border); }
.tc-stayintel__bscity { font-weight: 600; color: var(--cream); font-size: .82rem; }
.tc-stayintel__bsname { color: var(--muted); font-size: .8rem; }
.tc-stayintel__bstag { font-size: .68rem; font-weight: 700; padding: .12rem .45rem; border-radius: 99px; }
.tc-stayintel__bstag--research { background: rgba(255,255,255,.08); color: var(--muted); }
.tc-stayintel__bstag--chosen { background: rgba(56,189,248,.16); color: #bae6fd; }
.tc-stayintel__bstag--booked { background: var(--tc-gold); color: #1a1407; }
/* Your-hotel modal + fit score */
.tc-stayintel__modal { display: flex; flex-direction: column; gap: .5rem; padding: .2rem 0; }
.tc-stayintel__fit { padding: .5rem .6rem; border-radius: 12px; border: 1px solid var(--border); margin-top: .4rem; }
.tc-stayintel__fit--excellent { border-color: #4ade80; background: rgba(74,222,128,.1); }
.tc-stayintel__fit--good { border-color: var(--tc-accent); background: rgba(56,189,248,.1); }
.tc-stayintel__fit--poor { border-color: #fca5a5; background: rgba(252,165,165,.1); }
.tc-stayintel__fitt { display: block; font-family: var(--font-d); color: var(--cream); margin-bottom: .25rem; }
.tc-stayintel__fitr { font-size: .8rem; color: var(--muted); margin: .12rem 0; }
@media (min-width: 768px) {
  .tc-stayintel__tiers { grid-template-columns: repeat(3, 1fr); }
  .tc-stayintel__costgrid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1200px) {
  .tc-stayintel__chip { font-size: .8rem; }
}

/* ════════════════════════════════════════════════════════════════════════
   TRAVEL GUIDE / PACKAGE (Phase 1) — premium document + print-to-PDF.
   Mobile-first base → 768 → 1200, plus a @media print light theme.
   ════════════════════════════════════════════════════════════════════════ */
.tc-pkg { display: flex; flex-direction: column; gap: 1rem; }
.tc-pkg__h { display: block; font-family: var(--font-d); font-size: 1.1rem; color: var(--cream); margin: 0 0 .5rem; }
.tc-pkg__toolbar { display: flex; flex-wrap: wrap; gap: .5rem; }
.tc-pkg__cover { position: relative; border-radius: 18px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--tc-shadow-sm); }
.tc-pkg__hero { width: 100%; aspect-ratio: 16/10; }
.tc-pkg__hero .tc-place__img, .tc-pkg__hero img { width: 100%; height: 100%; object-fit: cover; }
.tc-pkg__coverin { position: absolute; inset: auto 0 0 0; padding: 1.2rem 1.1rem; background: linear-gradient(transparent, rgba(7,21,38,.92)); }
.tc-pkg__kicker { font-family: var(--font-b); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tc-gold); margin: 0 0 .25rem; }
.tc-pkg__title { font-family: var(--font-d); font-size: clamp(1.6rem, 7vw, 2.6rem); line-height: 1.1; color: #fff8ee; margin: 0; }
.tc-pkg__route { font-family: var(--font-b); font-size: .95rem; color: #bae6fd; margin: .4rem 0 0; }
.tc-pkg__covermeta { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.tc-pkg__chip { font-size: .74rem; padding: .2rem .6rem; border-radius: 99px; background: rgba(255,255,255,.12); color: var(--cream); }
.tc-pkg__exec, .tc-pkg__ev, .tc-pkg__cost, .tc-pkg__family, .tc-pkg__live { padding: .8rem .9rem; border-radius: 14px; border: 1px solid var(--border); background: var(--tc-glass); }
.tc-pkg__kvgrid { display: grid; grid-template-columns: 1fr; gap: .35rem; }
.tc-pkg__kv { display: flex; justify-content: space-between; gap: .75rem; padding: .3rem 0; border-bottom: 1px solid var(--border); }
.tc-pkg__kvk { color: var(--muted); font-size: .82rem; }
.tc-pkg__kvv { color: var(--cream); font-size: .82rem; font-weight: 600; text-align: right; }
.tc-pkg__day { padding-top: .4rem; }
.tc-pkg__dayhead { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; border-top: 2px solid var(--tc-gold-soft); padding-top: .7rem; }
.tc-pkg__daynum { font-family: var(--font-b); font-weight: 700; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tc-gold); }
.tc-pkg__daytitle { font-family: var(--font-d); font-size: 1.15rem; color: var(--cream); flex: 1; min-width: 0; }
.tc-pkg__daydate { font-size: .78rem; color: var(--muted); }
.tc-pkg__daysum { font-size: .84rem; color: var(--muted); margin: .3rem 0 .2rem; line-height: 1.5; }
.tc-pkg__gold { color: var(--tc-gold); }
.tc-pkg__meta { font-size: .82rem; color: var(--muted); margin: .2rem 0; }
.tc-pkg__stop { display: flex; flex-direction: column; margin: .6rem 0; border-radius: 14px; border: 1px solid var(--border); background: var(--navy-800); overflow: hidden; }
.tc-pkg__media { width: 100%; aspect-ratio: 16/9; }
.tc-pkg__stopbody { padding: .7rem .8rem; }
.tc-pkg__stophead { display: flex; align-items: baseline; gap: .5rem; }
.tc-pkg__time { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tc-gold); white-space: nowrap; }
.tc-pkg__stopname { font-family: var(--font-d); font-size: 1.02rem; color: var(--cream); }
.tc-pkg__why { font-size: .82rem; color: var(--cream); margin: .35rem 0; line-height: 1.5; }
.tc-pkg__facts { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0; }
.tc-pkg__fact { font-size: .72rem; padding: .15rem .5rem; border-radius: 99px; background: rgba(255,255,255,.06); color: var(--muted); }
.tc-pkg__fact.tc-pkg__warn { color: #fca5a5; background: rgba(252,165,165,.12); }
.tc-pkg__fact.tc-pkg__src { color: #4ade80; background: rgba(74,222,128,.12); }
.tc-pkg__verify { font-size: .72rem; padding: .15rem .5rem; border-radius: 99px; background: rgba(251,146,60,.12); border: 1px solid rgba(251,146,60,.35); color: #fdba74; text-decoration: none; }
.tc-pkg__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .45rem; }
.tc-pkg__evrow { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; margin: .5rem 0; }
.tc-pkg__evinput { max-width: 150px; }
.tc-pkg__evset { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; margin: .5rem 0; }
.tc-pkg__evleg { padding: .55rem .65rem; margin: .4rem 0; border-radius: 10px; border: 1px solid var(--border); background: var(--navy-800); }
.tc-pkg__evlegrte { display: block; font-family: var(--font-d); font-size: .95rem; color: var(--cream); margin-bottom: .25rem; }
/* Prominent Travel Package entry banner on the Overview */
.tc-ov-pkgcta { display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; margin: 0 0 1rem; padding: .85rem 1rem; border-radius: 16px; border: 1px solid var(--tc-gold); background: linear-gradient(135deg, rgba(241,194,101,.14), rgba(214,161,62,.06)); box-shadow: var(--tc-glow-gold); }
.tc-ov-pkgcta__ic { font-size: 1.8rem; line-height: 1; }
.tc-ov-pkgcta__body { flex: 1; min-width: 160px; }
.tc-ov-pkgcta__t { display: block; font-family: var(--font-d); font-size: 1.05rem; color: var(--cream); }
.tc-ov-pkgcta__s { display: block; font-size: .78rem; color: var(--muted); line-height: 1.4; margin-top: .15rem; }
.tc-ov-pkgcta__acts { display: flex; flex-wrap: wrap; gap: .45rem; width: 100%; }
.tc-ov-pkgcta__go { white-space: nowrap; }
.tc-ov-pkgcta__primary { white-space: nowrap; }
.tc-ov-pkgcta__alt { white-space: nowrap; }
@media (min-width: 768px) { .tc-ov-pkgcta__acts { width: auto; } }
/* ── "Add family members" modal (no plan regeneration) ── */
.tc-addfam .tc-addfam__sub { font-size: .82rem; color: var(--muted); line-height: 1.45; margin: 0 0 .7rem; }
.tc-addfam__list { display: flex; flex-direction: column; gap: .7rem; }
.tc-addfam .tc-addbtn { margin-top: .7rem; }
/* ── Family-aware alternative options (Swap / Add to day / Save for later) ── */
.tc-altopt { border: 1px solid var(--border-g); border-radius: 12px; overflow: hidden; background: var(--navy-900); display: flex; flex-direction: column; gap: .45rem; }
.tc-altopt__media { width: 100%; height: 120px; border-radius: 0; }
.tc-altopt__info { display: flex; flex-direction: column; gap: .25rem; padding: 0 .6rem; }
.tc-altopt__facts { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.tc-altopt__fit { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.tc-altopt__fitnote { font-size: .68rem; color: var(--muted); }
.tc-altopt__reck { font-weight: 700; color: var(--tc-gold); }
.tc-altopt__why { font-size: .78rem; color: var(--cream); line-height: 1.4; margin: 0; }
.tc-altopt__verify, .tc-altopt__dir { font-size: .72rem; }
.tc-altopt__rating { background: rgba(56,189,248,.12); }
.tc-altopt__pro { background: rgba(74,222,128,.12); color: #b9f6ca; }
.tc-altopt__con { background: rgba(248,180,90,.12); color: #ffe0a3; }
.tc-altopt__acts { display: flex; flex-wrap: wrap; gap: .35rem; padding: 0 .6rem .6rem; }
.tc-altopt__acts .tc-pbtn { flex: 1; min-width: 6.5rem; text-align: center; }
@media (min-width: 768px) { .tc-altopt__acts .tc-pbtn { flex: 0 1 auto; } .tc-altopt__media { height: 150px; } }
.tc-altpanel__vote { width: 100%; text-align: center; margin-top: .2rem; }
.tc-chip--est { background: rgba(122,162,247,.12); color: #cdd9ff; }
/* Family-fit suggestion chips (heuristic, labeled "suggested — verify") */
.tc-fit { font-size: .72rem; }
.tc-fit--good { background: rgba(74,222,128,.14); color: #b9f6ca; }
.tc-fit--ok { background: rgba(122,162,247,.12); color: #cdd9ff; }
.tc-fit--limited { background: rgba(248,180,90,.14); color: #ffe0a3; }
/* ── Family DECISION (group vote) panel ── */
.tc-decide { margin-top: .55rem; border: 1px solid var(--tc-accent); border-radius: 12px; padding: .6rem .7rem; background: var(--navy-800); display: flex; flex-direction: column; gap: .4rem; }
.tc-decide__h { font-family: var(--font-d); font-size: .95rem; color: var(--cream); margin: 0; }
.tc-decide__opt { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .4rem .5rem; border: 1px solid var(--border-g); border-radius: 9px; background: var(--navy-900); }
.tc-decide__opt--win { border-color: var(--tc-gold); box-shadow: var(--tc-glow-gold); }
.tc-decide__optinfo { flex: 1; min-width: 9rem; }
.tc-decide__optnm { font-size: .85rem; font-weight: 700; color: var(--cream); }
.tc-decide__optcat, .tc-decide__optcount { font-size: .74rem; color: var(--muted); }
.tc-decide__status { font-size: .8rem; font-weight: 600; color: var(--tc-accent); margin: .1rem 0; }
.tc-decide__audit { font-size: .76rem; color: var(--cream); background: rgba(241,194,101,.1); border-radius: 8px; padding: .35rem .5rem; margin: 0; }
.tc-decide__foot { display: flex; flex-wrap: wrap; gap: .35rem; }
.tc-decmini { margin: .35rem 0; padding: .3rem .55rem; border-radius: 8px; background: rgba(122,162,247,.1); border: 1px solid var(--border-g); }
.tc-decmini--done { background: rgba(241,194,101,.1); border-color: var(--tc-gold); }
.tc-decmini__t { font-size: .76rem; color: var(--cream); }
/* ── Rich place facts grid (Refinement 3) ── */
.tc-facts { display: flex; flex-direction: column; gap: .1rem; margin: .5rem 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.tc-fact { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; padding: .4rem .6rem; border-top: 1px solid var(--border); }
.tc-fact:first-child { border-top: none; }
.tc-fact__k { flex: 0 0 8rem; font-size: .76rem; font-weight: 600; color: var(--muted); }
.tc-fact__vwrap { flex: 1; min-width: 9rem; font-size: .82rem; color: var(--cream); display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.tc-fact__src { font-size: .7rem; color: #7fe3a3; }
.tc-fact__ai { font-size: .7rem; color: var(--muted); font-style: italic; }
.tc-fact__verify { font-size: .78rem; color: var(--tc-accent); }
.tc-muted { color: var(--muted); }
@media (min-width: 768px) { .tc-fact__k { flex-basis: 10rem; } }
/* Guide swap / vote audit note */
.tc-pkg__swapnote { font-size: .76rem; color: var(--cream); background: rgba(241,194,101,.1); border-radius: 8px; padding: .35rem .55rem; margin: .35rem 0 0; }
/* ════ FAMILY IDENTITY — color + icon chip used everywhere ════ */
.tc-famchip { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .5rem .2rem .25rem; border-radius: 999px; background: var(--navy-900); border: 1px solid var(--fam, #3b82f6); background: color-mix(in srgb, var(--fam, #3b82f6) 16%, transparent); border: 1px solid color-mix(in srgb, var(--fam, #3b82f6) 55%, transparent); max-width: 100%; }
.tc-famchip__ic { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .68rem; font-weight: 700; color: #fff; flex: none; line-height: 1; }
.tc-famchip__ic--emoji { background: transparent !important; font-size: 1.05rem; }
.tc-famchip__nm { font-size: .8rem; color: var(--cream); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tc-famchip--sm { padding: .12rem .4rem .12rem .15rem; } .tc-famchip--sm .tc-famchip__ic { width: 18px; height: 18px; font-size: .6rem; } .tc-famchip--sm .tc-famchip__nm { font-size: .72rem; }
.tc-famchip--pending { opacity: .6; border-style: dashed; }
/* "You are" picker — color swatch + icon */
.tc-famsel__btn { display: inline-flex; align-items: center; gap: .35rem; }
.tc-famsel__btn--on { border-color: var(--fam) !important; box-shadow: 0 0 0 2px color-mix(in srgb, var(--fam) 40%, transparent); }
.tc-famsel__sw { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .62rem; font-weight: 700; color: #fff; flex: none; }
.tc-famsel__manage { background: none; border: 1px dashed var(--border-g); color: var(--muted); border-radius: 999px; padding: .25rem .6rem; font-size: .78rem; cursor: pointer; }
/* ════ FAMILY MANAGEMENT screen ════ */
.tc-fammgmt__card { border: 1px solid var(--border); border-left: 4px solid var(--fam, #3b82f6); border-radius: 14px; background: var(--navy-800); padding: .85rem; margin: 0 0 1rem; }
.tc-fammgmt__head { display: flex; align-items: center; gap: .5rem; margin-bottom: .4rem; }
.tc-fammgmt__name { flex: 1; font-size: .95rem; font-weight: 600; }
.tc-fammgmt__people { font-size: .8rem; color: var(--muted); margin: 0 0 .5rem; }
.tc-fammgmt__opts { display: flex; flex-wrap: wrap; gap: .35rem; }
.tc-swatch { width: 40px; height: 40px; border-radius: 50%; border: 3px solid transparent; cursor: pointer; padding: 0; }
.tc-swatch--on { border-color: var(--cream); box-shadow: 0 0 0 2px var(--navy-900); }
.tc-iconopt { min-width: 44px; height: 44px; border-radius: 9px; border: 1px solid var(--border-g); background: var(--navy-900); color: var(--cream); font-size: 1.15rem; cursor: pointer; padding: 0 .3rem; }
@media (min-width: 768px) { .tc-swatch { width: 30px; height: 30px; } .tc-iconopt { min-width: 36px; height: 36px; font-size: 1.05rem; } }
.tc-iconopt--on { border-color: var(--tc-gold); box-shadow: var(--tc-glow-gold); }
.tc-fammgmt__acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; align-items: center; }
.tc-fammgmt__merge { max-width: 12rem; }
.tc-famprof { margin: .6rem 0; border: 1px solid var(--border); border-radius: 10px; }
.tc-famprof__sum { cursor: pointer; padding: .5rem .7rem; font-weight: 700; font-size: .82rem; color: var(--cream); list-style: none; }
.tc-famprof__sum::-webkit-details-marker { display: none; }
.tc-famprof__body { padding: .2rem .7rem .7rem; display: flex; flex-direction: column; gap: .45rem; }
.tc-row3 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
@media (min-width: 768px) { .tc-row3 { grid-template-columns: repeat(3, 1fr); } }
/* Bottom-sheet rename row */
.tc-sheet__rename { display: flex; gap: .4rem; margin-bottom: .3rem; } .tc-sheet__rename .tc-input { flex: 1; }
/* ════ VOTING — per-option voter chips + pending roster ════ */
.tc-decide__voters, .tc-decide__pending { display: flex; flex-wrap: wrap; gap: .3rem; width: 100%; margin-top: .3rem; align-items: center; }
.tc-decide__pendlbl { font-size: .76rem; color: var(--muted); }
.tc-decide__warn { color: #ffcf8b; }
/* ════ TASKS — family assignee chip ════ */
.tc-bk__assignee { display: flex; align-items: center; gap: .4rem; margin: .3rem 0; flex-wrap: wrap; }
.tc-bk__assigntag { font-size: .74rem; color: var(--muted); }
.tc-na__famchip { margin-left: .15rem; }
.tc-taskfamnote { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin: .4rem 0; padding: .4rem .6rem; border-radius: 10px; background: var(--navy-800); border: 1px solid var(--border-g); }
.tc-chip--aimark { background: rgba(122,162,247,.12); color: var(--muted); font-style: italic; }
/* ════ COST SHARING — per-family card ════ */
.tc-famshare { border: 1px solid var(--border); border-left: 4px solid var(--fam, #3b82f6); border-radius: 12px; background: var(--navy-800); padding: .7rem .8rem; margin: 0 0 .6rem; }
.tc-famshare__hd { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.tc-famshare__ppl { font-size: .78rem; color: var(--muted); }
.tc-famshare__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.tc-famshare__cell { background: var(--navy-900); border-radius: 9px; padding: .4rem .5rem; text-align: center; }
.tc-famshare__k { display: block; font-size: .68rem; color: var(--muted); }
.tc-famshare__v { display: block; font-size: .92rem; color: var(--cream); margin-top: .1rem; }
.tc-famshare__assign { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .5rem; }
.tc-famshare__ro { font-size: .78rem; color: var(--cream); margin: .3rem 0 0; }
/* ════ GROUP tab traveler card header ════ */
.tc-traveler { border-left: 4px solid var(--fam, #3b82f6); padding-left: .6rem; }
.tc-traveler__hd { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .25rem; }
.tc-traveler__open { background: none; border: 1px solid var(--border-g); border-radius: 8px; color: var(--muted); font-size: 1rem; line-height: 1; padding: .2rem .5rem; cursor: pointer; flex: none; }
@media (min-width: 768px) { .tc-famshare__assign { grid-template-columns: 1fr 1fr; } }
/* ── One-time alternatives helper banner ── */
.tc-althint { display: flex; align-items: flex-start; gap: .6rem; margin: 0 0 .8rem; padding: .7rem .85rem; border-radius: 14px; border: 1px solid var(--tc-accent); background: linear-gradient(135deg, rgba(122,162,247,.14), rgba(122,162,247,.04)); }
.tc-althint__body { flex: 1; }
.tc-althint__t { display: block; font-family: var(--font-d); font-size: .98rem; color: var(--cream); }
.tc-althint__s { font-size: .78rem; color: var(--muted); line-height: 1.45; margin: .2rem 0 0; }
.tc-althint__x { flex: none; background: none; border: none; color: var(--muted); font-size: 1.3rem; line-height: 1; cursor: pointer; padding: 0 .2rem; }
/* ── Saved-for-later ideas stash ── */
.tc-saved { margin: 0 0 .9rem; border: 1px solid var(--border); border-radius: 14px; background: var(--navy-800); overflow: hidden; }
.tc-saved__sum { cursor: pointer; padding: .6rem .85rem; font-family: var(--font-b); font-weight: 700; font-size: .82rem; color: var(--cream); list-style: none; }
.tc-saved__sum::-webkit-details-marker { display: none; }
.tc-saved[open] .tc-saved__sum { border-bottom: 1px solid var(--border); }
.tc-saved__item { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .55rem .85rem; border-top: 1px solid var(--border); }
.tc-saved__item:first-of-type { border-top: none; }
.tc-saved__info { flex: 1; min-width: 9rem; display: flex; flex-direction: column; }
.tc-saved__nm { font-size: .86rem; font-weight: 700; color: var(--cream); }
.tc-saved__cat { font-size: .75rem; color: var(--muted); }
.tc-saved__from { font-size: .73rem; color: var(--muted); margin-top: .1rem; }
.tc-saved__acts { display: flex; gap: .35rem; }
.tc-pkg__total { font-family: var(--font-d); font-size: 1.05rem; color: var(--tc-gold); margin: .5rem 0 0; }
.tc-pkg__tip { font-size: .84rem; color: var(--cream); margin: .25rem 0; line-height: 1.5; }
@media (min-width: 768px) {
  .tc-pkg__kvgrid { grid-template-columns: repeat(2, 1fr); column-gap: 1.2rem; }
  .tc-pkg__stop { flex-direction: row; }
  .tc-pkg__media { width: 38%; aspect-ratio: auto; min-height: 150px; flex-shrink: 0; }
  .tc-pkg__stopbody { flex: 1; }
}
@media (min-width: 1200px) {
  .tc-pkg { max-width: 1000px; margin: 0 auto; }
  .tc-pkg__kvgrid { grid-template-columns: repeat(3, 1fr); }
}
@media print {
  .app-bar, .tc-tabs, .tc-daytabs, .tc-actionbar, .tc-bottomnav, .tc-back, .tc-pkg__toolbar,
  .tc-lang, #lpLangPicker, .tc-pkg__acts, .tc-pkg__evrow, .tc-optnudge { display: none !important; }
  html, body, .tc-page { background: #fff !important; }
  .tc-pkg, .tc-pkg__exec, .tc-pkg__ev, .tc-pkg__cost, .tc-pkg__family, .tc-pkg__live, .tc-pkg__stop { background: #fff !important; border-color: #ddd !important; box-shadow: none !important; }
  .tc-pkg__title, .tc-pkg__daytitle, .tc-pkg__stopname, .tc-pkg__h, .tc-pkg__kvv, .tc-pkg__why, .tc-pkg__tip { color: #111 !important; }
  .tc-pkg__kvk, .tc-pkg__meta, .tc-pkg__daydate, .tc-pkg__daysum, .tc-pkg__fact { color: #444 !important; }
  .tc-pkg__route, .tc-pkg__kicker, .tc-pkg__daynum, .tc-pkg__time, .tc-pkg__gold, .tc-pkg__total { color: #a06a12 !important; }
  .tc-pkg__cover { page-break-after: always; }
  .tc-pkg__day, .tc-pkg__stop, .tc-pkg__exec, .tc-pkg__ev, .tc-pkg__cost { page-break-inside: avoid; }
  .tc-unverified { color: #666 !important; }
}
