:root{--paper:#f6f5f0;--card:#fff;--ink:#2b342e;--muted:#8b938c;--line:#e9ece7;--green:#39745e;--green-dark:#285d49;--mint:#edf4ed;--sage:#728e79;--clay:#c28065;--shadow:0 12px 35px #3340330b;font-family:"DM Sans","Noto Sans TC",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit}.topbar{height:72px;background:#fbfaf7eb;border-bottom:1px solid #e9e8e1;display:flex;align-items:center;padding:0 max(32px,calc((100% - 1320px)/2));gap:76px;position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}.brand-mark{position:relative;width:31px;height:31px;border:1.5px solid #477a60;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;transform:rotate(-30deg);overflow:hidden}.brand-mark i{width:2px;height:8px;border-radius:3px;background:#7eaa87}.brand-mark i:nth-child(2){height:14px;background:#39745e}.brand-mark i:nth-child(3){height:10px}.brand-mark b{position:absolute;left:1px;right:1px;bottom:-1px;height:8px;background:#e9f0e6;opacity:.75;border-radius:50%}.brand-word{font-size:17px;font-weight:800;letter-spacing:-.7px;line-height:1}.brand-word>span{margin-left:7px;color:#9ba49c;font:600 8px "DM Sans",sans-serif;letter-spacing:1.5px;vertical-align:2px}.main-nav{height:100%;display:flex;align-items:center;gap:34px}.main-nav a{position:relative;height:100%;display:flex;align-items:center;text-decoration:none;color:#8c948d;font-size:11px;transition:color .15s}.main-nav a:hover,.main-nav a.nav-active{color:#335b46}.main-nav a.nav-active:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:0;border-radius:3px;background:#648b6d}.share-top{margin-left:auto;display:flex;align-items:center;gap:8px;height:36px;padding:0 15px;border:1px solid #dce5dc;border-radius:7px;background:#fff;color:#456b52;font-size:10px;font-weight:600;cursor:pointer;transition:.18s}.share-top:hover{background:#eef4ee;border-color:#b9cebd}.share-top span{font-size:15px}.page-shell{max-width:1320px;margin:0 auto;padding:39px 30px 24px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.eyebrow{display:flex;align-items:center;gap:8px;color:#8a998d;font:700 8px "DM Sans",sans-serif;letter-spacing:1.55px}.eyebrow-line{width:21px;height:1px;background:#8ca28e}.eyebrow-spark{font-size:11px;color:#bb9270}.welcome-row h1{margin:12px 0 6px;font-size:31px;letter-spacing:-1.2px;line-height:1.35;font-weight:700}.welcome-row h1 em{font-style:normal;color:#508061}.welcome-row p{margin:0;color:#8d958e;font-size:11px}.today-card{display:flex;align-items:center;gap:11px;min-width:230px;padding:11px 13px;border:1px solid #e7e9e1;border-radius:9px;background:#fbfaf7;margin-bottom:1px}.calendar-icon{width:33px;height:33px;display:grid;place-items:center;border-radius:8px;background:#edf3e9;color:#65846a;font-size:17px}.today-card div{display:flex;flex:1;flex-direction:column;gap:3px}.today-card small{font-size:8px;color:#969e96}.today-card strong{font-size:10px;font-weight:600;color:#435449}.today-sun{font-size:21px;color:#c79c70}.trip-summary{min-height:74px;display:flex;align-items:center;gap:25px;background:#fff;border:1px solid #e9ece6;border-radius:11px;padding:13px 20px;margin-bottom:17px;box-shadow:var(--shadow)}.summary-location{display:flex;align-items:center;gap:10px;min-width:170px}.location-pin{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#eff4ed;color:#63836a;font-size:19px}.summary-location div{display:flex;flex-direction:column;gap:3px}.summary-location small{font-size:8px;color:#9aa19b}.summary-location strong{font-size:11px;color:#394b3e;font-weight:600}.summary-divider{height:30px;width:1px;background:#edf0eb}.summary-stat{display:flex;flex-direction:column;gap:2px;min-width:60px}.summary-stat strong{font:600 15px "DM Sans","Noto Sans TC",sans-serif;color:#394c3e;letter-spacing:-.3px}.summary-stat span{font-size:8px;color:#9ba39c}.summary-spacer{flex:1}.area-field{display:flex;align-items:center;gap:8px;padding:5px 9px;border:1px solid #e9ece6;border-radius:6px;background:#fbfcfa}.area-field span{font-size:8px;color:#9ba39c}.area-field input{width:60px;border:0;outline:0;background:transparent;color:#455449;font-size:9px}.workspace{display:grid;grid-template-columns:minmax(290px, .78fr) minmax(560px, 1.55fr);align-items:start;gap:17px}.panel{min-width:0;background:var(--card);border:1px solid #e8ebe5;border-radius:12px;box-shadow:var(--shadow)}.import-panel{padding:20px 19px 17px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid #edf0eb}.step-heading{min-width:0}.step-label{font:700 8px "DM Sans",sans-serif;letter-spacing:1.35px;color:#809784}.panel-heading h2{margin:5px 0 0;font-size:14px;font-weight:700;letter-spacing:-.3px}.text-button{border:0;background:transparent;color:#68866f;font-size:9px;white-space:nowrap;cursor:pointer}.text-button:hover{color:#365e47}.panel-intro{margin:12px 0;color:#909890;font-size:9px;line-height:1.65}.drop-zone{position:relative;min-height:199px;border:1px dashed #cbd7ca;border-radius:8px;background:#fbfcfa;transition:.18s}.drop-zone:before{content:"";position:absolute;inset:6px;border:1px solid #f0f3ee;border-radius:5px;pointer-events:none}.drop-zone.drag-active{border-color:#538364;background:#f0f6ef;box-shadow:0 0 0 3px #56836514}.drop-icon{position:absolute;left:13px;top:12px;display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#edf3eb;color:#68876d;z-index:1}.drop-icon span{font-size:16px;line-height:1}.drop-zone textarea{position:relative;z-index:2;display:block;width:100%;height:157px;resize:vertical;border:0;outline:0;background:transparent;padding:12px 12px 7px 45px;color:#536358;font:10px/1.7 "DM Sans","Noto Sans TC",sans-serif}.drop-zone textarea::placeholder{color:#aeb7ae}.drop-hint{position:absolute;left:14px;right:14px;bottom:11px;padding-top:8px;border-top:1px solid #edf0ec;color:#a1aaa2;font-size:8px;text-align:center}.drop-hint span{color:#79967c;font-size:11px;margin-right:4px}.input-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.add-button{height:34px;display:flex;align-items:center;justify-content:center;gap:6px;flex:1;border:0;border-radius:6px;background:#42765b;color:#fff;font-size:10px;font-weight:600;cursor:pointer;transition:.16s}.add-button:hover{background:#315f48}.add-button span{font-size:15px;line-height:1}.clear-button{height:34px;padding:0 13px;border:1px solid #e7ebe5;border-radius:6px;background:#fff;color:#818b83;font-size:9px;cursor:pointer}.clear-button:hover{background:#f7f8f5}.divider-label{display:flex;align-items:center;gap:9px;margin:20px 0 11px;color:#acb4ac;font:600 7px "DM Sans",sans-serif;letter-spacing:1.2px;white-space:nowrap}.divider-label span{height:1px;flex:1;background:#eef1ec}.optimize-card{display:flex;align-items:center;gap:10px;padding:12px 11px;background:#f0f5ed;border:1px solid #e7eee4;border-radius:8px}.optimize-ornament{position:relative;display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:50%;background:#e2ecdf;color:#5d8063;overflow:hidden}.optimize-ornament span{position:relative;z-index:2;font-size:17px}.optimize-ornament i{position:absolute;left:-5px;right:-5px;bottom:4px;height:11px;border-top:1px solid #b8cbb5;border-radius:50%}.optimize-ornament i:nth-of-type(2){bottom:0}.optimize-ornament i:nth-of-type(3){bottom:-4px}.optimize-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.optimize-copy strong{font-size:10px;color:#45654a}.optimize-copy span{font-size:8px;color:#94a094;white-space:nowrap}.optimize-button{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:7px;background:#45765b;color:#fff;font-size:14px;cursor:pointer;transition:transform .18s,background .18s}.optimize-button:hover{transform:rotate(20deg);background:#315f48}.optimize-button:disabled{opacity:.45;cursor:not-allowed}.optimize-button.is-loading{animation:spin 1s linear infinite}.departure-field,.mode-field{display:flex;align-items:center;justify-content:space-between;margin-top:15px;color:#7b867d;font-size:9px}.departure-control{display:flex;align-items:center;gap:6px;color:#8ca08e}.departure-control input,.mode-field select{height:29px;border:1px solid #e8ece6;border-radius:5px;background:#fbfcfa;padding:0 8px;color:#526257;font-size:9px;outline:0}.departure-control input:focus,.mode-field select:focus{border-color:#a9c2ac}.mode-field select{min-width:113px}.privacy-copy{display:flex;align-items:flex-start;gap:5px;margin:17px 0 0;padding-top:12px;border-top:1px solid #edf0eb;color:#a1aaa2;font-size:8px;line-height:1.6}.privacy-copy span{color:#96ab91}.itinerary-panel{padding:19px 20px 13px}.itinerary-heading-row{display:flex;align-items:center;gap:13px;margin-bottom:14px}.itinerary-panel-heading{flex:1;padding-bottom:0;border-bottom:0}.route-status{display:flex;align-items:center;gap:6px;margin-top:9px;color:#7d927f;font-size:8px;white-space:nowrap}.route-status i{display:block;width:6px;height:6px;border-radius:50%;background:#70a57c;box-shadow:0 0 0 3px #70a57c1a}.route-status i.pulse-dot{animation:pulse .8s infinite alternate}.google-route-button{height:32px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid #dfe8de;border-radius:6px;background:#fff;color:#4c7055;font-size:9px;white-space:nowrap;cursor:pointer;transition:.15s}.google-route-button:hover{background:#eff5ee;border-color:#c0d2c1}.google-route-button:disabled{opacity:.45;cursor:not-allowed}.google-route-button span{font-size:14px}.map-card{overflow:hidden;border:1px solid #e4e9e1;border-radius:9px;background:#f8faf6}.map-header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 14px}.map-header>div{display:flex;flex-direction:column;gap:3px}.map-live{display:flex;align-items:center;gap:5px;color:#8a9b8a;font:700 7px "DM Sans",sans-serif;letter-spacing:1.25px}.map-live i{width:5px;height:5px;border-radius:50%;background:#79a181}.map-header h3{margin:0;color:#45564a;font-size:11px;font-weight:600}.map-toggle{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:#8b988b;font-size:8px;cursor:pointer}.map-toggle:hover{color:#52745a}.map-toggle i{font-size:13px;font-style:normal}.map-art{position:relative;height:300px;overflow:hidden;background:#eaf0e8;transition:height .28s ease}.map-card.map-collapsed .map-art{height:0}.route-map{display:block;width:100%;height:100%;overflow:hidden}.map-layer{transform-origin:380px 165px;transition:transform .22s ease}.waterway{fill:#d9e8e5;opacity:.95}.park-shape{fill:#dae8d5;stroke:#d1e1cd;stroke-width:1}.park-two{fill:#e0ead8}.park-three{fill:#d6e5d1}.street{fill:none;stroke:#fffefa;stroke-width:8;stroke-linecap:round;opacity:.96}.street-wide{stroke-width:13}.street-highlight{fill:none;stroke:#d9ded0;stroke-width:2;stroke-dasharray:2 8;stroke-linecap:round}.map-label{fill:#9dab9b;font:600 8px "DM Sans",sans-serif;letter-spacing:1.7px;opacity:.78}.route-shadow{fill:none;stroke:#f8fcf6;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;opacity:.93}.route-line{fill:none;stroke:#528467;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;filter:drop-shadow(0 2px 2px #54795b26);animation:routeDraw .65s ease both}.marker-halo{fill:#5f8b69;opacity:.16}.marker-dot{fill:#4d7d5b;stroke:#fff;stroke-width:3}.marker-number{fill:#fff;font:700 9px "DM Sans",sans-serif}.marker-label{fill:#3e5944;font:600 9px "Noto Sans TC",sans-serif;paint-order:stroke;stroke:#f6f8f2;stroke-width:4px;stroke-linejoin:round}.map-compass{position:absolute;right:14px;top:13px;display:flex;align-items:center;gap:4px;color:#819481;font:700 7px "DM Sans",sans-serif}.map-compass i{color:#789477;font-size:12px;font-style:normal}.map-credit{position:absolute;left:12px;bottom:10px;display:flex;align-items:center;gap:6px;padding:6px 8px;background:#f9fbf4dd;border:1px solid #e7ece3;border-radius:5px;color:#8a9788;font:600 7px "DM Sans","Noto Sans TC",sans-serif;letter-spacing:.4px;backdrop-filter:blur(4px)}.map-credit>span{color:#759578}.map-credit i{height:10px;width:1px;background:#d4ddd2}.map-zoom{position:absolute;right:12px;bottom:11px;display:flex;flex-direction:column;border:1px solid #e4e9e2;border-radius:5px;overflow:hidden;background:#ffffffdb}.map-zoom button{width:27px;height:25px;border:0;background:transparent;color:#788b79;font-size:14px;cursor:pointer}.map-zoom button+button{border-top:1px solid #e7ebe4}.map-zoom button:hover{background:#edf3eb}.map-legend{height:35px;display:flex;align-items:center;gap:17px;padding:0 13px;color:#8e998f;font-size:8px}.map-legend>span{display:flex;align-items:center;gap:6px}.map-legend>span>i{display:inline-block;width:7px;height:7px;border-radius:50%}.legend-route{background:#57856a}.legend-stop{background:#94a793}.map-legend .map-distance{margin-left:auto;color:#7f8e80}.map-distance span{color:#526d57;font:600 9px "DM Sans",sans-serif}.stops-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:22px 1px 11px}.stops-heading>div{display:flex;flex-direction:column;gap:4px}.stops-heading h3{margin:0;color:#38473b;font-size:12px;font-weight:700}.stops-heading .step-label{font-size:7px}.drag-note{display:flex;align-items:center;gap:5px;color:#a5ada5;font-size:8px}.drag-note span{font-size:13px}.itinerary-list{display:flex;flex-direction:column}.stop-row{display:grid;grid-template-columns:57px 1fr;gap:0;min-width:0;cursor:grab}.stop-row:active{cursor:grabbing}.stop-row.is-dragging{opacity:.42}.timeline-column{display:flex;align-items:center;flex-direction:column;padding-top:13px}.stop-time{color:#758c79;font:600 9px "DM Sans",sans-serif}.timeline-stem{position:relative;display:flex;flex:1;justify-content:center;width:100%;min-height:20px}.timeline-stem:before{content:"";position:absolute;top:12px;bottom:0;width:1px;background:#dce6db}.timeline-stem i{position:absolute;top:10px;width:5px;height:5px;border:1.4px solid #88a58a;border-radius:50%;background:#fff}.stop-row:last-child .timeline-stem:before{display:none}.stop-card{min-width:0;margin:0 0 9px;padding:10px 11px 9px;border:1px solid #e9ede7;border-radius:8px;background:#fff;transition:border-color .16s,box-shadow .16s}.stop-card:hover{border-color:#d7e3d6;box-shadow:0 5px 15px #4053420a}.stop-card-main{display:flex;align-items:center;gap:10px;min-width:0}.stop-number{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;background:#edf3eb;color:#638269;font:600 9px "DM Sans",sans-serif}.stop-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.stop-category{color:#a0aaa0;font-size:7px}.stop-name{width:100%;padding:0;border:0;outline:0;background:transparent;color:#39463c;font-size:10px;font-weight:600;text-overflow:ellipsis}.stop-name:focus{color:#335f43}.stop-controls{display:flex;align-items:center;gap:2px;opacity:.7}.move-button,.remove-button{display:grid;place-items:center;width:23px;height:23px;border:0;border-radius:5px;background:transparent;color:#89968b;font-size:11px;cursor:pointer}.move-button:hover,.remove-button:hover{background:#eef3ed;color:#476b51}.move-button:disabled{opacity:.3;cursor:default}.remove-button{margin-left:2px;color:#a0a7a0;font-size:16px}.stop-card-meta{display:flex;align-items:center;gap:9px;margin:7px 0 0 34px;color:#98a298;font-size:7px}.duration-pill{display:inline-flex;align-items:center;gap:3px;padding:4px 6px;border-radius:4px;background:#f5f7f3;color:#758578;white-space:nowrap}.travel-connector{white-space:nowrap}.stop-nav{margin-left:auto;display:flex;align-items:center;gap:4px;color:#758c78;text-decoration:none;white-space:nowrap}.stop-nav:hover{color:#365d44}.stop-nav span{font-size:10px}.empty-state{min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.empty-state[hidden]{display:none}.empty-state>span{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#eff4ed;color:#6f8b72;font-size:22px}.empty-state strong{margin-top:12px;color:#506351;font-size:12px}.empty-state p{margin:6px 0 11px;color:#9ba49b;font-size:9px}.empty-state button{border:0;background:transparent;color:#698a6c;font-size:9px;cursor:pointer}.route-footer{display:flex;justify-content:space-between;gap:15px;margin-top:4px;padding:11px 2px 0;border-top:1px solid #eff1ed;color:#a1aaa1;font-size:7px}.route-footer>span:first-child{display:flex;align-items:center;gap:5px}.route-footer>span:first-child i{width:5px;height:5px;border-radius:50%;background:#b4c8ad}.page-footer{display:flex;align-items:center;gap:14px;padding:20px 4px 0;color:#a2aaa2;font-size:8px}.footer-brand{text-decoration:none;color:#728a76;font-size:10px;font-weight:700;letter-spacing:.2px}.footer-brand span{margin-left:4px;color:#a4aca4;font:600 7px "DM Sans",sans-serif;letter-spacing:1.2px}.page-footer>a:last-child{margin-left:auto;text-decoration:none;color:#778b79}.toast{position:fixed;z-index:50;bottom:24px;left:50%;transform:translate(-50%,10px);opacity:0;max-width:calc(100vw - 30px);padding:10px 15px;background:#344b3a;color:white;border-radius:7px;font-size:10px;text-align:center;box-shadow:0 6px 25px #29372e27;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{to{opacity:.35;transform:scale(.65)}}@keyframes routeDraw{from{stroke-dasharray:0 999;opacity:.5}to{stroke-dasharray:999 0;opacity:1}}
@media(max-width:1000px){.topbar{gap:42px}.workspace{grid-template-columns:minmax(265px,.72fr) minmax(450px,1.28fr)}.page-shell{padding-left:23px;padding-right:23px}.trip-summary{gap:17px}.summary-location{min-width:150px}.map-art{height:270px}}
@media(max-width:760px){.topbar{height:62px;padding:0 18px;gap:26px}.main-nav{gap:18px}.main-nav a{font-size:9px}.page-shell{padding:27px 18px 20px}.welcome-row{align-items:flex-start}.welcome-row h1{font-size:26px}.today-card{min-width:auto;padding:8px 10px}.calendar-icon{width:29px;height:29px}.today-card strong{font-size:9px}.today-sun{display:none}.trip-summary{gap:13px;padding:11px 13px}.summary-location{min-width:135px}.summary-stat{min-width:48px}.summary-stat strong{font-size:13px}.area-field{gap:5px;padding:5px 6px}.area-field input{width:45px}.workspace{grid-template-columns:minmax(0, .78fr) minmax(0, 1.22fr);gap:12px}.import-panel{padding:17px 14px}.itinerary-panel{padding:16px 14px 12px}.map-art{height:240px}.map-legend{gap:10px;padding:0 9px;font-size:7px}.stop-row{grid-template-columns:49px 1fr}.stop-card{padding:9px}.stop-card-meta{margin-left:0;gap:6px}.stop-nav{font-size:7px}.stop-controls{opacity:1}.google-route-button{padding:0 8px;font-size:8px}.route-status{font-size:7px}}
@media(max-width:620px){.topbar{padding:0 14px;gap:18px}.brand-word{font-size:16px}.brand-word>span{display:none}.main-nav{gap:13px}.main-nav a{font-size:8px}.share-top{height:32px;padding:0 9px;font-size:8px;gap:5px}.share-top span{font-size:13px}.page-shell{padding:21px 13px 18px}.welcome-row{display:block;margin-bottom:17px}.welcome-row h1{font-size:25px;margin-top:9px}.welcome-row p{font-size:9px}.today-card{display:none}.trip-summary{min-height:65px;gap:10px;padding:9px}.summary-location{min-width:0;flex:1;gap:7px}.location-pin{width:28px;height:28px;font-size:16px}.summary-location small{font-size:7px}.summary-location strong{font-size:9px;white-space:nowrap}.summary-stat{min-width:38px}.summary-stat strong{font-size:11px}.summary-stat span{font-size:7px;white-space:nowrap}.summary-divider{height:25px}.area-field{display:none}.workspace{display:flex;flex-direction:column;gap:12px}.import-panel,.itinerary-panel{width:100%}.import-panel{padding:16px}.panel-heading h2{font-size:13px}.drop-zone{min-height:185px}.drop-zone textarea{height:145px}.optimize-copy span{font-size:8px}.itinerary-panel{padding:15px 12px 11px}.itinerary-heading-row{gap:8px}.itinerary-panel-heading{display:block}.route-status{margin-top:7px}.map-art{height:250px}.map-legend{height:33px}.stops-heading{margin-top:18px}.stops-heading h3{font-size:11px}.drag-note{font-size:7px}.stop-row{grid-template-columns:50px 1fr}.stop-time{font-size:8px}.stop-card{margin-bottom:8px;padding:9px 8px}.stop-card-main{gap:7px}.stop-number{width:22px;height:22px}.stop-name{font-size:9px}.stop-controls{gap:0}.move-button,.remove-button{width:21px;height:21px}.stop-card-meta{font-size:7px;gap:6px}.duration-pill{padding:4px}.route-footer{font-size:6.5px}.page-footer{gap:8px}.page-footer>span{font-size:7px;max-width:145px}}
@media(max-width:380px){.main-nav{gap:8px}.main-nav a{font-size:7px}.brand-mark{width:27px;height:27px}.share-top{padding:0 7px}.welcome-row h1{font-size:22px}.trip-summary{gap:7px}.summary-location{gap:5px}.summary-stat{min-width:34px}.google-route-button{font-size:7px;padding:0 6px}.stop-card-meta{gap:4px}.travel-connector{font-size:6px}}
.map-credit a{color:inherit;text-decoration:none;white-space:nowrap}.map-credit a:hover{color:#52745a;text-decoration:underline}
.area-field-inline{display:flex;width:100%;margin:0 0 11px;padding:6px 9px}.area-field-inline input{width:min(170px,70%);text-align:right}
.map-layer{transform-box:fill-box;transform-origin:center}

:root{--paper:#fff4f7;--card:#fffdfd;--ink:#493a42;--muted:#9b838d;--line:#f2dfe6;--green:#d95791;--green-dark:#b53d78;--mint:#fff0f5;--sage:#b85a83;--clay:#efa8bd;--shadow:0 12px 34px #8e46600d}
body{background:#fff4f7;color:#493a42}
.topbar{background:#fff9fbed;border-color:#f2dfe6}
.brand-mark{border-color:#d95791;background:#fff1f5}
.brand-mark i{background:#e78ab0}
.brand-mark i:nth-child(2){background:#d95791}
.brand-mark b{background:#f7d9e4}
.brand-word{color:#634954}
.brand-word>span{color:#b39aa4}
.share-top{border-color:#f0cfda;background:#fff;color:#b74379;border-radius:999px}
.share-top:hover,.google-route-button:hover{background:#fff0f5;border-color:#e6b5c8}
.welcome-row{align-items:center}
.hero-title-row{display:flex;align-items:center;gap:15px}
.welcome-row h1{margin:0;color:#5a414c;font-size:34px;font-weight:800;letter-spacing:-1.2px}
.hero-doodles{display:flex;align-items:center;gap:7px;transform:translateY(-2px)}
.bow-decoration{position:relative;display:inline-block;width:35px;height:27px}
.bow-decoration i{position:absolute;top:5px;width:17px;height:16px;background:#e84d8d;border:1px solid #d83f7e;border-radius:12px 3px 12px 3px;box-shadow:inset 0 2px 3px #ffffff55}
.bow-decoration i:first-child{left:1px;transform:rotate(23deg)}
.bow-decoration i:nth-child(2){right:1px;transform:scaleX(-1) rotate(23deg)}
.bow-decoration b{position:absolute;z-index:1;left:14px;top:10px;width:8px;height:8px;border-radius:3px;background:#f5a0bd;box-shadow:0 1px 2px #92335540}
.blue-sparkle{color:#76b9e7;font-size:24px;line-height:1}
.gold-sparkle{color:#f3c64d;font-size:19px;line-height:1}
.today-card,.trip-summary,.panel{background:#fffdfd;border-color:#f1dce4;border-radius:18px;box-shadow:0 10px 28px #9c52630b}
.today-card{background:#fff9fb}
.calendar-icon,.location-pin{background:#fce7ef;color:#d95791;border-radius:12px}
.today-sun{color:#efc450}
.trip-summary{min-height:72px}
.summary-location strong,.today-card strong{color:#624a54}
.summary-stat strong{color:#c14c80}
.summary-divider{background:#f2e2e8}
.panel{padding:20px;border-radius:20px}
.panel-heading{border-color:#f4e5eb}
.panel-heading h2,.stops-heading h3{color:#614650;font-size:14px}
.text-button,.empty-state button{color:#d04e86}
.area-field,.mode-field select{border-color:#f0dce4;background:#fff9fb;color:#765b66;border-radius:12px}
.area-field-inline{display:flex;width:100%;margin:0 0 12px;padding:9px 12px}
.area-field-inline input{width:min(220px,72%);text-align:right}
.drop-zone{min-height:184px;border:1px dashed #e7a6bd;border-radius:18px;background:#fff8fa}
.drop-zone:focus-within,.drop-zone.drag-active{border-color:#d95791;background:#fff2f6;box-shadow:0 0 0 4px #f8dce7}
.drop-zone textarea{color:#634a55}
.drop-zone textarea::placeholder,.notes-field textarea::placeholder{color:#c3aab4}
.drop-icon{background:#fbe4ed;color:#d95791;border-radius:15px}
.drop-hint{color:#b495a2}
.input-actions{gap:9px}
.add-button,.optimize-button{background:#d95791;border-radius:999px}
.add-button:hover,.optimize-button:hover{background:#bf427d}
.clear-button{border-color:#f0dce4;color:#a77e8d;border-radius:999px}
.notes-field{display:flex;flex-direction:column;gap:7px;margin-top:15px;color:#836873;font-size:10px}
.notes-field textarea{width:100%;min-height:58px;resize:vertical;padding:10px 12px;border:1px solid #f0dce4;border-radius:13px;outline:0;background:#fff9fb;color:#624954;font-size:11px;line-height:1.5}
.notes-field textarea:focus{border-color:#dfa0b7;box-shadow:0 0 0 3px #fae7ee}
.mode-field{margin-top:13px;color:#836873}
.mode-field select{padding:8px 11px;outline:0}
.optimize-card{margin-top:15px;padding:11px 12px;border-color:#f5dce6;border-radius:16px;background:#fff0f5}
.optimize-ornament{background:#f9dce7;color:#d95791}
.optimize-copy strong{color:#7c5364;font-size:11px}
.itinerary-panel{padding:20px;border-radius:20px}
.google-route-button{border-color:#f0dce4;color:#bb477b;border-radius:999px}
.map-card{border-color:#f1dbe4;border-radius:18px;background:#fff8fa}
.map-header h3{color:#624954}
.map-toggle{color:#a77589}
.map-art{background:#faedf1}
.map-layer>rect{fill:#faedf1}
.waterway{fill:#d9eff7}
.park-shape{fill:#f4dfe7;stroke:#efcedb}
.park-two{fill:#e5f2f8}
.park-three{fill:#f8e8ca}
.street{stroke:#fffdfd}
.street-highlight{stroke:#edc4d3}
.route-line{stroke:#d95791}
.route-shadow{stroke:#fffdfd}
.marker-halo{fill:#d95791}
.marker-dot{fill:#d95791}
.map-credit{border-color:#f0dce4;border-radius:9px;background:#fffdf2dd;color:#987b87}
.map-credit a:hover{color:#bd437a}
.map-zoom{border-color:#f0dce4;border-radius:10px;background:#fffdf2e8}
.map-zoom button{color:#b54d7c}
.map-zoom button+button{border-color:#f4e4e9}
.map-zoom button:hover{background:#fff0f5}
.map-legend{color:#a27f8d}
.legend-route{background:#d95791}
.legend-stop{background:#8fc7e1}
.map-legend .map-distance,.map-distance span{color:#a84a73}
.stops-heading{margin-top:20px}
.stop-row{grid-template-columns:30px 1fr;cursor:default}
.timeline-column{padding-top:17px}
.timeline-stem:before{background:#f0dce4}
.timeline-stem i{width:8px;height:8px;border-color:#e28cad;background:#fff4f7}
.stop-card{padding:13px 14px 11px;border-color:#f2e0e7;border-radius:16px;background:#fff}
.stop-card:hover{border-color:#e8bfd0;box-shadow:0 6px 18px #a346680d}
.stop-number{width:29px;height:29px;border-radius:11px;background:#fce8ef;color:#c84d83;font-size:10px}
.stop-copy{min-height:30px;justify-content:center}
.stop-name{color:#5b424c;font-size:12px}
.stop-name:focus{color:#b43e75}
.stop-controls{opacity:1}
.move-button,.remove-button{width:28px;height:28px;border-radius:9px;color:#af8293;font-size:13px}
.move-button:hover,.remove-button:hover{background:#fff0f5;color:#bd477a}
.stop-card-meta{margin:8px 0 0 40px;color:#ad8b98;font-size:9px}
.travel-connector{color:#a77f8e}
.stop-nav{color:#c1477d;font-size:9px}
.stop-nav:hover{color:#922c60}
.empty-state>span{background:#fce8ef;color:#d95791;border-radius:16px}
.empty-state strong{color:#735563}
.toast{background:#744c5c;border-radius:999px;font-size:12px}
@media(max-width:760px){
  .page-shell{padding:24px 16px 20px}
  .workspace{display:flex;flex-direction:column;gap:14px}
  .import-panel,.itinerary-panel{width:100%;padding:18px;border-radius:20px}
  .area-field-inline{display:flex}
  .welcome-row{display:block;margin-bottom:18px}
  .welcome-row h1{font-size:29px;margin:0}
  .today-card{display:none}
  .map-art{height:clamp(190px,55vw,270px)}
  .map-legend{font-size:9px;gap:12px;padding:0 11px}
  .stop-row{grid-template-columns:25px 1fr}
  .stop-card-meta{margin-left:40px;font-size:9px}
  .google-route-button{font-size:10px;padding:0 12px}
}
@media(max-width:420px){
  .topbar{height:58px;padding:0 13px}
  .page-shell{padding:20px 11px 16px}
  .hero-title-row{gap:10px}
  .welcome-row h1{font-size:27px}
  .hero-doodles{gap:4px}
  .bow-decoration{transform:scale(.88);transform-origin:center}
  .trip-summary{gap:8px;padding:9px 10px}
  .summary-location{gap:7px}
  .summary-location small{font-size:9px}
  .summary-location strong{font-size:10px}
  .summary-stat{min-width:34px}
  .summary-stat span{font-size:8px}
  .panel-heading h2{font-size:14px}
  .drop-zone textarea{height:130px}
  .map-legend{gap:8px;font-size:9px}
  .stop-card{padding:11px 10px}
  .stop-card-main{gap:7px}
  .stop-controls{gap:0}
  .move-button,.remove-button{width:25px;height:26px}
  .stop-name{font-size:11px}
  .stop-card-meta{margin-left:0;justify-content:space-between;gap:6px}
  .travel-connector,.stop-nav{font-size:9px}
}

/* Muted rose palette and real, touch-friendly map controls */
:root{--paper:#f4efee;--card:#fffdfa;--ink:#403c3b;--muted:#847b79;--line:#e6ddda;--green:#a87983;--green-dark:#76515c;--mint:#f2e9e8;--sage:#9b737b;--clay:#b79a8c;--shadow:0 14px 36px #53413d0c}
body{background:#f4efee;color:#403c3b}
.topbar{background:#f8f5f2f2;border-color:#e7dfdc}
.brand-mark{border-color:#9e727d;background:#f1e5e4}
.brand-mark i{background:#b89096}
.brand-mark i:nth-child(2){background:#916b76}
.brand-mark b{background:#e6d7d5}
.brand-word,.welcome-row h1{color:#4b4141}
.brand-word>span{color:#948987}
.share-top{border-color:#ddc9c9;background:#fbf7f4;color:#805e66}
.share-top:hover,.google-route-button:hover{background:#f0e5e4;border-color:#cfb4b6}
.bow-decoration i{background:#a87983;border-color:#956a74}
.bow-decoration b{background:#cfafb0}
.blue-sparkle{color:#8ba5b2}
.gold-sparkle{color:#c5a75f}
.today-card,.trip-summary,.panel{background:#fffdfa;border-color:#e8dedb;box-shadow:0 12px 34px #54413d0b}
.today-card{background:#faf6f3}
.calendar-icon,.location-pin{background:#eee2e1;color:#8c6670}
.today-sun{color:#c3a663}
.summary-location strong,.today-card strong{color:#514646}
.summary-stat strong{color:#916b75}
.summary-divider,.panel-heading{border-color:#eee5e2;background-color:transparent}
.summary-divider{background:#e9dfdc}
.panel-heading h2,.stops-heading h3{color:#514646}
.text-button,.empty-state button{color:#86636b}
.area-field,.mode-field select,.notes-field textarea{border-color:#e6dbd8;background:#faf7f4;color:#564948}
.area-field span,.mode-field,.notes-field{color:#827472}
.drop-zone{border-color:#cbb5b3;background:#faf7f4}
.drop-zone:focus-within,.drop-zone.drag-active{border-color:#a87983;background:#f4e9e8;box-shadow:0 0 0 4px #a8798319}
.drop-zone textarea{color:#514646}
.drop-zone textarea::placeholder,.notes-field textarea::placeholder{color:#a99a96}
.drop-icon{background:#eee2e1;color:#8e6670}
.drop-hint{color:#93827e}
.add-button,.optimize-button{background:#95717a}
.add-button:hover,.optimize-button:hover{background:#76545e}
.clear-button{border-color:#e4d9d6;color:#756a67;background:#fffdfa}
.notes-field textarea:focus{border-color:#b98e95;box-shadow:0 0 0 3px #eadcdb}
.optimize-card{border-color:#e8dbd9;background:#f2e9e8}
.optimize-ornament{background:#e7d8d7;color:#84626b}
.optimize-copy strong{color:#5b4b4b}
.google-route-button{border-color:#dfd3d1;background:#fffdfa;color:#775961}
.map-card{border-color:#e6dcda;background:#f8f6f2}
.map-header h3{color:#514646}
.map-toggle{color:#806c6b}
.map-art{background:#e9e8e1}
.route-map,.leaflet-container{width:100%;height:100%}
.leaflet-container{background:#ece9e1;color:#514646;font:12px "DM Sans","Noto Sans TC",sans-serif}
.leaflet-tile{filter:saturate(.76) contrast(.98) sepia(.025)}
.leaflet-control-zoom{border:1px solid #ddd3d0!important;border-radius:9px!important;overflow:hidden;box-shadow:0 2px 10px #443b3715!important}
.leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:32px!important;border-color:#e8e0dd!important;background:#fffdfa!important;color:#6e555a!important;font-size:20px!important}
.leaflet-control-zoom a:hover{background:#f1e8e6!important;color:#563d43!important}
.leaflet-control-attribution{padding:3px 6px!important;border-radius:6px 0 0!important;background:#fffdfae8!important;color:#786c68!important;font-size:10px!important}
.leaflet-control-attribution a{color:#725b60!important}
.map-stop-icon{border:0;background:transparent}
.map-stop-pin{display:grid;place-items:center;width:31px;height:31px;border:2px solid #fffdfa;border-radius:50% 50% 50% 7px;transform:rotate(-45deg);background:#9c6f7a;box-shadow:0 3px 10px #34272c45}
.map-stop-pin b{transform:rotate(45deg);color:#fff;font:700 9px "DM Sans",sans-serif;letter-spacing:-.2px}
.map-popup-index{margin-right:7px;color:#9a6d78;font:700 11px "DM Sans",sans-serif}
.leaflet-popup-content-wrapper{border:1px solid #e9dfdc;border-radius:11px;background:#fffdfa;color:#514646;box-shadow:0 8px 24px #40333420}
.leaflet-popup-content{margin:11px 14px;font:500 12px/1.5 "Noto Sans TC",sans-serif}
.leaflet-popup-tip{background:#fffdfa}
.map-legend{color:#837775}
.legend-route{background:#9c6f7a}
.legend-stop{background:#8ba5b2}
.map-legend .map-distance,.map-distance span{color:#6d595a}
.stop-card{border-color:#e9dfdc;background:#fffdfa}
.stop-card:hover{border-color:#d8c3c2;box-shadow:0 7px 20px #5945460d}
.stop-number{background:#eee4e2;color:#805e67}
.stop-name{color:#4c4241}
.stop-name:focus{color:#80535f}
.move-button,.remove-button{color:#8d7376}
.move-button:hover,.remove-button:hover{background:#f1e7e5;color:#704e57}
.travel-connector,.stop-nav{color:#80666b}
.stop-nav:hover{color:#593f46}
.timeline-stem:before{background:#e7dcda}
.timeline-stem i{border-color:#ad858c;background:#f4efee}
.empty-state>span{background:#eee2e1;color:#8c6670}
.empty-state strong{color:#63504f}
.toast{background:#534447}
@media(max-width:760px){
  .map-art{height:clamp(230px,62vw,340px)}
}

/* Refined type scale, spacing and touch targets */
body{background:linear-gradient(180deg,#f7f2f0 0,#f4efee 250px);font-size:14px}
.topbar{height:72px}
.brand-word{font-size:19px}
.page-shell{max-width:1380px;padding-top:42px;padding-bottom:32px}
.welcome-row{margin-bottom:28px}
.welcome-row h1{font-size:34px;letter-spacing:-1.1px}
.trip-summary{min-height:82px;gap:22px;padding:15px 22px;border-radius:18px}
.summary-location{min-width:190px}
.summary-location small,.summary-stat span{font-size:10px}
.summary-location strong{font-size:13px}
.summary-stat strong{font-size:18px}
.workspace{grid-template-columns:minmax(315px,.72fr) minmax(0,1.55fr);gap:20px}
.panel,.import-panel,.itinerary-panel{border-radius:20px}
.import-panel,.itinerary-panel{padding:22px}
.panel-heading h2,.stops-heading h3{font-size:17px}
.area-field span,.mode-field,.notes-field{font-size:12px}
.area-field-inline{min-height:42px}
.area-field input{font-size:12px}
.drop-zone{min-height:196px}
.drop-zone textarea{min-height:160px;font-size:13px;line-height:1.8}
.drop-hint{font-size:10px}
.add-button,.clear-button{height:42px;font-size:12px}
.notes-field textarea{min-height:72px;font-size:13px}
.mode-field select{height:38px;min-width:140px;font-size:12px}
.optimize-card{min-height:66px;padding:13px 15px}
.optimize-copy strong{font-size:13px}
.optimize-button{width:38px;height:38px;font-size:16px}
.google-route-button{height:40px;padding:0 15px;font-size:11px}
.itinerary-heading-row{margin-bottom:17px}
.map-card{border-radius:17px}
.map-header{height:64px;padding:0 17px}
.map-header h3{font-size:13px}
.map-toggle{font-size:10px}
.map-art{height:340px}
.map-legend{height:42px;font-size:10px}
.map-distance span{font-size:11px}
.stops-heading{margin-top:25px;margin-bottom:14px}
.stop-row{grid-template-columns:34px 1fr}
.stop-card{padding:15px 16px 13px;border-radius:16px}
.stop-number{width:32px;height:32px;font-size:11px}
.stop-name{font-size:13px}
.stop-card-meta{font-size:10px}
.travel-connector,.stop-nav{font-size:10px}
.move-button,.remove-button{width:32px;height:32px;font-size:15px}
.empty-state{min-height:250px}
.empty-state strong{font-size:14px}
.empty-state button{font-size:11px}
.toast{font-size:12px}
@media(max-width:1000px){
  .workspace{grid-template-columns:minmax(270px,.75fr) minmax(0,1.25fr);gap:15px}
  .page-shell{padding-left:22px;padding-right:22px}
  .map-art{height:300px}
}
@media(max-width:760px){
  .topbar{height:62px}
  .page-shell{padding:27px 16px 22px}
  .welcome-row{margin-bottom:19px}
  .welcome-row h1{font-size:30px}
  .trip-summary{min-height:72px;gap:13px;padding:11px 13px}
  .summary-location{min-width:0}
  .summary-location small,.summary-stat span{font-size:9px}
  .summary-location strong{font-size:11px}
  .summary-stat strong{font-size:14px}
  .workspace{display:flex;flex-direction:column;gap:14px}
  .import-panel,.itinerary-panel{width:100%;padding:18px}
  .panel-heading h2,.stops-heading h3{font-size:15px}
  .map-art{height:clamp(230px,62vw,340px)}
  .stop-row{grid-template-columns:28px 1fr}
  .stop-card-meta{margin-left:40px}
}
@media(max-width:420px){
  .page-shell{padding:21px 12px 18px}
  .welcome-row h1{font-size:28px}
  .trip-summary{gap:8px;padding:9px 10px}
  .summary-location small,.summary-stat span{font-size:8px}
  .summary-location strong{font-size:10px}
  .summary-stat strong{font-size:12px}
  .import-panel,.itinerary-panel{padding:15px}
  .map-legend{gap:8px;font-size:9px}
  .stop-row{grid-template-columns:25px 1fr}
  .stop-card{padding:12px 10px}
  .stop-card-meta{margin-left:0}
}
