@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-body:"Bricolage Grotesque Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-2xs:.75rem;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.0625rem;--text-md:.9375rem;--text-title:1.125rem;--text-xl:1.25rem;--text-2xl:1.375rem;--text-3xl:1.875rem;--figure-sm:1.5rem;--figure-md:1.625rem;--figure-lg:clamp(1.75rem, 9.5vw, 2.25rem);--tracking-eyebrow:.06em;--tracking-figure:-.02em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:14px;--radius-row:16px;--radius-md:20px;--radius-lg:24px;--radius-pill:999px;--control-height:52px;--button-height:48px;--large-button-height:56px;--compact-height:44px;--tap-height:72px;--icon-button:48px;--mark-size:40px;--nav-height:68px;--nav-space:calc(var(--nav-height) + env(safe-area-inset-bottom));--sidebar-width:232px;--bg:#f5f6fc;--bg-glow:radial-gradient(ellipse 70% 100% at 50% 0%, #7c5cff21, transparent 72%);--card:#fff;--card-edge:transparent;--fg:#151732;--muted:#565b7a;--line:#e0e3f0;--line-strong:#767b9a;--brand:#5a3fe0;--brand-hover:#4730c2;--brand-gradient:linear-gradient(135deg, #5a3fe0 0%, #8a3fe0 100%);--on-brand:#fff;--focus:#5a3fe0;--brand-soft:#ece9ff;--brand-soft-fg:#3a27a6;--success-bg:#dcf4e6;--success-fg:#0a5a35;--warning-bg:#fcebd4;--warning-fg:#5e2c03;--warning-strong:#8a4106;--on-warning:#fff;--error-bg:#fbe3e0;--error-fg:#8a1f11;--error-strong:#b3321f;--disabled-bg:#d8dbea;--disabled-fg:#474c68;--info-bg:#dbeffb;--info-fg:#0a4f7d;--neutral-bg:#e7e9f4;--neutral-fg:#3f4460;--stop-bg:#151732;--stop-hover:#2d3050;--on-stop:#fff;--inverse-bg:#3b2aa8;--inverse-gradient:linear-gradient(135deg, #3b2aa8 0%, #6a3fd8 100%);--inverse-fg:#fff;--inverse-muted:#ddd8ff;--shadow-card:0 1px 2px #1517320d, 0 8px 24px #3c328c14;--shadow-brand:0 6px 16px #5a3fe04d;--shadow-nav:0 -4px 20px #3c328c14}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0c18;--bg-glow:radial-gradient(ellipse 70% 100% at 50% 0%, #7c5cff33, transparent 72%);--card:#151731;--card-edge:#ffffff0f;--fg:#e8e9f8;--muted:#a1a5c6;--line:#2a2d4d;--line-strong:#7377a3;--brand:#a899ff;--brand-hover:#c2b8ff;--brand-gradient:linear-gradient(135deg, #a899ff 0%, #c58bff 100%);--on-brand:#130b3d;--focus:#a899ff;--brand-soft:#27235a;--brand-soft-fg:#d6cfff;--success-bg:#0f3322;--success-fg:#9ee6bf;--warning-bg:#3a2610;--warning-fg:#f7d3a6;--warning-strong:#f0a35e;--on-warning:#2b1604;--error-bg:#3d1813;--error-fg:#ffb4a8;--error-strong:#ff8a78;--disabled-bg:#272a48;--disabled-fg:#a3a7c8;--info-bg:#0b2f47;--info-fg:#a9dcf7;--neutral-bg:#23264a;--neutral-fg:#c5c8e6;--stop-bg:#e8e9f8;--stop-hover:#fff;--on-stop:#0b0c18;--inverse-bg:#2a2080;--inverse-gradient:linear-gradient(135deg, #2a2080 0%, #4a2fb0 100%);--inverse-fg:#fff;--inverse-muted:#d6d0ff;--shadow-card:0 1px 2px #0006, 0 8px 24px #00000059;--shadow-brand:0 6px 18px #7c5cff59;--shadow-nav:0 -4px 20px #0006}}:lang(zh-HK){--font-body:"Bricolage Grotesque Variable", "PingFang HK", "Noto Sans HK", "Noto Sans CJK HK", "Microsoft JhengHei", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "PingFang HK", "Noto Sans HK", "Noto Sans CJK HK", "Microsoft JhengHei", monospace}:lang(vi){--font-body:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-bottom:var(--nav-space)}body{background-color:var(--bg);background-image:var(--bg-glow);color:var(--fg);font-family:var(--font-body);font-optical-sizing:auto;font-size:var(--text-base);background-repeat:no-repeat;background-size:100% 26rem;margin:0;line-height:1.5}h1,h2,h3{text-wrap:balance;font-weight:700}h1{margin:0 0 var(--space-3);font-size:var(--text-3xl);letter-spacing:-.01em;line-height:1.1}h2{margin:0 0 var(--space-3);font-size:var(--text-xl);line-height:1.25}h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-lg);line-height:1.3}a{color:var(--brand);text-underline-offset:.2em;font-weight:600;text-decoration-thickness:1px}a:hover{color:var(--brand-hover);text-decoration-thickness:2px}ul{padding-left:1.2rem}li>span{margin-right:var(--space-2)}p>a+a{margin-left:var(--space-3)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.page{max-width:40rem;padding:var(--space-4) max(var(--space-4), env(safe-area-inset-right)) var(--space-6) max(var(--space-4), env(safe-area-inset-left));margin:0 auto}.shell .page{padding-top:var(--space-6);padding-bottom:calc(var(--nav-space) + var(--space-6))}.restaurant{padding:0 var(--space-1);color:var(--muted);font-size:var(--text-sm);margin:0 0 2px;font-weight:500}.page:has(.back-link)>.restaurant{display:none}.page-head{margin:0 0 var(--space-4);padding:0 var(--space-1)}.page-head h1{margin:0}.lede{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--text-sm);line-height:1.4}.back-link{gap:var(--space-1);min-height:var(--compact-height);margin:calc(-1 * var(--space-2)) 0 0 calc(-1 * var(--space-1));padding:0 var(--space-1);align-items:center;text-decoration:none;display:inline-flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-nav{z-index:10;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--card);border-top:1px solid var(--line);box-shadow:var(--shadow-nav);display:flex;position:fixed;bottom:0;left:0;right:0}.app-nav a{min-width:0;min-height:var(--nav-height);padding:var(--space-1) 2px;color:var(--muted);font-size:var(--text-2xs);text-align:center;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;font-weight:500;line-height:1.2;text-decoration:none;display:flex;position:relative}.app-nav svg{flex:none;width:24px;height:24px}.app-nav a[aria-current=page]{color:var(--brand);font-weight:700}.app-nav a[aria-current=page]:before{content:"";background:var(--brand-gradient);border-radius:0 0 var(--radius-pill) var(--radius-pill);width:28px;height:3px;position:absolute;top:0}.sidebar-brand,.sidebar-user{display:none}.card{margin:var(--space-3) 0;padding:var(--space-5);background:var(--card);border:1px solid var(--card-edge);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.muted{color:var(--muted)}.error{color:var(--error-fg)}p.error{padding:var(--space-3) var(--space-4);background:var(--error-bg);border-radius:var(--radius-md)}.warning,.banner{margin:var(--space-3) 0;padding:var(--space-4);background:var(--warning-bg);color:var(--warning-fg);border-radius:var(--radius-md)}.warning>:first-child,.banner>:first-child{margin-top:0}.warning>:last-child,.banner>:last-child{margin-bottom:0}.warning a,.banner a{color:var(--warning-fg)}.banner-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.banner{gap:var(--space-3);flex-direction:column;margin:0;display:flex}.banner>*{margin:0}.banner-title{font-size:var(--text-lg);margin:0;line-height:1.3}.banner-sub{font-size:var(--text-sm);margin:2px 0 0}.banner-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.banner-actions a{min-height:var(--compact-height);padding:0 var(--space-4);border:2px solid var(--warning-strong);border-radius:var(--radius-sm);font-size:var(--text-md);flex:none;align-items:center;text-decoration:none;display:inline-flex}.person .actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.badge{padding:var(--space-1) 10px;background:var(--success-bg);color:var(--success-fg);border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:0;vertical-align:middle;font-weight:600;line-height:1.2;display:inline-block}.field,label{margin:var(--space-4) 0;flex-direction:column;gap:6px;display:flex}label{font-size:var(--text-sm);font-weight:600}.field>label{margin:0}.field small{font-size:var(--text-sm)}label.check{gap:var(--space-3);font-size:var(--text-base);flex-direction:row;align-items:center;font-weight:500}input,select{width:100%;min-height:var(--control-height);background:var(--card);color:var(--fg);border:2px solid var(--line-strong);border-radius:var(--radius-sm);font:400 var(--text-lg) / 1.3 var(--font-body);padding:0 14px}input[type=password],input[type=time],input[type=date],input[inputmode=decimal],input[autocapitalize=none],input[readonly]{font-family:var(--font-mono)}input[aria-invalid=true]{border-color:var(--error-strong)}input[type=checkbox]{width:24px;height:24px;min-height:0;accent-color:var(--brand);flex:none;margin:0;padding:0}button{min-height:var(--button-height);margin:var(--space-1) var(--space-2) var(--space-1) 0;padding:0 var(--space-4);background:var(--card);color:var(--fg);border:2px solid var(--line-strong);border-radius:var(--radius-sm);font:600 var(--text-base) / 1.2 var(--font-body);cursor:pointer;touch-action:manipulation}button.primary{min-height:var(--control-height);padding:0 var(--space-5);background:var(--brand);color:var(--on-brand);border-color:var(--brand);box-shadow:var(--shadow-brand);font-size:var(--text-lg);font-weight:700}button.tap-button{width:100%;min-height:var(--tap-height);margin:var(--space-4) 0 0;border-radius:var(--radius-md);font-size:var(--text-2xl);border:0;font-weight:700;display:block}button.stop{background:var(--stop-bg);color:var(--on-stop)}button.danger{color:var(--error-fg);border-color:var(--error-strong)}button.secondary{color:var(--brand);border-color:var(--brand)}.warning button,.banner button{background:var(--warning-strong);color:var(--on-warning);border-color:var(--warning-strong)}.banner-actions button{min-height:var(--compact-height);padding:0 var(--space-3);font-size:var(--text-md);border:0;flex:1 0 auto;margin:0}.entry-actions button{min-height:var(--compact-height);padding:0 var(--space-3);margin:0}.segmented{border:0;min-width:0;padding:0}.segmented>legend{font-size:var(--text-sm);padding:0;font-weight:600}.segmented-options{gap:var(--space-2);margin-top:6px;display:flex}.segmented-options>button{min-width:0;min-height:var(--control-height);padding:0 var(--space-2);border-color:var(--line);flex:1 1 0;margin:0;font-weight:700}.segmented-options>button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-soft-fg);border-color:var(--brand)}.person .actions button{font-size:var(--text-md);flex:9rem;margin:0;font-weight:700}@media (hover:hover){button:not(:disabled):hover{border-color:var(--fg)}button.primary:not(:disabled):hover{background:var(--brand-hover);border-color:var(--brand-hover)}button.secondary:not(:disabled):hover{color:var(--brand-hover);border-color:var(--brand-hover)}button.stop:not(:disabled):hover{background:var(--stop-hover)}}button:disabled,.warning button:disabled,.banner button:disabled{background:var(--disabled-bg);color:var(--disabled-fg);border-color:var(--disabled-bg);box-shadow:none;cursor:not-allowed}.totals strong{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500}.totals,.day,.rates,.plan-row,.person{font-variant-numeric:tabular-nums}.day h2 .muted{white-space:nowrap;font-weight:500}.plan-row{margin:var(--space-3) 0;padding:var(--space-2) var(--space-4) var(--space-4);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md)}.plan-row legend{padding:0 var(--space-1);font-weight:700}.invite{margin:var(--space-4) 0;padding:var(--space-4);background:var(--bg);border-radius:var(--radius-md)}.invite-link{gap:var(--space-1);padding:var(--space-4);background:var(--inverse-bg);color:var(--inverse-fg);border-radius:var(--radius-md);flex-direction:column;display:flex}.invite-link input{min-height:var(--compact-height);color:var(--inverse-fg);font-size:var(--text-sm);text-overflow:ellipsis;background:0 0;border:0;padding:0}.invite-link input:focus-visible{outline-color:var(--inverse-fg)}.qr{max-width:100%;height:auto;margin:var(--space-2) 0;align-self:center;display:block}.stack{gap:var(--space-3);flex-direction:column;display:flex}.stack.loose{gap:var(--space-4)}.stack>*{margin:0}.card.dense{padding:var(--space-4)}.eyebrow{color:var(--muted);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;margin:0;font-weight:600;line-height:1.3}.card-top{gap:var(--space-2);flex-wrap:wrap;justify-content:space-between;align-items:center;min-height:28px;display:flex}.pill,.tag{border-radius:var(--radius-pill);width:fit-content;font-weight:600;line-height:1.3;display:inline-block}.pill{padding:var(--space-1) 10px;font-size:var(--text-xs);margin:0}.tag{padding:2px var(--space-2);font-size:var(--text-2xs);margin-top:3px}.pill.info,.tag-info{background:var(--info-bg);color:var(--info-fg)}.pill.success,.tag-success{background:var(--success-bg);color:var(--success-fg)}.pill.neutral,.tag-neutral{background:var(--neutral-bg);color:var(--neutral-fg)}.pill.warning,.tag-warning{background:var(--warning-bg);color:var(--warning-fg)}.figure,.stat-value,.day-time,.day-duration,.entry-text{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.figure{font-size:var(--figure-lg);letter-spacing:var(--tracking-figure);margin:0;line-height:1.15}.caption{color:var(--muted);font-size:var(--text-md);margin:0}.hint{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-xs);line-height:1.4}.shift-card{gap:var(--space-1);flex-direction:column;display:flex}.shift-card>*{margin:0}.shift-card>button.tap-button{margin-top:var(--space-4)}.shift-card>.warning,.shift-card>.error{margin-top:var(--space-2)}.stats{gap:var(--space-2) var(--space-8);flex-wrap:wrap;display:flex}.stat{flex-direction:column-reverse;margin:0;display:flex}.stat-value{font-size:var(--figure-md);letter-spacing:var(--tracking-figure);line-height:1.2}.stat-label{color:var(--muted);font-size:var(--text-xs)}.breakdown{margin:0}.breakdown-row{gap:var(--space-4);padding:var(--space-2) 0;justify-content:space-between;align-items:baseline;display:flex}.breakdown-row+.breakdown-row{border-top:1px solid var(--line)}.breakdown dt{min-width:0;color:var(--muted);font-size:var(--text-md)}.breakdown dd{font-family:var(--font-mono);font-size:var(--text-md);font-variant-numeric:tabular-nums;text-align:right;flex:none;margin:0;font-weight:500}.breakdown-row.total dt{color:var(--fg);font-weight:700}.breakdown-row.total dd{font-size:var(--text-lg);font-weight:700}.pay-help{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line);display:grid}.pay-help h3{margin:var(--space-2) 0 0;font-size:var(--text-md);line-height:1.3}.pay-help h3:first-child{margin-top:0}.pay-help p{color:var(--muted);font-size:var(--text-md);margin:0;line-height:1.45}.card-foot{color:var(--muted);font-size:var(--text-sm);margin:0}.card-link{min-height:var(--compact-height);margin:calc(-1 * var(--space-2)) 0;align-self:flex-start;align-items:center;display:inline-flex}.card>.card-link:last-child{margin-bottom:calc(-1 * var(--space-2))}.note{padding:10px var(--space-3);background:var(--neutral-bg);color:var(--neutral-fg);border-radius:var(--radius-sm);font-size:var(--text-xs);line-height:1.4}.note.warning{background:var(--warning-bg);color:var(--warning-fg)}.note.success{background:var(--success-bg);color:var(--success-fg)}.note.info{background:var(--info-bg);color:var(--info-fg)}.week-pager{gap:var(--space-2);justify-content:space-between;align-items:center;display:flex}.icon-link{width:var(--icon-button);height:var(--icon-button);color:var(--fg);border:2px solid var(--line);border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-link:hover{color:var(--fg);border-color:var(--line-strong)}.pager-spacer{width:var(--icon-button);height:var(--icon-button);flex:none}.week-range{min-width:0;font-size:var(--text-title);text-align:center;text-wrap:balance;flex:1;font-weight:700;line-height:1.25}.stats-grid{column-gap:var(--space-8);grid-template-columns:repeat(2,minmax(min-content,max-content));display:grid}.stats-sentence{display:contents}.week-summary .stat-value{font-size:var(--figure-sm);text-wrap:balance}.stats-tabs{gap:var(--space-2);display:flex}.stats-tabs a{min-width:0;min-height:var(--control-height);padding:0 var(--space-1);color:var(--fg);border:2px solid var(--line);border-radius:var(--radius-sm);text-align:center;flex:auto;justify-content:center;align-items:center;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.stats-tabs a[aria-current=page]{background:var(--brand-soft);color:var(--brand-soft-fg);border-color:var(--brand)}@media (hover:hover){.stats-tabs a:not([aria-current=page]):hover{border-color:var(--line-strong)}}.rate-line{font-size:var(--text-sm)}.day-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.day-row{gap:var(--space-3);min-height:56px;padding:var(--space-2) 14px;background:var(--card);color:var(--fg);border-radius:var(--radius-row);border:2px solid #0000;align-items:center;font-weight:400;text-decoration:none;display:flex}.day-row:hover{color:var(--fg);border-color:var(--line)}.day-row[aria-current=date]{border-color:var(--brand)}.day-label{width:58px;font-size:var(--text-md);flex:none;font-weight:700}.day-main{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.day-time,.day-duration{font-size:var(--text-md)}.day-duration{text-align:right;flex:none}.day-row.dim .day-time,.day-row.dim .day-duration{color:var(--muted)}.button-row{gap:var(--space-2);display:flex}.button-link{min-height:var(--button-height);padding:0 var(--space-4);border:2px solid var(--brand);border-radius:var(--radius-sm);font-size:var(--text-md);flex:1;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.button-link:hover{border-color:var(--brand-hover)}.button-link.primary{min-height:var(--control-height);background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-brand);font-size:var(--text-lg);flex:none}.button-link.primary:hover{background:var(--brand-hover);color:var(--on-brand)}.button-link.soft{background:var(--brand-soft);color:var(--brand-soft-fg);border-color:var(--brand-soft);flex:none}.button-link.soft:hover{color:var(--brand-soft-fg);border-color:var(--brand)}.card-intro>*{margin:0}.intro-note{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-xs)}.entries{margin:0;padding:0;list-style:none}.entries:empty{display:none}.entry{gap:var(--space-2) var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.entry.editing{display:block}.entry>span{margin:0}.entry-text{font-size:var(--text-md);overflow-wrap:anywhere}.entry-note{font-family:var(--font-body);font-weight:400}.entry-actions{gap:var(--space-2);display:flex}.entry>.error{grid-column:1/-1;margin:0}.shift-form input:not([type=checkbox]),.adjustment-form input{min-height:var(--button-height)}.card.inverse{background-color:var(--inverse-bg);background-image:var(--inverse-gradient);color:var(--inverse-fg)}.inverse .eyebrow,.inverse-detail{color:var(--inverse-muted)}.inverse .figure{margin-top:var(--space-1)}.inverse-detail{font-size:var(--text-sm);margin:0}.inverse-detail strong{color:var(--inverse-fg);white-space:nowrap}.field-affix{gap:var(--space-2);align-items:stretch;display:flex}.field-prefix{background:var(--neutral-bg);width:44px;color:var(--fg);border:2px solid var(--line);border-radius:var(--radius-sm);font:500 var(--text-xl) / 1 var(--font-mono);flex:none;justify-content:center;align-items:center;display:flex}.field-affix input{flex:1;width:auto;min-width:0}.field-prefix+input{font-family:var(--font-mono);font-size:var(--figure-sm);font-variant-numeric:tabular-nums;font-weight:500}button.password-toggle{min-width:76px;min-height:var(--control-height);padding:0 var(--space-3);font-size:var(--text-md);flex:none;margin:0}.fortnight-card{border:2px solid var(--line)}.fortnight-card.due{border-color:var(--brand)}.fortnight-top{flex-wrap:nowrap;align-items:flex-start}.fortnight-top>h2{min-width:0}.fortnight-top>.pill{flex:none}.fortnight-title{font-size:var(--text-xl);margin:0;font-weight:700;line-height:1.25}.fortnight-sub{color:var(--muted);font-size:var(--text-sm);margin:2px 0 0}.fortnight-card .stats{column-gap:var(--space-6)}.fortnight-card .stat-value{font-size:var(--text-2xl)}.pay-figure{font-size:var(--figure-md)}.pay-figure strong{white-space:nowrap;font-weight:600}.week-links{margin:0;padding:0;list-style:none}.week-links li+li{border-top:1px solid var(--line)}.week-link,.week-row{gap:var(--space-1);min-height:var(--button-height);padding:var(--space-2) 0;flex-direction:column;justify-content:center;align-items:flex-start;text-decoration:none;display:flex}.week-row .week-link-range{overflow-wrap:anywhere}.week-link:hover .week-link-range{text-decoration:underline}.week-link-total{color:var(--fg);font-family:var(--font-mono);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:500}.login-name{font-family:var(--font-mono);font-size:.95em}.lede .login-name{color:var(--fg)}.account-card{gap:var(--space-1)}.account-card>.eyebrow{margin-bottom:var(--space-2)}button.disclosure{gap:var(--space-3);width:100%;min-height:var(--control-height);color:var(--fg);font-size:var(--text-base);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;margin:0;padding:0;font-weight:600;display:flex}button.disclosure svg{flex:none;width:20px;height:20px}@media (hover:hover){button.disclosure:hover>span{text-underline-offset:.2em;text-decoration:underline}}.password-form{padding:var(--space-1) 0 var(--space-3)}.stack>.password-notes{margin-top:-6px}.password-notes>p{margin:0}.password-rule{color:var(--muted);font-size:var(--text-sm);margin:0;font-weight:600}.password-rule.met{color:var(--success-fg)}.password-notes>.hint{margin-top:2px}.account-card>.note{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600}.email-status{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.email-current{overflow-wrap:anywhere;margin:0}.row-link{min-height:var(--control-height);padding:var(--space-2) 0;color:var(--fg);flex-direction:column;justify-content:center;text-decoration:none;display:flex}.row-link:hover{color:var(--fg)}.row-link-title{font-size:var(--text-base);font-weight:600;line-height:1.3}.row-link:hover .row-link-title{text-decoration:underline}.row-link-sub{color:var(--muted);font-size:var(--text-xs);font-weight:400;line-height:1.4}.account-card>.row-link{margin-top:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--line)}button.full-width{width:100%;min-height:var(--control-height);border-radius:var(--radius-row);margin:0;font-weight:700}button.large{min-height:var(--large-button-height);font-size:var(--text-title)}.head-with-action{gap:var(--space-2) var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.page-head .button-link{min-height:var(--compact-height);flex:none}.person-top{gap:var(--space-3);justify-content:space-between;align-items:flex-start;display:flex}.person-id{min-width:0}.person-id>p{margin:2px 0 0}.person-name{font-size:var(--text-title);overflow-wrap:anywhere;margin:0;line-height:1.3}.person-login{color:var(--muted);font-size:var(--text-sm)}.person-email{color:var(--muted);font-size:var(--text-sm);overflow-wrap:anywhere}.person-rate{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500}.person-pills{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.person>.hint{margin:0}.person .rates{padding-top:var(--space-3);border-top:1px solid var(--line)}.rate-amount{font-family:var(--font-mono);font-weight:500}.day.stack{gap:var(--space-2)}.day-head{gap:var(--space-3);font-size:var(--text-title);justify-content:space-between;align-items:baseline;display:flex}.auth{gap:var(--space-6);max-width:28rem;padding-top:var(--space-8);flex-direction:column;display:flex}.auth>*{margin:0}.auth-brand{gap:var(--space-2) var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.auth-brand-name{color:var(--brand);font-size:var(--text-xl);align-items:center;gap:10px;margin:0;font-weight:700;line-height:1.2;display:flex}.auth-brand .pill{background:var(--card);min-width:0;color:var(--muted);overflow-wrap:anywhere}.auth .page-head{padding:0}.auth .lede{margin-top:var(--space-3);font-size:var(--text-base);line-height:1.45}.auth p.error{padding:14px var(--space-4);font-size:var(--text-md);font-weight:700;line-height:1.4}.auth-note{color:var(--muted);font-size:var(--text-sm);line-height:1.45}@media (prefers-reduced-motion:no-preference){a,button{transition:color .12s,background-color .12s,border-color .12s}}@media (width>=64rem){html{scroll-padding-bottom:0}.shell{padding-left:var(--sidebar-width)}.shell .page{padding-bottom:var(--space-6)}.shell .restaurant{display:none}.sidebar{gap:calc(var(--space-6) + var(--space-1));width:var(--sidebar-width);padding:calc(var(--space-6) + var(--space-1)) var(--space-4) var(--space-6);background:var(--card);border-right:1px solid var(--line);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-brand{gap:var(--space-3);padding:0 var(--space-2);align-items:center;display:flex}.sidebar-mark{width:var(--mark-size);height:var(--mark-size);background-color:var(--brand);background-image:var(--brand-gradient);color:var(--on-brand);border-radius:var(--radius-sm);box-shadow:var(--shadow-brand);flex:none;justify-content:center;align-items:center;display:flex}.sidebar-text{overflow-wrap:anywhere;min-width:0}.sidebar-text>p{margin:0}.sidebar-app-name{font-size:var(--text-lg);font-weight:700;line-height:1.15}.sidebar-sub{color:var(--muted);font-size:var(--text-xs);line-height:1.4}.app-nav{z-index:auto;gap:var(--space-1);box-shadow:none;border-top:0;flex-direction:column;padding:0;position:static}.app-nav a{gap:var(--space-3);min-height:var(--button-height);padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-md);text-align:left;flex-direction:row;flex:none;justify-content:flex-start}.app-nav svg{width:22px;height:22px}.app-nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand-soft-fg)}.app-nav a[aria-current=page]:before{content:none}@media (hover:hover){.app-nav a:not([aria-current=page]):hover{background:var(--bg);color:var(--fg)}}.sidebar-user{gap:var(--space-3);padding:var(--space-3);background:var(--bg);border-radius:var(--radius-row);align-items:center;margin-top:auto;display:flex}.sidebar-avatar{width:var(--mark-size);height:var(--mark-size);background:var(--brand-soft);color:var(--brand-soft-fg);border-radius:var(--radius-pill);font-size:var(--text-md);flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.sidebar-user-name{font-size:var(--text-md);font-weight:700;line-height:1.3}}:lang(vi) h1,:lang(vi) .figure,:lang(vi) .stat-value{line-height:1.3}:lang(vi) .eyebrow{line-height:1.4}:lang(zh-HK) h1,:lang(zh-HK) .figure,:lang(zh-HK) .stat-value{letter-spacing:normal}:lang(zh-HK) .eyebrow{letter-spacing:normal;text-transform:none}:lang(vi) .inverse-detail strong,:lang(vi) .pay-figure strong,:lang(zh-HK) .inverse-detail strong,:lang(zh-HK) .pay-figure strong{white-space:normal}:lang(zh-HK) h1,:lang(zh-HK) h2,:lang(zh-HK) h3,:lang(zh-HK) .eyebrow,:lang(zh-HK) .week-range,:lang(zh-HK) .week-link .week-link-range,:lang(zh-HK) .week-row .week-link-range,:lang(zh-HK) .figure,:lang(zh-HK) .stat-value,:lang(zh-HK) .day-row .day-duration,:lang(zh-HK) .entry-text,:lang(zh-HK) .breakdown dt,:lang(zh-HK) .inverse-detail strong,:lang(zh-HK) .pay-figure strong{word-break:keep-all;overflow-wrap:anywhere}:lang(zh-HK) .entry-note{word-break:normal}:lang(zh-HK) p,:lang(zh-HK) .row-link-sub{text-wrap:pretty}@media (width<=25rem){:lang(vi) .day-row .day-duration{text-wrap:balance;flex:0 auto;max-width:5.5em}:lang(vi) .stats-grid,:lang(zh-HK) .stats-grid{column-gap:var(--space-4)}:lang(vi) .week-summary .stat-value,:lang(zh-HK) .week-summary .stat-value{font-size:var(--text-2xl)}}
