:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #eef1f5;--surface-3: #e3e7ed;--surface-4: #d6dbe3;--text: #1b1f24;--text-2: #5c6470;--text-3: #8a93a0;--line: #e4e8ee;--line-2: #cfd5de;--accent: #1b5fe8;--accent-2: #1550c9;--on-accent: #ffffff;--accent-soft: #e7eeff;--accent-soft-2: #d2e0ff;--on-accent-soft: #0f3fa8;--ok: #1e7f4a;--ok-soft: #e3f3ea;--warn: #a86500;--warn-soft: #fbefd6;--danger: #c62f26;--danger-soft: #fbe5e3;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .06);--shadow-2: 0 8px 32px rgba(16, 24, 40, .16);--fs-xs: 11px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--fs-3xl: 34px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 24px;--pill: 999px;--font: "Google Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif;--nav-h: 60px;--top-h: 56px;--side-w: 240px;--rail-w: 76px;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--state-hover: .08;--state-press: .1;--state-focus: .1;--state-dur: .12s;--ripple-dur: .35s;--ease-out: cubic-bezier(.05, .7, .1, 1);--ease-in: cubic-bezier(.3, 0, .8, .15);--sheet-in: .28s;--sheet-out: .2s;--route-in: .21s;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0f1216;--surface: #171b21;--surface-2: #1f252d;--surface-3: #283039;--surface-4: #323b46;--text: #e7eaee;--text-2: #a4acb8;--text-3: #7c8591;--line: #262d36;--line-2: #343d48;--accent: #8fb3ff;--accent-2: #a9c4ff;--on-accent: #0b2259;--accent-soft: #1b2a4a;--accent-soft-2: #22365f;--on-accent-soft: #c9d9ff;--ok: #7bd49c;--ok-soft: #16301f;--warn: #f0b35a;--warn-soft: #3a2a0e;--danger: #ff8a80;--danger-soft: #3b1c1a;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.35);--shadow-2: 0 8px 32px rgba(0,0,0,.5)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1216;--surface: #171b21;--surface-2: #1f252d;--surface-3: #283039;--surface-4: #323b46;--text: #e7eaee;--text-2: #a4acb8;--text-3: #7c8591;--line: #262d36;--line-2: #343d48;--accent: #8fb3ff;--accent-2: #a9c4ff;--on-accent: #0b2259;--accent-soft: #1b2a4a;--accent-soft-2: #22365f;--on-accent-soft: #c9d9ff;--ok: #7bd49c;--ok-soft: #16301f;--warn: #f0b35a;--warn-soft: #3a2a0e;--danger: #ff8a80;--danger-soft: #3b1c1a;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.35);--shadow-2: 0 8px 32px rgba(0,0,0,.5)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-md)/1.45 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:default;opacity:.55}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em}h2{font-size:var(--fs-lg);font-weight:600}h3{font-size:var(--fs-md);font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html{-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior-y:none}a,button,[role=button],input,select,textarea,label,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}html.android{--font: Roboto, system-ui, sans-serif}img{-webkit-user-drag:none}@media (pointer: coarse){html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable],[contenteditable] *,.selectable,.selectable *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.sm{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:8px}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.center{justify-content:center}.ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--surface);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow)}.tonal{background:var(--surface-2);border-radius:var(--r-md)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.danger{color:var(--danger)}.ok{color:var(--ok)}.warn{color:var(--warn)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--mix-light: 0%}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--mix-light: 32%}}:root[data-theme=dark]{--mix-light: 32%}.shell{min-height:100%;display:flex}.side{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:15;height:calc(var(--top-h) + var(--sat));padding:var(--sat) 8px 0 8px;display:flex;align-items:center;gap:4px;background:var(--bg)}.topbar h1{flex:1;min-width:0;font-size:var(--fs-xl);padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{flex:1;padding:0 16px calc(var(--nav-h) + 24px + var(--sab));max-width:1200px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--sab));padding-bottom:var(--sab);background:var(--surface);border-top:1px solid var(--line);display:flex;z-index:25}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-2);font-size:var(--fs-xs);font-weight:500;min-height:48px}.bottom-nav a .pill-ico{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:var(--pill);transition:background .15s}.bottom-nav a.on{color:var(--text)}.bottom-nav a.on .pill-ico{background:var(--accent-soft);color:var(--on-accent-soft)}.page-title{display:none}.section{display:flex;flex-direction:column;gap:8px}.section-h{display:flex;align-items:center;gap:8px;min-height:36px}.section-h h2{flex:1}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.two-col{display:grid;grid-template-columns:1fr;gap:16px}.desktop-only{display:none!important}@media (min-width: 720px){.shell{padding-left:var(--rail-w)}.side{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:var(--rail-w);background:var(--surface);border-right:1px solid var(--line);padding:12px 8px;gap:4px;z-index:30}.side .brand{display:flex;align-items:center;gap:10px;padding:8px 10px 16px;font-weight:600;font-size:var(--fs-lg)}.side .brand span{display:none}.side a.nav{display:flex;align-items:center;gap:12px;min-height:48px;border-radius:var(--r-md);color:var(--text-2);font-weight:500;padding:0;justify-content:center;flex-direction:column;font-size:var(--fs-xs);gap:2px}.side a.nav .pill-ico{display:flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:var(--pill)}.side a.nav.on{color:var(--text)}.side a.nav.on .pill-ico{background:var(--accent-soft);color:var(--on-accent-soft)}.side .spacer{flex:1}.side .wb,.side .user .grow{display:none}.side .user{display:flex;align-items:center;justify-content:center;padding:8px 0}.bottom-nav,.fab,.topbar{display:none}.page-title{display:flex;align-items:center;gap:12px;min-height:64px;padding-top:8px}.page-title h1{flex:1;font-size:var(--fs-2xl)}.content{padding:0 24px 32px;gap:20px}.mobile-only{display:none!important}.desktop-only{display:flex!important}.two-col{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}}@media (min-width: 1024px){.shell{padding-left:var(--side-w)}.side{width:var(--side-w);padding:16px 12px}.side .brand span{display:inline}.side a.nav{flex-direction:row;justify-content:flex-start;padding:0 12px;font-size:var(--fs-md);gap:12px}.side a.nav .pill-ico{width:auto;height:auto;background:none!important;color:inherit!important}.side a.nav.on{background:var(--accent-soft);color:var(--on-accent-soft)}.side .wb{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);margin-bottom:8px;min-height:48px;text-align:left;width:100%}.side .wb .t{font-weight:600}.side .wb .s{font-size:var(--fs-sm);color:var(--text-2)}.side .user{justify-content:flex-start;gap:10px;padding:8px 12px;border-radius:var(--r-md);width:100%;text-align:left}.side .user .grow{display:block;min-width:0}.content{padding:0 32px 40px}}.signin{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px calc(24px + var(--sab))}.signin .box{width:min(440px,100%);display:flex;flex-direction:column;gap:16px}.signin .logo{width:64px;height:64px;border-radius:18px}.mode-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--pill);font-size:var(--fs-xs);font-weight:600}.mode-chip.mock{background:var(--warn-soft);color:var(--warn)}.mode-chip.live{background:var(--ok-soft);color:var(--ok)}.sync-dot{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-3)}.book-h{flex:1;min-width:0;display:flex;font-size:inherit}.book-chip{display:flex;align-items:center;gap:8px;min-height:44px;max-width:100%;padding:2px 6px 2px 4px;border-radius:var(--r-md);color:inherit;text-align:left;min-width:0;transition:background .15s}.book-chip .bc{display:flex;flex-direction:column;min-width:0}.book-chip .t{display:flex;align-items:center;gap:2px;min-width:0;font-size:var(--fs-xl);font-weight:600;line-height:1.2}.book-chip .t svg{color:var(--text-3)}.book-chip .s{font-size:var(--fs-xs);color:var(--text-2);line-height:1.2}.book-chip.chip{min-height:36px;padding:0 10px 0 6px;border-radius:var(--pill);background:var(--surface-2);gap:6px}.book-chip.chip .cat-dot.sm{width:24px;height:24px;border-radius:8px}.book-chip.chip .cat-dot svg{width:14px;height:14px}.book-chip.chip .t{font-size:var(--fs-md);font-weight:500}.topbar .book-chip{flex:1}.topbar .book-chip .t{font-size:var(--fs-lg)}.book-tag{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;color:var(--text-2);font-size:var(--fs-xs);font-weight:500}.list-row.on{background:var(--accent-soft)}.list-row.on .main .t{color:var(--on-accent-soft);font-weight:600}.side .books{display:none}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.book-card{position:relative;display:flex;align-items:center;gap:12px;min-height:76px;padding:12px 8px 12px 14px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);cursor:pointer;color:inherit;transition:background .15s}.book-card .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.book-card .nm{display:flex;align-items:center;gap:6px;font-weight:600;min-width:0}.book-card .nm>span{overflow-wrap:anywhere}.book-card .sub{font-size:var(--fs-sm);color:var(--text-2);overflow-wrap:anywhere}.book-card .tot{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.cat-dot.lg{width:48px;height:48px;border-radius:14px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px}.icon-grid button{height:44px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:background .15s}.icon-grid button.on{background:var(--accent-soft);color:var(--on-accent-soft)}.swatches{display:flex;flex-wrap:wrap;gap:2px}.swatches button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}.swatches button span{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .15s}.swatches button.on span{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}@media (hover: hover) and (pointer: fine){.swatches button:hover span{transform:scale(1.1)}}@media (min-width: 720px){.side{overflow-y:auto}}@media (min-width: 1024px){.side .books{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.side .books .bh{display:flex;align-items:center;justify-content:space-between;padding:0 0 0 12px;min-height:36px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.side .books .bk{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 12px;border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;width:100%;text-align:left;transition:background .15s}.side .books .bk.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}.side .books .bk .amt{font-variant-numeric:tabular-nums;color:var(--text-3);font-size:var(--fs-xs);white-space:nowrap}.side .books .bk.on .amt{color:inherit}}main.content[data-fade=a]{animation:route-in-a var(--route-in) var(--ease-out)}main.content[data-fade=b]{animation:route-in-b var(--route-in) var(--ease-out)}@keyframes route-in-a{0%{opacity:0}}@keyframes route-in-b{0%{opacity:0}}@media (prefers-reduced-motion: reduce){main.content[data-fade]{animation:none}}.session-banner{position:fixed;z-index:55;left:8px;right:8px;top:calc(var(--sat) + 8px);display:flex;justify-content:center;pointer-events:none}.session-banner .banner{pointer-events:auto;width:min(560px,100%);flex-wrap:wrap;box-shadow:var(--shadow-2)}.session-banner .banner .grow{flex:1 1 200px;min-width:0}.session-banner .banner .btn{margin-left:auto}.session-banner .why{display:block;margin-top:4px;font-weight:600;color:var(--danger)}@media (min-width: 720px){.session-banner{left:calc(var(--rail-w) + 8px)}}@media (min-width: 1024px){.session-banner{left:calc(var(--side-w) + 8px)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:var(--pill);font-weight:600;font-size:var(--fs-md);white-space:nowrap;transition:background .15s,transform .05s}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-tonal{background:var(--accent-soft);color:var(--on-accent-soft)}.btn-plain{background:transparent;color:var(--accent);padding:0 12px}.btn-neutral{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-sm{min-height:36px;padding:0 14px;font-size:var(--fs-sm)}.btn-block{width:100%}.ibtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-2);transition:background .15s,color .15s;position:relative;flex:none}@media (hover: hover) and (pointer: fine){.ibtn:hover:not(:disabled){color:var(--text)}.ibtn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.ibtn.filled:hover:not(:disabled){color:var(--on-accent)}}.ibtn.accent{color:var(--accent)}.ibtn.filled{background:var(--accent);color:var(--on-accent)}.ibtn.sm{width:36px;height:36px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span.lbl{font-size:var(--fs-sm);color:var(--text-2);font-weight:500;padding-left:4px}.input{--ind: color-mix(in oklab, var(--text-3) 55%, transparent);--ind-w: 1px;display:flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border-radius:var(--r-sm) var(--r-sm) 0 0;background:var(--surface-2);box-shadow:inset 0 calc(-1 * var(--ind-w)) 0 var(--ind);transition:box-shadow var(--state-dur),background var(--state-dur)}.input:focus-within{--ind: var(--accent);--ind-w: 2px}.input.err{--ind: var(--danger);--ind-w: 2px}@media (hover: hover) and (pointer: fine){.input:hover:not(:focus-within):not(.err){--ind: var(--text-2);background:var(--surface-3)}}.input input,.input select,.input textarea{flex:1;min-width:0;border:0;background:transparent;outline:0;padding:0;font-size:var(--fs-lg);align-self:stretch}.input textarea{padding:12px 0;resize:none;line-height:1.4;font-size:var(--fs-md)}.input select{appearance:none;-webkit-appearance:none}.input .adorn{color:var(--text-2);font-size:var(--fs-md);flex:none}.input.big input{font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;min-height:64px}.help{font-size:var(--fs-sm);color:var(--text-3);padding-left:4px}.help.err{color:var(--danger)}.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--pill);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);font-weight:500;white-space:nowrap;transition:background .15s;border:2px solid transparent}.chip.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}.chip.sm{height:30px;padding:0 10px;font-size:var(--fs-sm)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:-4px -16px;padding:6px 16px;overscroll-behavior-x:contain}.chips.scroll::-webkit-scrollbar{display:none}.seg{display:inline-flex;background:var(--surface-2);border-radius:var(--pill);padding:3px;gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}.seg button{height:34px;padding:0 14px;border-radius:var(--pill);font-size:var(--fs-md);font-weight:500;color:var(--text-2);white-space:nowrap}.seg button[aria-selected=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--on-accent-soft);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--fs-sm);flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:56px;height:56px;font-size:var(--fs-lg)}.avatar.sm{width:28px;height:28px;font-size:var(--fs-xs)}.cat-dot{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff}.cat-dot.sm{width:32px;height:32px;border-radius:10px}.list{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px;border-radius:var(--r-md);text-align:left;width:100%;color:inherit}.list-row .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.list-row .main .t{font-weight:500}.list-row .main .s{color:var(--text-2);font-size:var(--fs-sm)}.list-row .amt{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.tbl th{text-align:left;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:1}.tbl th button{color:inherit;font:inherit;display:inline-flex;align-items:center;gap:2px;letter-spacing:inherit;text-transform:inherit}.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr.clickable{cursor:pointer}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}.tbl-wrap{overflow-x:auto;overscroll-behavior-x:contain}.sheet-backdrop{position:fixed;inset:0;background:#0a0e1473;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet-backdrop.is-sheet{background:none;animation:none;top:var(--vvt, 0px);bottom:auto;height:var(--vvh, 100%)}.sheet-backdrop.is-sheet:before{content:"";position:absolute;inset:0;background:#0a0e1473;opacity:var(--scrim, 1);animation:fade var(--sheet-in) linear}.sheet-backdrop.closing:before{animation:fade-out var(--sheet-out) linear forwards}.sheet{position:relative;background:var(--surface);width:100%;max-height:calc(var(--vvh, 100%) - 24px - var(--sat));overflow:auto;overscroll-behavior:contain;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:8px 16px calc(16px + var(--sab));animation:sheet-in var(--sheet-in) var(--ease-out)}.sheet-backdrop.closing .sheet{animation:sheet-out var(--sheet-out) var(--ease-in) forwards}.sheet .grab{height:28px;margin:-8px -16px 0;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab}.sheet .grab:before{content:"";width:36px;height:4px;border-radius:2px;background:var(--line-2)}.sheet-head{display:flex;align-items:center;gap:8px;min-height:44px;margin-bottom:8px}.sheet-head h2{flex:1}@media (min-width: 720px){.sheet-backdrop{align-items:center;padding:24px}.sheet{width:min(560px,100%);border-radius:var(--r-xl);max-height:calc(var(--vvh, 100%) - 48px);padding:16px 24px 24px;box-shadow:var(--shadow-2);animation:dialog-in .18s var(--ease-out)}.sheet-backdrop.closing .sheet{animation:dialog-out .12s var(--ease-in) forwards}.sheet .grab{display:none}.sheet.wide{width:min(880px,100%)}}@media (prefers-reduced-motion: reduce){.sheet-backdrop,.sheet-backdrop:before,.sheet,.sheet-backdrop.closing .sheet,.sheet-backdrop.closing:before{animation:none!important;transition:none!important}}.popover-card{background:var(--surface);border-radius:var(--r-lg);padding:20px;width:min(360px,calc(100% - 32px));box-shadow:var(--shadow-2);animation:pop .15s}.toast-wrap{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + 12px + var(--sab));display:flex;justify-content:center;z-index:60;pointer-events:none;padding:0 16px}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;background:var(--text);color:var(--bg);border-radius:var(--r-md);padding:10px 12px 10px 16px;box-shadow:var(--shadow-2);max-width:520px;width:100%;font-size:var(--fs-md);animation:up .2s}.toast .act{color:var(--accent);font-weight:600;padding:6px 10px;border-radius:8px}:root[data-theme=dark] .toast .act,.toast .act{color:#8fb3ff}.toast.err{background:var(--danger);color:#fff}.toast.err .act{color:#fff}@media (min-width: 720px){.toast-wrap{bottom:24px;justify-content:flex-start;padding-left:calc(var(--side-w) + 24px)}}.skel{position:relative;overflow:hidden;background:var(--surface-2);border-radius:8px}.skel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--surface-3),transparent);transform:translate(-100%);animation:shimmer 1.2s infinite}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:40px 16px;color:var(--text-2)}.empty .ico{width:64px;height:64px;border-radius:20px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-3);margin-bottom:4px}.empty h3{color:var(--text)}.spin{width:22px;height:22px;border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;animation:rot .8s linear infinite;flex:none}.menu{position:absolute;right:0;top:100%;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:6px;min-width:200px;width:max-content;max-width:min(92vw,320px);z-index:30;display:flex;flex-direction:column;animation:pop .12s;overscroll-behavior:contain}.menu.up{top:auto;bottom:100%}.menu.start{right:auto;left:0}.menu button{display:flex;white-space:nowrap;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:8px;text-align:left;width:100%}.menu button.danger{color:var(--danger)}.tooltip{position:relative}@media (hover: hover) and (pointer: fine){.tooltip[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);background:var(--text);color:var(--bg);font-size:var(--fs-xs);padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:50;pointer-events:none}}.tooltip[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);background:var(--text);color:var(--bg);font-size:var(--fs-xs);padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:50;pointer-events:none}.stat{background:var(--surface);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;min-width:0}.stat .k{font-size:var(--fs-sm);color:var(--text-2)}.stat .v{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.stat .d{font-size:var(--fs-sm);display:flex;align-items:center;gap:4px}.delta-up{color:var(--danger)}.delta-down{color:var(--ok)}.delta-flat{color:var(--text-3)}.banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-md);font-size:var(--fs-sm)}.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.err{background:var(--danger-soft);color:var(--danger)}.banner.info{background:var(--accent-soft);color:var(--on-accent-soft)}.banner.ok{background:var(--ok-soft);color:var(--ok)}.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 16px + var(--sab));width:56px;height:56px;border-radius:18px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-2);z-index:20}@media (min-width: 720px){.fab{display:none}}@keyframes fade{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{0%{transform:translateY(var(--drag-y, 0px))}to{transform:translateY(100%)}}@keyframes dialog-in{0%{transform:scale(.96);opacity:0}}@keyframes dialog-out{to{transform:scale(.96);opacity:0}}@keyframes up{0%{transform:translateY(24px);opacity:.6}}@keyframes pop{0%{transform:scale(.97);opacity:0}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes rot{to{transform:rotate(360deg)}}:where(.btn,.ibtn,.chip,.list-row,.cat-chip,.who-chip,.book-card,.book-chip,.menu button,.seg button,.icon-grid button,.swatches button,.fab,.side a.nav,.side .wb,.side .user,.side .books .bk,.toast .act){position:relative}:where(.btn,.ibtn,.chip,.list-row,.cat-chip,.who-chip,.book-card,.book-chip,.menu button,.seg button,.icon-grid button,.swatches button,.fab,.side a.nav,.side .wb,.side .user,.side .books .bk,.toast .act):before,.bottom-nav a .pill-ico:before,.tbl tr.clickable td:before{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;opacity:0;pointer-events:none;transition:opacity var(--state-dur)}.tbl tr.clickable td{position:relative}:where(.btn,.ibtn,.chip,.list-row,.cat-chip,.who-chip,.book-card,.book-chip,.menu button,.seg button,.icon-grid button,.swatches button,.fab,.side a.nav,.side .wb,.side .user,.side .books .bk,.toast .act):focus-visible:before{opacity:var(--state-focus)}.bottom-nav a:focus-visible .pill-ico:before{opacity:var(--state-focus)}@media (hover: hover) and (pointer: fine){:where(.btn,.ibtn,.chip,.list-row,.cat-chip,.who-chip,.book-card,.book-chip,.menu button,.seg button,.icon-grid button,.swatches button,.fab,.side a.nav,.side .wb,.side .user,.side .books .bk,.toast .act):hover:not(:disabled):before,.bottom-nav a:hover .pill-ico:before,.tbl tr.clickable:hover td:before{opacity:var(--state-hover)}}:where(.btn,.ibtn,.chip,.list-row,.cat-chip,.who-chip,.book-card,.book-chip,.menu button,.seg button,.icon-grid button,.swatches button,.fab,.side a.nav,.side .wb,.side .user,.side .books .bk,.toast .act):active:not(:disabled):before,.bottom-nav a:active .pill-ico:before,.tbl tr.clickable:active td:before{opacity:var(--state-press)}.ripple-host{position:absolute;inset:0;border-radius:inherit;overflow:hidden;contain:paint;pointer-events:none}.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:0;transform:scale(.1);pointer-events:none;animation:ripple var(--ripple-dur) cubic-bezier(.2,0,0,1) forwards}@keyframes ripple{0%{opacity:.16;transform:scale(.1)}60%{opacity:.12}to{opacity:0;transform:scale(1)}}@media (pointer: coarse){.chip{height:48px;margin-block:-6px;border-block:6px solid transparent;border-inline-width:0;padding-inline:16px;background-clip:padding-box!important}.chip.sm{height:48px;margin-block:-9px;border-block-width:9px;padding-inline:12px}.ibtn.sm{width:48px;height:48px;margin:-6px;border:6px solid transparent;background-clip:padding-box!important}.btn-sm{min-height:48px;margin-block:-6px;border-block:6px solid transparent;background-clip:padding-box!important}.seg{padding-block:0}.seg button{height:44px;border-block:3px solid transparent;background-clip:padding-box!important}.seg button[aria-selected=true]{box-shadow:none}.chip:focus-visible,.ibtn.sm:focus-visible,.btn-sm:focus-visible{outline-offset:-4px}.chip.sm:focus-visible{outline-offset:-7px}.seg button:focus-visible{outline-offset:-2px}}.fail-host{--lift-fab: 0px;--lift-toast: 0px;position:fixed;z-index:59;left:0;right:0;bottom:calc(var(--nav-h) + 12px + var(--sab) + var(--lift-fab) + var(--lift-toast));display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;pointer-events:none;max-height:min(55vh,360px);overflow-y:auto;overscroll-behavior:contain}body:has(.fab) .fail-host{--lift-fab: 72px}body:has(.toast-wrap) .fail-host{--lift-toast: 64px}body:has(.sheet-backdrop:not([inert])) .fail-host{display:none}.fail-card{pointer-events:auto;display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 12px;width:100%;max-width:520px;padding:12px 12px 8px 16px;border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);box-shadow:var(--shadow-2);animation:up .2s}.fail-card>svg{margin-top:1px}.fail-card .msg{flex:1 1 180px;min-width:0;display:flex;flex-direction:column;gap:2px}.fail-card .t{font-size:var(--fs-md);font-weight:600;overflow-wrap:anywhere}.fail-card .r{font-size:var(--fs-sm);color:var(--text-2)}.fail-card .acts{display:flex;gap:4px;margin-left:auto}@media (min-width: 720px){.fail-host{bottom:24px;align-items:flex-start;left:calc(var(--rail-w) + 8px);right:8px;padding:0}body:has(.fab) .fail-host{--lift-fab: 0px}body:has(.toast-wrap) .fail-host{bottom:88px}}@media (min-width: 1024px){.fail-host{left:calc(var(--side-w) + 24px)}}.dash{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.dash>*{min-width:0}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tiles .hero{grid-column:1 / -1}.stat.hero .v{font-size:var(--fs-3xl)}.stat .d .ellip{display:block}.card>.section-h{margin-top:-6px}.card>.section-h h2{font-size:var(--fs-lg)}.who{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.who::-webkit-scrollbar{display:none}.who-chip{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:var(--pill);background:var(--surface-2);min-height:48px;flex:none;text-align:left;color:inherit;transition:background .15s}@media (hover: hover) and (pointer: fine){.who-chip:hover{background:var(--surface-3)}}.who-chip .n{font-size:var(--fs-sm);color:var(--text-2);display:block;white-space:nowrap}.who-chip .m{font-weight:600;font-variant-numeric:tabular-nums;display:block;white-space:nowrap}.day-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 4px;font-size:var(--fs-sm);color:var(--text-2);font-weight:600}.day-h .num{font-weight:500}.list-row.gone .t{text-decoration:line-through;color:var(--text-3)}.tbl-card{padding:0 8px 8px}.tbl .nm{display:flex;align-items:center;gap:8px;white-space:nowrap}.tbl td.note-cell{max-width:260px}.tbl .note{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbl .act{display:flex;justify-content:flex-end}.dash .tbl td.note-cell{max-width:0;width:100%}.dash .tbl .note{max-width:none}.tbl th[aria-sort] button{cursor:pointer}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters .input{min-height:44px}.filters .search{flex:1 1 220px}.filters .sel{flex:0 1 190px}.filters .date{flex:0 1 170px}.lbl{font-size:var(--fs-sm);color:var(--text-2);font-weight:500;padding-left:4px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.cat-chip{display:flex;align-items:center;gap:8px;min-height:48px;padding:4px 10px 4px 6px;border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);font-weight:500;text-align:left;transition:background .15s}@media (hover: hover) and (pointer: fine){.cat-chip:hover{background:var(--surface-3)}}.cat-chip.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}.cat-chip .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.pay{padding-left:4px;height:40px}.rcpt-thumb{width:56px;height:56px;border-radius:var(--r-sm);background:var(--surface-2);flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);overflow:hidden}.rcpt-thumb img{width:100%;height:100%;object-fit:cover}.rcpt-full{display:block;width:100%;max-height:60vh;object-fit:contain;border-radius:var(--r-md);background:var(--surface-2)}.rcpt-row{display:flex;align-items:center;gap:8px;min-height:48px}.amt-xl{font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 16px;align-items:center}.kv .k{font-size:var(--fs-sm);color:var(--text-2)}.conflict{background:var(--surface);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.conflict table{border-collapse:collapse;font-size:var(--fs-md);width:100%}.conflict th{text-align:left;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:0 8px 6px 0}.conflict td{padding:4px 8px 4px 0;vertical-align:top}.sticky-foot{position:sticky;bottom:calc(-16px - var(--sab));background:var(--surface);padding:12px 0 0}.profile{width:min(560px,100%);margin:0 auto;display:flex;flex-direction:column;gap:16px}.profile .head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:24px 16px}.profile .head h2{font-size:var(--fs-xl);margin-top:4px}.more-list{padding:4px}.more-list .list-row{min-height:60px}@media (min-width: 720px){.dash{grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.dash>*{grid-column:1 / -1}.tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.tiles .hero{grid-column:auto}.stat.hero .v{font-size:var(--fs-2xl)}.who{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.sticky-foot{bottom:-24px}}@media (min-width: 960px){.dash .w7{grid-column:span 7}.dash .w5{grid-column:span 5}}.dot-wrap{position:relative;display:inline-flex;flex:none}.in-badge{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;border-radius:50%;background:var(--ok);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--surface)}.kind-ico{display:inline-flex;width:22px;height:22px;border-radius:50%;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2)}.kind-ico.in{background:var(--ok-soft);color:var(--ok)}.mode-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:var(--pill);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-sm);white-space:nowrap}.tbl td.party-cell,.tbl td.party-cell .note{max-width:180px}.tbl-cash th,.tbl-cash td{padding-left:8px;padding-right:8px}.tbl-cash td.note-cell,.tbl-cash td.note-cell .note{max-width:200px}.mode-ico{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-2)}.tbl th svg+svg{margin-left:-4px}.party-hints .chip{max-width:100%}.party-hints .chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input.amt-in input{color:var(--ok)}.bal-strip{position:sticky;top:calc(var(--sat) + var(--top-h) + 8px);z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:10px 12px;gap:8px}.bal-strip .c{display:flex;flex-direction:column;gap:1px;min-width:0}.bal-strip .c+.c{border-left:1px solid var(--line);padding-left:8px}.bal-strip .k{font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap}.bal-strip .v{font-size:var(--fs-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bal-strip .c:last-child{text-align:right;align-items:flex-end}.tiles .flow{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tiles .flow .stat.hero{grid-column:auto}.tiles .flow .stat.bal{grid-column:1 / -1}.tiles .flow .stat{padding:10px 12px}.tiles .flow .stat .v{font-size:var(--fs-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tiles .flow .stat .d{flex-wrap:wrap;row-gap:0}.stat.in .v{color:var(--ok)}.stat.bal.neg .v,.book-card .tot.danger,.bk .amt.danger,.list-row .amt.danger{color:var(--danger)}.book-card .sub .ok,.list-row .s .ok{color:var(--ok)}@media (max-width: 359px){.tiles .flow .stat .v{font-size:var(--fs-md)}.bal-strip{grid-template-columns:1fr 1fr;padding:8px 10px}.bal-strip .c:last-child{grid-column:1 / -1;border-left:0;padding-left:0;text-align:left;align-items:flex-start;border-top:1px solid var(--line);padding-top:6px;flex-direction:row;justify-content:space-between;align-items:baseline}}@media (min-width: 720px){.bal-strip{position:static;padding:14px 16px;gap:16px}.bal-strip .c+.c{padding-left:16px}.bal-strip .k{font-size:var(--fs-sm)}.bal-strip .v{font-size:var(--fs-xl)}.tiles .flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tiles .flow .stat.bal{grid-column:auto}.tiles .flow .stat{padding:14px 16px}.tiles .flow .stat .v{font-size:var(--fs-2xl)}}.list-row.xr{content-visibility:auto;contain-intrinsic-size:auto 40px}.rm{display:inline-flex;flex:none;align-items:center;margin-right:-4px}.rm-saving{color:var(--accent);animation:rm-pulse 1.2s ease-in-out infinite}.rm-waiting{color:var(--warn)}.rm-failed{color:var(--danger)}@keyframes rm-pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.rm-saving{animation:none}}.rm-wrap{display:inline-flex;align-items:center;gap:4px;margin-right:6px;vertical-align:middle}.xr-fail{border-radius:var(--r-md);background:var(--danger-soft)}.xr-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 4px 56px;color:var(--danger);font-size:var(--fs-sm);font-weight:600}.xr-bar .why{display:inline-flex;align-items:center;gap:6px}.rcpt-prog{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;margin-right:4px}.rcpt-prog .pic{width:24px;height:24px;border-radius:7px;overflow:hidden;background:var(--surface-2);color:var(--text-3);display:grid;place-items:center}.rcpt-prog .pic img{width:100%;height:100%;object-fit:cover;display:block}.rcpt-prog .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.rcpt-prog .ring circle{fill:none;stroke-width:2.5}.rcpt-prog .ring .bg{stroke:var(--surface-3)}.rcpt-prog .ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .25s ease-out}.rcpt-prog .ring.turn{animation:rcpt-turn 1s linear infinite}.rcpt-prog[data-badge=a] .ring .fg{animation:rm-pulse 1.2s ease-in-out infinite}@keyframes rcpt-turn{to{transform:rotate(270deg)}}@media (prefers-reduced-motion: reduce){.rcpt-prog .ring.turn,.rcpt-prog[data-badge=a] .ring .fg{animation:none}.rcpt-prog .ring .fg{transition:none}}.rcpt-going{gap:8px}.xr-chip{border-radius:var(--r-md);background:var(--warn-soft)}.rcpt-chip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 8px;padding:0 8px 4px 12px;color:var(--warn);font-size:var(--fs-sm);font-weight:600}.xr-chip .rcpt-chip{padding-left:56px}.rcpt-chip .why{display:inline-flex;align-items:center;gap:6px;min-width:0}.rcpt-chip .why .t{overflow-wrap:anywhere}.rcpt-chip .acts{display:inline-flex;align-items:center;gap:2px;margin-left:auto}.rcpt-chip.solo{background:var(--warn-soft);border-radius:var(--r-md);padding-top:4px}.rcpt-wait{position:relative;min-height:96px;display:flex;flex-direction:column;justify-content:center;border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.rcpt-wait .bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:translate(-100%);animation:rcpt-bar 1.2s ease-in-out infinite}@keyframes rcpt-bar{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.rcpt-wait .bar{animation:none;transform:none;opacity:.4}}.rcpt-pic{position:relative;display:block;width:100%;padding:0;border:0;background:none;border-radius:var(--r-md);cursor:pointer}.rcpt-more{position:absolute;right:8px;bottom:8px;width:36px;height:36px;border-radius:50%;background:var(--surface);display:grid;place-items:center;box-shadow:var(--shadow)}.rcpt-thumb-btn{border:0;padding:0;cursor:pointer;color:var(--accent)}
