.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{display:flex;align-items:center;gap:18px;min-height:64px}.brand{display:flex;align-items:center;gap:8px;font-weight:800;letter-spacing:-.02em}.brand-logo{width:34px;height:34px;object-fit:contain;display:block}.brand-name{font-size:18px;white-space:nowrap}.nav{display:none;gap:4px;margin-left:8px}.nav-link{padding:8px 13px;border-radius:999px;font-weight:600;font-size:14px;color:var(--ink-2);transition:background .15s ease,color .15s ease}.nav-link:hover{background:var(--surface-2)}.nav-link.active{background:var(--brand-soft);color:var(--brand-ink)}.me{display:flex;align-items:center;gap:7px;margin-left:auto;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.me-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.me-input{border:none;outline:none;width:90px;background:transparent;font-weight:600;font-size:13px}@media(min-width:760px){.nav{display:flex}}.main{flex:1;padding-bottom:80px}@media(min-width:760px){.main{padding-bottom:40px}}.footer{border-top:1px solid var(--line);padding:22px 0;margin-top:10px}.hero{padding:56px 0 40px}.hero h1{font-size:clamp(32px,5vw,52px);line-height:1.05;letter-spacing:-.03em;font-weight:850;max-width:16ch}.hero p.sub{font-size:clamp(16px,2vw,19px);color:var(--ink-2);max-width:52ch;margin-top:16px}.hero-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}.hero-modules{display:grid;gap:14px;grid-template-columns:1fr;margin-top:40px}@media(min-width:680px){.hero-modules{grid-template-columns:repeat(2,1fr)}}@media(min-width:980px){.hero-modules{grid-template-columns:repeat(4,1fr)}}.module{padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.module:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.module .ico{font-size:24px}.module h3{font-size:16px;margin:10px 0 6px}.module p{font-size:13px;color:var(--muted)}.home-section{padding:30px 0}.dest-grid{display:grid;gap:18px;grid-template-columns:1fr}@media(min-width:560px){.dest-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.dest-grid{grid-template-columns:repeat(3,1fr)}}.dest-card{overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.dest-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.dest-hero{height:132px;position:relative;display:flex;align-items:flex-end;padding:12px}.dest-hero .emoji{position:absolute;top:10px;left:12px;font-size:26px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.dest-hero .fav{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;background:#ffffffe6;display:grid;place-items:center;font-size:15px}.dest-hero .region-tag{background:#00000073;color:#fff;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px}.dest-body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1}.dest-body h3{font-size:17px;letter-spacing:-.01em}.dest-body .country{font-size:13px;color:var(--muted)}.dest-body .blurb{font-size:13px;color:var(--ink-2)}.dest-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:13px}.budget-dots{letter-spacing:2px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:18px 0 22px}.search{flex:1;min-width:220px;position:relative}.search input{padding-left:38px}.search .mag{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted)}.filter-row{display:flex;gap:8px;flex-wrap:wrap}.page-head{padding:30px 0 6px}.page-head h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.03em;font-weight:850}.page-head p{color:var(--ink-2);margin-top:8px;max-width:60ch}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:8px}.breadcrumb a:hover{color:var(--brand)}.detail-hero{border-radius:var(--radius);padding:40px 26px;color:#fff;position:relative;overflow:hidden}.detail-hero .emoji{font-size:44px}.detail-hero h1{font-size:clamp(28px,4vw,42px);margin-top:8px;letter-spacing:-.02em}.detail-hero .loc{font-weight:600;opacity:.95}.detail-cols{display:grid;gap:22px;grid-template-columns:1fr;margin-top:24px}@media(min-width:880px){.detail-cols{grid-template-columns:1.6fr 1fr}}.info-card{padding:20px}.info-card h3{font-size:16px;margin-bottom:12px}.hl-list li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.hl-list li:last-child{border:none}.hl-list .dot{color:var(--brand)}.planner-grid{display:grid;gap:22px;grid-template-columns:1fr}@media(min-width:920px){.planner-grid{grid-template-columns:380px 1fr;align-items:start}}.planner-form{padding:20px;position:sticky;top:80px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.itinerary-empty{padding:50px 24px;text-align:center;border:1.5px dashed var(--line);border-radius:var(--radius);color:var(--muted)}.day-card{padding:0;overflow:hidden;margin-bottom:16px}.day-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}.day-badge{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;font-weight:800;display:grid;place-items:center}.day-head h4{font-size:15px}.act{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.act:last-child{border:none}.act .time{font-weight:700;color:var(--brand-ink);font-variant-numeric:tabular-nums;min-width:48px}.act .a-title{font-weight:600}.act .a-detail{font-size:13px;color:var(--muted)}.act .a-cost{margin-left:auto;font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}.trip-grid{display:grid;gap:18px;grid-template-columns:1fr}@media(min-width:620px){.trip-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.trip-grid{grid-template-columns:repeat(3,1fr)}}.trip-card{overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.trip-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.trip-cover{height:90px;position:relative;display:flex;align-items:center;padding:0 16px}.trip-cover .emoji{font-size:30px}.trip-card .tc-body{padding:14px 16px}.trip-card h3{font-size:17px}.trip-card .tc-meta{font-size:13px;color:var(--muted);margin-top:4px}.tc-stats{display:flex;gap:12px;margin-top:12px;font-size:12px;color:var(--ink-2)}.tc-stats span{display:inline-flex;gap:4px;align-items:center}.empty-state{text-align:center;padding:60px 20px}.empty-state .big{font-size:46px}.empty-state h2{margin:12px 0 6px}.trip-detail-head{border-radius:var(--radius);padding:28px 24px;color:#fff}.tabs{display:flex;gap:6px;margin:22px 0 18px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tab{padding:10px 14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--brand-ink);border-color:var(--brand)}.panel{padding:4px 0}.checklist-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;background:var(--surface)}.checklist-item.done .ci-text{text-decoration:line-through;color:var(--muted)}.checkbox{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line);display:grid;place-items:center;cursor:pointer;flex-shrink:0}.checkbox.on{background:var(--accent);border-color:var(--accent);color:#fff}.ci-text{flex:1}.budget-bar{height:12px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:10px 0 4px}.budget-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--brand))}.expense-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:8px;background:var(--surface)}.expense-row .ex-cat{font-size:12px;color:var(--muted)}.idea-card{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;background:var(--surface);display:flex;gap:14px;align-items:center}.vote-btn{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 12px;cursor:pointer;font-weight:700;min-width:50px}.vote-btn.voted{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}.vote-btn small{font-weight:500;font-size:10px;color:var(--muted)}.idea-card.voted-top{border-color:var(--brand)}.collab-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px}.inline-add{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.inline-add .input{flex:1;min-width:160px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;background:var(--surface);border-top:1px solid var(--line)}.tabbar a{flex:1;text-align:center;padding:9px 0 12px;font-size:11px;font-weight:600;color:var(--muted)}.tabbar a.active{color:var(--brand-ink)}.tabbar a .ti{font-size:19px;display:block}@media(min-width:760px){.tabbar{display:none}}:root{--bg: #f7f8fb;--surface: #ffffff;--surface-2: #f1f3f9;--ink: #11141a;--ink-2: #3a4150;--muted: #79839a;--line: #e6e9f0;--brand: #2563eb;--brand-ink: #1d4ed8;--brand-soft: #e8f0fe;--accent: #14b8a6;--warn: #f59e0b;--danger: #ef4444;--radius: 16px;--radius-sm: 10px;--shadow: 0 10px 30px -12px rgba(20, 30, 60, .18);--shadow-sm: 0 4px 14px -8px rgba(20, 30, 60, .22);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--maxw: 1160px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;font-size:15px}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}img,svg{display:block;max-width:100%}ul{list-style:none}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;transition:transform .15s ease,background .2s ease,box-shadow .2s ease,color .2s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 8px 20px -10px #2563ebb3}.btn-primary:hover{background:var(--brand-ink)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:hover{background:var(--surface-2)}.btn-soft{background:var(--brand-soft);color:var(--brand-ink)}.btn-soft:hover{background:#d9e6fd}.btn-danger{background:transparent;color:var(--danger);border-color:transparent}.btn-danger:hover{background:#fee2e2}.btn-sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.input,.select,.textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .2s ease,box-shadow .2s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.textarea{resize:vertical;min-height:84px}.label{display:block;font-weight:600;font-size:13px;margin-bottom:6px;color:var(--ink-2)}.field{margin-bottom:16px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.chip:hover{border-color:var(--brand)}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip.static{cursor:default;background:var(--surface-2);border-color:transparent;color:var(--ink-2)}.chip.static:hover{border-color:transparent}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px}.wrap{flex-wrap:wrap}.grid{display:grid;gap:18px}.section-title{font-size:22px;font-weight:800;letter-spacing:-.02em}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.pill-stars{color:var(--warn);font-weight:700}[data-theme=dark]{--bg: #0f1115;--surface: #171a21;--surface-2: #1f242e;--ink: #e9edf5;--ink-2: #c3cad6;--muted: #8b94a6;--line: #283041;--brand: #3b82f6;--brand-ink: #93c5fd;--brand-soft: #1b2740;--accent: #2dd4bf;--shadow: 0 14px 36px -16px rgba(0, 0, 0, .7);--shadow-sm: 0 6px 18px -10px rgba(0, 0, 0, .7)}.controls{display:flex;align-items:center;gap:8px;margin-left:auto}.seg-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:7px 26px 7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2379839a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;font-weight:600;font-size:13px;cursor:pointer}.icon-btn{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;display:grid;place-items:center;font-size:16px;transition:background .15s ease,transform .15s ease}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.94)}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer}.user-chip .avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;background:var(--brand)}.user-chip .uname{font-weight:600;font-size:13px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:80}.menu .mi{display:block;width:100%;text-align:left;padding:9px 11px;border-radius:9px;font-size:13px;font-weight:500;background:none;border:none;cursor:pointer;color:var(--ink)}.menu .mi:hover{background:var(--surface-2)}.menu .mhead{padding:8px 11px}.menu .mhead b{display:block;font-size:14px}.menu .mhead small{color:var(--muted);font-size:12px}.pos-rel{position:relative}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0a0e168c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:26px}.modal h2{font-size:21px;letter-spacing:-.02em}.modal .sub{color:var(--muted);font-size:14px;margin-top:4px;margin-bottom:18px}.modal .x{float:right;border:none;background:none;font-size:20px;cursor:pointer;color:var(--muted)}.btn-google{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--ink)}.btn-google:hover{background:var(--surface-2)}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:16px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-switch{text-align:center;font-size:13px;color:var(--muted);margin-top:16px}.auth-switch button{background:none;border:none;color:var(--brand-ink);font-weight:600;cursor:pointer}.auth-error{background:#fee2e2;color:#991b1b;border-radius:10px;padding:9px 12px;font-size:13px;margin-bottom:14px}[data-theme=dark] .auth-error{background:#3b1d1d;color:#fca5a5}.proto-note{font-size:12px;color:var(--muted);text-align:center;margin-top:14px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:rise .4s ease both}
