@font-face{font-family:'LINE Seed';src:url('./fonts/LINESeedSansTH-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:'LINE Seed';src:url('./fonts/LINESeedSansTH-Bold.woff2') format('woff2');font-style:normal;font-weight:600 900;font-display:swap;unicode-range:U+0E00-0E7F}
:root{--bg:#f7f8f5;--ink:#223d43;--accent:#087d83;--muted:#64777b;--sea:#e7f2ef;--line:#e4eae7;--success:#087d83;--radius:24px}
body{background:#e8efeb;font-family:'LINE Seed',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;line-height:1.55}
button,input,select,textarea{font-family:inherit}
.icon{display:inline-block;width:22px;height:22px;background:currentColor;mask-image:var(--icon);-webkit-mask-image:var(--icon);mask-size:contain;-webkit-mask-size:contain;mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;vertical-align:middle;flex-shrink:0}
.shell{max-width:1440px;grid-template-rows:64px minmax(0,1fr) auto;position:relative;background:var(--bg);overflow:hidden}
.shell>header{padding:8px 20px;border:0;display:flex;align-items:center;gap:10px;background:#fbfcf9;z-index:20;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:720;letter-spacing:-.6px;line-height:1.15;margin-right:auto;white-space:nowrap}
.brand img{width:38px;height:38px;border-radius:12px;object-fit:cover}
.brand small{display:block;color:#78898b;font-size:9px;font-weight:600;letter-spacing:1.4px;margin-top:4px}
.brand-dot{display:none}
.status{border:1px solid #d6e5df!important;background:#eaf2ed!important;color:#22756e!important;box-shadow:none!important;padding:9px 11px!important;min-height:38px;font-size:11px!important;border-radius:24px;white-space:nowrap;font-weight:600}
.status:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#d69760;margin-right:6px;vertical-align:2px}
.status.is-ready:before{background:#2d8e6c}
.status.is-downloading:before{background:#087d83;animation:pulse 1.4s infinite}
.trip-info-button{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line)}
#main{padding:22px 20px 30px;scrollbar-width:thin;min-height:0}
#main.map-active{padding:0;overflow:hidden;position:relative;background:#bce4e5}
#nav{position:relative!important;inset:auto!important;grid-row:3;display:grid;grid-template-columns:repeat(4,1fr);height:auto;min-height:72px;padding:7px max(10px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));gap:4px;background:rgba(253,254,250,.98);border-top:1px solid #e1e7e3;z-index:30;box-shadow:none}
#nav button{border-radius:18px;min-width:0;min-height:54px;padding:6px;gap:4px;color:#84938f;display:flex;flex-direction:column;justify-content:center;align-items:center;background:none}
#nav button.active{color:#087d83;background:#e9f1ea}
#nav button .icon{width:24px;height:24px}
#nav button span:not(.icon){font-size:10px;line-height:1.3;font-weight:600}
.page-title{margin-bottom:24px}.page-title h1{font-size:29px;color:var(--ink)}
h1,h2,h3{letter-spacing:-.025em}h3{line-height:1.4}
.primary{background:#087d83;color:white;box-shadow:none;border-radius:16px;min-height:48px}.secondary{background:#edf3ee;color:#2c615f;border-radius:16px;min-height:46px}
.text-btn{color:#087d83;min-height:40px}.next-stop{background:#e6f0e9;color:#244a49;border-radius:26px;padding:22px;margin:18px 0}.next-stop h2{font-size:28px}.next-stop .primary{background:#087d83;color:white}
.day-tabs{gap:7px}.day-tabs button{border-radius:18px;background:#fff;border:1px solid var(--line);padding:10px 5px}.day-tabs button[aria-pressed=true]{background:#087d83;color:#fff;border-color:#087d83}
.timeline .stop{border:0;border-bottom:1px solid #e2e8e2;border-radius:0;box-shadow:none;padding:18px 0;background:transparent;grid-template-columns:74px minmax(0,1fr) 38px;gap:12px;margin:0}
.stop-art{width:74px;height:90px;border-radius:17px;overflow:hidden}.stop-art .icon{width:30px;height:30px}.stop-description{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.time{font-size:10px;color:#698184}.stop h3{font-size:16px}.tick{height:36px;width:36px}.tick .icon{height:18px;width:18px}
.plan-shortcuts{gap:8px}.shortcut{border-radius:15px;background:#edf3ec;font-size:12px;min-height:46px}.schedule-summary{background:transparent;padding:12px 0;border-block:1px solid var(--line);border-radius:0}
.map-experience{position:absolute;inset:0;isolation:isolate;overflow:hidden}
#trip-map{position:absolute;inset:0;width:100%;height:100%;min-height:0;background:#bce4e5}
.map-overlay-top{position:absolute;z-index:3;inset:0 0 auto;padding:22px 20px 16px;pointer-events:none;background:linear-gradient(180deg,rgba(247,249,242,.97),rgba(247,249,242,.82) 65%,rgba(247,249,242,0))}
.map-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}
.map-title .kicker{font-size:9px;letter-spacing:1.7px;color:#698584;font-weight:700}
.map-title h1{font-size:29px;letter-spacing:-1.4px;line-height:1.15;margin-top:6px;font-weight:730;color:#20444a}
.map-food-button{pointer-events:auto;background:#fff;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 16px #3752540b}
.map-day-picker{pointer-events:auto;display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:5px;padding:5px;background:rgba(255,255,253,.92);border:1px solid rgba(255,255,255,.8);border-radius:23px;box-shadow:0 4px 24px #315b620c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.map-day-picker button{min-height:45px;border-radius:17px;color:#6d8180;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.map-day-picker button span{font-size:10px;font-weight:400}.map-day-picker button b{font-size:16px}.map-day-picker button.selected{background:#087d83;color:#fff;box-shadow:0 2px 6px #076e6726}
.map-floating{position:absolute;right:17px;top:180px;display:flex;flex-direction:column;gap:9px;z-index:3}
.map-floating button{height:44px;width:44px;border:1px solid #e5ece6;background:#fffdf9;border-radius:15px;color:#315f60;display:grid;place-items:center;box-shadow:0 3px 15px #254b4e14}
.map-floating button .icon{height:21px;width:21px}
.map-dock{position:absolute;z-index:4;bottom:13px;left:13px;right:13px;background:#fffffc;border:1px solid #ffffff;border-radius:27px;box-shadow:0 8px 40px #2a525122;padding:0 15px 12px;max-height:45%;overflow:hidden}
.dock-handle{width:33px;height:4px;border-radius:4px;background:#d9e2db;margin:8px auto 9px}
.dock-summary{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#6b817e;margin-bottom:12px;gap:6px}.dock-summary b{font-weight:400}.dock-summary button{display:flex;align-items:center;gap:4px;color:#087d83;font-size:10px;min-height:30px;font-weight:600}.dock-summary .icon{height:14px;width:14px}
.map-place-card{display:grid;grid-template-columns:82px minmax(0,1fr) 33px;gap:12px;align-items:center}
.map-card-photo{height:98px;width:82px;border-radius:17px;overflow:hidden;background:#e9f0e8;color:#5c8d7c;display:grid;place-items:center}.map-card-photo img{width:100%;height:100%;object-fit:cover}.map-card-photo .icon{width:35px;height:35px}
.map-card-copy{min-width:0}.map-card-copy>.kicker{font-size:9px;letter-spacing:.5px;color:#7d8c83;font-weight:600}.map-card-copy h2{font-size:17px;line-height:1.25;margin:5px 0 4px;color:#25494b;letter-spacing:-.45px}.map-card-copy h2 button{text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-card-copy p{font-size:10px;color:#758680;margin:3px 0}.map-detail-link{color:#087d83;font-size:10px;display:flex;align-items:center;gap:4px;min-height:30px;font-weight:600}.map-detail-link .icon{width:14px;height:14px}
.map-card-check{width:33px;height:33px;border:1px solid #d7e5d9;border-radius:50%;color:#6d9a8c;display:grid;place-items:center}.map-card-check .icon{width:17px;height:17px}.map-card-check.done{background:#087d83;color:white;border-color:#087d83}
.map-stop-rail{display:flex;gap:7px;overflow-x:auto;padding-top:13px;margin-top:12px;border-top:1px solid #edf0e9;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x}.map-stop-rail::-webkit-scrollbar{display:none}
.map-stop-rail button{display:flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap;font-size:10px;line-height:1.2;color:#657d79;border-radius:12px;background:#f4f6ef;min-height:30px;padding:6px 9px}.map-stop-rail button span{font-size:8px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#e6ede1}.map-stop-rail button[aria-pressed=true]{background:#e2eeE5;color:#126c62}.map-stop-rail button[aria-pressed=true] span{background:#087d83;color:#fff}
.map-attribution{position:absolute;bottom:238px;left:18px;z-index:3;display:flex;flex-direction:column;gap:3px;font-size:8px;color:#376b71;text-shadow:0 1px 3px white;max-width:72%}.map-attribution button{text-align:left;font-size:8px;min-height:20px}.map-attribution span{font-size:8px;letter-spacing:.1px}
.island-marker{position:relative;background:var(--marker,#087d83);color:#fff;border:3px solid #fff;border-radius:50%;height:35px;width:35px;box-shadow:0 3px 9px #33555438;display:grid;place-items:center;font-size:12px;font-weight:700;transition:box-shadow .2s}
.island-marker.is-selected{box-shadow:0 0 0 6px #087d8326,0 3px 15px #234c5559;z-index:2}.island-marker.hotel-marker{background:#fff4db;color:#ae8050;border-color:#fff}.island-marker .icon{width:19px;height:19px}.island-marker.checked{background:#758c7b}.my-position{width:18px;height:18px;border:3px solid white;border-radius:50%;background:#398cef;box-shadow:0 0 0 8px #398cef33}
.maplibregl-canvas{touch-action:none}.maplibregl-marker{cursor:pointer}.map-loading{padding:40px;color:#34575e;max-width:300px}
dialog{border:0;border-radius:28px 28px 0 0;box-shadow:0 -12px 70px #173e4430;background:#fffffc;color:#223d43;max-height:calc(var(--app-height) - 48px);padding:18px 22px max(24px,env(safe-area-inset-bottom));width:100%;max-width:520px;inset:auto 0 0;margin:0 auto}
dialog::backdrop{background:#193b4259;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sheet-head .eyebrow{font-size:9px;color:#7b9087}.sheet-head{margin-bottom:16px}.close{border-radius:50%;background:#eff3eb;color:#628174;width:34px;height:34px;min-height:34px;font-size:26px}
.place-hero{border-radius:20px;max-height:230px;object-fit:cover}#sheet-title{font-size:25px;line-height:1.2}.place-facts{font-size:11px}.place-note{font-size:12px;color:#758780}
.download-state{display:flex;align-items:center;gap:16px;padding:20px 0}.download-state>.icon{width:34px;height:34px;color:#087d83}.download-state strong{font-size:18px}.download-state p{font-size:12px;color:#667f78;margin:6px 0 0}.download-state.complete>.icon{color:#278369}
progress{appearance:none;-webkit-appearance:none;width:100%;height:7px;border:0;border-radius:10px;overflow:hidden;background:#e7efe5}progress::-webkit-progress-bar{background:#e7efe5}progress::-webkit-progress-value{background:#087d83;border-radius:10px}progress::-moz-progress-bar{background:#087d83}.download-count{font-size:10px;color:#72877b;margin-bottom:15px}
.offline-inclusions{margin:26px 0}.offline-inclusions>div{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-bottom:1px solid #e9eee6}.offline-inclusions .icon{color:#527f70;margin-top:3px}.offline-inclusions strong{font-size:13px}.offline-inclusions small{display:block;color:#72857a;font-size:11px;line-height:1.6;margin-top:4px}.install-guide{padding:17px;border-radius:18px;background:#f2f4e9}.install-guide strong{font-size:13px}.install-guide p{font-size:11px;color:#6a7e71;line-height:1.7;margin-bottom:0}
#toast{position:absolute;z-index:100;bottom:calc(85px + env(safe-area-inset-bottom));font-size:12px;background:#264f4b;color:white;border-radius:17px;max-width:calc(100% - 32px);left:50%;transform:translateX(-50%) translateY(12px);padding:13px 17px;box-shadow:0 5px 25px #264f4b22;pointer-events:none}#toast.visible{transform:translateX(-50%) translateY(0);pointer-events:auto}
@keyframes pulse{50%{opacity:.35}}
@media(min-width:750px){.shell>header{padding-inline:30px}.map-overlay-top{width:390px;padding:25px 23px;background:none}.map-title h1{font-size:31px}.map-dock{left:22px;right:auto;bottom:22px;width:360px;padding:0 17px 16px}.map-floating{top:25px;right:25px}.map-attribution{left:auto;right:25px;bottom:18px;text-align:right;align-items:flex-end;max-width:40%}#main:not(.map-active){padding:30px max(28px,calc((100% - 800px)/2))}#nav{padding-inline:max(20px,calc((100% - 540px)/2))}.map-title{background:rgba(251,252,247,.95);border-radius:22px;padding:15px 17px;margin-bottom:10px}.map-day-picker{border-radius:21px}.map-place-card{grid-template-columns:86px minmax(0,1fr) 33px}.map-card-photo{width:86px;height:100px}dialog{border-radius:28px;inset:30px 0;margin:auto;max-height:calc(var(--app-height) - 60px)}}
@media(max-height:680px) and (max-width:749px){.shell{grid-template-rows:56px minmax(0,1fr) auto}.shell>header{min-height:56px}.map-overlay-top{padding-top:14px}.map-title{margin-bottom:10px}.map-title h1{font-size:24px}.map-day-picker button{min-height:39px}.map-floating{top:155px}.map-dock{bottom:9px;padding-bottom:9px}.map-card-photo{height:73px;width:70px}.map-place-card{grid-template-columns:70px minmax(0,1fr) 30px}.map-stop-rail{margin-top:8px;padding-top:8px}.dock-summary{margin-bottom:6px}.map-attribution{bottom:208px}.brand{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.primary:hover{background:#066e73}.missing-pins{font-size:9px!important;min-height:20px!important;color:#a67947!important}.dock-summary>span{min-width:0}.dock-summary .missing-pins{display:inline-block;margin-left:6px}
.island-marker{position:absolute}
.island-marker.marker-group{border-radius:13px;outline:2px solid #ffffff90;outline-offset:2px}
@media(min-height:681px) and (max-width:749px){.map-attribution{bottom:255px}}
