:root{--bg: #f2f4f7;--surface: #ffffff;--raised: #ffffff;--sunk: #eceff3;--ink: #12161b;--mute: #58626e;--faint: #87919c;--edge: #dde2e8;--edge-strong: #c9d0d8;--trip: #0f766e;--line: var(--trip);--good: #15803d;--warn: #b45309;--crit: #b91c1c;--good-bg: #e8f5ec;--warn-bg: #fdf3e4;--crit-bg: #fdecec;--info-bg: #e9f1fb;--shadow-sm: 0 1px 2px rgba(18, 22, 27, .06);--shadow: 0 1px 2px rgba(18, 22, 27, .05), 0 6px 20px rgba(18, 22, 27, .06);--shadow-lg: 0 10px 40px rgba(18, 22, 27, .16);--radius: 14px;--radius-sm: 10px;--tap: 44px;--bar-h: 58px;--safe-b: env(safe-area-inset-bottom);--safe-t: env(safe-area-inset-top);--font: "Noto Sans TC", "Noto Sans JP", system-ui, -apple-system, "PingFang TC", sans-serif;--font-ja: "Noto Sans JP", "Noto Sans TC", sans-serif;--font-num: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0c1015;--surface: #151b22;--raised: #1b222b;--sunk: #10151b;--ink: #e7ecf1;--mute: #9ba6b2;--faint: #6d7985;--edge: #252e38;--edge-strong: #34404c;--good: #4ade80;--warn: #fbbf24;--crit: #f87171;--good-bg: #12261a;--warn-bg: #2a2010;--crit-bg: #2c1515;--info-bg: #132133;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);color-scheme:dark}}:root[data-theme=dark]{--bg: #0c1015;--surface: #151b22;--raised: #1b222b;--sunk: #10151b;--ink: #e7ecf1;--mute: #9ba6b2;--faint: #6d7985;--edge: #252e38;--edge-strong: #34404c;--good: #4ade80;--warn: #fbbf24;--crit: #f87171;--good-bg: #12261a;--warn-bg: #2a2010;--crit-bg: #2c1515;--info-bg: #132133;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;padding:0}:focus-visible{outline:2.5px solid var(--trip);outline-offset:2px;border-radius:6px}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.ja{font-family:var(--font-ja)}.mute{color:var(--mute)}.faint{color:var(--faint)}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:10px}.stack{display:grid;gap:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.page{max-width:760px;margin:0 auto;padding:14px 16px calc(var(--bar-h) + var(--safe-b) + 28px)}.page.no-tabs{padding-bottom:calc(var(--safe-b) + 40px)}.topbar{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid transparent;padding-top:var(--safe-t);transition:border-color .2s}.topbar.scrolled{border-bottom-color:var(--edge)}.topbar-in{max-width:760px;margin:0 auto;height:54px;padding:0 8px;display:flex;align-items:center;gap:4px}.topbar h1{margin:0;font-size:17px;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;padding:0 6px}.topbar .brand-title{display:flex;align-items:center;gap:10px;padding-left:8px}.icon-btn{text-decoration:none;width:var(--tap);height:var(--tap);border-radius:12px;display:inline-grid;place-items:center;color:var(--ink);flex:none}.icon-btn:hover{background:var(--sunk)}.icon-btn:active{transform:scale(.96)}.icon-btn svg{width:22px;height:22px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:45;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--edge);padding-bottom:var(--safe-b)}.tabbar-in{max-width:760px;margin:0 auto;display:flex;height:var(--bar-h)}.tab{flex:1;display:grid;place-items:center;align-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--faint);text-decoration:none;position:relative}.tab svg{width:23px;height:23px}.tab.active{color:var(--trip)}.tab.active:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--trip)}@media(min-width:900px){.tabbar{position:sticky;top:calc(54px + var(--safe-t));bottom:auto;border-top:none;border-bottom:1px solid var(--edge);background:color-mix(in srgb,var(--bg) 86%,transparent);padding-bottom:0;z-index:39}.tabbar-in{height:48px;gap:4px;padding:0 16px;justify-content:flex-start}.tab{flex:none;display:flex;gap:7px;padding:0 14px;font-size:14px}.tab svg{width:19px;height:19px}.tab.active:before{width:auto;inset:auto 10px -1px;border-radius:3px 3px 0 0}.page{padding-bottom:60px;padding-top:22px}}.card{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card.pad{padding:14px 15px}.sec-title{display:flex;align-items:baseline;gap:8px;margin:26px 2px 10px;font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--faint)}.sec-title:first-child{margin-top:6px}.sec-title .more{margin-left:auto;letter-spacing:0;font-weight:600;color:var(--trip);text-decoration:none;font-size:13px}.lead{color:var(--mute);margin:4px 0 0}.prose p{margin:0 0 .7em}.prose p:last-child{margin-bottom:0}.prose strong{font-weight:700}.empty{text-align:center;color:var(--mute);padding:40px 18px}.empty .art{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;margin:0 auto 14px;background:var(--sunk);color:var(--faint)}.empty .art svg{width:28px;height:28px}.empty h3{margin:0 0 6px;color:var(--ink);font-size:17px}.empty code,.code{font-family:var(--font-num);font-size:12.5px;background:var(--sunk);border:1px solid var(--edge);border-radius:6px;padding:1px 6px;word-break:break-all}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--sunk);color:var(--mute);white-space:nowrap;line-height:1.6}.chip svg{width:13px;height:13px}.chip.accent{background:color-mix(in srgb,var(--trip) 13%,transparent);color:var(--trip)}.chip.on-color{background:#ffffff2e;border:1px solid rgba(255,255,255,.32);color:#fff}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.good{background:var(--good-bg);color:var(--good)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--tap);padding:0 18px;border-radius:12px;background:var(--trip);color:#fff;font-weight:700;font-size:15px;text-decoration:none;transition:filter .15s,transform .1s;white-space:nowrap}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn svg{width:19px;height:19px}.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--edge-strong)}.btn.ghost:hover{background:var(--sunk);filter:none}.btn.danger{background:var(--crit)}.btn.text{background:none;color:var(--trip);padding:0 10px}.btn.sm{min-height:36px;padding:0 13px;font-size:14px;border-radius:10px}.btn.block{width:100%}.btn.lg{min-height:52px;font-size:16px;border-radius:14px}.field{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--mute)}.field .hint{font-weight:400;color:var(--faint);font-size:12px}.input,.field input,.field select,.field textarea{width:100%;min-height:var(--tap);border:1px solid var(--edge-strong);background:var(--surface);border-radius:11px;padding:9px 12px;font-size:16px;font-weight:400;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.field textarea{min-height:84px;resize:vertical;line-height:1.5}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--trip);box-shadow:0 0 0 3px color-mix(in srgb,var(--trip) 20%,transparent)}.form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.form .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.field,.field input{min-width:0}.seg{display:flex;background:var(--sunk);border-radius:12px;padding:3px;gap:3px}.seg button{flex:1;min-height:38px;border-radius:9px;font-size:14px;font-weight:600;color:var(--mute);padding:0 10px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.pills{display:flex;flex-wrap:wrap;gap:7px}.pill{min-height:36px;padding:0 13px;border-radius:999px;border:1px solid var(--edge-strong);background:var(--surface);font-size:14px;font-weight:600;color:var(--mute)}.pill[aria-pressed=true]{background:var(--trip);border-color:var(--trip);color:#fff}.err{background:var(--crit-bg);color:var(--crit);border-radius:10px;padding:9px 12px;font-size:14px}.err ul{margin:4px 0 0;padding-left:18px}.boot{min-height:100dvh;display:grid;place-items:center;align-content:center;gap:14px;color:var(--mute);font-weight:700;letter-spacing:.06em}.logo{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(160deg,#14b8a6,#0f766e 55%,#115e59);color:#fff;box-shadow:0 8px 24px #0f766e59}.logo svg{width:34px;height:34px}.logo.sm{width:32px;height:32px;border-radius:10px;box-shadow:none}.logo.sm svg{width:19px;height:19px}.boot .logo{animation:float 2.4s ease-in-out infinite}@keyframes float{50%{transform:translateY(-6px)}}.login{min-height:100dvh;display:grid;place-items:center;padding:24px 16px calc(24px + var(--safe-b));background:radial-gradient(1200px 500px at 50% -10%,color-mix(in srgb,#14b8a6 22%,transparent),transparent 70%),var(--bg)}.login-card{width:100%;max-width:380px;text-align:center}.login-card .logo{margin:0 auto 18px;width:76px;height:76px;border-radius:24px}.login-card .logo svg{width:40px;height:40px}.login-card h1{margin:0;font-size:26px;font-weight:900;letter-spacing:.02em}.login-card .lead{margin:8px 0 26px}.g-btn{background:var(--surface);color:var(--ink);border:1px solid var(--edge-strong);box-shadow:var(--shadow)}.g-btn:hover{filter:none;background:var(--sunk)}.denied{text-align:left;margin-top:18px;background:var(--warn-bg);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:14px}.denied strong{color:var(--warn)}.login .foot{margin-top:28px;font-size:12px;color:var(--faint)}.hello{margin:4px 2px 18px}.hello h2{margin:0;font-size:24px;font-weight:900;letter-spacing:.01em}.trip-card{display:block;position:relative;overflow:hidden;border-radius:20px;text-decoration:none;color:#fff;background:var(--trip);box-shadow:var(--shadow);isolation:isolate;transition:transform .15s}.trip-card:active{transform:scale(.99)}.trip-card .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.trip-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0000000d,#00000026 40%,#000000b8)}.trip-card.big{min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;padding:18px}.trip-card .top{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:6px;flex-wrap:wrap}.trip-card h3{margin:0;font-size:24px;font-weight:900;letter-spacing:.01em;line-height:1.25;text-shadow:0 1px 12px rgba(0,0,0,.35)}.trip-card .meta{font-size:13.5px;opacity:.92;margin-top:4px}.trip-list{display:grid;gap:14px}.trip-row{display:flex;gap:13px;align-items:center;padding:10px;text-decoration:none;color:var(--ink)}.trip-row .thumb{width:76px;height:76px;border-radius:14px;flex:none;background:var(--trip);object-fit:cover;display:grid;place-items:center;color:#fff}.trip-row .thumb svg{width:30px;height:30px;opacity:.85}.trip-row h4{margin:0;font-size:16px;font-weight:800}.trip-row .meta{font-size:13px;color:var(--mute)}@media(min-width:640px){.trip-list.past{grid-template-columns:1fr 1fr}}.hero{position:relative;margin:-14px -16px 0;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:18px 18px 22px;color:#fff;background:var(--trip);isolation:isolate;overflow:hidden}.hero .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0000 20%,#00000040 55%,#000000bf)}.hero .dest{font-size:12.5px;font-weight:700;letter-spacing:.18em;opacity:.9}.hero h2{margin:4px 0 6px;font-size:30px;line-height:1.2;font-weight:900;letter-spacing:.01em;text-shadow:0 2px 16px rgba(0,0,0,.35)}.hero .dates{font-size:14px;opacity:.95}.hero .tagline{font-size:14px;margin-top:8px;opacity:.9}@media(min-width:900px){.hero{margin:0;border-radius:22px;min-height:340px;padding:26px}}.status{margin-top:-18px;position:relative;z-index:2;padding:16px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow);text-decoration:none;color:inherit}@media(min-width:900px){.status{margin:-26px 18px 0}}.status .big{font-family:var(--font-num);font-size:34px;font-weight:600;line-height:1;color:var(--trip);min-width:56px;text-align:center}.status .big small{display:block;font-family:var(--font);font-size:11px;font-weight:700;color:var(--faint);letter-spacing:.08em;margin-top:4px}.status h3{margin:0;font-size:16px;font-weight:800}.status p{margin:2px 0 0;color:var(--mute);font-size:13.5px}.status .go{color:var(--faint)}.status .go svg{width:20px;height:20px}.version-note{display:flex;gap:9px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--trip) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--trip) 18%,var(--edge));font-size:13.5px}.version-note svg{width:17px;height:17px;color:var(--trip);flex:none;margin-top:2px}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--edge);border-radius:var(--radius);overflow:hidden;border:1px solid var(--edge)}.facts>div{background:var(--surface);padding:11px 13px}.facts .k{font-size:12px;color:var(--faint);font-weight:700;letter-spacing:.04em}.facts .v{font-size:14.5px;font-weight:600;margin-top:1px}@media(min-width:640px){.facts{grid-template-columns:repeat(3,1fr)}}.flight{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:14px 15px 12px;position:relative}.flight .lbl{grid-column:1 / -1;display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--mute);font-weight:600}.flight .end b{display:block;font-family:var(--font-num);font-size:22px;font-weight:600;line-height:1.2}.flight .end span{font-size:13px;color:var(--mute)}.flight .end.r{text-align:right}.flight .mid{color:var(--trip);display:grid;place-items:center}.flight .mid svg{width:22px;height:22px}.flight .note{grid-column:1 / -1;font-size:12.5px;color:var(--faint);border-top:1px dashed var(--edge-strong);padding-top:8px}.people{display:flex;flex-wrap:wrap;gap:8px}.person{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;background:var(--surface);border:1px solid var(--edge);font-size:14px;font-weight:600}.person small{font-weight:400;color:var(--faint);font-size:12px}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff;flex:none;object-fit:cover;background:var(--trip)}.avatar.lg{width:44px;height:44px;font-size:17px}.day-list{display:grid}.day-link{display:flex;gap:12px;align-items:center;padding:11px 13px;text-decoration:none;color:inherit;border-top:1px solid var(--edge)}.day-link:first-child{border-top:none}.day-link .d{width:46px;flex:none;text-align:center;border-radius:10px;padding:4px 0;background:color-mix(in srgb,var(--line) 14%,transparent);color:var(--line);font-weight:800;line-height:1.25}.day-link .d small{display:block;font-size:10.5px;font-weight:700;opacity:.85}.day-link .t{font-weight:700}.day-link .s{font-size:13px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-link.today .d{background:var(--line);color:#fff}.day-link>svg{width:18px;height:18px;color:var(--faint);flex:none}.money-mini{display:flex;align-items:center;gap:14px;padding:14px 15px;text-decoration:none;color:inherit}.money-mini .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--trip) 13%,transparent);color:var(--trip)}.money-mini .ic svg{width:22px;height:22px}.money-mini b{font-family:var(--font-num);font-size:19px;font-weight:600}.daybar{display:flex;gap:7px;overflow-x:auto;padding:2px 16px 12px;margin:0 -16px;scrollbar-width:none;scroll-snap-type:x proximity}.daybar::-webkit-scrollbar{display:none}.daychip{flex:none;min-width:58px;min-height:50px;padding:6px 10px;border-radius:12px;background:var(--surface);border:1px solid var(--edge);text-align:center;scroll-snap-align:center;position:relative}.daychip b{display:block;font-size:15px;font-weight:900;line-height:1.2}.daychip span{display:block;font-size:11px;color:var(--faint);letter-spacing:.02em}.daychip[aria-pressed=true]{background:var(--c);border-color:var(--c);color:#fff}.daychip[aria-pressed=true] span{color:#ffffffdb}.daychip .dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--crit)}.variant-bar{margin-bottom:12px}.dayhead{border-radius:18px;padding:16px 16px 15px;background:var(--line);color:#fff;position:relative;overflow:hidden;isolation:isolate}.dayhead:before{content:"";position:absolute;right:-40px;top:-60px;width:200px;height:200px;border-radius:50%;background:#ffffff14;z-index:-1}.dayhead .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dayhead .num{font-size:12px;font-weight:700;letter-spacing:.16em;opacity:.85}.dayhead .wx{margin-left:auto}.dayhead h3{margin:4px 0 2px;font-size:23px;font-weight:900;letter-spacing:.01em;line-height:1.3}.dayhead .sub{font-size:14px;opacity:.94}.dayhead .note{font-size:13px;opacity:.9;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25)}.dayhead .mem{display:flex;gap:8px;font-size:13px;margin-top:10px;padding:8px 10px;border-radius:10px;background:#ffffff26}.dayhead .mem svg{width:16px;height:16px;flex:none;margin-top:2px}.photos{display:flex;gap:10px;overflow-x:auto;margin:12px -16px 0;padding:0 16px;scroll-snap-type:x mandatory;scrollbar-width:none}.photos::-webkit-scrollbar{display:none}.photos figure{margin:0;flex:0 0 86%;scroll-snap-align:center}.photos.single figure{flex-basis:100%}@media(min-width:640px){.photos{margin:12px 0 0;padding:0}.photos figure{flex-basis:calc(50% - 5px)}}.page.has-fab{padding-bottom:calc(var(--bar-h) + var(--safe-b) + 96px)}.photos img,.zoomable{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:14px;background:var(--sunk);cursor:zoom-in}.photos figcaption,.figure figcaption{font-size:12.5px;color:var(--mute);margin-top:6px;padding:0 2px}.timeline{position:relative;margin-top:16px;padding-left:66px}.timeline:before{content:"";position:absolute;left:55px;top:14px;bottom:14px;width:3px;border-radius:2px;background:color-mix(in srgb,var(--line) 22%,var(--edge))}.stop{position:relative;margin-bottom:10px}.stop .time{position:absolute;left:-66px;top:12px;width:44px;text-align:right;font-family:var(--font-num);font-size:13px;font-weight:600;color:var(--mute);line-height:1.35;word-break:break-all}.stop .node{position:absolute;left:-16px;top:15px;width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--line)}.stop.star .node{background:var(--line);width:15px;height:15px;left:-17px;top:14px}.stop.meet .node{border-radius:3px;transform:rotate(45deg)}.stop.past{opacity:.55}.stop.now .node{box-shadow:0 0 0 5px color-mix(in srgb,var(--line) 30%,transparent);animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--line) 55%,transparent)}to{box-shadow:0 0 0 10px transparent}}.stop .box{background:var(--surface);border:1px solid var(--edge);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow-sm)}.stop.star .box{border-left:3px solid var(--line)}.stop.now .box{border-color:var(--line);box-shadow:0 0 0 1px var(--line),var(--shadow)}.stop h4{margin:0;font-size:15.5px;font-weight:800;line-height:1.45;display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}.stop h4 .chip{font-size:11px;padding:0 7px}.stop p{margin:4px 0 0;font-size:14px;color:var(--mute);line-height:1.6}.stop .acts{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.link-chip{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--line);text-decoration:none;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--line) 11%,transparent)}.link-chip svg{width:14px;height:14px}.now-tag{font-size:11px;font-weight:800;color:#fff;background:var(--line);padding:0 7px;border-radius:999px}.notes{display:grid;gap:10px;margin-top:6px}.note-card{display:flex;gap:12px;padding:13px 14px}.note-card .ic{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--sunk);color:var(--mute)}.note-card .ic svg{width:19px;height:19px}.note-card.transit .ic{background:color-mix(in srgb,var(--line) 13%,transparent);color:var(--line)}.note-card.backup .ic{background:var(--info-bg);color:#2563eb}.note-card.tip .ic{background:var(--warn-bg);color:var(--warn)}.note-card h5{margin:0 0 2px;font-size:13px;font-weight:800;letter-spacing:.04em}.note-card p,.note-card li{margin:0;font-size:14px;color:var(--mute)}.note-card ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}.day-nav{display:flex;gap:10px;margin-top:18px}.day-nav a{flex:1;display:flex;align-items:center;gap:8px;padding:11px 12px;text-decoration:none;color:inherit;min-width:0}.day-nav a.next{justify-content:flex-end;text-align:right}.day-nav svg{width:18px;height:18px;color:var(--faint);flex:none}.day-nav small{display:block;font-size:11.5px;color:var(--faint);font-weight:700}.day-nav span span{display:block;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.money-hero{padding:18px 16px 16px;background:linear-gradient(150deg,color-mix(in srgb,var(--trip) 92%,#000),var(--trip));color:#fff;border:none;border-radius:20px;box-shadow:var(--shadow)}.money-hero .lbl{font-size:12.5px;font-weight:700;letter-spacing:.12em;opacity:.85}.money-hero .total{font-family:var(--font-num);font-size:36px;font-weight:600;line-height:1.15;margin-top:4px}.money-hero .twd{font-size:15px;opacity:.92;font-family:var(--font-num)}.money-hero .foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;opacity:.88}.bars{display:grid;gap:11px;padding:14px 15px}.bar-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:baseline;font-size:14px;text-align:left;width:100%}.bar-row .k{font-weight:700;display:flex;align-items:center;gap:7px}.bar-row .k i{width:10px;height:10px;border-radius:3px;flex:none}.bar-row .v{font-family:var(--font-num);font-size:13.5px}.bar-row .v small{color:var(--faint);margin-left:6px}.bar-row .track{grid-column:1 / -1;height:8px;border-radius:99px;background:var(--sunk);overflow:hidden}.bar-row .fill{height:100%;border-radius:99px;transition:width .4s ease}.bar-row[aria-pressed=true] .k{color:var(--trip)}.daycols{display:flex;align-items:flex-end;gap:6px;height:150px;padding:14px 15px 10px}.daycol{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-width:0}.daycol .col{width:100%;max-width:40px;border-radius:7px 7px 3px 3px;background:color-mix(in srgb,var(--trip) 70%,transparent);min-height:3px;transition:height .4s ease}.daycol[aria-pressed=true] .col{background:var(--trip)}.daycol .lbl{font-size:11px;color:var(--faint);font-weight:700}.daycol .amt{font-size:10.5px;font-family:var(--font-num);color:var(--mute);white-space:nowrap}.filters{display:flex;gap:7px;overflow-x:auto;margin:0 -16px 10px;padding:2px 16px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters .pill{flex:none}.exp-day{margin-bottom:12px;overflow:hidden}.exp-day>header{display:flex;align-items:baseline;gap:8px;padding:10px 14px;background:var(--sunk);font-size:13.5px;font-weight:800}.exp-day>header .sum{margin-left:auto;font-family:var(--font-num);font-weight:600}.exp{border-top:1px solid var(--edge)}.exp:first-of-type{border-top:none}.exp>button{width:100%;display:flex;align-items:center;gap:11px;padding:11px 14px;text-align:left}.exp .cat{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff}.exp .item{font-weight:700;font-size:14.5px;line-height:1.4}.exp .sub{font-size:12.5px;color:var(--faint)}.exp .amt{text-align:right;font-family:var(--font-num);font-weight:600;white-space:nowrap}.exp .amt small{display:block;font-size:11.5px;color:var(--faint);font-weight:400}.exp .detail{padding:0 14px 13px 59px;font-size:13.5px;color:var(--mute)}.exp .detail table{width:100%;border-collapse:collapse;margin:2px 0 8px}.exp .detail td{padding:3px 0;border-bottom:1px dashed var(--edge);vertical-align:top}.exp .detail td.n{text-align:right;font-family:var(--font-num);white-space:nowrap;padding-left:8px}.exp .detail .acts{display:flex;gap:8px;margin-top:8px}.fab{position:fixed;right:18px;bottom:calc(var(--bar-h) + var(--safe-b) + 16px);z-index:44;height:54px;padding:0 20px 0 16px;border-radius:18px;background:var(--trip);color:#fff;display:flex;align-items:center;gap:7px;font-weight:800;box-shadow:0 8px 24px color-mix(in srgb,var(--trip) 45%,transparent)}.fab svg{width:22px;height:22px}@media(min-width:900px){.fab{bottom:28px;right:max(28px,calc(50vw - 460px))}}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{display:flex;flex-direction:column;gap:10px;padding:14px;text-decoration:none;color:inherit;min-height:104px}.tile .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--trip) 13%,transparent);color:var(--trip)}.tile .ic svg{width:22px;height:22px}.tile b{font-size:15.5px}.tile small{color:var(--faint);font-size:12px;display:block}.block{margin-bottom:18px}.block>h3{margin:0 2px 10px;font-size:17px;font-weight:800}.callout{display:flex;gap:11px;padding:12px 14px;border-radius:13px;background:var(--info-bg);font-size:14px}.callout svg{width:19px;height:19px;flex:none;margin-top:2px;color:#2563eb}.callout.warn{background:var(--warn-bg)}.callout.warn svg{color:var(--warn)}.callout.good{background:var(--good-bg)}.callout.good svg{color:var(--good)}.callout b{display:block;margin-bottom:2px}.icards{display:grid;gap:10px}@media(min-width:640px){.icards{grid-template-columns:1fr 1fr}}.icard{padding:13px 15px}.icard h4{margin:0 0 8px;font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px}.icard h4:before{content:"";width:4px;height:16px;border-radius:2px;background:var(--trip)}.icard dl{margin:0;display:grid;gap:7px}.icard dt{font-weight:700;font-size:14px}.icard dd{margin:0;font-size:13.5px;color:var(--mute)}.trows{display:grid;gap:10px}.trow{padding:12px 14px}.trow .h{font-weight:800;font-size:15px;margin-bottom:6px}.trow dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13.5px}.trow dt{color:var(--faint);font-weight:700;white-space:nowrap}.trow dd{margin:0;color:var(--mute)}.ttable{width:100%;border-collapse:collapse;font-size:14px}.ttable th{text-align:left;font-size:12px;letter-spacing:.06em;color:var(--faint);padding:10px 12px;border-bottom:1px solid var(--edge)}.ttable td{padding:10px 12px;border-bottom:1px solid var(--edge);vertical-align:top}.ttable tr:last-child td{border-bottom:none}.check-group{padding:6px 0}.check-group h4{margin:0;padding:8px 15px 4px;font-size:13px;letter-spacing:.06em;color:var(--faint)}.check{display:flex;gap:11px;align-items:flex-start;padding:9px 15px;cursor:pointer;font-size:14.5px}.check input{appearance:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--edge-strong);flex:none;margin:0;display:grid;place-items:center;transition:background .15s}.check input:checked{background:var(--trip);border-color:var(--trip)}.check input:checked:after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}.check.done span{color:var(--faint);text-decoration:line-through}.progress{height:6px;border-radius:99px;background:var(--sunk);overflow:hidden;margin:0 15px 6px}.progress div{height:100%;background:var(--trip);transition:width .3s}.phrase-group+.phrase-group{margin-top:14px}.phrase-group h4{margin:0 2px 8px;font-size:13px;letter-spacing:.06em;color:var(--faint)}.phrases{display:grid;gap:8px}@media(min-width:640px){.phrases{grid-template-columns:1fr 1fr}}.phrase{text-align:left;padding:11px 14px;width:100%;display:flex;gap:10px;align-items:center}.phrase .zh{font-size:12.5px;color:var(--faint);font-weight:700}.phrase .local{font-family:var(--font-ja);font-size:17px;font-weight:700;line-height:1.4}.phrase .reading{font-size:12.5px;color:var(--mute)}.phrase>svg{width:18px;height:18px;color:var(--faint);flex:none}.show{position:fixed;inset:0;z-index:100;background:var(--surface);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px 24px calc(40px + var(--safe-b));gap:14px}.show .big{font-family:var(--font-ja);font-size:clamp(32px,9vw,64px);font-weight:800;line-height:1.3}.show .reading{font-size:18px;color:var(--mute)}.show .zh{font-size:15px;color:var(--faint)}.show .close{position:absolute;top:calc(12px + var(--safe-t));right:12px}.gallery{display:grid;gap:12px}@media(min-width:640px){.gallery{grid-template-columns:1fr 1fr}}.gitem{overflow:hidden}.gitem img{width:100%;aspect-ratio:16 / 10;object-fit:cover;background:var(--sunk);cursor:zoom-in}.gitem .in{padding:12px 14px 13px}.gitem h4{margin:0;font-size:16px;font-weight:800;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gitem .subtitle{font-size:13px;color:var(--faint)}.gitem p{margin:6px 0 0;font-size:14px;color:var(--mute)}.gitem .meta{font-size:12.5px;color:var(--faint);margin-top:8px;padding-top:8px;border-top:1px dashed var(--edge)}.links{overflow:hidden}.links a{display:flex;gap:12px;align-items:center;padding:12px 14px;text-decoration:none;border-top:1px solid var(--edge)}.links a:first-child{border-top:none}.links a>svg{width:20px;height:20px;color:var(--trip);flex:none}.links b{display:block;font-size:14.5px}.links small{color:var(--faint);font-size:12.5px}.scrim{position:fixed;inset:0;z-index:90;background:#080c1080;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--raised);border-radius:22px 22px 0 0;padding:8px 18px calc(18px + var(--safe-b));box-shadow:var(--shadow-lg);animation:up .24s cubic-bezier(.2,.9,.3,1)}@keyframes up{0%{transform:translateY(40px);opacity:.4}}.sheet .grab{width:40px;height:5px;border-radius:9px;background:var(--edge-strong);margin:4px auto 10px}.sheet h2{margin:0 0 14px;font-size:19px;font-weight:800}.sheet .acts{display:flex;gap:10px;margin-top:18px}.sheet .acts .btn{flex:1}@media(min-width:640px){.scrim{align-items:center}.sheet{border-radius:22px;padding:18px 22px 22px}.sheet .grab{display:none}}.lightbox{position:fixed;inset:0;z-index:110;background:#000000eb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 10px calc(30px + var(--safe-b));animation:fade .18s ease}.lightbox img{max-height:80dvh;width:auto;max-width:100%;object-fit:contain;border-radius:6px}.lightbox p{color:#ddd;font-size:14px;margin:12px 0 0;text-align:center}.lightbox .icon-btn{position:absolute;top:calc(8px + var(--safe-t));right:8px;color:#fff}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--bar-h) + var(--safe-b) + 84px);z-index:120;display:grid;justify-items:center;gap:8px;pointer-events:none;padding:0 16px}.toast{background:#1f2730;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);animation:up .2s ease;max-width:420px}.toast.err{background:var(--crit)}.banner{display:flex;gap:10px;align-items:center;padding:10px 13px;border-radius:12px;margin-bottom:12px;font-size:13.5px;background:var(--info-bg)}.banner svg{width:18px;height:18px;flex:none}.banner.offline{background:var(--warn-bg)}.skel{background:linear-gradient(90deg,var(--sunk) 0%,color-mix(in srgb,var(--sunk) 50%,var(--surface)) 50%,var(--sunk) 100%);background-size:200% 100%;animation:shimmer 1.2s linear infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.list{overflow:hidden}.li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--edge)}.li:first-child{border-top:none}.li .t{font-weight:700;font-size:14.5px;overflow:hidden;text-overflow:ellipsis}.li .s{font-size:12.5px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.li select{min-height:36px;border-radius:9px;border:1px solid var(--edge-strong);background:var(--surface);padding:0 8px;font-size:13.5px}.token-box{font-family:var(--font-num);font-size:13px;word-break:break-all;background:var(--sunk);border:1px dashed var(--edge-strong);border-radius:10px;padding:10px 12px;-webkit-user-select:all;user-select:all}.swatches{display:flex;flex-wrap:wrap;gap:9px}.swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;box-shadow:inset 0 0 0 2px #ffffff80}.swatch[aria-pressed=true]{border-color:var(--ink)}.cover-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.cover-pick button{aspect-ratio:4 / 3;border-radius:10px;overflow:hidden;border:3px solid transparent;background:var(--sunk)}.cover-pick button[aria-pressed=true]{border-color:var(--trip)}.cover-pick img{width:100%;height:100%;object-fit:cover}
