:root{--color-primary:#005eb8;--color-primary-hover:#004f9e;--color-primary-light:#eaf4ff;--color-primary-border:#93c5fd;--color-surface:#fff;--color-background:#f8fafc;--color-text-strong:#101828;--color-text-body:#344054;--color-text-secondary:#475467;--color-text-muted:#667085;--color-text-faint:#98a2b3;--color-divider:#e4e7ec;--color-border-strong:#ccd5e0;--color-subtle:#eef2f6;--color-danger:#b42318;--color-danger-light:#fef3f2;--color-success:#067647;--color-warning:#946200;--color-warning-light:#fffaeb;--color-trip-text:#1f2e43;--color-focus:#60a5fa;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--radius-sm:9px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--touch-min:44px;--masthead-h:69px;--bottomnav-h:70px;--content-max:980px;--shell-max:1260px;--shadow-card:0 2px 9px #10182806;--shadow-raised:0 9px 20px #10182817}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{min-width:320px;min-height:100%;font-family:var(--font-sans);color:var(--color-text-strong);background:var(--color-background);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}a{color:var(--color-primary)}img,svg{display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.text-muted{color:var(--color-text-muted)}.ds-btn{min-height:var(--touch-min);border-radius:var(--radius-md);text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:11px 15px;font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .18s,transform .18s;display:inline-flex}.ds-btn:active:not(:disabled){transform:translateY(1px)}.ds-btn--primary{background:var(--color-primary);color:#fff}.ds-btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.ds-btn--outline{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-strong)}.ds-btn--soft{background:var(--color-primary-light);color:var(--color-primary)}.ds-btn--danger{background:var(--color-danger-light);color:var(--color-danger)}.ds-btn--text{color:var(--color-primary);padding-inline:4px}.ds-btn--full{width:100%}.ds-icon-btn{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-md);color:var(--color-primary);flex:none;place-items:center;display:grid}.ds-icon-btn:hover{background:var(--color-primary-light)}.ds-icon-btn--bordered{background:var(--color-surface);border:1px solid var(--color-divider)}.ds-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.ds-chip{border-radius:var(--radius-pill);color:var(--color-text-body);background:#ffffffba;align-items:center;padding:5px 10px;font-size:12px;font-weight:750;display:inline-flex}.ds-notice{color:var(--color-text-body);border-radius:14px;padding:13px;font-size:13px;line-height:1.65}.ds-notice--info{background:#eff7ff;border:1px solid #c5e0f7}.ds-notice--warning{background:var(--color-warning-light);border:1px solid #fedf89}.ds-section-heading{min-height:var(--touch-min);justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 16px;display:flex}.ds-section-heading__title{letter-spacing:-.4px;flex:1;min-width:0;margin:0;font-size:22px;font-weight:800;line-height:1.32}.ds-section-heading__action{flex:none;align-self:flex-start}.ds-segmented{border-radius:var(--radius-md);background:#eaeff5;gap:4px;width:max-content;max-width:100%;padding:4px;display:flex}.ds-segmented button{border-radius:var(--radius-sm);min-width:100px;height:38px;color:var(--color-text-secondary);justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.ds-segmented button.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 2px 6px #202f400f}.ds-empty{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:6px;padding:35px 15px;display:flex}.ds-empty__icon{color:var(--color-text-faint);margin-bottom:4px}.ds-empty__title{color:var(--color-text-body);margin:0;font-size:15px;font-weight:700}.ds-empty__desc{margin:0 0 8px;font-size:12px}@media (width<=359px){.ds-section-heading{gap:8px}.ds-section-heading__action .ds-btn{padding:9px 11px;font-size:12px}.ds-segmented button{min-width:88px}}.home-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px;display:flex}.home-heading h1{letter-spacing:-.8px;margin:0 0 4px;font-size:27px;line-height:1.3}.home-heading p{color:var(--color-text-muted);margin:0;font-size:13px}.home-notice{margin:-6px 0 16px}.home-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.home-count{font-size:13px}.trip-cards{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.trip-card{min-height:164px;color:var(--color-trip-text);border:1px solid #0000000b;border-radius:17px;padding:20px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:block;position:relative;overflow:hidden}.trip-card:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px)}.trip-card p{opacity:.9;margin:0 0 4px;font-size:13px}.trip-card__top{align-items:flex-start;gap:10px;display:flex}.trip-card__flag{font-size:31px;line-height:1.1}.trip-card__titles{min-width:0}.trip-card__titles h2{overflow-wrap:anywhere;margin:0 0 7px;font-size:19px;line-height:1.35}.trip-card__foot{justify-content:space-between;align-items:center;gap:8px;margin-top:22px;display:flex}.trip-card__chips{flex-wrap:wrap;gap:7px;display:flex}.trip-card__go{background:#fff9;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid}.calendar-panel{margin-bottom:16px;padding:17px}.cal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.cal-month{font-size:17px;font-weight:800}.cal-controls{gap:3px;display:flex}.cal-weekdays,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekdays{text-align:center;color:var(--color-text-muted);margin-bottom:7px;font-size:12px}.cal-weekdays span{padding:8px 0}.cal-day{border-radius:11px;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-width:0;height:67px;padding:7px 1px 3px;display:flex}.cal-day.is-out{color:#b0bac7}.cal-day:not(.is-out):hover{background:#f2f6fb}.cal-day.is-selected{background:var(--color-primary-light);outline:2px solid var(--color-primary-border);outline-offset:-2px;color:var(--color-primary)}.cal-num{font-size:13px;font-weight:750}.cal-markers{justify-content:center;align-items:center;gap:3px;max-width:100%;display:flex}.cal-dot{border:1px solid #7b8a9b66;border-radius:50%;flex:none;width:7px;height:7px}.cal-more{color:var(--color-text-muted);white-space:nowrap;font-size:10px;font-weight:800}.cal-result{padding:17px}.cal-result__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:14px;display:flex}.cal-result__head .text-muted{font-size:13px}.day-trips{flex-direction:column;gap:8px;display:flex}.day-trip{width:100%;min-height:var(--touch-min);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-strong);justify-content:space-between;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.day-trip:hover{background:#f8fbff}.day-trip__left{align-items:center;gap:10px;min-width:0;display:flex}.day-trip__bar{border-radius:5px;flex:none;align-self:stretch;width:6px;min-height:36px}.day-trip strong{font-size:14px;display:block}.day-trip__sub{color:var(--color-text-muted);font-size:12px}@media (width>=600px){.trip-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-panel{padding:24px}.cal-day{height:76px}}@media (width>=1024px){.trip-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.cal-day{height:82px}}@media (width<=359px){.home-heading h1{font-size:23px}.home-heading p{max-width:165px;font-size:12px}.home-heading .ds-btn{min-height:42px;padding:9px 10px}.calendar-panel{padding:9px}.cal-day{height:58px}.cal-num{font-size:12px}.cal-dot{width:5px;height:5px}}.settings-page{max-width:760px}.settings-card{margin-bottom:16px;padding:20px}.settings-card__title{margin:0 0 6px;font-size:18px;font-weight:800}.info-list{margin:0}.info-pair{border-bottom:1px solid var(--color-divider);justify-content:space-between;gap:20px;padding:12px 0;font-size:14px;display:flex}.info-pair dt{color:var(--color-text-muted);flex:none}.info-pair dd{text-align:right;overflow-wrap:anywhere;min-width:0;margin:0}.settings-color{color:var(--color-text-muted);align-items:center;gap:9px;margin-top:12px;font-size:12px;display:flex}.settings-color__swatch{border:1px solid #7b8a9b66;border-radius:50%;width:15px;height:15px}.trip-layout{display:block}.trip-main{width:100%;max-width:var(--content-max);min-width:0;padding:24px 20px calc(var(--bottomnav-h) + 40px + env(safe-area-inset-bottom));margin:0 auto}.trip-rail{display:none}.trip-bottomnav{z-index:19;height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-divider);justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -3px 16px #1018280c}.trip-bottomnav a{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:650;text-decoration:none;display:flex}.trip-bottomnav a.is-selected{color:var(--color-primary);background:linear-gradient(to bottom, var(--color-primary-light) 0%, #fff 85%)}@media (width>=600px){.trip-main{padding:30px 30px calc(var(--bottomnav-h) + 44px + env(safe-area-inset-bottom))}}@media (width>=1024px){.trip-layout{grid-template-columns:215px minmax(0,1fr);gap:36px;padding:25px 30px 60px;display:grid}.trip-main{max-width:950px;margin:0;padding:8px 0 60px}.trip-rail{top:calc(var(--masthead-h) + 26px);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:18px;flex-direction:column;align-self:start;gap:5px;padding:13px;display:flex;position:sticky}.trip-rail__title{color:var(--color-text-muted);padding:12px;font-size:12px;font-weight:800}.trip-rail a{min-height:46px;color:var(--color-text-secondary);border-radius:11px;align-items:center;gap:12px;padding:12px 13px;font-size:14px;font-weight:750;text-decoration:none;display:flex}.trip-rail a.is-selected{background:var(--color-primary-light);color:var(--color-primary)}.trip-bottomnav{display:none}}@media (width<=359px){.trip-main{padding-left:13px;padding-right:13px}}.date-navigation{grid-template-columns:76px minmax(0,1fr);gap:8px;max-width:850px;margin-bottom:17px;display:grid}.date-tabs-scroller{overscroll-behavior-x:contain;scrollbar-width:none;gap:8px;display:flex;overflow:auto hidden}.date-tabs-scroller::-webkit-scrollbar{display:none}.date-tab{border-radius:var(--radius-md);background:var(--color-subtle);width:76px;height:60px;color:var(--color-text-body);flex-direction:column;flex:0 0 76px;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:700;display:flex}.date-tab b{font-size:14px}.date-tab.is-active{background:var(--color-primary);color:#fff}.date-tab__two-line{text-align:center;font-size:13px;line-height:1.35}.day-header{margin:18px 0 15px}.day-header h3{margin:0 0 5px;font-size:19px}.day-header p{color:var(--color-text-muted);margin:0;font-size:12px}@media (width<=359px){.date-navigation,.date-tabs-scroller{gap:5px}.day-header h3{font-size:16px}}.members-notice{margin:-4px 0 14px}.members-count{color:var(--color-text-muted);margin:0;font-size:13px}.members-group{color:var(--color-text-muted);margin:18px 0 10px;font-size:13px;font-weight:800}.member-card{align-items:center;gap:12px;margin-bottom:9px;padding:14px;display:flex}.member-card__avatar{background:var(--color-primary-light);width:40px;height:40px;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.member-card__body{flex:1;min-width:0}.member-card__name{font-size:14px;font-weight:750}.member-card__role{color:var(--color-text-muted);margin-top:4px;font-size:12px}.member-card__crown{color:#d29a00}.masthead{height:var(--masthead-h);background:var(--color-surface);border-bottom:1px solid var(--color-divider);z-index:30;padding-top:env(safe-area-inset-top);box-sizing:content-box;position:sticky;top:0}.masthead__inner{max-width:var(--shell-max);height:100%;padding:0 max(20px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:14px;margin:0 auto;display:flex}.brand{color:var(--color-primary);letter-spacing:-.8px;white-space:nowrap;align-items:center;gap:10px;font-size:24px;font-weight:850;text-decoration:none;display:flex}.masthead__right{align-items:center;gap:10px;display:flex}.demo-tag{background:var(--color-warning-light);color:var(--color-warning);border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #fedf89;padding:6px 10px;font-size:12px;font-weight:700}.avatar{width:36px;height:36px;color:var(--color-text-body);background:#e9eef6;border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.app-shell{max-width:var(--shell-max);margin:0 auto}.page-content{width:100%;max-width:var(--content-max);margin:0 auto;padding:24px 20px 40px}.page-loading{text-align:center;color:var(--color-text-muted);padding:40px 0;font-size:14px}.footer-hint{color:var(--color-text-muted);margin-top:22px;font-size:12px;line-height:1.7}.inline-icon{vertical-align:-2px;margin-right:4px;display:inline-block}.tripbar{align-items:center;gap:10px;margin-bottom:20px;display:flex}.tripbar__flag{font-size:27px;line-height:1}.tripbar__meta{flex:1;min-width:0}.tripbar__meta h1{white-space:nowrap;text-overflow:ellipsis;margin:0 0 5px;font-size:20px;overflow:hidden}.tripbar__meta p{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}@media (width>=600px){.page-content{padding:30px 30px 44px}}@media (width>=1024px){.masthead__inner{padding:0 30px}.page-content{padding:34px 30px 52px}.tripbar{margin-bottom:25px}}@media (width<=359px){.masthead__inner{padding:0 12px}.brand{font-size:21px}.demo-tag{padding:5px 8px;font-size:11px}.page-content{padding-left:13px;padding-right:13px}.tripbar__meta h1{font-size:18px}}
