@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:"Noto Sans SC", "PingFang SC", sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.table{display:table}}@font-face{font-family:Noto Sans SC;src:url(/fonts/NotoSansSC-Variable.woff2)format("woff2-variations");font-style:normal;font-weight:400 900;font-display:swap}:root{--bg-page:linear-gradient(180deg, #dceefb, #f0f7fd 45%);--bg-page-solid:#f0f7fd;--surface:#fff;--surface-sunken:#f5f8fb;--surface-tint:#f2f9ff;--brand:#2da4f5;--brand-deep:#1e93e8;--brand-sky:#5cbcf8;--brand-link:#1b8ede;--brand-pale:#e7f4fe;--brand-on-dark:#7cc7fa;--ink:#14324a;--ink-muted:#5f83a0;--ink-faint:#9db6c9;--divider:#e9f2fa;--fam-wanzi:#f2735f;--fam-wanzi-bg:#fff5f3;--fam-wanzi-ink:#c05540;--fam-tiantian:#2aa79b;--fam-tiantian-bg:#eefaf8;--fam-tiantian-ink:#1d7d73;--fam-yike:#e0a13c;--fam-yike-bg:#fdf6e8;--fam-yike-ink:#a3721f;--air-spring:linear-gradient(150deg, #1e93e8, #5cbcf8);--air-scoot:linear-gradient(150deg, #f2a338, #f6c069);--day-1-bg:#d9f2e3;--day-1-ink:#1f8a5f;--day-2-bg:#14324a;--day-2-ink:#7cc7fa;--day-3-bg:#fde9d8;--day-3-ink:#c97a2e;--day-4-bg:#e8e5fa;--day-4-ink:#6a5bd8;--on-brand:#fff;--danger:#e0742f;--danger-pale:#fdeee2;--desktop-bg:#d8e2ec;--image-shadow:#14324a38;--family-shadow:#14324a2e;--brand-shadow-strong:#2da4f559;--on-brand-muted:#ffffffe0;--photo-label:#14324ad6;--photo-pattern:repeating-linear-gradient(45deg, #dbeaf7, #dbeaf7 6px, #d2e4f4 6px, #d2e4f4 12px);--nav-fade:linear-gradient(180deg, #f0f7fd00, #f0f7fdeb 38%, #f0f7fd 70%);--r-card:20px;--r-card-lg:22px;--r-chip:999px;--r-inner:16px;--r-small:8px;--sh-card:0 2px 10px #14324a0f;--sh-float:0 6px 18px #14324a1f;--sh-brand:0 8px 20px #2da4f54d;--sh-family:0 4px 10px var(--family-shadow);--sh-focus:0 0 0 4px var(--brand-pale)}*{box-sizing:border-box}html{background:var(--desktop-bg)}body{background:var(--desktop-bg);min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Noto Sans SC,PingFang SC,sans-serif}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:var(--sh-focus);outline:none}.phone-frame{background:var(--bg-page);width:100%;max-width:430px;min-height:100dvh;margin-inline:auto;position:relative;overflow-x:hidden}.status-spacer{height:max(14px, env(safe-area-inset-top))}.login-main{text-align:center;padding:64px 20px 40px}.adventure-mark{background:var(--brand);width:72px;height:72px;box-shadow:var(--sh-brand);color:var(--on-brand);border-radius:24px;place-items:center;margin-inline:auto;display:grid}.login-title{margin:18px 0 0;font-size:22px;font-weight:900;line-height:1.3}.login-subtitle{color:var(--ink-muted);margin:8px 0 0;font-size:12px;font-weight:500;line-height:1.6}.passcode-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);text-align:left;margin-top:32px;padding:18px}.field-label{font-size:13px;font-weight:700;line-height:1;display:block}.passcode-input{border:2px solid var(--brand);background:var(--surface-tint);width:100%;height:52px;color:var(--ink);text-align:center;letter-spacing:.18em;border-radius:14px;margin-top:10px;font-size:20px;font-weight:900}.passcode-input[aria-invalid=true]{border-color:var(--danger);background:var(--danger-pale)}.passcode-boxes{margin-top:10px;position:relative}.passcode-cells{gap:8px;display:flex}.passcode-box{background:var(--surface-sunken);border:2px solid #0000;border-radius:12px;flex:1;place-items:center;min-width:0;height:48px;display:grid}.passcode-box.is-filled{border-color:var(--brand);background:var(--surface-tint);color:var(--ink);font-size:20px;font-weight:800;line-height:1}.passcode-box.is-current:after{background:var(--ink-faint);content:"";border-radius:50%;width:8px;height:8px}.passcode-boxes.is-error .passcode-box{border-color:var(--danger);background:var(--danger-pale)}.passcode-box-input{z-index:1;cursor:text;opacity:0;border:0;width:100%;height:100%;position:absolute;inset:0}.passcode-box-input:focus-visible+.passcode-cells{box-shadow:var(--sh-focus);border-radius:12px}.field-hint,.privacy-hint{color:var(--ink-faint);font-weight:400}.field-hint{margin:8px 0 0;font-size:11px;line-height:1.5}.primary-button{border-radius:var(--r-chip);background:var(--brand);width:100%;min-height:46px;box-shadow:0 6px 16px var(--brand-shadow-strong);color:var(--on-brand);cursor:pointer;border:0;font-size:14px;font-weight:800;line-height:1;transition:transform .12s,opacity .12s}.primary-button:active{transform:scale(.98)}.primary-button:disabled{cursor:wait;opacity:.7}.login-button{margin-top:16px}.form-error{min-height:16px;color:var(--danger);margin:12px 0 0;font-size:11px;font-weight:600;line-height:1.4}.privacy-hint{margin:38px 0 0;font-size:10.5px;line-height:1.5}.identity-page{padding-bottom:28px}.welcome-pill{border-radius:var(--r-chip);background:var(--day-1-bg);width:fit-content;color:var(--day-1-ink);align-items:center;gap:7px;margin:20px auto 0;padding:7px 13px;font-size:11.5px;font-weight:700;line-height:1;display:flex}.welcome-check{border-bottom:2.5px solid;border-left:2.5px solid;width:8px;height:5px;transform:rotate(-45deg)}.identity-hero{z-index:1;object-fit:contain;width:224px;height:178px;filter:drop-shadow(0 12px 12px var(--image-shadow));margin:4px auto -36px;display:block;position:relative}.identity-card{background:var(--surface);box-shadow:var(--sh-card);border-radius:24px;margin-inline:20px;padding:48px 16px 18px}.identity-heading{text-align:center;margin:0;font-size:21px;font-weight:900;line-height:1.4}.identity-meta{color:var(--ink-muted);text-align:center;margin:8px 0 0;font-size:12px;font-weight:500}.ticket-divider{background:repeating-linear-gradient(90deg, var(--divider) 0 7px, transparent 7px 13px);height:2px;margin:16px 0 14px}.identity-prompt{margin:0;font-size:14px;font-weight:800;line-height:1}.identity-help{color:var(--ink-faint);margin:5px 0 0;font-size:11px;line-height:1.4}.family-list{gap:10px;margin-top:14px;display:grid}.family-group{--family-color:var(--fam-wanzi);--family-bg:var(--fam-wanzi-bg);--family-ink:var(--fam-wanzi-ink);border:1.5px dashed var(--family-color);border-radius:var(--r-inner);background:var(--family-bg);padding:9px}.family-tiantian{--family-color:var(--fam-tiantian);--family-bg:var(--fam-tiantian-bg);--family-ink:var(--fam-tiantian-ink)}.family-yike{--family-color:var(--fam-yike);--family-bg:var(--fam-yike-bg);--family-ink:var(--fam-yike-ink)}.family-name{color:var(--family-ink);align-items:baseline;gap:6px;font-size:11px;font-weight:800;display:flex}.family-formal-name{opacity:.72;font-size:9px;font-weight:500}.member-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:7px;display:grid}.member-option{background:var(--surface);min-height:48px;color:var(--family-ink);cursor:pointer;border:0;border-radius:12px;padding:7px 3px;font-size:12px;font-weight:700;line-height:1.2}.member-option small{color:inherit;opacity:.72;margin-top:4px;font-size:8.5px;font-weight:500;display:block}.member-option.is-selected{background:var(--family-color);box-shadow:var(--sh-family);color:var(--on-brand)}.member-option:disabled{cursor:not-allowed;opacity:.58}.identity-actions{padding-inline:20px}.identity-submit{min-height:48px;margin-top:16px;font-size:15px}.identity-footnote{color:var(--ink-faint);text-align:center;margin:11px 0 0;font-size:10.5px}.app-shell{min-height:100dvh;padding-bottom:calc(112px + env(safe-area-inset-bottom))}.app-header{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.member-greeting{color:var(--ink-muted);font-size:12px;font-weight:600}.settings-link{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);padding:8px 11px;font-size:10.5px;font-weight:700;text-decoration:none}.home-page{padding-bottom:12px}.home-hero{align-items:stretch;gap:12px;padding:16px 20px 0;display:flex}.home-hero-image{z-index:1;object-fit:contain;width:clamp(150px,42vw,180px);height:clamp(170px,45vw,194px);filter:drop-shadow(0 10px 10px var(--image-shadow));flex:none;margin:0 0 -38px -14px;position:relative}.home-hero-copy{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.home-greeting,.home-trip-meta{color:var(--ink-muted);white-space:nowrap;margin:0}.home-greeting{text-overflow:ellipsis;font-size:12px;font-weight:600;line-height:1;overflow:hidden}.home-hero-copy h1{margin:7px 0 0;font-size:22px;font-weight:900;line-height:1.3}.home-trip-meta{margin-top:6px;font-size:11.5px;font-weight:500;line-height:1}.trip-progress{min-height:30px;color:var(--brand);align-items:baseline;gap:6px;margin-top:11px;display:flex}.trip-progress strong{font-size:21px;font-weight:900;line-height:1}.trip-progress.phase-before strong{font-size:30px}.trip-progress span{color:var(--ink-muted);font-size:11px;font-weight:600;line-height:1}.family-chips{gap:6px;margin-top:11px;display:flex}.family-chips span{border-radius:var(--r-chip);white-space:nowrap;border:1.5px dashed;padding:6px 10px;font-size:10.5px;font-weight:700;line-height:1}.family-chips .chip-wanzi{border-color:var(--fam-wanzi);background:var(--fam-wanzi-bg);color:var(--fam-wanzi-ink)}.family-chips .chip-tiantian{border-color:var(--fam-tiantian);background:var(--fam-tiantian-bg);color:var(--fam-tiantian-ink)}.family-chips .chip-yike{border-color:var(--fam-yike);background:var(--fam-yike-bg);color:var(--fam-yike-ink)}.home-section{margin-top:12px}.home-strip{overscroll-behavior-inline:contain;scrollbar-width:none;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding-inline:20px;scroll-padding-inline:20px;display:flex;overflow-x:auto}.home-strip::-webkit-scrollbar{display:none}.home-announcement,.flight-card{scroll-snap-align:start;flex:none;width:calc(100% - 40px)}.home-announcement{border-radius:var(--r-card);background:var(--ink);padding:14px 18px}.home-announcement>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.home-announcement strong{color:var(--brand-on-dark);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;line-height:1;overflow:hidden}.home-announcement time{color:var(--ink-muted);flex:none;font-size:10px;line-height:1}.home-announcement p{color:var(--surface);margin:8px 0 0;font-size:13px;font-weight:600;line-height:1.6}.home-dots{justify-content:center;align-items:center;gap:5px;height:5px;margin-top:6px;display:flex}.home-dots span{background:var(--divider);border-radius:50%;width:5px;height:5px}.home-dots .is-current{background:var(--brand);border-radius:3px;width:14px}.flight-card{border-radius:var(--r-card-lg);box-shadow:var(--sh-brand);color:var(--surface);text-decoration:none;overflow:hidden}.flight-card.air-spring{background:var(--air-spring)}.flight-card.air-scoot{background:var(--air-scoot)}.flight-card-head{background:var(--surface);justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:13px 18px;display:flex}@supports (color:color-mix(in lab, red, red)){.flight-card-head{background:color-mix(in srgb, var(--surface) 15%, transparent)}}.airline-name{align-items:center;gap:7px;min-width:0;display:flex}.airline-mark{background:var(--surface);border-radius:50%;flex:none;width:18px;height:18px;position:relative}.airline-mark:after{content:"";background:currentColor;border-radius:50% 50% 50% 0;width:8px;height:8px;position:absolute;top:5px;left:5px;transform:rotate(45deg)}.air-spring .airline-mark{color:var(--brand-deep)}.air-scoot .airline-mark{color:var(--fam-yike)}.airline-name strong{flex:none;font-size:12px;font-weight:800;line-height:1}.airline-name small,.boarding-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1}.airline-name small{color:var(--on-brand-muted);white-space:nowrap;text-overflow:ellipsis;font-size:8.5px;font-weight:600;overflow:hidden}.boarding-label{border-radius:var(--r-chip);background:var(--surface);flex:none;padding:4px 8px}@supports (color:color-mix(in lab, red, red)){.boarding-label{background:color-mix(in srgb, var(--surface) 23%, transparent)}}.boarding-label{letter-spacing:.04em;white-space:nowrap;font-size:8.5px;font-weight:700}.flight-route{justify-content:space-between;align-items:center;padding:20px 18px 16px;display:flex}.flight-route>div:first-child,.flight-arrival{width:31%;min-width:0}.flight-arrival{text-align:right}.airport-code{letter-spacing:.02em;font-size:clamp(30px,8.4vw,36px);font-weight:900;line-height:1;display:block}.flight-route p{margin:9px 0 0;font-size:10.5px;font-weight:600;line-height:1.35}.flight-route p b{font-weight:800}.flight-path{text-align:center;flex:1;min-width:64px;margin-inline:8px}.flight-path>span,.flight-path time{color:var(--on-brand-muted);white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8.5px;font-weight:600;line-height:1;display:block}.flight-path-line{background:repeating-linear-gradient(90deg, var(--on-brand-muted) 0 6px, transparent 6px 12px);height:2px;margin-top:8px;position:relative}.flight-path-line:before,.flight-path-line:after{content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:-2.5px}.flight-path-line:before{border:1.5px solid var(--on-brand-muted);left:-2px}.flight-path-line:after{background:var(--surface);right:-2px}.flight-path-line svg{width:24px;height:24px;color:var(--surface);position:absolute;top:-11px;left:50%;transform:translate(-50%)}.flight-path time{margin-top:10px}.flight-stub{border-top:2px dashed var(--on-brand-muted);justify-content:space-between;align-items:center;gap:8px;padding:13px 18px 15px;display:flex;position:relative}.flight-stub:before,.flight-stub:after{background:var(--bg-page-solid);content:"";border-radius:50%;width:18px;height:18px;position:absolute;top:-10px}.flight-stub:before{left:-9px}.flight-stub:after{right:-9px}.flight-stub p{color:var(--on-brand-muted);margin:0;font-size:9.5px;font-weight:600;line-height:1.2}.flight-stub strong{margin-top:6px;font-size:10.5px;font-weight:800;line-height:1;display:block}.flight-barcode{background:repeating-linear-gradient(90deg, var(--surface) 0 2px, transparent 2px 4px, var(--surface) 4px 8px, transparent 8px 10px);flex:none;width:46px;height:14px}.home-poll-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);color:inherit;margin:12px 20px 0;padding:16px;text-decoration:none;display:block}.home-poll-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.home-poll-head h2{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:14px;font-weight:800;line-height:1;overflow:hidden}.home-poll-head>span{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);flex:none;padding:4px 9px;font-size:10px;font-weight:700;line-height:1}.home-poll-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.home-poll-options>div{border-radius:var(--r-inner);background:var(--surface-sunken);border:2px solid #0000;min-width:0;padding:12px}.home-poll-options>div.is-leading{border-color:var(--brand);background:var(--surface-tint)}.home-poll-options strong{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;line-height:1.4;display:block;overflow:hidden}.home-poll-options p{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin:3px 0 0;font-size:10.5px;line-height:1.4;overflow:hidden}.home-poll-options b{color:var(--ink-faint);margin-top:8px;font-size:18px;font-weight:900;line-height:1;display:block}.home-poll-options .is-leading b{color:var(--brand-link)}.home-poll-options small{color:var(--ink-muted);font-size:10px;font-weight:500}.home-summary-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px;margin:12px 20px 0;display:grid}.key-date-card,.task-progress-card,.home-wishlist{background:var(--surface);box-shadow:var(--sh-card);border-radius:18px}.key-date-card,.task-progress-card{min-width:0;padding:14px}.key-date-card>div{align-items:center;gap:8px;display:flex}.key-date-card strong{border-radius:var(--r-small);background:var(--brand-pale);color:var(--brand-link);padding:5px 8px;font-size:12px;font-weight:800;line-height:1}.key-date-card h2,.task-progress-card h2{margin:0;font-size:13px;font-weight:700;line-height:1.3}.key-date-card p{color:var(--ink-muted);margin:7px 0 0;font-size:11px;line-height:1.5}.task-progress-card{color:inherit;text-decoration:none}.task-progress-card progress{appearance:none;background:var(--divider);border:0;border-radius:4px;width:100%;height:7px;margin-top:10px;display:block;overflow:hidden}.task-progress-card progress::-webkit-progress-bar{background:var(--divider);border-radius:4px}.task-progress-card progress::-webkit-progress-value{background:var(--brand);border-radius:4px}.task-progress-card progress::-moz-progress-bar{background:var(--brand);border-radius:4px}.task-progress-card>strong{color:var(--brand-link);margin-top:8px;font-size:13px;font-weight:800;line-height:1;display:block}.task-progress-card small{color:var(--ink-muted);font-size:10.5px;font-weight:500}.home-wishlist{min-width:0;color:inherit;align-items:center;gap:10px;margin:12px 20px 0;padding:13px 14px;text-decoration:none;display:flex}.home-wishlist strong,.home-wishlist b{white-space:nowrap;flex:none}.home-wishlist strong{font-size:13px;font-weight:700;line-height:1}.home-wishlist span{min-width:0;color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11.5px;line-height:1.5;overflow:hidden}.home-wishlist b{color:var(--brand-link);font-size:11.5px;font-weight:800;line-height:1}.home-itinerary{margin-top:16px}.home-itinerary>header{justify-content:space-between;align-items:baseline;padding-inline:20px;display:flex}.home-itinerary h2{margin:0;font-size:14px;font-weight:800;line-height:1}.home-itinerary>header a{color:var(--brand-link);font-size:11px;font-weight:600;line-height:1;text-decoration:none}.itinerary-strip{padding-top:10px;padding-bottom:6px}.home-day-card{border-radius:var(--r-inner);width:112px;min-height:112px;color:inherit;scroll-snap-align:start;flex:none;padding:12px;text-decoration:none}.home-day-card:nth-child(4n+1){transform:rotate(-1.2deg)}.home-day-card:nth-child(4n+2){transform:rotate(.8deg)}.home-day-card:nth-child(4n+3){transform:rotate(-.8deg)}.home-day-card:nth-child(4n){transform:rotate(1deg)}.home-day-card>span{white-space:nowrap;font-size:10.5px;font-weight:700;line-height:1;display:block}.home-day-card h3{color:var(--ink);margin:6px 0 0;font-size:13px;font-weight:800;line-height:1.4}.home-day-card p{opacity:.76;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:10.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.home-day-card.day-tone-2 h3{color:var(--surface)}.flight-detail-page,.hotels-page,.hotel-detail-page{padding:16px 20px 24px}.content-heading{align-items:center;gap:12px;display:flex}.content-heading>div{flex:1;min-width:0}.content-heading h1{margin:0;font-size:18px;font-weight:900;line-height:1.3}.content-heading p{color:var(--ink-muted);margin:5px 0 0;font-size:10.5px;font-weight:500;line-height:1.45}.flight-summary{border-radius:var(--r-card);box-shadow:var(--sh-card);color:var(--on-brand);margin-top:14px;padding:16px}.flight-summary.air-spring{background:var(--air-spring)}.flight-summary.air-scoot{background:var(--air-scoot)}.flight-summary-head,.flight-summary-head>div{align-items:center;display:flex}.flight-summary-head{justify-content:space-between;gap:10px}.flight-summary-head>div{gap:7px}.flight-summary-head strong{font-family:monospace;font-size:15px}.flight-summary-head>span{border:1px solid var(--on-brand-muted);border-radius:var(--r-chip);padding:4px 8px;font-size:9px;font-weight:800}.flight-summary-route{grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);align-items:center;margin-top:17px;display:grid}.flight-summary-route>div:not(.flight-summary-path){flex-direction:column;min-width:0;display:flex}.flight-summary-route>div:last-child{text-align:right;align-items:flex-end}.flight-summary-route strong{font-size:30px;font-weight:900;line-height:1}.flight-summary-route time{margin-top:7px;font-family:monospace;font-size:14px;font-weight:800}.flight-summary-route>div>span{color:var(--on-brand-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:9px;overflow:hidden}.flight-summary-path{color:var(--on-brand-muted);text-align:center;flex-direction:column;align-items:center;gap:5px;font-size:8.5px;font-weight:700;display:flex}.flight-summary-path i{background:var(--on-brand-muted);width:76px;height:1px;display:block;position:relative}.flight-summary-path i:after{border-top:1px solid var(--on-brand-muted);border-right:1px solid var(--on-brand-muted);content:"";width:7px;height:7px;position:absolute;top:-3px;right:0;transform:rotate(45deg)}.flight-summary-path small{font-size:8px}.travel-content-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:15px 16px}.card-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-heading h2{margin:0;font-size:13px;font-weight:800;line-height:1.35}.card-heading>span{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);flex:none;padding:4px 8px;font-size:9px;font-weight:700;line-height:1}.passenger-families{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px;display:grid}.passenger-family{border-radius:12px;padding:9px}.passenger-family h3,.passenger-family p{margin:0}.passenger-family h3{font-size:10px;font-weight:800}.passenger-family p{color:var(--ink);margin-top:5px;font-size:10px;font-weight:600;line-height:1.6}.passenger-family.family-wanzi{background:var(--fam-wanzi-bg);color:var(--fam-wanzi-ink)}.passenger-family.family-tiantian{background:var(--fam-tiantian-bg);color:var(--fam-tiantian-ink)}.passenger-family.family-yike{background:var(--fam-yike-bg);color:var(--fam-yike-ink)}.baggage-owners{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px;display:grid}.baggage-owners>div{background:var(--surface-tint);border-radius:12px;place-items:center;padding:9px 5px;display:grid}.baggage-owners span{width:24px;height:24px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:9px;font-weight:800;display:grid}.baggage-owners .family-tone-1 span{background:var(--fam-wanzi)}.baggage-owners .family-tone-2 span{background:var(--fam-tiantian)}.baggage-owners .family-tone-3 span{background:var(--fam-yike)}.baggage-owners strong,.baggage-owners small{margin-top:4px;font-size:9.5px;line-height:1}.baggage-owners small{color:var(--brand-link);font-weight:800}.baggage-excluded{background:var(--danger-pale);color:var(--danger);border-radius:10px;margin:10px 0 0;padding:9px 10px;font-size:9.5px;font-weight:600;line-height:1.55}.baggage-diagram-row{align-items:center;gap:14px;margin-top:12px;display:flex}.baggage-diagram-row>div:last-child{flex:1;min-width:0}.baggage-diagram-row h3,.baggage-diagram-row p{margin:0}.baggage-diagram-row h3{font-size:11.5px;font-weight:800;line-height:1.35}.baggage-diagram-row p,.baggage-diagram-row>div>small{color:var(--ink-muted);margin-top:5px;font-size:9.5px;line-height:1.55}.baggage-diagram-row>div>small{color:var(--ink-faint);display:block}.suitcase-diagram{flex:none;width:92px;height:112px;position:relative}.suitcase-diagram i{border:2.5px solid var(--brand);background:var(--surface-tint);border-radius:9px;width:56px;height:72px;position:absolute;top:18px;left:20px}.suitcase-diagram b{border:2.5px solid var(--brand);border-bottom:0;border-radius:5px 5px 0 0;width:20px;height:11px;position:absolute;top:9px;left:38px}.suitcase-diagram:before,.suitcase-diagram:after{background:var(--ink-faint);content:"";position:absolute}.suitcase-diagram:before{width:2px;height:72px;top:18px;left:8px}.suitcase-diagram:after{width:56px;height:2px;bottom:12px;left:20px}.suitcase-diagram>span{color:var(--ink-muted);font-family:monospace;font-size:8px;font-weight:800;position:absolute;top:50px;left:0;transform:rotate(-90deg)}.suitcase-diagram>small{color:var(--ink-muted);font-family:monospace;font-size:8px;font-weight:800;position:absolute;bottom:0;right:10px}.carry-on-suitcase i,.carry-on-suitcase b{border-color:var(--fam-yike)}.carry-on-suitcase i{background:var(--fam-yike-bg)}.flight-reminders{background:var(--ink-muted);box-shadow:var(--sh-card);border-radius:18px;gap:1px;margin-top:12px;display:grid;overflow:hidden}.flight-reminders>div{background:var(--ink);padding:13px 15px}.flight-reminders strong{color:var(--brand-on-dark);font-size:11px;font-weight:800}.flight-reminders p{color:var(--on-brand-muted);margin:4px 0 0;font-size:10px;line-height:1.55}.hotel-timeline{margin-top:15px;display:grid}.hotel-timeline-item{gap:9px;display:flex}.hotel-timeline-rail{flex-direction:column;flex:none;align-items:center;width:25px;display:flex}.hotel-timeline-rail span{background:var(--brand);width:25px;height:25px;color:var(--on-brand);border-radius:50%;flex:none;place-items:center;font-family:monospace;font-size:9px;font-weight:800;display:grid}.hotel-timeline-rail i{background:var(--brand-pale);flex:1;width:2px;min-height:14px}.hotel-card{border-radius:var(--r-card);background:var(--surface);min-width:0;box-shadow:var(--sh-card);color:inherit;flex:1;gap:11px;margin-bottom:11px;padding:13px;text-decoration:none;display:flex}.hotel-photo-placeholder,.hotel-detail-photo,.hotel-facility-slots>div{background:var(--photo-pattern)}.hotel-photo-placeholder{width:86px;min-height:112px;color:var(--ink-muted);text-align:center;border-radius:13px;flex:none;place-items:center;padding:8px;font-family:monospace;font-size:9px;font-weight:600;line-height:1.4;display:grid}.hotel-card-copy{flex:1;min-width:0}.hotel-card-title{justify-content:space-between;align-items:flex-start;gap:7px;display:flex}.hotel-card-title h2{margin:0;font-size:12.5px;font-weight:800;line-height:1.35}.booking-status{border-radius:var(--r-chip);flex:none;padding:5px 8px;font-size:9px;font-weight:800;line-height:1}.booking-status.status-pending{background:var(--danger-pale);color:var(--danger)}.booking-status.status-booked{background:var(--day-1-bg);color:var(--day-1-ink)}.hotel-card-copy>p{color:var(--ink-muted);margin:5px 0 0;font-size:9.5px;line-height:1.4}.hotel-card-copy>strong{margin-top:5px;font-size:10px;font-weight:700;line-height:1.35;display:block}.hotel-amenities{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.hotel-amenities span{border-radius:var(--r-chip);background:var(--surface-sunken);color:var(--ink-muted);align-items:center;gap:3px;padding:4px 6px;font-size:8.5px;font-weight:600;line-height:1;display:inline-flex}.hotel-amenities i{color:var(--brand-link);font-size:9px;font-style:normal}.hotel-card-copy>small{color:var(--brand-link);margin-top:7px;font-size:8.5px;font-weight:700;display:block}.hotel-detail-photo{border-radius:var(--r-card);min-height:100px;color:var(--ink-muted);place-items:center;margin-top:14px;font-family:monospace;font-size:10px;font-weight:600;display:grid}.hotel-overview-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.hotel-overview-title h2{margin:0;font-size:16px;font-weight:900;line-height:1.35}.hotel-overview-title span{color:var(--ink-muted);flex:none;font-size:9.5px;font-weight:600}.hotel-overview-card>p{color:var(--ink-muted);margin:7px 0 0;font-size:10.5px;line-height:1.5}.hotel-contact-list{gap:0;margin:11px 0 0;display:grid}.hotel-contact-list>div{border-top:1px solid var(--divider);padding:9px 0}.hotel-contact-list dt{color:var(--ink-faint);font-size:8.5px;font-weight:700}.hotel-contact-list dd{color:var(--ink-muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:10px;line-height:1.45}.hotel-contact-list a{color:var(--brand-link)}.hotel-copy-buttons{grid-template-columns:1fr 1fr;gap:7px;display:grid}.hotel-copy-buttons button{background:var(--brand-pale);min-height:36px;color:var(--brand-link);border:0;border-radius:11px;font-size:10px;font-weight:800}.hotel-copy-buttons button:disabled{background:var(--surface-sunken);color:var(--ink-faint)}.hotel-stay-times{grid-template-columns:1fr 1fr;gap:8px;margin-top:11px;display:grid}.hotel-stay-times>div{background:var(--surface-tint);border-radius:12px;padding:11px}.hotel-stay-times span,.hotel-stay-times strong{display:block}.hotel-stay-times span{color:var(--ink-faint);font-size:8.5px;font-weight:700}.hotel-stay-times strong{color:var(--brand-link);margin-top:4px;font-size:10.5px;font-weight:800}.hotel-facility-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px;display:grid}.hotel-facility-slots>div{text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:92px;padding:8px;display:flex}.hotel-facility-slots span{background:var(--photo-label);width:24px;height:24px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:13px;display:grid}.hotel-facility-slots strong{margin-top:6px;font-size:8.5px;line-height:1.35}.hotel-facility-slots small{color:var(--ink-faint);margin-top:3px;font-size:8px}.hotel-detail-note,.hotel-decision-card{border-radius:var(--r-inner);box-shadow:var(--sh-card);margin-top:12px;padding:14px 16px}.hotel-detail-note{background:var(--surface)}.hotel-detail-note h2,.hotel-detail-note p{margin:0}.hotel-detail-note h2{font-size:12px;font-weight:800}.hotel-detail-note p{color:var(--ink-muted);margin-top:6px;font-size:10px;line-height:1.55}.hotel-decision-card{background:var(--ink);color:var(--on-brand);align-items:center;gap:10px;display:flex}.hotel-decision-card>div{flex:1;min-width:0}.hotel-decision-card strong{color:var(--brand-on-dark);font-size:11px}.hotel-decision-card p{color:var(--on-brand-muted);margin:4px 0 0;font-size:9px;line-height:1.45}.hotel-decision-card a{border-radius:var(--r-chip);background:var(--brand);color:var(--on-brand);flex:none;padding:8px 10px;font-size:9.5px;font-weight:800;text-decoration:none}.placeholder{text-align:center;place-items:start center;min-height:600px;padding:64px 20px 20px;display:grid}.placeholder-card{border-radius:var(--r-card);background:var(--surface);width:100%;box-shadow:var(--sh-card);padding:34px 20px}.placeholder-mark{border-radius:var(--r-inner);background:var(--brand-pale);width:48px;height:48px;color:var(--brand-link);place-items:center;margin-inline:auto;font-size:20px;font-weight:900;display:grid}.placeholder-title{margin:15px 0 0;font-size:22px;font-weight:900}.placeholder-copy{color:var(--ink-muted);margin:7px 0 0;font-size:12px;line-height:1.6}.itinerary-page,.day-page,.guide-page{padding:20px 20px 24px}.itinerary-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.itinerary-heading h1,.day-heading h1,.guide-heading h1{margin:0;font-size:22px;font-weight:900;line-height:1.2}.itinerary-heading p,.day-heading p,.guide-heading p{color:var(--ink-muted);margin:6px 0 0;font-size:11.5px;line-height:1.4}.itinerary-guide-link{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);flex:none;padding:7px 10px;font-size:10.5px;font-weight:700;text-decoration:none}.itinerary-list{gap:10px;margin-top:14px;display:grid}.itinerary-card{background:var(--surface);min-height:96px;box-shadow:var(--sh-card);color:inherit;border:2px solid #0000;border-radius:18px;align-items:center;gap:12px;padding:14px;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}.itinerary-card:active{transform:scale(.985)}.itinerary-card.is-today{border-color:var(--brand);background:var(--surface-tint)}.itinerary-date{border-radius:13px;flex:none;align-content:center;place-items:center;width:48px;min-height:62px;display:grid}.itinerary-date strong{font-size:16px;font-weight:900;line-height:1}.itinerary-date span{margin-top:4px;font-size:9px;font-weight:600;line-height:1}.itinerary-date small{opacity:.72;margin-top:5px;font-size:8px;font-weight:800;line-height:1}.day-tone-1{background:var(--day-1-bg);color:var(--day-1-ink)}.day-tone-2{background:var(--day-2-bg);color:var(--day-2-ink)}.day-tone-3{background:var(--day-3-bg);color:var(--day-3-ink)}.day-tone-4{background:var(--day-4-bg);color:var(--day-4-ink)}.itinerary-card-copy{flex:1;min-width:0}.itinerary-card-title{align-items:center;gap:7px;display:flex}.itinerary-card-title h2{margin:0;font-size:14px;font-weight:800;line-height:1.3}.itinerary-card-title span{border-radius:var(--r-chip);background:var(--brand);color:var(--on-brand);padding:3px 6px;font-size:8.5px;font-weight:800;line-height:1}.itinerary-card-copy>p{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:10.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.itinerary-card-meta{color:var(--ink-faint);flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:9px;font-weight:600;display:flex}.plan-status{border-radius:var(--r-small);text-align:center;flex:none;max-width:70px;padding:5px 7px;font-size:9px;font-weight:700;line-height:1.25}.status-confirmed{background:var(--day-1-bg);color:var(--day-1-ink)}.status-tentative{background:var(--day-3-bg);color:var(--day-3-ink)}.day-page{padding-top:16px}.day-heading,.guide-heading{align-items:center;gap:12px;display:flex}.day-heading>div,.guide-heading>div{flex:1;min-width:0}.day-heading h1{font-size:18px}.back-button{background:var(--surface);width:36px;height:36px;box-shadow:var(--sh-card);border-radius:12px;flex:none;place-items:center;display:grid}.back-button span{border-bottom:2.5px solid var(--ink);border-left:2.5px solid var(--ink);width:10px;height:10px;margin-left:4px;transform:rotate(45deg)}.day-switcher{flex:none;gap:5px;display:flex}.day-switcher a,.day-switcher span{background:var(--brand-pale);width:31px;height:31px;color:var(--brand-link);border-radius:10px;place-items:center;font-size:13px;font-weight:800;text-decoration:none;display:grid}.day-switcher span{opacity:.4}.day-hero{background:var(--photo-pattern);border-radius:18px;height:112px;margin-top:14px;position:relative}.day-hero:after{border:2px solid var(--surface);content:"";opacity:.6;border-radius:50%;width:76px;height:46px;position:absolute;top:18px;right:20px;transform:rotate(-8deg)}.day-hero span{z-index:1;border-radius:var(--r-chip);background:var(--photo-label);color:var(--on-brand);padding:5px 10px;font-size:10px;font-weight:700;position:absolute;bottom:10px;left:10px}.day-banner{background:var(--air-spring);color:var(--on-brand);border-radius:18px;margin-top:12px;padding:14px 16px}.day-banner-title{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.day-banner h2{margin:0;font-size:13px;font-weight:800;line-height:1.4}.day-banner-title span{border:1px solid var(--on-brand-muted);border-radius:var(--r-chip);flex:none;padding:4px 7px;font-size:9px;font-weight:700}.day-banner p{color:var(--on-brand-muted);margin:6px 0 0;font-size:11px;line-height:1.6}.day-section,.day-note{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:16px 18px}.day-section>h2,.section-heading h2{margin:0;font-size:13px;font-weight:800;line-height:1}.timeline{margin-top:14px}.timeline-item{gap:11px;display:flex}.timeline-rail{flex-direction:column;flex:none;align-items:center;width:10px;display:flex}.timeline-rail span{background:var(--brand);border-radius:50%;flex:none;width:10px;height:10px;margin-top:3px}.timeline-rail i{background:var(--divider);flex:1;width:2px;min-height:30px}.timeline-copy{flex:1;min-width:0;padding-bottom:15px}.timeline-copy h3{margin:0;font-size:12px;font-weight:800;line-height:1.4}.timeline-copy p{color:var(--ink-muted);margin:4px 0 0;font-size:10.5px;line-height:1.5}.timeline-tag{max-width:76px;color:var(--ink-faint);text-align:right;flex:none;font-size:9px;font-weight:600;line-height:1.4}.comparison-section{padding-right:0}.comparison-scroll{scrollbar-width:thin;margin-top:13px;padding:0 18px 4px 0;overflow-x:auto}.comparison-scroll table{border-spacing:0;border-collapse:separate;width:720px;color:var(--ink-muted);font-size:9.5px;line-height:1.4}.comparison-scroll th,.comparison-scroll td{border-right:1px solid var(--divider);border-bottom:1px solid var(--divider);text-align:left;vertical-align:top;padding:9px 8px}.comparison-scroll thead th{background:var(--surface-sunken);color:var(--ink);font-weight:800}.comparison-scroll tbody th{width:116px;color:var(--ink);font-weight:800}.comparison-scroll th:first-child,.comparison-scroll td:first-child{border-left:1px solid var(--divider)}.comparison-scroll thead th{border-top:1px solid var(--divider)}.comparison-scroll thead th:first-child{border-top-left-radius:var(--r-small)}.comparison-scroll thead th:last-child{border-top-right-radius:var(--r-small)}.comparison-scroll small{color:var(--ink-faint);margin-top:4px;font-size:8.5px;font-weight:500;display:block}.branch-section{margin-top:14px}.section-heading{justify-content:space-between;align-items:baseline;display:flex}.section-heading span{color:var(--ink-faint);font-size:10px}.branch-list{gap:8px;margin-top:10px;display:grid}.branch-card{border:1px solid var(--divider);border-radius:var(--r-inner);background:var(--surface);box-shadow:var(--sh-card);border-left-width:4px;padding:13px 14px}.branch-card h3{margin:0;font-size:12px;font-weight:800;line-height:1.4}.branch-card>p{color:var(--ink-muted);margin:3px 0 0;font-size:10px;line-height:1.4}.branch-card ul{color:var(--ink-muted);margin:9px 0 0;padding-left:17px;font-size:10.5px;line-height:1.6}.branch-tone-1{border-left-color:var(--day-1-ink);background:var(--day-1-bg)}.branch-tone-2{border-left-color:var(--day-3-ink);background:var(--day-3-bg)}.branch-tone-3{border-left-color:var(--day-4-ink);background:var(--day-4-bg)}.day-note{background:var(--surface-sunken);gap:13px;display:grid}.day-note strong{font-size:11px;font-weight:800}.day-note p{color:var(--ink-muted);margin:4px 0 0;font-size:10.5px;line-height:1.5}.guide-heading h1{font-size:18px}.markdown-body{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);color:var(--ink-muted);overflow-wrap:anywhere;margin-top:14px;padding:18px;font-size:12px;line-height:1.75}.markdown-body>:first-child{margin-top:0}.markdown-body h2,.markdown-body h3,.markdown-body h4{color:var(--ink);line-height:1.4}.markdown-body h2{border-bottom:1px solid var(--divider);margin:30px 0 10px;padding-bottom:8px;font-size:18px;font-weight:900}.markdown-body h3{margin:22px 0 8px;font-size:15px;font-weight:800}.markdown-body h4{margin:18px 0 7px;font-size:13px;font-weight:800}.markdown-body p,.markdown-body ul,.markdown-body ol{margin:8px 0}.markdown-body ul,.markdown-body ol{padding-left:20px}.markdown-body blockquote{border-left:4px solid var(--brand);border-radius:0 var(--r-small) var(--r-small) 0;background:var(--brand-pale);color:var(--ink);margin:12px 0;padding:10px 12px}.markdown-body blockquote p{margin:0}.markdown-body a{color:var(--brand-link);font-weight:600}.markdown-body table{border-spacing:0;border-collapse:collapse;width:100%;font-size:10px;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--divider);text-align:left;vertical-align:top;min-width:92px;padding:7px 8px}.markdown-body th{background:var(--surface-sunken);color:var(--ink)}.markdown-body code{background:var(--surface-sunken);color:var(--ink);border-radius:4px;padding:2px 5px;font-family:monospace;font-size:.92em}.markdown-body input[type=checkbox]{accent-color:var(--brand);margin-right:5px}.poll-page{padding:20px 20px 24px}.poll-list-heading,.poll-detail-heading,.poll-card-heading,.poll-card-footer,.poll-result>div,.poll-turnout{justify-content:space-between;align-items:center;gap:10px;display:flex}.poll-list-heading{align-items:flex-start}.poll-list-heading h1,.poll-detail-heading h1{margin:0;font-size:22px;font-weight:900;line-height:1.2}.poll-list-heading p,.poll-detail-heading p{color:var(--ink-muted);margin:6px 0 0;font-size:11.5px;line-height:1.4}.poll-create-toggle,.poll-close-toggle,.poll-add-option{color:var(--brand-link);cursor:pointer;border:0;font-weight:700}.poll-create-toggle,.poll-close-toggle{border-radius:var(--r-chip);background:var(--brand-pale);flex:none;padding:8px 11px;font-size:10.5px}.poll-create-form,.poll-manage{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:14px;padding:16px}.poll-create-form{gap:14px;display:grid}.poll-create-form label,.poll-create-form legend,.poll-manage label{color:var(--ink);font-size:11.5px;font-weight:700}.poll-create-form label{gap:7px;display:grid}.poll-create-form input,.poll-create-form textarea,.poll-manage textarea{border:1.5px solid var(--divider);background:var(--surface-sunken);width:100%;color:var(--ink);border-radius:12px}.poll-create-form input{min-height:42px;padding:9px 11px}.poll-create-form textarea{resize:vertical;min-height:76px;padding:9px 11px}.poll-create-form fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.poll-create-form legend{margin-bottom:7px}.poll-option-input{align-items:center;gap:6px;display:flex}.poll-option-input button{background:var(--danger-pale);width:34px;height:34px;color:var(--danger);cursor:pointer;border:0;border-radius:10px;flex:none;font-size:18px}.poll-add-option{background:0 0;width:fit-content;padding:6px 0;font-size:10.5px}.poll-loading{color:var(--ink-muted);text-align:center;margin:24px 0 0;font-size:11.5px}.poll-list{gap:10px;margin-top:6px;display:grid}.poll-list-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);color:inherit;border:2px solid #0000;padding:16px;text-decoration:none;transition:border-color .12s,transform .12s;display:block}.poll-list-card:active{border-color:var(--brand);transform:scale(.985)}.poll-card-heading{align-items:flex-start}.poll-card-heading h2{margin:0;font-size:14px;font-weight:800;line-height:1.4}.poll-status{border-radius:var(--r-chip);flex:none;padding:5px 8px;font-size:9px;font-weight:800;line-height:1}.poll-status.status-open{background:var(--brand-pale);color:var(--brand-link)}.poll-status.status-expired{background:var(--danger-pale);color:var(--danger)}.poll-status.status-closed{background:var(--surface-sunken);color:var(--ink-muted)}.poll-deadline{color:var(--ink-muted);margin:6px 0 0;font-size:10.5px}.poll-description{color:var(--ink-muted);margin:7px 0 0;font-size:10.5px;line-height:1.5}.poll-card-options{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.poll-card-options span{background:var(--surface-sunken);color:var(--ink);border-radius:11px;padding:7px 9px;font-size:10.5px;font-weight:600}.poll-card-footer{border-top:1px solid var(--divider);color:var(--ink-faint);margin-top:12px;padding-top:10px;font-size:9.5px}.poll-card-footer strong{color:var(--brand-link);flex:none;font-size:10.5px}.poll-detail{padding-top:16px}.poll-detail-heading>div{flex:1;min-width:0}.poll-detail-heading h1{font-size:18px}.poll-vote-card{border-radius:var(--r-card-lg);background:var(--surface);box-shadow:var(--sh-card);margin-top:14px;padding:18px}.poll-vote-card>h2{margin:0;font-size:17px;font-weight:900;line-height:1.4}.poll-vote-description{color:var(--ink-muted);margin:6px 0 0;font-size:11.5px;line-height:1.6}.poll-options{gap:10px;margin-top:14px;display:grid}.poll-choice,.poll-result{border-radius:var(--r-inner);background:var(--surface-sunken);width:100%;color:var(--ink);text-align:left;border:2.5px solid #0000;padding:14px}.poll-choice{cursor:pointer}.poll-choice.is-selected,.poll-result.is-leading{border-color:var(--brand);background:var(--surface-tint)}.poll-choice strong,.poll-choice span{display:block}.poll-choice strong,.poll-result strong{font-size:13.5px;font-weight:800;line-height:1.4}.poll-choice span,.poll-result p{color:var(--ink-muted);margin-top:5px;font-size:10.5px;line-height:1.5}.poll-result b{color:var(--ink-faint);font-size:16px;font-weight:900}.poll-result.is-leading b{color:var(--brand-link)}.poll-result progress{background:var(--divider);appearance:none;border:0;border-radius:5px;width:100%;height:9px;margin-top:9px;display:block;overflow:hidden}.poll-result progress::-webkit-progress-bar{background:var(--divider);border-radius:5px}.poll-result progress::-webkit-progress-value{background:var(--brand);border-radius:5px}.poll-result progress::-moz-progress-bar{background:var(--brand);border-radius:5px}.poll-result p{margin-bottom:0}.poll-submit{margin-top:14px}.poll-anonymous-note{background:var(--surface-sunken);border-radius:12px;align-items:center;gap:9px;margin-top:14px;padding:10px 12px;display:flex}.poll-anonymous-note>span{border:2px solid var(--ink-faint);width:18px;height:18px;color:var(--ink-faint);border-radius:50%;flex:none;place-items:center;font-family:serif;font-size:10px;font-weight:900;display:grid}.poll-anonymous-note p{color:var(--ink-muted);margin:0;font-size:10.5px;line-height:1.5}.poll-anonymous-note strong{color:var(--ink);display:block}.poll-turnout,.poll-conclusion,.poll-expired-note{border-radius:var(--r-inner);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:13px 16px}.poll-turnout{color:var(--ink-muted);font-size:11.5px}.poll-turnout strong{color:var(--brand-link);text-align:right;font-size:10.5px}.poll-reminder{color:var(--brand-link);cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:10.5px;font-weight:800}.poll-expired-note{color:var(--danger);font-size:10.5px;line-height:1.5}.poll-conclusion{border-left:4px solid var(--brand)}.poll-conclusion span,.poll-conclusion p{margin:0}.poll-conclusion span{color:var(--brand-link);font-size:10px;font-weight:800}.poll-conclusion p{color:var(--ink);margin-top:5px;font-size:12px;font-weight:600;line-height:1.6}.poll-manage{background:var(--surface-sunken)}.poll-manage form{gap:10px;margin-top:12px;display:grid}.poll-manage textarea{resize:vertical;min-height:90px;padding:10px 11px}.checklist-page,.feed-page{padding:16px 20px 24px}.feed-heading,.wishlist-heading,.announcement-meta,.wishlist-title-row,.wishlist-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.feed-heading h1,.wishlist-heading h2{margin:0;font-weight:900;line-height:1.2}.feed-heading h1{font-size:22px}.feed-manage-toggle{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);cursor:pointer;border:0;flex:none;padding:8px 11px;font-size:10.5px;font-weight:700}.feed-create-form{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);gap:12px;margin-top:12px;padding:15px;display:grid}.feed-create-form label{color:var(--ink);gap:7px;font-size:11.5px;font-weight:700;display:grid}.feed-create-form input,.feed-create-form textarea{border:1.5px solid var(--divider);background:var(--surface-sunken);width:100%;color:var(--ink);border-radius:12px}.feed-create-form input{min-height:42px;padding:9px 11px}.feed-create-form textarea{resize:vertical;min-height:88px;padding:10px 11px}.feed-create-form .feed-pin-option{color:var(--ink-muted);align-items:center;gap:8px;display:flex}.feed-pin-option input{width:18px;min-height:18px;accent-color:var(--brand);margin:0}.feed-error{margin-top:5px}.feed-loading{color:var(--ink-muted);text-align:center;margin:18px 0;font-size:11.5px}.announcement-list,.wishlist-list{gap:10px;display:grid}.announcement-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);padding:16px 18px;position:relative}.announcement-card.is-pinned{background:var(--ink);color:var(--on-brand)}.announcement-meta strong,.announcement-meta time{font-size:10.5px;line-height:1}.announcement-meta strong{color:var(--ink-muted);font-weight:700}.announcement-card.is-pinned .announcement-meta strong{color:var(--brand-on-dark)}.announcement-meta time{color:var(--ink-faint);flex:none;font-weight:400}.announcement-card p{color:inherit;white-space:pre-wrap;margin:8px 0 0;padding-right:42px;font-size:12.5px;font-weight:500;line-height:1.7}.announcement-card.is-pinned p{font-weight:600}.announcement-delete,.wishlist-delete{color:var(--danger);cursor:pointer;background:0 0;border:0;font-size:9.5px;font-weight:700}.announcement-delete{position:absolute;bottom:14px;right:16px}.announcement-card.is-pinned .announcement-delete{color:var(--brand-on-dark)}.announcement-delete:disabled,.wishlist-delete:disabled{cursor:wait;opacity:.6}.wishlist-section{margin-top:22px}.wishlist-heading{align-items:flex-end}.wishlist-heading h2{font-size:18px}.wishlist-heading p{color:var(--ink-faint);margin:5px 0 0;font-size:10.5px}.wishlist-card{border-radius:var(--r-inner);background:var(--surface);box-shadow:var(--sh-card);padding:13px 14px}.wishlist-title-row{align-items:baseline}.wishlist-title-row h3{margin:0;font-size:12.5px;font-weight:800;line-height:1.4}.wishlist-title-row strong{color:var(--brand-link);flex:none;font-size:10px}.wishlist-copy>p{color:var(--ink-faint);margin:3px 0 0;font-size:10px;line-height:1.4}.wishlist-members{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.wishlist-members>span{border-radius:var(--r-chip);border:1.5px dashed;padding:5px 8px;font-size:9.5px;font-weight:700;line-height:1}.wishlist-members .wishlist-empty{color:var(--ink-faint);border:0;padding-inline:0;font-weight:500}.wishlist-member-wanzi{background:var(--fam-wanzi-bg);color:var(--fam-wanzi-ink)}.wishlist-member-tiantian{background:var(--fam-tiantian-bg);color:var(--fam-tiantian-ink)}.wishlist-member-yike{background:var(--fam-yike-bg);color:var(--fam-yike-ink)}.wishlist-actions{flex-wrap:wrap;justify-content:flex-end;margin-top:10px}.wishlist-realized,.wishlist-toggle{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);cursor:pointer;border:0;padding:6px 10px;font-size:9.5px;font-weight:800}.wishlist-realized{background:var(--surface-sunken);color:var(--ink-faint)}.wishlist-realized[aria-pressed=true],.wishlist-toggle[aria-pressed=true]{background:var(--day-1-bg);color:var(--day-1-ink)}.wishlist-realized:disabled,.wishlist-toggle:disabled{cursor:wait;opacity:.65}.checklist-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.checklist-heading h1{margin:0;font-size:22px;font-weight:900;line-height:1.2}.checklist-heading p{color:var(--ink-muted);margin:5px 0 0;font-size:11px}.checklist-total{border:5px solid var(--brand);background:var(--bg-page-solid);width:48px;height:48px;color:var(--brand-link);text-align:center;border-radius:50%;flex:none;place-content:center;display:grid}.checklist-total strong{font-size:10.5px;font-weight:900;line-height:1}.checklist-total span{margin-top:3px;font-size:7.5px;font-weight:700;line-height:1}.checklist-pills{gap:8px;margin-top:13px;display:flex}.checklist-pills button{border-radius:var(--r-chip);background:var(--surface);color:var(--ink-muted);cursor:pointer;border:0;padding:8px 12px;font-size:10.5px;font-weight:700;line-height:1}.checklist-pills button[aria-pressed=true]{background:var(--ink);color:var(--on-brand)}.checklist-shared-note{background:var(--brand-pale);color:var(--brand-link);border-radius:14px;margin:12px 0 0;padding:10px 13px;font-size:10.5px;font-weight:500;line-height:1.6}.checklist-guide{border-radius:var(--r-inner);background:var(--ink);width:100%;color:var(--on-brand);text-align:left;border:0;align-items:center;gap:11px;margin-top:10px;padding:12px 14px;display:flex}.checklist-guide:disabled{opacity:1}.checklist-guide-art{background:repeating-linear-gradient(45deg, var(--ink-muted), var(--ink-muted) 5px, var(--ink) 5px, var(--ink) 10px);width:44px;height:44px;color:var(--ink);border-radius:11px;flex:none;align-items:flex-end;padding:5px;font-size:7.5px;font-weight:800;display:flex}.checklist-guide-art:after{background:var(--on-brand);content:"7-11";border-radius:5px;padding:2px 4px}.checklist-guide>span:nth-child(2){flex:1;min-width:0}.checklist-guide strong,.checklist-guide small{display:block}.checklist-guide strong{font-size:13px;font-weight:800;line-height:1}.checklist-guide small{color:var(--ink-faint);margin-top:5px;font-size:10px;line-height:1.4}.checklist-guide b{color:var(--brand-on-dark);flex:none;font-size:9px}.checklist-error{margin-top:6px}.checklist-loading{color:var(--ink-muted);text-align:center;margin:20px 0;font-size:11.5px}.checklist-group{border-radius:var(--r-inner);background:var(--surface);box-shadow:var(--sh-card);margin-top:10px;padding:12px 13px 13px}.checklist-group summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 10px;align-items:center;gap:9px;list-style:none;display:grid}.checklist-group summary::-webkit-details-marker{display:none}.checklist-group summary:after{border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);content:"";width:7px;height:7px;transition:transform .12s;transform:rotate(45deg)translateY(-2px)}.checklist-group[open] summary:after{transform:rotate(225deg)translate(-2px,-1px)}.checklist-group summary span,.checklist-group summary strong,.checklist-group summary small{display:block}.checklist-group summary strong{color:var(--ink);font-size:13px;font-weight:800;line-height:1.2}.checklist-group summary small{color:var(--ink-faint);margin-top:4px;font-size:9.5px;font-weight:500}.checklist-group summary b{border-radius:var(--r-small);background:var(--brand-pale);color:var(--brand-link);padding:5px 7px;font-size:9.5px;font-weight:800}.checklist-group progress{border-radius:var(--r-chip);background:var(--divider);appearance:none;border:0;width:100%;height:7px;margin-top:11px;display:block;overflow:hidden}.checklist-group progress::-webkit-progress-bar{border-radius:var(--r-chip);background:var(--divider)}.checklist-group progress::-webkit-progress-value{border-radius:var(--r-chip);background:var(--brand)}.checklist-group progress::-moz-progress-bar{border-radius:var(--r-chip);background:var(--brand)}.checklist-items{gap:8px;margin-top:11px;display:grid}.checklist-item{border:1px solid var(--divider);background:var(--surface);border-radius:14px;align-items:flex-start;gap:10px;padding:11px;display:flex}.checklist-toggle{border:2.5px solid var(--divider);border-radius:var(--r-small);background:var(--surface);cursor:pointer;flex:none;place-items:center;width:25px;height:25px;padding:0;display:grid}.checklist-toggle[aria-pressed=true]{border-color:var(--brand);background:var(--brand)}.checklist-toggle[aria-pressed=true] span{border-bottom:2.5px solid var(--on-brand);border-left:2.5px solid var(--on-brand);width:10px;height:6px;margin-bottom:3px;transform:rotate(-45deg)}.checklist-toggle:disabled{cursor:wait;opacity:.65}.checklist-item-copy{flex:1;min-width:0}.checklist-urgent{border-radius:var(--r-small);background:var(--danger-pale);color:var(--danger);flex:none;padding:4px 7px;font-size:9px;font-weight:700;line-height:1}.checklist-item h3{color:var(--ink);margin:1px 0 0;font-size:12px;font-weight:700;line-height:1.45}.checklist-item.is-completed h3{color:var(--ink-faint);text-decoration:line-through}.checklist-item-copy>p{color:var(--ink-faint);margin:3px 0 0;font-size:9.5px;line-height:1.45}.checklist-item-copy>p strong{color:var(--danger);font-weight:700}.checklist-completion{color:var(--ink-muted);align-items:center;gap:5px;margin-top:6px;font-size:9.5px;font-weight:600;display:flex}.checklist-completion span{--checklist-family:var(--fam-wanzi);background:var(--checklist-family);width:20px;height:20px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:8.5px;font-weight:800;display:grid}.checklist-completion span.checklist-family-tiantian{--checklist-family:var(--fam-tiantian)}.checklist-completion span.checklist-family-yike{--checklist-family:var(--fam-yike)}.expense-page,.expense-form-page,.expense-rates-page,.expense-settlement-page{padding:16px 20px 24px}.expense-heading,.expense-form-heading,.expense-day>header,.expense-family-summary{justify-content:space-between;align-items:center;gap:10px;display:flex}.expense-heading h1,.expense-form-heading h1{margin:0;font-size:22px;font-weight:900;line-height:1.2}.expense-heading p,.expense-form-heading p{color:var(--ink-muted);margin:5px 0 0;font-size:10.5px;line-height:1.4}.expense-heading-actions{flex:none;gap:6px;display:flex}.expense-rate-link,.expense-settle-link{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);flex:none;padding:8px 11px;font-size:10.5px;font-weight:700;text-decoration:none}.expense-settle-link{background:var(--brand);color:var(--on-brand)}.expense-summary{border-radius:var(--r-card-lg);background:linear-gradient(135deg, var(--brand), var(--brand-sky));box-shadow:var(--sh-brand);color:var(--on-brand);margin-top:14px;padding:18px}.expense-summary>p{color:var(--on-brand-muted);margin:0;font-size:11px;font-weight:600}.expense-summary>strong{margin-top:7px;font-size:32px;font-weight:900;line-height:1;display:block}.expense-currency-totals{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.expense-currency-totals span{border-radius:var(--r-chip);background:var(--on-brand);padding:5px 8px}@supports (color:color-mix(in lab, red, red)){.expense-currency-totals span{background:color-mix(in srgb, var(--on-brand) 20%, transparent)}}.expense-currency-totals span{font-size:9px;font-weight:650}.expense-family-summary{border-top:1px solid var(--on-brand);margin-top:12px;padding-top:11px}@supports (color:color-mix(in lab, red, red)){.expense-family-summary{border-top:1px solid color-mix(in srgb, var(--on-brand) 30%, transparent)}}.expense-family-summary{color:var(--on-brand-muted);font-size:10.5px;font-weight:650}.expense-error{margin-top:8px}.expense-loading{color:var(--ink-muted);text-align:center;margin:20px 0 0;font-size:11.5px}.expense-day{margin-top:12px}.expense-day>header{padding-inline:1px}.expense-day>header strong{color:var(--ink-muted);font-size:12px}.expense-day>header span{color:var(--ink-faint);font-size:10px;font-weight:700}.expense-list{gap:9px;margin-top:8px;display:grid}.expense-card{background:var(--surface);min-width:0;box-shadow:var(--sh-card);border-radius:18px;align-items:center;gap:11px;padding:13px 14px;display:flex}.expense-card.is-pending{border:1.5px dashed var(--brand);background:var(--surface-tint)}.expense-card.is-pending.is-failed{border-color:var(--danger);background:var(--danger-pale)}.expense-sync-badge{max-width:100%;color:var(--brand-link);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:8.5px;font-weight:800;display:inline-block;overflow:hidden}.expense-card.is-failed .expense-sync-badge{color:var(--danger)}.expense-category-icon{background:var(--brand-pale);width:38px;height:38px;color:var(--brand-link);border-radius:12px;flex:none;place-items:center;font-size:12px;font-weight:900;display:grid}.expense-copy{flex:1;min-width:0}.expense-copy h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;font-weight:750;line-height:1.3;overflow:hidden}.expense-copy>p{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:9.5px;line-height:1.4;overflow:hidden}.expense-family-dots{gap:4px;margin-top:5px;display:flex}.expense-family-dots span{border-radius:var(--r-chip);background:var(--expense-family-bg);color:var(--expense-family-ink);padding:3px 6px;font-size:8px;font-weight:750}.expense-family-1{--expense-family:var(--fam-wanzi);--expense-family-bg:var(--fam-wanzi-bg);--expense-family-ink:var(--fam-wanzi-ink)}.expense-family-2{--expense-family:var(--fam-tiantian);--expense-family-bg:var(--fam-tiantian-bg);--expense-family-ink:var(--fam-tiantian-ink)}.expense-family-3{--expense-family:var(--fam-yike);--expense-family-bg:var(--fam-yike-bg);--expense-family-ink:var(--fam-yike-ink)}.expense-amount{text-align:right;flex:none}.expense-amount>strong{font-size:13px;font-weight:850;display:block}.expense-amount>div{justify-content:flex-end;gap:8px;margin-top:7px;display:flex}.expense-amount a,.expense-amount button{color:var(--brand-link);cursor:pointer;background:0 0;border:0;font-size:9px;font-weight:700;text-decoration:none}.expense-amount button{color:var(--danger);padding:0}.expense-amount button:disabled{cursor:wait;opacity:.5}.expense-empty{border:2px dashed var(--divider);color:var(--brand-link);text-align:center;border-radius:18px;margin-top:14px;padding:15px;font-size:12px;font-weight:700;text-decoration:none;display:block}.expense-empty small{color:var(--ink-faint);margin-top:3px;font-size:10px;font-weight:450;display:block}.expense-form-page{padding-top:12px}.expense-form-heading{justify-content:flex-start}.expense-form-heading h1{flex:1;font-size:18px}.expense-form-heading>b{border-radius:var(--r-chip);background:var(--day-1-bg);color:var(--day-1-ink);padding:5px 8px;font-size:9px;line-height:1}.expense-amount-card,.expense-details-card,.expense-rates-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:16px}.expense-currency-switch{gap:7px;display:flex}.expense-currency-switch button{background:var(--surface-sunken);min-height:34px;color:var(--ink-faint);cursor:pointer;border:0;border-radius:11px;flex:1;font-size:11px;font-weight:700}.expense-currency-switch button.is-selected{background:var(--ink);color:var(--on-brand);font-weight:800}.expense-amount-input{border-bottom:2px solid var(--divider);align-items:baseline;gap:7px;min-width:0;margin-top:13px;padding-bottom:8px;display:flex}.expense-amount-input>span{color:var(--ink-muted);font-size:21px;font-weight:800}.expense-amount-input input{width:70px;min-width:0;color:var(--ink);background:0 0;border:0;flex:1;font-size:36px;font-weight:900;line-height:1}.expense-amount-input input:focus-visible{box-shadow:none}.expense-amount-input small{color:var(--ink-faint);white-space:nowrap;flex:none;font-size:9.5px;font-weight:500}.expense-category-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.expense-category-chips button{border-radius:var(--r-chip);background:var(--surface-sunken);color:var(--ink-muted);cursor:pointer;border:2px solid #0000;padding:6px 10px;font-size:10.5px;font-weight:650;line-height:1}.expense-category-chips button.is-selected{border-color:var(--day-3-ink);background:var(--day-3-bg);color:var(--day-3-ink);font-weight:750}.expense-details-card fieldset{border:0;margin:0;padding:0}.expense-details-card legend{color:var(--ink);font-size:11.5px;font-weight:750}.expense-payers>div{grid-template-columns:repeat(6,1fr);gap:5px;margin-top:8px;display:grid}.expense-payers button{min-width:0;color:var(--ink-muted);cursor:pointer;opacity:.45;background:0 0;border:0;padding:0}.expense-payers button[aria-pressed=true]{color:var(--ink);opacity:1}.expense-payers button>span{background:var(--expense-family);width:36px;height:36px;color:var(--on-brand);border:3px solid #0000;border-radius:50%;place-items:center;margin-inline:auto;font-size:12px;font-weight:800;display:grid}.expense-payers button[aria-pressed=true]>span{border-color:var(--ink)}.expense-payers button small{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:8px;font-weight:650;display:block;overflow:hidden}.expense-payers>p{color:var(--ink-faint);margin:6px 0 0;font-size:9px}.expense-participants{margin-top:11px!important}.expense-participants>div{gap:7px;margin-top:8px;display:flex}.expense-participants button{background:var(--surface-sunken);min-height:37px;color:var(--ink-faint);cursor:pointer;border:2px solid #0000;border-radius:13px;flex:1;padding:7px 3px;font-size:10.5px;font-weight:700}.expense-participants button.is-selected{border-color:var(--expense-family);background:var(--expense-family-bg);color:var(--expense-family-ink);font-weight:800}.expense-extra-fields{grid-template-columns:1.4fr 1fr;gap:7px;margin-top:12px;display:grid}.expense-extra-fields label,.expense-extra-fields input{width:100%;min-width:0}.expense-extra-fields input{background:var(--surface-sunken);height:39px;color:var(--ink);border:0;border-radius:11px;font-size:10px;font-weight:550}.expense-extra-fields input[type=text]{padding:9px 11px}.expense-extra-fields input[type=date]{padding:8px}.expense-form-error{margin-top:6px}.expense-save{min-height:46px}.expense-rates-page{padding-top:12px}.expense-rates-page .expense-form-heading>div{flex:1;min-width:0}.expense-rates-card{gap:12px;display:grid}.expense-rate-base,.expense-rates-card>label{background:var(--surface-sunken);border-radius:14px;padding:12px}.expense-rate-base,.expense-rates-card>label>span{color:var(--ink-muted);font-size:10px;font-weight:650}.expense-rate-base{justify-content:space-between;align-items:center;display:flex}.expense-rate-base strong{color:var(--ink);font-size:14px;font-weight:800}.expense-rates-card>label{display:block}.expense-rates-card>label>div{align-items:baseline;gap:4px;margin-top:5px;display:flex}.expense-rates-card label b{color:var(--ink);font-size:16px}.expense-rates-card label input{border:0;border-bottom:2px solid var(--divider);width:100px;min-width:0;color:var(--ink);background:0 0;flex:1;font-size:20px;font-weight:850}.expense-rates-card label input:disabled{color:var(--ink-muted);opacity:1}.expense-rates-card>p{color:var(--ink-faint);margin:0;font-size:10px;line-height:1.5}.expense-rate-saved{color:var(--day-1-ink);text-align:center;margin:12px 0 0;font-size:11px;font-weight:700}.expense-settlement-page{padding-top:12px}.expense-settlement-page .expense-form-heading>div{flex:1;min-width:0}.settlement-family-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.settlement-family-card{border-top:4px solid var(--expense-family);background:var(--surface);min-width:0;box-shadow:var(--sh-card);border-radius:18px;padding:12px 10px}.settlement-family-card h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:800;overflow:hidden}.settlement-family-card p{color:var(--ink-faint);margin:5px 0 0;font-size:8.5px;font-weight:500;line-height:1.5}.settlement-family-card>strong{color:var(--day-3-ink);overflow-wrap:anywhere;margin-top:8px;font-size:clamp(11px,3.4vw,15px);font-weight:850;line-height:1.15;display:block}.settlement-family-card>strong span{margin-bottom:3px;font-size:10px;display:block}.settlement-family-card.is-receive>strong{color:var(--day-1-ink)}.settlement-family-card.is-settled>strong{color:var(--ink-muted)}.settlement-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:16px 18px}.settlement-card h2{margin:0;font-size:13px;font-weight:800;line-height:1.2}.settlement-transfers>header,.settlement-rates>header{justify-content:space-between;align-items:center;gap:8px;display:flex}.settlement-transfers>header span{color:var(--day-1-ink);font-size:9px;font-weight:750}.settlement-transfers ol{gap:10px;margin:13px 0 0;padding:0;list-style:none;display:grid}.settlement-transfers li{grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.settlement-transfers li i{background:var(--expense-family);width:34px;height:34px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:12px;font-style:normal;font-weight:850;display:grid}.settlement-transfers li>span{min-width:0;color:var(--ink-muted);font-size:10.5px;font-weight:650}.settlement-transfers li>strong{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);white-space:nowrap;padding:5px 8px;font-size:10.5px;font-weight:850}.settlement-rounding-note,.settlement-rates>p{color:var(--ink-faint);margin:12px 0 0;font-size:9.5px;line-height:1.5}.settlement-empty{background:var(--surface-sunken);color:var(--ink-muted);text-align:center;border-radius:14px;margin:12px 0 0;padding:12px;font-size:10.5px;font-weight:650}.settlement-rates>header a{color:var(--brand-link);font-size:10px;font-weight:700;text-decoration:none}.settlement-rates>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px;display:grid}.settlement-rates article{background:var(--surface-sunken);text-align:center;border-radius:14px;min-width:0;padding:11px 8px}.settlement-rates article strong,.settlement-rates article span{display:block}.settlement-rates article strong{color:var(--ink);font-size:13px;font-weight:850}.settlement-rates article span{color:var(--ink-faint);margin-top:5px;font-size:8.5px;font-weight:550}.settlement-breakdown>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:11px;display:grid}.settlement-breakdown article{background:var(--surface-sunken);border-radius:12px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:9px 10px;display:flex}.settlement-breakdown article>span{min-width:0;color:var(--ink-muted);align-items:center;gap:6px;font-size:9.5px;font-weight:650;display:flex}.settlement-breakdown article i{background:var(--brand-pale);width:22px;height:22px;color:var(--brand-link);border-radius:7px;flex:none;place-items:center;font-size:8px;font-style:normal;font-weight:850;display:grid}.settlement-breakdown article strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:800;overflow:hidden}.settlement-family-summary>div{gap:8px;margin-top:11px;display:grid}.settlement-family-summary article{border-left:4px solid var(--expense-family);background:var(--expense-family-bg);border-radius:12px;grid-template-columns:minmax(58px,1fr) auto auto;align-items:center;gap:12px;padding:10px 11px;display:grid}.settlement-family-summary article>strong{color:var(--expense-family-ink);font-size:10.5px;font-weight:800}.settlement-family-summary article>span{color:var(--ink);text-align:right;white-space:nowrap;font-size:10px;font-weight:750}.settlement-family-summary article small{color:var(--ink-faint);margin-bottom:2px;font-size:8px;font-weight:550;display:block}.bottom-dock{z-index:10;width:100%;max-width:430px;padding:26px 20px calc(20px + env(safe-area-inset-bottom));background:var(--nav-fade);align-items:center;gap:12px;margin-inline:auto;display:flex;position:fixed;bottom:0;left:0;right:0}.realtime-status{color:var(--ink-faint);align-items:center;gap:5px;font-size:8.5px;font-weight:650;line-height:1;display:flex;position:absolute;top:6px;right:24px}.realtime-status i{background:currentColor;border-radius:50%;width:6px;height:6px}.realtime-status.status-realtime{color:var(--day-1-ink)}.realtime-status.status-polling{color:var(--fam-yike-ink)}.realtime-status.status-offline{color:var(--danger)}.bottom-nav{border-radius:var(--r-chip);background:var(--surface);box-shadow:var(--sh-float);flex:1;padding:8px 10px;display:flex}.nav-item{border-radius:var(--r-chip);color:var(--ink-faint);text-align:center;white-space:nowrap;flex:1;padding:8px 0;font-size:12px;font-weight:600;line-height:1;text-decoration:none}.nav-item.is-active{background:var(--brand-pale);color:var(--brand-link);font-weight:800}.fab{background:var(--brand);width:52px;height:52px;box-shadow:0 6px 16px var(--brand-shadow-strong);border-radius:50%;flex:none;transition:transform .12s;position:relative}.fab:active{transform:scale(.94)}.fab:before,.fab:after{background:var(--on-brand);content:"";border-radius:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fab:before{width:17px;height:3px}.map-page,.guides-page,.guide-detail-page{padding:16px 20px 24px}.map-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.map-heading h1,.map-heading p{margin:0}.map-heading h1{font-size:22px;font-weight:900;line-height:1.2}.map-heading p{color:var(--ink-muted);margin-top:5px;font-size:11px}.map-heading>span{border-radius:var(--r-chip);background:var(--ink);color:var(--on-brand);padding:6px 9px;font-size:9px;font-weight:700;line-height:1}.map-day-filters,.guide-filters{flex-wrap:wrap;gap:7px;margin-top:13px;display:flex}.map-day-filters button,.guide-filters button{border-radius:var(--r-chip);background:var(--surface);min-height:32px;color:var(--ink-muted);cursor:pointer;border:0;font-size:10.5px;font-weight:700}.map-day-filters button{min-width:39px;padding-inline:10px}.map-day-filters button[aria-pressed=true],.guide-filters button[aria-pressed=true]{background:var(--brand);color:var(--on-brand)}.map-source-note{background:var(--brand-pale);color:var(--brand-link);border-radius:12px;margin:10px 0 0;padding:9px 11px;font-size:9.5px;line-height:1.55}.map-routes{gap:14px;margin-top:12px;display:grid}.map-day-route{border-radius:var(--r-card-lg);background:var(--surface);box-shadow:var(--sh-card);overflow:hidden}.map-day-heading{justify-content:space-between;align-items:center;gap:12px;padding:14px 15px 10px;display:flex}.map-day-heading>div{min-width:0}.map-day-heading strong,.map-day-heading span{display:block}.map-day-heading strong{font-size:12.5px;font-weight:900}.map-day-heading span{color:var(--ink-muted);margin-top:3px;font-size:9.5px}.map-day-heading a{color:var(--brand-link);flex:none;font-size:9px;font-weight:800;text-decoration:none}.map-diagram{background:repeating-linear-gradient(45deg,#dbeaf7,#dbeaf7 6px,#d2e4f4 6px 12px);min-height:272px;position:relative;overflow:hidden}.map-diagram:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 78%,#ffffffb3,#0000 18%),radial-gradient(circle at 80% 30%,#ffffff8c,#0000 22%);position:absolute;inset:0}.map-diagram-note,.map-route-summary{z-index:2;border-radius:var(--r-small);position:absolute;top:10px}.map-diagram-note{background:#ffffffe0;padding:6px 8px;left:10px}.map-diagram-note strong,.map-diagram-note span{display:block}.map-diagram-note strong{color:var(--ink);font-size:9px}.map-diagram-note span{color:var(--ink-muted);margin-top:2px;font-size:7.5px}.map-route-summary{background:var(--ink);color:var(--on-brand);padding:6px 9px;font-size:8.5px;font-weight:800;right:10px}.map-route-svg{z-index:1;width:100%;height:250px;margin-top:22px;display:block;position:relative}.map-route-shadow,.map-route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.map-route-shadow{stroke:#fffc;stroke-width:8px}.map-route-line{stroke:var(--brand);stroke-dasharray:8 7;stroke-width:3px}.map-pin,.map-pin-start{stroke:var(--surface);stroke-width:4px}.map-pin{fill:var(--brand)}.map-pin-start{fill:var(--ink)}.map-pin-number{fill:var(--on-brand);font-size:10px;font-weight:900}.map-pin-label{fill:var(--ink);font-size:9px;font-weight:800}.map-more-stops{z-index:2;border-radius:var(--r-chip);color:var(--ink-muted);background:#ffffffe0;padding:5px 8px;font-size:8px;font-weight:700;position:absolute;bottom:8px;right:10px}.map-stop-list{z-index:3;border-radius:var(--r-card-lg) var(--r-card-lg) 0 0;background:var(--surface);margin-top:-10px;padding:8px 14px 14px;position:relative}.map-stop{color:inherit;align-items:center;gap:11px;padding:9px 2px;text-decoration:none;display:flex}.map-stop-icon{background:var(--brand);width:26px;height:26px;color:var(--on-brand);border-radius:50%;flex:none;place-items:center;font-size:9px;font-style:normal;font-weight:900;display:grid}.map-stop-icon.kind-hotel{background:var(--ink)}.map-stop-icon.kind-shopping{background:var(--fam-yike)}.map-stop-icon.kind-attraction{background:var(--fam-tiantian)}.map-stop>span:nth-child(2){flex:1;min-width:0}.map-stop strong,.map-stop small{display:block}.map-stop strong{font-size:11.5px;font-weight:800;line-height:1.35}.map-stop small{color:var(--ink-faint);margin-top:3px;font-size:9px;line-height:1.45}.map-stop b{color:var(--brand-link);font-size:18px;font-weight:500}.map-segment{align-items:center;gap:11px;min-height:28px;display:flex}.map-segment i{background:repeating-linear-gradient(#c9dff2 0 4px,#0000 4px 8px);width:2px;height:22px;margin-left:14px}.map-segment span{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);padding:5px 8px;font-size:8.5px;font-weight:700;line-height:1.2}.guides-heading{margin-bottom:13px}.guide-region-pill{border-radius:var(--r-chip);background:var(--brand);box-shadow:var(--sh-card);color:var(--on-brand);text-align:center;padding:10px 14px;font-size:11px;font-weight:800}.guide-filters button{padding:8px 11px}.guide-error{margin:5px 0 0}.guide-list{gap:9px;margin-top:10px;display:grid}.guide-card{border-radius:var(--r-inner);background:var(--surface);min-height:96px;box-shadow:var(--sh-card);color:inherit;align-items:center;gap:11px;padding:12px 13px;text-decoration:none;transition:transform .12s;display:flex;position:relative}.guide-card:active{transform:scale(.985)}.guide-card-art{background:radial-gradient(circle at 32% 24%, var(--surface), transparent 28%), var(--brand-pale);border-radius:14px;flex:none;place-items:center;width:58px;height:58px;font-size:28px;display:grid}.guide-card-copy{flex:1;min-width:0}.guide-card-copy small,.guide-card-copy strong,.guide-card-copy span,.guide-card-copy b{display:block}.guide-card-copy small{color:var(--brand-link);font-size:8px;font-weight:800}.guide-card-copy strong{margin-top:3px;padding-right:52px;font-size:12px;font-weight:850;line-height:1.35}.guide-card-copy>span{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:9.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.guide-card-copy b{color:var(--ink-faint);margin-top:5px;font-size:8.5px;font-weight:650;line-height:1.4}.guide-wishlist-count{color:var(--fam-wanzi);white-space:nowrap;flex:none;font-size:8.5px;font-weight:800}.guide-card>.guide-wishlist-count{position:absolute;top:13px;right:13px}.guide-detail-hero{border-radius:var(--r-card);background:radial-gradient(circle at 25% 20%, #ffffffe6, transparent 23%), radial-gradient(circle at 78% 70%, var(--brand-pale), transparent 28%), var(--photo-pattern);place-items:center;height:174px;margin-top:14px;display:grid;position:relative;overflow:hidden}.guide-detail-hero:before,.guide-detail-hero:after{content:"";border:2px solid #2da4f547;border-radius:50%;position:absolute}.guide-detail-hero:before{width:180px;height:180px}.guide-detail-hero:after{width:118px;height:118px}.guide-detail-hero>span{z-index:1;filter:drop-shadow(0 9px 8px var(--image-shadow));font-size:72px;position:relative}.guide-detail-hero small{z-index:2;border-radius:var(--r-chip);background:var(--photo-label);color:var(--on-brand);padding:6px 10px;font-size:9px;font-weight:800;position:absolute;bottom:12px;right:12px}.guide-intro-card,.guide-practical-card,.guide-itinerary-card{border-radius:var(--r-card);background:var(--surface);box-shadow:var(--sh-card);margin-top:12px;padding:15px 16px}.guide-intro-card h2,.guide-practical-card h2,.guide-itinerary-card h2,.guide-intro-card p{margin:0}.guide-intro-card h2{font-size:17px;font-weight:900;line-height:1.35}.guide-tags{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.guide-tags span{border-radius:var(--r-chip);background:var(--brand-pale);color:var(--brand-link);padding:5px 8px;font-size:8.5px;font-weight:750}.guide-intro-card p{color:var(--ink-muted);margin-top:10px;font-size:11px;line-height:1.75}.guide-practical-card h2,.guide-itinerary-card h2{font-size:13px;font-weight:900}.guide-practical-card dl{margin:9px 0 0}.guide-practical-card dl>div{border-top:1px solid var(--divider);grid-template-columns:44px 1fr;gap:10px;padding:9px 0;display:grid}.guide-practical-card dt,.guide-practical-card dd{margin:0;font-size:10px;line-height:1.55}.guide-practical-card dt{color:var(--ink-faint);font-weight:650}.guide-practical-card dd{color:var(--ink);font-weight:700}.guide-itinerary-card{background:var(--ink);color:var(--on-brand);justify-content:space-between;align-items:center;gap:12px;display:flex}.guide-itinerary-card>div:first-child{flex:1;min-width:0}.guide-itinerary-card p{color:var(--brand-on-dark);margin:5px 0 0;font-size:9.5px;line-height:1.55}.guide-day-links{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.guide-day-links a{background:var(--brand);width:32px;height:32px;color:var(--on-brand);border-radius:50%;place-items:center;font-size:9px;font-weight:900;text-decoration:none;display:grid}.guide-wishlist-button{border-radius:var(--r-chip);background:var(--brand);width:100%;min-height:46px;box-shadow:var(--sh-brand);color:var(--on-brand);cursor:pointer;border:0;margin-top:12px;font-size:12px;font-weight:850}.guide-wishlist-button[aria-pressed=true]{background:var(--day-1-ink)}.guide-wishlist-button:disabled{cursor:wait;opacity:.68}.offline-banner,.queue-error-banner{z-index:50;width:100%;max-width:430px;min-height:calc(42px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 18px 7px;box-shadow:var(--sh-float);color:var(--on-brand);text-align:center;flex-direction:column;justify-content:flex-end;gap:2px;margin-inline:auto;display:flex;position:fixed;top:0;left:0;right:0}.offline-banner{background:var(--ink)}.queue-error-banner{background:var(--danger)}.offline-banner strong,.queue-error-banner strong{font-size:11px;font-weight:850;line-height:1.2}.offline-banner span,.queue-error-banner span{font-size:9px;font-weight:550;line-height:1.35}.install-guide-backdrop{z-index:100;background:#14324a7a;place-items:end center;padding:20px;display:grid;position:fixed;inset:0}.install-guide{width:min(390px,100%);padding:24px 20px calc(20px + env(safe-area-inset-bottom));background:var(--surface);text-align:center;border-radius:24px 24px 20px 20px;position:relative;box-shadow:0 18px 48px #14324a47}.install-guide-close{background:var(--surface-sunken);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:20px;line-height:1;display:grid;position:absolute;top:12px;right:14px}.install-guide-mark{background:var(--brand);width:56px;height:56px;box-shadow:var(--sh-brand);border-radius:18px;place-items:center;margin-inline:auto;display:grid}.install-guide-mark span{background:var(--on-brand);clip-path:polygon(0 44%,100% 0,68% 100%,46% 59%);width:29px;height:25px}.install-guide h2{margin:14px 0 0;font-size:18px;font-weight:900}.install-guide>p{color:var(--ink-muted);margin:7px auto 0;font-size:11px;line-height:1.55}.install-guide ol{text-align:left;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.install-guide li{border-radius:var(--r-inner);background:var(--surface-tint);min-height:44px;color:var(--ink);align-items:center;gap:11px;padding:8px 11px;font-size:11px;font-weight:700;display:flex}.install-guide li b{background:var(--brand-pale);width:30px;height:30px;color:var(--brand-link);letter-spacing:0;border-radius:10px;flex:none;place-items:center;font-size:15px;display:grid}.install-guide-done{min-height:44px;margin-top:16px}.checklist-guide{cursor:pointer;text-decoration:none}.fab:after{width:3px;height:17px}@media (min-width:431px){.phone-frame{box-shadow:var(--sh-float)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
