:root{--background:#f2f3f7;--foreground:#182446;--surface:#fff;--border:#d8ddeb;--accent:#ddb45c;--accent-strong:#c6973d;--accent-text:#1d2a4f;--navy:#142b5c;--navy-2:#1a336b;--danger:#b42318}html,body{max-width:100vw}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Avenir Next,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif}h2{font-weight:700}*{box-sizing:border-box;margin:0;padding:0}a{color:var(--navy-2);text-decoration:none;transition:color .16s}a:hover{color:var(--navy);text-decoration:none}a.button-link:hover{text-decoration:none}.container{background:var(--surface);border:1px solid #d6dced;border-radius:18px;gap:18px;max-width:1080px;margin:36px auto;padding:28px;display:grid;box-shadow:0 10px 24px #142b5c12}.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.form{gap:10px;display:grid}.form input,.form select,.form textarea,.form button,.secondary{font:inherit;border:1px solid var(--border);background:#fff;border-radius:12px;padding:10px 12px}.form button,.secondary{cursor:pointer}.actions button{font:inherit;background:linear-gradient(180deg,#efd089 0%,var(--accent)100%);color:var(--accent-text);cursor:pointer;border:1px solid #0000;border-radius:12px;padding:10px 12px;font-weight:700}.actions a.primary{font:inherit;background:linear-gradient(180deg,#efd089 0%,var(--accent)100%);color:var(--accent-text);border:1px solid #0000;border-radius:12px;padding:10px 14px;font-weight:700}.actions a.primary:hover{filter:brightness(.96);text-decoration:none}.actions .secondary{border-color:var(--border);color:var(--foreground);background:0 0}.form textarea{resize:vertical;min-height:96px}.form button{background:linear-gradient(180deg,#efd089 0%,var(--accent)100%);color:var(--accent-text);border-color:#0000;font-weight:700}.secondary{color:var(--foreground);background:#f7f9ff}.button-link.primary,button.primary{background:linear-gradient(180deg,#efd089 0%,var(--accent)100%);color:var(--accent-text);border:1px solid #c29540;font-weight:700}.button-link.primary:hover,button.primary:hover{filter:brightness(.96)}.app-shell{min-height:100vh}.app-content{padding:0 16px 32px}.app-topbar{z-index:40;background:var(--navy);color:#eaf0ff;border-bottom:1px solid #ffffff1f;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:12px 18px;display:grid;position:sticky;top:0}.brand-link{color:#f3f7ff;letter-spacing:.01em;align-items:center;gap:10px;font-weight:700;display:inline-flex}.brand-logo{object-fit:cover;border-radius:8px;width:34px;height:34px}.brand-link:hover{color:#fff}.brand-mark{background:linear-gradient(180deg,#efd089 0%,var(--accent)100%);border-radius:60% 60% 70% 70%/70% 70% 45% 45%;width:22px;height:26px;display:inline-block;position:relative}.brand-mark:after{content:"";border-left:2px solid #173166;border-radius:60%;width:10px;height:15px;position:absolute;top:5px;left:6px;transform:rotate(18deg)}.app-topbar-nav{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.app-topbar-nav a{color:#dbe4ff;font-size:.95rem;font-weight:600}.app-topbar-nav a:hover{color:#fff}.app-topbar-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.app-topbar-actions a,.app-topbar-actions button{color:#eef3ff}.app-topbar-actions .button-link.primary{color:#1d2a4f}.landing-shell{gap:22px}.landing-hero{background:var(--navy);color:#eff4ff;border:1px solid #20407b;border-radius:16px;padding:24px}.landing-kicker{color:#edd08b;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;font-weight:700}.landing-hero h1{margin-top:6px;margin-bottom:10px;font-size:clamp(1.75rem,3.2vw,2.6rem);line-height:1.15}.landing-hero-image{object-fit:cover;border:1px solid #ffffff47;border-radius:12px;width:auto;max-width:100%;height:auto;margin:6px auto;display:block}.landing-hero .actions{margin-top:8px}.user-menu{position:relative}.user-menu-trigger{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0}.user-menu-popover{background:#fff;border:1px solid #d3dbef;border-radius:12px;gap:4px;min-width:150px;padding:6px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 10px 24px #162a531f}.user-menu-popover a,.user-menu-popover button{text-align:left;color:#1e2d55;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:.94rem}.user-menu-popover a:hover,.user-menu-popover button:hover{background:#f2f6ff}.error{color:var(--danger)}.error-banner{color:var(--danger);background:#fff1f0;border:1px solid #f5c2c0;border-radius:10px;padding:10px 12px;font-weight:600}.info-banner{border:1px solid var(--border);background:#f3f7ff;border-radius:10px;padding:10px 12px}.schedule-banner{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.schedule-ontime{color:#1f5a35;background:#edf9f0;border-color:#9fd4b5}.schedule-early{color:#264777;background:#eef4ff;border-color:#aac4ef}.schedule-late{color:#7a4617;background:#fff4e8;border-color:#f3c79a}.admin-grid{gap:24px;display:grid}.admin-form{border:1px solid var(--border);background:#fcfdff;border-radius:12px;padding:16px}.checkbox{align-items:center;gap:8px;display:flex}.checkbox-row{align-items:center;gap:8px;font-size:.95rem;display:flex}.destination-list{gap:12px;display:grid}.destination-card{border:1px solid var(--border);background:#fff;border-radius:12px;gap:8px;padding:14px;display:grid}.admin-dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.admin-dashboard-card{flex-direction:column;gap:.5rem;display:flex}.admin-dashboard-label{color:#5f6b7a;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:700}.admin-dashboard-value{margin:0;font-size:clamp(2rem,4vw,2.8rem);font-weight:800;line-height:1}.stay-place-card{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.visit-section{gap:12px;display:grid}.visit-card-compact{gap:6px}.visit-card--canceled{background:#fff9e6;border-color:#f2d78f}.visit-card--completed{background:#edf9f0;border-color:#9fd4b5}.destination-image{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%;max-height:220px}.admin-destination-media{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.form-image-preview{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%;max-height:260px}.traveler-grid{gap:16px;display:grid}.traveler-filters{border:1px solid var(--border);background:#fcfdff;border-radius:12px;padding:16px}.planner-container{max-width:min(1400px,98vw)}.planner-layout{gap:18px;display:grid}.planner-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.planner-page-header h1{margin:0}.planner-toolbar{border:1px solid var(--border);background:#fcfdff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.planner-toolbar select,.planner-toolbar input{font:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px}.sync-capsule{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px;display:inline-flex}.sync-badge{border:none;border-radius:999px;padding:6px 10px;font-size:.85rem}.sync-local_only{background:#f7f7f9}.sync-pending_sync{background:#fff8e1}.sync-syncing{background:#e9f2ff}.sync-synced{background:#e7f8ef}.sync-error{background:#ffe9e8}.sync-note{color:#3e4b67}.sync-icon-button{color:#17324d;cursor:pointer;background:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.sync-icon-button:hover:not(:disabled){background:#eef5ff}.sync-icon-button:disabled{cursor:not-allowed;opacity:.5}.sync-icon-button svg{width:18px;height:18px}.planner-picker{border:1px solid var(--border);background:#fcfdff;border-radius:12px;gap:10px;padding:12px;display:grid}.planner-destination-card{border:1px solid var(--border);cursor:grab;background:#fff;border-radius:10px;gap:6px;padding:8px;display:grid}.planner-destination-card.compact{width:180px;min-width:180px}.planner-destination-card.full{width:100%}.planner-picker-image{border:1px solid var(--border);object-fit:cover;border-radius:8px;width:100%}.planner-destination-row{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.planner-days-scroll{grid-auto-columns:minmax(320px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.planner-day-card{border:1px solid var(--border);background:#fff;border-radius:12px;align-self:start;gap:12px;min-height:auto;padding:12px;display:grid}.planner-day-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.planner-day-header h3{margin:0}.planner-day-date{color:#52627a;margin:4px 0 0;font-size:.95rem}.planner-day-start-date{justify-items:end;gap:6px;display:grid}.planner-day-start-date label{font-weight:600}.planner-day-start-date input{font:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px}.planner-row{gap:6px;display:grid}.planner-row label{font-weight:600}.planner-row input{font:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px}.planner-activity-time-row{align-items:center;gap:8px;margin-bottom:6px;display:inline-flex}.planner-activity-time{color:#52627a;margin:0;font-size:.85rem}.time-edit-button{border:1px solid var(--border);color:#17324d;cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.time-edit-button:hover{background:#eef5ff}.time-edit-button svg{width:15px;height:15px}.planner-time-editor-grid{gap:8px;display:grid}.planner-time-editor-grid input{font:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px}.planner-vehicle-header{text-align:left;justify-items:start;gap:4px;margin-bottom:2px;display:grid}.planner-vehicle-header h2{color:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;margin:0}.planner-vehicle-header p{color:#556888;margin:0;font-size:clamp(.9rem,1.4vw,1.05rem)}.planner-vehicle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.planner-vehicle-card{text-align:center;color:#1f3b6d;cursor:pointer;background:#fff;border:2px solid #d5d9e2;border-radius:14px;gap:0;padding:10px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid;position:relative}.planner-vehicle-card:hover:not(:disabled){border-color:#7c8dab;transform:translateY(-1px)}.planner-vehicle-card.selected{border-color:#23457a;box-shadow:inset 0 0 0 2px #23457a}.planner-vehicle-card:disabled{cursor:not-allowed;opacity:.7}.planner-vehicle-radio{color:#f1b93c;background:#fffffff0;border:2px solid #3d557e;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:absolute;top:14px;left:14px}.planner-vehicle-radio.selected{background:#23457a;border-color:#f1b93c}.planner-vehicle-radio svg{width:18px;height:18px}.planner-vehicle-image-wrap{background:#f3f4f8;border-radius:10px 10px 0 0;justify-content:center;align-items:center;min-height:102px;display:flex;overflow:hidden}.planner-vehicle-card.selected .planner-vehicle-image-wrap{background:linear-gradient(#2e4f88 0%,#294879 100%)}.planner-vehicle-image{object-fit:contain;width:100%;height:102px}.planner-vehicle-copy{gap:6px;padding:14px 12px 10px;display:grid}.planner-vehicle-copy h3{margin:0;font-size:clamp(.95rem,1.2vw,1.15rem);line-height:1.15}.planner-vehicle-price{color:#d8a129;margin:0;font-size:clamp(.82rem,1vw,.98rem)}.planner-vehicle-price strong{font-size:1.18em;font-weight:700}.planner-current-vehicle-card{background:linear-gradient(#fbfcff 0%,#f2f6fb 100%);border:1px solid #d5d9e2;border-radius:16px;grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:stretch;gap:18px;padding:16px;display:grid}.planner-current-vehicle-image-wrap{background:#eef2f8;border-radius:12px;justify-content:center;align-items:center;min-height:150px;display:flex;overflow:hidden}.planner-current-vehicle-image{object-fit:contain;width:100%;height:150px}.planner-current-vehicle-placeholder{color:#556888;font-size:.95rem}.planner-current-vehicle-copy{text-align:left;align-content:center;gap:8px;display:grid}.planner-current-vehicle-copy h3,.planner-current-vehicle-copy p{margin:0}.planner-flight-matches{gap:8px;display:grid}.planner-flight-match-item{text-align:left}.planner-selected-flight{margin:.5rem 0 .75rem}.planner-selected-stay-place{border:1px solid var(--border);background:#f8fbff;border-radius:10px;margin:.5rem 0 .75rem;padding:10px}.stay-place-capsule{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.stay-place-title-row{align-items:center;gap:8px;display:inline-flex}.stay-place-capsule img{border:1px solid var(--border);object-fit:cover;border-radius:8px}.planner-stay-place-matches{gap:8px;display:grid}.planner-stay-place-match-item{text-align:left}.boundary-capsule{border:1px solid var(--border);border-radius:10px;gap:8px;padding:10px;display:grid}.boundary-capsule-pickup,.boundary-capsule-dropoff{background:#f8fbff}.boundary-capsule-flight{background:#f4f8ff}.boundary-capsule-train{background:#f7fbf6}.boundary-capsule-stay_place{background:#f6fbff}.boundary-capsule-custom_address{background:#fafafa}.boundary-capsule-header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.boundary-time-row{align-items:center;gap:8px;display:inline-flex}.boundary-time-row p,.stay-place-title-row p{margin:0}.flight-card{border:1px solid var(--border-color,#d9e2ec);background:var(--surface-color,#f8fafc);border-radius:12px;padding:.65rem .75rem}.flight-card-compact{padding:.55rem .65rem}.flight-card-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.flight-card-airline{align-items:center;gap:.5rem;display:flex}.flight-card-airline span{opacity:.9;font-size:.85rem}.flight-card-status{opacity:.9;font-size:.8rem;font-weight:600}.flight-card-route,.flight-card-time,.flight-card-meta{margin:.25rem 0 0;font-size:.85rem}.planner-slot{background:#f6f9ff;border:1px dashed #9eb0d6;border-radius:10px;gap:8px;padding:10px;display:grid}.planner-slot-header{gap:4px;display:grid}.planner-slot-header p{margin:0}.planner-slot-header .planner-activity-time-row{justify-content:space-between}.planner-slot-image{border:1px solid var(--border);object-fit:cover;border-radius:8px;width:88px;min-width:88px;height:64px}.planner-assigned-destination{cursor:grab;gap:8px;display:grid}.planner-assigned-destination--compact{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.planner-slot-destination-main{min-width:0}.planner-slot-destination-title{margin:0;font-weight:700;line-height:1.2}.planner-slot-destination-summary{color:#42516e;margin:0;font-size:.92rem;line-height:1.45}.planner-inline-link{color:var(--navy-2);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0;text-decoration:underline}.planner-slot-edit-button{border:1px solid var(--border);color:#294879;cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.planner-slot-edit-button svg{width:16px;height:16px}.planner-drop-hint{color:#3e4b67}.slot-select-button{font:inherit;border:1px solid var(--border);color:var(--foreground);cursor:pointer;background:0 0;border-radius:10px;padding:10px 12px}.slot-select-button.primary{background:var(--accent);color:#fff;border-color:#0000}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.photo-choice{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;gap:6px;padding:6px;display:grid}.photo-choice.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)inset;background:#edf4ff}.photo-choice img{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:100%;height:88px}.photo-choice-preview{border:1px solid var(--border);background-position:50%;background-size:cover;border-radius:6px;width:100%;height:88px}.photo-choice.selected .photo-choice-preview{border-color:var(--accent)}.amap-wrapper{border:1px solid var(--border);background:#f2f5fb;border-radius:10px;width:100%;overflow:hidden}.amap-canvas{width:100%;height:100%}.modal-backdrop{z-index:1000;background:#0c12208c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--border);background:#fff;border-radius:12px;gap:12px;width:min(860px,95vw);max-height:88vh;padding:16px;display:grid;overflow:hidden}.modal-header{z-index:2;border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;display:flex;position:sticky;top:0}.modal-close{font:inherit;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;width:36px;height:36px}.modal-body{gap:10px;max-height:calc(88vh - 150px);padding-right:2px;display:grid;overflow:auto}.modal-list{grid-template-columns:1fr;gap:10px;display:grid}.button-like{justify-content:center;align-items:center;display:inline-flex}.onboarding-video{border:1px solid var(--border);background:#111;border-radius:10px;width:min(460px,100%)}.onboarding-video-wrap{width:min(460px,100%);position:relative}.onboarding-countdown{color:#fff;background:#00000059;border-radius:999px;place-items:center;width:120px;height:120px;font-size:3rem;font-weight:700;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onboarding-crop-frame{border:1px solid var(--border);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;border-radius:10px;width:280px;height:280px;position:relative;overflow:hidden}.onboarding-crop-frame.dragging{cursor:grabbing}.onboarding-crop-image{object-fit:contain;width:100%;height:100%}.booking-timeline,.booking-timeline-details{gap:8px;display:grid}.booking-timeline-summary{color:var(--navy-2);cursor:pointer;width:fit-content;font-weight:600}.booking-timeline-steps{gap:8px;margin:0;padding-left:20px;display:grid}.booking-timeline-step{opacity:.65}.booking-timeline-step.done{opacity:1}.booking-timeline-step.active{border-left:3px solid var(--accent);padding-left:8px}.active-day-card{border:1px solid var(--border);background:#fcfdff;border-radius:10px;gap:10px;padding:12px;display:grid}.active-day-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.active-day-timeline{gap:8px;display:grid}.active-day-item{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px}.active-day-item.current-live-item{border-color:#6f8ec6;box-shadow:inset 0 0 0 2px #e7eefc}.active-day-time{color:#3e4b67;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.proposal-banner{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:.95rem}.proposal-inline{border:1px solid var(--border);border-radius:10px;gap:8px;padding:10px;display:grid}.proposal-pending{color:#5d4400;background:#fff9e6;border-color:#f2d78f}.proposal-rejected{color:var(--danger);background:#fff1f0;border-color:#f5c2c0}.proposal-accepted{color:#1f5a35;background:#edf9f0;border-color:#9fd4b5}.user-avatar{border:1px solid var(--border);background:#eef3fb;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.user-avatar-image{object-fit:cover;width:100%;height:100%}.user-avatar--fallback{color:#41557b;font-weight:700;position:relative}.user-avatar-fallback-initials{color:#1e2f59;background:#f3c76f;border:1px solid #c99c44;border-radius:10px;padding:2px 4px;font-size:10px;line-height:1;position:absolute;bottom:-4px;right:-4px}.avatar-row{align-items:center;gap:10px;display:flex}.table-wrap{width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:nowrap;padding:8px}.selfie-video-wrap{border:1px solid var(--border);background:#0d1117;border-radius:12px;width:100%;max-width:360px;position:relative;overflow:hidden}.selfie-video{object-fit:cover;width:100%;height:360px;display:block}.selfie-countdown{color:#fff;pointer-events:none;background:#00000040;justify-content:center;align-items:center;font-size:4rem;font-weight:700;display:flex;position:absolute;inset:0}.selfie-circle-overlay{aspect-ratio:1;pointer-events:none;border:2px solid #d7dce6d9;border-radius:50%;width:min(78%,280px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #6068782e}.selfie-crop-frame{border:1px solid var(--border);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#111;border-radius:12px;width:320px;height:320px;position:relative;overflow:hidden}.selfie-crop-frame.dragging{cursor:grabbing}.selfie-crop-canvas{width:100%;height:100%;display:block}.selfie-existing-avatar{object-fit:cover;border:1px solid var(--border);border-radius:999px;width:72px;height:72px}@media (max-width:900px){.app-topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:10px 14px;position:static}.app-topbar-nav{flex-wrap:nowrap;justify-content:center;min-width:0;padding-bottom:0;overflow-x:auto}.app-topbar-actions{justify-content:flex-end}.brand-link{gap:8px;font-size:.95rem}.brand-logo{width:30px;height:30px}.user-menu-popover{left:auto;right:0}.container{border-radius:14px;margin:16px auto;padding:18px}.desktop-picker{display:none}.planner-days-scroll{grid-auto-columns:auto;grid-auto-flow:row;overflow-x:visible}.planner-day-card{min-height:auto}.planner-day-header{flex-direction:column}.planner-day-start-date{justify-items:stretch;width:100%}.planner-vehicle-grid,.planner-current-vehicle-card,.admin-destination-media{grid-template-columns:1fr}.planner-vehicle-image-wrap,.planner-vehicle-image,.planner-current-vehicle-image-wrap,.planner-current-vehicle-image{height:120px;min-height:120px}}
