:root{--background: 20 36% 6%;--foreground: 33 67% 89%;--card: 20 60% 11%;--card-foreground: 33 67% 89%;--popover: 20 60% 11%;--popover-foreground: 33 67% 89%;--primary: 15 100% 60%;--primary-foreground: 20 36% 6%;--secondary: 24 63% 14%;--secondary-foreground: 28 36% 65%;--muted: 24 63% 14%;--muted-foreground: 28 30% 60%;--destructive: 0 38% 64%;--destructive-foreground: 20 36% 6%;--border: 24 63% 14%;--input: 20 60% 11%;--ring: 15 100% 60%;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-pill: 999px;--radius: var(--radius-lg);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .22);--shadow-md: 0 4px 14px rgba(0, 0, 0, .32);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .42);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .55);--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .28s;--text-2xs: 10px;--text-xs: 11px;--text-sm: 13px;--text-base: 16px;--text-md: 20px;--text-lg: 25px;--text-xl: 31px;--text-2xl: 39px;--text-3xl: 49px;--text-display: 61px;--leading-tight: 1.1;--leading-snug: 1.3;--leading-base: 1.55;--leading-relaxed: 1.7;--tracking-tight: -.02em;--tracking-base: 0;--tracking-wide: .05em;--tracking-kicker: .15em;--font-display: "Fraunces", "Newsreader", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--bg: #1a0e08;--bg-card: #2a160a;--bg-elevated: #3a200d;--text: #f5e6d3;--text-dim: #c4a98a;--text-faint: #a98c72;--accent: #ff6b35;--accent-soft: #ffb347;--gold: #f7931e;--cream: #f5e6d3;--rose: #c97a7a;--line: #3a200d;--surface-card: rgba(255, 107, 53, .06);--surface-card-hover: rgba(255, 107, 53, .12);--border-subtle: rgba(255, 107, 53, .1);--border-faint: rgba(255, 107, 53, .06);--shadow-card: 0 8px 24px rgba(0, 0, 0, .32);--shadow-hero: 0 12px 40px rgba(0, 0, 0, .4);--vn: #ff4d4d;--kh: #4ad8e0;--th: #ffb347;--info: #5fa9b3;--info-soft: #80c4cd;--info-deep: #2d6e78;--teal: #5fa9b3;--s-tier: #ff6b35;--a-tier: #f7931e;--b-tier: #ffb347;--c-tier: #a8826b;--d-tier: #6b5a4d}*:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:var(--radius-sm)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:0;border-radius:0}*{margin:0;padding:0;box-sizing:border-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6;padding:0;min-height:100vh;background-image:radial-gradient(circle at 15% 10%,rgba(255,107,53,.1) 0%,transparent 40%),radial-gradient(circle at 85% 80%,rgba(247,147,30,.08) 0%,transparent 40%)}.container{max-width:720px;margin:0 auto;padding:0 16px}.container-wide{max-width:1080px}@media(min-width:768px){.container{padding:0 24px}}.hero{text-align:center;padding:calc(40px + env(safe-area-inset-top)) 20px 50px;border-bottom:1px solid var(--line);margin-bottom:32px;background:linear-gradient(180deg,rgba(255,107,53,.05) 0%,transparent 100%)}.hero .kicker{font-size:var(--text-xs);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-weight:700}.hero h1{font-family:var(--font-display);font-size:clamp(var(--text-2xl),7vw,var(--text-display));font-weight:500;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin-bottom:16px;color:var(--cream);background:linear-gradient(135deg,var(--cream) 0%,var(--gold) 60%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero .dates{font-size:var(--text-sm);color:var(--text-dim);font-weight:400;letter-spacing:.05em;font-family:var(--font-body)}.hero .stats{display:flex;justify-content:center;gap:clamp(20px,6vw,60px);margin-top:30px;flex-wrap:wrap}.stat{text-align:center}.stat .num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--gold);display:block;line-height:var(--leading-tight)}.stat .label{font-size:var(--text-2xs);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-faint);margin-top:6px;font-weight:600}.section{margin-bottom:64px;padding-top:24px}.section-title{font-size:var(--text-xs);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:6px}.section-subtitle{font-family:var(--font-display);font-size:var(--text-md);font-weight:500;margin-bottom:24px;letter-spacing:var(--tracking-tight);color:var(--text);line-height:var(--leading-snug)}.timeline-container{--rail: 32px;--rail-x: 12px;--dot: 14px;--rail-cap: 44px;margin-top:8px}.timeline{position:relative;padding-left:var(--rail);padding-top:4px;padding-bottom:4px}.timeline:before{content:"";position:absolute;left:calc(var(--rail-x) - 1px);top:var(--rail-cap);bottom:var(--rail-cap);width:2px;background:var(--rail-color, var(--accent));opacity:.55;border-radius:2px}.timeline[data-country=vietnam]{--rail-color: var(--vn)}.timeline[data-country=cambodge]{--rail-color: var(--kh)}.timeline[data-country=thailande]{--rail-color: var(--th)}.stop{position:relative;padding:18px 20px;margin-bottom:14px;background:var(--bg-card);border-radius:14px;border:1px solid var(--line);border-left:3px solid var(--text-faint);display:grid;grid-template-columns:40px 1fr auto;gap:16px;align-items:center;transition:all .2s ease;color:inherit;text-decoration:none}.stop:last-child{margin-bottom:0}.stop[data-country=vietnam]{border-left-color:var(--vn)}.stop[data-country=cambodge]{border-left-color:var(--kh)}.stop[data-country=thailande]{border-left-color:var(--th)}.stop:before{content:"";position:absolute;left:calc(var(--rail-x) - var(--rail) - var(--dot) / 2);top:50%;transform:translateY(-50%);width:var(--dot);height:var(--dot);background:var(--accent);border-radius:50%;border:3px solid var(--bg);box-shadow:0 0 0 2px var(--accent),0 2px 6px #ff6b3566;z-index:1}.stop[data-country=vietnam]:before{background:var(--vn);box-shadow:0 0 0 2px var(--vn),0 2px 6px #ff4d4d66}.stop[data-country=cambodge]:before{background:var(--kh);box-shadow:0 0 0 2px var(--kh),0 2px 6px #4ad8e066}.stop[data-country=thailande]:before{background:var(--th);box-shadow:0 0 0 2px var(--th),0 2px 6px #ffb34766}.stop-num{font-family:var(--font-display);font-size:var(--text-md);font-weight:500;color:var(--gold);text-align:center;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.stop-main{min-width:0}.stop-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:500;letter-spacing:var(--tracking-tight);color:var(--text);line-height:var(--leading-tight)}.stop-flag{font-size:var(--text-sm);color:var(--text-dim);margin-top:4px}.stop-dates{font-size:var(--text-xs);color:var(--accent-soft);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:600;margin-top:4px;font-family:var(--font-body)}.stop-highlight{display:none}.stop-meta{text-align:right;flex-shrink:0}.stop-nights{font-family:var(--font-display);font-size:var(--text-md);font-weight:500;color:var(--gold);line-height:var(--leading-tight)}.stop-nights span{font-size:var(--text-2xs);color:var(--text-faint);display:block;letter-spacing:var(--tracking-wide);text-transform:uppercase;font-family:var(--font-body);font-weight:600;margin-top:2px}.stop-tier{--tier-c: var(--accent);display:inline-flex;align-items:center;justify-content:center;margin-top:6px;font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;line-height:1;width:22px;height:22px;border-radius:50%;color:var(--tier-c);background:color-mix(in srgb,var(--tier-c) 14%,transparent);border:1px solid color-mix(in srgb,var(--tier-c) 45%,transparent);letter-spacing:0}.stop-tier[data-tier=S]{--tier-c: var(--s-tier);background:color-mix(in srgb,var(--s-tier) 18%,transparent);border-color:var(--s-tier);box-shadow:0 0 12px #ff6b3559}.stop-tier[data-tier=A]{--tier-c: var(--a-tier)}.stop-tier[data-tier=B]{--tier-c: var(--b-tier)}.stop-tier[data-tier=C]{--tier-c: var(--c-tier)}.stop-tier[data-tier=D]{--tier-c: var(--d-tier);color:var(--text-faint)}@media(hover:hover){.stop:hover{background:var(--bg-elevated);transform:translate(2px);border-color:var(--accent)}}.stop-cta{display:none}.tier-grid{display:flex;flex-direction:column;gap:16px}.tier{display:grid;grid-template-columns:100px 1fr;gap:24px;background:var(--bg-card);border-radius:10px;overflow:hidden;border:1px solid var(--line)}.tier-label{display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;letter-spacing:-1px;color:var(--bg);background:var(--s-tier)}.tier[data-tier=S] .tier-label{background:linear-gradient(135deg,#d4a574,#c9a96e);color:#1a1410}.tier[data-tier=A] .tier-label{background:linear-gradient(135deg,#b08968,#9d7a5a);color:#1a1410}.tier[data-tier=B] .tier-label{background:linear-gradient(135deg,#8e7c5f,#7d6d52);color:#f0eadb}.tier[data-tier=C] .tier-label{background:linear-gradient(135deg,#6b6358,#5a534a);color:#d4cdbf}.tier[data-tier=D] .tier-label{background:linear-gradient(135deg,#4a4842,#3d3b36);color:#9c958a}.tier-cities{display:flex;flex-wrap:wrap;gap:10px;padding:20px;align-items:center}.city-chip{background:var(--bg-elevated);border:1px solid var(--line);padding:10px 16px;border-radius:6px;font-size:14px;display:flex;flex-direction:column;gap:2px;min-width:140px;transition:all .2s}.city-chip:hover{border-color:var(--accent);transform:translateY(-2px)}.city-chip .name{font-weight:500}.city-chip .why{font-size:11px;color:var(--text-faint);letter-spacing:.5px}.recos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.reco{background:var(--bg-card);padding:28px;border-radius:10px;border:1px solid var(--line);border-left:3px solid var(--accent)}.reco-icon{font-size:24px;margin-bottom:12px;display:inline-block}.reco h3{font-size:16px;font-weight:600;margin-bottom:10px;letter-spacing:-.3px}.reco p{font-size:13px;color:var(--text-dim);line-height:1.6}.reco.warning{border-left-color:var(--rose)}.reco.tip{border-left-color:var(--teal)}.reco.gold{border-left-color:var(--gold)}.country-header{--ch-color: var(--accent);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:48px 0 22px;padding:14px 18px 14px 28px;border-radius:var(--radius-lg);background:linear-gradient(90deg,color-mix(in srgb,var(--ch-color) 12%,transparent) 0%,color-mix(in srgb,var(--ch-color) 4%,transparent) 60%,transparent 100%);border:1px solid color-mix(in srgb,var(--ch-color) 25%,transparent);position:relative;overflow:hidden}.country-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ch-color);border-radius:var(--radius-pill) 0 0 var(--radius-pill)}.country-header[data-country=vietnam]{--ch-color: var(--vn)}.country-header[data-country=cambodge]{--ch-color: var(--kh)}.country-header[data-country=thailande]{--ch-color: var(--th)}.country-header:first-of-type{margin-top:24px}.country-header .ch-flag{font-size:var(--text-xl);line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.country-header .ch-text{min-width:0;display:flex;flex-direction:column;gap:3px}.country-header h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;letter-spacing:var(--tracking-tight);color:var(--text);text-transform:none;line-height:var(--leading-tight);margin:0}.country-header .ch-range{font-size:var(--text-2xs);color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.country-header .ch-stats{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;background:var(--bg-card);border:1px solid color-mix(in srgb,var(--ch-color) 25%,var(--line));border-radius:var(--radius-pill);font-size:var(--text-2xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.country-header .ch-stat strong{font-family:var(--font-display);font-size:var(--text-md);color:var(--ch-color);font-weight:500;margin-right:4px;letter-spacing:var(--tracking-tight)}.country-header .ch-sep{width:3px;height:3px;border-radius:50%;background:color-mix(in srgb,var(--ch-color) 50%,transparent)}@media(max-width:600px){.country-header{grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:8px 12px;padding:12px 14px 12px 22px}.country-header .ch-stats{grid-column:1 / -1;justify-self:start;padding:4px 10px}.country-header .ch-stat strong{font-size:var(--text-sm)}}footer{text-align:center;padding:40px 20px;color:var(--text-faint);font-size:12px;border-top:1px solid var(--line);margin-top:80px;letter-spacing:2px}.tab-nav{position:sticky;top:0;z-index:50;display:flex;gap:4px;padding:12px;background:#0f1419d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;border:1px solid var(--line);margin-bottom:50px;overflow-x:auto}.tab-btn{flex:1;min-width:max-content;background:transparent;border:none;color:var(--text-dim);padding:12px 20px;font-size:13px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:8px;transition:all .2s ease;font-family:inherit}.tab-btn:hover{color:var(--text);background:var(--bg-card)}.tab-btn.active{color:var(--bg);background:linear-gradient(135deg,var(--gold),var(--accent));font-weight:600}.tab-panel{display:none;animation:fadeIn .3s ease}.tab-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.budget-banner{background:linear-gradient(135deg,#d9775726,#c9a96e1a);border:1px solid var(--accent);border-radius:10px;padding:24px 28px;margin-bottom:40px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center}.budget-banner .icon{font-size:36px}.budget-banner .label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:600}.budget-banner .text{font-size:14px;color:var(--text);line-height:1.6}.budget-banner strong{color:var(--gold);font-weight:600}.cruise-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:50px}.cruise{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:24px 28px;display:grid;grid-template-columns:60px 1fr 220px 160px;gap:24px;align-items:center;transition:all .2s ease;position:relative;overflow:hidden}.cruise:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c-tier)}.cruise[data-fit=ideal]:before{background:linear-gradient(to bottom,#8fb389,#6b9968)}.cruise[data-fit=limit]:before{background:linear-gradient(to bottom,var(--gold),var(--accent))}.cruise[data-fit=over]:before{background:linear-gradient(to bottom,var(--rose),#a85a5a)}.cruise:hover{background:var(--bg-elevated);border-color:var(--accent)}.cruise-rank{font-size:32px;font-weight:200;color:var(--gold);text-align:center}.cruise-info h3{font-size:19px;font-weight:500;margin-bottom:4px;letter-spacing:-.3px}.cruise-stars{color:var(--gold);font-size:13px;letter-spacing:2px;margin-bottom:8px}.cruise-desc{font-size:13px;color:var(--text-dim);line-height:1.55}.cruise-price{text-align:center;padding:12px;background:var(--bg-elevated);border-radius:8px}.cruise-price .amount{font-size:22px;font-weight:300;color:var(--text);display:block}.cruise-price .per{font-size:10px;color:var(--text-faint);letter-spacing:1px;text-transform:uppercase;margin-top:2px}.cruise-price .fit-badge{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:4px;font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:600}.cruise[data-fit=ideal] .fit-badge{background:#8fb38933;color:#8fb389}.cruise[data-fit=limit] .fit-badge{background:#c9a96e33;color:var(--gold)}.cruise[data-fit=over] .fit-badge{background:#c97a7a33;color:var(--rose)}.cruise-link{display:inline-block;text-align:center;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:8px;color:var(--text);text-decoration:none;font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:500;transition:all .2s}.cruise-link:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.booking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:40px}.booking-card{background:var(--bg-card);border:1px solid var(--line);border-radius:10px;padding:24px;border-left:3px solid var(--teal)}.booking-card.gold{border-left-color:var(--gold)}.booking-card h4{font-size:15px;font-weight:600;margin-bottom:8px}.booking-card p{font-size:13px;color:var(--text-dim);line-height:1.55;margin-bottom:12px}.booking-card a{color:var(--accent);text-decoration:none;font-size:12px;font-weight:500;letter-spacing:.5px}.booking-card a:hover{text-decoration:underline}.redflags{background:#c97a7a14;border:1px solid rgba(201,122,122,.3);border-radius:10px;padding:24px 28px}.redflags h4{font-size:15px;font-weight:600;margin-bottom:14px;color:var(--rose)}.redflags ul{list-style:none;padding:0}.redflags li{font-size:13px;color:var(--text-dim);padding:6px 0 6px 24px;position:relative;line-height:1.5}.redflags li:before{content:"✕";position:absolute;left:0;color:var(--rose);font-weight:700}.stop{cursor:pointer}.stop-cta{position:absolute;right:14px;bottom:10px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint);opacity:0;transition:all .25s;font-weight:600}.stop:hover .stop-cta{opacity:1;color:var(--accent)}.g-intro{font-size:14px;color:var(--text);line-height:1.7;margin-bottom:36px;padding:18px 22px;background:var(--bg-elevated);border-radius:8px;border-left:3px solid var(--gold);font-style:italic}.g-section{margin-bottom:36px}.g-section h3{font-size:16px;font-weight:600;margin-bottom:16px;letter-spacing:.5px;text-transform:uppercase;color:var(--text);padding-bottom:8px;border-bottom:1px solid var(--line)}.g-item{padding:12px 0;border-bottom:1px solid var(--line)}.g-item:last-child{border-bottom:none}.g-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.g-name .g-badge{font-size:10px;background:var(--accent);color:var(--bg);padding:2px 6px;border-radius:3px;margin-left:6px;letter-spacing:1px;text-transform:uppercase;font-weight:700;vertical-align:middle}.g-desc{font-size:13px;color:var(--text-dim);line-height:1.55}.g-tip{font-size:12px;color:var(--gold);margin-top:6px;line-height:1.5}.g-day{background:var(--bg-elevated);padding:18px 22px;border-radius:8px;margin-bottom:14px;border-left:3px solid var(--accent)}.g-day-label{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px}.g-schedule{list-style:none;padding:0}.g-schedule li{padding:8px 0;font-size:13px;display:grid;grid-template-columns:70px 1fr;gap:14px;color:var(--text-dim);border-bottom:1px dashed var(--line);line-height:1.55}.g-schedule li:last-child{border-bottom:none}.g-schedule .time{color:var(--gold);font-weight:600;font-size:12px;letter-spacing:.5px}.today-banner{position:relative;background:linear-gradient(135deg,#d977572e,#c9a96e1a);border:1px solid var(--accent);border-radius:12px;padding:18px 24px;margin-bottom:30px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;cursor:pointer;transition:all .2s}.today-banner:hover{transform:translateY(-2px);box-shadow:0 6px 20px #d9775733}.today-banner .icon{font-size:28px}.today-banner .label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:700}.today-banner .text{font-size:15px;color:var(--text);font-weight:500}.today-banner .text strong{color:var(--gold)}.today-banner .cta{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-weight:700}.status-row{display:flex;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.status-btn{flex:1;background:var(--bg-elevated);border:1px solid var(--line);color:var(--text-dim);padding:7px 6px;border-radius:5px;font-size:11px;cursor:pointer;font-family:inherit;font-weight:600;letter-spacing:.3px;transition:all .15s;text-align:center}.status-btn:hover{color:var(--text);border-color:var(--accent)}.status-btn.active.want{background:#e75a5a40;color:#f88;border-color:#f66}.status-btn.active.done{background:#8fb38940;color:#8fb389;border-color:#8fb389}.status-btn.active.skip{background:#78787840;color:#999;border-color:#888}.g-marker.has-want{box-shadow:0 0 0 2px #f66,0 3px 10px #f666}.g-marker.has-done{box-shadow:0 0 0 2px #8fb389,0 3px 10px #8fb38966}.g-marker.has-skip{opacity:.45;filter:grayscale(.7)}.g-marker .status-pill{position:absolute;top:-5px;right:-5px;background:var(--bg-card);border:1.5px solid var(--accent);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700}.stop-status-counter{position:absolute;bottom:10px;left:16px;display:flex;gap:8px;font-size:10px;letter-spacing:.5px;font-weight:700;color:var(--text-faint)}.stop-status-counter span{display:inline-flex;align-items:center;gap:3px}.stop-status-counter .want{color:#f66}.stop-status-counter .done{color:#8fb389}.gmap-toolbar{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--line);border-radius:10px}.gmap-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.gmap-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint);font-weight:700;margin-right:8px;min-width:50px}.filter-pill{background:var(--bg-elevated);border:1px solid var(--line);color:var(--text-dim);padding:6px 14px;border-radius:16px;font-size:12px;cursor:pointer;transition:all .15s ease;font-family:inherit;font-weight:500;white-space:nowrap}.filter-pill:hover{border-color:var(--accent);color:var(--text)}.filter-pill.active{background:linear-gradient(135deg,var(--gold),var(--accent));color:var(--bg);border-color:var(--accent);font-weight:600}.gmap-stats{display:flex;gap:24px;margin-bottom:14px;font-size:12px;color:var(--text-dim);letter-spacing:.5px}.gmap-stats .count{color:var(--gold);font-weight:700;font-size:14px}#global-map{height:640px;border-radius:12px;border:1px solid var(--line);overflow:hidden;z-index:1}@media(max-width:768px){#global-map{height:480px}}.data-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:10px;overflow:hidden;border:1px solid var(--line);margin-bottom:24px;font-size:13px}.data-table thead{background:var(--bg-elevated)}.data-table th{padding:14px 16px;text-align:left;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--accent);border-bottom:1px solid var(--line)}.data-table td{padding:14px 16px;border-bottom:1px solid var(--line);color:var(--text-dim);line-height:1.5;vertical-align:top}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-elevated);color:var(--text)}.data-table .city{color:var(--gold);font-weight:600;white-space:nowrap}.data-table .price{color:var(--text);font-weight:500;white-space:nowrap}.data-table .price-low{color:#8fb389}.data-table .price-mid{color:var(--gold)}.data-table .price-high{color:var(--rose)}.total-banner{background:linear-gradient(135deg,#d9775726,#c9a96e1a);border:1px solid var(--accent);border-radius:12px;padding:28px 32px;margin:30px 0 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.total-card{text-align:center}.total-card .label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;font-weight:600}.total-card .amount{font-size:32px;font-weight:200;color:var(--gold);display:block;line-height:1}.total-card.low .amount{color:#8fb389}.total-card.high .amount{color:var(--rose)}.total-card .per{font-size:11px;color:var(--text-faint);margin-top:6px;letter-spacing:1px;text-transform:uppercase}.checklist{display:grid;gap:16px;margin-bottom:30px}.check-card{background:var(--bg-card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:22px 26px}.check-card.urgent{border-left-color:var(--rose)}.check-card.done{border-left-color:#8fb389;opacity:.7}.check-card h4{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--text);display:flex;align-items:center;gap:10px}.check-card .deadline{font-size:11px;background:#c97a7a2e;color:var(--rose);padding:3px 8px;border-radius:4px;letter-spacing:1px;text-transform:uppercase;font-weight:600}.check-card .deadline.ok{background:#8fb3892e;color:#8fb389}.check-card .deadline.now{background:#d9775733;color:var(--accent)}.check-card ul{list-style:none;padding:0}.check-card li{font-size:13px;color:var(--text-dim);padding:6px 0 6px 22px;position:relative;line-height:1.5}.check-card li:before{content:"☐";position:absolute;left:0;color:var(--accent);font-weight:700}.check-card li.done:before{content:"✓";color:#8fb389}.check-card a{color:var(--accent);text-decoration:none}.check-card a:hover{text-decoration:underline}.pratique-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.prat-card{background:var(--bg-card);border:1px solid var(--line);border-radius:10px;padding:22px 24px}.prat-card h4{font-size:14px;font-weight:600;margin-bottom:14px;color:var(--gold);letter-spacing:.3px}.prat-card .row{padding:8px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:13px;color:var(--text-dim);line-height:1.4}.prat-card .row:last-child{border-bottom:none}.prat-card .row .k{color:var(--text);font-weight:500}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.app-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.app-card .name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}.app-card .desc{font-size:11px;color:var(--text-dim);line-height:1.4}.app-card.essential{border-color:var(--accent)}.g-map-section{margin-bottom:36px}#g-map{height:400px;border-radius:12px;border:1px solid var(--line);overflow:hidden;z-index:1}.g-map-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:11px;color:var(--text-dim);letter-spacing:.5px}.g-map-legend span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--bg-elevated);border-radius:14px}.g-map-cta{display:inline-block;margin-top:10px;padding:8px 14px;background:var(--bg-elevated);color:var(--accent);text-decoration:none;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;border-radius:6px;border:1px solid var(--line);transition:all .2s}.g-map-cta:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}.g-marker-wrapper{background:transparent;border:none}.g-marker{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:2.5px solid var(--gold);border-radius:50%;font-size:17px;box-shadow:0 2px 8px #00000059;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(max-width:1024px){.g-marker{width:40px;height:40px;font-size:18px}}.g-marker:hover{transform:scale(1.18);z-index:1000;box-shadow:0 4px 14px #0006}@media(prefers-reduced-motion:reduce){.g-marker{transition:none}.g-marker:hover{transform:none}}.g-marker-food{border-color:#e35d3a}.g-marker-bar{border-color:#c45c8c}.g-marker-cafe{border-color:#8b6f47}.g-marker-sight{border-color:#c9a96e}.g-marker-temple{border-color:#d49334}.g-marker-beach{border-color:#2d8d8a}.g-marker-nature{border-color:#5a8b4a}.g-marker-hotel{border-color:#6f6354}.g-marker-market{border-color:#e8a07f}.g-marker-experience{border-color:#b58a3d}.poi-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.poi-action{display:inline-block;padding:5px 9px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:4px;color:var(--text);text-decoration:none;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;transition:all .15s;white-space:nowrap}.poi-action:hover{background:var(--accent);color:var(--bg);border-color:var(--accent);text-decoration:none}.poi-action.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.poi-action.primary:hover{background:var(--gold);border-color:var(--gold)}.poi-price{display:inline-block;color:var(--gold);font-weight:700;letter-spacing:1.5px;margin-left:8px;font-size:12px}.leaflet-tooltip.g-tip{background:var(--bg-card);color:var(--text);border:1px solid var(--gold);font-size:11px;font-weight:600;padding:4px 9px;border-radius:4px;box-shadow:0 3px 10px #0006;white-space:nowrap;font-family:inherit}.leaflet-tooltip.g-tip:before{border-top-color:var(--gold)}.leaflet-container{background:#1a1a1a;font-family:inherit}.leaflet-popup-content-wrapper{background:var(--bg-card);color:var(--text);border-radius:8px;border:1px solid var(--line);box-shadow:0 4px 20px #00000080}.leaflet-popup-tip{background:var(--bg-card);border:1px solid var(--line)}.leaflet-popup-content{font-size:12px;line-height:1.5;margin:10px 14px;min-width:140px}.leaflet-popup-content b{color:var(--gold);font-size:13px}.leaflet-popup-content .pop-note{color:var(--text-dim);font-size:11px;display:block;margin-top:4px;font-style:italic}.leaflet-popup-close-button{color:var(--text-dim)!important}.leaflet-control-attribution{background:#0f1419cc!important;color:var(--text-faint)!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--text-dim)!important}.leaflet-control-zoom a{background:var(--bg-card)!important;color:var(--text)!important;border-color:var(--line)!important}.leaflet-control-zoom a:hover{background:var(--bg-elevated)!important}.leaflet-container{isolation:isolate}.hotels-section{margin-top:28px;margin-bottom:28px}.hotels-section>h3{font-size:18px;font-weight:500;letter-spacing:-.3px;margin-bottom:18px;color:var(--text)}.hotels-tier{margin-bottom:22px}.hotels-tier:last-child{margin-bottom:0}.hotels-tier-label{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:12px;padding-left:2px}.hotels-tier-label .tier-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.hotels-tier[data-tier=luxury] .tier-dot{background:var(--gold)}.hotels-tier[data-tier=mid] .tier-dot{background:var(--teal)}.hotels-tier[data-tier=budget] .tier-dot{background:var(--text-faint)}.hotels-tier[data-tier=luxury] .hotels-tier-label{color:var(--gold)}.hotels-tier[data-tier=mid] .hotels-tier-label{color:var(--teal)}.hotels-tier[data-tier=budget] .hotels-tier-label{color:var(--text-dim)}.hotels-list{display:grid;gap:10px}.hotel-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:border-color .18s,transform .18s}.hotel-card:hover{border-color:var(--accent)}.hotel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.hotel-name{font-size:15px;font-weight:500;color:var(--text);letter-spacing:-.2px;line-height:1.3}.hotel-meta{font-size:10px;color:var(--text-faint);letter-spacing:1.2px;text-transform:uppercase;margin-top:4px;font-weight:500}.hotel-price{font-size:14px;color:var(--gold);font-weight:500;white-space:nowrap;flex-shrink:0;text-align:right}.hotel-price .per{font-size:9px;color:var(--text-faint);display:block;letter-spacing:1px;text-transform:uppercase}.hotel-stars{color:var(--gold);font-size:11px;letter-spacing:1.5px;margin-top:2px}.hotel-note{font-size:12.5px;color:var(--text-dim);line-height:1.5;margin-top:4px;margin-bottom:10px}.hotel-actions{display:flex;gap:6px;flex-wrap:wrap}.hotel-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;letter-spacing:.5px;padding:8px 12px;border-radius:6px;background:var(--bg-card);border:1px solid var(--line);color:var(--text-dim);text-decoration:none;transition:all .15s;font-weight:500;min-height:32px}.hotel-btn:hover{border-color:var(--accent);color:var(--accent)}.hotel-btn.primary{background:linear-gradient(135deg,var(--gold),var(--accent));border-color:var(--accent);color:var(--bg);font-weight:600}.hotel-btn.primary:hover{filter:brightness(1.1);color:var(--bg)}.stop.is-hidden,.country-header.is-hidden,.timeline.is-hidden{display:none!important}.stop.search-match{border-color:var(--accent);box-shadow:0 0 0 1px #d977574d,0 4px 12px #d9775714}.search-empty{display:none;text-align:center;padding:60px 20px;color:var(--text-dim)}.search-empty.show{display:block}.search-empty .icon{font-size:48px;margin-bottom:16px;opacity:.4}.search-empty .msg{font-size:14px}.search-empty button{margin-top:18px;background:var(--bg-card);border:1px solid var(--line);color:var(--text);padding:10px 20px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;letter-spacing:1px;text-transform:uppercase;transition:all .2s}.search-empty button:hover{border-color:var(--accent);color:var(--accent)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-elevated);border:1px solid var(--accent);color:var(--text);padding:12px 20px;border-radius:10px;font-size:13px;z-index:1000;opacity:0;transition:all .25s ease;pointer-events:none;box-shadow:0 10px 30px #0006;max-width:calc(100vw - 40px)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}body.is-locked{overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus,.sr-only-focusable:focus-within{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.skeleton{position:relative;overflow:hidden;background:var(--bg-card);border-radius:var(--radius-md)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.04) 30%,rgba(255,179,71,.06) 50%,rgba(255,255,255,.04) 70%,transparent 100%);animation:skeleton-shimmer 1.6s linear infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}@media(hover:none){.stop:hover{background:var(--bg-card);transform:none;border-color:var(--line)}.stop:hover .stop-cta{opacity:.7;color:var(--accent)}.tab-btn:hover{color:var(--text-dim);background:transparent}.city-chip:hover{transform:none}.filter-pill:hover{background:var(--bg-card);border-color:var(--line);color:var(--text-dim)}.cruise:hover{background:var(--bg-card);border-color:var(--line)}.check-card:hover,.booking-card:hover,.prat-card:hover,.app-card:hover{background:var(--bg-card)}}@media(max-width:1024px){.stop-cta{opacity:.7;color:var(--accent)}.poi-action{padding:9px 13px!important;font-size:12px!important;min-height:38px}.status-btn{min-height:40px;padding:10px 12px!important}}@media(max-width:1024px){body{padding:24px 14px}#global-map{height:520px}}@media(max-width:768px){body{padding:16px 10px}.hero{padding:30px 12px 50px;margin-bottom:32px}.hero .stats{gap:32px;margin-top:28px}.stat .num{font-size:32px}.section{margin-bottom:50px}.stop{grid-template-columns:1fr;gap:6px;padding:16px 18px}.stop-nights{text-align:left;font-size:18px}.stop-nights span{display:inline;margin-left:6px}.stop-highlight{font-size:12px}.stop-cta{position:static;opacity:.8;margin-top:4px;font-size:11px}.timeline-container{--rail: 28px;--rail-x: 10px;--rail-cap: 60px}.tier{grid-template-columns:1fr}.tier-label{padding:14px;font-size:24px}.cruise{grid-template-columns:1fr;gap:12px}.cruise-rank{text-align:left;font-size:24px}.budget-banner{grid-template-columns:1fr;padding:18px 20px}.g-modal{padding:60px 18px 40px;border-radius:12px}.g-title{font-size:28px}.g-flag{font-size:38px}.g-header{gap:12px;padding-right:0;padding-bottom:18px;margin-bottom:18px}.g-overlay{padding:12px 6px}#g-map{height:320px}#global-map{height:420px}.data-table{font-size:12px}.data-table th,.data-table td{padding:10px 8px}.gmap-toolbar{padding:12px}.gmap-row{gap:6px;flex-wrap:wrap}.filter-pill{font-size:11px;padding:9px 12px;min-height:36px}.tab-btn{padding:10px 14px;font-size:12px;letter-spacing:1px}.search-input{font-size:16px}.today-banner{grid-template-columns:1fr;gap:8px;text-align:center}}@media(max-width:480px){body{padding:10px 6px}.hero{padding:24px 8px 36px;margin-bottom:20px}.hero .kicker{letter-spacing:3px;font-size:10px}.hero .stats{gap:18px;margin-top:22px}.stat .num{font-size:26px}.stat .label{font-size:10px}.stop{padding:14px}.stop-name{font-size:17px}.stop-dates{font-size:11px}.timeline-container{--rail: 22px;--rail-x: 8px;--rail-cap: 56px}.country-header h3{font-size:var(--text-md)}.poi-actions{gap:4px}.status-row{flex-wrap:wrap}.status-btn{flex:1 1 30%;min-width:0}#global-map{height:360px}#g-map{height:280px}.tab-btn{padding:9px 11px;font-size:11px;letter-spacing:.8px}.data-table th,.data-table td{padding:8px 6px;font-size:11px}.search-empty{padding:40px 12px}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2) format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2) format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2) format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2) format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-ext-400-normal.C1nco2VV.woff2) format("woff2"),url(/_astro/inter-latin-ext-400-normal.77YHD8bZ.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-ext-500-normal.CV4jyFjo.woff2) format("woff2"),url(/_astro/inter-latin-ext-500-normal.BxGbmqWO.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-ext-600-normal.D2bJ5OIk.woff2) format("woff2"),url(/_astro/inter-latin-ext-600-normal.CIVaiw4L.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-ext-700-normal.Ca8adRJv.woff2) format("woff2"),url(/_astro/inter-latin-ext-700-normal.TidjK2hL.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-400-normal.6IfK1voy.woff2) format("woff2"),url(/_astro/fraunces-latin-400-normal.NUPT2cO8.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fraunces-latin-500-normal.DnGCNyPD.woff2) format("woff2"),url(/_astro/fraunces-latin-500-normal.BTR4KCeb.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-400-italic.ChpO6tcr.woff2) format("woff2"),url(/_astro/fraunces-latin-400-italic.B7iDoVhm.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-ext-400-normal.D8gbi3Gu.woff2) format("woff2"),url(/_astro/fraunces-latin-ext-400-normal.UihxqfOe.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fraunces-latin-ext-500-normal.Z5DV8IzT.woff2) format("woff2"),url(/_astro/fraunces-latin-ext-500-normal.BMcFk1Xs.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-ext-400-italic.jodr80a5.woff2) format("woff2"),url(/_astro/fraunces-latin-ext-400-italic.CGHg0U1I.woff) format("woff")}.bottom-nav[data-astro-cid-ltxpr5xc]{position:fixed;bottom:0;left:0;right:0;z-index:1010;display:flex;background:#1a0e08f5;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--line);padding:6px 6px calc(8px + env(safe-area-inset-bottom))}@media(min-width:1024px){.bottom-nav[data-astro-cid-ltxpr5xc]{display:none}}.bn-item[data-astro-cid-ltxpr5xc]{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;color:var(--text-faint);text-decoration:none;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);border-radius:var(--radius-md);min-height:56px;justify-content:center;font-family:var(--font-body);position:relative}.bn-icon[data-astro-cid-ltxpr5xc]{font-size:22px;line-height:1;transition:transform var(--duration-fast) var(--ease-out)}.bn-label[data-astro-cid-ltxpr5xc]{font-size:var(--text-2xs);letter-spacing:.05em;font-weight:600}.bn-item[data-astro-cid-ltxpr5xc].active{color:var(--accent)}.bn-item[data-astro-cid-ltxpr5xc].active .bn-icon[data-astro-cid-ltxpr5xc]{transform:translateY(-1px) scale(1.05)}.bn-item[data-astro-cid-ltxpr5xc].active:before{content:"";position:absolute;top:2px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--accent);transform:translate(-50%);box-shadow:0 0 8px #ff6b3599}@media(hover:hover){.bn-item[data-astro-cid-ltxpr5xc]:hover{color:var(--text);background:#ffffff08}.bn-item[data-astro-cid-ltxpr5xc].active:hover{color:var(--accent)}}@media(prefers-reduced-motion:reduce){.bn-item[data-astro-cid-ltxpr5xc],.bn-icon[data-astro-cid-ltxpr5xc]{transition:none}.bn-item[data-astro-cid-ltxpr5xc].active .bn-icon[data-astro-cid-ltxpr5xc]{transform:none}}.topbar[data-astro-cid-lq7i5isa]{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:12px 16px calc(12px + env(safe-area-inset-top)) 16px;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px;background:#1a0e08eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}@media(min-width:768px){.topbar[data-astro-cid-lq7i5isa]{padding-left:32px;padding-right:32px}}.topbar-logo[data-astro-cid-lq7i5isa]{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--cream)}.logo-text[data-astro-cid-lq7i5isa]{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.3px;color:var(--cream)}@media(min-width:768px){.logo-text[data-astro-cid-lq7i5isa]{font-size:20px}}.topbar-actions[data-astro-cid-lq7i5isa]{display:flex;align-items:center;gap:8px}.topbar-search-btn[data-astro-cid-lq7i5isa]{background:none;border:1px solid var(--line);border-radius:var(--radius-md);padding:0;cursor:pointer;width:40px;height:40px;color:var(--text);display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out)}.topbar-search-btn[data-astro-cid-lq7i5isa]:hover{border-color:var(--accent);color:var(--accent)}.tsb-icon[data-astro-cid-lq7i5isa]{font-size:var(--text-base);line-height:1}.tsb-label[data-astro-cid-lq7i5isa],.tsb-kbd[data-astro-cid-lq7i5isa]{display:none}@media(min-width:768px){.topbar-search-btn[data-astro-cid-lq7i5isa]{width:auto;padding:0 12px 0 14px;min-width:200px;justify-content:flex-start;color:var(--text-faint);background:var(--bg-card)}.topbar-search-btn[data-astro-cid-lq7i5isa]:hover{color:var(--text);background:var(--bg-elevated)}.tsb-label[data-astro-cid-lq7i5isa]{display:inline;flex:1;text-align:left;letter-spacing:.1px}.tsb-kbd[data-astro-cid-lq7i5isa]{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:var(--text-2xs);letter-spacing:.05em;color:var(--text-faint);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:3px 7px;min-width:22px;line-height:1;font-weight:500}.tsb-kbd--combo[data-astro-cid-lq7i5isa]{padding:3px 8px;min-width:36px}}.topbar-burger[data-astro-cid-lq7i5isa]{background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;width:40px;height:40px;align-items:center;justify-content:center;transition:all .18s}.topbar-burger[data-astro-cid-lq7i5isa] span[data-astro-cid-lq7i5isa]{display:block;width:18px;height:2px;background:var(--cream);border-radius:2px;transition:all .2s}.topbar-burger[data-astro-cid-lq7i5isa].open span[data-astro-cid-lq7i5isa]:nth-child(1){transform:translateY(6px) rotate(45deg)}.topbar-burger[data-astro-cid-lq7i5isa].open span[data-astro-cid-lq7i5isa]:nth-child(2){opacity:0}.topbar-burger[data-astro-cid-lq7i5isa].open span[data-astro-cid-lq7i5isa]:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.topbar-burger[data-astro-cid-lq7i5isa]:hover{border-color:var(--accent)}.topbar-drawer[data-astro-cid-lq7i5isa]{position:fixed;inset:0;z-index:1500;pointer-events:none;visibility:hidden}.topbar-drawer[data-astro-cid-lq7i5isa].open{pointer-events:auto;visibility:visible}.drawer-backdrop[data-astro-cid-lq7i5isa]{position:absolute;inset:0;background:#0009;backdrop-filter:blur(4px);opacity:0;transition:opacity .25s ease}.topbar-drawer[data-astro-cid-lq7i5isa].open .drawer-backdrop[data-astro-cid-lq7i5isa]{opacity:1}.drawer-panel[data-astro-cid-lq7i5isa]{position:absolute;top:0;right:0;bottom:0;width:min(380px,92vw);background:var(--bg-card);border-left:1px solid var(--line);transform:translate(100%);transition:transform .28s cubic-bezier(.32,.72,0,1);overflow-y:auto;padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:-10px 0 40px #00000080}.topbar-drawer[data-astro-cid-lq7i5isa].open .drawer-panel[data-astro-cid-lq7i5isa]{transform:translate(0)}.drawer-header[data-astro-cid-lq7i5isa]{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 14px;border-bottom:1px solid var(--line)}.drawer-title[data-astro-cid-lq7i5isa]{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--cream);letter-spacing:-.3px}.drawer-close[data-astro-cid-lq7i5isa]{background:var(--bg-elevated);border:1px solid var(--line);color:var(--cream);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .18s}.drawer-close[data-astro-cid-lq7i5isa]:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.drawer-trip[data-astro-cid-lq7i5isa]{position:relative;isolation:isolate;overflow:hidden;margin:14px 14px 6px;padding:14px 16px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ff6b3524,#f7931e0f),var(--bg-elevated);border:1px solid rgba(255,107,53,.25);min-height:76px}.dt-photo[data-astro-cid-lq7i5isa]{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center 35%;background-repeat:no-repeat;opacity:0;transition:opacity var(--duration-slow) var(--ease-out)}.drawer-trip[data-astro-cid-lq7i5isa].has-photo .dt-photo[data-astro-cid-lq7i5isa]{opacity:.5}.dt-veil[data-astro-cid-lq7i5isa]{position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#1a0e08e0,#1a0e088c,#1a0e08c7),linear-gradient(180deg,transparent 0%,rgba(26,14,8,.4) 100%)}.drawer-trip[data-astro-cid-lq7i5isa].has-photo{border-color:#ffb34766;box-shadow:var(--shadow-md)}.dt-content[data-astro-cid-lq7i5isa]{position:relative;z-index:1}.dt-kicker[data-astro-cid-lq7i5isa]{font-size:var(--text-2xs);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:6px;text-shadow:0 1px 4px rgba(0,0,0,.5)}.dt-row[data-astro-cid-lq7i5isa]{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.dt-status[data-astro-cid-lq7i5isa]{font-family:var(--font-display);font-size:var(--text-md);font-weight:500;color:var(--cream);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);text-shadow:0 2px 8px rgba(0,0,0,.7)}.drawer-trip[data-astro-cid-lq7i5isa][data-phase=pre] .dt-status[data-astro-cid-lq7i5isa]{background:linear-gradient(135deg,var(--cream) 0%,var(--gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dt-meta[data-astro-cid-lq7i5isa]{font-size:var(--text-2xs);color:var(--text-faint);letter-spacing:.04em}.drawer-trip[data-astro-cid-lq7i5isa].has-photo .dt-meta[data-astro-cid-lq7i5isa]{color:var(--text-dim)}.drawer-nav[data-astro-cid-lq7i5isa]{padding:8px 12px 16px;display:flex;flex-direction:column;gap:2px}.drawer-link[data-astro-cid-lq7i5isa]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;color:var(--cream);text-decoration:none;font-weight:500;font-size:15px;transition:background .15s,color .15s}.drawer-link[data-astro-cid-lq7i5isa]:hover{background:var(--bg-elevated)}.drawer-link[data-astro-cid-lq7i5isa].is-active{background:linear-gradient(135deg,#f7931e24,#ff6b3514);color:var(--accent)}.drawer-group[data-astro-cid-lq7i5isa]{margin:4px 0;border-radius:10px;background:transparent}.drawer-group[data-astro-cid-lq7i5isa].is-active .drawer-group-head[data-astro-cid-lq7i5isa] .drawer-group-main[data-astro-cid-lq7i5isa]{color:var(--accent)}.drawer-group-head[data-astro-cid-lq7i5isa]{display:flex;align-items:center;gap:8px;padding-right:8px}.drawer-group-main[data-astro-cid-lq7i5isa]{flex:1;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;color:var(--cream);text-decoration:none;font-weight:500;font-size:15px;transition:background .15s}.drawer-group-main[data-astro-cid-lq7i5isa]:hover{background:var(--bg-elevated)}.drawer-pill[data-astro-cid-lq7i5isa]{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);background:var(--bg-elevated);border:1px solid var(--line);padding:6px 10px;border-radius:999px;text-decoration:none;transition:all .15s;font-weight:600}.drawer-pill[data-astro-cid-lq7i5isa]:hover{color:var(--accent);border-color:var(--accent)}.d-icon[data-astro-cid-lq7i5isa]{font-size:18px}.drawer-sub[data-astro-cid-lq7i5isa]{display:flex;flex-direction:column;margin:2px 0 6px 38px;padding-left:14px;border-left:1px solid var(--line)}.drawer-sub-link[data-astro-cid-lq7i5isa]{padding:8px 12px;color:var(--text-dim);text-decoration:none;font-size:13px;border-radius:6px;transition:all .15s}.drawer-sub-link[data-astro-cid-lq7i5isa]:hover{color:var(--accent);background:var(--bg-elevated)}.drawer-countries[data-astro-cid-lq7i5isa]{margin:6px 0 4px 38px;padding-left:14px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.drawer-country[data-astro-cid-lq7i5isa]{padding:0}.drawer-country[data-astro-cid-lq7i5isa]>.dc-summary[data-astro-cid-lq7i5isa]{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;list-style:none;transition:background .15s;-webkit-tap-highlight-color:transparent}.drawer-country[data-astro-cid-lq7i5isa]>.dc-summary[data-astro-cid-lq7i5isa]::-webkit-details-marker{display:none}.drawer-country[data-astro-cid-lq7i5isa]>.dc-summary[data-astro-cid-lq7i5isa]:hover{background:var(--bg-elevated)}.dc-flag[data-astro-cid-lq7i5isa]{font-size:18px;line-height:1}.dc-name[data-astro-cid-lq7i5isa]{flex:1;font-family:var(--font-display);font-size:15px;font-weight:500;color:var(--cream);letter-spacing:-.2px}.dc-count[data-astro-cid-lq7i5isa]{font-size:10px;letter-spacing:1px;color:var(--text-faint);background:var(--bg);padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-weight:700}.drawer-country[data-astro-cid-lq7i5isa][data-country=vietnam] .dc-count[data-astro-cid-lq7i5isa]{color:var(--vn);border-color:#ff4d4d66}.drawer-country[data-astro-cid-lq7i5isa][data-country=cambodge] .dc-count[data-astro-cid-lq7i5isa]{color:var(--kh);border-color:#4ad8e066}.drawer-country[data-astro-cid-lq7i5isa][data-country=thailande] .dc-count[data-astro-cid-lq7i5isa]{color:var(--th);border-color:#ffb34766}.dc-chevron[data-astro-cid-lq7i5isa]{color:var(--text-faint);font-size:16px;transform:rotate(0);transition:transform .2s ease}.drawer-country[data-astro-cid-lq7i5isa][open] .dc-chevron[data-astro-cid-lq7i5isa]{transform:rotate(90deg);color:var(--accent)}.dc-cities[data-astro-cid-lq7i5isa]{list-style:none;margin:4px 0 6px 4px;padding:0 0 0 18px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:1px}.drawer-country[data-astro-cid-lq7i5isa][data-country=vietnam] .dc-cities[data-astro-cid-lq7i5isa]{border-left-color:#ff4d4d59}.drawer-country[data-astro-cid-lq7i5isa][data-country=cambodge] .dc-cities[data-astro-cid-lq7i5isa]{border-left-color:#4ad8e059}.drawer-country[data-astro-cid-lq7i5isa][data-country=thailande] .dc-cities[data-astro-cid-lq7i5isa]{border-left-color:#ffb34759}.dc-city[data-astro-cid-lq7i5isa]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--text-dim);transition:all .15s;position:relative}.dc-city[data-astro-cid-lq7i5isa]:before{content:"";position:absolute;left:-19px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--text-faint);transform:translateY(-50%);transition:background .15s,transform .15s}.dc-city[data-astro-cid-lq7i5isa]:hover{background:var(--bg-elevated);color:var(--text)}.dc-city[data-astro-cid-lq7i5isa]:hover:before{background:var(--accent);transform:translateY(-50%) scale(1.3)}.dc-city[data-astro-cid-lq7i5isa].is-current{background:#f7931e1a;color:var(--cream)}.dc-city[data-astro-cid-lq7i5isa].is-current:before{background:var(--accent);transform:translateY(-50%) scale(1.4)}.dc-city-name[data-astro-cid-lq7i5isa]{font-size:13px;font-weight:500;letter-spacing:-.1px}.dc-city-dates[data-astro-cid-lq7i5isa]{font-size:10px;color:var(--text-faint);letter-spacing:.5px;text-transform:uppercase;font-weight:600;flex-shrink:0}.dc-city[data-astro-cid-lq7i5isa].is-current .dc-city-dates[data-astro-cid-lq7i5isa]{color:var(--accent-soft)}body.drawer-open{overflow:hidden}.search-overlay{position:fixed;inset:0;z-index:2000;pointer-events:none;visibility:hidden}.search-overlay.open{pointer-events:auto;visibility:visible}.so-backdrop{position:absolute;inset:0;background:#000000b3;backdrop-filter:blur(6px);opacity:0;transition:opacity .2s ease}.search-overlay.open .so-backdrop{opacity:1}.so-panel{position:relative;margin:8vh auto 0;max-width:600px;background:var(--bg-card);border:1px solid var(--line);border-radius:14px;overflow:hidden;transform:translateY(-12px);opacity:0;transition:transform .2s ease,opacity .2s ease;box-shadow:0 30px 80px #00000080;max-height:80vh;display:flex;flex-direction:column}.search-overlay.open .so-panel{transform:translateY(0);opacity:1}.so-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.so-icon{font-size:16px;color:var(--text-faint)}.so-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:inherit;font-size:16px;padding:4px 0}.so-input::placeholder{color:var(--text-faint)}.so-close{background:var(--bg-elevated);border:1px solid var(--line);color:var(--text-dim);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .15s}.so-close:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.so-results{overflow-y:auto;flex:1;padding:6px 0}.so-section{padding:10px 16px 4px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-weight:700}.so-item{display:flex;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;color:inherit;cursor:pointer;border-left:2px solid transparent;transition:background .12s}.so-item:hover{background:var(--bg-elevated)}.so-item.is-active{background:var(--bg-elevated);border-left-color:var(--accent)}.so-type{flex-shrink:0;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:3px 7px;border-radius:4px;font-weight:700;color:var(--bg);min-width:48px;text-align:center}.so-type-city{background:var(--gold)}.so-type-hotel{background:var(--accent-soft)}.so-type-poi{background:var(--text-dim)}.so-text{flex:1;min-width:0}.so-title{font-size:14px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.so-title mark{background:#ff6b3540;color:var(--accent-soft);padding:0 2px;border-radius:2px}.so-sub{font-size:11px;color:var(--text-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.so-badge{flex-shrink:0;font-family:var(--font-display);font-size:11px;font-weight:600;background:var(--accent);color:var(--bg);padding:3px 7px;border-radius:4px}.so-empty{padding:30px 20px;text-align:center;color:var(--text-faint);font-size:14px}.so-hint{padding:8px 16px;font-size:11px;color:var(--text-faint);border-top:1px solid var(--line);background:var(--bg);text-align:center}.so-hint-key{display:inline-block;background:var(--bg-card);border:1px solid var(--line);padding:1px 5px;border-radius:3px;font-family:monospace;margin:0 2px;font-size:10px;color:var(--text-dim)}@media(max-width:600px){.so-panel{margin:4vh 8px 0;max-height:90vh}.so-hint{display:none}}.app-main{padding-bottom:calc(80px + env(safe-area-inset-bottom));min-height:100vh}body:not(.is-accueil) .app-main{padding-top:0}.offline-indicator{position:fixed;top:max(env(safe-area-inset-top,0px) + 16px,64px);left:50%;transform:translate(-50%) translateY(-160%);z-index:1600;display:flex;align-items:center;gap:10px;padding:10px 18px 10px 16px;background:#1a0e08f5;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(201,122,122,.7);border-radius:var(--radius-pill);color:var(--text);font-family:inherit;font-size:var(--text-sm);font-weight:500;letter-spacing:.2px;white-space:nowrap;box-shadow:var(--shadow-lg),0 0 0 1px #0006;transition:transform var(--duration-slow) var(--ease-out);cursor:pointer;-webkit-tap-highlight-color:transparent;max-width:calc(100vw - 24px)}.offline-indicator.show{transform:translate(-50%) translateY(0)}.offline-indicator:active{transform:translate(-50%) translateY(0) scale(.97)}.offline-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.offline-indicator.is-offline .offline-dot{background:var(--rose);box-shadow:0 0 12px #c97a7acc;animation:offline-pulse 1.4s ease-in-out infinite}.offline-indicator.is-online{border-color:#78c88cb3}.offline-indicator.is-online .offline-dot{background:#7ed09a;box-shadow:0 0 12px #7ed09ab3}@keyframes offline-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.9)}}@media(prefers-reduced-motion:reduce){.offline-indicator{transition:none}.offline-indicator .offline-dot{animation:none}}
