:root{--bg:#f6f7fb;--card:#fff;--ink:#0f172a;--muted:#64748b;--line:#e5e7eb;--brand:#ff5a36;--brand2:#ff8a00;--accent:#0ea5e9;--radius:14px;--shadow:0 1px 2px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.06)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif}
a{color:inherit}
button{font:inherit;cursor:pointer}
.muted{color:var(--muted)}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;padding:12px 28px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-size:22px;font-weight:600;text-decoration:none;letter-spacing:-.5px;display:flex;align-items:center;gap:8px}
.logo b{background:linear-gradient(90deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.logo-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-size:14px}
.topnav{display:flex;gap:18px}
.topnav a{text-decoration:none;color:var(--muted);font-weight:500}
.topnav a:hover{color:var(--ink)}
.demo-pill{margin-left:auto;font-size:12px;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;padding:4px 10px;border-radius:999px}
main{max-width:1720px;margin:0 auto;padding:24px 28px 40px}
.footer{border-top:1px solid var(--line);padding:18px 28px;font-size:12.5px;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;background:#fff}
.btn{text-decoration:none;color:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:#cbd5e1;background:#f8fafc}
.btn.primary{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;border:none;box-shadow:0 4px 14px rgba(255,90,54,.3)}
.btn.primary:hover{filter:brightness(1.05)}
.btn.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Hero & filters */
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}
.hero h1{font-size:30px;margin:0 0 4px;letter-spacing:-.8px}
.hero p{margin:0;color:var(--muted)}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-weight:600;color:var(--muted)}
.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 18px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.filters label{font-size:12px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
select,input[type=search],input[type=text]{font:inherit;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff}
.spacer{flex:1}
.tip{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--accent);font-weight:600;cursor:help;outline:none}
.tip .tipbox{display:none;position:absolute;right:0;top:130%;width:340px;background:var(--ink);color:#e2e8f0;padding:14px;border-radius:12px;font-weight:400;font-size:12.5px;z-index:40;box-shadow:var(--shadow)}
.tip:hover .tipbox,.tip:focus .tipbox{display:block}
.tipbox code{background:#1e293b;color:#fde68a;padding:2px 6px;border-radius:6px;display:block;margin:6px 0}

/* Leaderboard cards */
.board-list{display:flex;flex-direction:column;gap:12px}
.tcard{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow);cursor:pointer;transition:transform .12s,box-shadow .12s}
.tcard:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(15,23,42,.06),0 10px 28px rgba(15,23,42,.1)}
.rank{font-size:26px;font-weight:800;color:#cbd5e1;text-align:center}
.rank.r1{color:#f59e0b}.rank.r2{color:#94a3b8}.rank.r3{color:#b45309}
.tcard h3{margin:0;font-size:17px;letter-spacing:-.2px}
.meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12.5px;margin:3px 0 8px}
.meta .chip{background:#f1f5f9;border-radius:999px;padding:1px 8px;color:#334155;font-weight:600}
.meta .mine{background:#fff7ed;color:#c2410c}
.mixbar{display:flex;height:8px;border-radius:999px;overflow:hidden;max-width:380px;background:#f1f5f9}
.mixbar span{display:block;height:100%}
.stats{display:flex;gap:14px;margin-top:8px;font-size:12.5px;color:var(--muted)}
.stats b{color:var(--ink)}
.tright{display:flex;align-items:center;gap:18px}
.price{text-align:right}
.price .amt{font-size:20px;font-weight:800}
.price .sub{font-size:11.5px;color:var(--muted)}
.score{text-align:center;min-width:64px}
.score .v{font-size:18px;font-weight:800;color:var(--brand)}
.score .l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.upv{display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:#fff;min-width:56px;font-weight:700;font-size:13px}
.upv .arrow{font-size:14px;color:var(--muted)}
.upv.on{border-color:var(--brand);background:#fff4f1;color:var(--brand)}
.upv.on .arrow{color:var(--brand)}
.empty{padding:40px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}

/* Editor layout */
.ed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.ed-head h1{margin:0;font-size:26px;letter-spacing:-.6px}
.ed-head .meta{margin:4px 0 0}
.ed-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.notice{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin-bottom:12px}
.legend span{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#334155}
.legend i{width:11px;height:11px;border-radius:4px;display:inline-block}
.editor{display:grid;grid-template-columns:290px minmax(0,1fr) 300px;gap:16px;align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:#334155}
.catalog{position:sticky;top:76px;max-height:calc(100vh - 96px);display:flex;flex-direction:column}
.catalog .ph{padding:14px 14px 10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.catalog input[type=search]{width:100%}
.catfilters{display:flex;gap:4px;flex-wrap:wrap}
.cf{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600;color:#475569}
.cf.on{color:#fff}
.catalog .list{overflow:auto;padding:10px;display:flex;flex-direction:column;gap:8px;flex:1}
.drop-hint{font-size:11.5px;color:var(--muted);padding:0 14px 10px}

.boardwrap{min-width:0;display:flex;flex-direction:column;gap:12px}
.tray{padding:12px 14px}
.tray .row{display:flex;gap:8px;flex-wrap:wrap;min-height:58px;margin-top:8px;padding:6px;border:2px dashed #e2e8f0;border-radius:12px}
.tray .row:empty::after{content:'Drag cards here to save favorites & maybes for later — or tap ☆ in the catalog';color:var(--muted);font-size:12.5px;align-self:center;padding:0 8px}
.tray .row .acard{width:200px}
.days{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.day{flex:0 0 215px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column}
.day-h{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}
.day-h b{font-size:14px}
.day-h .x{border:none;background:none;color:var(--muted);font-size:12px}
.day-h .x:hover{color:#dc2626}
.day-total{font-size:11.5px;color:var(--muted)}
.slot{padding:8px 10px 10px}
.slot+.slot{border-top:1px dashed var(--line)}
.slot-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:6px}
.slot .zone{min-height:54px;display:flex;flex-direction:column;gap:6px;border-radius:10px;padding:3px;transition:background .1s}
.slot .zone:empty{border:2px dashed #e5e7eb}
.slot .zone:empty::after{content:'Drop activity';color:#cbd5e1;font-size:12px;margin:auto}
.zone.over,.row.over,.catalog .list.over{background:#fff7ed !important;outline:2px solid var(--brand2);outline-offset:-2px}
.zone.nope{background:#fef2f2 !important;outline:2px solid #fca5a5}
.addday{flex:0 0 140px;border:2px dashed #cbd5e1;border-radius:var(--radius);background:transparent;color:var(--muted);font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:200px}
.addday:hover{border-color:var(--brand);color:var(--brand);background:#fff7f4}

/* Activity card */
.acard{position:relative;border-radius:10px;padding:7px 9px 7px 12px;background:var(--cbg);border:1px solid color-mix(in srgb,var(--c) 25%,transparent);cursor:grab;user-select:none}
.acard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:10px 0 0 10px;background:var(--c)}
.acard:active{cursor:grabbing}
.acard.dragging{opacity:.4}
.acard .n{font-weight:650;font-size:12.5px;line-height:1.25;padding-right:30px}
.acard .s{display:flex;gap:8px;font-size:11px;color:#475569;margin-top:3px;flex-wrap:wrap}
.acard .s .p{font-weight:700;color:var(--ink)}
.acard .tools{position:absolute;right:4px;top:4px;display:flex;gap:2px}
.acard .tools button{border:none;background:rgba(255,255,255,.75);border-radius:6px;width:20px;height:20px;font-size:12px;line-height:1;color:#475569;padding:0}
.acard .tools button:hover{background:#fff;color:#dc2626}
.acard .tools button.fav.on{color:#f59e0b}
.catalog .acard .d{font-size:11px;color:#64748b;margin-top:2px}

/* Sidebar */
.sidebar{position:sticky;top:76px;padding:16px;display:flex;flex-direction:column;gap:14px}
.total .lbl{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.total .big{font-size:34px;font-weight:800;letter-spacing:-1px;transition:color .3s}
.total .big.flash{color:var(--brand)}
.total .sub{font-size:12px;color:var(--muted)}
.trav{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.stepper button{border:none;background:#f8fafc;width:28px;height:28px;font-weight:700}
.stepper span{width:30px;text-align:center;font-weight:700}
.toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.toggle button{border:none;background:#fff;padding:5px 10px;font-size:12px;font-weight:600;color:var(--muted)}
.toggle button.on{background:var(--ink);color:#fff}
.breakdown{display:flex;flex-direction:column;gap:7px}
.bk{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:13px}
.bk i{width:10px;height:10px;border-radius:3px}
.bk .bar{grid-column:2/4;height:4px;background:#f1f5f9;border-radius:9px;overflow:hidden;margin-top:-3px}
.bk .bar span{display:block;height:100%}
.bk b{font-variant-numeric:tabular-nums}
.sidebar hr{border:none;border-top:1px solid var(--line);margin:0}
.sidebar .fine{font-size:11px;color:var(--muted)}

/* Checkout */
.co{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.co .panel{padding:18px 20px}
.co h2{margin:0 0 4px;font-size:22px}
.lines{width:100%;border-collapse:collapse;margin-top:12px}
.lines td,.lines th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
.lines th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.lines td.r,.lines th.r{text-align:right;font-variant-numeric:tabular-nums}
.lines tr.dayrow td{background:#f8fafc;font-weight:700;font-size:12px;color:#334155}
.dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:middle}
.demo-banner{background:repeating-linear-gradient(45deg,#fff7ed,#fff7ed 10px,#ffedd5 10px,#ffedd5 20px);border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:10px 14px;font-weight:600;margin-bottom:14px}
.fakeform{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.fakeform input{width:100%;background:#f8fafc}
.sumrow{display:flex;justify-content:space-between;font-size:13px;padding:4px 0}
.sumrow.t{font-size:18px;font-weight:800;border-top:1px solid var(--line);padding-top:10px;margin-top:6px}
.confirm-hero{text-align:center;padding:24px 0 10px}
.confirm-hero .check{width:64px;height:64px;border-radius:50%;background:#dcfce7;color:#16a34a;display:grid;place-items:center;font-size:32px;margin:0 auto 10px}
.itin{max-width:860px;margin:0 auto}
.itin-day{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin-bottom:12px}
.itin-day h3{margin:0 0 8px;font-size:16px}
.itin-item{display:grid;grid-template-columns:90px 1fr auto;gap:10px;padding:6px 0;border-top:1px dashed var(--line);font-size:13px}
.itin-item:first-of-type{border-top:none}
.conf{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--muted)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;opacity:0;transition:.2s;pointer-events:none;z-index:100}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:1200px){.editor{grid-template-columns:260px minmax(0,1fr)}.sidebar{grid-column:1/-1;position:static}}
@media (max-width:820px){.editor,.co{grid-template-columns:1fr}.catalog{position:static;max-height:420px}.tcard{grid-template-columns:40px 1fr}.tright{grid-column:1/-1;justify-content:space-between}.hero{flex-direction:column;align-items:flex-start}}
@media print{
  .topbar,.footer,.no-print,.toast{display:none !important}
  body{background:#fff}
  main{padding:0}
  .itin-day{break-inside:avoid;border-color:#ccc}
}

/* ===================== v2 additions ===================== */
.sm{font-size:12px}
.topnav a.on{color:var(--ink)}
.demo-pill{margin-left:auto}
.user-slot{display:flex;align-items:center;gap:8px}
.av{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;object-fit:cover;flex:none;vertical-align:middle;box-shadow:0 0 0 2px #fff}
.umenu{position:relative}
.ubtn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px 3px 3px;font-weight:600}
.udrop{position:absolute;right:0;top:115%;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:180px;padding:6px;z-index:60;display:flex;flex-direction:column}
.udrop[hidden]{display:none}
.udrop a,.udrop button{text-align:left;padding:8px 10px;border-radius:8px;text-decoration:none;border:none;background:none;font-weight:500}
.udrop a:hover,.udrop button:hover{background:#f1f5f9}
.btn.lg{padding:11px 20px;font-size:15px;border-radius:12px}
.btn.glass{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(6px)}
.btn.glass:hover{background:rgba(255,255,255,.28)}
.btn.glass.on{background:#fff;color:var(--brand)}
.chip.glass{background:rgba(255,255,255,.2);color:#fff;border-radius:999px;padding:3px 10px;font-weight:600;font-size:12.5px}
.spacer{flex:1}

/* Been-there badge (verified traveler) */
.been{display:inline-flex;align-items:center;gap:4px;background:#1d9bf0;color:#fff;font-size:11px;font-weight:700;padding:2px 8px 2px 6px;border-radius:999px;vertical-align:middle;white-space:nowrap;box-shadow:0 1px 3px rgba(29,155,240,.4)}
.been.sm{padding:1px 6px;font-size:10.5px}
.been.lg{font-size:13px;padding:4px 12px 4px 9px}
.been.on-img{position:absolute;left:8px;top:8px}
.chk{display:flex;align-items:center;gap:6px;cursor:pointer}
.vbadge{display:inline-flex;align-items:center;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px}

/* Stars */
.stars{position:relative;display:inline-block;font-size:13px;letter-spacing:1px;line-height:1;background:linear-gradient(90deg,#f59e0b var(--p),#d1d5db var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}
.stars.lg{font-size:20px}
.stars.light{background:linear-gradient(90deg,#fde047 var(--p),rgba(255,255,255,.4) var(--p));-webkit-background-clip:text;background-clip:text}
.rbadge{display:inline-flex;align-items:center;gap:4px;color:var(--ink)}

/* Leaderboard v2 */
.hero-stats{display:flex;gap:12px}
.hero-stats div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 14px;display:flex;flex-direction:column;align-items:center;min-width:120px}
.hero-stats b{font-size:20px}.hero-stats span{font-size:11.5px;color:var(--muted)}
.tcard{grid-template-columns:56px 150px 1fr auto}
.tcard.norank{grid-template-columns:150px 1fr auto}
.tcard.simple{text-decoration:none;color:inherit}
.cthumb{position:relative;width:150px;height:96px;border-radius:12px;overflow:hidden;background:#e2e8f0}
.cthumb img{width:100%;height:100%;object-fit:cover;display:block}
.pcount{position:absolute;right:6px;bottom:6px;background:rgba(15,23,42,.65);color:#fff;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px}
.tcard h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.meta .by{display:inline-flex;align-items:center;gap:5px}
.stats{align-items:center}
.ulink{text-decoration:none;font-weight:600}

/* Public trip page */
.hero-trip{position:relative;border-radius:20px;overflow:hidden;min-height:360px;display:flex;align-items:flex-end;margin-bottom:18px;box-shadow:var(--shadow)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.15) 0%,rgba(15,23,42,.25) 40%,rgba(15,23,42,.82) 100%)}
.hero-inner{position:relative;padding:22px 28px 24px;color:#fff;width:100%}
.hero-trip > .back{position:absolute;z-index:2;top:16px;left:20px;color:#fff;text-decoration:none;font-weight:600;background:rgba(15,23,42,.35);padding:4px 10px;border-radius:999px;font-size:12.5px}
.hero-badges{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.hero-trip h1{margin:0 0 8px;font-size:36px;letter-spacing:-1px;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;opacity:.95}
.hero-meta a{color:#fff;font-weight:700}
.hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.trip-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.trip-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.sec{padding:18px 20px}
.sec h2{margin:0;font-size:18px;letter-spacing:-.3px}
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.legend.sm{font-size:11px;gap:9px;margin:0}
.iday{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px}
.iday-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.irow{display:grid;grid-template-columns:76px 10px 1fr auto 70px;gap:10px;align-items:center;padding:6px 0;border-top:1px dashed var(--line);font-size:13.5px}
.iday-h + .irow,.dnote + .irow{border-top:none}
.irow .dot{width:10px;height:10px;margin:0}
.irow .r{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.irow.skipped{opacity:.45}
.irow.skipped .iname{text-decoration:line-through}
.slotlbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}
.irate{font-size:12px;color:#b45309;font-weight:600;white-space:nowrap}
.didtag{display:inline-block;background:#dcfce7;color:#15803d;font-size:10.5px;font-weight:700;padding:0 6px;border-radius:999px;margin-left:4px}
.dnote{margin:4px 0 8px;padding:8px 12px;background:#f8fafc;border-left:3px solid #1d9bf0;border-radius:0 8px 8px 0;font-style:italic;color:#334155;font-size:13px}
.dthumbs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.dthumb{border:none;padding:0;border-radius:8px;overflow:hidden;width:72px;height:54px;background:#e2e8f0}
.dthumb img{width:100%;height:100%;object-fit:cover;display:block}
.dthumbs.in-day{padding:6px 10px 0;margin:0}
.dthumbs.in-day .dthumb{width:44px;height:34px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.gthumb{position:relative;border:none;padding:0;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#e2e8f0;cursor:zoom-in}
.gthumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.gthumb:hover img{transform:scale(1.05)}
.gthumb span{position:absolute;left:0;right:0;bottom:0;padding:16px 8px 6px;color:#fff;font-size:11.5px;font-weight:600;text-align:left;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.gthumb em{position:absolute;top:6px;left:6px;background:var(--brand);color:#fff;font-style:normal;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px}
.empty.sm{padding:20px;font-size:13px}
.trip-side{position:sticky;top:76px;padding:16px;display:flex;flex-direction:column;gap:12px}
.trip-side .big{font-size:32px;font-weight:800;letter-spacing:-1px}
.trip-side .lbl{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.trip-side .sub{font-size:12px;color:var(--muted)}
.trip-side .fine{font-size:11px;color:var(--muted)}
.trip-side .mixbar{max-width:none}

/* Reviews */
.rev-head{display:flex;gap:24px;align-items:center;padding:4px 0 14px;border-bottom:1px solid var(--line);margin-bottom:6px;flex-wrap:wrap}
.rev-avg{display:flex;flex-direction:column;align-items:center;min-width:120px}
.rev-avg .big{font-size:42px;font-weight:800;letter-spacing:-1px;line-height:1}
.rev-cta{display:flex;flex-direction:column;gap:6px;align-items:flex-start;flex:1}
.review{padding:12px 0;border-top:1px solid var(--line)}
.reviews .review:first-child{border-top:none}
.rv-h{display:flex;gap:10px;align-items:flex-start}
.rv-h a{text-decoration:none}
.rv-sub{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:12px}
.review p{margin:8px 0 6px;font-size:13.5px;line-height:1.5}
.rv-acts{display:flex;flex-wrap:wrap;gap:6px}
.rv-acts .chip{border:1px solid;background:#fff;border-radius:999px;padding:2px 9px;font-size:11.5px;color:#334155;display:inline-flex;align-items:center;gap:5px}
.rv-acts .dot{width:7px;height:7px;margin:0}
.star-in{display:flex;gap:2px}
.star-in button{border:none;background:none;font-size:28px;color:#d1d5db;padding:0 2px;line-height:1;transition:transform .1s,color .1s}
.star-in button:hover{transform:scale(1.15)}
.star-in button.on{color:#f59e0b}
.star-in.sm button{font-size:18px}
.act-rates{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.ar{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:13px}
.ar .dot{width:8px;height:8px;margin:0}

/* Modal */
body.modal-open{overflow:hidden}
.overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:200;padding:20px;animation:fade .15s}
.modal{position:relative;background:#fff;border-radius:18px;padding:22px 24px;width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 30px 80px rgba(15,23,42,.35);animation:pop .18s}
.modal.wide{width:min(760px,100%)}
.modal h2{margin:0 0 6px;font-size:20px;letter-spacing:-.3px}
.mx{position:absolute;right:12px;top:12px;border:none;background:#f1f5f9;border-radius:50%;width:30px;height:30px;color:#475569}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0}}
.auth-h{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.auth-h .logo-mark{width:40px;height:40px;font-size:18px;border-radius:12px}
.seg{display:flex;background:#f1f5f9;border-radius:10px;padding:3px;margin-bottom:10px}
.seg button{flex:1;border:none;background:none;padding:7px;border-radius:8px;font-weight:600;color:var(--muted)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.acct-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.acct{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 12px;text-align:left}
.acct:hover{border-color:var(--brand2);background:#fff7ed}
.acct span span{display:block;font-size:12px}
.acct .go{color:var(--muted)}
.form{display:flex;flex-direction:column;gap:10px}
.form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:#334155}
.form input[type=text],.form input[type=date],.form select,.form textarea{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.form textarea{resize:vertical}
.prefix{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.prefix span{padding:0 4px 0 10px;color:var(--muted)}
.prefix input{border:none !important;padding-left:2px !important}
.av-pick{display:flex;align-items:center;gap:12px;font-weight:400}
.err{color:#dc2626;font-size:12.5px;min-height:1em}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Share */
.share-link{display:flex;gap:8px;margin:8px 0 6px}
.share-link input{flex:1;font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#f8fafc;color:#334155}
.previews{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;margin-top:16px}
.pv-col h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.phone{background:#fff;border:8px solid #0f172a;border-radius:30px;padding:14px 12px 18px;display:flex;flex-direction:column;gap:6px;min-height:340px}
.ph-top{text-align:center;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px}
.bubble{max-width:80%;padding:7px 12px;border-radius:18px;font-size:13px}
.bubble.me{align-self:flex-end;background:#0a84ff;color:#fff;border-bottom-right-radius:5px}
.bubble.them{align-self:flex-start;background:#e5e5ea;color:#000;border-bottom-left-radius:5px}
.lp{align-self:flex-end;width:82%;border-radius:16px;overflow:hidden;background:#e5e5ea}
.lp img{width:100%;height:120px;object-fit:cover;display:block}
.lp-b{padding:8px 10px;display:flex;flex-direction:column;gap:1px;font-size:12px}
.lp-b b{font-size:13px}
.lp-b span{color:#475569}
.lp-b .dom{color:#6b7280;font-size:11px}
.social{border:1px solid var(--line);border-radius:16px;padding:14px}
.so-h{display:flex;gap:10px;align-items:center}
.social p{margin:10px 0;font-size:14px}
.og{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.og-img{position:relative}
.og-img img{width:100%;aspect-ratio:1.91/1;object-fit:cover;display:block}
.og-b{padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:#f8fafc;font-size:12.5px;color:#475569}
.og-b .dom{font-size:10.5px;letter-spacing:.5px;color:var(--muted)}
.og-b b{color:var(--ink);font-size:14px}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(2,6,23,.92);z-index:250;display:flex;align-items:center;justify-content:center;gap:16px;padding:30px;animation:fade .15s}
.lightbox figure{margin:0;max-width:min(1100px,82vw);display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox img{max-width:100%;max-height:76vh;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox figcaption{color:#e2e8f0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}
.lightbox figcaption .muted{color:#94a3b8}
.lightbox .chip{background:#f59e0b;color:#fff;border-radius:999px;padding:2px 9px;font-weight:700;font-size:12px}
.lb-nav{border:none;background:rgba(255,255,255,.12);color:#fff;font-size:34px;width:52px;height:52px;border-radius:50%;flex:none}
.lb-nav:hover{background:rgba(255,255,255,.25)}
.lb-x{position:absolute;top:18px;right:20px;border:none;background:rgba(255,255,255,.12);color:#fff;width:40px;height:40px;border-radius:50%;font-size:16px}

/* Editor v2 */
.title-in{font:inherit;border:none;border-bottom:2px dashed var(--line);border-radius:0;padding:0;width:min(640px,60vw);background:transparent}
.title-in:focus{outline:none;border-bottom-color:var(--brand2)}
.notice{flex-wrap:wrap}
.logbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:13px}
.logbar label{display:flex;align-items:center;gap:6px;font-weight:600}
.logbar input[type=date]{font:inherit;border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.acard .n{padding-right:var(--tools,30px)}
.acard .tools button.didbtn{color:#94a3b8;font-weight:800}
.acard .tools button.didbtn.on{background:#16a34a;color:#fff}
.acard.skip{opacity:.55;border-style:dashed;filter:saturate(.6)}
.acard.done{box-shadow:0 0 0 2px #16a34a33}
.didtxt{color:#15803d;font-weight:700}
.tvr{font-size:11px;color:#b45309;font-weight:600;margin-top:2px}
.day-date{font-size:11px;color:var(--muted)}
.day-tools{display:flex;gap:2px}
.dnote-in{width:100%;font:inherit;font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;resize:vertical;background:#fafafa}

/* Log page */
.log-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:16px;align-items:start}
.log-grid h2{margin:0 0 4px}
.log-grid p{margin:0 0 12px}
.lg-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-height:520px;overflow:auto}
.lg-row{display:grid;grid-template-columns:84px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px}
.lg-row img{width:84px;height:54px;object-fit:cover;border-radius:8px}

/* Profile */
.profile-h{display:flex;gap:22px;align-items:center;padding:22px 24px;margin-bottom:14px}
.profile-h .av{box-shadow:0 0 0 4px #fff,0 4px 14px rgba(0,0,0,.12)}
.ph-main{flex:1}
.ph-main h1{margin:0;font-size:28px;letter-spacing:-.6px}
.ph-main p{margin:8px 0}
.ph-act{display:flex;flex-direction:column;gap:8px}
.dchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.dchips .chip{background:#f1f5f9;border-radius:999px;padding:3px 10px;font-weight:600;font-size:12.5px}
.ptiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:8px}
.ptiles div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow)}
.ptiles b{font-size:26px;letter-spacing:-.5px}
.ptiles span{font-size:12px;color:var(--muted)}
.sec-title{display:flex;align-items:center;gap:8px;font-size:18px;margin:22px 0 10px;letter-spacing:-.3px}

@media (max-width:1100px){.trip-grid{grid-template-columns:1fr}.trip-side{position:static}.previews{grid-template-columns:1fr}}
@media (max-width:820px){.tcard,.tcard.norank{grid-template-columns:1fr}.cthumb{width:100%;height:150px}.log-grid{grid-template-columns:1fr}.ptiles{grid-template-columns:repeat(2,1fr)}.profile-h{flex-direction:column;align-items:flex-start}}

/* ---- per-day lodging (🌙 Overnight slot) ---- */
.slot.overnight{background:#f8fbff;border-top:1px solid #dbeafe !important;border-radius:0 0 12px 12px}
.slot.overnight .slot-l{color:#1d4ed8}
.slot .zone.night{min-height:50px}
.slot .zone.night:empty{border:2px dashed #93c5fd;background:#eff6ff}
.slot .zone.night:empty::after{content:attr(data-empty);color:#60a5fa}
.slot .zone.night[data-empty^="Checkout"]:empty{border-color:#e5e7eb;background:#fafafa}
.slot .zone.night[data-empty^="Checkout"]:empty::after{color:#cbd5e1}
.iday.stays{background:#f8fbff;border-color:#dbeafe}
.irow.night-none{grid-template-columns:76px 1fr}
/* ---- imported catalog markers ---- */
em.est{font-style:normal;font-size:10px;font-weight:700;color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:5px;padding:0 4px;margin-left:2px;vertical-align:1px}
.srcnote{font-size:11px;color:#0f766e;margin-top:3px}
.tabs .tab{white-space:nowrap}

/* ===================== Mobile pass (phones ~360–430px) =====================
   Everything below is additive. Desktop (>760px) is unchanged except for the hidden-by-default
   mobile-only elements (.mbar, .sheet-scrim, .tap-hint, .sheet-x, .m-only). See MOBILE_CHANGES.md. */
.mbar,.sheet-scrim,.tap-hint,.sheet-x,.m-only{display:none}
.acard.picked{outline:3px solid var(--brand);outline-offset:1px;box-shadow:0 6px 18px rgba(255,90,54,.35);transform:scale(1.02)}
.zone.can,.row.can{background:#fff7ed;outline:2px dashed var(--brand2);outline-offset:-2px}
.tap-hint[hidden]{display:none !important}
@media (max-width:760px){
  html{-webkit-text-size-adjust:100%}
  html,body{font-size:15px;overflow-x:hidden}
  body{-webkit-tap-highlight-color:rgba(255,90,54,.12)}
  /* iOS zooms into inputs under 16px */
  select,input[type=search],input[type=text],input[type=date],textarea,.form input[type=text],.form input[type=date],.form select,.form textarea{font-size:16px;min-height:44px}
  textarea{min-height:0}
  main{padding:14px 14px 32px}

  /* Header / nav: logo row + full-width nav strip; not sticky so it doesn't eat the screen */
  .topbar{position:static;flex-wrap:wrap;gap:6px 10px;padding:10px 14px 0}
  .logo{font-size:19px}
  .logo-mark{width:28px;height:28px}
  .demo-pill{font-size:0;padding:3px 8px}
  .demo-pill::before{content:'Demo';font-size:11px}
  .user-slot > a.btn{display:none} /* "Log a trip" is already in the nav strip */
  .user-slot .btn,.user-slot .btn.sm{min-height:44px}
  .ubtn{min-height:40px}
  .ubtn > span:not(.av){display:none}
  .topnav{order:3;width:calc(100% + 28px);margin:0 -14px;padding:0 8px;gap:0;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line)}
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{flex:1;text-align:center;white-space:nowrap;padding:12px 10px;min-height:44px;border-bottom:2px solid transparent}
  .topnav a.on{border-bottom-color:var(--brand)}
  .udrop a,.udrop button{padding:12px}

  /* Buttons & tap targets */
  .btn{min-height:44px;padding:10px 14px}
  .btn.sm{min-height:38px;padding:8px 12px;font-size:13px}
  .btn.lg{padding:12px 18px}
  .footer{padding:18px 16px}

  /* Leaderboard */
  .hero{gap:12px;margin-bottom:12px}
  .hero h1{font-size:24px;letter-spacing:-.5px}
  .hero p{font-size:14px}
  .hero-stats{width:100%}
  .hero-stats div{flex:1;min-width:0;padding:8px 10px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px;padding:2px 14px 8px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 14px}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:none;min-height:42px;padding:9px 14px;scroll-snap-align:start}
  .filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;margin:8px 0 14px}
  .filters label{flex-direction:column;align-items:stretch;gap:4px}
  .filters label select{width:100%}
  .filters label.chk{flex-direction:row;align-items:center;grid-column:1/-1;min-height:44px}
  .filters label.chk input{width:22px;height:22px}
  .filters .spacer{display:none}
  .tip{grid-column:1/-1;min-height:32px}
  .tip .tipbox{left:0;right:auto;width:calc(100vw - 52px)}
  .tcard,.tcard.norank{position:relative;gap:10px;padding:12px}
  .tcard:hover{transform:none}
  .cthumb{height:170px}
  .tcard .rank{position:absolute;z-index:2;left:20px;top:20px;font-size:17px;background:rgba(255,255,255,.92);border-radius:10px;padding:2px 9px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
  .tcard .rank:not(.r1):not(.r2):not(.r3){color:#475569}
  .tcard h3{font-size:17px}
  .stats{flex-wrap:wrap;gap:8px 12px}
  .mixbar{max-width:none}
  .tright{gap:10px;border-top:1px solid var(--line);padding-top:10px}
  .price{text-align:left;flex:1}
  .score{min-width:0}
  .upv{min-height:48px;min-width:60px;justify-content:center}

  /* Public trip page */
  .hero-trip{min-height:320px;border-radius:16px;margin:0 0 14px}
  .hero-inner{padding:56px 16px 16px}
  .hero-trip h1{font-size:26px;letter-spacing:-.5px}
  .hero-meta{font-size:13px;gap:6px}
  .hero-actions{gap:8px;margin-top:12px}
  .hero-actions .btn.lg{flex:1 1 100%;justify-content:center}
  .hero-actions .btn.glass{flex:1 1 auto;justify-content:center}
  .hero-trip > .back{top:12px;left:12px;padding:8px 12px}
  .sec{padding:14px}
  .sec-h .legend.sm{display:none}
  .iday{padding:10px 12px}
  .irow{grid-template-columns:10px minmax(0,1fr) auto;gap:2px 8px;padding:8px 0}
  .irow > .slotlbl{grid-column:1/-1}
  .irow > :nth-child(2){grid-column:1;grid-row:2}
  .irow > :nth-child(3){grid-column:2;grid-row:2;min-width:0}
  .irow > :nth-child(4){grid-column:2;grid-row:3}
  .irow > :nth-child(5){grid-column:3;grid-row:2}
  .irow.night-none{grid-template-columns:1fr}
  .irow.night-none > *{grid-column:1 !important;grid-row:auto !important}
  .gallery{grid-template-columns:repeat(2,1fr);gap:8px}
  .dthumb{width:64px;height:48px}
  .trip-side .big{font-size:28px}
  .rev-head{gap:14px}
  .rev-avg{min-width:0}
  .rev-cta{flex:1 1 100%}

  /* Modals: full screen sheets */
  .overlay{padding:0;place-items:stretch}
  .modal,.modal.wide{width:100%;max-height:none;height:100%;height:100dvh;border-radius:0;padding:56px 16px calc(24px + env(safe-area-inset-bottom))}
  .mx{width:44px;height:44px;right:10px;top:10px;font-size:16px}
  .acct{min-height:56px}
  .seg button{min-height:42px}
  .star-in button{font-size:34px;padding:0 4px}
  .star-in.sm button{font-size:24px;padding:2px 4px}
  .act-rates{max-height:none}
  .ar{grid-template-columns:8px minmax(0,1fr);row-gap:0}
  .ar .star-in{grid-column:2}
  .row2{grid-template-columns:1fr}
  .share-link{flex-direction:column}
  .phone{min-height:0;border-width:6px}
  .lightbox{padding:56px 8px 80px;gap:0}
  .lightbox figure{max-width:100%}
  .lightbox img{max-height:64vh}
  .lb-nav{position:fixed;bottom:16px;width:48px;height:48px;font-size:28px}
  .lb-nav.l{left:16px}.lb-nav.r{right:16px}
  .lb-x{top:10px;right:10px;width:44px;height:44px}

  /* Editor */
  .ed-head{flex-direction:column;gap:10px}
  .ed-head h1{font-size:22px}
  .title-in{width:100%}
  .ed-actions{justify-content:flex-start;width:100%}
  .ed-actions .btn{flex:1 1 auto;justify-content:center}
  .ed-actions .btn.primary{display:none} /* Book all lives in the sticky bottom bar */
  .legend{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px 10px;padding:0 14px 4px;scrollbar-width:none}
  .legend span{white-space:nowrap}
  .legend::-webkit-scrollbar{display:none}
  .notice{font-size:13.5px}
  .logbar{padding:10px 12px}
  .logbar .spacer{display:none}
  .logbar label{width:100%;justify-content:space-between}
  .logbar .btn{flex:1 1 auto;justify-content:center}
  .m-only{display:block}
  .m-hint{font-size:13px;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 12px;margin-bottom:10px}
  .editor{display:block}
  .boardwrap{gap:12px}
  .days{flex-direction:column;overflow:visible;gap:12px;padding-bottom:0}
  .day{flex:none;width:100%}
  .day-h{padding:8px 8px 8px 12px}
  .day-h b{font-size:16px}
  .day-h .x{min-width:40px;min-height:40px;font-size:15px}
  .slot{padding:8px 10px 10px}
  .slot-l{font-size:11.5px}
  .slot .zone{min-height:56px}
  .addday{flex:none;min-height:64px;flex-direction:row;font-size:15px}
  .acard{padding:9px 10px 9px 13px}
  .acard .n{font-size:14px;padding-right:calc((var(--tools,30px) - 6px) * 1.5 + 8px)}
  .acard .s{font-size:12px}
  .acard .tools{right:4px;top:4px;gap:3px}
  .acard .tools button{width:32px;height:32px;font-size:15px;border-radius:8px;background:rgba(255,255,255,.85)}
  .catalog .acard .d{font-size:12px}
  .dnote-in{font-size:16px}
  .sidebar{position:static;margin-top:14px}
  .stepper button{width:44px;height:44px;font-size:18px}
  .toggle button{min-height:40px;padding:8px 14px;font-size:13px}
  .cf{padding:6px 12px;font-size:12.5px;min-height:34px}

  /* Bottom sheets: catalog ("Add") and Favorites & Maybes tray */
  main:has(.mbar){padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .catalog,.boardwrap > .tray{position:fixed !important;left:0;right:0;top:auto;bottom:calc(64px + env(safe-area-inset-bottom));z-index:90;margin:0;border-radius:18px 18px 0 0;box-shadow:0 -10px 40px rgba(15,23,42,.25);transform:translateY(110%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  .catalog{height:min(76vh,680px);max-height:none}
  .boardwrap > .tray{max-height:62vh;overflow:auto;padding:14px 14px 18px}
  body.m-sheet-cat .catalog,body.m-sheet-tray .boardwrap > .tray{transform:none;visibility:visible;transition:transform .22s ease}
  .catalog .ph{flex-direction:column;padding:12px 14px 10px}
  .catalog .ph h4,.tray h4{display:flex;align-items:center;gap:8px;padding-right:52px;min-height:36px}
  .catalog .ph,.tray{position:relative}
  .sheet-x{display:block;position:absolute;right:10px;top:8px;width:44px;height:44px;border:none;border-radius:50%;background:#f1f5f9;color:#475569;font-size:16px}
  .catalog .list{padding:10px 12px}
  .tray .row{min-height:72px}
  .tray .row .acard{width:calc(50% - 4px)}
  .sheet-scrim{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:85;opacity:0;pointer-events:none;transition:opacity .2s}
  body.m-sheet-cat .sheet-scrim,body.m-sheet-tray .sheet-scrim{opacity:1;pointer-events:auto}
  body.m-sheet-cat,body.m-sheet-tray{overflow:hidden}

  /* Sticky bottom bar with running total */
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:92;align-items:center;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(15,23,42,.08)}
  .mb-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:52px;min-height:48px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:17px;line-height:1;padding:4px 6px;color:var(--ink)}
  .mb-btn span{font-size:11px;font-weight:700;margin-top:3px;color:#475569}
  .mb-btn.on{border-color:var(--brand);background:#fff4f1}
  .mb-total{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.15;padding-left:4px}
  .mb-total b{font-size:20px;letter-spacing:-.5px;transition:color .3s}
  .mb-total b.flash{color:var(--brand)}
  .mb-total span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbar .btn.primary{min-height:48px;padding:10px 14px;white-space:nowrap}
  .tap-hint{display:flex;position:fixed;left:8px;right:8px;top:calc(8px + env(safe-area-inset-top));z-index:95;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:14px;padding:10px 10px 10px 14px;font-size:13.5px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
  .tap-hint span{flex:1;min-width:0}
  .tap-hint button{border:none;background:rgba(255,255,255,.15);color:#fff;border-radius:10px;min-height:40px;padding:0 12px;font-weight:700}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);width:max-content;text-align:center}

  /* Checkout + itinerary */
  .co{gap:14px}
  .co .panel{padding:14px}
  .lines td,.lines th{padding:8px 4px;font-size:13px}
  .lines th:nth-child(3),.lines td:nth-child(3){display:none}
  .lines td:first-child{word-break:break-word}
  .fakeform input{min-height:44px}
  .itin-day{padding:12px 14px}
  .itin-item{grid-template-columns:74px minmax(0,1fr) auto;gap:8px}
  .confirm-hero h1{font-size:24px}

  /* Profile */
  .profile-h{padding:18px 16px;gap:12px}
  .profile-h > .av{width:72px !important;height:72px !important;font-size:28px !important}
  .ph-main h1{font-size:24px}
  .ph-act{flex-direction:row;flex-wrap:wrap;width:100%}
  .ph-act .btn{flex:1 1 auto;justify-content:center}
  .ptiles{grid-template-columns:repeat(3,1fr);gap:8px}
  .ptiles div{padding:10px 6px;text-align:center}
  .ptiles b{font-size:22px}
  .ptiles span{font-size:11.5px}
  .sec-title{font-size:17px;margin:18px 0 10px}

  /* Log a trip */
  .lg-list{max-height:none}
  .lg-row{grid-template-columns:64px minmax(0,1fr);gap:10px}
  .lg-row img{width:64px;height:48px}
  .lg-row .btn{grid-column:1/-1;justify-content:center}
}
@media (max-width:380px){
  .mb-btn{min-width:46px}
  .mbar .btn.primary{padding:10px 10px}
  .ptiles{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .notice{display:block}
  .notice .spacer{display:none}
  .notice .btn{margin-top:8px;width:100%;justify-content:center}
  .tray h4{flex-wrap:wrap;row-gap:2px}
  .tray h4 .muted{font-size:12px}
}
