:root{--ink:#34364a;--sub:#7b7a89;--milk:#fffcf8;--bg:#f8f2ee;--line:#ede4e5;--rose:#e97992;--rose2:#ffdfe8;--navy:#464860;--shadow:0 8px 24px rgba(69,50,73,.065);--shadow2:0 5px 12px rgba(69,50,73,.04)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,'PingFang TC','Noto Sans TC','Microsoft JhengHei',sans-serif;margin:0;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:#7972a2}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d4b1e0;outline-offset:2px}.app-shell{max-width:800px;min-height:100vh;margin:0 auto;position:relative;background:linear-gradient(#fdf8f3,#f9f4ef);box-shadow:0 0 50px #433a4110}.topbar{display:flex;align-items:center;gap:11px;padding:15px 21px 13px;background:#fdf8f3;position:sticky;top:0;z-index:50;border-bottom:1px solid #efe8e3;min-height:73px}.brandmark{width:40px;height:40px;display:grid;place-items:center;color:#cb6d8c;background:#ffe4ed;border-radius:14px;font-size:24px;box-shadow:inset 0 -3px #f6d3de}.brand{display:flex;flex-direction:column;line-height:1.14}.brand strong{font-size:17px;letter-spacing:1.4px;font-weight:950}.brand strong span{color:#e68ca5}.brand small{font-size:10px;color:#9d909c;margin-top:5px;letter-spacing:.6px}.online-indicator{margin-left:auto;align-self:center;border:1px solid #d9e7df;border-radius:99px;padding:7px 10px;background:#eff9f3;color:#698a7c;font-size:10px;font-weight:850;white-space:nowrap}.online-indicator.off{background:#fff1e2;border-color:#f4dfc4;color:#ac7b55}.glow-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#84bd99;margin-right:5px}.online-indicator.off .glow-dot{background:#daa472}main{padding:0 16px 124px}.view{display:none;animation:reveal .24s ease}.view.active{display:block}@keyframes reveal{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#ffe9eb 2%,#fbe9f1 39%,#e3edf5 100%);margin:15px 0 13px;border-radius:28px;min-height:286px;border:2px solid #fff;box-shadow:var(--shadow)}.hero:before{content:'✦';position:absolute;right:22px;top:16px;color:#e9a1b4;font-size:28px}.hero-text{position:relative;z-index:2;padding:23px 18px 0}.eyebrow{color:#9f6e91;font-size:10px;font-weight:850;letter-spacing:1.4px}.eyebrow span{color:#e59cb2}.hero h1{font-weight:950;font-size:29px;line-height:1.32;margin:13px 0 8px;letter-spacing:-1px}.hero h1 em{font-style:normal;color:#d86d94}.hero-text>p{font-size:9px;letter-spacing:1.6px;color:#9c8798;font-weight:750;margin:0}.hero-bubbles{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.hero-bubbles span{font-size:10px;font-weight:800;padding:6px 9px;border-radius:99px;background:#fff8ffbb;border:1px solid #fff}.hero-scene{position:absolute;bottom:27px;right:-6px;width:85%;max-width:390px;height:auto;pointer-events:none}.hero-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:4px;padding:10px 16px;background:#fff8f5bd;font-size:8px;letter-spacing:.7px;color:#957e8d;font-weight:700}.intro-strip{display:flex;align-items:center;gap:11px;border:1px dashed #e8cbd4;border-radius:17px;padding:13px 14px;background:#fffdfb;margin-bottom:23px}.intro-strip>span:first-child{color:#d97d9a;font-size:21px}.intro-strip>span:last-child{color:#dba6ba;font-size:19px;margin-left:auto}.intro-strip strong{display:block;font-size:12px}.intro-strip small{font-size:10px;color:var(--sub);margin-top:4px;display:block}.section-title{display:flex;justify-content:space-between;align-items:end;gap:10px;margin:26px 3px 14px}.mini-caps{font-size:10px;letter-spacing:2.2px;font-weight:850;color:#c77a98}.section-title h2{font-size:21px;letter-spacing:-.8px;margin:3px 0 0}.heading-flower{color:#df91ab}.tiny-note{color:#978997;font-size:10px;font-weight:800}.day-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:15px}.day-chip{border:1px solid #ebdfe2;border-radius:16px;padding:10px 4px 11px;background:#fffdfb;color:#847989;box-shadow:var(--shadow2);text-align:center;position:relative;transition:transform .14s}.day-chip .day-em{font-size:19px;display:block;height:24px}.day-chip b{display:block;font-size:16px;font-weight:900;margin:5px 0 0}.day-chip small{font-size:9px;font-weight:800;display:block;margin-top:1px}.day-chip.selected{background:#46465e;color:#fff;border-color:#46465e;box-shadow:0 6px 17px #4e496236;transform:translateY(-2px)}.day-chip.selected:after{content:'';position:absolute;width:18px;height:4px;border-radius:3px;background:#ffc4d5;bottom:-2px;left:calc(50% - 9px)}.day-banner{position:relative;background:linear-gradient(110deg,#fff0db,#ffebed);border-radius:20px;padding:15px 16px;border:1px solid #fff;box-shadow:var(--shadow2);min-height:99px;overflow:hidden}.day-banner.onsen{background:linear-gradient(100deg,#e7e1f9,#e3f0eb)}.day-banner.bay{background:linear-gradient(100deg,#dff0f1,#f0e8fa)}.day-banner.flight{background:linear-gradient(100deg,#e7eafa,#fff0dc)}.day-banner:after{content:'✧ ✦';color:#ffffff9c;font-size:40px;position:absolute;right:-3px;top:-10px}.day-banner .cover-emoji{position:absolute;right:24px;bottom:10px;font-size:51px;filter:drop-shadow(0 5px 1px #80708020)}.day-banner small{font-size:10px;letter-spacing:1.4px;color:#9c8395;font-weight:900}.day-banner h3{font-size:20px;letter-spacing:-.6px;margin:6px 0 4px}.day-banner p{font-size:11px;color:#796f7b;margin:0 45px 0 0;line-height:1.45}.weather-panel{display:flex;gap:10px;align-items:center;min-height:84px;border:1px solid #e5edf2;border-radius:18px;padding:13px 14px;background:linear-gradient(120deg,#edf5fb,#f5fafb);margin:12px 0;box-shadow:var(--shadow2)}.weather-icon{font-size:31px;flex:0 0 40px;text-align:center}.weather-main{flex:1;min-width:0}.weather-main strong{font-size:13px;display:block}.weather-main p{font-size:11px;color:#7a8798;line-height:1.5;margin:4px 0 0}.weather-temp{font-size:24px;font-weight:900;color:#526a86;white-space:nowrap}.weather-panel .weather-secondary{display:block;margin-top:3px;color:#718397;font-size:10px}.day-alert{font-size:11px;line-height:1.6;color:#a17d53;background:#fff4e5;border:1px solid #f6e2c9;border-radius:12px;padding:11px 13px;margin:9px 0 18px}.timeline-title{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:14px;margin:25px 3px 13px}.timeline-title small{color:#a29ba2;font-size:10px}.timeline{border-left:2px dashed #e4bfcb;padding-left:14px;margin-left:10px}.event-card{position:relative;margin:0 0 13px 0;background:#fffefd;border:1px solid #eee7e5;border-left:4px solid var(--cat,#eeb2bf);border-radius:17px;padding:14px 13px 13px;box-shadow:var(--shadow);min-width:0}.event-card:before{content:'';position:absolute;width:12px;height:12px;border-radius:100%;background:#fff;border:3px solid var(--cat,#eeb2bf);top:18px;left:-26px}.event-card:after{content:'';position:absolute;top:-4px;right:16px;height:9px;width:32px;transform:rotate(-8deg);border-radius:2px;background:#f0ddbca3}.event-card[data-type="flight"]{--cat:#9ab7e9;background:linear-gradient(110deg,#fff,#f6faff)}.event-card[data-type="train"],.event-card[data-type="transport"]{--cat:#aeaae4}.event-card[data-type="stay"]{--cat:#98cabd}.event-card[data-type="food"]{--cat:#f2ba7c;background:linear-gradient(110deg,#fff,#fffaf1)}.event-card[data-type="car"]{--cat:#a3c6df}.event-card[data-type="activity"]{--cat:#f3acc8}.event-card[data-type="sight"]{--cat:#b8c6a4}.event-card[data-type="shopping"]{--cat:#c6b0e9}.event-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}.time-badge{font-weight:950;color:#6e617d;background:#f4eef6;padding:7px 9px;border-radius:10px;letter-spacing:-.5px;font-size:13px}.category-badge{font-size:10px;color:#78758a;font-weight:850}.event-status{margin-left:auto;border-radius:99px;padding:5px 7px;background:#e9f6ed;color:#5d9073;font-size:9px;font-weight:900;white-space:nowrap}.event-status.pending,.event-status.tentative{background:#fff1e1;color:#b48a53}.event-status.verify{background:#fff0e6;color:#c17e52}.event-name{display:flex;align-items:flex-start;gap:8px}.event-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#f9f2ef;font-size:20px;flex:none}.event-name h3{font-size:14px;line-height:1.4;margin:0;font-weight:900}.event-place{font-size:11px;margin:5px 0 8px;color:#938597;line-height:1.4}.event-desc{font-size:11px;color:#666577;line-height:1.7;margin:8px 0}.event-chips{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.chip{font-size:10px;color:#806e9b;border-radius:7px;background:#f4eefb;padding:5px 8px;font-weight:780}.chip:nth-child(2n){color:#a96b7e;background:#fff0f1}.event-booking{font-size:11px;background:#f1f6f5;color:#50776d;padding:10px 11px;border-radius:10px;margin:9px 0;line-height:1.6;overflow-wrap:anywhere}.event-booking.missing{background:#fbf4ee;color:#9a8a85}.event-booking b{font-weight:950}.event-hint{background:#fff9ea;color:#96794d;font-size:10px;line-height:1.65;border-radius:10px;padding:9px 10px;margin-top:9px}.event-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.mini-action{display:inline-flex;align-items:center;text-decoration:none;gap:4px;border:1px solid #e8e9e8;border-radius:10px;padding:9px 10px;background:#fbfbfc;font-size:10px;font-weight:900;color:#777189}.mini-action.map{background:#e8f3ef;color:#507d74;border-color:#e3f0e9}.mini-action:active{transform:scale(.98)}.guide-heading{margin-top:33px}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.guide-card{border:1px solid #fff;border-radius:19px;padding:14px;background:#fff0e8;box-shadow:var(--shadow2);min-width:0}.guide-card.sky{background:#eaf3fa}.guide-card.lilac{background:#f0e9fa}.guide-card.mint{background:#e6f3ed}.guide-card .guide-emoji{font-size:27px}.guide-card h3{font-size:13px;margin:8px 0 7px}.guide-card p{font-size:10px;line-height:1.7;color:#787383;min-height:70px;margin:0 0 10px}.guide-card a{font-size:10px;font-weight:900}.guide-tags{display:flex;flex-wrap:wrap;gap:4px;margin:9px 0}.guide-tags b{font-size:9px;background:#ffffffa8;border-radius:7px;padding:4px 5px;color:#95738e}.source-footnote{margin:20px 3px 0;color:#9b9299;font-size:10px;line-height:1.65}.section-pagehead{padding:26px 4px 15px}.section-pagehead h1{font-size:25px;margin:7px 0 8px;letter-spacing:-.8px}.section-pagehead p{font-size:12px;line-height:1.8;color:#817b88;margin:0}.privacy-alert{padding:17px;background:linear-gradient(115deg,#f8eaf2,#fff8f4);border:1px solid #f1dce7;border-radius:20px}.privacy-alert strong{font-size:13px}.privacy-alert p{font-size:11px;line-height:1.7;color:#897e8c}.privacy-alert small{display:block;margin-top:8px;font-size:10px;color:#9a8494}.privacy-tools,.backup-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.segment-title{display:flex;align-items:center;justify-content:space-between;font-weight:950;font-size:15px;margin:27px 3px 12px}.info-card,.white-card{background:#fffefd;border:1px solid #f0e6e6;padding:16px;border-radius:20px;box-shadow:var(--shadow);margin-bottom:11px}.info-card h3{font-size:14px;margin:0 0 6px}.flight-route{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:13px 0}.flight-port strong{font-size:25px;display:block;letter-spacing:-1px}.flight-port small{display:block;font-size:10px;color:#87808d;margin-top:3px}.flight-airline{color:#e7a2b3;font-size:26px;flex:1;text-align:center;border-bottom:1px dashed #eacfd7;line-height:1.4}.flight-time{display:flex;justify-content:space-between;color:#786e85;font-size:13px;font-weight:850}.tagline{display:inline-block;border-radius:7px;background:#f4f0fa;color:#80759b;padding:4px 8px;font-size:10px;font-weight:800;margin-bottom:10px}.info-meta{font-size:11px;color:#807a87;line-height:1.7;margin:6px 0}.conf-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#f4f8f6;border-radius:10px;padding:10px;margin-top:9px;font-size:11px}.conf-row strong{overflow-wrap:anywhere}.conf-row small{color:#938898}.info-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:5px;border:0;border-radius:10px;padding:10px 13px;font-size:11px;font-weight:900;text-decoration:none;white-space:normal;text-align:center}.btn-primary{background:#e67b9c;color:#fff}.btn-soft{background:#f5eff8;color:#806f97}.btn-map{background:#e7f4ef;color:#4e8478}.btn-call{background:#eff3fa;color:#6682a8}.stretch{width:100%}.tipline{font-size:11px;color:#9b825e;background:#fff5e3;border-radius:12px;padding:12px;line-height:1.7;margin:14px 0}.emergency-number{font-size:24px;font-weight:950;letter-spacing:.2px;color:#bf627d}.budget-hero{position:relative;overflow:hidden;border:1px solid white;border-radius:23px;background:linear-gradient(110deg,#fbdde7,#f9eaf1 59%,#f9eedb);padding:21px 20px;margin:4px 0 14px;box-shadow:var(--shadow)}.budget-hero small{font-size:11px;color:#a37188;font-weight:900}.budget-hero h2{font-size:32px;letter-spacing:-1px;margin:7px 0 4px;font-weight:950}.budget-hero p{font-size:11px;color:#936f85}.budget-deco{position:absolute;font-size:52px;right:24px;top:25px;transform:rotate(16deg)}.progress-track{height:9px;border-radius:7px;background:#ffffffaa;overflow:hidden;margin-top:20px}.progress-track span{height:100%;width:0;background:#e782a1;display:block;border-radius:7px;transition:width .25s}.progress-track span.over{background:#ce6662}.form-title{font-size:14px;font-weight:950;margin:0 0 14px}.form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-pair label{color:#7c7584;font-size:11px;font-weight:850}.form-input{display:block;width:100%;margin:7px 0 14px;border:1px solid #e9e1e4;border-radius:12px;background:#fffaf8;color:#464254;padding:12px 11px;font-size:13px;min-height:45px;outline:0}.form-input:focus,.memo-input:focus{border-color:#d887a8}.helper{display:block;font-size:10px;color:#a098a3;line-height:1.7;margin-top:9px}.expense-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px dashed #e9dfe0;padding:13px 0}.expense-row:last-child{border:0}.expense-row b{font-size:12px}.expense-row small{display:block;font-size:10px;color:#9c929f;margin-top:4px}.expense-row-right{display:flex;align-items:center;gap:7px}.expense-row-right strong{font-size:12px}.icon-btn{border:0;border-radius:8px;background:#fff0ee;color:#bc8085;padding:6px 8px}.empty-state{text-align:center;font-size:12px;color:#a69baa;padding:20px 10px;line-height:1.8}.empty-state span{font-size:30px;display:block}.section-right{font-size:10px;color:#a59aa5}.memo-input{display:block;min-height:200px;width:100%;background:#fffaf3;border:1px solid #ede4dc;line-height:1.9;border-radius:13px;padding:13px;resize:vertical;font-size:13px;color:#555062}.checkitem{display:flex;gap:10px;align-items:start;margin:11px 0;font-size:12px;line-height:1.5;color:#665f70}.checkitem input{width:20px;height:20px;accent-color:#e7819c;flex:none;margin:0}.checkitem.done span{text-decoration:line-through;color:#aaa}.subcopy{color:#928595;line-height:1.7;font-size:11px}.help-steps{font-size:11px;line-height:1.9;color:#766e7a;padding-left:20px}.bottom-nav{height:calc(70px + env(safe-area-inset-bottom,0px));position:fixed;z-index:90;bottom:0;left:50%;transform:translateX(-50%);max-width:800px;width:100%;display:flex;align-items:flex-start;justify-content:space-around;padding:8px 10px calc(7px + env(safe-area-inset-bottom,0px));border-top:1px solid #f2e2e6;background:#fffcfaef;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 -7px 24px #56465b12}.nav-link{background:none;border:0;color:#a097a5;padding:4px 14px 6px;font-size:10px;display:flex;flex-direction:column;gap:2px;align-items:center;border-radius:13px;font-weight:850}.nav-icon{font-size:21px;line-height:1.25}.nav-link.active{background:#fce8ee;color:#c66d8c}.toast{position:fixed;z-index:100;bottom:calc(85px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%) translateY(20px);background:#45445d;color:white;padding:11px 16px;border-radius:12px;box-shadow:0 9px 28px #433e4d44;font-size:12px;font-weight:800;opacity:0;pointer-events:none;transition:.24s;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:375px){main{padding-left:12px;padding-right:12px}.hero h1{font-size:26px}.hero-scene{width:88%}.day-chip b{font-size:14px}.event-card{padding:12px 10px}.guide-grid{gap:7px}}@media(min-width:650px){main{padding:0 28px 120px}.hero{min-height:340px}.hero h1{font-size:38px}.hero-scene{width:70%;max-width:430px}.guide-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.guide-card p{min-height:135px}.event-card{max-width:690px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

:root{--bg:#f2f8ff;--rose:#77b8e8;--rose2:#e0f4ff}body{background:#eef8ff}.app-shell{background:linear-gradient(#f7fcff,#fff8fc)}.topbar{background:#f1faff;border-bottom-color:#d8ebfb}.brandmark{background:#dff3ff;color:#69b4e5}.brand strong span{color:#72b9e8}.hero{background:linear-gradient(115deg,#dff3ff 2%,#f6faff 53%,#ffe9f4 100%)}.hero h1 em{color:#68a9dc}.hero:before{content:'☁'}.intro-strip{border-color:#bcdff6;background:#fafdff}.day-chip.selected{background:#6aaddb;border-color:#6aaddb}.btn-primary{background:#74b7e4}.budget-hero{background:linear-gradient(110deg,#d9f0ff,#f2f9ff 59%,#ffeaf4)}.progress-track span{background:#7abbe6}.event-card[data-type='activity']{--cat:#83c7ef}
