@property --vt-r{syntax:"<length-percentage>";inherits:true;initial-value:0%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--vt-x:50%;--vt-y:0%;--vt-r:150%;--bg:#f3f5fa;--card:#fff;--line:#e6e9f2;--line2:#eef1f7;--txt:#141a2e;--txt2:#5b6577;--txt3:#939cb0;--ok:#16b877;--warn:#f59e0b;--err:#ef4444;--danger:var(--err);--purple:#8b5cf6;--cyan:#06b6d4;--pc1:#4f46e5;--pc2:var(--lightningcss-light,#7c3aed)var(--lightningcss-dark,#9333ea);--pc3:#c026d3;--pc1-rgb:99 102 241;--pc2-rgb:124 58 237;--pri:var(--lightningcss-light,#4f46e5)var(--lightningcss-dark,#7c8cff);--pri-2:var(--lightningcss-light,#8b5cf6)var(--lightningcss-dark,#a78bfa);--pri-3:#22d3ee;--pri-soft:var(--lightningcss-light,#eef0ff)var(--lightningcss-dark,#1c2444);--accent:#22d3ee;--accent-rgb:34 211 238;--grad:linear-gradient(135deg, var(--pc1) 0%, var(--pc2) 48%, var(--pc3) 100%);--grad-soft:linear-gradient(135deg, var(--pc1), var(--accent));--shadow:0 1px 2px #141a2e0a, 0 8px 24px #1c2a4c0f;--shadow-md:0 2px 4px #141a2e0d, 0 14px 34px rgb(var(--pc1-rgb) / .1);--shadow-lg:0 24px 60px #1c194b33;--glass:var(--lightningcss-light,#ffffffbd)var(--lightningcss-dark,#151b2bb8);--radius:16px;--nav-w:208px;--nav-w-collapsed:68px;--top-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--pad-card:20px;--pad-stat:18px;--pad-cell:12px 14px;--pad-th:13px 14px;--gap-blk:20px;--gap-card:16px;--head-mb:22px;--row-fs:13px}html[data-density=compact]{--radius:13px;--pad-card:14px;--pad-stat:11px;--pad-cell:7px 10px;--pad-th:9px 10px;--gap-blk:13px;--gap-card:12px;--head-mb:14px;--row-fs:12.5px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e1a;--card:#151b2b;--line:#28324a;--line2:#1d2436;--txt:#eef2fb;--txt2:#a7b2c8;--txt3:#6f7a92;--shadow:0 2px 10px #0006;--shadow-lg:0 24px 60px #0000008c}html[data-color=sea]{--pc1:#0284c7;--pc2:var(--lightningcss-light,#2563eb)var(--lightningcss-dark,#3b82f6);--pc3:#06b6d4;--pc1-rgb:37 99 235;--pc2-rgb:14 165 233;--pri:var(--lightningcss-light,#1d4ed8)var(--lightningcss-dark,#60a5fa);--pri-2:var(--lightningcss-light,#0ea5e9)var(--lightningcss-dark,#7dd3fc);--pri-soft:var(--lightningcss-light,#e4eefc)var(--lightningcss-dark,#14263f);--accent:#38bdf8;--accent-rgb:56 189 248}html[data-color=sky]{--pc1:#38bdf8;--pc2:var(--lightningcss-light,#0ea5e9)var(--lightningcss-dark,#38bdf8);--pc3:#67e8f9;--pc1-rgb:56 189 248;--pc2-rgb:14 165 233;--pri:var(--lightningcss-light,#0284c7)var(--lightningcss-dark,#7dd3fc);--pri-2:var(--lightningcss-light,#38bdf8)var(--lightningcss-dark,#bae6fd);--pri-soft:var(--lightningcss-light,#e6f4fd)var(--lightningcss-dark,#12263a);--accent:#22d3ee;--accent-rgb:34 211 238}html[data-color=aurora]{--pc1:#3ed5eb;--pc2:var(--lightningcss-light,#1dd0eb)var(--lightningcss-dark,#9333ea);--pc3:#1dd0eb;--pc1-rgb:62 213 235;--pc2-rgb:29 208 235;--pri:var(--lightningcss-light,#333)var(--lightningcss-dark,#7c8cff);--pri-2:var(--lightningcss-light,#8b5cf6)var(--lightningcss-dark,#a78bfa);--pri-soft:var(--lightningcss-light,#eef0ff)var(--lightningcss-dark,#1c2444);--accent:#22d3ee;--accent-rgb:34 211 238}html[data-color=forest]{--pc1:#059669;--pc2:var(--lightningcss-light,#10b981)var(--lightningcss-dark,#34d399);--pc3:#14b8a6;--pc1-rgb:5 150 105;--pc2-rgb:16 185 129;--pri:var(--lightningcss-light,#059669)var(--lightningcss-dark,#34d399);--pri-2:var(--lightningcss-light,#10b981)var(--lightningcss-dark,#6ee7b7);--pri-soft:var(--lightningcss-light,#e3f8ef)var(--lightningcss-dark,#12291f);--accent:#2dd4bf;--accent-rgb:45 212 191}html[data-color=amber]{--pc1:#f59e0b;--pc2:var(--lightningcss-light,#f97316)var(--lightningcss-dark,#fb923c);--pc3:#ef4444;--pc1-rgb:245 158 11;--pc2-rgb:249 115 22;--pri:var(--lightningcss-light,#d97706)var(--lightningcss-dark,#fbbf24);--pri-2:var(--lightningcss-light,#f97316)var(--lightningcss-dark,#fdba74);--pri-soft:var(--lightningcss-light,#fdf1e3)var(--lightningcss-dark,#2b2012);--accent:#fbbf24;--accent-rgb:251 191 36}html[data-color=rose]{--pc1:#e11d48;--pc2:var(--lightningcss-light,#ec4899)var(--lightningcss-dark,#f472b6);--pc3:#d946ef;--pc1-rgb:225 29 72;--pc2-rgb:236 72 153;--pri:var(--lightningcss-light,#e11d48)var(--lightningcss-dark,#fb7185);--pri-2:var(--lightningcss-light,#ec4899)var(--lightningcss-dark,#f9a8d4);--pri-soft:var(--lightningcss-light,#fce8ef)var(--lightningcss-dark,#311420);--accent:#fb7185;--accent-rgb:251 113 133}html[data-color=slate]{--pc1:var(--lightningcss-light,#334155)var(--lightningcss-dark,#64748b);--pc2:var(--lightningcss-light,#475569)var(--lightningcss-dark,#94a3b8);--pc3:var(--lightningcss-light,#1e293b)var(--lightningcss-dark,#475569);--pc1-rgb:71 85 105;--pc2-rgb:100 116 139;--pri:var(--lightningcss-light,#334155)var(--lightningcss-dark,#a9b7cd);--pri-2:var(--lightningcss-light,#64748b)var(--lightningcss-dark,#cbd5e1);--pri-soft:var(--lightningcss-light,#e9edf3)var(--lightningcss-dark,#1b2331);--accent:#94a3b8;--accent-rgb:148 163 184}::view-transition-old(root){mix-blend-mode:normal;animation-duration:.5s}::view-transition-new(root){mix-blend-mode:normal;animation-duration:.5s}html.vt-theme::view-transition-old(root){animation:none}html.vt-theme::view-transition-new(root){animation:.6s cubic-bezier(.2,.7,.3,1) vt-reveal}@keyframes vt-reveal{0%{clip-path:circle(0% at var(--vt-x) var(--vt-y))}to{clip-path:circle(var(--vt-r) at var(--vt-x) var(--vt-y))}}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.55}body:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(52% 44% at 6% 0%, rgb(var(--pc1-rgb) / .18), transparent 68%), radial-gradient(46% 40% at 98% 4%, rgb(var(--pc2-rgb) / .13), transparent 66%), radial-gradient(60% 50% at 55% 104%, rgb(var(--accent-rgb) / .14), transparent 70%);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.032;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}[data-theme=dark] body:after{opacity:.06}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit;font-size:13px}input,select,textarea{color:var(--txt);background:var(--card);border:1px solid var(--line);border-radius:10px;outline:none;max-width:100%;padding:8px 10px;font-family:inherit;font-size:13px;transition:border-color .18s,box-shadow .18s}input:focus,select:focus,textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3.5px color-mix(in srgb, var(--pri) 14%, transparent)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}textarea{resize:vertical;min-height:74px}::selection{background:color-mix(in srgb, var(--pri) 22%, transparent)}html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--pri) 38%, transparent) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--pri-2), var(--pri));background-clip:padding-box;border:2px solid #0000;border-radius:9px}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.ico{vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px;display:inline-block}[data-theme=dark] .ico{stroke-width:1.75px}.page{gap:var(--gap-blk);flex-direction:column;min-width:0;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:2px;display:flex}.page-title{letter-spacing:.2px;align-items:center;gap:10px;font-size:21px;font-weight:800;display:flex}.page-title .ico{width:22px;height:22px;color:var(--pri)}.page-desc{color:var(--txt2);margin-top:3px;font-size:12.5px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--pad-card);min-width:0}.card.flush{padding:0;overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-title{align-items:center;gap:7px;font-size:14.5px;font-weight:700;display:flex}.card-title .ico{width:16px;height:16px;color:var(--pri)}.card-sub{color:var(--txt3);font-size:12px}.btn{border:1px solid var(--line);background:var(--card);height:36px;color:var(--txt2);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;transition:all .18s;display:inline-flex}.btn .ico{stroke-width:1.8px;width:15px;height:15px}.btn:hover{color:var(--pri);border-color:color-mix(in srgb, var(--pri) 40%, var(--line));transform:translateY(-1px)}.btn.primary{background:var(--grad);color:#fff;box-shadow:0 8px 20px rgb(var(--pc1-rgb) / .28);border-color:#0000}.btn.primary:hover{filter:brightness(1.04);color:#fff}.btn.ghost{background:0 0}.btn.danger{color:var(--err);border-color:color-mix(in srgb, var(--err) 36%, var(--line))}.btn.danger:hover{background:color-mix(in srgb, var(--err) 8%, transparent);color:var(--err)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.sm{border-radius:8px;height:30px;padding:0 10px;font-size:12px}.btn.sm .ico{width:13px;height:13px}.icon-btn{width:38px;height:38px;color:var(--txt2);border-radius:11px;place-items:center;transition:all .2s;display:grid;position:relative}.icon-btn .ico{width:19px;height:19px}.icon-btn:hover,.icon-btn.on{background:var(--pri-soft);color:var(--pri)}.icon-btn .dot{background:var(--err);border:2px solid var(--card);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:9px}.linkbtn{color:var(--pri);align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.linkbtn:hover{text-decoration:underline}.linkbtn .ico{width:13px;height:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.form-grid.cols-1{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 2}@media (max-width:700px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}}.f-item{flex-direction:column;gap:6px;min-width:0;display:flex}.f-item>label{color:var(--txt2);align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:flex}.f-item.required>label:after{content:"*";color:var(--err)}.f-item input:not([type=checkbox]):not([type=radio]),.f-item select,.f-item textarea{width:100%}.f-hint{color:var(--txt3);font-size:11.5px}.f-err{color:var(--err);font-size:11.5px}.f-item.inline{flex-direction:row;align-items:center;gap:8px}.tag{white-space:nowrap;background:color-mix(in srgb, var(--txt3) 12%, transparent);height:23px;color:var(--txt2);border-radius:999px;align-items:center;gap:4px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.tag.blue{color:#2563eb;background:#3b82f624}.tag.cyan{color:#0891b2;background:#06b6d426}.tag.green{color:#059669;background:#10b98126}.tag.amber{color:#b45309;background:#f59e0b29}.tag.orange{color:#c2410c;background:#f9731626}.tag.red{color:#dc2626;background:#ef444424}.tag.purple{color:#7c3aed;background:#8b5cf626}.tag.gray{background:color-mix(in srgb, var(--txt3) 12%, transparent);color:var(--txt2)}[data-theme=dark] .tag.blue{color:#93c5fd}[data-theme=dark] .tag.cyan{color:#67e8f9}[data-theme=dark] .tag.green{color:#6ee7b7}[data-theme=dark] .tag.amber{color:#fcd34d}[data-theme=dark] .tag.orange{color:#fdba74}[data-theme=dark] .tag.red{color:#fca5a5}[data-theme=dark] .tag.purple{color:#c4b5fd}.table-wrap{width:100%;overflow:auto}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--row-fs);white-space:nowrap}.data-table th{padding:var(--pad-th);text-align:left;color:var(--txt3);background:var(--line2);white-space:nowrap;z-index:1;font-size:12px;font-weight:700;position:sticky;top:0}.data-table th:first-child{border-radius:10px 0 0 10px}.data-table th:last-child{border-radius:0 10px 10px 0}.data-table td{padding:var(--pad-cell);border-bottom:1px solid var(--line2);color:var(--txt2);vertical-align:middle}.data-table td.strong{color:var(--txt);font-weight:600}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:color-mix(in srgb, var(--pri) 4%, transparent)}.data-table tbody tr:last-child td{border-bottom:none}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .actions{white-space:nowrap;align-items:center;gap:8px;display:flex}.data-table .ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.table-empty{text-align:center;color:var(--txt3);flex-direction:column;align-items:center;gap:8px;padding:44px 20px;font-size:13px;display:flex}.table-empty .ico{stroke-width:1.2px;opacity:.6;width:38px;height:38px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-bar input,.filter-bar select{border-radius:9px;height:34px;padding:0 10px;font-size:12.5px}.filter-bar input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0;padding:0}.filter-bar .search{border:1px solid var(--line);background:var(--card);border-radius:9px;align-items:center;gap:6px;min-width:210px;height:34px;padding:0 11px;display:flex}.filter-bar .search input{height:auto;box-shadow:none;background:0 0;border:none;flex:1;padding:0}.filter-bar .search .ico{width:15px;height:15px;color:var(--txt3)}.filter-bar .spacer{flex:1}.pager{color:var(--txt3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px 2px;font-size:12.5px;display:flex}.pager-btns{align-items:center;gap:4px;display:flex}.pg-btn{border:1px solid var(--line);background:var(--card);min-width:30px;height:30px;color:var(--txt2);border-radius:8px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;display:inline-flex}.pg-btn .ico{width:15px;height:15px}.pg-btn:hover{color:var(--pri);border-color:var(--pri)}.pg-btn.active{background:var(--grad);color:#fff;border-color:#0000;font-weight:700}.pg-btn:disabled{opacity:.45;cursor:not-allowed}.tabs{background:var(--line2);scrollbar-width:none;border-radius:12px;align-items:center;gap:4px;width:-moz-fit-content;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--txt2);white-space:nowrap;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:all .18s;display:inline-flex}.tab .ico{width:15px;height:15px}.tab:hover{color:var(--pri)}.tab.active{background:var(--card);color:var(--pri);box-shadow:var(--shadow)}.tab .badge{background:color-mix(in srgb, var(--pri) 14%, transparent);min-width:18px;height:18px;color:var(--pri);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;display:inline-flex}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90;background:#0c11206b;justify-content:flex-end;animation:.2s fade-in;display:flex;position:fixed;inset:0}.overlay.center{justify-content:center;align-items:center;padding:18px}@keyframes fade-in{0%{opacity:0}}.drawer{background:var(--bg);border-left:1px solid var(--line);width:min(680px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.28s cubic-bezier(.2,.7,.3,1) slide-in;display:flex}@keyframes slide-in{0%{opacity:.6;transform:translate(40px)}}.drawer-head{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(180%);backdrop-filter:blur(18px)saturate(180%);border-bottom:1px solid var(--line);z-index:2;align-items:center;gap:10px;padding:16px 20px;display:flex;position:sticky;top:0}.drawer-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:800;overflow:hidden}.drawer-body{flex-direction:column;flex:1;gap:14px;padding:18px 20px 26px;display:flex;overflow:auto}.drawer-body>*,.modal-body>*{flex-shrink:0}.drawer-foot{padding:12px 20px calc(12px + var(--safe-b));border-top:1px solid var(--line);background:var(--card);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.modal{background:var(--card);border-radius:var(--radius);width:min(560px,100%);max-height:88vh;box-shadow:var(--shadow-lg);border:1px solid var(--line);flex-direction:column;animation:.22s cubic-bezier(.2,.7,.3,1) pop-in;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}.modal-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:15px 18px;display:flex}.modal-title{flex:1;font-size:15px;font-weight:800}.modal-body{flex-direction:column;gap:12px;padding:16px 18px;display:flex;overflow:auto}.modal-foot{padding:12px 18px calc(12px + var(--safe-b));border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;display:grid}.detail-grid .span-2{grid-column:span 2}.dl-item{flex-direction:column;gap:3px;min-width:0;display:flex}.dl-item .k{color:var(--txt3);font-size:11.5px}.dl-item .v{color:var(--txt);word-break:break-all;font-size:13px;font-weight:600}.dl-item .v.amount{font-variant-numeric:tabular-nums;background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:800}@media (max-width:560px){.detail-grid{grid-template-columns:1fr}.detail-grid .span-2{grid-column:span 1}}.sec-title{color:var(--txt);align-items:center;gap:7px;margin-top:4px;font-size:13px;font-weight:800;display:flex}.sec-title .ico{width:15px;height:15px;color:var(--pri)}.sec-title:after{content:"";background:var(--line);flex:1;height:1px}.timeline{flex-direction:column;gap:0;display:flex}.tl-item{grid-template-columns:22px 1fr;gap:10px;padding-bottom:16px;display:grid;position:relative}.tl-item:before{content:"";background:var(--line);width:1px;position:absolute;top:20px;bottom:0;left:10px}.tl-item:last-child{padding-bottom:0}.tl-item:last-child:before{display:none}.tl-dot{background:var(--pri-soft);width:20px;height:20px;color:var(--pri);border-radius:50%;place-items:center;margin-top:1px;display:grid}.tl-dot .ico{width:11px;height:11px}.tl-body{color:var(--txt2);min-width:0;font-size:12.5px}.tl-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px;display:flex}.tl-name{color:var(--txt);font-weight:700}.tl-time{color:var(--txt3);font-size:11.5px}.tl-content{white-space:pre-wrap;word-break:break-word}.stat-grid{gap:var(--gap-card);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad-stat);box-shadow:var(--shadow);min-width:0;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--grad);opacity:.85;height:3px;position:absolute;inset:0 0 auto}.stat-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.stat-label{color:var(--txt3);font-size:12px;font-weight:600}.stat-ico{background:var(--pri-soft);width:30px;height:30px;color:var(--pri);border-radius:9px;place-items:center;display:grid}.stat-ico .ico{width:16px;height:16px}.stat-value{letter-spacing:.2px;font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;line-height:1.2}.stat-value .unit{color:var(--txt3);margin-left:3px;font-size:12px;font-weight:600}.stat-foot{color:var(--txt3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;display:flex}.trend{align-items:center;gap:3px;font-weight:700;display:inline-flex}.trend .ico{width:12px;height:12px}.trend.up{color:var(--ok)}.trend.down{color:var(--err)}.empty{color:var(--txt3);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 16px;font-size:12.5px;display:flex}.empty .ico{stroke-width:1.2px;opacity:.55;width:42px;height:42px}.skeleton{background:linear-gradient(90deg, var(--line2) 25%, var(--line) 37%, var(--line2) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-host{top:calc(var(--top-h) + 14px);z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;right:16px}.toast{background:var(--card);border:1px solid var(--line);min-width:210px;max-width:340px;box-shadow:var(--shadow-lg);border-radius:11px;align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;font-weight:600;animation:.24s cubic-bezier(.2,.7,.3,1) toast-in;display:flex}.toast .ico{width:16px;height:16px}.toast.success{border-color:color-mix(in srgb, var(--ok) 40%, var(--line));color:var(--ok)}.toast.error{border-color:color-mix(in srgb, var(--err) 40%, var(--line));color:var(--err)}.toast.info{color:var(--pri)}.toast.warning{border-color:color-mix(in srgb, var(--warn) 40%, var(--line));color:var(--warn)}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}}@media (max-width:767px){.toast-host{align-items:center;width:calc(100% - 32px);left:50%;right:auto;transform:translate(-50%)}.toast{max-width:100%}}.muted{color:var(--txt3)}.small{font-size:12px}.nowrap{white-space:nowrap}.mono{font-variant-numeric:tabular-nums;font-family:SF Mono,JetBrains Mono,Consolas,monospace}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.divider{background:var(--line);height:1px;margin:2px 0}.amount{font-variant-numeric:tabular-nums;font-weight:700}.amount.pos{color:var(--ok)}.amount.neg{color:var(--err)}.chart-box{width:100%;min-height:220px}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-legend{color:var(--txt2);flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px;font-size:11.5px;display:flex}.chart-legend i{border-radius:3px;width:8px;height:8px;margin-right:5px;display:inline-block}.chart-tip{pointer-events:none;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-md);z-index:5;white-space:nowrap;border-radius:9px;padding:6px 9px;font-size:11.5px;position:absolute}.kanban{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:6px;display:grid;overflow-x:auto}.kb-col{background:var(--line2);border-radius:13px;flex-direction:column;gap:8px;min-height:220px;padding:10px;display:flex}.kb-head{color:var(--txt2);justify-content:space-between;align-items:center;padding:2px 4px 6px;font-size:12.5px;font-weight:700;display:flex}.kb-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:grab;border-radius:11px;padding:10px 11px;transition:all .16s}.kb-card:hover{border-color:color-mix(in srgb, var(--pri) 45%, var(--line));transform:translateY(-1px)}.kb-card.dragging{opacity:.45}.kb-card.over{border-color:var(--pri);box-shadow:0 0 0 3px color-mix(in srgb, var(--pri) 14%, transparent)}.kb-title{margin-bottom:4px;font-size:12.5px;font-weight:700}.kb-meta{color:var(--txt3);justify-content:space-between;align-items:center;gap:6px;font-size:11.5px;display:flex}@media (max-width:767px){:root{--pad-card:14px;--pad-stat:14px;--gap-blk:14px;--gap-card:10px}.page-title{font-size:18px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-value{font-size:20px}.drawer{width:100%}.overlay{align-items:flex-end}.modal{max-height:92vh}}.topbar{height:var(--top-h);z-index:60;background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);align-items:center;gap:10px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:inset 0 1px #ffffff80}.hamburger{width:38px;height:38px;color:var(--txt2);border-radius:10px;justify-content:center;align-items:center;display:none}.hamburger .ico{stroke-width:1.8px;width:22px;height:22px}.brand{white-space:nowrap;letter-spacing:.2px;flex:none;align-items:center;gap:9px;font-size:17px;font-weight:800;display:flex}.brand-logo{background:var(--grad);color:#fff;width:32px;height:32px;box-shadow:0 6px 16px rgb(var(--pc2-rgb) / .38);border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.brand-logo .ico{stroke-width:1.6px;width:17px;height:17px}.brand-logo:after{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff80 50%,#0000 70%);animation:5s ease-in-out infinite sheen;position:absolute;inset:0;transform:translate(-120%)}@keyframes sheen{0%,72%{transform:translate(-120%)}to{transform:translate(120%)}}.brand-name{background:var(--grad);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.modnav{scrollbar-width:none;background:color-mix(in srgb, var(--card) 55%, transparent);border:1px solid color-mix(in srgb, var(--line) 66%, transparent);border-radius:14px;align-items:center;gap:3px;max-width:46vw;padding:4px;display:flex;overflow-x:auto}.modnav::-webkit-scrollbar{display:none}.mod-item{color:var(--txt2);white-space:nowrap;border-radius:10px;flex:none;align-items:center;gap:6px;padding:7px 13px;font-size:12.5px;font-weight:600;transition:color .2s,background .2s,box-shadow .26s,transform .2s;display:inline-flex}.mod-item .ico{width:16px;height:16px}.mod-item:hover{color:var(--pri);background:var(--pri-soft);transform:translateY(-1px)}.mod-item.active{background:var(--grad);color:#fff;box-shadow:0 8px 20px rgb(var(--pc1-rgb) / .34);font-weight:700}[data-theme=dark] .modnav{background:#ffffff0d;border-color:#ffffff14}.topbar-search{flex:1;align-items:center;max-width:300px;margin-left:4px;display:flex;position:relative}.topbar-search input{background:color-mix(in srgb, var(--card) 70%, transparent);border-radius:18px;flex:1;height:36px;padding:0 14px 0 34px}.topbar-search .ico{width:15px;height:15px;color:var(--txt3);position:absolute;left:12px}.topbar-right{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.user-chip{cursor:pointer;border:1px solid #0000;border-radius:20px;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:all .2s;display:flex;position:relative}.user-chip:hover{background:var(--card);border-color:var(--line);box-shadow:var(--shadow)}.avatar{background:var(--grad);color:#fff;width:32px;height:32px;box-shadow:0 4px 12px rgb(var(--pc2-rgb) / .3);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.avatar.sm{width:25px;height:25px;font-size:10.5px}.avatar img{object-fit:cover;width:100%;height:100%}.user-meta{flex-direction:column;line-height:1.2;display:flex}.user-meta b{font-size:12.5px}.user-meta span{color:var(--txt3);font-size:10.5px}.caret{color:var(--txt3);display:flex}.caret .ico{stroke-width:2px;width:13px;height:13px}.user-menu,.notify-menu,.search-panel{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(180%);border:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:70;border-radius:13px;min-width:170px;padding:6px;animation:.18s pop-in;position:absolute;top:calc(100% + 8px);right:0}.user-menu button{text-align:left;width:100%;color:var(--txt2);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.user-menu button:hover{background:var(--pri-soft);color:var(--pri)}.user-menu button .ico{width:15px;height:15px}.user-menu .sep{background:var(--line);height:1px;margin:4px 2px}.notify-menu{width:310px;max-height:380px;padding:8px;overflow:auto}.notify-item{cursor:pointer;border-radius:9px;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.notify-item:hover{background:var(--pri-soft)}.notify-item b{color:var(--txt);font-size:12.5px;font-weight:700}.notify-item span{color:var(--txt3);font-size:11.5px}.notify-item.unread b:after{content:"";background:var(--err);vertical-align:2px;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.search-panel{width:min(420px,82vw);max-height:60vh;padding:8px;top:calc(100% + 6px);left:0;right:auto;overflow:auto}.search-group{padding:4px 2px 6px}.search-group>b{color:var(--txt3);padding:2px 8px;font-size:11px;display:block}.search-row{cursor:pointer;border-radius:8px;flex-direction:column;gap:1px;padding:7px 9px;display:flex}.search-row:hover{background:var(--pri-soft)}.search-row b{color:var(--txt);font-size:12.5px}.search-row span{color:var(--txt3);font-size:11px}.app-body{padding-top:var(--top-h);min-height:100vh;display:flex}.sidebar{top:var(--top-h);width:var(--nav-w);background:color-mix(in srgb, var(--card) 72%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--line);z-index:50;flex-direction:column;transition:width .24s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;bottom:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--nav-w-collapsed)}.side-module{color:var(--txt);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;align-items:center;gap:7px;padding:14px 14px 8px;font-size:13.5px;font-weight:800;display:flex}.side-module .ico{width:16px;height:16px}.side-nav{flex-direction:column;flex:1;gap:2px;padding:2px 9px 12px;display:flex;overflow-y:auto}.nav-item{color:var(--txt2);white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:9px 11px;font-size:13px;font-weight:500;transition:all .16s;display:flex;position:relative}.nav-item .ico{flex:none;width:18px;height:18px}.nav-item:hover{background:var(--pri-soft);color:var(--pri)}.nav-item.active{background:var(--pri-soft);color:var(--pri);font-weight:700}.nav-item.active:before{content:"";background:var(--grad);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-9px}.nav-item .badge{background:color-mix(in srgb, var(--err) 12%, transparent);min-width:18px;height:18px;color:var(--err);border-radius:9px;justify-content:center;align-items:center;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-flex}.sidebar.collapsed .nav-item span,.sidebar.collapsed .side-module span,.sidebar.collapsed .side-foot-text{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar.collapsed .nav-item .badge{margin:0;position:absolute;top:2px;right:4px}.sidebar.collapsed .side-module{justify-content:center;padding:12px 0 6px}.side-foot{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px;display:flex}.side-foot-text{color:var(--txt3);white-space:nowrap;flex:1;font-size:11px}.main{min-width:0;margin-left:var(--nav-w);padding:18px 20px calc(26px + var(--safe-b));flex:1;transition:margin-left .24s cubic-bezier(.2,.7,.3,1)}.sidebar-collapsed .main{margin-left:var(--nav-w-collapsed)}.mobile-mask,.bottom-nav{display:none}@media (max-width:1100px){.topbar-search{max-width:200px}.modnav{max-width:38vw}}@media (max-width:1023px){.hamburger{display:flex}.modnav{display:none}.sidebar{background:var(--card);width:236px;box-shadow:var(--shadow-lg);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar.collapsed{width:236px}.sidebar.collapsed .nav-item span,.sidebar.collapsed .side-module span,.sidebar.collapsed .side-foot-text{display:inline}.sidebar.collapsed .nav-item{justify-content:flex-start;padding:9px 11px}.sidebar.collapsed .nav-item .badge{margin-left:auto;position:static}.main,.sidebar-collapsed .main{margin-left:0}.mobile-mask{inset:var(--top-h) 0 0 0;z-index:45;background:#0a0e1a66;display:block;position:fixed}.topbar-search,.brand-name{display:none}}@media (max-width:767px){.topbar{gap:6px;padding:0 10px}.user-meta{display:none}.user-chip{padding:3px}.notify-menu{top:calc(var(--top-h) + 6px);width:auto;max-height:60vh;position:fixed;left:10px;right:10px}.main{padding:13px 12px calc(78px + var(--safe-b))}.bottom-nav{z-index:55;background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border-top:1px solid var(--line);padding:5px 4px calc(5px + var(--safe-b));display:flex;position:fixed;bottom:0;left:0;right:0}.bn-item{color:var(--txt3);border-radius:9px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:5px 0;font-size:10.5px;font-weight:600;display:flex}.bn-item .ico{width:20px;height:20px}.bn-item.active{color:var(--pri)}.bn-item.active .ico{stroke-width:2.1px}}.login-page{place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{background:var(--card);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:16px;padding:28px 26px;display:flex}.login-brand{align-items:center;gap:11px;font-size:20px;font-weight:800;display:flex}.login-sub{color:var(--txt2);font-size:12.5px;line-height:1.6}.login-users{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow:auto}.login-user{border:1px solid var(--line);text-align:left;border-radius:11px;align-items:center;gap:10px;width:100%;padding:9px 11px;transition:all .16s;display:flex}.login-user:hover{border-color:var(--pri);background:var(--pri-soft)}.login-user .meta{flex:1;min-width:0}.login-user b{font-size:13px;display:block}.login-user span{color:var(--txt3);font-size:11.5px}.login-foot{color:var(--txt3);text-align:center;font-size:11.5px;line-height:1.6}
