:root{--bg: #ffffff;--surface: #ffffff;--surface-2: #f2f2f7;--ink: #0b0b0f;--muted: #6e6e73;--line: rgba(60, 60, 67, .14);--accent: #0f9fda;--brand-blue: #1cb4e9;--brand-green: #19a665;--on-accent: #ffffff;--accent-soft: #e3f4fc;--good: #19a665;--gold: #b57a1e;--gold-soft: #f7efdd;--danger: #d63a2f;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 8px 24px rgba(0, 0, 0, .05);--tabbar-bg: rgba(255, 255, 255, .85);--radius: 20px;--radius-s: 14px}.dark{--bg: #000000;--surface: #1c1c1e;--surface-2: #2c2c2e;--ink: #ffffff;--muted: #98989e;--line: rgba(84, 84, 88, .55);--accent: #3ec2f5;--brand-blue: #3ec2f5;--brand-green: #2fca85;--on-accent: #04222e;--accent-soft: #0d2f3f;--good: #2fca85;--gold: #e2b063;--gold-soft: #2e2716;--danger: #ff6b5e;--shadow: 0 1px 3px rgba(0, 0, 0, .5);--tabbar-bg: rgba(18, 18, 20, .85)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif;font-size:15.5px;line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%;display:block}.screen{max-width:560px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 16px 32px}.hero-title{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:6px 0 2px}.hero-sub{color:var(--muted);margin:0 0 14px;font-size:13.5px}.section-label{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:16px 0 8px}.field-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.field-row{display:flex;flex-direction:column;gap:2px;padding:13px 18px;border-bottom:1px solid var(--line)}.field-row:last-child{border-bottom:0}.field-row label{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field-row select,.field-row input{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:transparent;color:var(--ink);font-size:16.5px;font-weight:600;padding:2px 0;width:100%}.field-split{display:grid;grid-template-columns:1fr 1fr}.field-split .field-row:first-child{border-right:1px solid var(--line)}.field-split.kids-ages{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.field-card{overflow:visible}.field-card>.field-row:first-child,.field-card>.field-split:first-child .field-row:first-child{border-top-left-radius:var(--radius)}.field-card>.field-split:first-child .field-row:last-child{border-top-right-radius:var(--radius)}.field-card.compact .field-row{padding:8px 14px;gap:1px}.field-card.compact .field-row label{font-size:10px;letter-spacing:.05em}.field-card.compact .field-row select,.field-card.compact .field-row input{font-size:16px;font-weight:600;padding:1px 0}.combo{position:relative}.combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px #0000002e;max-height:230px;overflow-y:auto}.combo-list button{display:block;width:100%;text-align:left;padding:12px 14px;font-size:16px;border-bottom:1px solid var(--line)}.combo-list button:last-child{border-bottom:0}.combo-list button:active{background:var(--surface-2)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:7px 13px;border-radius:999px;background:var(--surface-2);border:0;font-size:13.5px;font-weight:600;color:var(--ink);transition:background .15s,color .15s}.chip.on{background:var(--accent);color:var(--on-accent)}.cta{display:flex;align-items:center;justify-content:center;width:100%;height:48px;margin-top:16px;border-radius:14px;background:var(--accent);color:var(--on-accent);font-size:15.5px;font-weight:650;letter-spacing:-.01em}.cta:active{opacity:.8}.cta:disabled{opacity:.55}.summary-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-2);border-radius:var(--radius-s);padding:12px 16px;margin-bottom:14px}.summary-bar .t{font-weight:700;font-size:16px}.summary-bar .d{color:var(--muted);font-size:13.5px}.summary-bar .edit{color:var(--accent);font-weight:650;font-size:14px;white-space:nowrap}.progress-track{height:3px;border-radius:2px;background:var(--line);overflow:hidden;margin:4px 0 16px}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .6s ease}.search-note{color:var(--muted);font-size:13.5px;text-align:center;margin:10px 0 16px}.hotel-card{width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:16px}.hotel-card .photo{position:relative;aspect-ratio:16 / 10;background:var(--surface-2)}.hotel-card .photo img{width:100%;height:100%;object-fit:cover}.badge-stars{position:absolute;top:12px;left:12px;background:#0c1211b8;color:#fff;font-size:12.5px;font-weight:650;padding:4px 10px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hotel-card .body{padding:14px 16px 16px}.hotel-card .name{font-size:16.5px;font-weight:650;letter-spacing:-.01em}.hotel-card .where{color:var(--muted);font-size:13.5px;margin-top:2px}.hotel-card .foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:10px}.price{font-size:16.5px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.price .from{font-size:13px;font-weight:600;color:var(--muted);margin-right:4px}.tours-count{color:var(--muted);font-size:13.5px}.rating-pill{display:inline-block;background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:8px;font-variant-numeric:tabular-nums}.skeleton{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:16px;background:var(--surface)}.sk-photo{aspect-ratio:16 / 10}.sk-line{height:14px;border-radius:7px;margin:12px 16px}.sk-line.short{width:45%}.sk-photo,.sk-line{background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk-photo,.sk-line{animation:none}}.gallery{display:flex;gap:8px;margin:-16px -16px 0;padding:0 16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.gallery img{flex:0 0 100%;width:100%;aspect-ratio:16 / 11;object-fit:cover;border-radius:0 0 var(--radius) var(--radius);scroll-snap-align:center;background:var(--surface-2)}.gallery.multi img{flex:0 0 92%;border-radius:var(--radius);margin-top:4px}.photo-count{text-align:center;color:var(--muted);font-size:12.5px;margin-top:8px}.hotel-head{padding:18px 0 4px}.hotel-head h1{font-size:22px;font-weight:700;letter-spacing:-.015em;margin:0 0 4px;line-height:1.2}.hotel-head .meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px;flex-wrap:wrap}.descr{color:var(--ink);font-size:14.5px}.descr.clamped{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.more-btn{color:var(--accent);font-weight:650;font-size:14px;margin-top:4px}.tour-row{width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:13px 16px;margin-bottom:10px;cursor:pointer}.tour-row:active{background:var(--surface-2)}.tour-row .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.tour-row .when{font-weight:650;font-size:15px}.tour-row .spec{color:var(--muted);font-size:13.5px;margin-top:3px}.tour-row .op{color:var(--muted);font-size:12.5px;margin-top:2px}.tag-promo{display:inline-block;background:var(--gold-soft);color:var(--gold);font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:6px;margin-left:6px;vertical-align:1px}.flights-box{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;font-size:14px}.flights-box .final{font-size:17px;font-weight:750;font-variant-numeric:tabular-nums}.flight-leg{color:var(--muted);margin-top:6px}.hint-err{color:var(--danger);font-size:13.5px}.spinner{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block;vertical-align:-4px;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s}}.empty{text-align:center;color:var(--muted);padding:40px 20px}.date-field{width:100%;text-align:left;background:transparent;cursor:pointer}.date-field .date-val{font-size:16px;font-weight:600;color:var(--ink)}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#00000073;display:flex;align-items:flex-end;justify-content:center}.cal-sheet{width:100%;max-width:560px;max-height:88vh;background:var(--bg);border-radius:22px 22px 0 0;display:flex;flex-direction:column;overflow:hidden}@media(prefers-reduced-motion:no-preference){.cal-sheet{animation:cal-up .28s cubic-bezier(.22,1,.36,1)}@keyframes cal-up{0%{transform:translateY(100%)}to{transform:none}}}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px}.cal-title{font-weight:800;font-size:19px;letter-spacing:-.01em}.cal-sub{color:var(--accent);font-size:13.5px;font-weight:600;margin-top:2px}.cal-close{width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:14px}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:6px 12px;border-bottom:1px solid var(--line)}.cal-weekdays span{text-align:center;font-size:11px;font-weight:650;color:var(--muted);text-transform:uppercase}.cal-scroll{flex:1;overflow-y:auto;padding:6px 12px 12px}.cal-month{margin-top:14px}.cal-month-name{font-weight:700;font-size:15px;margin:4px 4px 8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-day{aspect-ratio:1;border-radius:10px;font-size:15px;font-weight:600;color:var(--ink);display:flex;align-items:center;justify-content:center}.cal-day.disabled{color:var(--line)}.cal-day.free:active{background:var(--surface-2)}.cal-day.in{background:var(--accent-soft);border-radius:0}.cal-day.start{background:var(--accent);color:var(--on-accent);border-radius:10px 0 0 10px}.cal-day.end{background:var(--accent);color:var(--on-accent);border-radius:0 10px 10px 0}.cal-day.start.end{border-radius:10px}.cal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.cal-hint{color:var(--muted);font-size:12.5px}.cal-foot .cta.small{margin:0;width:auto;padding:0 26px}.hs-toast{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 30px #00000038;padding:12px 14px}@media(prefers-reduced-motion:no-preference){.hs-toast{animation:hs-in .3s cubic-bezier(.22,1,.36,1)}@keyframes hs-in{0%{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}}.hs-logo{width:42px;height:42px;border-radius:11px;flex:0 0 auto}.hs-text{display:flex;flex-direction:column;flex:1;min-width:0}.hs-text b{font-size:14px;font-weight:700}.hs-text span{font-size:12px;color:var(--muted);line-height:1.3}.hs-add{flex:0 0 auto;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:13.5px;padding:9px 15px;border-radius:11px}.hs-close{flex:0 0 auto;width:26px;height:26px;border-radius:50%;color:var(--muted);font-size:13px}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:var(--bg)}.splash.done{animation:iris .48s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes iris{0%{clip-path:circle(120% at 50% 45%);opacity:1}to{clip-path:circle(0% at 50% 45%);opacity:.6;visibility:hidden}}.aurora{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.aurora i{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(70px);opacity:.35;will-change:transform}.aurora .b1{background:#1cb4e9;top:-20%;left:-15%;animation:drift1 12s ease-in-out infinite alternate}.aurora .b2{background:#19a665;bottom:-25%;right:-10%;animation:drift2 15s ease-in-out infinite alternate}.aurora .b3{background:#7fd4f5;top:35%;left:45%;width:40vmax;height:40vmax;animation:drift1 18s ease-in-out infinite alternate-reverse}@keyframes drift1{to{transform:translate(12vw,8vh) scale(1.15)}}@keyframes drift2{to{transform:translate(-10vw,-6vh) scale(.9)}}.splash-center{position:relative;text-align:center}.splash-img{width:84px;height:84px;border-radius:50%;margin:0 auto 14px;display:block;box-shadow:0 6px 24px #1cb4e959;animation:logo-pop .55s cubic-bezier(.22,1.4,.36,1) both}@keyframes logo-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.splash-logo{font-size:27px;font-weight:800;letter-spacing:-.01em}.splash-logo .b{color:var(--brand-blue)}.splash-logo .g{color:var(--brand-green)}.splash-logo span{display:inline-block;animation:wave .9s cubic-bezier(.36,.07,.19,.97) both;animation-delay:calc(var(--i) * 55ms + .2s)}@keyframes wave{0%{transform:translateY(0)}30%{transform:translateY(-14px)}55%{transform:translateY(4px)}to{transform:translateY(0)}}.splash-tag{color:var(--muted);font-size:14px;margin-top:4px;letter-spacing:.04em}.rise{opacity:0;animation:rise .42s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i, 0) * 70ms + .5s)}@keyframes rise{0%{opacity:0;transform:translateY(26px) scale(.99)}to{opacity:1;transform:none}}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;margin-bottom:16px}.brand-row{display:flex;align-items:center;gap:10px}.brand-mini{width:36px;height:36px;border-radius:50%;box-shadow:var(--shadow);flex:0 0 auto}.head-tools{display:flex;align-items:center;gap:8px;flex:0 0 auto}.theme-toggle{width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.cur-switch{display:flex;background:var(--surface-2);border-radius:999px;padding:3px;flex:0 0 auto}.cur-switch button{padding:6px 12px;border-radius:999px;font-size:13.5px;font-weight:650;color:var(--muted);white-space:nowrap;min-width:34px}.cur-switch button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.watch-btn{display:flex;align-items:center;justify-content:center;width:100%;height:46px;margin-top:10px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:14.5px;font-weight:650}.watch-btn:disabled{opacity:.85}.step-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-top:14px}.step-card.ok{border-color:var(--good, #2f7d4f)}.step-head{display:flex;gap:12px;align-items:flex-start}.step-num{flex:0 0 28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}.step-card.ok .step-num{background:var(--accent);color:var(--on-accent)}.step-head .t{font-weight:700}.step-head .d{color:var(--muted);font-size:13.5px}.offer-check{display:flex;align-items:flex-start;gap:9px;margin:12px 2px 2px;font-size:13px;color:var(--muted);line-height:1.4}.offer-check input{width:19px;height:19px;margin-top:1px;flex:0 0 auto;accent-color:var(--accent)}.slot-row{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;margin-bottom:8px}.slot-row.ok{border-color:var(--good)}.slot-ava{flex:0 0 38px;height:38px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:18px}.slot-label{font-weight:650;font-size:14.5px}.slot-doc{font-size:12.5px;margin-top:1px}.slot-doc.muted{color:var(--muted)}.slot-actions{display:flex;gap:6px;flex:0 0 auto}.slot-btn{background:var(--accent);color:var(--on-accent);font-size:12.5px;font-weight:650;padding:8px 12px;border-radius:10px;white-space:nowrap}.slot-btn.ghost{background:var(--surface-2);color:var(--ink)}.slot-edit{flex:0 0 32px;height:32px;border-radius:50%;background:var(--surface-2);color:var(--muted)}.pick-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;background:#00000073;display:flex;align-items:flex-end;justify-content:center}.pick-card{width:100%;max-width:560px;background:var(--bg);border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.pick-item{display:block;width:100%;text-align:left;padding:13px 14px;border-radius:12px;background:var(--surface-2);font-size:14.5px;margin-bottom:8px}.pick-item.cancel{background:transparent;color:var(--muted);text-align:center}.confirm-sub{color:var(--accent);font-size:13.5px;font-weight:600;margin:2px 0 12px}.confirm-fields{display:flex;flex-direction:column;gap:10px}.confirm-fields>div{display:flex;flex-direction:column;gap:3px}.confirm-fields span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.confirm-fields input{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:16px;font-weight:600;padding:10px 12px}.scan-toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13.5px;z-index:96}.scan-toast .spinner{border-top-color:var(--bg)}.pay-breakdown{background:var(--surface-2);border-radius:12px;padding:12px 14px;margin:12px 0 4px;font-size:13.5px}.pay-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0;color:var(--muted)}.pay-breakdown>div b{color:var(--ink);font-variant-numeric:tabular-nums}.pay-breakdown .total{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;color:var(--ink);font-weight:700}.pay-breakdown .total b{font-size:16px}.offer-check a{color:var(--accent);font-weight:650}.trip-actions{display:flex;gap:10px}.trip-actions .cta.small{margin-top:10px}.chat-tours.deals{margin:0 -16px;padding:2px 16px 6px}.deals-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.deals-grid .chat-tour-card{flex:none;width:100%}.search-pill{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);padding:12px 18px;margin-top:4px}.search-pill .t{font-weight:700;font-size:14.5px}.search-pill .d{color:var(--muted);font-size:12px;margin-top:1px}.pill-edit{flex:0 0 34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--muted);display:flex;align-items:center;justify-content:center}.collapse-btn{display:flex;align-items:center;gap:6px;margin:10px auto 0;color:var(--muted);font-size:13.5px;font-weight:600}.section-label.flame{display:flex;align-items:center;gap:6px;color:var(--danger)}.sub-card{background:var(--accent-soft);border-radius:var(--radius);overflow:hidden}.sub-head{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 16px}.sub-head .t{display:block;font-weight:700;font-size:14.5px}.sub-head .d{display:block;color:var(--muted);font-size:12.5px}.sub-bell{flex:0 0 38px;height:38px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.sub-body{padding:0 14px 14px}.traveller-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;margin-bottom:8px}.traveller-row .name{font-weight:650;font-size:15px}.traveller-row .spec{color:var(--muted);font-size:13px;margin-top:2px}.traveller-del{flex:0 0 30px;height:30px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:13px}.trip-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.status-chip{flex:0 0 auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}.status-chip.paid{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.status-chip.wait{background:var(--gold-soft);color:var(--gold)}.status-chip.new{background:var(--accent-soft);color:var(--accent)}.avatar{flex:0 0 38px;height:38px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13.5px;letter-spacing:.02em}.empty-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;text-align:center}.empty-card .t{font-weight:700;font-size:16px;margin-top:4px}.empty-card .d{color:var(--muted);font-size:13.5px;margin-top:4px}.empty-icon{width:68px;height:68px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 6px}.cam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000}.cam-overlay video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.cam-frame{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(88vw,560px);aspect-ratio:1.42 / 1;border:2.5px solid rgba(255,255,255,.95);border-radius:14px;box-shadow:0 0 0 100vmax #0000008c;display:flex;align-items:flex-end}.cam-mrz{width:100%;margin:0;padding:8px 10px 10px;border-top:2px dashed rgba(255,255,255,.75);color:#ffffffe6;font-size:11.5px;text-align:center;letter-spacing:.03em}.cam-hint{position:absolute;top:calc(44% + min(44vw,280px) / 1.42 + 26px);left:0;right:0;text-align:center;color:#fff;font-size:14px;text-shadow:0 1px 4px rgba(0,0,0,.6)}.cam-close{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:38px;height:38px;border-radius:50%;background:#00000080;color:#fff;font-size:16px}.cam-shutter{position:absolute;bottom:calc(30px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:68px;height:68px;border-radius:50%;background:#fff;border:5px solid rgba(255,255,255,.35);background-clip:padding-box}.cam-shutter:disabled{opacity:.5}.cam-shutter:active{transform:translate(-50%) scale(.92)}.voice-cta{display:flex;align-items:center;justify-content:center}.discount-pill{position:absolute;top:10px;right:10px;background:var(--danger);color:#fff;font-size:12px;font-weight:750;padding:3px 8px;border-radius:8px}.price-old{color:var(--muted);font-size:12.5px;font-weight:550;text-decoration:line-through;margin-left:7px}.voice-banner{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-top:10px;padding:13px 16px;border-radius:14px;background:var(--accent-soft);color:var(--ink);font-size:14px;line-height:1.35}.voice-banner b{font-weight:700}.mic-dot{flex:0 0 38px;height:38px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:17px}.voice-cta{margin:4px 0 2px;background:var(--accent)}.app-content{padding-bottom:76px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;background:var(--tabbar-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:10}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 14px;color:var(--muted);font-size:11.5px;font-weight:600;border-radius:10px}.tab.on{color:var(--accent)}.lead-tour{background:var(--surface-2);border-radius:var(--radius-s);padding:14px 16px}.lead-tour .name{font-weight:700;font-size:16px}.lead-tour .spec{color:var(--muted);font-size:13.5px;margin-top:3px}.lead-tour .foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px}.fineprint{color:var(--muted);font-size:12.5px;text-align:center;margin-top:10px}.cta.small{height:44px;font-size:15px;margin-top:14px}.done-box{text-align:center;padding-top:40px}.done-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center}.chat-fab{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #00000038;z-index:15}.chat-fab:active{transform:scale(.94)}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--bg);display:flex;flex-direction:column}@media(prefers-reduced-motion:no-preference){.chat-overlay{animation:chat-in .22s ease-out}@keyframes chat-in{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.chat-header .t{font-weight:700;font-size:17px}.chat-header .d{color:var(--muted);font-size:12.5px}.chat-close{width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:15px;display:flex;align-items:center;justify-content:center}.chat-body{flex:1;overflow-y:auto;padding:14px 16px}.chat-footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}.chat-entry{display:flex;flex-direction:column;gap:8px}.chat-tours{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory;scrollbar-width:none}.chat-tours::-webkit-scrollbar{display:none}.chat-tour-card{flex:0 0 210px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden;scroll-snap-align:start}.chat-tour-card .photo{position:relative;aspect-ratio:16 / 10;background:var(--surface-2)}.chat-tour-card .photo img{width:100%;height:100%;object-fit:cover}.chat-tour-card .body{padding:10px 12px 12px}.chat-tour-card .name{font-size:13.5px;font-weight:650;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-tour-card .where{color:var(--muted);font-size:12px;margin-top:2px}.chat-tour-card .price{font-size:15.5px;margin-top:6px}.chat-tour-card .open-link{display:inline-block;color:var(--accent);font-size:13px;font-weight:650;margin-top:6px}.chat-log{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.chat-bubble{max-width:85%;padding:11px 14px;font-size:14.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.chat-bubble.assistant{align-self:flex-start;background:var(--surface-2);color:var(--ink);border-radius:16px 16px 16px 5px}.chat-bubble.user{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-radius:16px 16px 5px}.chat-bubble.typing{color:var(--muted)}.chat-bubble a{color:var(--accent);font-weight:650;text-decoration:underline;text-underline-offset:2px}.chat-bubble.user a{color:var(--on-accent)}.chat-input{display:flex;gap:8px;align-items:center}.chat-input input{flex:1;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:15.5px;padding:12px 18px}.send-btn{flex:0 0 44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.send-btn:disabled{opacity:.4}.mic-btn{flex:0 0 44px;height:44px;border-radius:50%;background:var(--surface-2);color:var(--ink);display:flex;align-items:center;justify-content:center}.mic-btn.rec{background:var(--danger);color:#fff}@media(prefers-reduced-motion:no-preference){.mic-btn.rec{animation:mic-pulse 1.2s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #d63a2f66}50%{box-shadow:0 0 0 10px #d63a2f00}}}.mic-btn:disabled{opacity:.5}.trip-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:14px}.trip-card .name{font-weight:700;font-size:16px}.trip-card .spec{color:var(--muted);font-size:13.5px;margin-top:3px}.trip-card .foot{margin-top:6px}.timeline{list-style:none;margin:14px 0 0;padding:0}.timeline li{position:relative;padding:0 0 14px 26px;color:var(--muted);font-size:14px}.timeline li:before{content:"";position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;border:2.5px solid var(--line);background:var(--surface)}.timeline li.active{color:var(--ink);font-weight:650}.timeline li.active:before{border-color:var(--accent);background:var(--accent)}.timeline li:not(:last-child):after{content:"";position:absolute;left:7px;top:20px;bottom:0;width:1.5px;background:var(--line)}.error-banner{background:var(--surface);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-s);padding:12px 16px;margin:12px 0;font-size:14px}
