:root{color:#183d32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f2ec;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#root{min-width:320px;min-height:100%;margin:0}*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer}.app-shell{color:#183d32;background:#f4f2ec;min-height:100vh}.topbar{background:#faf9f5f5;border-bottom:1px solid #d9ddd6;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 28px;display:grid}.brand,.trip-title,.header-actions{align-items:center;display:flex}.brand{gap:11px}.brand-mark{color:#fff;background:#164c3b;border-radius:12px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand div,.trip-title{flex-direction:column;align-items:flex-start;line-height:1.1}.brand strong{font-size:17px}.brand span:last-child,.trip-title span{color:#79857f;letter-spacing:.08em;text-transform:uppercase;font-size:11px}.trip-title{align-items:center;gap:4px}.trip-title strong{font-size:15px}.header-actions{justify-content:flex-end;gap:12px}.rvpilot-status{background:#f1f7f2;border:1px solid #d6e2db;border-radius:999px;align-items:center;gap:8px;padding:7px 11px 7px 8px;display:flex}.cloud-sync-status{color:#526b61;background:#ffffffb8;border:1px solid #d6e2db;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;display:flex}.cloud-sync-status>span{color:#fff;background:#789187;border-radius:50%;place-items:center;width:19px;height:19px;font-size:9px;font-weight:800;display:grid}.cloud-sync-status small{white-space:nowrap;font-size:8px;font-weight:700}.cloud-sync-status.saved>span{background:#1f6b51}.cloud-sync-status.error{color:#865b20;background:#fff7e9;border-color:#ebcaa0}.cloud-sync-status.error>span{background:#ca7e25}.rvpilot-status>span:first-child{color:#fff;background:#1f6b51;border-radius:50%;place-items:center;width:25px;height:25px;font-size:12px;font-weight:800;display:grid}.rvpilot-status>span:last-child{flex-direction:column;line-height:1.1;display:flex}.rvpilot-status small{color:#77877f;letter-spacing:.08em;text-transform:uppercase;font-size:8px}.rvpilot-status strong{font-size:10px}.ghost-button,.icon-button,.avatar,.map-pill,.add-stop-button{border:0}.ghost-button{color:#183d32;background:0 0;border:1px solid #cfd7d1;border-radius:999px;padding:10px 16px}.avatar{color:#173a30;background:#c99a45;border-radius:50%;width:38px;height:38px;font-size:12px;font-weight:700}.planner{grid-template-columns:var(--itinerary-width,390px) 8px minmax(0, 1fr);height:calc(100vh - 76px);display:grid}.planner.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.itinerary-panel{z-index:2;background:#fbfaf7;border-right:1px solid #d9ddd6;padding:26px 22px;overflow-y:auto;box-shadow:8px 0 30px #19362d0f}.planner-resizer{z-index:6;cursor:col-resize;touch-action:none;background:#eef0eb;border:0;outline:0;justify-content:center;align-items:center;width:8px;transition:background .16s;display:flex;position:relative}.planner-resizer:before{content:"";position:absolute;inset:0 -4px}.planner-resizer:hover,.planner-resizer:focus-visible,.planner.is-resizing .planner-resizer{background:#c9d8cf}.planner-resizer>span{background:#fffffff5;border:1px solid #cbd8d0;border-radius:999px;justify-content:center;gap:2px;width:18px;padding:8px 0;display:grid;box-shadow:0 4px 12px #19392e1f}.planner-resizer i{background:#608075;border-radius:50%;width:2px;height:2px}.planner-resizer small{color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#173f32;border-radius:6px;padding:4px 6px;font-size:7px;transition:opacity .16s,transform .16s;position:absolute;top:50%;left:19px;transform:translate(4px,-50%)}.planner-resizer:hover small,.planner-resizer:focus-visible small{opacity:1;transform:translateY(-50%)}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.eyebrow{color:#8a948f;letter-spacing:.11em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700;display:block}h1{letter-spacing:-.03em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:500}.icon-button{color:#fff;background:#174f3d;border-radius:50%;place-items:center;width:42px;height:42px;font-size:24px;display:grid}.search-field{background:#fff;border:1px solid #d7ddd7;border-radius:13px;align-items:center;gap:8px;height:48px;padding:0 14px;display:flex}.search-field input{color:#183d32;background:0 0;border:0;outline:0;flex:1;min-width:0}.route-preference{display:block}.route-preference+.route-preference{border-top:1px solid #1f5b461f;margin-top:14px;padding-top:14px}.route-preference>span{justify-content:space-between;align-items:center;display:flex}.route-preference>span>span{color:#526b61;font-size:12px}.route-preference strong{font-size:13px}.route-preference input{accent-color:#1f6b51;width:100%;margin-top:13px}.planner-options{gap:7px;margin:14px 0;display:grid}.planner-options>button{text-align:left;color:#24493d;background:#ffffffb3;border:1px solid #d9dfda;border-radius:13px;grid-template-columns:35px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.planner-options>button:hover,.planner-options>button.active{background:#fff;border-color:#b9c9c0}.planner-options button>span:nth-child(2){flex-direction:column;display:flex}.planner-options small{color:#7c8882;text-transform:uppercase;font-size:9px}.planner-options strong{font-size:12px}.option-icon{color:#205c47;background:#e7efe8;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.option-chevron{color:#87938d;font-size:20px}.context-panel{background:#fff;border:1px solid #d6ddd7;border-radius:16px;margin-bottom:20px;padding:15px;animation:.18s ease-out panel-in;box-shadow:0 10px 26px #1e403514}.destination-context{z-index:2;border-top-left-radius:6px;margin:4px 0 12px 53px;position:relative}.destination-context:before{content:"";background:#fff;border-top:1px solid #d6ddd7;border-left:1px solid #d6ddd7;width:16px;height:16px;position:absolute;top:-9px;left:18px;transform:rotate(45deg)}.context-panel-heading{justify-content:space-between;align-items:center;display:flex}.context-panel-heading strong{font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:500}.stay-duration{background:#f2f6f1;border-radius:11px;justify-content:space-between;align-items:center;margin-top:14px;padding:11px 12px;display:flex}.stay-duration>span:first-child{flex-direction:column;display:flex}.stay-duration small{color:#7a8781;text-transform:uppercase;font-size:9px}.stay-duration strong{font-size:12px}.stepper{align-items:center;gap:9px;display:flex}.stepper button{color:#225a45;background:#fff;border:1px solid #ced9d2;border-radius:50%;place-items:center;width:27px;height:27px;font-size:16px;display:grid}.close-panel{color:#557067;background:#edf2ee;border:0;border-radius:50%;place-items:center;width:30px;height:30px;font-size:18px;display:grid}.context-panel .route-preference{border-top:1px solid #edf0ed;margin-top:15px;padding-top:13px}.settings-tabs{background:#eef2ee;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:14px;padding:4px;display:grid}.settings-tabs button{color:#687a72;background:0 0;border:0;border-radius:9px;padding:8px 5px;font-size:10px;font-weight:700}.settings-tabs button.active{color:#174b3a;background:#fff;box-shadow:0 3px 10px #1b3f3314}.settings-content{margin-top:12px}.display-settings .route-preference{margin-top:14px}.quick-add-stop{background:#fff;border:1px solid #d5dfd8;border-radius:15px;margin-bottom:14px;padding:14px;animation:.18s ease-out panel-in;box-shadow:0 10px 25px #1b3d3114}.quick-add-stop>strong{margin-bottom:10px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:500;display:block}.quick-add-stop>label{background:#fafbf9;border:1px solid #d8dfda;border-radius:11px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 6px 6px 11px;display:grid}.quick-add-stop input{color:#173f32;background:0 0;border:0;outline:0;min-width:0;padding:6px 0;font-size:11px}.quick-add-stop>label button{color:#fff;background:#1c654c;border:0;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.quick-add-stop>div{gap:5px;margin-top:8px;display:flex}.quick-add-stop>div button{color:#557068;background:#f5f7f4;border:1px solid #e0e5e1;border-radius:8px;flex:1;padding:6px 4px;font-size:8px}.route-review-alert{color:#634a19;background:#fff6df;border:1px solid #edce8e;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin-bottom:13px;padding:10px;animation:.18s ease-out panel-in;display:grid}.route-review-alert>span:first-child{color:#fff;background:#d29128;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.route-review-alert>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.route-review-alert strong{font-size:10px}.route-review-alert small{margin-top:2px;font-size:7px;line-height:1.3}.route-review-alert button{color:#fff;background:#855f1b;border:0;border-radius:8px;padding:6px 8px;font-size:8px;font-weight:700}.zoom-presets{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px;display:grid}.zoom-presets button{color:#60756c;background:#f6f8f5;border:1px solid #dce3de;border-radius:8px;padding:7px 3px;font-size:9px;font-weight:700}.zoom-presets button.active{color:#fff;background:#1d6249;border-color:#88ab99}.focus-setting{border-top:1px solid #e7ebe8;margin-top:10px;padding:10px 2px 0}.connected-rig{background:#f2f7f3;border:1px solid #d5e3da;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.connected-check{color:#fff;background:#1f6b51;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.connected-rig>span:last-child{flex-direction:column;min-width:0;display:flex}.connected-rig small{color:#72847b;text-transform:uppercase;font-size:9px}.connected-rig strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.rig-fields{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.rig-fields label{background:#fdfdfb;border:1px solid #e0e4e0;border-radius:11px;grid-template-columns:1fr auto;align-items:center;gap:3px 6px;padding:9px 10px;display:grid}.rig-fields label>span{color:#718078;text-transform:uppercase;grid-column:1/-1;font-size:8px}.rig-fields input{color:#183d32;background:0 0;border:0;outline:0;min-width:0;font-size:13px;font-weight:700}.rig-fields label>small{color:#7a8780;font-size:9px}.rig-facts{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.rig-facts span{color:#426256;background:#edf3ee;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:700}.context-hint.warning{color:#775a1d;background:#fff5da;border-radius:8px;padding:8px 9px;line-height:1.35}.route-rules{border:1px solid #e1e5e1;border-radius:12px;overflow:hidden}.rule-switch{justify-content:space-between;align-items:center;gap:12px;padding:10px 11px;display:flex}.rule-switch+.rule-switch{border-top:1px solid #edf0ed}.rule-switch>span{flex-direction:column;min-width:0;display:flex}.rule-switch strong{font-size:10px}.rule-switch small{color:#7a8780;margin-top:2px;font-size:8px}.rule-switch input{appearance:none;background:#ccd4cf;border-radius:999px;flex:none;width:34px;height:20px;margin:0;transition:background .18s;position:relative}.rule-switch input:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0f2d2340}.rule-switch input:checked{background:#1f6b51}.rule-switch input:checked:after{transform:translate(14px)}.route-rules>.context-hint{background:#f5f7f4;border-top:1px solid #e4e9e5;margin:0;padding:9px 11px;line-height:1.35}.campground-radius{margin-top:12px}.context-hint{color:#77847e;margin-top:12px;font-size:9px;display:block}.place-type-menu{gap:6px;margin-top:14px;display:flex;overflow-x:auto}.place-type-menu button{color:#5c7168;background:#f7f8f5;border:1px solid #dde3de;border-radius:999px;flex:none;padding:7px 9px;font-size:9px}.place-type-menu button.active{color:#fff;background:#29634e;border-color:#29634e}.campground-results{flex-direction:column;gap:7px;margin-top:14px;display:flex}.campground-results>p{color:#708078;margin:4px 0;font-size:11px}.campground-result{text-align:left;color:#24483d;background:#f5f7f3;border:0;border-radius:11px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:9px;display:grid}.campground-result:hover{background:#e8f0e9}.campground-icon{color:#fff;background:#1d6049;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.campground-result>span:nth-child(2),.campground-meta{flex-direction:column;min-width:0;display:flex}.campground-result>span:nth-child(2) strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.campground-result small{color:#7a8781;font-size:9px}.campground-meta{align-items:flex-end}.campground-meta strong{color:#a16f22;font-size:10px}.google-attribution{color:#9aa29e;text-align:right;margin-top:10px;font-size:8px;display:block}@keyframes panel-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.stop-list{margin:0;padding:0;list-style:none;position:relative}.stop-list:before{content:"";background:#cfdbd4;width:2px;position:absolute;top:26px;bottom:26px;left:20px}.stop-list li{margin-bottom:8px;position:relative}.reorder-controls{z-index:5;opacity:0;gap:3px;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:5px;right:5px;transform:translateY(-3px)}.stop-list li:hover>.reorder-controls,.reorder-controls:focus-within{opacity:1;transform:translateY(0)}.reorder-controls button{color:#285f4d;background:#fffffff5;border:1px solid #d5ded8;border-radius:7px;place-items:center;width:22px;height:22px;font-size:9px;display:grid;box-shadow:0 3px 8px #163a2e14}.reorder-controls button:disabled{opacity:.35;cursor:default}.stop-list .route-segment{z-index:2;background:#f8f9f6f0;border:1px solid #e0e5e1;border-radius:13px;margin:-3px 8px 8px 53px;padding:7px 8px 8px}.segment-drop-zone{color:#237057;opacity:0;border:1px dashed #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:0;font-size:8px;font-weight:700;transition:height .18s,margin .18s,opacity .18s,background .18s;display:flex;overflow:hidden}.segment-drop-zone span{font-size:14px}.planner.is-dragging-route-item .segment-drop-zone{opacity:1;background:#eaf4ed;border-color:#8fbaa8;height:30px;margin-bottom:7px}.planner.is-dragging-route-item .segment-drop-zone:hover{background:#dceee3;border-color:#267458}.segment-summary{justify-content:space-between;align-items:center;padding:0 3px 7px;display:flex}.segment-summary span{color:#47675b;font-size:calc(9px * var(--detail-scale));font-weight:800}.segment-summary small{color:#98a29d;font-size:calc(7px * var(--detail-scale));letter-spacing:.04em;text-transform:uppercase}.segment-menus{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.segment-menus button{min-width:0;padding:calc(7px * var(--detail-scale)) 4px;color:#5e726a;font-size:calc(8px * var(--detail-scale));background:#eef2ee;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:4px;font-weight:700;display:flex}.segment-menus button>span{font-size:calc(10px * var(--detail-scale))}.segment-menus button>small{color:#8b9892;margin-left:1px}.segment-menus button.active{color:#164e3c;background:#fff;border-color:#bed0c6;box-shadow:0 4px 10px #17463612}.segment-results{transform-origin:top;background:#fff;border:1px solid #dfe5e0;border-radius:10px;margin-top:7px;transition:box-shadow .2s,transform .2s;animation:.18s ease-out panel-in;position:relative}.segment-results.focus-expanded{transform:scale(1.018);box-shadow:0 10px 24px #1941331a}.segment-results header{background:#f4f7f4;justify-content:space-between;align-items:center;padding:8px 9px;display:flex}.segment-results header>span{color:#234d3f;font-size:calc(8px * var(--detail-scale));flex-direction:column;font-weight:800;display:flex}.segment-results header small{color:#839089;font-size:calc(7px * var(--detail-scale));margin-top:2px;font-weight:500}.segment-results header button{color:#638076;background:#e4ece6;border:0;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.route-fit-legend{background:#fafbf9;border-top:1px solid #e8ece9;gap:4px;padding:6px 8px;display:flex}.route-fit-legend span{color:#75837c;font-size:calc(6px * var(--detail-scale));align-items:center;gap:4px;display:flex}.route-fit-legend span:before{content:"";background:var(--quality-color);border-radius:50%;width:5px;height:5px}.route-fit-legend .excellent,.quality-excellent{--quality-color:#16845d;--quality-soft:#e5f4eb}.route-fit-legend .good,.quality-good{--quality-color:#87a930;--quality-soft:#f1f5df}.route-fit-legend .caution,.quality-caution{--quality-color:#d69228;--quality-soft:#fff1d8}.route-fit-legend .difficult,.quality-difficult{--quality-color:#cc5147;--quality-soft:#fbe8e5}.segment-result{width:100%;padding:calc(8px * var(--detail-scale)) 9px;text-align:left;color:#234a3d;background:#fff;border:0;border-top:1px solid #edf0ed;grid-template-columns:27px 1fr auto;align-items:center;gap:7px;display:grid;position:relative}.segment-result:before{content:"";background:var(--quality-color);border-radius:0 3px 3px 0;width:3px;position:absolute;top:7px;bottom:7px;left:0}.segment-result:after{content:attr(data-tooltip);z-index:8;color:#f8fbf9;width:min(235px,100% - 20px);font-size:calc(8px * var(--detail-scale));opacity:0;pointer-events:none;transform-origin:100% 100%;background:#173f32;border:1px solid #1943341f;border-radius:9px;padding:8px 10px;font-weight:500;line-height:1.4;transition:opacity .16s,transform .16s;position:absolute;bottom:calc(100% - 4px);right:8px;transform:translateY(5px)scale(.98);box-shadow:0 10px 25px #12312733}.segment-result:hover:after,.segment-result:focus-visible:after{opacity:1;transform:translateY(0)scale(1)}.segment-result:hover{z-index:4;background:linear-gradient(90deg, var(--quality-soft), white 35%)}.segment-result .suggestion-icon{width:27px;height:27px;color:var(--quality-color);background:var(--quality-soft);border-radius:8px;place-items:center;font-size:11px;font-weight:800;display:grid}.segment-result>span:nth-child(2),.segment-result>span:last-child{flex-direction:column;min-width:0;display:flex}.segment-result strong{font-size:calc(9px * var(--detail-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.segment-result small{color:#7a8781;font-size:calc(7px * var(--detail-scale))}.suggestion-badges{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.suggestion-badges i{color:#65776e;font-size:calc(6px * var(--detail-scale));background:#f0f3f0;border-radius:999px;padding:2px 4px;font-style:normal;font-weight:700}.segment-result>.suggestion-score{align-items:flex-end}.suggestion-score em{color:var(--quality-color);background:var(--quality-soft);font-size:calc(6px * var(--detail-scale));white-space:nowrap;border-radius:999px;padding:3px 5px;font-style:normal;font-weight:800}.segment-result b{color:#fff;background:#1c654c;border-radius:50%;place-items:center;width:20px;height:20px;margin-top:3px;font-size:11px;display:grid}.segment-result b.added{color:#176047;background:#dceee3}.stop-card{text-align:left;color:#183d32;background:0 0;border:1px solid #0000;border-radius:15px;grid-template-columns:42px 1fr 20px;align-items:center;gap:11px;width:100%;padding:12px 10px;display:grid;position:relative}.stop-card:hover,.stop-card.selected{background:#fff;border-color:#cdd9d2;box-shadow:0 8px 22px #1e403514}.stop-marker{z-index:1;color:#fff;background:#1d6049;border:4px solid #fbfaf7;border-radius:50%;place-items:center;width:32px;height:32px;font-size:11px;font-weight:800;display:grid}.selected .stop-marker{border-color:#fff}.stop-marker.fuel{background:#ba8736}.stop-marker.destination{background:#113d30}.stop-content{flex-direction:column;gap:3px;min-width:0;display:flex}.stop-content strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.stop-content>span:last-child{color:#76827c;font-size:11px}.stop-day{color:#b07b29;text-transform:uppercase;font-size:10px;font-weight:700}.drag-handle{color:#aeb7b2;font-size:14px}.drag-handle.dragging{color:#1b684e}.stop-card[draggable=true]{cursor:grab}.stop-card[draggable=true]:active{cursor:grabbing}.add-stop-button{color:#255c49;background:0 0;border:1px dashed #aebdb4;border-radius:13px;width:100%;margin-top:14px;padding:13px}.add-stop-button span{margin-right:6px;font-size:18px}.map-panel{grid-template-rows:minmax(0,1fr) auto;min-width:0;display:grid;position:relative}.map-floating-controls{z-index:3;flex-direction:column;gap:10px;max-width:calc(100% - 36px);display:flex;position:absolute;top:18px;left:18px}.map-search{width:min(510px, calc(100vw - var(--itinerary-width,390px) - 78px));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #30514524;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-width:320px;padding:8px 9px 8px 15px;display:grid;box-shadow:0 13px 34px #19372d29}.map-search>span{color:#1b5b45;font-size:18px}.map-search input{color:#173e32;background:0 0;border:0;outline:0;min-width:0;padding:6px 0}.map-search kbd{color:#87928d;background:#f3f5f2;border:1px solid #dde3df;border-radius:7px;padding:5px 7px;font-family:inherit;font-size:9px}.map-toolbar{gap:8px;display:flex}.map-pill{color:#284b40;background:#ffffffeb;border:1px solid #3a534929;border-radius:999px;align-items:center;gap:6px;padding:10px 14px;font-size:12px;display:flex;box-shadow:0 5px 16px #19342b1a}.map-pill small{color:#436359;background:#2254421a;border-radius:999px;place-items:center;min-width:17px;height:17px;font-size:8px;font-weight:800;display:grid}.map-pill.active{color:#fff;background:#194f3e}.map-pill.active small{color:#174f3d;background:#fff}.map-canvas{background:radial-gradient(circle at 75% 75%,#508fa759,#0000 32%),linear-gradient(145deg,#dce8de,#cadcd1 46%,#b9d3d7 47%,#c9e0e2 100%);min-height:420px;position:relative;overflow:hidden}.map-canvas:before,.map-canvas:after{content:"";filter:blur(1px);background:#eeefd9ad;border-radius:47% 53% 60% 40%;position:absolute}.map-canvas:before{width:65%;height:78%;bottom:-20%;left:-10%;transform:rotate(-10deg)}.map-canvas:after{width:42%;height:45%;top:-15%;right:-8%}.route-line{z-index:1;width:100%;height:100%;position:absolute;inset:0}.route-shadow,.route-path{fill:none;stroke-linecap:round}.route-shadow{stroke:#ffffffe6;stroke-width:12px}.route-path{stroke:#207154;stroke-width:6px;stroke-dasharray:10 4}.route-point{fill:#f8faf7;stroke:#14503c;stroke-width:7px}.route-point.minor{stroke:#bd8530}.route-point.destination{fill:#c79543}.distance-ring{fill:#23775712;stroke:#1f694e4d;stroke-width:2px;stroke-dasharray:8 8}.planned-map-items{z-index:4;pointer-events:none;position:absolute;inset:0}.planned-map-marker{color:#153d31;background:var(--quality-soft);width:34px;height:34px;box-shadow:0 5px 14px #13372b38, 0 0 0 2px var(--quality-color);cursor:pointer;pointer-events:auto;border:3px solid #fff;border-radius:50% 50% 50% 8px;place-items:center;transition:transform .18s,box-shadow .18s;display:grid;position:absolute;transform:translate(-50%,-100%)rotate(-45deg)}.planned-map-marker>span{font-size:13px;transform:rotate(45deg)}.planned-map-marker>small{color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#173f32;border-radius:7px;width:max-content;max-width:150px;padding:5px 8px;font-size:8px;font-weight:700;transition:opacity .16s,transform .16s;position:absolute;top:43px;left:17px;transform:translate(-50%,-4px)rotate(45deg)}.planned-map-marker:hover,.planned-map-marker:focus-visible{z-index:5;box-shadow:0 8px 20px #13372b47, 0 0 0 3px var(--quality-color);transform:translate(-50%,-100%)rotate(-45deg)scale(1.12)}.planned-map-marker:hover>small,.planned-map-marker:focus-visible>small{opacity:1;transform:translate(-50%)rotate(45deg)}.marker-fuel>span{color:#ab552c}.marker-rests>span{color:#195e48}.marker-places>span{color:#b47a20}.region-label,.ocean-label{z-index:2;font-weight:700;position:absolute}.region-label{background:#ffffffad;border-radius:5px;padding:3px 7px;font-size:11px}.halifax{bottom:13%;right:17%}.fundy{bottom:39%;left:56%}.quebec{top:15%;left:15%}.ocean-label{color:#3069788c;letter-spacing:.12em;text-align:center;font-size:11px;top:26%;right:13%}.map-notice{color:#3a544b;background:#ffffffd6;border-radius:10px;flex-direction:column;padding:9px 12px;font-size:11px;display:flex;position:absolute;bottom:14px;right:16px}.map-notice small{color:#7b8882}.trip-summary{background:#fbfaf7;border-top:1px solid #d8ddd7;grid-template-columns:1.35fr repeat(4,1fr);padding:18px 22px;display:grid}.assistant-panel{z-index:20;background:#f9faf7;border:1px solid #d8ded9;border-radius:20px;flex-direction:column;width:360px;min-width:0;max-width:calc(100vw - 32px);height:min(620px,100vh - 112px);animation:.22s ease-out assistant-in;display:flex;position:fixed;bottom:22px;right:22px;overflow:hidden;box-shadow:0 24px 70px #14352a38}.assistant-panel>header{border-bottom:1px solid #e2e6e2;grid-template-columns:36px 1fr 28px;align-items:center;gap:9px;padding:18px 16px;display:grid}.assistant-panel>header>span:nth-child(2){flex-direction:column;display:flex}.assistant-panel header small,.assistant-context span,.assistant-suggestions>span{color:#849089;letter-spacing:.08em;text-transform:uppercase;font-size:9px}.assistant-panel header strong{font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:500}.assistant-mark{color:#245846;background:#fff;border:1px solid #dbe2dd;border-radius:11px;place-items:center;width:34px;height:34px;display:grid;overflow:hidden;box-shadow:0 3px 10px #1c3b3114}.assistant-mark img{width:48px;max-width:none;transform:translate(-3px,3px)scale(1.25)}.assistant-panel header button{color:#60736a;background:#e9efea;border:0;border-radius:50%;place-items:center;width:28px;height:28px;font-size:17px;display:grid}.assistant-context{background:#edf4ee;border:1px solid #dce5de;border-radius:12px;flex-direction:column;margin:14px;padding:12px;display:flex}.assistant-context strong{margin:3px 0;font-size:12px}.assistant-context small{color:#74837b;font-size:9px}.voyager-stage{background:radial-gradient(circle at 76% 18%,#eebc636b,#0000 14%),linear-gradient(#cfe3df 0 46%,#b9c9ad 47% 100%);border-bottom:1px solid #e5e8e4;flex:none;place-items:center;height:174px;display:grid;position:relative;overflow:hidden}.voyager-stage:before{content:"";z-index:0;clip-path:polygon(47% 0,53% 0,92% 100%,8% 100%);background:linear-gradient(90deg,#887f72,#aba091 48%,#8c8276);width:310px;height:180px;position:absolute;bottom:-75px;left:50%;transform:translate(-50%)}.voyager-stage:after{content:"";z-index:1;clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);background:repeating-linear-gradient(#fff4c4eb 0 14px,#0000 14px 28px);width:8px;height:158px;position:absolute;bottom:-65px;left:50%;transform:translate(-50%)}.voyager-stage.destination-quebec{background:linear-gradient(#ffffff05,#13392b2e),url(/destinations/quebec.png) 50% 47%/cover no-repeat}.voyager-stage.destination-quebec:before,.voyager-stage.destination-quebec:after{display:none}.voyager-mascot{z-index:2;filter:drop-shadow(0 10px 8px #11302629);transform-origin:50% 80%;width:230px;margin-top:-10px;animation:1.15s cubic-bezier(.2,.9,.25,1.18) both voyager-arrival,2.7s ease-in-out 1.15s infinite voyager-idle}.voyager-shadow{z-index:1;filter:blur(5px);background:#1c3a3026;border-radius:50%;width:142px;height:17px;animation:2.7s ease-in-out 1.15s infinite shadow-bounce;position:absolute;bottom:28px}.voyager-stage>strong{z-index:3;color:#234d3e;background:#ffffffdb;border-radius:999px;padding:4px 9px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:500;position:absolute;bottom:8px;box-shadow:0 3px 10px #12312617}.excitement-mark{z-index:3;color:#bd8d36;opacity:0;animation:2.7s ease-in-out 1.15s infinite excitement-pop;position:absolute}.mark-one{font-size:18px;top:32px;left:48px}.mark-two{font-size:12px;animation-delay:1.45s;top:50px;right:50px}.assistant-conversation{min-height:120px;padding:6px 14px}.assistant-message{grid-template-columns:24px 1fr;align-items:flex-start;gap:8px;display:grid}.assistant-message>span{color:#235e49;background:#fff;border:1px solid #dde4df;border-radius:8px;place-items:center;width:24px;height:24px;font-size:10px;display:grid;overflow:hidden;box-shadow:0 3px 9px #1a3a2f12}.assistant-message>span img{width:36px;max-width:none;transform:translate(-3px,4px)scale(1.2)}.assistant-message p{color:#40584f;background:#fff;border-radius:4px 13px 13px;margin:0;padding:11px;font-size:11px;line-height:1.5;box-shadow:0 5px 16px #1f3c320f}.assistant-suggestions{flex-direction:column;gap:6px;padding:10px 14px;display:flex}.assistant-suggestions button{color:#3c584e;text-align:left;background:0 0;border:1px solid #e0e5e1;border-radius:10px;justify-content:space-between;padding:9px 10px;font-size:10px;display:flex}.assistant-suggestions button:hover{background:#fff}.assistant-composer{margin:auto 14px 8px;position:relative}.assistant-composer textarea{resize:none;color:#244a3d;background:#fff;border:1px solid #ccd7d0;border-radius:14px;outline:0;width:100%;min-height:82px;padding:12px 42px 12px 12px;font-size:11px}.assistant-composer textarea:focus{border-color:#4b806c;box-shadow:0 0 0 3px #2d6e531a}.assistant-composer button{color:#fff;background:#1d5d46;border:0;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;display:grid;position:absolute;bottom:10px;right:9px}.assistant-privacy{color:#929c97;text-align:center;margin:0 18px 13px;font-size:8px}.assistant-launcher{color:#fff;background:#174f3d;border:0;border-radius:999px;align-items:center;gap:8px;padding:9px 13px 9px 9px;display:flex;box-shadow:0 8px 24px #123d2f40}.assistant-invitation{z-index:12;align-items:center;gap:10px;display:flex;position:fixed;bottom:22px;right:20px}.assistant-invitation>span{color:#50675e;background:#fffffff0;border:1px solid #dde3de;border-radius:12px 12px 3px;padding:9px 12px;font-size:10px;animation:.3s ease-out invitation-in;box-shadow:0 7px 22px #18392e1a}.launcher-mascot{background:#ffffff24;border-radius:50%;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}.launcher-mascot img{width:49px;max-width:none;animation:2.4s ease-in-out infinite launcher-bounce;transform:translate(-3px,5px)scale(1.2)}.assistant-launcher>span:last-child{text-align:left;flex-direction:column;display:flex}.assistant-launcher small{opacity:.7;text-transform:uppercase;font-size:7px}.assistant-launcher strong{font-size:10px}@keyframes assistant-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes voyager-arrival{0%{opacity:0;transform:translate(120px)rotate(5deg)scale(.7)}62%{opacity:1;transform:translate(-8px)rotate(-3deg)scale(1.04)}80%{transform:translate(4px)rotate(2deg)scale(.98)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes voyager-idle{0%,to{transform:translateY(0)rotate(-1deg)}35%{transform:translateY(-7px)rotate(1.5deg)}55%{transform:translateY(-2px)rotate(-1.5deg)}72%{transform:translateY(-6px)rotate(1deg)}}@keyframes shadow-bounce{0%,to{opacity:.75;transform:scaleX(1)}35%,72%{opacity:.4;transform:scaleX(.82)}}@keyframes excitement-pop{0%,25%,to{opacity:0;transform:scale(.3)rotate(-15deg)}38%,62%{opacity:1;transform:scale(1)rotate(8deg)}}@keyframes launcher-bounce{0%,82%,to{transform:translate(-3px,5px)scale(1.2)rotate(0)}87%{transform:translate(-3px,1px)scale(1.2)rotate(-3deg)}93%{transform:translate(-3px,5px)scale(1.2)rotate(2deg)}}@keyframes invitation-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.summary-intro,.metric{flex-direction:column;justify-content:center;min-width:0;display:flex}.summary-intro{padding-right:24px}.summary-intro strong{font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:500}.summary-intro>span:last-child,.metric small,.metric span{color:#7b8781;font-size:10px}.metric{border-left:1px solid #dfe3df;padding:2px 18px}.metric strong{color:#174b3a;margin:3px 0;font-size:19px}@media (width<=980px){.topbar{grid-template-columns:1fr auto}.trip-title,.rvpilot-status,.cloud-sync-status{display:none}.planner{grid-template-columns:var(--itinerary-width,350px) 8px minmax(0, 1fr)}.trip-summary{grid-template-columns:repeat(2,1fr);gap:12px 0}.summary-intro{grid-column:1/-1}}@media (width<=720px){.topbar{height:64px;padding:0 15px}.ghost-button{display:none}.planner{flex-direction:column-reverse;height:auto;display:flex}.planner-resizer{display:none}.assistant-panel{width:calc(100vw - 24px);height:min(610px,100vh - 88px);bottom:12px;right:12px}.assistant-invitation{bottom:12px;right:12px}.assistant-invitation>span{display:none}.voyager-stage{height:152px}.voyager-mascot{width:205px}.map-panel{display:block}.map-canvas{height:50vh;min-height:360px}.itinerary-panel{border:0;overflow:visible}.trip-summary{grid-template-columns:1fr 1fr}.map-toolbar{max-width:calc(100vw - 36px);overflow-x:auto}.map-floating-controls{max-width:none;left:12px;right:12px}.map-search{width:100%;min-width:0}.map-toolbar{max-width:100%}}@media (prefers-reduced-motion:reduce){.voyager-mascot,.voyager-shadow,.excitement-mark,.launcher-mascot img{animation:none}}.auth-shell{color:#173f33;background:#f5f2eb;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);min-height:100vh;display:grid}.auth-hero{background:linear-gradient(150deg,#0a382b14,#07241da3),url(/destinations/quebec.png) 50%/cover;align-items:flex-end;padding:clamp(38px,6vw,88px);display:flex;position:relative;overflow:hidden}.auth-hero:after{content:"";opacity:.8;background:linear-gradient(135deg,#0000 44%,#ebe7dc 45% 52%,#0000 53%);border-radius:50% 50% 0 0;height:62%;position:absolute;inset:auto -15% -32% 5%}.auth-hero>img{z-index:1;filter:drop-shadow(0 26px 28px #0a271f52);width:clamp(180px,28vw,420px);animation:2.4s ease-in-out infinite auth-ready;position:absolute;bottom:12%;right:8%}.auth-intro{z-index:2;color:#fff;text-shadow:0 2px 18px #07221b61;max-width:570px;position:relative}.auth-intro>span,.auth-eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:800}.auth-intro h1{letter-spacing:-.055em;max-width:540px;margin:12px 0;font-size:clamp(38px,5vw,72px);line-height:.97}.auth-intro p{color:#ffffffdb;max-width:500px;margin:0;font-size:16px;line-height:1.6}.auth-card{gap:25px;width:min(440px,100% - 48px);margin:auto;display:grid}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand>div{display:grid}.auth-brand strong{font-size:18px}.auth-brand div span{color:#728079;letter-spacing:.12em;text-transform:uppercase;font-size:11px}.auth-card h2{letter-spacing:-.035em;margin:7px 0 5px;font-size:36px}.auth-card p{color:#6f7b75;margin:0}.auth-card form,.auth-card label{gap:10px;display:grid}.auth-card form{gap:16px}.auth-card label{color:#445d54;font-size:12px;font-weight:700}.auth-card input{color:#183d32;background:#fffc;border:1px solid #ccd4ce;border-radius:14px;outline:none;height:51px;padding:0 16px;transition:border-color .2s,box-shadow .2s}.auth-card input:focus{border-color:#256c53;box-shadow:0 0 0 4px #256c531a}.auth-primary{color:#fff;background:linear-gradient(135deg,#236f54,#103f31);border:0;border-radius:16px;height:53px;margin-top:5px;font-weight:800;box-shadow:0 14px 24px #144c3b33}.auth-divider{color:#88928d;align-items:center;gap:12px;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#d9ddd8;flex:1;height:1px}.auth-providers{grid-template-columns:1fr 1fr;gap:12px;display:grid}.auth-providers button{color:#294b40;background:#ffffffbd;border:1px solid #d5dad6;border-radius:14px;height:49px;font-weight:750}.provider-logo{object-fit:contain;vertical-align:-4px;width:18px;height:18px;margin-right:8px}.provider-logo.apple{width:20px;height:20px}.auth-error{background:#fff5e8;border:1px solid #e8c49e;border-radius:12px;padding:12px 14px;font-size:12px;color:#8a5018!important}.auth-security{color:#819089;text-align:center;line-height:1.5}.auth-loading{color:#214e40;background:#f5f2eb;place-content:center;justify-items:center;gap:18px;min-height:100vh;display:grid}.auth-loading img{width:150px;animation:1.7s ease-in-out infinite auth-ready}@keyframes auth-ready{50%{transform:translateY(-8px)rotate(-1deg)}}@media (width<=860px){.auth-shell{grid-template-columns:1fr}.auth-hero{min-height:260px;padding:34px 28px}.auth-hero>img{opacity:.8;width:180px}.auth-intro h1{max-width:420px;font-size:38px}.auth-intro p{display:none}.auth-card{padding:38px 0 52px}}
