@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base: #0f0f0f;--bg-surface: #161616;--bg-elevated: #1e1e1e;--bg-overlay: #252525;--overlay-scrim: rgba(0, 0, 0, .6);--border: #2a2a2a;--border-subtle: #1f1f1f;--border-focus: #8a7a6a;--text-primary: #f0ece6;--text-secondary: #9a9080;--text-muted: #5a5248;--text-inverse: #0f0f0f;--accent: #c9a96e;--accent-dim: #8a6f42;--accent-subtle: #2a2016;--ok: #4a9e6a;--ok-subtle: #0f2318;--warn: #c49a3a;--warn-subtle: #251e08;--err: #c45a4a;--err-subtle: #25100e;--info: #4a7ab5;--info-subtle: #0e1825;--pill-cyan: #67e8f9;--pill-cyan-subtle: rgba(34, 211, 238, .14);--pill-cyan-border: rgba(34, 211, 238, .24);--pill-yellow: #facc15;--pill-yellow-subtle: rgba(250, 204, 21, .14);--pill-yellow-border: rgba(250, 204, 21, .24);--pill-indigo: #818cf8;--pill-indigo-subtle: rgba(129, 140, 248, .2);--pill-purple: #a855f7;--pill-purple-subtle: rgba(168, 85, 247, .2);--pill-neutral-subtle: rgba(148, 163, 184, .12);--pill-neutral-border: rgba(148, 163, 184, .2);--chart-1: var(--accent);--chart-2: var(--ok);--chart-3: var(--info);--chart-4: var(--warn);--chart-5: var(--accent-dim);--chart-6: #6a6156;--chart-7: #7c6fd0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--content-max-w: 1920px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 24px;--r-pill: 999px;--shadow-card: 0 1px 3px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.3);--shadow-modal: 0 8px 40px rgba(0,0,0,.7);--shadow-toast: 0 4px 20px rgba(0,0,0,.5);--t-fast: .12s;--t-base: .2s;--t-slow: .35s;--z-base: 1;--z-sticky: 100;--z-modal: 200;--z-popup: 250;--z-toast: 300;--z-tooltip: 400;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--nav-bottom-h: 56px;--touch-min: 44px;--shadow-bottom-nav: 0 -1px 0 var(--border), 0 -4px 16px rgba(0,0,0,.3);--shadow-sheet: 0 -4px 32px rgba(0,0,0,.5);--ptr-size: 36px}[data-theme=light]{--bg-base: #f4f1ec;--bg-surface: #faf9f7;--bg-elevated: #eeebe5;--bg-overlay: #ffffff;--overlay-scrim: rgba(0, 0, 0, .45);--border: #ddd9d1;--border-subtle: #e8e4dc;--border-focus: #8a7a6a;--text-primary: #1a1714;--text-secondary: #6b6258;--text-muted: #b0a89e;--text-inverse: #f0ece6;--accent: #a07840;--accent-dim: #7a5a2a;--accent-subtle: #f0e8d8;--ok: #2e7a4a;--ok-subtle: #eaf4ee;--warn: #8a6a1a;--warn-subtle: #faf3e0;--err: #9a3a2a;--err-subtle: #faeae8;--info: #2a5a90;--info-subtle: #e8f0fa;--pill-cyan: #0e7490;--pill-cyan-subtle: rgba(6, 182, 212, .15);--pill-cyan-border: rgba(6, 182, 212, .35);--pill-yellow: #854d0e;--pill-yellow-subtle: rgba(234, 179, 8, .18);--pill-yellow-border: rgba(202, 138, 4, .35);--pill-indigo: #4338ca;--pill-indigo-subtle: rgba(99, 102, 241, .15);--pill-purple: #7e22ce;--pill-purple-subtle: rgba(168, 85, 247, .15);--pill-neutral-subtle: rgba(100, 116, 139, .12);--pill-neutral-border: rgba(100, 116, 139, .2);--chart-6: #554e44;--chart-7: #5a4fb0;--shadow-card: 0 1px 3px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.06);--shadow-modal: 0 8px 40px rgba(0,0,0,.2);--shadow-toast: 0 4px 20px rgba(0,0,0,.15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;color:var(--text-primary);background:var(--bg-base)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse}button{cursor:pointer;background:none;border:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Mono", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 30px;--leading-tight: 1.2;--leading-base: 1.5;--leading-loose: 1.7;--tracking-tight: -.02em;--tracking-base: 0;--tracking-wide: .06em;--tracking-wider: .12em}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-base);line-height:var(--leading-base)}.t-xs{font-size:var(--text-xs)}.t-sm{font-size:var(--text-sm)}.t-md{font-size:var(--text-md)}.t-lg{font-size:var(--text-lg)}.t-xl{font-size:var(--text-xl)}.t-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.t-mono{font-family:var(--font-mono)}.t-muted{color:var(--text-secondary)}.t-dim{color:var(--text-muted)}.t-accent{color:var(--accent)}.t-warn{color:var(--warn)}.t-err{color:var(--err)}h1,h2,h3,h4,h5,h6{color:var(--text-primary)}legend{color:var(--text-secondary)}fieldset{border-color:var(--border)}.page-shell{display:grid;grid-template-columns:1fr;grid-template-rows:56px 1fr;grid-template-areas:"topbar" "main";min-height:100vh}.topbar{grid-area:topbar;display:flex;align-items:center;padding:0 var(--sp-5) 0 var(--sp-8);background:var(--bg-surface);border-bottom:1px solid var(--border)}.topbar__inner{display:flex;align-items:center;gap:var(--sp-4);width:100%;max-width:var(--content-max-w);margin-inline:auto}.topbar h1,.topbar__title{margin:0;font-size:var(--text-md);font-weight:600}.topbar__actions{display:flex;gap:var(--sp-2);align-items:center}.topbar__inner>:last-child{margin-left:auto}.sidebar{display:contents}.main{grid-area:main;padding:var(--sp-5);overflow-y:auto;position:relative}.main>*{max-width:var(--content-max-w);margin-inline:auto}.bento{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.bento--2{grid-template-columns:repeat(2,1fr)}.bento--3{grid-template-columns:repeat(3,1fr)}.bento--4{grid-template-columns:repeat(4,1fr)}.bento-span-2{grid-column:span 2}.bento-span-3{grid-column:span 3}.bento-row-2{grid-row:span 2}@media(max-width:768px){.page-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:"topbar" "main"}.sidebar{display:none}.topbar{padding:0 var(--sp-4);padding-top:var(--safe-top);min-height:calc(52px + var(--safe-top));position:sticky;top:0;z-index:var(--z-sticky);background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-3)}.main{padding:var(--sp-4);padding-bottom:calc(var(--nav-bottom-h) + var(--safe-bottom) + var(--sp-4));overflow-y:auto;-webkit-overflow-scrolling:touch}.bento,.bento--2,.bento--3,.bento--4{grid-template-columns:1fr;gap:var(--sp-3)}.bento-span-2,.bento-span-3{grid-column:span 1}.bento-row-2{grid-row:span 1}.card{padding:var(--sp-4);border-radius:var(--r-md)}@media(min-width:480px){.bento--3,.bento--4{grid-template-columns:repeat(2,1fr)}}}.bottom-nav{grid-area:bottom-nav;position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-bottom-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-surface);box-shadow:var(--shadow-bottom-nav);display:none;align-items:flex-start;justify-content:space-around;z-index:var(--z-sticky)}.bottom-nav__item{display:flex;flex:1;min-width:var(--touch-min);height:var(--nav-bottom-h);flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color var(--t-fast),opacity var(--t-fast)}.bottom-nav__item.is-active{color:var(--accent)}.bottom-nav__item:active{opacity:.7}.bottom-nav__icon{font-size:22px;line-height:1;position:relative}.bottom-nav__label{font-size:10px;font-weight:500;letter-spacing:.02em}@media(max-width:768px){.bottom-nav{display:flex}}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);font-size:var(--text-sm);font-weight:500;font-family:var(--font-ui);cursor:pointer;border:1px solid transparent;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);white-space:nowrap}.btn:disabled{opacity:.4;pointer-events:none}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn--accent{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.btn--accent:hover{background:var(--accent-dim);border-color:var(--accent-dim)}.btn--positive{background:var(--ok-subtle);color:var(--ok);border-color:var(--ok)}.btn--positive:hover{background:var(--ok);color:var(--text-inverse)}.btn--negative{background:var(--err-subtle);color:var(--err);border-color:var(--err)}.btn--negative:hover{background:var(--err);color:var(--text-inverse)}.btn--neutral{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border)}.btn--neutral:hover{background:var(--bg-overlay);color:var(--text-primary)}.btn--ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn--ghost:hover{background:var(--bg-elevated);color:var(--text-primary)}.btn--sm{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs)}.btn--lg{padding:var(--sp-3) var(--sp-5);font-size:var(--text-md)}.btn--icon{padding:var(--sp-2);aspect-ratio:1;justify-content:center}.btn svg{flex-shrink:0}.btn-group{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-card);transition:border-color var(--t-base)}.card:hover{border-color:var(--border-focus)}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.card__title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.card__value{font-size:var(--text-2xl);font-weight:300;font-family:var(--font-mono);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.form-field{display:flex;flex-direction:column;gap:var(--sp-1)}.form-field__label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}input[type=text],input[type=number],input[type=date],input[type=email],input[type=search],input[type=password],select,textarea{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);transition:border-color var(--t-fast),box-shadow var(--t-fast)}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-subtle);outline:none}input::placeholder,textarea::placeholder{color:var(--text-muted)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a9080' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;background-size:12px 12px;padding-right:var(--sp-6)}[data-theme=light] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6258' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;background-size:12px 12px}textarea{resize:vertical;min-height:60px}.feedback{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);font-size:var(--text-sm);margin-top:var(--sp-3)}.feedback--success{background:var(--ok-subtle);color:var(--ok);border:1px solid var(--ok)}.feedback--error{background:var(--err-subtle);color:var(--err);border:1px solid var(--err)}.feedback--info{background:var(--info-subtle);color:var(--info);border:1px solid var(--info)}.feedback--warning{background:var(--warn-subtle);color:var(--warn);border:1px solid var(--warn)}.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-switch .slider{width:40px;height:22px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-pill);transition:background var(--t-fast),border-color var(--t-fast);position:relative}.toggle-switch .slider:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--text-secondary);top:2px;left:2px;transition:transform var(--t-fast),background var(--t-fast)}.toggle-switch input:checked+.slider{background:var(--accent-subtle);border-color:var(--accent)}.toggle-switch input:checked+.slider:after{transform:translate(18px);background:var(--accent)}.filters-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end}.filters-row label{display:flex;flex-direction:column;gap:var(--sp-1);min-width:120px}.form-control{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.form-control:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-subtle);outline:none}.form-control::placeholder{color:var(--text-muted)}select.form-control,select.form-control[data-theme=light]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a9080' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;background-size:12px 12px;padding-right:var(--sp-6)}[data-theme=light] select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6258' d='M6 8L1 3h10z'/%3E%3C/svg%3E")}.modal-form{display:flex;flex-direction:column;gap:var(--sp-3)}.counterparty-row,.amount-row{display:flex;gap:var(--sp-3)}.counterparty-row>label,.amount-row>label{flex:1}.allocations-fieldset{border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.alloc-row{display:flex;gap:var(--sp-2);align-items:center}.alloc-row input{min-width:0}.t-ok{color:var(--ok)}.select{position:relative;width:100%;--select-max-h: 240px}.select.has-photo{--select-max-h: 460px}.select__trigger{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);cursor:pointer;text-align:left;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.select__trigger:hover{border-color:var(--border-focus)}.select.is-open .select__trigger{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-subtle)}.select.is-disabled .select__trigger{opacity:.5;pointer-events:none}.select__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__value.is-placeholder{color:var(--text-secondary)}.select--multi .select__value{display:flex;flex-wrap:wrap;gap:var(--sp-1);white-space:normal}.select__chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:var(--accent-subtle);border:1px solid var(--accent-dim);border-radius:var(--r-pill);font-size:var(--text-xs);color:var(--accent)}.select__chip-remove{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);font-size:var(--text-sm);line-height:1;padding:0;border-radius:var(--r-pill);transition:color var(--t-fast)}.select__chip-remove:hover{color:var(--err)}.select__clear{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--text-sm);line-height:1;padding:0;border-radius:var(--r-pill);transition:color var(--t-fast)}.select__clear:hover{color:var(--err)}.select__arrow{flex-shrink:0;display:inline-flex;color:var(--text-muted);transition:transform var(--t-fast)}.select.is-open .select__arrow{transform:rotate(180deg)}.select__menu{position:absolute;top:calc(100% + var(--sp-1));left:0;right:0;z-index:var(--z-popup);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-modal);overflow:hidden;animation:select-menu-in var(--t-fast) ease}.select--list{width:100%}.select--list .select__menu{position:static;inset:auto}.select__search{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:none;border-bottom:1px solid var(--border);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);outline:none}.select__search::placeholder{color:var(--text-secondary)}.select__list{max-height:var(--select-max-h);overflow-y:auto}.select__option{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);min-height:40px;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);transition:background var(--t-fast)}.select__option:hover,.select__option.is-highlighted{background:var(--bg-elevated)}.select__option.is-selected{color:var(--accent)}.select__option.is-hidden{display:none}.select__option__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__avatar{position:relative;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg-elevated)}.select__avatar__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.select__avatar__img.is-broken{display:none}.select__avatar__initials{font-size:var(--text-xs);font-weight:600;line-height:1;color:var(--text-secondary);user-select:none}.select__avatar--square{width:96px;height:96px;border-radius:var(--r-md)}.select__avatar--square .select__avatar__initials{font-size:var(--text-lg)}.select__avatar--spacer{flex-shrink:0;width:96px;height:96px}.select--single .select__option.is-selected:after{content:"✓";margin-left:auto;color:var(--accent)}.select--multi .select__option:before{content:"";flex-shrink:0;width:var(--sp-4);height:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-inverse);transition:background var(--t-fast),border-color var(--t-fast)}.select--multi .select__option.is-selected:before{content:"✓";background:var(--accent);border-color:var(--accent)}@keyframes select-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.filterbar{display:flex;flex-direction:column;gap:var(--sp-4)}.filterbar__head{display:flex;align-items:center;gap:var(--sp-3)}.filterbar__head .filterbar__search{flex:0 1 340px;min-width:120px}@media(max-width:768px){.filterbar--multi-search .filterbar__head{flex-wrap:wrap}.filterbar--multi-search .filterbar__head .filterbar__search{flex:1 1 100%}}.filterbar__head .filterbar__toggle{margin-left:auto}.filterbar__search{position:relative;display:flex;align-items:center}.filterbar__search-icon{position:absolute;left:var(--sp-3);display:inline-flex;color:var(--text-secondary);pointer-events:none}.filterbar .filterbar__search-input{padding-left:var(--sp-6);padding-right:var(--sp-6)}.filterbar__search-clear{position:absolute;right:var(--sp-2);display:inline-flex;align-items:center;justify-content:center;width:var(--sp-5);height:var(--sp-5);color:var(--text-secondary);font-size:var(--text-sm);line-height:1;padding:0;border-radius:var(--r-pill);transition:color var(--t-fast),background var(--t-fast)}.filterbar__search-clear:hover{color:var(--err);background:var(--bg-elevated)}.filterbar__toggle{display:inline-flex;align-items:center;gap:var(--sp-2);flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:var(--r-pill);cursor:pointer;color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);font-family:var(--font-ui);padding:var(--sp-1) var(--sp-3);transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}.filterbar__toggle:hover{border-color:var(--accent);color:var(--text-primary)}.filterbar__toggle svg{transition:transform var(--t-fast)}.filterbar.is-collapsed .filterbar__toggle svg{transform:rotate(-90deg)}.filterbar__toggle-count{min-width:var(--sp-5);padding:0 var(--sp-1);text-align:center;border-radius:var(--r-pill);background:var(--accent-subtle);border:1px solid var(--accent-dim);color:var(--accent);font-variant-numeric:tabular-nums}.filterbar{--filterbar-cols: repeat(auto-fill, minmax(180px, 1fr));--filterbar-gap: var(--sp-3)}.filterbar__body{display:flex;flex-direction:column;gap:var(--filterbar-gap)}.filterbar.is-collapsed .filterbar__body,.filterbar--compact.is-collapsed .filterbar__footer{display:none}.filterbar__grid{display:grid;grid-template-columns:var(--filterbar-cols);gap:var(--filterbar-gap)}.filterbar__group{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary);padding-top:var(--sp-3);margin-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.filterbar__group:first-child{border-top:none;padding-top:0;margin-top:0}.filterbar__field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.filterbar__field--check{justify-content:flex-end}.filterbar__field--segmented{grid-column:span 2}.filterbar__field--segmented .segmented{display:flex;flex-wrap:nowrap}.filterbar__field--segmented .segmented__btn{flex:1 1 auto;justify-content:center;overflow:hidden;text-overflow:ellipsis}.filterbar .toggle-switch{min-height:0}.filterbar__label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.filterbar__sort{display:grid;grid-template-columns:var(--filterbar-cols);gap:var(--filterbar-gap)}.filterbar__sort-group{display:flex;flex-direction:column;gap:var(--sp-1);min-width:160px}.filterbar__footer{display:grid;grid-template-columns:var(--filterbar-cols);align-items:center;gap:var(--filterbar-gap);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.filterbar__chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);grid-column:1 / -2;min-width:0}.filterbar__chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:var(--accent-subtle);border:1px solid var(--accent-dim);border-radius:var(--r-pill);font-size:var(--text-xs);color:var(--accent)}.filterbar__chip-key{color:var(--accent-dim)}.filterbar__chip--pending{border-style:dashed}.filterbar__chip-note{color:var(--text-secondary);font-style:italic}.filterbar__chip-remove{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);font-size:var(--text-sm);line-height:1;padding:0;border-radius:var(--r-pill);transition:color var(--t-fast)}.filterbar__chip-remove:hover{color:var(--err)}.filterbar__actions{display:flex;gap:var(--sp-2);grid-column:-2 / -1;justify-content:flex-end}@media(max-width:419px){.filterbar__chips,.filterbar__actions{grid-column:1 / -1}}.filterbar__apply{position:relative}.filterbar__apply.is-changed:after{content:"";position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--bg-surface)}.filterbar__range-wrap{display:flex;align-items:center;gap:var(--sp-2)}.filterbar__range{flex:1;accent-color:var(--accent);cursor:pointer}.filterbar__range-value{min-width:4ch;font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:var(--text-sm)}.filterbar__field--autocomplete{position:relative}.filterbar__autocomplete{position:fixed;z-index:var(--z-popup);max-height:240px;overflow-y:auto;padding:var(--sp-1);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-modal)}.filterbar__autocomplete[hidden]{display:none}.filterbar__autocomplete-item{display:block;width:100%;padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);text-align:left;cursor:pointer;transition:background var(--t-fast)}.filterbar__autocomplete-item:hover,.filterbar__autocomplete-item.is-active{background:var(--bg-elevated);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;padding:2px var(--sp-2);border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);white-space:nowrap}.badge--ok{background:var(--ok-subtle);color:var(--ok)}.badge--warn{background:var(--warn-subtle);color:var(--warn)}.badge--err{background:var(--err-subtle);color:var(--err)}.badge--info{background:var(--info-subtle);color:var(--info)}.badge--dim{background:var(--bg-elevated);color:var(--text-muted)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot--ok{background:var(--ok)}.status-dot--warn{background:var(--warn)}.status-dot--err{background:var(--err)}.sidebar-overlay{position:fixed;top:0;left:0;height:100vh;width:260px;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--sp-4) 0;overflow-y:auto;z-index:var(--z-modal);transform:translate(-100%);transition:transform var(--t-slow) cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-modal)}.sidebar-overlay.visible{transform:translate(0)}.sidebar__brand{padding:var(--sp-3) var(--sp-5);font-size:var(--text-md);font-weight:600;color:var(--accent);letter-spacing:var(--tracking-wide);margin-bottom:var(--sp-4)}.sidebar__nav{display:flex;flex-direction:column;gap:var(--sp-1);padding:0 var(--sp-3)}.sidebar__link{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast);text-decoration:none}.sidebar__link:hover{background:var(--bg-elevated);color:var(--text-primary);transform:translate(4px)}.sidebar__link.active{color:var(--accent);background:var(--accent-subtle)}.sidebar__icon{width:18px;height:18px;flex-shrink:0;opacity:.7}.sidebar__link:hover .sidebar__icon,.sidebar__link.active .sidebar__icon{opacity:1}.sidebar__section{margin-top:var(--sp-3)}.sidebar__section-title{width:100%;text-align:left;background:transparent;border:none;font-family:var(--font-ui);padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.sidebar__section-title:hover{background:var(--bg-elevated)}.sidebar__section-title:after{content:"▸";font-size:10px;transition:transform var(--t-fast)}.sidebar__section.expanded .sidebar__section-title:after{transform:rotate(90deg)}.sidebar__section-links{display:none;flex-direction:column;gap:var(--sp-1);padding-left:var(--sp-5)}.sidebar__section.expanded .sidebar__section-links{display:flex}.sidebar__toggle{position:fixed;top:var(--sp-3);left:var(--sp-3);z-index:var(--z-modal);background:var(--accent);color:var(--text-inverse);border:none;width:40px;height:40px;border-radius:var(--r-md);cursor:pointer;font-size:var(--text-md);display:flex;align-items:center;justify-content:center;transition:transform var(--t-fast),box-shadow var(--t-fast);box-shadow:var(--shadow-card)}.sidebar__toggle:hover{transform:scale(1.05);box-shadow:var(--shadow-modal)}.sidebar__toggle:active{transform:scale(.95)}.sidebar__toggle.alert{background:var(--err);animation:sidebar-pulse 2s infinite}@keyframes sidebar-pulse{0%{box-shadow:0 0 0 0 var(--err-subtle)}50%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.sidebar__avatar{display:flex;justify-content:center;margin-bottom:var(--sp-5)}.sidebar__avatar-inner{width:56px;height:56px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;border:2px solid var(--border);transition:transform var(--t-fast);cursor:pointer}.sidebar__avatar-inner:hover{transform:scale(1.1)}.sidebar__avatar-inner svg{width:32px;height:32px}.sidebar__notifications{padding:0 var(--sp-3);margin-top:var(--sp-4);flex-shrink:0}.sidebar__notification{background:var(--bg-elevated);border-radius:var(--r-md);padding:var(--sp-3);margin:var(--sp-1) 0;border:1px solid var(--border-subtle);transition:background var(--t-fast),transform var(--t-fast)}.sidebar__notification:hover{background:var(--bg-overlay);transform:translateY(-1px)}.sidebar__notification-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-xs);margin-bottom:var(--sp-2);color:var(--text-inverse)}.sidebar__notification-text{margin:0 0 var(--sp-1) 0;font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--text-primary)}.sidebar__notification-meta{font-size:var(--text-xs);color:var(--text-muted)}.sidebar-overlay::-webkit-scrollbar{width:6px}.sidebar-overlay::-webkit-scrollbar-track{background:var(--bg-elevated);border-radius:3px}.sidebar-overlay::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar-overlay::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.table-wrap{width:100%;overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--border)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table thead th{padding:var(--sp-3) var(--sp-4);text-align:left;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary);background:var(--bg-elevated);border-bottom:1px solid var(--border);white-space:nowrap;user-select:none;cursor:pointer}.data-table thead th[data-sort=asc]:after{content:" ↑";color:var(--accent)}.data-table thead th[data-sort=desc]:after{content:" ↓";color:var(--accent)}.data-table thead th[data-nosort]{cursor:default}.data-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background var(--t-fast)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-elevated)}.data-table tbody tr.selected{background:var(--accent-subtle)}.data-table td{padding:var(--sp-3) var(--sp-4);color:var(--text-primary);vertical-align:middle}.data-table td.t-mono{font-family:var(--font-mono)}.data-table td.t-num{text-align:right;font-family:var(--font-mono)}.data-table td.t-dim{color:var(--text-muted)}.data-table.is-loading tbody tr{opacity:.4;pointer-events:none}.table-empty{padding:var(--sp-7) var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.table-short{--table-short-max-h: 80vh;max-height:var(--table-short-max-h);overflow-y:auto;width:fit-content;max-width:100%;scrollbar-gutter:stable}.table-short .data-table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}.table-short .data-table thead th{position:sticky;top:0;z-index:1;padding:var(--sp-2) var(--sp-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-short .data-table td{padding:var(--sp-2) var(--sp-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-short .data-table tbody td{border-bottom:1px solid var(--border-subtle)}.table-short .data-table tbody tr:last-child td{border-bottom:none}.pinned-header{position:fixed;top:0;left:0;right:0;z-index:100;pointer-events:none;display:none;overflow:hidden}.pinned-header.is-visible{display:block}.pinned-header table{table-layout:fixed;min-width:1500px;border-collapse:collapse;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md)}.pinned-header th{padding:var(--sp-2) var(--sp-1);font-size:var(--text-xs);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-elevated);color:var(--text-primary);box-sizing:border-box}.data-table--expandable tbody tr{cursor:pointer}.expanded-row{background:var(--bg-elevated)}.expanded-row>td{padding:0}.expanded-content{padding:var(--sp-5);animation:table-expand-in var(--t-slow) ease}@keyframes table-expand-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.expandable-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-4)}.expandable-part{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.expandable-part--wide{grid-column:span 2}.expandable-part--full{grid-column:1 / -1}.expandable-part__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.expandable-part__title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.photo{aspect-ratio:4 / 3;border-radius:var(--r-sm);border:1px solid var(--border);overflow:hidden;background:var(--bg-elevated)}.photo img{width:100%;height:100%;object-fit:cover;display:block}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.info-item{display:flex;flex-direction:column;gap:2px}.info-item.full-width{grid-column:span 2}.info-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-secondary)}.info-value{font-size:var(--text-sm);color:var(--text-primary)}#toast-container{position:fixed;bottom:var(--sp-5);right:var(--sp-5);display:flex;flex-direction:column-reverse;gap:var(--sp-2);z-index:var(--z-toast);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);box-shadow:var(--shadow-toast);font-size:var(--text-sm);font-weight:500;pointer-events:auto;min-width:240px;max-width:380px;border:1px solid transparent;animation:toast-in var(--t-slow) cubic-bezier(.34,1.56,.64,1) forwards;transition:opacity var(--t-base),transform var(--t-base)}.toast.is-leaving{animation:toast-out var(--t-base) ease forwards}.toast--positive{background:var(--ok-subtle);border-color:var(--ok);color:var(--ok)}.toast--negative{background:var(--err-subtle);border-color:var(--err);color:var(--err)}.toast--neutral{background:var(--bg-elevated);border-color:var(--border);color:var(--text-secondary)}.toast--warn{background:var(--warn-subtle);border-color:var(--warn);color:var(--warn)}.toast--info{background:var(--info-subtle);border-color:var(--info);color:var(--info)}.toast__icon{font-size:16px;flex-shrink:0}.toast__msg{flex:1;color:var(--text-primary);line-height:var(--leading-tight)}.toast__close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:16px;padding:0;line-height:1;flex-shrink:0}.toast__close:hover{color:var(--text-primary)}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.pagination{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-3)}.pagination__list{display:flex;align-items:center;gap:var(--sp-1);list-style:none;margin:0;padding:0}.pagination__item{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-mono);cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.pagination__item:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.pagination__item.is-active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.pagination__item:disabled{opacity:.4;cursor:default}.pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;color:var(--text-muted)}.pagination__controls{display:flex;align-items:center;gap:var(--sp-3)}input.pagination__input{width:56px;text-align:center}.pagination__total{font-size:var(--text-sm);color:var(--text-secondary);font-family:var(--font-mono);white-space:nowrap}.pagination__size{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.pagination__size-label{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}select.pagination__size-select{width:auto}.toggle-switch{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;user-select:none;color:var(--text-primary);font-size:var(--text-sm);min-height:var(--touch-min)}.toggle-switch input[type=checkbox]{position:absolute;width:1px;height:1px;opacity:0;margin:0}.toggle-switch__track{flex-shrink:0;width:calc(var(--sp-5) + var(--sp-3));height:20px;display:inline-flex;align-items:center;padding:2px;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg-elevated);transition:background var(--t-fast),border-color var(--t-fast)}.toggle-switch__thumb{width:var(--sp-4);height:var(--sp-4);border-radius:var(--r-pill);background:var(--text-secondary);transform:translate(0);transition:transform var(--t-fast),background var(--t-fast)}.toggle-switch:hover input:not(:disabled)+.toggle-switch__track{border-color:var(--accent)}.toggle-switch input:checked+.toggle-switch__track{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-switch__track .toggle-switch__thumb{background:var(--text-inverse);transform:translate(calc(var(--sp-5) - var(--sp-2)))}.toggle-switch input:focus-visible+.toggle-switch__track{outline:2px solid var(--border-focus);outline-offset:2px}.toggle-switch:has(input:disabled){cursor:default;opacity:.45}.calendar-wrapper{position:relative;display:inline-block;width:100%}.calendar-input{cursor:pointer;caret-color:transparent;user-select:none;color:var(--text-primary)!important;background:var(--bg-elevated)!important}.calendar-input::-webkit-calendar-picker-indicator,.calendar-input::-webkit-inner-spin-button{display:none!important;-webkit-appearance:none!important;opacity:0!important;width:0!important;height:0!important;position:absolute!important;pointer-events:none!important}.calendar-input::-moz-calendar-picker-indicator{display:none!important}.calendar-input::-ms-clear,.calendar-input::-ms-reveal{display:none!important}.calendar-popup{position:fixed;z-index:var(--z-popup, 250);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-modal);padding:var(--sp-4);width:280px;animation:calendar-in var(--t-fast) ease forwards}.calendar-popup.closed{display:none}@keyframes calendar-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.calendar-nav:hover{background:var(--bg-elevated);color:var(--text-primary)}.calendar-month-year{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.calendar-year-btn{border:none;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.calendar-year-btn:hover{background:var(--accent-subtle);color:var(--accent)}.calendar-years{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-1)}.calendar-year-cell{display:flex;align-items:center;justify-content:center;height:40px;border:none;background:transparent;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.calendar-year-cell:hover{background:var(--bg-elevated)}.calendar-year-cell.selected{background:var(--accent);color:var(--text-inverse);font-weight:600}.calendar-year-cell.selected:hover{background:var(--accent-dim)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--sp-2)}.calendar-weekday{text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);padding:var(--sp-1) 0;text-transform:uppercase}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{display:flex;align-items:center;justify-content:center;height:32px;border:none;background:transparent;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.calendar-day:hover{background:var(--bg-elevated)}.calendar-day.other-month{color:var(--text-secondary)}.calendar-day.today{font-weight:700;color:var(--accent);border:1px solid var(--accent)}.calendar-day.selected{background:var(--accent);color:var(--text-inverse);font-weight:600}.calendar-day.selected:hover{background:var(--accent-dim)}.calendar-day:disabled{opacity:.3;cursor:default;pointer-events:none}.calendar-footer{display:flex;justify-content:space-between;margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.calendar-today-btn{border:none;background:transparent;color:var(--accent);font-size:var(--text-xs);font-weight:500;cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);transition:background var(--t-fast)}.calendar-today-btn:hover{background:var(--accent-subtle)}.calendar-clear-btn{border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.calendar-clear-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.carousel{position:relative;--carousel-aspect: 4 / 3;--carousel-nav-size: var(--touch-min)}.carousel__empty{padding:var(--sp-5);text-align:center;color:var(--text-secondary);font-size:var(--text-sm);border:1px dashed var(--border);border-radius:var(--r-md)}.carousel__viewport{position:relative;overflow:hidden;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);aspect-ratio:var(--carousel-aspect)}.carousel__track{display:flex;height:100%;transition:transform var(--t-slow) ease}.carousel__slide{flex:0 0 100%;min-width:0;height:100%;cursor:zoom-in}.carousel__slide img{width:100%;height:100%;object-fit:contain;display:block;user-select:none}.carousel__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;display:flex;align-items:center;justify-content:center;width:var(--carousel-nav-size);height:var(--carousel-nav-size);border-radius:var(--r-pill);background:var(--bg-overlay);color:var(--text-primary);border:1px solid var(--border);opacity:.85;transition:opacity var(--t-fast),background var(--t-fast)}.carousel__nav:hover{opacity:1;background:var(--bg-base)}.carousel__nav:disabled{opacity:.3;pointer-events:none}.carousel__nav--prev{left:var(--sp-3)}.carousel__nav--next{right:var(--sp-3)}.carousel__counter{position:absolute;bottom:var(--sp-3);right:var(--sp-3);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-mono)}.carousel__thumbs{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);padding-bottom:var(--sp-1);overflow-x:auto}.carousel__thumb{flex:0 0 auto;width:64px;height:64px;padding:0;border-radius:var(--r-sm);overflow:hidden;border:2px solid var(--border);background:var(--bg-elevated);opacity:.6;transition:opacity var(--t-fast),border-color var(--t-fast)}.carousel__thumb img{width:100%;height:100%;object-fit:cover;display:block}.carousel__thumb:hover{opacity:1}.carousel__thumb.is-active{opacity:1;border-color:var(--accent)}.carousel--inline{--carousel-nav-size: var(--sp-6)}.carousel--single .carousel__nav,.carousel--single .carousel__counter{display:none}.carousel-fullscreen{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;animation:carousel-fade-in var(--t-base) ease forwards}@keyframes carousel-fade-in{0%{opacity:0}to{opacity:1}}.carousel-fullscreen__stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.carousel-fullscreen__img{max-width:100%;max-height:100%;object-fit:contain;transition:transform var(--t-base) ease;user-select:none;cursor:zoom-in;touch-action:none}.carousel-fullscreen.is-zoomed .carousel-fullscreen__img{cursor:grab}.carousel-fullscreen.is-dragging .carousel-fullscreen__img{cursor:grabbing;transition:none}.carousel-fullscreen__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border-radius:var(--r-pill);background:var(--bg-overlay);color:var(--text-primary);border:1px solid var(--border);transition:background var(--t-fast),opacity var(--t-fast)}.carousel-fullscreen__nav:hover{background:var(--bg-base)}.carousel-fullscreen__nav:disabled{opacity:.3;pointer-events:none}.carousel-fullscreen__nav--prev{left:var(--sp-4)}.carousel-fullscreen__nav--next{right:var(--sp-4)}.carousel-fullscreen__toolbar{position:absolute;bottom:var(--sp-5);left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-pill);background:var(--bg-overlay);border:1px solid var(--border);box-shadow:var(--shadow-modal)}.carousel-fullscreen__toolbar button{display:flex;align-items:center;justify-content:center;min-width:var(--sp-6);height:var(--sp-6);padding:0 var(--sp-2);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);background:transparent;border:none;cursor:pointer;transition:background var(--t-fast)}.carousel-fullscreen__toolbar button:hover{background:var(--bg-base)}.carousel-fullscreen__zoom-label{min-width:var(--sp-7);text-align:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.carousel-fullscreen__counter{padding:0 var(--sp-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.carousel-fullscreen__close{color:var(--text-secondary)}.carousel-fullscreen__close:hover{color:var(--err)}.loading-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:var(--overlay-scrim)}.loading-card{display:flex;align-items:center;gap:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:var(--sp-4) var(--sp-5)}.spinner{width:20px;height:20px;flex-shrink:0;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spinner-spin .8s linear infinite}@keyframes spinner-spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;background:var(--overlay-scrim);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:modal-fade-in var(--t-base) ease forwards}.modal{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-modal);padding:var(--sp-6);width:min(90vw,560px);max-height:85vh;overflow-y:auto;animation:modal-in var(--t-slow) cubic-bezier(.34,1.2,.64,1) forwards}.modal--lg{width:min(90vw,800px)}.modal--sm{width:min(90vw,380px)}.modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.modal__title{font-size:var(--text-md);font-weight:600}.modal__close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:20px;line-height:1;padding:0}.modal__close:hover{color:var(--text-secondary)}.modal__footer{display:flex;gap:var(--sp-3);justify-content:flex-end;margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-pill);max-width:100%}.segmented__btn{border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-ui);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast)}.segmented__btn:hover{color:var(--text-primary)}.segmented__btn.is-active{background:var(--bg-overlay);color:var(--text-primary)}.segmented__btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-subtle)}.tabs{display:flex;align-items:flex-end;gap:var(--sp-1);overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--border-subtle)}.tabs__tab{display:inline-flex;align-items:center;gap:var(--sp-2);flex-shrink:0;padding:var(--sp-2) var(--sp-3);border:none;border-bottom:2px solid transparent;border-radius:var(--r-sm) var(--r-sm) 0 0;background:none;color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.4;white-space:nowrap;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.tabs__tab:hover{color:var(--text-primary);background:var(--bg-elevated)}.tabs__tab.is-active{color:var(--text-primary);font-weight:600;border-bottom-color:var(--accent)}.tabs__tab:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.tabs__hint{color:var(--text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.checkbox{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;user-select:none;color:var(--text-primary);font-size:var(--text-sm);position:relative}.checkbox input[type=checkbox]{position:absolute;width:1px;height:1px;opacity:0;margin:0}.checkbox__frame{flex-shrink:0;width:16px;height:16px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-elevated);display:inline-flex;align-items:center;justify-content:center;transition:background var(--t-fast),border-color var(--t-fast)}.checkbox:hover .checkbox__frame{border-color:var(--border-focus)}.checkbox input:checked+.checkbox__frame,.checkbox input:indeterminate+.checkbox__frame{background:var(--accent);border-color:var(--accent)}.checkbox input:checked+.checkbox__frame:after{content:"";width:4px;height:8px;border:solid var(--text-inverse);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px)}.checkbox input:indeterminate+.checkbox__frame:after{content:"";width:8px;height:2px;background:var(--text-inverse)}.checkbox input:focus-visible+.checkbox__frame{box-shadow:0 0 0 2px var(--accent-subtle)}.checkbox input:disabled+.checkbox__frame{opacity:.5}.checkbox input:disabled~.checkbox__text{color:var(--text-muted)}.chart{position:relative;width:100%;height:240px}.chart canvas{max-width:100%}.chart--line{height:260px}.chart--bar{height:280px}.chart--pie{height:240px}.chart--lg{height:420px}.chart--heatmap{height:auto}.chart-heatmap{display:grid;grid-template-columns:34px repeat(24,minmax(0,1fr));gap:3px;align-items:center}.chart-heatmap__day{font-size:var(--text-xs);color:var(--text-secondary);text-align:right;padding-right:var(--sp-1);white-space:nowrap}.chart-heatmap__cell{height:18px;border-radius:3px;background:var(--bg-elevated);transition:transform var(--t-fast)}.chart-heatmap__cell[data-value]{background:var(--chart-1)}.chart-heatmap__cell:hover{transform:scale(1.15);outline:1px solid var(--border-focus)}.chart-heatmap__hours{display:grid;grid-template-columns:34px repeat(12,minmax(0,1fr));gap:3px;margin-top:var(--sp-2)}.chart-heatmap__hour{grid-column:span 2;font-size:var(--text-xs);color:var(--text-muted);text-align:left}.chart-heatmap__scale{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--text-xs);color:var(--text-muted)}.chart-heatmap__scale-bar{width:120px;height:8px;border-radius:var(--r-pill);background:linear-gradient(to right,var(--bg-elevated),var(--chart-1));border:1px solid var(--border-subtle)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-3)}.chart-legend__item{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--text-secondary)}.chart-legend__dot{width:10px;height:10px;border-radius:50%;background:var(--bg-elevated);flex-shrink:0}.chart-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6) 0;color:var(--text-secondary);font-size:var(--text-sm)}.chart-empty,.chart-error{display:flex;align-items:center;justify-content:center;min-height:160px;padding:var(--sp-4);text-align:center;font-size:var(--text-sm)}.chart-empty{color:var(--text-muted)}.chart-error{color:var(--err)}.chart-modal{position:fixed;inset:0;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--overlay-scrim)}.chart-modal.show{display:flex}.chart-modal__content{width:min(920px,100%);max-height:90vh;overflow:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);padding:var(--sp-5)}.chart-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.clients-avatar{position:relative;width:64px;height:64px;flex-shrink:0;border-radius:var(--r-pill);overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.clients-avatar__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.clients-avatar__img.is-broken{display:none}.clients-avatar__initials{font-size:var(--text-md);font-weight:600;color:var(--text-secondary);line-height:1;user-select:none}.clients-avatar--initials .clients-avatar__initials{color:var(--text-primary)}.clients-avatar--clickable{cursor:zoom-in;transition:border-color var(--t-fast)}.clients-avatar--clickable:hover{border-color:var(--accent)}.clients-avatar--sm{width:28px;height:28px}.clients-avatar--sm .clients-avatar__initials{font-size:var(--text-xs)}.clients-avatar--lg{width:80px;height:80px}.clients-avatar--lg .clients-avatar__initials{font-size:var(--text-lg)}.clients-manager{display:flex;align-items:center;gap:var(--sp-2);min-width:0;width:100%;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--r-sm)}.clients-manager:hover .clients-manager__name{color:var(--accent)}.clients-manager:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.clients-manager__name{color:var(--text-primary);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clients-manager__id{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-sm)}.manager-card,.client-card{display:flex;flex-direction:column;gap:var(--sp-4)}.manager-card__top,.client-card__top{display:flex;align-items:center;gap:var(--sp-4)}.manager-card__body,.client-card__body{display:flex;flex-direction:column;gap:2px;min-width:0}.manager-card__name,.client-card__name{font-size:var(--text-md);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manager-card__login,.client-card__sub{font-size:var(--text-xs);color:var(--text-secondary)}.manager-card__rows,.client-card__rows{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.manager-card__row,.client-card__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3)}.manager-card__label,.client-card__label{font-size:var(--text-xs);color:var(--text-secondary)}.manager-card__value,.client-card__value{margin:0;font-size:var(--text-sm);color:var(--text-primary);text-align:right}.client-card__value{overflow-wrap:anywhere}.client-card__note{margin:0;font-size:var(--text-xs);color:var(--text-secondary)}.role-badge{display:inline-flex;align-items:center;padding:2px var(--sp-2);border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;background:var(--bg-elevated);color:var(--text-secondary)}.role-admin{background:var(--err-subtle);color:var(--err)}.role-sales{background:var(--ok-subtle);color:var(--ok)}
