@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg:oklch(98.5% .004 75);--surface:oklch(100% 0 0);--surface-sunken:oklch(97% .005 75);--surface-raised:oklch(100% 0 0);--fg:oklch(23% .012 50);--fg-muted:oklch(48% .012 56);--fg-subtle:oklch(54% .01 60);--border:oklch(91% .006 70);--border-strong:oklch(84% .008 68);--accent:oklch(64% .17 34);--accent-hover:oklch(57% .165 33);--accent-press:oklch(52% .155 32);--accent-weak:oklch(96.5% .024 42);--accent-ring:oklch(64% .17 34/.32);--on-accent:oklch(100% 0 0);--credit:oklch(46% .082 172);--credit-weak:oklch(95.5% .03 174);--debit:oklch(53% .13 52);--debit-weak:oklch(96% .038 64);--danger:oklch(56% .185 27);--danger-weak:oklch(96% .032 27);--danger-ring:oklch(56% .185 27/.22);--scrim:oklch(23% .012 50/.34);--scrim-strong:oklch(10% .006 55/.76);--toast-bg:oklch(23% .012 50);--toast-fg:oklch(98.5% .004 75);--skeleton-hi:oklch(94% .006 72);--brand-from:oklch(67% .165 36);--brand-to:oklch(60% .165 32);--brand-on:oklch(100% 0 0);--brand-segment:oklch(93% .05 45);--duet-1-a:oklch(88% .045 40);--duet-1-b:oklch(70% .07 35);--duet-1-c:oklch(38% .08 35);--duet-2-a:oklch(88% .04 350);--duet-2-b:oklch(71% .055 345);--duet-2-c:oklch(38% .07 345);--duet-3-a:oklch(88% .035 250);--duet-3-b:oklch(70% .05 255);--duet-3-c:oklch(36% .06 255);--duet-4-a:oklch(88% .04 165);--duet-4-b:oklch(70% .055 170);--duet-4-c:oklch(36% .06 172);--duet-5-a:oklch(89% .045 95);--duet-5-b:oklch(71% .06 105);--duet-5-c:oklch(38% .07 108);--duet-6-a:oklch(88% .04 290);--duet-6-b:oklch(70% .05 285);--duet-6-c:oklch(37% .06 285);--duet-7-a:oklch(89% .05 70);--duet-7-b:oklch(71% .07 62);--duet-7-c:oklch(39% .08 62);--duet-8-a:oklch(88% .035 200);--duet-8-b:oklch(70% .05 205);--duet-8-c:oklch(36% .06 205);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--container:480px;--rail-w:280px;--shell-max:1320px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;--e1:0 1px 2px oklch(28% .02 50/.05), 0 1px 3px oklch(28% .02 50/.06);--e2:0 4px 14px -3px oklch(28% .02 50/.1), 0 2px 6px -2px oklch(28% .02 50/.06);--e3:0 16px 40px -12px oklch(28% .02 50/.16), 0 4px 12px -6px oklch(28% .02 50/.08);--font-display:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--dur-fast:.12s;--dur-base:.18s;--dur-slow:.22s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-inout:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1)}[data-theme=dark]{--bg:oklch(17.5% .008 60);--surface:oklch(21.5% .01 60);--surface-sunken:oklch(19.5% .009 60);--surface-raised:oklch(25% .011 60);--fg:oklch(93% .008 75);--fg-muted:oklch(73% .01 70);--fg-subtle:oklch(64% .012 66);--border:oklch(29% .012 60);--border-strong:oklch(37% .014 62);--accent:oklch(72% .14 38);--accent-hover:oklch(76% .145 40);--accent-press:oklch(80% .15 42);--accent-weak:oklch(27% .045 40);--accent-ring:oklch(72% .14 38/.25);--on-accent:oklch(17% .015 45);--credit:oklch(78% .1 165);--credit-weak:oklch(24.5% .035 170);--debit:oklch(80% .1 70);--debit-weak:oklch(26.5% .04 65);--danger:oklch(72% .15 25);--danger-weak:oklch(25.5% .05 25);--danger-ring:oklch(72% .15 25/.22);--toast-bg:oklch(25% .011 60);--toast-fg:oklch(93% .008 75);--scrim:oklch(8% .005 60/.55);--skeleton-hi:oklch(25% .011 60);--duet-1-a:oklch(48% .07 35);--duet-1-b:oklch(34% .055 35);--duet-1-c:oklch(90% .04 40);--duet-2-a:oklch(46% .06 345);--duet-2-b:oklch(33% .05 345);--duet-2-c:oklch(89% .035 350);--duet-3-a:oklch(45% .05 255);--duet-3-b:oklch(32% .04 255);--duet-3-c:oklch(88% .03 250);--duet-4-a:oklch(45% .055 170);--duet-4-b:oklch(32% .045 170);--duet-4-c:oklch(88% .04 165);--duet-5-a:oklch(47% .055 105);--duet-5-b:oklch(33% .045 105);--duet-5-c:oklch(89% .04 95);--duet-6-a:oklch(46% .05 285);--duet-6-b:oklch(33% .04 285);--duet-6-c:oklch(88% .035 290);--duet-7-a:oklch(47% .07 62);--duet-7-b:oklch(33% .055 62);--duet-7-c:oklch(89% .04 70);--duet-8-a:oklch(45% .05 205);--duet-8-b:oklch(32% .04 205);--duet-8-c:oklch(88% .03 200);--e1:0 1px 2px oklch(4% .004 60/.4), 0 1px 3px oklch(4% .004 60/.32);--e2:0 4px 14px -3px oklch(4% .004 60/.55), 0 2px 6px -2px oklch(4% .004 60/.4);--e3:0 16px 40px -12px oklch(4% .004 60/.7), 0 4px 12px -6px oklch(4% .004 60/.5)}@media (prefers-color-scheme:dark){[data-theme=system],:root:not([data-theme]){--bg:oklch(17.5% .008 60);--surface:oklch(21.5% .01 60);--surface-sunken:oklch(19.5% .009 60);--surface-raised:oklch(25% .011 60);--fg:oklch(93% .008 75);--fg-muted:oklch(73% .01 70);--fg-subtle:oklch(64% .012 66);--border:oklch(29% .012 60);--border-strong:oklch(37% .014 62);--accent:oklch(72% .14 38);--accent-hover:oklch(76% .145 40);--accent-press:oklch(80% .15 42);--accent-weak:oklch(27% .045 40);--accent-ring:oklch(72% .14 38/.25);--on-accent:oklch(17% .015 45);--credit:oklch(78% .1 165);--credit-weak:oklch(24.5% .035 170);--debit:oklch(80% .1 70);--debit-weak:oklch(26.5% .04 65);--danger:oklch(72% .15 25);--danger-weak:oklch(25.5% .05 25);--danger-ring:oklch(72% .15 25/.22);--toast-bg:oklch(25% .011 60);--toast-fg:oklch(93% .008 75);--scrim:oklch(8% .005 60/.55);--skeleton-hi:oklch(25% .011 60);--duet-1-a:oklch(48% .07 35);--duet-1-b:oklch(34% .055 35);--duet-1-c:oklch(90% .04 40);--duet-2-a:oklch(46% .06 345);--duet-2-b:oklch(33% .05 345);--duet-2-c:oklch(89% .035 350);--duet-3-a:oklch(45% .05 255);--duet-3-b:oklch(32% .04 255);--duet-3-c:oklch(88% .03 250);--duet-4-a:oklch(45% .055 170);--duet-4-b:oklch(32% .045 170);--duet-4-c:oklch(88% .04 165);--duet-5-a:oklch(47% .055 105);--duet-5-b:oklch(33% .045 105);--duet-5-c:oklch(89% .04 95);--duet-6-a:oklch(46% .05 285);--duet-6-b:oklch(33% .04 285);--duet-6-c:oklch(88% .035 290);--duet-7-a:oklch(47% .07 62);--duet-7-b:oklch(33% .055 62);--duet-7-c:oklch(89% .04 70);--duet-8-a:oklch(45% .05 205);--duet-8-b:oklch(32% .04 205);--duet-8-c:oklch(88% .03 200);--e1:0 1px 2px oklch(4% .004 60/.4), 0 1px 3px oklch(4% .004 60/.32);--e2:0 4px 14px -3px oklch(4% .004 60/.55), 0 2px 6px -2px oklch(4% .004 60/.4);--e3:0 16px 40px -12px oklch(4% .004 60/.7), 0 4px 12px -6px oklch(4% .004 60/.5)}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system],:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}body{font-family:var(--font-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;font-weight:400;line-height:1.5}::selection{background:var(--accent-weak)}a{color:inherit}.t-display-lg{font-family:var(--font-display);letter-spacing:-.03em;font-size:44px;font-weight:800;line-height:1.05}.t-display{font-family:var(--font-display);letter-spacing:-.025em;font-size:32px;font-weight:800;line-height:1.1}.t-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.2}.t-heading{letter-spacing:-.015em;font-size:19px;font-weight:700;line-height:1.3}.t-body{font-size:16px;line-height:1.55}.t-caption{color:var(--fg-muted);font-size:14px;line-height:1.45}.t-micro{letter-spacing:.01em;font-size:12px;font-weight:600;line-height:1.35}.t-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-subtle);font-size:12px;font-weight:700;line-height:1.35}.t-muted{color:var(--fg-muted)}.t-subtle{color:var(--fg-subtle)}.t-mono{font-family:var(--font-mono)}h1,h2,h3,h4{font-family:var(--font-display)}.money{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1, "lnum" 1;text-align:right;white-space:nowrap;letter-spacing:-.01em;font-weight:600}.money .cur{color:var(--fg-subtle);margin-right:1px;font-weight:600}.money .minor{color:var(--fg-subtle);font-weight:600}.money.lg{letter-spacing:-.03em;font-size:46px;font-weight:800;line-height:1}.money.lg .cur,.money.lg .minor{font-size:.52em}.money.md{font-size:22px;font-weight:700}.money.credit{color:var(--credit)}.money.debit{color:var(--debit)}.money.settled{color:var(--fg-subtle)}.app{min-height:100dvh;max-width:var(--container);background:var(--bg);margin-inline:auto;padding-bottom:88px;position:relative}@media (width<=1023px){.app.no-nav{padding-bottom:var(--sp-8)}}.app-header{z-index:20;align-items:center;gap:var(--sp-3);padding:max(var(--sp-3), env(safe-area-inset-top)) var(--sp-4) var(--sp-3);background:color-mix(in oklab, var(--bg) 90%, transparent);-webkit-backdrop-filter:saturate(1.1)blur(8px);backdrop-filter:saturate(1.1)blur(8px);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.app-header .trip-switch{align-items:center;gap:var(--sp-2);flex:1;min-width:0;min-height:44px;display:flex}.app-header .trip-name{font-family:var(--font-display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700;overflow:hidden}.app-header .trip-cur{color:var(--fg-subtle);border:1px solid var(--border);border-radius:var(--r-sm);letter-spacing:.04em;padding:2px 7px;font-size:11px;font-weight:700}.app-main{padding:var(--sp-4)}.bottom-nav{width:100%;max-width:var(--container);z-index:30;grid-template-columns:repeat(var(--nav-cells,4), 1fr);background:color-mix(in oklab, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:var(--sp-2) var(--sp-2) max(var(--sp-2), env(safe-area-inset-bottom));display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{min-height:48px;color:var(--fg-subtle);transition:color var(--dur-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--accent)}.bottom-nav a svg{width:23px;height:23px}.bottom-nav a .fab-plus{border-radius:var(--r-md);background:var(--accent);width:46px;height:46px;color:var(--on-accent);box-shadow:var(--e2);place-items:center;display:grid}.side-rail{display:none}.side-rail .rail-brand{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-6);display:flex}.side-rail .rail-brand .brand-tile{--tile-size:38px}.side-rail .rail-brand .nm{font-family:var(--font-display);letter-spacing:-.02em;font-size:16px;font-weight:800;line-height:1.1}.side-rail .rail-brand .sb{color:var(--fg-subtle);font-size:12px}.side-rail .rail-trip{align-items:center;gap:var(--sp-3);padding:var(--sp-3);margin-bottom:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--e1);cursor:pointer;color:inherit;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.side-rail .rail-trip:hover{border-color:var(--border-strong);box-shadow:var(--e2)}.side-rail .rail-trip .tn{flex-direction:column;flex:1;min-width:0;display:flex}.side-rail .rail-trip .tn .nm{font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;display:block;overflow:hidden}.side-rail .rail-trip .tn .cur{color:var(--fg-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.side-rail .rail-trip svg{width:18px;height:18px;color:var(--fg-subtle);flex-shrink:0}.side-rail .rail-nav{flex-direction:column;gap:2px;display:flex}.side-rail .rail-nav a{align-items:center;gap:var(--sp-3);min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--fg-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-size:15px;font-weight:600;text-decoration:none;display:flex}.side-rail .rail-nav a svg{flex-shrink:0;width:20px;height:20px}.side-rail .rail-nav a:hover{background:var(--surface-sunken);color:var(--fg)}.side-rail .rail-nav a.active{background:var(--accent-weak);color:var(--accent)}.side-rail .rail-add{margin-top:var(--sp-4);justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);background:var(--accent);min-height:46px;color:var(--on-accent);box-shadow:var(--e1);transition:background var(--dur-fast) var(--ease-out);font-size:15px;font-weight:700;text-decoration:none;display:flex}.side-rail .rail-add:hover{background:var(--accent-hover)}.side-rail .rail-add svg{width:20px;height:20px}.side-rail .rail-foot{margin-top:auto}.side-rail .rail-acct{align-items:center;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--r-sm);color:inherit;transition:background var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.side-rail .rail-acct:hover{background:var(--surface-sunken)}.side-rail .rail-acct .nm{font-size:14px;font-weight:600}.side-rail .rail-acct .sb{color:var(--fg-subtle);font-size:12px}.page{width:100%}.page-narrow{max-width:560px;margin-inline:auto}.page-read{max-width:720px;margin-inline:auto}.page-wide{max-width:1040px;margin-inline:auto}.dash-2col{gap:var(--sp-6);flex-direction:column;display:flex}.page-head{display:none}@media (width>=1024px){.app{max-width:var(--shell-max);grid-template-columns:var(--rail-w) 1fr;grid-template-areas:"rail main";min-height:100dvh;padding-bottom:0;display:grid}.app-header,.bottom-nav{display:none}.side-rail{height:100dvh;padding:var(--sp-6) var(--sp-4);border-right:1px solid var(--border);background:var(--surface-sunken);flex-direction:column;grid-area:rail;display:flex;position:sticky;top:0}.app-main{padding:var(--sp-10) var(--sp-12);grid-area:main;max-width:1100px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-8);flex-wrap:wrap;display:flex}.page-head h1{font-family:var(--font-display);letter-spacing:-.025em;font-size:30px;font-weight:800;line-height:1.1}.page-head .ph-sub{color:var(--fg-muted);margin-top:4px;font-size:14px}.dash-2col.aside{align-items:start;gap:var(--sp-8);grid-template-columns:minmax(0,1fr) 360px;display:grid}.dash-2col.even{align-items:start;gap:var(--sp-8);grid-template-columns:1fr 1fr;display:grid}.desktop-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1)}}@media (width>=600px) and (width<=1023px){.app,.bottom-nav{max-width:600px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--e1)}.card-pad{padding:var(--sp-4)}.card-pad-lg{padding:var(--sp-6)}.card.flat{box-shadow:none}.card.sunken{background:var(--surface-sunken);box-shadow:none}.card-link{color:inherit;transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);text-decoration:none;display:block}.card-link:hover{box-shadow:var(--e2);border-color:var(--border-strong);transform:translateY(-2px)}.btn{appearance:none;font-family:var(--font-body);border-radius:var(--r-sm);min-height:48px;padding:0 var(--sp-5);justify-content:center;align-items:center;gap:var(--sp-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:1px solid #0000;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--e1)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--e2)}.btn-primary:active{background:var(--accent-press)}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-sunken);border-color:var(--fg-subtle)}.btn-ghost{color:var(--fg-muted);background:0 0}.btn-ghost:hover{background:var(--surface-sunken);color:var(--fg)}.btn-danger{background:var(--danger-weak);color:var(--danger)}.btn-danger:hover{background:color-mix(in oklab, var(--danger-weak) 84%, var(--danger))}.btn-block{width:100%}.btn-sm{min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-sm);font-size:14px}.btn-lg{min-height:54px;font-size:17px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.field{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.label{color:var(--fg-muted);font-size:14px;font-weight:700}.hint{color:var(--fg-subtle);font-size:13px}.input,.select{width:100%;min-height:48px;font-family:var(--font-body);color:var(--fg);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:0 var(--sp-4);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);font-size:16px}.input::placeholder{color:var(--fg-subtle)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.input.money-input{text-align:right;font-variant-numeric:tabular-nums lining-nums;font-weight:600}.input-error{border-color:var(--danger)}.input-error:focus{box-shadow:0 0 0 3px var(--danger-ring)}.field-error{color:var(--danger);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.input-affix{align-items:center;display:flex;position:relative}.input-affix .affix{left:var(--sp-4);color:var(--fg-subtle);pointer-events:none;font-weight:600;position:absolute}.input-affix .input{padding-left:30px}.chip{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-4) 0 6px;border-radius:var(--r-pill);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--fg-muted);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-size:15px;font-weight:600;display:inline-flex}.chip .avatar{--avatar-size:30px;--avatar-font:12px}.chip.is-on{border-color:var(--accent);background:var(--accent-weak);color:var(--fg)}.chip.is-on .check{color:var(--accent)}.chip.is-off{opacity:.55}.avatar{--avatar-size:38px;--avatar-font:14px;width:var(--avatar-size);height:var(--avatar-size);font-size:var(--avatar-font);color:var(--fg);background:var(--surface-sunken);border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid;position:relative}.avatar.xs{--avatar-size:24px;--avatar-font:10px}.avatar.sm{--avatar-size:30px;--avatar-font:12px}.avatar.lg{--avatar-size:48px;--avatar-font:17px}.avatar.xl{--avatar-size:96px;--avatar-font:32px}.avatar.payer{box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--accent)}.avatar.duet{border-color:#0000}.avatar.duet-1{background:linear-gradient(160deg, var(--duet-1-a), var(--duet-1-b));color:var(--duet-1-c)}.avatar.duet-2{background:linear-gradient(160deg, var(--duet-2-a), var(--duet-2-b));color:var(--duet-2-c)}.avatar.duet-3{background:linear-gradient(160deg, var(--duet-3-a), var(--duet-3-b));color:var(--duet-3-c)}.avatar.duet-4{background:linear-gradient(160deg, var(--duet-4-a), var(--duet-4-b));color:var(--duet-4-c)}.avatar.duet-5{background:linear-gradient(160deg, var(--duet-5-a), var(--duet-5-b));color:var(--duet-5-c)}.avatar.duet-6{background:linear-gradient(160deg, var(--duet-6-a), var(--duet-6-b));color:var(--duet-6-c)}.avatar.duet-7{background:linear-gradient(160deg, var(--duet-7-a), var(--duet-7-b));color:var(--duet-7-c)}.avatar.duet-8{background:linear-gradient(160deg, var(--duet-8-a), var(--duet-8-b));color:var(--duet-8-c)}.avatar .avatar-photo{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block;position:absolute;inset:0}.avatar.has-photo{border-color:#0000}:root[data-theme=dark] .avatar.has-photo{border-color:var(--border-strong)}@media (prefers-color-scheme:dark){:root[data-theme=system] .avatar.has-photo,:root:not([data-theme]) .avatar.has-photo{border-color:var(--border-strong)}}.brand-tile{--tile-size:44px;width:var(--tile-size);height:var(--tile-size);background:linear-gradient(150deg, var(--brand-from), var(--brand-to));box-shadow:var(--e1);border-radius:26%;flex-shrink:0;place-items:center;display:inline-grid}.brand-tile.sm{--tile-size:30px}.brand-tile.lg{--tile-size:64px}.brand-tile .brand-mark{width:64%;height:64%}.brand-mark path{stroke-width:1.5px}.brand-lockup{align-items:center;gap:var(--sp-3);display:inline-flex}.brand-wordmark{font-family:var(--font-display);letter-spacing:-.02em;font-weight:800;line-height:1.05}.row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);min-height:56px;display:flex}.row+.row{border-top:1px solid var(--border)}.row .row-main{flex:1;min-width:0}.row .row-title{font-weight:600}.row .row-sub{color:var(--fg-subtle);font-size:13px}.edge{align-items:center;gap:var(--sp-3);padding:var(--sp-4);display:flex}.edge .who{align-items:center;gap:var(--sp-2);display:flex}.edge .arrow{color:var(--accent);flex-shrink:0;place-items:center;display:grid}.edge .edge-amt{margin-left:auto}.status{border-radius:var(--r-sm);align-items:center;gap:5px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.status.credit{background:var(--credit-weak);color:var(--credit)}.status.debit{background:var(--debit-weak);color:var(--debit)}.status.settled{background:var(--surface-sunken);color:var(--fg-subtle)}.status .ico{width:14px;height:14px}.tag{color:var(--fg-muted);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;gap:5px;padding:4px 9px;font-size:12px;font-weight:600;display:inline-flex}.tag svg{width:13px;height:13px}.segmented{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.segmented button{appearance:none;font-family:var(--font-body);color:var(--fg-muted);cursor:pointer;min-height:44px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:7px;padding:8px 16px;font-size:14px;font-weight:700}.segmented button.active{background:var(--surface);color:var(--fg);box-shadow:var(--e1)}.sheet-scrim{background:var(--scrim);z-index:40;animation:fade-in var(--dur-base) var(--ease-out);position:fixed;inset:0}.sheet{width:100%;max-width:var(--container);z-index:41;background:var(--surface-raised);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--e3);animation:sheet-up var(--dur-slow) var(--ease-spring);padding-bottom:env(safe-area-inset-bottom);max-height:calc(100dvh - var(--sp-8));overscroll-behavior:contain;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.sheet-grip{background:var(--border-strong);width:40px;height:4px;margin:var(--sp-3) auto var(--sp-1);border-radius:2px}@keyframes sheet-up{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width>=1024px){.sheet{border-radius:var(--r-lg);max-width:480px;max-height:min(80dvh,720px);animation:dialog-in var(--dur-base) var(--ease-out);padding-bottom:0;top:50%;bottom:auto;transform:translate(-50%,-50%)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(8px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}.sheet-grip{display:none}}.skeleton{background:linear-gradient(90deg, var(--surface-sunken) 25%, var(--skeleton-hi) 37%, var(--surface-sunken) 63%);background-size:400% 100%;border-radius:7px;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{text-align:center;padding:var(--sp-12) var(--sp-6)}.empty .empty-art{margin:0 auto var(--sp-6);width:140px;height:140px}.empty h3{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:var(--sp-2);font-size:22px;font-weight:800}.empty p{color:var(--fg-muted);max-width:32ch;margin:0 auto var(--sp-6);line-height:1.5}.toast{z-index:50;align-items:center;gap:var(--sp-2);background:var(--toast-bg);color:var(--toast-fg);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);box-shadow:var(--e3);animation:toast-in var(--dur-slow) var(--ease-out);font-size:14px;font-weight:600;display:flex;position:fixed;bottom:104px;left:50%;transform:translate(-50%)}.toast.success .dot{color:var(--credit)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (width>=1024px){.toast{bottom:32px}}.banner{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);align-items:flex-start;font-size:14px;line-height:1.45;display:flex}.banner svg{flex-shrink:0}.banner.error{background:var(--danger-weak);color:var(--danger)}.banner.info{background:var(--accent-weak);color:var(--accent-hover)}.reconcile{align-items:center;gap:var(--sp-2);color:var(--credit);background:var(--credit-weak);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:13px;font-weight:600;display:flex}.stack{flex-direction:column;display:flex}.stack-2>*+*{margin-top:var(--sp-2)}.stack-3>*+*{margin-top:var(--sp-3)}.stack-4>*+*{margin-top:var(--sp-4)}.stack-6>*+*{margin-top:var(--sp-6)}.cluster{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.between{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.divider{background:var(--border);border:0;height:1px}.section-label{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.icon-btn{border-radius:var(--r-sm);width:44px;height:44px;color:var(--fg-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-sunken);color:var(--fg)}.acct-btn{cursor:pointer;width:44px;height:44px;color:inherit;background:0 0;border:0;border-radius:50%;place-items:center;text-decoration:none;display:grid}.acct-btn .avatar{--avatar-size:32px;--avatar-font:13px}.acct-btn:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}svg{stroke-width:1.75px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.avatar-pair{flex:none;align-items:center;display:inline-flex}.avatar-pair .avatar+.avatar{margin-left:-7px}.avatar-pair .avatar.sm+.avatar{margin-left:-5px}.avatar-pair .avatar:not(.payer){box-shadow:0 0 0 2px var(--surface)}.avatar-pair .avatar-more{background:var(--surface-sunken);color:var(--fg-muted);box-shadow:0 0 0 2px var(--surface);font-size:11px}.empty-glyph{border-radius:50%;place-items:center;width:140px;height:140px;display:grid}.empty-glyph svg{stroke-width:1.5px;width:64px;height:64px}.empty-glyph.accent{background:var(--accent-weak);color:var(--accent)}.empty-glyph.muted{background:var(--surface-sunken);color:var(--fg-muted);box-shadow:inset 0 0 0 1px var(--border)}.glyph-tile{border-radius:var(--r-sm);background:var(--surface-sunken);border:1px solid var(--border);width:38px;height:38px;color:var(--fg-muted);flex:none;place-items:center;display:grid}.glyph-tile.lg{border-radius:var(--r-md);width:44px;height:44px}.glyph-tile.sm{width:34px;height:34px}.glyph-tile.accent{background:var(--accent-weak);color:var(--accent);border-color:#0000}.glyph-tile.on-surface{background:var(--surface);border-color:var(--accent);color:var(--accent)}.sk-row,.sk-hrow{align-items:center;gap:var(--sp-3);padding:var(--sp-4);display:flex}.sk-row+.sk-row,.sk-hrow+.sk-hrow{border-top:1px solid var(--border)}.sk-hero{align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4) var(--sp-5);flex-direction:column;display:flex}.sk-payer-net{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.sk-pn{align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-2);flex-direction:column;display:flex}.sk-pn+.sk-pn{border-left:1px solid var(--border)}.sk-bar{gap:var(--sp-2);padding:var(--sp-4);flex-direction:column;display:flex}.sk-bar+.sk-bar{border-top:1px solid var(--border)}.sk-bar-top{align-items:center;gap:var(--sp-3);display:flex}.sk-bar-top>:last-child{margin-left:auto}.sec-head{justify-content:space-between;align-items:baseline;gap:2px var(--sp-3);margin:var(--sp-6) 0 var(--sp-3);flex-wrap:wrap;display:flex}.sec-head:first-child{margin-top:0}.sec-head h2{letter-spacing:-.015em;font-size:19px;font-weight:700}.sec-head .sec-count{color:var(--fg-muted);margin-left:auto;font-size:14px}.money.credit .cur,.money.credit .minor,.money.debit .cur,.money.debit .minor{color:inherit}.amt-word{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-subtle);font-size:10.5px;font-weight:700}.list-card{overflow:hidden}.list-card>*+*{border-top:1px solid var(--border)}.bottom-nav a .nav-glyph{display:inline-flex;position:relative}.nav-badge{border-radius:var(--r-pill);background:var(--accent);min-width:16px;height:16px;color:var(--on-accent);box-shadow:0 0 0 2px var(--bg);place-items:center;padding:0 3px;font-size:10px;font-weight:700;line-height:1;display:grid;position:absolute;top:-5px;right:-9px}.side-rail .rail-nav a .nav-badge{box-shadow:none;margin-left:auto;position:static}.shop-lists{gap:var(--sp-3);flex-direction:column;display:flex}.shop-card{color:inherit;text-decoration:none;display:block}.shop-card-head{align-items:center;gap:var(--sp-2);display:flex}.shop-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.shop-live-dot{border-radius:var(--r-pill);background:var(--credit);flex:none;width:7px;height:7px}.shop-progress{align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);display:flex}.shop-bar{background:var(--surface-sunken);border-radius:8px;flex:1;height:8px;display:block;overflow:hidden}.shop-bar>span{background:var(--accent);height:100%;transition:width var(--dur-base) var(--ease-out);border-radius:8px;display:block}.shop-progress-count{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.shop-card-meta{color:var(--fg-subtle);margin-top:var(--sp-2);font-size:13px}.shop-archived{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);color:inherit;text-decoration:none;display:flex}.shop-archived .ico{color:var(--credit);flex:none}.shop-archived .txt{flex:1;min-width:0}.shop-archived .nm{color:var(--fg-muted);font-size:14px;font-weight:600;display:block}.shop-archived .sb{color:var(--fg-subtle);font-size:13px;display:block}.shop-presets{gap:var(--sp-2);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.shop-preset{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-pill);border:1.5px solid var(--border-strong);background:var(--surface);font:inherit;color:var(--fg-muted);cursor:pointer;font-size:14px;font-weight:600;display:inline-flex}.shop-preset.is-new{background:0 0;border-style:dashed}.shop-preset:disabled{opacity:.55;cursor:default}.shop-rows{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.shop-row{align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);border:0;border-top:1px solid var(--border);width:100%;min-height:52px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;display:flex}.shop-row:first-child{border-top:0}.shop-box{border-radius:var(--r-sm);border:1.5px solid var(--border-strong);background:var(--surface);box-sizing:border-box;color:#0000;width:24px;height:24px;transition:background var(--dur-fast) var(--ease-out);flex:none;place-items:center;display:grid}.shop-row.is-checked .shop-box{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.shop-row-title{flex:1;min-width:0;font-size:15px}.shop-row.is-checked .shop-row-title{color:var(--fg-subtle);text-decoration:line-through}.shop-qty{color:var(--fg-subtle);font-size:13.5px}.shop-row-who{flex:none;display:inline-flex}.shop-row-who .avatar+.avatar{margin-left:-6px}.shop-row-who .avatar:not(.payer){box-shadow:0 0 0 2px var(--surface)}.shop-basket{opacity:.82}.shop-add{gap:var(--sp-2);flex-direction:column;display:flex}.shop-add textarea{resize:vertical;box-sizing:border-box;width:100%;min-height:46px}.shop-suggest{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--debit-weak);color:var(--debit);font-size:13px;font-weight:600;display:flex}.shop-suggest .txt{flex:1;min-width:0}.checkout-amount{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.checkout-amount input{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.checkout-note{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--accent-weak);color:var(--fg-muted);font-size:13px;display:flex}.checkout-sub{color:var(--fg-subtle);text-align:center;margin-top:var(--sp-2);font-size:12px}.checkout-people{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.shop-composition{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;display:flex}.shop-chip{color:var(--fg-muted);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 9px;font-size:13px;font-weight:600}.shop-chip.is-alcohol{color:var(--debit);background:var(--debit-weak);border-color:var(--debit-weak)}.tag-alcohol{color:var(--debit);background:var(--debit-weak);border-color:var(--debit-weak);letter-spacing:.05em;text-transform:uppercase;margin-left:var(--sp-2);vertical-align:2px;font-size:10px;font-weight:700;text-decoration:none}.shop-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);display:flex}.shop-head .txt{flex:1;min-width:0}.shop-head .nm{font-family:var(--font-display);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;display:block;overflow:hidden}.shop-head .live{color:var(--credit);align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.shop-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin:0;padding:0;list-style:none;overflow:hidden}.shop-preview li{align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);border-top:1px solid var(--border);min-height:48px;font-size:14.5px;display:flex}.shop-preview li:first-child{border-top:0}.shop-preview li.is-alcohol{background:color-mix(in oklab, var(--debit-weak) 40%, transparent)}.shop-preview .nm{flex:1;min-width:0}.shop-foot{gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.shop-new,.checkout-total,.checkout-items,.checkout-alcohol,.checkout-payer{margin-top:var(--sp-3)}.checkout-total{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.checkout-total .money-input,.checkout-alcohol .money-input{font-size:20px;font-weight:800}.checkout-alcohol .label{margin:var(--sp-3) 0 var(--sp-2);display:block}.sheet .card-pad>.btn{width:100%;margin-top:var(--sp-3)}.btn-primary .money,.btn-primary .money .cur,.btn-primary .money .minor{color:var(--on-accent)}.shop-composition-block{margin-top:var(--sp-6)}.shop-composition-block a{color:inherit;text-underline-offset:2px;text-decoration:underline}.booking-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.booking-amounts{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.booking-of{color:var(--fg-muted);font-size:15px}.booking-bar{background:var(--surface-sunken);border-radius:999px;height:8px;overflow:hidden}.booking-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .24s ease-out;display:block}@media (prefers-reduced-motion:reduce){.booking-bar-fill{transition:none}}.booking-payments{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.booking-payment{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;font-size:14px;display:flex}.bp-who{font-weight:700}.bp-meta{color:var(--fg-muted)}.booking-due{color:var(--accent);margin:0;font-size:14px}.booking-split{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.booking-split-row{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3);font-size:14px;display:flex}.booking-split-row+.booking-split-row{border-top:1px solid var(--border)}.booking-split-row.muted{color:var(--fg-muted)}.stay-panel{overflow:hidden}.stay-row{align-items:center;gap:var(--sp-2);padding:var(--sp-3);flex-wrap:wrap;font-size:14px;display:flex}.stay-row+.stay-row{border-top:1px solid var(--border)}.stay-ico{color:var(--fg-subtle);flex:none}.stay-text{overflow-wrap:anywhere;flex:1;min-width:0}.stay-link{min-width:0;color:var(--accent);overflow-wrap:anywhere;flex:1}.stay-holder,.stay-note{color:var(--fg-subtle);font-size:13px}.stay-deposit .stay-note{margin-left:auto}.thread-panel{overflow:hidden}.thread-head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) var(--sp-3);display:flex}.thread-pin{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--debit-weak);color:var(--debit);display:flex}.thread-pin-ico{flex:none;margin-top:2px}.thread-pin-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.thread-body{padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);flex-direction:column;margin:0;list-style:none;display:flex}.thread-empty{padding:var(--sp-3) var(--sp-4) var(--sp-4);margin:0}.thread-msg{align-items:flex-start;gap:var(--sp-2);display:flex}.thread-bubble{background:var(--surface-sunken);border-radius:var(--r-md);min-width:0;padding:var(--sp-2) var(--sp-3);overflow-wrap:anywhere;flex-direction:column;flex:1;gap:2px;display:flex}.thread-meta{color:var(--fg-muted);font-size:12.5px;font-weight:700}.thread-text{font-size:14px}.thread-pin-btn{min-width:44px;min-height:44px;color:var(--fg-subtle);padding:var(--sp-1);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;transition:color .12s ease-out;display:inline-flex}.thread-msg:hover .thread-pin-btn,.thread-pin-btn:focus-visible{color:var(--fg)}.thread-compose{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--border);display:flex}.thread-compose .input{flex:1;min-width:0}.thread-send{background:var(--accent);width:40px;height:40px;color:var(--on-accent);cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.thread-send:disabled{opacity:.5;cursor:default}.cancel-outcome{gap:var(--sp-1);padding:var(--sp-3);border-radius:var(--r-md);flex-direction:column;font-size:13.5px;line-height:1.5;display:flex}.cancel-outcome.refunded{background:var(--surface-sunken);color:var(--fg-muted)}.cancel-outcome.burned{background:var(--danger-weak);color:var(--danger)}.booking-fields{border:1px solid var(--accent);border-radius:var(--r-md);padding:var(--sp-3);gap:var(--sp-3);flex-direction:column;display:flex}.booking-hint{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--credit-weak);color:var(--credit);font-size:13px;display:flex}.booking-hint.warn{background:var(--danger-weak);color:var(--danger)}.stay-nights{color:var(--fg-muted);font-size:13px}.stay-nights b{color:var(--fg)}.deposit-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.deposit-row .input{flex:1;min-width:120px}.btn-primary .money,.btn-primary .money .cur,.btn-primary .money .minor,.btn-danger .money,.btn-danger .money .cur,.btn-danger .money .minor{color:inherit}
