:root{--bg:#f5f4ee;--paper:#fffefa;--ink:#24382e;--muted:#667269;--green:#285940;--line:#dedfd5;--soft:#e8ece2;--warm:#f0e8d7;--radius:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:100%;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button,a{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b37632;outline-offset:4px}a{color:var(--green)}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em;line-height:1.1}h1{font-size:clamp(2.25rem,4vw,3.625rem);max-width:750px}h2{font-size:2rem}h3{font-size:1.1875rem;line-height:1.4}small,.muted{color:var(--muted)}.skip{position:absolute;top:-100px;z-index:5;background:var(--paper);padding:12px}.skip:focus{top:0}.demo{background:#e7e9df;padding:8px 32px;text-align:center;font-size:0.625rem;letter-spacing:.13em;font-weight:700;color:#4f6052}.demo span{font-weight:400;letter-spacing:.03em;margin-left:12px}.topbar{min-height:88px;padding:16px 40px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--paper)}.brand{text-decoration:none;font-weight:700;font-size:1.625rem;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brand-dot{margin-left:-10px}.brand-mark{border:1px solid var(--green);border-radius:10px;width:36px;height:38px;text-align:center;line-height:34px;font-family:Georgia,serif;font-style:italic}.brand-mark span{font:0.9375rem sans-serif;position:relative;top:-8px;margin-left:-5px}.mode{display:flex;background:var(--soft);border-radius:30px;padding:4px}.mode button{border:0;background:none;padding:8px 22px;min-height:44px;border-radius:24px;color:var(--muted)}.mode button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 4px #23372b12}.avatar{border:0;background:var(--soft);border-radius:24px;min-width:52px;min-height:44px}.workspace{display:grid;grid-template-columns:284px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 122px)}.sidebar{padding:40px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:20px}.trip-label,.eyebrow{font-size:0.6875rem;letter-spacing:.13em;font-weight:700;color:var(--muted)}.trip-label{display:flex;justify-content:space-between}.sidebar h2{font-size:1.875rem}.sidebar .muted{font-size:0.75rem;margin-top:-10px}.trip-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:0.6875rem}.trip-meta span{padding:3px 8px;border:1px solid var(--line);border-radius:4px}nav{margin-top:16px;display:grid;gap:8px}nav button{border:0;background:none;text-align:left;min-height:60px;padding:12px;border-radius:8px;display:flex;gap:12px;align-items:center;width:100%}nav button[aria-current=page]{background:var(--soft);color:var(--green)}.nav-num{border:1px solid #ccd5c7;min-width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:0.75rem}nav strong{display:block;font-size:0.8125rem;font-weight:600}nav small{font-size:0.6875rem}.nav-section{font-size:0.625rem;letter-spacing:.1em;color:var(--muted);padding:22px 12px 4px}.sidebar-foot{margin-top:auto;font-size:0.75rem;padding-top:60px}.sidebar-foot p{font-size:0.6875rem;color:var(--muted);margin:6px 0 0 15px}.status-dot{display:inline-block;background:#75816a;width:6px;height:6px;border-radius:50%;margin-right:6px}main{padding:40px 52px 64px;min-width:0}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.text-button{border:0;background:none;color:var(--green);padding:10px 0;min-height:44px;font-size:0.8125rem;text-decoration:underline;text-underline-offset:4px}.intro{font-size:1.0625rem;line-height:1.75;max-width:700px;color:#58675c;margin-top:20px}.page-head{margin-bottom:28px}.facts{display:flex;gap:24px;flex-wrap:wrap;margin-top:24px;font-size:0.8125rem}.facts strong{color:var(--ink);font-size:1.25rem;font-weight:500;margin-right:5px}.map{position:relative;overflow:hidden;border-radius:var(--radius);background:#e9eddf;border:1px solid #dee2d4;margin:24px 0}.map svg{display:block;width:100%;height:auto;min-height:235px;max-height:380px}.map-label{position:absolute;bottom:12px;left:14px;font-size:0.625rem;background:#fffefae8;padding:4px 8px;border-radius:4px;color:#51624e}.map-key{position:absolute;top:12px;left:14px;display:flex;gap:15px;background:#fffefae8;padding:6px 10px;border-radius:5px;font-size:0.625rem}.map-key i{display:inline-block;width:18px;border-top:3px solid var(--green);margin:0 5px 3px 0}.map-key .original{border-top:2px dashed #9c795c}.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:32px 0 12px}.section-top h2{font-size:1.75rem}.stage-row{display:grid;grid-template-columns:45px 1fr auto;gap:18px;padding:24px 0;border-top:1px solid var(--line);align-items:start}.stage-row .stage-index{font:italic 1.6875rem Georgia,serif;color:#8e9989}.stage-row h3{font-family:Georgia,serif;font-size:1.5rem;font-weight:400;letter-spacing:-.02em}.stage-row p{font-size:0.875rem;color:var(--muted);max-width:620px;margin-top:9px}.stage-row .row-meta{display:flex;gap:15px;margin-top:12px;font-size:0.6875rem;color:var(--muted)}.round-button{border:1px solid var(--line);border-radius:50%;background:transparent;width:44px;height:44px}.primary{background:var(--green);color:white;border:1px solid var(--green);border-radius:8px;padding:12px 22px;min-height:48px;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none}.secondary{background:transparent;border:1px solid #b9c5b7;border-radius:8px;padding:10px 16px;min-height:44px;font-size:0.8125rem}.action-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.weather{display:flex;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:0.8125rem}.weather-symbol{font-size:1.875rem;line-height:1}.weather small{display:block;font-size:0.6875rem}.day-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:32px;margin-top:28px}.stay{border-left:1px solid var(--line);padding-left:28px}.stay h3{font-size:1.1875rem;margin:12px 0 6px}.stay p{font-size:0.8125rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;font-size:0.6875rem;background:var(--soft);padding:4px 8px;border-radius:4px}.booking-warning{font-size:0.75rem;color:#7a5531;padding:12px 0}.private{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.private-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.private-head h2{font-size:1.75rem}.private-head small{font-size:0.6875rem}.private-tabs{display:flex;border-bottom:1px solid var(--line);gap:24px}.private-tabs button{background:none;border:0;border-bottom:2px solid transparent;min-height:44px;padding:8px 0;font-size:0.8125rem;color:var(--muted)}.private-tabs button[aria-selected=true]{border-color:var(--green);color:var(--green);font-weight:600}textarea,input,select{border:1px solid #c9d0c2;border-radius:8px;background:var(--paper);color:var(--ink);padding:12px;width:100%;font-size:0.9375rem}textarea{resize:vertical;min-height:120px;line-height:1.7}label{display:block;font-size:0.8125rem;margin:16px 0 6px}.private-help{font-size:0.75rem;color:var(--muted);margin:14px 0 12px}.private-save{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:12px}.private-save small{font-size:0.6875rem;max-width:300px}details{margin:24px 0;font-size:0.8125rem}summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--green)}details p,details ol{color:var(--muted);margin:8px 0 12px}.callout{background:var(--warm);border-left:3px solid #ab8650;padding:14px 16px;font-size:0.8125rem;line-height:1.6;margin:18px 0}.compare{border:1px solid var(--line);border-radius:8px;padding:16px;margin:16px 0;font-size:0.8125rem}.compare h3{font-size:0.875rem;margin-bottom:6px}.compare p{color:var(--muted);margin-top:6px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(550px,90vw);padding:14px 22px;background:var(--ink);color:white;border-radius:10px;font-size:0.8125rem;z-index:20;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:16px;background:var(--paper);color:var(--ink);max-width:min(560px,calc(100vw - 24px));width:560px;padding:24px 32px 32px;max-height:90dvh;box-shadow:0 25px 100px #1d332b30}dialog::backdrop{background:#20322b70;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.icon-button{border:0;background:none;min-width:44px;min-height:44px}.dialog-title{font-size:2.125rem;margin:4px 0 12px}.dialog-copy{font-size:0.875rem;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}.error{color:#954326;font-size:0.8125rem;margin-top:12px}.stop-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.stop-row span{flex:1;font-size:0.875rem}.stop-row button{border:1px solid var(--line);border-radius:6px;background:transparent;min-width:44px;min-height:44px}.stop-row small{display:block;font-size:0.6875rem}.choice{display:block;width:100%;border:1px solid var(--line);border-radius:8px;text-align:left;background:transparent;padding:12px;margin-top:12px}.choice strong{display:block}.choice small{display:block;margin-top:4px}.info-list{font-size:0.875rem;padding-left:20px;line-height:1.8}.view-enter{animation:enter .22s ease-out}@keyframes enter{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}.phone-demo .workspace{max-width:430px;display:block}.phone-demo .sidebar{display:none}.phone-demo main{padding:24px 20px}.phone-demo .day-grid{display:block}.phone-demo .stay{border-left:0;padding:20px 0 0;border-top:1px solid var(--line);margin-top:20px}.phone-demo .topbar{max-width:430px;margin:auto;padding:12px 16px;flex-wrap:wrap}.phone-demo .mode{order:3;width:100%;justify-content:center}.phone-demo .demo{padding:8px 12px}.phone-demo .demo span{display:block;margin:4px 0 0}.phone-demo h1{font-size:2.375rem}.mobile-days{display:none}.phone-demo .mobile-days{display:flex}
@media(min-width:1000px){.phone-demo{background:#e4e6df}.phone-demo .workspace{background:var(--bg);box-shadow:0 15px 60px #23372b18;min-height:800px}.phone-demo .demo{max-width:430px;margin:16px auto 0;border-radius:24px 24px 0 0}.phone-demo .topbar{min-height:unset}}
@media(max-width:1000px){.workspace{grid-template-columns:230px 1fr}.sidebar{padding:28px 20px}main{padding:32px}.day-grid{display:block}.stay{border-left:0;padding:24px 0 0;border-top:1px solid var(--line);margin-top:24px}}
@media(max-width:700px){.demo{padding:7px 12px;font-size:0.5625rem}.demo span{display:block;margin:3px 0 0}.topbar{padding:12px 20px;flex-wrap:wrap;min-height:unset}.brand{font-size:1.5rem}.mode{order:3;width:100%;justify-content:center}.mode button{flex:1}.workspace{display:block}.sidebar{display:none}main{padding:24px 20px 50px}h1{font-size:2.375rem}.intro{font-size:1rem}.heading-row{margin-bottom:18px;gap:8px}.heading-row .text-button{font-size:0.75rem}.facts{gap:16px}.facts strong{font-size:1.125rem}.stage-row{grid-template-columns:28px 1fr 44px;gap:10px}.stage-row h3{font-size:1.375rem}.private-head{align-items:start;flex-direction:column;gap:6px}.private-save{align-items:start}.mobile-days{display:flex}.day-grid{display:block}dialog{padding:20px}.map svg{min-height:220px}.map-key{font-size:0.5625rem;gap:8px}.map-label{font-size:0.5625rem}.sidebar-foot{padding-top:20px}.action-row .primary{width:100%}}
.mobile-days{gap:8px;flex-wrap:wrap;margin-bottom:24px}.mobile-days a{font-size:0.75rem;text-decoration:none;min-height:44px;padding:12px;border:1px solid var(--line);border-radius:8px}.mobile-days a[aria-current=page]{background:var(--soft);font-weight:600}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.planning-strip{display:flex;gap:28px;justify-content:space-between;align-items:center;border-block:1px solid var(--line);padding:20px 0;margin-top:28px}.planning-strip h3{margin-top:5px;font-size:1.125rem}.planning-strip p{font-size:0.75rem;color:var(--muted);line-height:1.8}.travel-lead{font-size:1rem;line-height:1.7;color:var(--muted);margin-top:16px;max-width:650px}.travel-weather{display:flex;align-items:center;gap:12px;margin-top:20px;padding:14px 18px;background:var(--soft);border-radius:8px;font-size:0.875rem}.travel-weather>span{font-size:1.75rem}.travel-weather small{display:block;font-size:0.6875rem}.tomorrow-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;border-block:1px solid var(--line);padding:24px 0;margin-top:28px}.tomorrow-strip p{font-size:0.8125rem;color:var(--muted);margin-top:5px}.tomorrow-strip h3{margin-top:5px}.real-map{margin-bottom:8px}.leaflet-map{height:340px;background:#e5e8de}.map-caption{color:var(--muted);font-size:0.6875rem;margin:8px 0 24px;line-height:1.7}.line-swatch{display:inline-block;width:22px;border-top:2px dashed var(--green);margin-right:6px;vertical-align:middle}.real-map svg{width:auto;height:auto;min-height:0;max-height:none}.map-unavailable{padding:28px;color:var(--muted);font-size:0.875rem}.leaflet-container{font-family:inherit}.leaflet-control-zoom a{min-width:44px;min-height:44px;line-height:44px!important}.route-marker{border:0!important;background:none!important;display:grid;place-items:center;cursor:grab}.route-marker span{display:grid;place-items:center;border-radius:50%;background:var(--green);border:3px solid var(--paper);color:white;width:34px;height:34px;box-shadow:0 2px 8px #20382c40;font-size:0.8125rem;font-weight:700}.route-marker.fixed{cursor:default}.route-marker.fixed span{background:var(--paper);color:var(--green);border:2px solid var(--green)}.route-marker.selected span{outline:3px solid #ba8e4b;outline-offset:2px}.route-marker:focus-visible{outline:3px solid #ba8e4b;border-radius:50%}.map-dialog{width:900px;max-width:calc(100vw - 24px)}.editor-map{height:340px;background:var(--soft);border:1px solid var(--line);border-radius:10px}.editor-map[data-edit-mode=add],.editor-map[data-edit-mode=move]{cursor:crosshair}.map-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 12px}.map-toolbar .secondary[aria-pressed=true]{background:var(--green);color:white}.map-toolbar span{font-size:0.75rem;color:var(--muted);flex-basis:100%}.map-dialog .stop-row span{min-width:120px}.map-dialog .stop-row button[data-locate]{font-size:0.75rem;padding-inline:10px}.map-dialog .dialog-title{font-size:2rem}.phone-demo dialog{max-width:406px}.phone-demo .planning-strip{display:block}.phone-demo .planning-strip p{margin-top:12px}.phone-demo .tomorrow-strip{align-items:flex-start;flex-direction:column}.phone-demo .leaflet-map{height:280px}.phone-demo .stop-row{flex-wrap:wrap}.phone-demo .stop-row span{flex-basis:100%}
@media(max-width:700px){.planning-strip{display:block}.planning-strip p{margin-top:12px}.tomorrow-strip{align-items:flex-start;flex-direction:column}.leaflet-map{height:280px}.editor-map{height:285px}.map-dialog .stop-row{flex-wrap:wrap}.map-dialog .stop-row span{flex-basis:100%}.map-dialog .dialog-title{font-size:1.75rem}.map-toolbar button{flex:1}.map-caption{font-size:0.625rem}}
.phase-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--soft);border-radius:8px;padding:16px 20px;margin-bottom:28px}.phase-strip p{font-size:0.8125rem;line-height:1.7;margin-top:6px;max-width:650px}.phase-strip small{display:block;font-size:0.6875rem;margin-top:6px;color:var(--muted)}.original-phase{background:#eee9dd}.phase-strip .secondary{flex-shrink:0}.mode button{padding-inline:16px}.phone-demo .mode button{font-size:0.8125rem;padding-inline:10px}.phone-demo .phase-strip{padding:14px;display:block}.phone-demo .phase-strip .secondary{margin-top:12px}
.leaflet-map .route-marker{cursor:default}
@media(max-width:700px){.mode button{font-size:0.8125rem;padding-inline:10px}.phase-strip{padding:14px;display:block}.phase-strip .secondary{margin-top:12px}}
