:root{--v2-ink: #222836;--v2-ink-2: #4e5668;--v2-ink-3: #9aa3b4;--text-primary: #222836;--text-secondary: #4e5668;--text-muted: #9aa3b4;--text-disabled: #9aa3b4;--text-disabled-soft: #c5cad3;--bg-app: #f8f9fa;--surface: #ffffff;--nav-bg: #ffffff;--surface-subtle: #f8f9fa;--surface-hover: #f0f2f5;--surface-sunken: #eef0f3;--surface-press: #dde1e9;--surface-disabled: #f8f9fa;--track: #e8eaee;--border: #dde1e9;--border-soft: #eef0f3;--border-strong: #c9ced6;--border-disabled: #eef0f3;--border-control: #c9ced6;--primary-color: #0096b2;--accent-strong: #0096b2;--accent-ink: #00829b;--accent-press: #00647a;--accent-disabled: #99ddeb;--accent-soft: #e6f7fa;--accent-mid: #7ec4d4;--ring-accent: #0096b240;--ring-field: #0096b240;--selected-nav: #f0f2f5;--selected-nav-ink: #222836;--selected-tab: #ffffff;--selected-tab-ink: #222836;--selected-tab-meta: #4e5668;--danger: #b42318;--danger-hover: #912018;--danger-press: #7a1b14;--danger-disabled: #e3a9a3;--danger-border: #f04438;--danger-soft: #fee4e2;--ring-danger: #f0443840;--shadow-card: 0 1px 2px #0f17290d, 0 6px 20px #0f17290a;--shadow-floating: 0 8px 24px #0f172914;--shadow-tab: 0 1px 3px #0f17291a;--focus: 0 0 6px var(--ring-accent);--ease-out: cubic-bezier(.2, 0, 0, 1);--sidebar-w: 248px;--c-bg: var(--bg-app);--c-surface: var(--surface);--c-border: var(--border);--c-text: var(--text-primary);--c-muted: var(--text-secondary);--c-primary: var(--accent-strong);--c-primary-d: var(--accent-ink);--c-primary-soft: var(--accent-soft);--c-success: #046c4e;--c-success-soft: #e6f4ec;--c-danger: var(--danger);--c-danger-soft: var(--danger-soft);--c-warning: #9a5a11;--c-warning-soft: #fbf0df;--radius: 16px;--radius-sm: 12px;--shadow: var(--shadow-card);--shadow-lg: var(--shadow-floating);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}:root[data-accent=teal]{--selected-nav: #0096b224;--selected-nav-ink: #00647a;--selected-tab: #0096b2;--selected-tab-ink: #ffffff;--selected-tab-meta: #ffffff}:root[data-accent=blue]{--primary-color: #3b82f6;--accent-strong: #3b82f6;--accent-ink: #236de6;--accent-press: #0a57d6;--accent-disabled: #b1cdfb;--accent-soft: #ebf3fe;--accent-mid: #95bcfa;--ring-accent: #3b82f640;--ring-field: #3b82f640;--selected-nav: #3b82f624;--selected-nav-ink: #0a57d6;--selected-tab: #3b82f6;--selected-tab-ink: #ffffff;--selected-tab-meta: #ffffff}:root[data-accent=green]{--primary-color: #16a34a;--accent-strong: #16a34a;--accent-ink: #117f3a;--accent-press: #0c5b29;--accent-disabled: #a2dab7;--accent-soft: #e8f6ed;--accent-mid: #81cd9d;--ring-accent: #16a34a40;--ring-field: #16a34a40;--selected-nav: #16a34a24;--selected-nav-ink: #0c5b29;--selected-tab: #16a34a;--selected-tab-ink: #ffffff;--selected-tab-meta: #ffffff}:root[data-accent=purple]{--primary-color: #7a5af8;--accent-strong: #7a5af8;--accent-ink: #5b33f7;--accent-press: #3b0cf5;--accent-disabled: #cabdfc;--accent-soft: #f2effe;--accent-mid: #b7a6fb;--ring-accent: #7a5af840;--ring-field: #7a5af840;--selected-nav: #7a5af824;--selected-nav-ink: #3b0cf5;--selected-tab: #7a5af8;--selected-tab-ink: #ffffff;--selected-tab-meta: #ffffff}:root[data-accent=orange]{--primary-color: #ee8311;--accent-strong: #ee8311;--accent-ink: #b3620d;--accent-press: #a2590c;--accent-disabled: #f8cda0;--accent-soft: #fdf3e7;--accent-mid: #f6bc7e;--ring-accent: #ee831140;--ring-field: #ee831140;--selected-nav: #ee831124;--selected-nav-ink: #a2590c;--selected-tab: #ee8311;--selected-tab-ink: #ffffff;--selected-tab-meta: #ffffff}:root[data-bg=classic]{--bg-app: #f4f5f8}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--bg-app);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}:focus-visible{outline:none}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}*::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--nav-bg);color:var(--text-secondary);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:998;padding:0 14px 18px;transition:width .18s ease}.sidebar__brand{height:60px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 10px;position:relative}.sidebar__brand .logo{width:32px;height:32px;border-radius:8px;object-fit:contain;flex-shrink:0}.brand-text{font-size:18px;font-weight:600;color:#303d4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__nav{flex:1;overflow-y:auto;margin-top:20px;padding-bottom:8px}.sidebar__group{padding:0 10px 8px;font-size:12px;font-weight:500;line-height:15px;color:var(--text-muted)}.sidebar__group:not(:first-child){margin-top:20px}.nav-item{display:flex;align-items:center;gap:12px;height:42px;padding:0 12px;border-radius:12px;color:var(--text-secondary);font-size:14px;font-weight:500;line-height:17px;margin-top:2px;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.nav-item span:not(.ic){overflow:hidden;text-overflow:ellipsis}.nav-item:hover{background:var(--surface-subtle)}.nav-item.active{background:var(--selected-nav);color:var(--selected-nav-ink);font-weight:600}.nav-item:focus-visible{box-shadow:inset 0 0 0 1px var(--primary-color),0 0 6px var(--ring-accent)}.nav-item .ic{width:18px;height:18px;display:grid;place-items:center;flex-shrink:0}.main{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-width:0;transition:margin-left .18s ease}.topbar{height:60px;background:var(--bg-app);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;position:sticky;top:0;z-index:999}.topbar__title{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.5px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__right{display:flex;align-items:center;gap:12px}.content{padding:16px 24px 24px;flex:1}.company-switch,.ctx-chip{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;height:40px;padding:0 13px;font-weight:600;max-width:320px;color:var(--text-primary)}.company-switch select{border:none;background:transparent;font-weight:600;cursor:pointer;outline:none}.ctx-chip .ctx-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:700}.profile-wrapper{position:relative;display:flex;align-items:center}.profile-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--accent-soft);color:var(--accent-ink);font-weight:700;font-size:14px;transition:border-color .12s ease}.profile-btn:hover{border-color:var(--border-strong)}.card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-card)}.card__head{padding:14px 16px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}.card__title{font-size:14px;font-weight:600;color:var(--text-primary)}.card__body{padding:16px}.card__body--flush{padding:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:18px}.stat{background:var(--surface);border-radius:16px;padding:16px;box-shadow:var(--shadow-card)}.stat__label{color:var(--text-secondary);font-size:12px;font-weight:500;line-height:15px}.stat__value{font-size:20px;font-weight:600;line-height:24px;letter-spacing:-.5px;margin-top:6px;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat__icon{float:right;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:17px;background:var(--accent-soft);color:var(--primary-color)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 15px;border-radius:12px;border:1px solid var(--border);font-size:14px;font-weight:500;line-height:1;white-space:nowrap;background:var(--surface);color:var(--text-primary);transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.btn:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.btn:active{background:var(--surface-sunken);border-color:var(--border-strong)}.btn:focus-visible{box-shadow:var(--focus)}.btn:disabled,.btn[disabled]{pointer-events:none;background:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled)}.btn--ghost{background:var(--surface)}.btn--primary{background:var(--accent-strong);border-color:transparent;color:#fff}.btn--primary:hover{background:var(--accent-ink);border-color:transparent}.btn--primary:active{background:var(--accent-press)}.btn--primary:disabled,.btn--primary[disabled]{background:var(--accent-disabled);border-color:transparent;color:#fff}.btn--text{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn--text:hover{background:var(--surface-hover);border-color:transparent;color:var(--text-primary)}.btn--text:active{background:var(--surface-press)}.btn--text:disabled{background:transparent;border-color:transparent;color:var(--text-disabled-soft)}.btn--danger{background:var(--danger);border-color:transparent;color:#fff}.btn--danger:hover{background:var(--danger-hover);border-color:transparent}.btn--danger:active{background:var(--danger-press)}.btn--danger:focus-visible{box-shadow:0 0 6px var(--ring-danger)}.btn--danger:disabled{background:var(--danger-disabled);border-color:transparent;color:#fff}.btn--sm{height:32px;padding:0 11px;gap:6px;font-size:13px;border-radius:10px}.btn--lg{height:48px;padding:0 23px;font-size:16px;border-radius:16px}.btn--icon{width:40px;padding:0}.btn--sm.btn--icon{width:32px}.icon-btn{width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:var(--text-muted);font-size:15px;line-height:1;display:inline-grid;place-items:center;transition:background-color .12s ease,color .12s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--text-secondary)}.icon-btn:focus-visible{box-shadow:var(--focus)}.table-wrap{overflow:auto;scrollbar-gutter:stable}table.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;padding:9px 16px 8px;height:33px;font-size:12px;font-weight:500;line-height:15px;color:var(--text-secondary);border-bottom:1px solid var(--border-soft);background:var(--surface);white-space:nowrap;position:sticky;top:0;z-index:2}.tbl td{padding:0 16px;height:46px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-soft)}.tbl td b,.tbl td strong{color:var(--text-primary);font-weight:600}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background-color .12s ease}.tbl tbody tr:hover{background:var(--surface-subtle)}.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl td.num{font-size:14px;font-weight:600;color:var(--text-primary)}.tbl .meta{display:block;font-size:12px;line-height:15px;color:var(--text-muted);margin-top:3px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;line-height:15px;white-space:nowrap}.badge--gray,.badge--neutral{background:#f0f2f5;color:#3f4c5d}.badge--green,.badge--success{background:#e6f4ec;color:#046c4e}.badge--orange,.badge--warning{background:#fbf0df;color:#9a5a11}.badge--red,.badge--danger{background:#fee4e2;color:#b42318}.badge--blue,.badge--info{background:#e6f7fa;color:#00647a}.badge--alert{background:#fff3e8;color:#b93815}.badge--bare{background:transparent!important;padding:0}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 7px;border:1px solid #dde1e9;border-radius:6px;background:#f8f9fa;color:#4e5668;font-size:12px;font-weight:600;line-height:15px;white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:#9aa3b4;flex-shrink:0}.chip--warning{border-color:#fedf89;background:#fffaeb;color:#b54708}.chip--warning:before{background:#f79009}.chip--success{border-color:#abefc6;background:#ecfdf3;color:#067647}.chip--success:before{background:#12b76a}.chip--danger{border-color:#fecdca;background:#fef3f2;color:#b42318}.chip--danger:before{background:#f04438}.chip--info:before{background:#0096b2}.count{display:inline-flex;align-items:center;padding:3px 9px;border-radius:13px;background:var(--surface-sunken);color:var(--text-secondary);font-size:12px;font-weight:600;line-height:15px;font-variant-numeric:tabular-nums}.field{margin-bottom:15px;display:flex;flex-direction:column;gap:6px}.field label{display:block;font-weight:500;font-size:12px;line-height:1.2;color:var(--text-secondary)}.field .hint{font-size:12px;line-height:1.35;color:var(--text-muted)}.input,.select,textarea.input{width:100%;height:40px;padding:0 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-primary);font-size:14px;outline:none;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease}textarea.input{height:auto;min-height:80px;padding:10px 13px;line-height:1.45}.input::placeholder{color:var(--text-muted)}.input:hover,.select:hover{border-color:var(--border-strong)}.input:focus,.select:focus{border-color:var(--primary-color);box-shadow:0 0 6px var(--ring-field);background:var(--surface)}.input:disabled,.select:disabled{background:var(--surface-disabled);border-color:var(--border-disabled);color:var(--text-disabled)}.input--error,.input--error:hover{border-color:var(--danger-border)}.input--error:focus{box-shadow:0 0 6px var(--ring-danger)}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239AA3B4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.input--filled,.select--filled{background-color:var(--surface-subtle);border-color:transparent}.input--filled:hover,.select--filled:hover{background-color:var(--surface-hover);border-color:transparent}.input--filled:focus,.select--filled:focus{background-color:var(--surface);border-color:var(--primary-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:5px;border:1.2px solid var(--border-control);background:#fff;display:inline-grid;place-items:center;cursor:pointer;flex-shrink:0;vertical-align:middle;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease}input[type=checkbox]:hover{border-color:var(--primary-color)}input[type=checkbox]:checked{background:var(--primary-color);border-color:var(--primary-color)}input[type=checkbox]:checked:after{content:"";width:9px;height:5px;border:2.5px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}input[type=checkbox]:focus-visible{box-shadow:var(--focus)}input[type=checkbox]:disabled{background:var(--surface-disabled);border-color:var(--border-disabled)}.seg{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:12px;background:var(--track);max-width:100%;overflow-x:auto}.seg__tab{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:10px;border:0;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;line-height:16px;white-space:nowrap;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.seg__tab:hover{color:var(--text-primary);background:#ffffff59}.seg__tab.active{background:var(--selected-tab);color:var(--selected-tab-ink);font-weight:600;box-shadow:var(--shadow-tab)}.seg__tab:focus-visible{box-shadow:inset 0 0 0 1px var(--primary-color),0 0 6px var(--ring-accent)}.seg__tab:disabled{color:var(--text-muted);pointer-events:none}.seg__count{font-size:12px;font-weight:600;line-height:15px;color:var(--text-muted);font-variant-numeric:tabular-nums}.seg__tab.active .seg__count{color:var(--selected-tab-meta)}.utabs{display:flex;gap:24px;border-bottom:1px solid var(--border);overflow-x:auto}.utabs__tab{height:38px;padding:0;border:0;background:transparent;position:relative;display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;font-weight:500;white-space:nowrap;transition:color .15s ease}.utabs__tab:hover{color:var(--text-primary)}.utabs__tab.active{color:var(--accent-ink);font-weight:600}.utabs__tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary-color)}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.table-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px 14px}.search{position:relative;flex:1;min-width:220px}.search input{padding-left:37px;background:var(--surface-subtle);border-color:transparent}.search input:hover{background:var(--surface-hover);border-color:transparent}.search input:focus{background:var(--surface);border-color:var(--primary-color)}.search .ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-muted);line-height:0}.pagination,.pager{display:flex;gap:6px;align-items:center;justify-content:space-between;padding:10px 16px;min-height:52px;font-size:13px;color:var(--text-secondary)}.pager__btn{min-width:32px;height:32px;padding:0 6px;border-radius:10px;border:0;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;display:inline-grid;place-items:center;transition:background-color .12s ease,color .12s ease}.pager__btn:hover{background:var(--surface-hover);color:var(--text-primary)}.pager__btn.active{background:var(--accent-strong);color:#fff}.pager__btn:disabled{opacity:.45;pointer-events:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:1000;padding:16px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-floating);width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal__head{padding:18px 20px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.modal__title{font-size:18px;font-weight:600;line-height:22px;color:var(--text-primary)}.modal__body{padding:8px 20px 16px}.modal__foot{padding:12px 20px 18px;display:flex;justify-content:flex-end;gap:8px}.modal__x{border:none;background:transparent;font-size:20px;color:var(--text-muted);width:32px;height:32px;border-radius:8px;transition:background-color .12s ease,color .12s ease}.modal__x:hover{background:var(--surface-hover);color:var(--text-primary)}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:9px;flex-wrap:wrap}.page-head h1{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.5px;color:var(--text-primary);display:flex;align-items:center;gap:9px}.page-head p{color:var(--text-secondary);font-size:13px;line-height:1.4;margin-top:4px}.empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:56px 16px;color:var(--text-muted);font-size:13px}.empty .ic{font-size:28px;opacity:.7;margin-bottom:4px;color:var(--text-muted)}.empty__title{font-size:14px;font-weight:500;color:var(--text-primary)}.link-btn{border:0;background:none;color:var(--primary-color);font-size:13px;font-weight:500;padding:0}.link-btn:hover{text-decoration:underline}.muted{color:var(--text-muted)}.right{text-align:right}.nowrap{white-space:nowrap}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.flex{display:flex;align-items:center;gap:10px}.spacer{flex:1}.spin{width:32px;height:32px;border:3px solid var(--border-soft);border-top-color:var(--primary-color);border-radius:50%;animation:sp .7s linear infinite;margin:40px auto}@keyframes sp{to{transform:rotate(360deg)}}.skeleton{display:block;height:10px;border-radius:4px;background:var(--border-soft)}.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:1200;display:flex;flex-direction:column;gap:10px}.toast{background:var(--v2-ink);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow-floating);min-width:220px;font-size:13px;animation:slideup .2s var(--ease-out)}.toast--error{background:var(--danger)}.toast--success{background:#046c4e}@keyframes slideup{0%{transform:translateY(10px);opacity:0}}.login-shell{min-height:100vh;display:grid;place-items:center;background:var(--bg-app);padding:20px}.login-card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-card);width:100%;max-width:410px;padding:36px}.login-card h1{font-size:20px;font-weight:700;letter-spacing:-.5px;text-align:center}.login-card .sub{text-align:center;color:var(--text-secondary);margin:6px 0 26px}.login-logo{width:54px;height:54px;border-radius:14px;background:var(--accent-soft);display:grid;place-items:center;font-size:26px;margin:0 auto 16px}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 18px}.role-opt{border:1px solid var(--border);border-radius:12px;padding:11px;text-align:center;font-weight:600;font-size:13px}.role-opt.sel{border-color:var(--primary-color);background:var(--accent-soft);color:var(--accent-ink)}.dev-note{font-size:12px;color:var(--text-muted);text-align:center;margin-top:16px;line-height:1.5}.app-shell--collapsed{--sidebar-w: 72px}.app-shell--collapsed .sidebar{padding:0 16px 18px}.app-shell--collapsed .brand-text,.app-shell--collapsed .nav-item span:not(.ic){display:none}.app-shell--collapsed .sidebar__group{font-size:0;padding:0;height:1px;width:24px;margin:16px auto 12px;background:var(--border)}.app-shell--collapsed .sidebar__group:first-child{display:none}.app-shell--collapsed .sidebar__brand{padding:0;justify-content:center}.app-shell--collapsed .nav-item{justify-content:center;padding:0;width:40px;height:40px;margin:4px auto 0}.app-shell--collapsed .collapse-btn{position:absolute;inset:10px 0 auto;margin:0 auto;opacity:0}.app-shell--collapsed .sidebar__brand:hover .collapse-btn,.app-shell--collapsed .collapse-btn:focus-visible{opacity:1}.collapse-btn{margin-left:auto;width:32px;height:32px;flex-shrink:0;border:1px solid var(--surface-hover);border-radius:10px;background:transparent;color:var(--text-muted);display:grid;place-items:center;line-height:0;transition:background-color .15s ease,color .15s ease,opacity .15s ease}.collapse-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.collapse-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--primary-color),0 0 6px var(--ring-accent)}.app-shell--collapsed .collapse-btn{background:var(--surface-hover)}@media(max-width:860px){.collapse-btn{display:none}.app-shell--collapsed{--sidebar-w: 248px}.app-shell--collapsed .brand-text,.app-shell--collapsed .nav-item span:not(.ic){display:unset}.app-shell--collapsed .sidebar__group{font-size:12px;height:auto;width:auto;padding:0 10px 8px;margin:20px 0 0;background:none}.app-shell--collapsed .nav-item{justify-content:flex-start;padding:0 12px;width:auto;height:42px;margin:2px 0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-property:background-color,border-color,color!important}}.is-spinning{animation:sp .7s linear infinite}.icon-btn--danger:hover{background:var(--danger-soft);color:var(--danger)}.icon-btn--danger:focus-visible{box-shadow:0 0 6px var(--ring-danger)}:root{--status-neutral: #9aa3b4;--status-success: #12b76a;--status-warning: #f79009;--status-danger: #f04438;--status-info: #0096b2;--success: #046c4e;--success-soft: #e6f4ec;--warning: #9a5a11;--warning-soft: #fbf0df}.tbl td.primary,.cell-main{font-size:14px;font-weight:500;line-height:17px;color:var(--text-primary)}.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px}.icon-btn:disabled{color:var(--text-disabled-soft);pointer-events:none}.tbl td.empty{display:table-cell;text-align:center;height:auto}@media(max-width:860px){:root{--tabbar-h: 58px}.sidebar{transform:translate(-100%);transition:transform .22s ease;width:268px;box-shadow:none}.sidebar--open{transform:translate(0);box-shadow:var(--shadow-lg)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172973;z-index:19;animation:fadein .15s}@keyframes fadein{0%{opacity:0}}.main{margin-left:0}.topbar{height:54px;padding:0 12px;gap:8px;padding-top:env(safe-area-inset-top,0);height:calc(54px + env(safe-area-inset-top,0))}.topbar__title{font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.topbar__right{gap:8px;flex-shrink:0}.ctx-chip{max-width:120px;padding:5px 9px;font-size:12.5px}.ctx-chip .badge{display:none}.profile-btn{width:36px;height:36px}.content{padding:14px 12px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0) + 14px)}.page-head{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:14px}.page-head h1{font-size:18px}.page-head .toolbar{width:100%}.toolbar{gap:8px}.toolbar .btn{flex:1 1 auto;justify-content:center;min-height:40px}.search{flex:1 1 100%}.toolbar--tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-12px;margin-right:-12px;padding:0 12px 2px}.toolbar--tabs::-webkit-scrollbar{display:none}.toolbar--tabs .btn{flex:0 0 auto;white-space:nowrap}.search input{min-width:0;width:100%}.card__head{padding:13px 14px;flex-wrap:wrap}.card__body{padding:14px}.stats{grid-template-columns:1fr;gap:12px;margin-bottom:16px}.stat__value{font-size:22px}.form-row{grid-template-columns:1fr;gap:0}.form-row--dates{grid-template-columns:1fr 1fr;gap:0 12px}.form-row--dates>.field:nth-child(n+3){grid-column:1 / -1}.input,.select,input,select,textarea{font-size:16px}.input,.select{padding:11px 12px}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0;animation:sheetup .2s ease}@keyframes sheetup{0%{transform:translateY(24px)}}.modal__head,.modal__foot{padding:14px 16px}.modal__body{padding:16px}.modal__foot{padding-bottom:calc(14px + env(safe-area-inset-bottom,0))}.modal__foot .btn{flex:1;justify-content:center;min-height:42px}.pagination{justify-content:center;padding:12px}.toast-wrap{left:12px;right:12px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0) + 12px)}.toast{min-width:0}.login-card{padding:26px 20px}}.tabbar{display:none}@media(max-width:860px){.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:18;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--c-surface);border-top:1px solid var(--c-border);padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -1px 3px #141e320f}.tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--tabbar-h);border:none;background:none;color:var(--c-muted);font-size:10.5px;font-weight:600;line-height:1.1;padding:0 2px;text-align:center}.tabbar__item .ic{font-size:18px;line-height:1}.tabbar__item.active{color:var(--c-primary)}.tabbar__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.drawer-btn{display:none}@media(max-width:860px){.drawer-btn{display:inline-grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);font-size:16px;line-height:1}}@media(max-width:720px){.tbl:not(.tbl--wide) thead{display:none}.tbl:not(.tbl--wide),.tbl:not(.tbl--wide) tbody,.tbl:not(.tbl--wide) tr,.tbl:not(.tbl--wide) td{display:block;width:100%}.tbl:not(.tbl--wide) tr{border:1px solid var(--c-border);border-radius:var(--radius-sm);margin-bottom:8px;padding:9px 12px;background:var(--c-surface)}.tbl:not(.tbl--wide) tbody tr:hover{background:var(--c-surface)}.tbl:not(.tbl--wide) td{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:3px 0;text-align:left}.tbl:not(.tbl--wide) td:before{content:attr(data-label);flex:0 0 38%;color:var(--c-muted);font-size:11px;font-weight:600}.tbl:not(.tbl--wide) tr td:first-child{display:block;font-size:15px;font-weight:700;padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--c-border)}.tbl:not(.tbl--wide) tr td:first-child:before{content:none}.tbl:not(.tbl--wide) td:has(button),.tbl:not(.tbl--wide) td:has(.btn){justify-content:flex-end;gap:8px;padding-top:8px;margin-top:4px;border-top:1px solid var(--c-border)}.tbl:not(.tbl--wide) td:has(button):before,.tbl:not(.tbl--wide) td:has(.btn):before{content:none}.tbl:not(.tbl--wide) tr td:first-child:has(button){display:block;border-top:none;margin-top:0;padding-top:3px}.tbl:not(.tbl--wide) td{min-width:0;overflow-wrap:anywhere}.tbl:not(.tbl--wide) td[data-label=""]:before{content:none}.tbl:not(.tbl--wide) td[data-label=""]{justify-content:flex-end}.tbl:not(.tbl--wide) .num{text-align:right}.tbl:not(.tbl--wide) td[data-sm-hide]{display:none}.table-wrap{-webkit-overflow-scrolling:touch}.tbl--wide th,.tbl--wide td{padding:9px 10px;font-size:12.5px}.tbl--wide th:first-child,.tbl--wide td:first-child{position:sticky;left:0;background:var(--c-surface);z-index:1}.tbl--wide th:first-child{background:var(--surface-subtle)}}@media(max-width:720px){.tbl:not(.tbl--wide) tr:has(>td[colspan]){border:0;padding:0;background:transparent}.tbl:not(.tbl--wide) tr>td[colspan]{display:block;font-size:inherit;font-weight:inherit;border:0;margin:0;padding:0}.tbl:not(.tbl--wide) tr>td[colspan]:before{content:none}}
