:root{--bg:#fff;--ink:#1f2a44;--sub:#7a8295;--surface:#f3f5f9;--dan:#e5484d;--la:#2f7bd8;--map-land:#f1f3f7;--map-water:#cfe0f5;--map-park:#dbeed8;--line:2px solid var(--ink);--r-chip:8px;--r-input:12px;--r-photo:12px;--r-card:16px;--font:"Chiron GoRound TC", "Noto Sans TC", "PingFang TC", sans-serif;--tab-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{display:block}svg.i{flex:none;width:22px;height:22px}#root{max-width:520px;min-height:100%;margin:0 auto;position:relative}.page{padding:calc(14px + var(--safe-t)) 18px calc(var(--tab-h) + 24px + var(--safe-b));min-height:100dvh}.page.notab{padding-bottom:calc(28px + var(--safe-b))}.page.flush{padding:0}.h1{letter-spacing:.06em;font-size:28px;font-weight:800;line-height:1.25}.h2{letter-spacing:.03em;font-size:20px;font-weight:800}.t{font-size:14.5px;font-weight:700}.meta{color:var(--sub);font-size:12px}.sub{color:var(--sub)}.center{text-align:center}.row{align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top{justify-content:space-between;align-items:center;gap:10px;min-height:44px;margin:4px 0 14px;display:flex}.top .mid{text-align:center;flex:1;min-width:0}.iconbtn{border:var(--line);background:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.iconbtn svg{width:20px;height:20px}.iconbtn.plain{border:0}.textbtn{padding:8px 4px;font-size:15px;font-weight:800}.textbtn:disabled{color:var(--sub)}.duo{display:inline-flex}.av{color:#fff;background:var(--ink);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:inline-flex}.av+.av{margin-left:-8px}.av.dan{background:var(--dan)}.av.la{background:var(--la)}.av.q{color:var(--sub);border:2px dashed var(--sub);background:#fff}.duo.big .av{border-width:3px;width:64px;height:64px;font-size:26px}.duo.big .av+.av{margin-left:-14px}.av.sm{width:26px;height:26px;font-size:12px}.c-dan{color:var(--dan)}.c-la{color:var(--la)}.cta{background:var(--ink);color:#fff;letter-spacing:.06em;border-radius:14px;justify-content:center;align-items:center;width:100%;height:52px;font-size:16px;font-weight:800;display:flex}.cta:disabled{opacity:.45}.btn2{border:var(--line);background:#fff;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;height:44px;font-size:14px;font-weight:700;display:inline-flex}.btn2.dark{background:var(--ink);color:#fff}.btn2 svg{width:18px;height:18px}.link{color:var(--sub);font-size:13px;text-decoration:underline}.danger{color:var(--dan)}.chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips.wrap{flex-wrap:wrap;overflow:visible}.chip{border-radius:var(--r-chip);border:var(--line);white-space:nowrap;background:#fff;flex:none;padding:6px 12px;font-size:12.5px;font-weight:600}.chip.on{background:var(--ink);color:#fff}.chip.dash{border-style:dashed}.chip.soft{background:var(--surface);border:0}.fld{background:var(--surface);border-radius:var(--r-input);margin-bottom:10px;padding:9px 13px;display:block}.fld>.lbl{color:var(--sub);margin-bottom:2px;font-size:11.5px;display:block}.fld input,.fld textarea,.fld select{background:0 0;border:0;outline:none;width:100%;padding:2px 0;font-size:15px;font-weight:600}.fld textarea{resize:none;min-height:48px;font-weight:500}.fld.btn{text-align:left;width:100%}.fld .val{font-size:15px;font-weight:700}.fld .val.ph{color:var(--sub);font-weight:500}.lbl2{color:var(--sub);margin:4px 0 6px;font-size:12px}.search{border-radius:var(--r-input);border:var(--line);background:#fff;align-items:center;gap:8px;height:46px;padding:0 14px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14px}.search svg{width:18px;height:18px;color:var(--sub)}.card{border:var(--line);border-radius:var(--r-card);background:#fff;padding:12px 14px}.card.soft{background:var(--surface);border:0}.photo{background:var(--surface) center / cover no-repeat;border-radius:var(--r-photo);flex:none;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo.ph{color:#9aa3b5;background:linear-gradient(140deg,#e8ecf3,#d3d9e4);justify-content:center;align-items:center;display:flex}.dayh{justify-content:space-between;align-items:center;margin:18px 0 10px;display:flex}.dayh strong{background:var(--ink);color:#fff;letter-spacing:.04em;border-radius:6px;padding:3px 11px;font-size:15px;font-weight:800}.dayh span{color:var(--sub);font-size:13px}.line{padding-left:38px;position:relative}.line .lseg{width:6px;position:absolute;left:12px}.rec{text-align:left;align-items:center;gap:12px;width:100%;padding:6px 0;display:flex;position:relative}.rec .station{border:4px solid var(--ink);z-index:1;background:#fff;border-radius:50%;width:30px;height:30px;margin-top:-15px;position:absolute;top:50%;left:-38px}.rec .photo{width:64px;height:64px}.rec .thumbbox{flex:none;position:relative}.rec .pcount{background:var(--ink);color:#fff;border:2px solid #fff;border-radius:99px;padding:3px 6px;font-size:10px;font-weight:700;line-height:1;position:absolute;bottom:-4px;right:-4px}.line .dl-item{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative}.line .dl-item img{-webkit-touch-callout:none;-webkit-user-drag:none;pointer-events:none}.line .dl-item.lift{z-index:30;pointer-events:none;border:var(--line);border-radius:var(--r-card);background:#fff;margin:0 -10px;padding:0 8px}.line .dl-item.lift .lseg,.line .dl-item.lift .station{visibility:hidden}.line .dl-item.drop{outline:2px dashed var(--ink);outline-offset:3px;background:var(--surface);border-radius:10px}.line .dropcap{padding:0 0 6px;font-size:11px;font-weight:700}.merge-ask .rec{pointer-events:none}.rec .tm{text-align:center;width:30px;color:var(--sub);font-size:10px;position:absolute;top:calc(50% + 17px);left:-38px}.mem{text-align:left;border-radius:14px;width:100%;height:138px;margin-bottom:6px;display:block;position:relative;overflow:hidden}.mem .photo{border-radius:0;position:absolute;inset:0}.mem .cap{color:#fff;text-shadow:0 1px 6px #00000073;position:absolute;bottom:12px;left:14px;right:14px}.mem .cap small{opacity:.92;font-size:11px;display:block}.mem .cap strong{font-size:16px;font-weight:800}.tabbar{width:100%;max-width:520px;height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);border-top:var(--line);z-index:20;background:#fff;justify-content:space-around;align-items:flex-start;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{color:var(--sub);flex-direction:column;align-items:center;gap:2px;width:60px;padding-top:9px;font-size:10.5px;display:flex}.tabbar a svg{stroke-width:1.8px;width:22px;height:22px}.tabbar a.on{color:var(--ink);font-weight:800}.tabbar a.plus{color:var(--ink);padding-top:0}.tabbar a.plus span{background:var(--ink);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:50px;height:50px;margin-top:-20px;display:flex}.tabbar a.plus span svg{stroke-width:2.4px;width:26px;height:26px}.dim{z-index:40;background:#1f2a4459;position:fixed;inset:0}.sheet{border:var(--line);border-radius:var(--r-card) var(--r-card) 0 0;z-index:41;width:100%;max-width:520px;padding:8px 16px calc(18px + var(--safe-b));background:#fff;border-bottom:0;max-height:88dvh;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.sheet.float{width:auto;left:12px;right:12px;bottom:calc(var(--tab-h) + 12px + var(--safe-b));border-radius:var(--r-card);border-bottom:var(--line);z-index:15;max-width:496px;margin:0 auto;padding:12px;transform:none}.grab{background:#cfd4de;border-radius:3px;width:44px;height:5px;margin:4px auto 12px}.seg{border:var(--line);border-radius:12px;margin:10px 0;display:flex;overflow:hidden}.seg button{flex:1;padding:8px 0;font-size:13px;font-weight:700}.seg button.on{background:var(--ink);color:#fff}.sec{color:var(--sub);margin:14px 0 6px;font-size:12px;font-weight:600}.li{text-align:left;border-bottom:1px solid #e6e9f0;align-items:center;gap:10px;width:100%;padding:11px 2px;display:flex}.li:last-child{border-bottom:0}.li .ch{color:var(--sub)}.stat{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat div{text-align:center}.stat b{font-size:21px;font-weight:800;display:block}.stat span{color:var(--sub);font-size:11px}.wk,.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.wk div{text-align:center;color:var(--sub);padding-bottom:4px;font-size:11px}.cd{aspect-ratio:.82;color:var(--sub);background:var(--surface);text-align:left;border-radius:8px;padding:3px 5px;font-size:11px;position:relative;overflow:visible}.cd.e{background:0 0}.cd.p{aspect-ratio:1;color:#fff;text-shadow:0 1px 3px #00000080;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--ink);background:var(--ink) center / cover;border-radius:50%;margin-top:4px;padding:4px 7px;font-weight:800}.cd.p.noimg{background:var(--ink)}.cd .n{background:var(--ink);color:#fff;text-align:center;min-width:16px;height:16px;text-shadow:none;border:1.5px solid #fff;border-radius:8px;font-size:9.5px;line-height:16px;position:absolute;bottom:-3px;right:-3px}.cd .h{color:var(--dan);text-shadow:none;font-size:10px;position:absolute;top:0;right:2px}.cd.p .h{color:#fff}.cd.today{box-shadow:inset 0 0 0 2px var(--ink);color:var(--ink);font-weight:800}.cd.p.today{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--dan)}.mapwrap{background:var(--map-land);touch-action:none;max-width:520px;margin:0 auto;position:fixed;inset:0;overflow:hidden}.mapov{padding:calc(10px + var(--safe-t)) 14px 0;z-index:5;pointer-events:none;position:absolute;top:0;left:0;right:0}.mapov>*{pointer-events:auto}.mapov .search{background:#fff}.mapov .chips{margin-top:10px}.fbtn{z-index:5;border:var(--line);background:#fff;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;position:absolute;right:14px}.fbtn svg{width:20px;height:20px}.pill{z-index:5;border:var(--line);white-space:nowrap;background:#fff;border-radius:99px;padding:7px 14px;font-size:12px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.pill.dark,.fbtn.on{background:var(--ink);color:#fff}.maptag{left:12px;bottom:calc(var(--tab-h) + 14px + var(--safe-b));z-index:4;color:var(--sub);background:#fffc;border-radius:6px;padding:2px 8px;font-size:10.5px;position:absolute}.pin{border:5px solid var(--ink);z-index:2;cursor:pointer;background:#fff;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute}.pin.dan{border-color:var(--dan)}.pin.la{border-color:var(--la)}.pin.wish{border:3px dashed var(--ink);background:#ffffffd9;justify-content:center;align-items:center;font-size:11px;display:flex}.pin.sel{z-index:3;background:#fff 50%/cover;width:58px;height:58px;margin:-29px 0 0 -29px}.pin.num{border-width:4px;justify-content:center;align-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;font-size:13px;font-weight:800;display:flex}.pin.cl{background:var(--ink);color:#fff;width:34px;height:34px;box-shadow:0 0 0 2px var(--ink);border-color:#fff;justify-content:center;align-items:center;margin:-17px 0 0 -17px;font-size:12px;font-weight:800;display:flex}.minimap{border:var(--line);background:var(--map-land);border-radius:14px;width:100%;height:150px;display:block;position:relative;overflow:hidden}.minimap img{object-fit:cover;width:100%;height:100%}.minimap .go{border:var(--line);background:#fff;border-radius:99px;padding:3px 10px;font-size:11px;font-weight:700;position:absolute;bottom:8px;right:8px}.grid3{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.grid3 .cell{aspect-ratio:1;background:var(--surface) center / cover;border-radius:10px;position:relative;overflow:hidden}.grid3 .cell .x{color:#fff;background:#1f2a44cc;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:4px;right:4px}.grid3 .cell .x svg{width:14px;height:14px}.grid3 .cell .badge{color:#fff;background:#1f2a44cc;border-radius:6px;padding:1px 6px;font-size:10px;position:absolute;bottom:4px;left:4px}.grid3 .cell .prog{background:var(--la);height:4px;position:absolute;bottom:0;left:0}.thumbs{gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.thumbs .photo{width:64px;height:64px}.thumbs .add{width:64px;height:64px;color:var(--sub);border:2px dashed #b8bfcc;border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:700;display:flex}.hero{background:var(--surface);height:min(68dvh,125vw);position:relative}.hero .track{scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;display:flex;overflow-x:auto}.hero .track::-webkit-scrollbar{display:none}.hero .track>*{scroll-snap-align:center;flex:none;width:100%;height:100%}.hero .track img{object-fit:contain;width:100%;height:100%}.hero .track>button{padding:0;display:block}.hero .cnt{color:#fff;background:#1f2a44b8;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:700;position:absolute;bottom:10px;right:12px}.album{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:18px;display:grid}.album button{aspect-ratio:1;border-radius:8px;padding:0;position:relative;overflow:hidden}.album .photo{border-radius:8px;width:100%;height:100%}.album button.on:after{content:"";border:3px solid var(--ink);border-radius:8px;position:absolute;inset:0}.viewer{z-index:60;background:#000;position:fixed;inset:0}.viewer .track{scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;display:flex;overflow-x:auto}.viewer .track::-webkit-scrollbar{display:none}.viewer .track>div{scroll-snap-align:center;flex:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.viewer img{object-fit:contain;max-width:100%;max-height:100%}.viewer .vbar{padding:calc(10px + var(--safe-t)) 12px 10px;color:#fff;background:linear-gradient(#0000008c,#0000);align-items:center;gap:10px;font-weight:700;display:flex;position:absolute;top:0;left:0;right:0}.viewer .vbar button,.viewer .vbar a{color:#fff;background:#ffffff29;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:12px;display:flex}.viewer .vbar a{width:auto;padding:0 12px}.hero .ovb{top:calc(12px + var(--safe-t));border:var(--line);z-index:2;background:#fff;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute}.hero .dots{justify-content:center;gap:5px;display:flex;position:absolute;bottom:10px;left:0;right:0}.hero .dots i{background:#fff9;border-radius:50%;width:7px;height:7px}.hero .dots i.on{background:#fff}.toast{left:50%;bottom:calc(var(--tab-h) + 24px + var(--safe-b));background:var(--ink);color:#fff;z-index:60;border-radius:12px;max-width:90%;padding:10px 16px;font-size:13px;position:fixed;transform:translate(-50%)}.banner{background:#fff4e5;border:2px solid #f0b35a;border-radius:12px;margin-bottom:12px;padding:8px 12px;font-size:12.5px}.offline{z-index:70;background:var(--ink);color:#fff;text-align:center;padding:calc(2px + var(--safe-t)) 0 2px;font-size:11.5px;position:fixed;top:0;left:0;right:0}.empty{text-align:center;color:var(--sub);padding:40px 10px}.spin{border:3px solid #d5d9e2;border-top-color:var(--ink);border-radius:50%;width:22px;height:22px;margin:30px auto;animation:.8s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}.colorpick{gap:12px;display:flex}.colorpick button{border:var(--line);background:#fff;border-radius:14px;flex:1;align-items:center;gap:10px;padding:12px;font-weight:700;display:flex}.colorpick button.on{box-shadow:inset 0 0 0 2px var(--ink);background:var(--surface)}.colorpick button:disabled{opacity:.35}.colorpick i{border-radius:50%;width:26px;height:26px;display:inline-block}.gpin.pin{margin:0;position:relative;transform:translateY(50%)}.nostation .station{display:none}.tagcards{grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;display:grid}.tagcard{border:var(--line);border-radius:var(--r-card);background:#fff;min-width:0;display:block;overflow:hidden}.tagcard .photo{border-radius:0;width:100%;height:92px}.tagcard .tc-body{padding:8px 10px 9px}html,body,#root,button,a,input,textarea,select,label{touch-action:manipulation}
