:root{--brand:#7257e8;--brand-hover:#6146d7;--brand-50:#f6f3ff;--brand-100:#f0edff;--brand-200:#e2dbff;--brand-300:#c7bbfa;--brand-500:#7257e8;--brand-600:#6146d7;--brand-700:#4f39b4;--brand-ring:#7257e82e;--brand-shadow:#7257e826;--foreground:#20222b;--foreground-soft:#464a58;--muted-foreground:#9295a2;--inverse-foreground:#fff;--background:#f8f8fb;--card:#fff;--muted:#f7f7fa;--border:#edecf1;--border-strong:#e2e1ea;--input:#eeedf2;--sidebar:#fcfcfd;--sidebar-hover:#f4f3f8;--sidebar-active:var(--brand-100);--sidebar-active-foreground:var(--brand-700);--success:#22a786;--warning:#d98b32;--danger:#cb6a6a;--danger-strong:#c0392b;--info:#4d83e5;--purple:#7257e8;--tint-green-bg:#eaf7f2;--tint-green-fg:#1d8b70;--tint-orange-bg:#fff5e9;--tint-orange-fg:#cb8333;--tint-blue-bg:#edf3ff;--tint-blue-fg:#5182d8;--tint-purple-bg:#f1edff;--tint-purple-fg:#6a4fd8;--tint-red-bg:#fff0f0;--tint-red-fg:#cb6a6a;--tint-gray-bg:#f2f2f5;--tint-gray-fg:#8b8e99;--card-tint-warning-bg:#fffdf1;--card-tint-warning-border:#f4e6c0;--card-tint-danger-bg:#fff6f5;--card-tint-danger-border:#f6dcd8;--card-tint-info-bg:#f7fbff;--card-tint-info-border:#d9e8fb;--radius-sm:4px;--radius-md:7px;--radius-lg:10px;--radius-xl:13px;--radius-full:999px;--shadow-card:0 2px 6px #28273c06;--shadow-btn:0 3px 7px var(--brand-shadow);--shadow-pop:0 12px 35px #20202b1f;--shadow-modal:0 20px 60px #20202b36;--control-h:34px;--control-h-lg:48px;--nav-item-h:38px;--th-h:33px;--td-h:53px;--sidebar-w:220px;--topbar-h:58px;--page-max-w:1500px;--drawer-w-sm:460px;--drawer-w-md:560px;--drawer-w-lg:760px;--drawer-w-xl:1240px;--z-sidebar:20;--z-topbar:30;--z-popover:40;--z-drawer:50;--z-modal:60;--z-modal-stack:80;--z-popover-portal:85;--z-toast:90;--font-ui:"Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-num:"Manrope", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-scale:1;--focus-ring:3px solid var(--brand-ring)}:root[data-brand=blue]{--brand:#2f6fed;--brand-hover:#285ec9;--brand-50:#f6f9fe;--brand-100:#e9f0fd;--brand-200:#dae5fc;--brand-300:#b4cbf9;--brand-500:#2f6fed;--brand-600:#285ec9;--brand-700:#1f4a9f;--brand-ring:#2f6fed2e;--brand-shadow:#2f6fed26}:root[data-brand=teal]{--brand:#0d8578;--brand-hover:#0b7166;--brand-50:#f4faf9;--brand-100:#e6f2f1;--brand-200:#d3e9e7;--brand-300:#a8d3ce;--brand-500:#0d8578;--brand-600:#0b7166;--brand-700:#095950;--brand-ring:#0d85782e;--brand-shadow:#0d857826}:root[data-brand=green]{--brand:#2f8547;--brand-hover:#28713c;--brand-50:#f6faf7;--brand-100:#e9f2ec;--brand-200:#dae9de;--brand-300:#b4d3bd;--brand-500:#2f8547;--brand-600:#28713c;--brand-700:#1f5930;--brand-ring:#2f85472e;--brand-shadow:#2f854726}:root[data-brand=orange]{--brand:#b45f16;--brand-hover:#995113;--brand-50:#fcf8f5;--brand-100:#f7eee7;--brand-200:#f2e2d5;--brand-300:#e4c5ab;--brand-500:#b45f16;--brand-600:#995113;--brand-700:#79400f;--brand-ring:#b45f162e;--brand-shadow:#b45f1626}:root[data-brand=rose]{--brand:#c94a42;--brand-hover:#ab3f38;--brand-50:#fdf7f6;--brand-100:#f9eceb;--brand-200:#f5dedd;--brand-300:#ecbebb;--brand-500:#c94a42;--brand-600:#ab3f38;--brand-700:#87322c;--brand-ring:#c94a422e;--brand-shadow:#c94a4226}.brand-swatch.violet{background:#7257e8}.brand-swatch.blue{background:#2f6fed}.brand-swatch.teal{background:#0d8578}.brand-swatch.green{background:#2f8547}.brand-swatch.orange{background:#b45f16}.brand-swatch.rose{background:#c94a42}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{font-size:calc(14px * var(--font-scale,1))}
*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--background);color:var(--foreground);font-family:var(--font-ui);font-size:calc(14px * var(--font-scale,1));-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}h1,h2,h3,h4{margin:0;font-weight:600}p{margin:0}table{border-collapse:collapse;width:100%}.num,code{font-family:var(--font-num);font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#dcdbe4 padding-box content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:#c9c8d4 padding-box content-box}::-webkit-scrollbar-track{background:0 0}.row{align-items:center;gap:calc(8px * var(--font-scale,1));display:flex}.row-between{justify-content:space-between;align-items:center;gap:calc(8px * var(--font-scale,1));display:flex}.col{gap:calc(8px * var(--font-scale,1));flex-direction:column;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.min-w-0{min-width:0}.muted{color:var(--muted-foreground)}.strong{font-weight:600}.text-sm{font-size:calc(12px * var(--font-scale,1))}.text-lg{font-size:calc(16px * var(--font-scale,1))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hidden{display:none!important}:focus-visible{outline:var(--focus-ring);outline-offset:1px}
.app-shell{min-height:100vh;display:flex}.shell-loading{min-height:100vh;padding:calc(16px * var(--font-scale,1));background:var(--background);place-items:center;display:grid}.sidebar{width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid var(--border);z-index:var(--z-sidebar);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{align-items:center;gap:calc(9px * var(--font-scale,1));height:var(--topbar-h);padding:0 calc(16px * var(--font-scale,1));border-bottom:1px solid var(--border);flex:none;display:flex}.brand-mark{width:calc(28px * var(--font-scale,1));height:calc(28px * var(--font-scale,1));border-radius:var(--radius-md);background:linear-gradient(135deg, var(--brand), var(--brand-700));color:#fff;font-weight:700;font-size:calc(13px * var(--font-scale,1));flex:none;place-items:center;display:grid}.brand-name{font-weight:600;font-size:calc(15px * var(--font-scale,1));letter-spacing:.2px}.sidebar-nav{padding:calc(10px * var(--font-scale,1)) calc(10px * var(--font-scale,1)) calc(14px * var(--font-scale,1));flex:1;overflow-y:auto}.nav-group+.nav-group{margin-top:calc(14px * var(--font-scale,1))}.nav-label{font-size:calc(11px * var(--font-scale,1));color:var(--muted-foreground);letter-spacing:.6px;padding:calc(6px * var(--font-scale,1)) calc(8px * var(--font-scale,1));text-transform:uppercase}.nav-label.nav-label-row{align-items:center;gap:calc(2px * var(--font-scale,1));border-radius:var(--radius-sm);padding:0;display:flex}.nav-label-toggle{align-items:center;gap:calc(6px * var(--font-scale,1));min-width:0;padding:calc(6px * var(--font-scale,1)) calc(8px * var(--font-scale,1));border-radius:var(--radius-sm);color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;transition:background .15s,color .15s;display:flex}.nav-label-toggle:hover{color:var(--foreground);background:var(--sidebar-hover)}.nav-label-row.active .nav-label-toggle{color:var(--brand)}.nav-label-arrow{opacity:.7;flex:none;transition:transform .16s}.nav-label-row.expanded .nav-label-arrow{transform:rotate(90deg)}.nav-label-dash{width:calc(24px * var(--font-scale,1));height:calc(24px * var(--font-scale,1));border-radius:var(--radius-sm);color:var(--muted-foreground);opacity:.75;flex:none;justify-content:center;align-items:center;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.nav-label-dash:hover{opacity:1;color:var(--brand);background:var(--sidebar-hover)}.nav-frequent{margin-top:calc(2px * var(--font-scale,1));padding-left:calc(6px * var(--font-scale,1));padding-right:calc(6px * var(--font-scale,1))}.nav-frequent-grid{gap:calc(5px * var(--font-scale,1));grid-template-columns:repeat(2,1fr);display:grid}.nav-frequent-tag{justify-content:flex-start;align-items:center;gap:calc(4px * var(--font-scale,1));padding:calc(4px * var(--font-scale,1)) calc(8px * var(--font-scale,1));font-size:calc(11.5px * var(--font-scale,1));color:var(--foreground-soft);border:1px solid var(--border-weak);border-radius:var(--radius-md);background:0 0;min-width:0;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.nav-frequent-tag:hover{background:var(--sidebar-hover);color:var(--foreground);border-color:var(--border-weak)}.nav-frequent-tag.active{background:var(--sidebar-active);color:var(--sidebar-active-foreground);border-color:var(--border-weak);font-weight:600}.nav-item{align-items:center;gap:calc(9px * var(--font-scale,1));height:var(--nav-item-h);padding:0 calc(9px * var(--font-scale,1));border-radius:var(--radius-md);color:var(--foreground-soft);font-size:calc(13.5px * var(--font-scale,1));transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--sidebar-hover);color:var(--foreground)}.nav-item.active{background:var(--sidebar-active);color:var(--sidebar-active-foreground);font-weight:600}.nav-item svg{width:calc(16px * var(--font-scale,1));height:calc(16px * var(--font-scale,1));flex:none}.nav-item.child{padding-left:calc(24px * var(--font-scale,1))}.nav-count{min-width:calc(20px * var(--font-scale,1));height:calc(18px * var(--font-scale,1));padding:0 calc(6px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--brand-100);color:var(--brand-700);font-size:calc(11px * var(--font-scale,1));font-family:var(--font-num);place-items:center;margin-left:auto;display:grid}.nav-item.active .nav-count{background:#fff}.sidebar-footer{border-top:1px solid var(--border);padding:calc(10px * var(--font-scale,1));flex:none}.profile-trigger{align-items:center;gap:calc(9px * var(--font-scale,1));width:100%;padding:calc(7px * var(--font-scale,1));border-radius:var(--radius-md);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.profile-trigger:hover{background:var(--sidebar-hover)}.avatar{width:calc(30px * var(--font-scale,1));height:calc(30px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--brand-100);color:var(--brand-700);font-weight:600;font-size:calc(13px * var(--font-scale,1));flex:none;place-items:center;display:grid}.profile-name{font-size:calc(13px * var(--font-scale,1));font-weight:600}.profile-role{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground)}.account-popover{left:calc(10px * var(--font-scale,1));bottom:calc(58px * var(--font-scale,1));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:238px;box-shadow:var(--shadow-pop);z-index:var(--z-popover);position:absolute;overflow:hidden}.select-menu{min-width:calc(238px * var(--font-scale,1));padding:0;overflow:hidden}.account-head{padding:calc(12px * var(--font-scale,1));background:linear-gradient(135deg, var(--brand-50), var(--brand-100))}.account-item{align-items:center;gap:calc(9px * var(--font-scale,1));width:100%;padding:calc(9px * var(--font-scale,1)) calc(12px * var(--font-scale,1));cursor:pointer;font-size:calc(13px * var(--font-scale,1));color:var(--foreground-soft);text-align:left;background:0 0;border:none;display:flex}.account-item:hover{background:var(--muted)}.account-item.danger{color:var(--danger-strong);border-top:1px solid var(--border)}.account-item svg{width:15px;height:15px}.main-area{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-h);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:calc(10px * var(--font-scale,1));padding:0 calc(20px * var(--font-scale,1));z-index:var(--z-topbar);background:#ffffffe6;flex:none;display:flex;position:sticky;top:0}.search-trigger{align-items:center;gap:calc(8px * var(--font-scale,1));height:calc(32px * var(--font-scale,1));padding:0 calc(10px * var(--font-scale,1));width:calc(230px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--muted);color:var(--muted-foreground);font-size:calc(12.5px * var(--font-scale,1));cursor:pointer;display:flex}.search-trigger:hover{border-color:var(--border-strong)}.search-trigger kbd{font-family:var(--font-num);font-size:calc(11px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 calc(4px * var(--font-scale,1));background:#fff;margin-left:auto}.topbar-icon-btn{width:calc(32px * var(--font-scale,1));height:calc(32px * var(--font-scale,1));border-radius:var(--radius-md);color:var(--foreground-soft);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.topbar-icon-btn:hover{background:var(--muted);border-color:var(--border)}.topbar-dot{top:calc(6px * var(--font-scale,1));right:calc(7px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--danger-strong);border:1.5px solid #fff;width:7px;height:7px;position:absolute}.topbar-avatar-btn{width:calc(34px * var(--font-scale,1));height:calc(34px * var(--font-scale,1));cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;padding:0;transition:border-color .15s;overflow:hidden}.topbar-avatar-btn:hover,.topbar-avatar-btn.active{border-color:var(--primary,#4f46e5)}.topbar-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.topbar-user-head{align-items:flex-start;gap:calc(10px * var(--font-scale,1));padding:calc(12px * var(--font-scale,1));border-bottom:1px solid var(--border);margin-bottom:calc(4px * var(--font-scale,1));display:flex}.topbar-user-head-avatar{width:calc(40px * var(--font-scale,1));height:calc(40px * var(--font-scale,1));object-fit:cover;border-radius:50%;flex:none}.topbar-user-head-name{font-size:calc(14px * var(--font-scale,1));font-weight:600;line-height:1.3}.topbar-user-head-role{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);margin-top:2px}.topbar-user-head-last{font-size:calc(11px * var(--font-scale,1));color:var(--muted-foreground);opacity:.7;margin-top:4px}.breadcrumb{align-items:center;gap:calc(6px * var(--font-scale,1));font-size:calc(12.5px * var(--font-scale,1));color:var(--muted-foreground);display:flex}.breadcrumb .current{color:var(--foreground);font-weight:600}.page-content{width:100%;padding:calc(18px * var(--font-scale,1)) calc(20px * var(--font-scale,1)) calc(28px * var(--font-scale,1));flex:1;margin:0 auto}.page-header{justify-content:space-between;align-items:flex-start;gap:calc(12px * var(--font-scale,1));margin-bottom:calc(14px * var(--font-scale,1));display:flex}.page-title{font-size:calc(19px * var(--font-scale,1));font-weight:600}.page-desc{font-size:calc(12.5px * var(--font-scale,1));color:var(--muted-foreground);margin-top:calc(3px * var(--font-scale,1))}.font-popover{top:calc(44px * var(--font-scale,1));right:calc(20px * var(--font-scale,1));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:calc(8px * var(--font-scale,1));gap:calc(6px * var(--font-scale,1));z-index:var(--z-popover);display:flex;position:absolute}.mobile-scrim{z-index:calc(var(--z-sidebar) - 1);background:#20222b66;position:fixed;inset:0}.sidebar-toggle{display:none}@media (max-width:860px){.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-modal);transform:translate(0)}.main-area{margin-left:0}.sidebar-toggle{display:grid}.search-trigger{width:auto}.search-trigger kbd{display:none}.page-content{padding:calc(14px * var(--font-scale,1)) calc(12px * var(--font-scale,1)) calc(24px * var(--font-scale,1))}}.home-page{gap:calc(16px * var(--font-scale,1));height:calc(100vh - 104px);padding-bottom:calc(8px * var(--font-scale,1));flex-direction:column;display:flex;overflow:hidden auto}.home-header{flex:none;justify-content:space-between;align-items:flex-start;display:flex}.home-header-title{font-size:calc(22px * var(--font-scale,1));color:var(--foreground);margin:0;font-weight:700;line-height:1.3}.home-header-sub{font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground);margin:calc(4px * var(--font-scale,1)) 0 0}.home-header-date{font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground);padding-top:calc(4px * var(--font-scale,1));flex:none}.home-welcome{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:calc(20px * var(--font-scale,1)) calc(24px * var(--font-scale,1));flex:none;justify-content:space-between;align-items:center;display:flex}.home-welcome-left{align-items:center;gap:calc(16px * var(--font-scale,1));display:flex}.home-welcome-avatar{width:calc(52px * var(--font-scale,1));height:calc(52px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--tint-blue-bg,#eef2ff);flex:none;overflow:hidden}.home-welcome-avatar img{object-fit:cover;width:100%;height:100%}.home-welcome-info{gap:calc(4px * var(--font-scale,1));flex-direction:column;display:flex}.home-welcome-name{font-size:calc(18px * var(--font-scale,1));color:var(--foreground);font-weight:700}.home-welcome-meta{font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground)}.home-welcome-sep{margin:0 calc(6px * var(--font-scale,1))}.home-welcome-right{flex:none}.home-welcome-motto{font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground)}.home-freq-section{flex:none}.home-freq-head{align-items:center;gap:calc(8px * var(--font-scale,1));margin-bottom:calc(12px * var(--font-scale,1));display:flex}.home-freq-title{font-size:calc(15px * var(--font-scale,1));color:var(--foreground);font-weight:600}.home-freq-sub{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground)}.home-freq-items{align-items:center;gap:calc(10px * var(--font-scale,1));max-height:calc(2 * 34px * var(--font-scale,1) + 10px * var(--font-scale,1));flex-wrap:wrap;display:flex;overflow:hidden}.home-freq-tag{align-items:center;gap:calc(6px * var(--font-scale,1));padding:calc(6px * var(--font-scale,1)) calc(14px * var(--font-scale,1));font-size:calc(13px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--foreground);white-space:nowrap;text-decoration:none;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.home-freq-tag:hover{border-color:var(--primary,#4f46e5);background:var(--tint-blue-bg,#eef2ff);color:var(--primary,#4f46e5)}.home-bottom-row{gap:calc(14px * var(--font-scale,1));flex:1;grid-template-columns:1fr 1fr;min-height:220px;display:grid}.home-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.home-panel-head{align-items:center;gap:calc(8px * var(--font-scale,1));padding:calc(12px * var(--font-scale,1)) calc(16px * var(--font-scale,1));border-bottom:1px solid var(--border);font-size:calc(14px * var(--font-scale,1));flex:none;font-weight:600;display:flex}.home-panel-count{font-size:calc(11px * var(--font-scale,1));background:var(--tint-blue-bg,#eef2ff);min-width:20px;height:20px;color:var(--tint-blue-fg,#4f46e5);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-weight:500;display:inline-flex}.home-panel-body{padding:calc(8px * var(--font-scale,1)) calc(16px * var(--font-scale,1));flex:1;min-height:0;overflow-y:auto}.home-empty{height:100%;min-height:120px;font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground);justify-content:center;align-items:center;display:flex}.home-row-item{align-items:flex-start;gap:calc(12px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) 0;border-bottom:1px solid var(--border-weak,var(--border));display:flex}.home-row-item:last-child{border-bottom:none}.home-row-main{flex:1;min-width:0}.home-row-title{font-size:calc(13.5px * var(--font-scale,1));word-break:break-all;line-height:1.5}.home-row-desc{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);margin-top:calc(2px * var(--font-scale,1))}.home-row-action{font-size:calc(12px * var(--font-scale,1));color:var(--primary,#4f46e5);padding:calc(4px * var(--font-scale,1)) calc(10px * var(--font-scale,1));border:1px solid var(--primary,#4f46e5);border-radius:var(--radius-sm);white-space:nowrap;flex:none;transition:background .15s,color .15s}.home-row-action:hover{background:var(--primary,#4f46e5);color:#fff}.home-msg-tag{color:var(--primary,#4f46e5);font-weight:500}@media (max-width:860px){.home-bottom-row{grid-template-columns:1fr}.home-welcome{flex-direction:column;align-items:flex-start}.home-welcome-right{align-self:flex-end}}
.button{justify-content:center;align-items:center;gap:calc(6px * var(--font-scale,1));height:var(--control-h);padding:0 calc(13px * var(--font-scale,1));border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);color:var(--foreground);font-size:calc(13px * var(--font-scale,1));cursor:pointer;white-space:nowrap;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.button svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));flex:none}.button:hover{border-color:var(--border-strong);background:var(--muted)}.button.primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-foreground);box-shadow:var(--shadow-btn)}.button.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.button.ghost{color:var(--foreground-soft);background:0 0;border-color:#0000}.button.ghost:hover{background:var(--muted);border-color:var(--border)}.button.danger{color:var(--danger-strong);background:#fff;border-color:#f2c9c9}.button.danger:hover{background:var(--tint-red-bg);border-color:#e8b4b4}.button.danger-solid{background:var(--danger-strong);border-color:var(--danger-strong);color:#fff}.button.danger-solid:hover{background:#a93226;border-color:#a93226}.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.button.sm{height:calc(28px * var(--font-scale,1));padding:0 calc(10px * var(--font-scale,1));font-size:calc(12.5px * var(--font-scale,1))}.button.lg{height:calc(40px * var(--font-scale,1));padding:0 calc(18px * var(--font-scale,1));font-size:calc(14px * var(--font-scale,1))}.button.block{width:100%}.button-icon{width:var(--control-h);padding:0}.field{gap:calc(5px * var(--font-scale,1));flex-direction:column;min-width:0;display:flex}.form-label{font-size:calc(12.5px * var(--font-scale,1));color:var(--foreground-soft);font-weight:500}.form-label.required:after{content:"*";color:var(--danger-strong);margin-left:2px}.form-hint{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground)}.form-error{font-size:calc(11.5px * var(--font-scale,1));color:var(--danger-strong)}.control{align-items:center;gap:calc(7px * var(--font-scale,1));height:var(--control-h);padding:0 calc(10px * var(--font-scale,1));background:var(--card);border:1px solid var(--input);border-radius:var(--radius-md);transition:border-color .15s,box-shadow .15s;display:flex}.control:focus-within{border-color:var(--brand);box-shadow:0 0 0 calc(3px * var(--font-scale,1)) var(--brand-ring)}.control.invalid{border-color:#e2b3ae}.control.disabled{background:var(--muted);color:var(--muted-foreground);cursor:not-allowed}.control svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));color:var(--muted-foreground);flex:none}.control input,.control select,.control textarea{min-width:0;color:var(--foreground);font-size:calc(13px * var(--font-scale,1));background:0 0;border:none;outline:none;flex:1}.control input::placeholder,.control textarea::placeholder{color:#b9bac4}.control.lg{height:var(--control-h-lg);padding:0 calc(12px * var(--font-scale,1))}.control.lg input{font-size:calc(14px * var(--font-scale,1))}textarea.control{height:auto;min-height:calc(84px * var(--font-scale,1));padding:calc(9px * var(--font-scale,1)) calc(10px * var(--font-scale,1));resize:vertical;line-height:1.6}.control.readonly{background:var(--muted);border-style:dashed}.control.textarea{height:auto;min-height:calc(84px * var(--font-scale,1));padding:calc(9px * var(--font-scale,1)) calc(10px * var(--font-scale,1));align-items:flex-start;gap:calc(6px * var(--font-scale,1))}.control.textarea textarea{min-height:calc(66px * var(--font-scale,1));resize:vertical;line-height:1.6}.control.textarea .control-btn{flex:none;align-self:flex-start}.control.select .select-arrow{flex:none}.control.select select{appearance:none;cursor:pointer;padding-right:calc(4px * var(--font-scale,1))}.control.select{cursor:pointer}.control-btn{padding:0 calc(2px * var(--font-scale,1));color:var(--muted-foreground);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;place-items:center;display:grid}.control-btn:hover{color:var(--brand)}.check{align-items:center;gap:calc(7px * var(--font-scale,1));cursor:pointer;font-size:calc(13px * var(--font-scale,1));color:var(--foreground-soft);-webkit-user-select:none;user-select:none;display:inline-flex}.check input{appearance:none;width:calc(16px * var(--font-scale,1));height:calc(16px * var(--font-scale,1));border:1.5px solid var(--border-strong);border-radius:calc(4px * var(--font-scale,1));cursor:pointer;background:#fff;flex:none;place-content:center;transition:background .12s,border-color .12s;display:grid}.check input[type=radio]{border-radius:var(--radius-full)}.check input:checked{background:var(--brand);border-color:var(--brand)}.check input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;transform:rotate(45deg)translateY(-1px)}.check input[type=radio]:checked:after{content:"";width:calc(6px * var(--font-scale,1));height:calc(6px * var(--font-scale,1));border-radius:var(--radius-full);background:#fff}.check input:disabled{background:var(--muted);border-color:var(--border);cursor:not-allowed}.radio-chips{gap:calc(8px * var(--font-scale,1));flex-wrap:wrap;display:flex}.radio-chip{align-items:center;gap:calc(6px * var(--font-scale,1));padding:calc(7px * var(--font-scale,1)) calc(12px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);cursor:pointer;font-size:calc(13px * var(--font-scale,1));color:var(--foreground-soft);display:inline-flex}.radio-chip:hover{border-color:var(--brand-300)}.radio-chip.checked{border-color:var(--brand);background:var(--brand-50);color:var(--brand-700);font-weight:600}.form-grid{gap:calc(12px * var(--font-scale,1));display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .span-full{grid-column:1/-1}.form-grid .span-2{grid-column:span 2}.form-section{border:1px solid var(--border);border-radius:var(--radius-lg);padding:calc(12px * var(--font-scale,1));min-width:0;margin:0}.form-section+.form-section,.form-grid+.form-section,.form-section-gap{margin-top:calc(12px * var(--font-scale,1))}.form-section legend{font-size:calc(12.5px * var(--font-scale,1));color:var(--brand-700);padding:0 calc(6px * var(--font-scale,1));background:var(--card);font-weight:600}.form-foot{justify-content:flex-end;gap:calc(8px * var(--font-scale,1));padding-top:calc(6px * var(--font-scale,1));display:flex}.select-popover{width:calc(292px * var(--font-scale,1));padding:calc(9px * var(--font-scale,1));gap:calc(8px * var(--font-scale,1));flex-direction:column;display:flex}.popover .control{width:100%}.select-list{gap:calc(2px * var(--font-scale,1));max-height:calc(252px * var(--font-scale,1));flex-direction:column;display:flex;overflow-y:auto}.select-trigger{text-align:left;cursor:pointer;width:100%}.select-trigger.open{border-color:var(--brand);box-shadow:var(--focus-ring)}.select-trigger .muted{color:var(--muted-foreground)}.select-value{text-align:left;min-width:0;color:var(--foreground);font-size:calc(13px * var(--font-scale,1));white-space:nowrap;flex:1}.select-row-check{width:calc(15px * var(--font-scale,1));flex:none}.select-empty{padding:calc(6px * var(--font-scale,1)) calc(8px * var(--font-scale,1))}.control-affix{width:100%;min-width:0;display:flex;position:relative}.control-affix>.select-trigger,.control-affix>.date-trigger{flex:1;min-width:0}.control-affix.has-clear .select-trigger,.control-affix.has-clear .date-trigger{padding-right:calc(32px * var(--font-scale,1))}.control-affix .control-btn.control-affix-btn{right:calc(9px * var(--font-scale,1));z-index:1;background:var(--card);flex:none;position:absolute;top:50%;transform:translateY(-50%)}.select-row svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));color:var(--muted-foreground);flex:none}.select-row{align-items:center;gap:calc(8px * var(--font-scale,1));width:100%;padding:calc(6px * var(--font-scale,1)) calc(8px * var(--font-scale,1));border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:calc(13px * var(--font-scale,1));color:var(--foreground-soft);background:0 0;border:none;display:flex}.select-row:hover{background:var(--muted);color:var(--foreground)}.select-row.checked{background:var(--brand-50);color:var(--brand-700);font-weight:600}.select-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.select-row-sub{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground);font-weight:400}.date-trigger{align-items:center;gap:calc(7px * var(--font-scale,1));height:var(--control-h);padding:0 calc(10px * var(--font-scale,1));border:1px solid var(--input);border-radius:var(--radius-md);background:var(--card);color:var(--foreground-soft);font-size:calc(13px * var(--font-scale,1));cursor:pointer;white-space:nowrap;display:flex}.date-trigger:hover{border-color:var(--brand-300)}.date-trigger.open{border-color:var(--brand);box-shadow:var(--focus-ring)}.date-trigger svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));color:var(--muted-foreground);flex:none}.date-trigger .date-value{font-family:var(--font-mono);font-size:calc(12.5px * var(--font-scale,1))}.date-range-row{align-items:center;gap:calc(6px * var(--font-scale,1));display:flex}.date-range-row .control{flex:1;min-width:0}.date-sep{color:var(--muted-foreground);font-size:calc(12px * var(--font-scale,1))}@media (max-width:760px){.form-grid.two,.form-grid.three{grid-template-columns:minmax(0,1fr)}}
.badge{align-items:center;gap:calc(5px * var(--font-scale,1));height:calc(22px * var(--font-scale,1));padding:0 calc(8px * var(--font-scale,1));border-radius:var(--radius-full);font-size:calc(12px * var(--font-scale,1));white-space:nowrap;font-weight:500;display:inline-flex}.badge i{width:calc(6px * var(--font-scale,1));height:calc(6px * var(--font-scale,1));border-radius:var(--radius-full);background:currentColor;flex:none}.badge.green{background:var(--tint-green-bg);color:var(--tint-green-fg)}.badge.orange{background:var(--tint-orange-bg);color:var(--tint-orange-fg)}.badge.blue{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.badge.purple{background:var(--tint-purple-bg);color:var(--tint-purple-fg)}.badge.red{background:var(--tint-red-bg);color:var(--tint-red-fg)}.badge.gray{background:var(--tint-gray-bg);color:var(--tint-gray-fg)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-pad{padding:calc(14px * var(--font-scale,1))}.card-head{justify-content:space-between;align-items:center;gap:calc(10px * var(--font-scale,1));padding:calc(12px * var(--font-scale,1)) calc(14px * var(--font-scale,1));border-bottom:1px solid var(--border);display:flex}.card-title{font-size:calc(14px * var(--font-scale,1));font-weight:600}.metric-grid{gap:calc(12px * var(--font-scale,1));grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metric-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:calc(13px * var(--font-scale,1));gap:calc(8px * var(--font-scale,1));flex-direction:column;display:flex}.metric-top{justify-content:space-between;align-items:center;gap:calc(8px * var(--font-scale,1));display:flex}.metric-icon{width:calc(30px * var(--font-scale,1));height:calc(30px * var(--font-scale,1));border-radius:var(--radius-md);flex:none;place-items:center;display:grid}.metric-icon svg{width:calc(16px * var(--font-scale,1));height:calc(16px * var(--font-scale,1))}.metric-icon.violet{background:var(--tint-purple-bg);color:var(--tint-purple-fg)}.metric-icon.green{background:var(--tint-green-bg);color:var(--tint-green-fg)}.metric-icon.orange{background:var(--tint-orange-bg);color:var(--tint-orange-fg)}.metric-icon.blue{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.metric-icon.red{background:var(--tint-red-bg);color:var(--tint-red-fg)}.metric-label{font-size:calc(12.5px * var(--font-scale,1));color:var(--muted-foreground)}.metric-value{font-family:var(--font-num);font-size:calc(24px * var(--font-scale,1));letter-spacing:-.5px;font-weight:700;line-height:1.15}.metric-unit{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);font-family:var(--font-ui);margin-left:calc(3px * var(--font-scale,1));font-weight:500}.metric-trend{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground)}.metric-trend.up{color:var(--success)}.metric-trend.down{color:var(--danger-strong)}.metric-card.active{border-color:var(--brand);background:var(--brand-50)}.metric-card.active:hover{border-color:var(--brand);background:var(--brand-100)}.metric-card.active .metric-label{color:var(--brand-700);font-weight:600}.mini-metric{justify-content:space-between;align-items:center;gap:calc(8px * var(--font-scale,1));padding:calc(9px * var(--font-scale,1)) calc(11px * var(--font-scale,1));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font-size:calc(12.5px * var(--font-scale,1));color:var(--foreground-soft);text-align:left;width:100%;display:flex}.mini-metric:hover{border-color:var(--brand-300)}.mini-metric.active{border-color:var(--brand);background:var(--brand-50);color:var(--brand-700);font-weight:600}.mini-metric b{font-family:var(--font-num);font-size:calc(15px * var(--font-scale,1))}.stat-panel{gap:calc(10px * var(--font-scale,1));padding-bottom:calc(4px * var(--font-scale,1));display:flex;overflow-x:auto}.stat-side{top:calc(var(--topbar-h) + 16px);width:calc(56px * var(--font-scale,1));margin-right:calc(-20px * var(--font-scale,1));background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex:none;align-self:flex-start;transition:width .18s;position:sticky;overflow:hidden}.stat-side.expanded{width:calc(420px * var(--font-scale,1))}.stat-side-rail{align-items:center;gap:calc(14px * var(--font-scale,1));width:100%;min-height:calc(150px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) 0 calc(14px * var(--font-scale,1));cursor:pointer;background:0 0;border:none;flex-direction:column;display:flex;overflow-y:auto}.stat-side-rail:hover{background:var(--muted)}.stat-side-mini{align-items:center;gap:calc(2px * var(--font-scale,1));flex-direction:column;flex:none;width:100%;display:flex}.stat-side-mini b{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:calc(14px * var(--font-scale,1));font-weight:700;line-height:1.2}.stat-side-mini span{font-size:calc(10px * var(--font-scale,1));color:var(--muted-foreground);padding:0 calc(3px * var(--font-scale,1));text-align:center;line-height:1.25}.stat-side-head{justify-content:space-between;align-items:center;gap:calc(8px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) calc(14px * var(--font-scale,1));border-bottom:1px solid var(--border);display:flex}.stat-side-title{font-size:calc(13.5px * var(--font-scale,1));font-weight:600}.stat-side-toggle{width:calc(26px * var(--font-scale,1));height:calc(26px * var(--font-scale,1));border-radius:var(--radius-sm);color:var(--brand);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;display:grid}.stat-side-toggle:hover{background:var(--brand-50)}.stat-side-toggle svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1))}.stat-side-body{gap:calc(14px * var(--font-scale,1));padding:calc(12px * var(--font-scale,1)) calc(14px * var(--font-scale,1)) calc(14px * var(--font-scale,1));max-height:calc(100vh - var(--topbar-h) - 96px);flex-direction:column;display:flex;overflow-y:auto}.stat-panel>.metric-card{flex:0 0 calc(148px * var(--font-scale,1))}.metric-card.violet{background:var(--tint-purple-bg);border-color:var(--tint-purple-bg)}.metric-card.violet .metric-value{color:var(--tint-purple-fg)}.metric-card.green{background:var(--tint-green-bg);border-color:var(--tint-green-bg)}.metric-card.green .metric-value{color:var(--tint-green-fg)}.metric-card.orange{background:var(--tint-orange-bg);border-color:var(--tint-orange-bg)}.metric-card.orange .metric-value{color:var(--tint-orange-fg)}.metric-card.blue{background:var(--tint-blue-bg);border-color:var(--tint-blue-bg)}.metric-card.blue .metric-value{color:var(--tint-blue-fg)}.metric-card.red{background:var(--tint-red-bg);border-color:var(--tint-red-bg)}.metric-card.red .metric-value{color:var(--tint-red-fg)}.stat-side-chart{gap:calc(6px * var(--font-scale,1));flex-direction:column;min-width:0;display:flex}.stat-side-chart-title{font-size:calc(12.5px * var(--font-scale,1));color:var(--foreground-soft);font-weight:600}.stat-side-empty{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground)}@media (max-width:860px){.stat-side,.stat-side.expanded{width:100%;margin-right:0;position:static}.stat-side-rail{justify-content:flex-start;gap:calc(18px * var(--font-scale,1));min-height:0;padding:calc(10px * var(--font-scale,1)) calc(12px * var(--font-scale,1));flex-direction:row}.stat-side-mini{width:auto}.stat-side-body{max-height:none}}.grid-cards{gap:calc(12px * var(--font-scale,1));grid-template-columns:repeat(auto-fill,minmax(242px,1fr));display:grid}.grid-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:calc(12px * var(--font-scale,1));cursor:pointer;box-shadow:var(--shadow-card);gap:calc(6px * var(--font-scale,1));flex-direction:column;transition:border-color .15s,transform .15s;display:flex}.grid-link{min-width:0;display:block}.grid-card:hover{border-color:var(--brand-300);transform:translateY(-1px)}.grid-card.is-warning{background:var(--card-tint-warning-bg);border-color:var(--card-tint-warning-border)}.grid-card.is-danger{background:var(--card-tint-danger-bg);border-color:var(--card-tint-danger-border)}.grid-card.is-info{background:var(--card-tint-info-bg);border-color:var(--card-tint-info-border)}.grid-card-line{justify-content:space-between;align-items:center;gap:calc(8px * var(--font-scale,1));font-size:calc(12.5px * var(--font-scale,1));display:flex}.chart-grid{gap:calc(14px * var(--font-scale,1));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.chart-card{min-height:calc(238px * var(--font-scale,1))}.chart-legend{align-items:center;gap:calc(15px * var(--font-scale,1));margin-top:calc(12px * var(--font-scale,1));color:var(--muted-foreground);font-size:calc(11px * var(--font-scale,1));display:flex}.chart-wrap{gap:calc(6px * var(--font-scale,1));height:calc(176px * var(--font-scale,1));margin-top:calc(6px * var(--font-scale,1));display:flex}.chart-y{width:calc(34px * var(--font-scale,1));padding-bottom:calc(18px * var(--font-scale,1));color:var(--muted-foreground);font-family:var(--font-num);font-size:calc(10px * var(--font-scale,1));text-align:right;flex-direction:column;flex:none;justify-content:space-between;display:flex}.chart-area{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.chart-plot{flex:1;min-height:0;position:relative}.chart-gridlines{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.chart-gridlines i{border-top:1px dashed var(--border-strong)}.chart-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.chart-x{height:calc(18px * var(--font-scale,1));color:var(--muted-foreground);font-size:calc(10px * var(--font-scale,1));white-space:nowrap;justify-content:space-between;align-items:flex-end;display:flex}.chart-dot{width:calc(9px * var(--font-scale,1));height:calc(9px * var(--font-scale,1));margin:calc(-4.5px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--card);border:2px solid var(--brand);pointer-events:none;position:absolute}.bars{align-items:flex-end;gap:calc(8px * var(--font-scale,1));padding:0 calc(4px * var(--font-scale,1));display:flex;position:absolute;inset:0}.bar-col{justify-content:flex-end;align-items:center;gap:calc(4px * var(--font-scale,1));flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.bar-fill{width:100%;max-width:calc(26px * var(--font-scale,1));border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(180deg, var(--brand-300), var(--brand));transition:height .2s}.bar-value{font-family:var(--font-num);font-size:calc(10px * var(--font-scale,1));color:var(--foreground-soft)}.chart-bars{gap:calc(9px * var(--font-scale,1));margin-top:calc(4px * var(--font-scale,1));flex-direction:column;display:flex}.chart-row{align-items:center;gap:calc(8px * var(--font-scale,1));font-size:calc(12px * var(--font-scale,1));grid-template-columns:minmax(56px,28%) 1fr auto;display:grid}.chart-name{color:var(--foreground-soft)}.chart-track{height:calc(7px * var(--font-scale,1));background:var(--muted);border-radius:var(--radius-full);overflow:hidden}.chart-fill{border-radius:var(--radius-full);background:var(--brand);height:100%;transition:width .2s;display:block}.chart-value{color:var(--foreground);font-size:calc(12px * var(--font-scale,1))}.donut-wrap{align-items:center;gap:calc(18px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) 0;display:flex}.donut{height:calc(122px * var(--font-scale,1));width:calc(122px * var(--font-scale,1));border-radius:var(--radius-full);flex:none;place-items:center;display:grid;position:relative}.donut:before{content:"";inset:calc(13px * var(--font-scale,1));background:var(--card);border-radius:var(--radius-full);position:absolute}.donut>div{flex-direction:column;align-items:center;gap:1px;display:flex;position:relative}.donut strong{font-family:var(--font-num);font-size:calc(21px * var(--font-scale,1));letter-spacing:-.5px}.donut span{color:var(--muted-foreground);font-size:calc(10px * var(--font-scale,1))}.donut-legend{gap:calc(8px * var(--font-scale,1));flex-direction:column;flex:1;min-width:0;display:flex}.donut-legend span{align-items:center;gap:calc(7px * var(--font-scale,1));font-size:calc(11px * var(--font-scale,1));color:var(--muted-foreground);grid-template-columns:8px 1fr auto;display:grid}.donut-legend i{width:calc(7px * var(--font-scale,1));height:calc(7px * var(--font-scale,1));border-radius:var(--radius-full)}.donut-legend b{color:var(--foreground);font-family:var(--font-num);font-weight:600}.table-wrap{overflow-x:auto}.data-table{min-width:100%}.data-table thead th{height:var(--th-h);color:var(--muted-foreground);font-size:calc(12px * var(--font-scale,1));text-align:left;padding:0 calc(12px * var(--font-scale,1));border-bottom:1px solid var(--border);white-space:nowrap;background:#fafafd;font-weight:600}.data-table tbody td{height:var(--td-h);padding:calc(6px * var(--font-scale,1)) calc(12px * var(--font-scale,1));border-bottom:1px solid var(--border);font-size:calc(13px * var(--font-scale,1));vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#fcfcfe}.data-table .cell-num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.data-table .cell-money{font-family:var(--font-num);text-align:right;white-space:nowrap}.cell-object{align-items:center;gap:calc(9px * var(--font-scale,1));min-width:0;display:flex}.cell-object-thumb{width:calc(30px * var(--font-scale,1));height:calc(30px * var(--font-scale,1));border-radius:var(--radius-md);background:var(--muted);border:1px solid var(--border);color:var(--muted-foreground);font-family:var(--font-num);font-size:calc(11px * var(--font-scale,1));flex:none;place-items:center;display:grid}.cell-object-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.cell-object-sub{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-actions{align-items:center;gap:calc(4px * var(--font-scale,1));white-space:nowrap;display:flex}.link-btn{color:var(--brand);font-size:calc(12.5px * var(--font-scale,1));cursor:pointer;padding:calc(3px * var(--font-scale,1)) calc(6px * var(--font-scale,1));border-radius:var(--radius-sm);background:0 0;border:none}.link-btn:hover{background:var(--brand-50)}.link-btn.danger{color:var(--danger-strong)}.link-btn.danger:hover{background:var(--tint-red-bg)}.link-btn:disabled{color:var(--muted-foreground);cursor:not-allowed;background:0 0}.tree-title{color:var(--foreground);font-size:calc(12.5px * var(--font-scale,1));cursor:pointer;padding:calc(3px * var(--font-scale,1)) calc(6px * var(--font-scale,1));border-radius:var(--radius-sm);background:0 0;border:none}.tree-title:hover{background:var(--brand-50)}.tree-title.active,.menu-active .tree-title{color:var(--brand);font-weight:500}.tree-root{color:var(--foreground);font-size:calc(12.5px * var(--font-scale,1));cursor:pointer;padding:calc(3px * var(--font-scale,1)) calc(6px * var(--font-scale,1));border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;font-weight:600}.tree-root:hover{background:var(--muted)}.tree-root.active{background:var(--hover,#0000000d)}.table-toolbar{align-items:center;gap:calc(10px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) calc(14px * var(--font-scale,1));border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.table-search{width:calc(220px * var(--font-scale,1))}.filter-pill{align-items:center;gap:calc(5px * var(--font-scale,1));height:calc(26px * var(--font-scale,1));padding:0 calc(6px * var(--font-scale,1)) 0 calc(10px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--brand-50);color:var(--brand-700);font-size:calc(12px * var(--font-scale,1));border:1px solid var(--brand-200);display:inline-flex}.filter-pill button{color:inherit;cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;place-items:center;padding:2px;display:grid}.filter-pill button:hover{background:var(--brand-100)}.table-footer{justify-content:space-between;align-items:center;gap:calc(10px * var(--font-scale,1));padding:calc(10px * var(--font-scale,1)) calc(14px * var(--font-scale,1));color:var(--muted-foreground);font-size:calc(12px * var(--font-scale,1));border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.pagination{align-items:center;gap:calc(5px * var(--font-scale,1));display:flex}.page-btn{min-width:calc(26px * var(--font-scale,1));height:calc(26px * var(--font-scale,1));padding:0 calc(5px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--foreground-soft);font-family:var(--font-num);font-size:calc(12px * var(--font-scale,1));cursor:pointer;place-items:center;display:grid}.page-btn:hover:not(:disabled){border-color:var(--brand-300);color:var(--brand-700)}.page-btn.current{background:var(--brand-100);border-color:var(--brand-200);color:var(--brand-700);font-weight:700}.page-btn:disabled{opacity:.45;cursor:not-allowed}.page-btn svg{width:calc(13px * var(--font-scale,1));height:calc(13px * var(--font-scale,1))}.page-ellipsis{color:var(--muted-foreground);font-size:calc(12px * var(--font-scale,1));padding:0 calc(2px * var(--font-scale,1))}.page-size{width:calc(96px * var(--font-scale,1));height:calc(26px * var(--font-scale,1));font-size:calc(12px * var(--font-scale,1))}.tabs{align-items:center;gap:calc(2px * var(--font-scale,1));border-bottom:1px solid var(--border);display:flex}.tab{padding:calc(8px * var(--font-scale,1)) calc(12px * var(--font-scale,1));font-size:calc(13px * var(--font-scale,1));color:var(--muted-foreground);cursor:pointer;align-items:center;gap:calc(5px * var(--font-scale,1));white-space:nowrap;background:0 0;border:none;display:inline-flex;position:relative}.tab:hover{color:var(--foreground)}.tab.active{color:var(--brand-700);font-weight:600}.tab.active:after{content:"";left:calc(12px * var(--font-scale,1));right:calc(12px * var(--font-scale,1));background:var(--brand);border-radius:2px;height:2px;position:absolute;bottom:-1px}.tab-count{font-family:var(--font-num);font-size:calc(11px * var(--font-scale,1));background:var(--muted);border-radius:var(--radius-full);padding:0 calc(5px * var(--font-scale,1));color:var(--muted-foreground)}.tab.active .tab-count{background:var(--brand-100);color:var(--brand-700)}.timeline{flex-direction:column;display:flex}.timeline-row{padding-left:calc(22px * var(--font-scale,1));padding-bottom:calc(14px * var(--font-scale,1));position:relative}.timeline-row:before{content:"";left:calc(4px * var(--font-scale,1));top:calc(11px * var(--font-scale,1));background:var(--border);width:1.5px;position:absolute;bottom:0}.timeline-row:last-child{padding-bottom:0}.timeline-row:last-child:before{display:none}.timeline-dot{left:0;top:calc(4px * var(--font-scale,1));width:calc(10px * var(--font-scale,1));height:calc(10px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--brand);box-shadow:0 0 0 3px var(--brand-50);position:absolute}.timeline-dot.gray{box-shadow:0 0 0 3px var(--muted);background:#c9c9d4}.timeline-dot.green{background:var(--success);box-shadow:0 0 0 3px var(--tint-green-bg)}.timeline-dot.red{background:var(--danger-strong);box-shadow:0 0 0 3px var(--tint-red-bg)}.timeline-head{align-items:center;gap:calc(8px * var(--font-scale,1));font-size:calc(13px * var(--font-scale,1));flex-wrap:wrap;font-weight:500;display:flex}.timeline-time{font-family:var(--font-num);font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground)}.timeline-meta{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);margin-top:calc(3px * var(--font-scale,1))}.timeline-change{align-items:center;gap:calc(5px * var(--font-scale,1));font-size:calc(12px * var(--font-scale,1));margin-top:calc(4px * var(--font-scale,1));display:inline-flex}.demo-box{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--muted);min-width:0}.empty-state{justify-content:center;align-items:center;gap:calc(8px * var(--font-scale,1));padding:calc(46px * var(--font-scale,1)) calc(16px * var(--font-scale,1));color:var(--muted-foreground);text-align:center;flex-direction:column;display:flex}.empty-state svg{width:calc(28px * var(--font-scale,1));height:calc(28px * var(--font-scale,1));color:#cdced8}.empty-state-title{font-size:calc(13.5px * var(--font-scale,1));color:var(--foreground-soft);font-weight:500}.skeleton{background:linear-gradient(90deg, var(--muted) 25%, #efeff4 37%, var(--muted) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.3s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.spinner{width:calc(16px * var(--font-scale,1));height:calc(16px * var(--font-scale,1));border:2px solid var(--brand-200);border-top-color:var(--brand);border-radius:var(--radius-full);animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1080px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:620px){.metric-grid{grid-template-columns:minmax(0,1fr)}}
.scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-drawer);background:#20222b52;animation:.16s fade-in;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.drawer{width:var(--drawer-w-sm);background:var(--card);max-width:100vw;box-shadow:var(--shadow-modal);z-index:calc(var(--z-drawer) + 1);flex-direction:column;animation:.22s cubic-bezier(.22,.61,.36,1) drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer.md{width:var(--drawer-w-md)}.drawer.lg{width:var(--drawer-w-lg)}.drawer.xl{width:var(--drawer-w-xl)}@keyframes drawer-in{0%{opacity:.4;transform:translate(24px)}}.modal-head,.drawer-head{align-items:center;gap:calc(10px * var(--font-scale,1));padding:calc(13px * var(--font-scale,1)) calc(16px * var(--font-scale,1));border-bottom:1px solid var(--border);flex:none;display:flex}.head-icon{width:calc(30px * var(--font-scale,1));height:calc(30px * var(--font-scale,1));border-radius:var(--radius-md);background:var(--brand-50);color:var(--brand-700);flex:none;place-items:center;display:grid}.head-title{font-size:calc(15px * var(--font-scale,1));min-width:0;font-weight:600}.head-sub{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);margin-top:calc(1px * var(--font-scale,1));font-weight:400}.head-close{color:var(--muted-foreground);cursor:pointer;width:calc(28px * var(--font-scale,1));height:calc(28px * var(--font-scale,1));border-radius:var(--radius-md);background:0 0;border:none;flex:none;place-items:center;margin-left:auto;display:grid}.head-close:hover{background:var(--muted);color:var(--foreground)}.head-actions{align-items:center;gap:inherit;flex:none;margin-left:auto;display:flex}.head-action{color:var(--brand-700);cursor:pointer;width:calc(28px * var(--font-scale,1));height:calc(28px * var(--font-scale,1));border-radius:var(--radius-md);background:0 0;border:none;flex:none;place-items:center;display:grid}.head-action:hover{background:var(--brand-50);color:var(--brand-700)}.head-action.danger{color:var(--danger-strong)}.head-action.danger:hover{background:var(--tint-red-bg);color:var(--danger-strong)}.head-action:disabled{color:var(--muted-foreground);cursor:not-allowed;opacity:.6;background:0 0}.head-action .spinner{width:calc(14px * var(--font-scale,1));height:calc(14px * var(--font-scale,1))}.modal-body,.drawer-body{padding:calc(16px * var(--font-scale,1));flex:1;overflow-y:auto}.modal-foot,.drawer-foot{justify-content:flex-end;align-items:center;gap:calc(8px * var(--font-scale,1));padding:calc(11px * var(--font-scale,1)) calc(16px * var(--font-scale,1));border-top:1px solid var(--border);background:var(--card);flex:none;display:flex}.modal-foot .start,.drawer-foot .start{margin-right:auto}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);padding:calc(16px * var(--font-scale,1));background:#20222b52;justify-content:center;align-items:center;animation:.16s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.stack{z-index:var(--z-modal-stack)}.modal{background:var(--card);border-radius:var(--radius-xl);width:min(500px,100%);box-shadow:var(--shadow-modal);max-height:calc(100vh - calc(32px * var(--font-scale,1)));flex-direction:column;animation:.18s cubic-bezier(.22,.61,.36,1) pop-in;display:flex}.modal.md{width:min(660px,100%)}.modal.lg{width:min(880px,100%)}@keyframes pop-in{0%{opacity:.5;transform:translateY(10px)scale(.985)}}.picker-list{gap:calc(4px * var(--font-scale,1));max-height:calc(50vh * var(--font-scale,1));flex-direction:column;display:flex;overflow-y:auto}.picker-row{align-items:center;gap:calc(9px * var(--font-scale,1));padding:calc(8px * var(--font-scale,1)) calc(10px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font-size:calc(13px * var(--font-scale,1));display:flex}.picker-row:hover{border-color:var(--brand-300)}.picker-row.checked{border-color:var(--brand);background:var(--brand-50)}.picker-row.disabled{opacity:.5;cursor:not-allowed}.picker-summary{align-items:center;gap:calc(8px * var(--font-scale,1));font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground);display:flex}.selected-row{align-items:center;gap:calc(10px * var(--font-scale,1));padding:calc(8px * var(--font-scale,1)) calc(10px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);display:flex}.selected-row+.selected-row{margin-top:calc(6px * var(--font-scale,1))}.qty-input{width:calc(78px * var(--font-scale,1));flex:none}.toast-host{left:50%;bottom:calc(28px * var(--font-scale,1));align-items:center;gap:calc(8px * var(--font-scale,1));z-index:var(--z-toast);pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:calc(8px * var(--font-scale,1));color:#fff;font-size:calc(13px * var(--font-scale,1));padding:calc(9px * var(--font-scale,1)) calc(14px * var(--font-scale,1));border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);background:#20222bed;max-width:min(520px,92vw);animation:.18s toast-in;display:flex}.toast.success{background:#14785ff2}.toast.error{background:#b43c37f2}.toast svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));flex:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.popover{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:calc(5px * var(--font-scale,1));min-width:calc(160px * var(--font-scale,1));z-index:var(--z-popover);animation:.14s pop-in;position:absolute}.popover.up{bottom:calc(100% + 6px)}.popover.down{top:calc(100% + 6px)}.popover.align-left{left:0}.popover.align-right{right:0}.delete-bubble{display:inline-flex;position:relative}.popover.pop-danger{background:var(--danger);border:1px solid var(--danger-strong);background:color-mix(in srgb, var(--danger) 88%, var(--card));border-color:color-mix(in srgb, var(--danger-strong) 65%, var(--card));box-shadow:var(--shadow-pop);color:var(--card);padding:calc(8px * var(--font-scale,1)) calc(11px * var(--font-scale,1));min-width:calc(188px * var(--font-scale,1));align-items:center;gap:calc(10px * var(--font-scale,1));max-width:min(440px,82vw);display:flex}.pop-danger-text{min-width:0;font-size:calc(12.5px * var(--font-scale,1));color:var(--card);flex:auto}.pop-danger-warn{margin-top:calc(3px * var(--font-scale,1));font-size:calc(11.5px * var(--font-scale,1));opacity:.85;display:block}.pop-danger-confirm{align-items:center;gap:calc(6px * var(--font-scale,1));white-space:nowrap;border:1px solid var(--card);background:var(--card);border-color:color-mix(in srgb, var(--card) 60%, transparent);background:color-mix(in srgb, var(--card) 86%, transparent);color:var(--danger-strong);font-size:calc(12.5px * var(--font-scale,1));border-radius:var(--radius-sm);padding:calc(4px * var(--font-scale,1)) calc(10px * var(--font-scale,1));cursor:pointer;flex:none;font-weight:600;display:inline-flex}.pop-danger-confirm:hover{background:var(--card)}.pop-danger-confirm:disabled{cursor:not-allowed;opacity:.75}.pop-danger-confirm .spinner{width:calc(13px * var(--font-scale,1));height:calc(13px * var(--font-scale,1));border-color:color-mix(in srgb, var(--danger) 25%, var(--card));border-top-color:var(--danger-strong)}.menu-item{align-items:center;gap:calc(8px * var(--font-scale,1));width:100%;padding:calc(7px * var(--font-scale,1)) calc(9px * var(--font-scale,1));border-radius:var(--radius-sm);font-size:calc(13px * var(--font-scale,1));color:var(--foreground-soft);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;display:flex}.menu-item:hover{background:var(--muted);color:var(--foreground)}.menu-item.active{background:var(--brand-50);color:var(--brand-700);font-weight:600}.menu-item.danger{color:var(--danger-strong)}.menu-item svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));flex:none}.menu-sep{background:var(--border);height:1px;margin:calc(4px * var(--font-scale,1)) 0}.brand-swatch{width:calc(16px * var(--font-scale,1));height:calc(16px * var(--font-scale,1));border-radius:var(--radius-full);border:1px solid var(--border-strong);flex:none}.brand-swatch.current{box-shadow:0 0 0 2px var(--card), 0 0 0 calc(4px * var(--font-scale,1)) var(--brand)}.lock-screen{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;padding:calc(16px * var(--font-scale,1));background:#20222b8c;place-items:center;display:grid;position:fixed;inset:0}.lock-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);width:min(320px,100%);box-shadow:var(--shadow-modal);padding:calc(20px * var(--font-scale,1));gap:calc(10px * var(--font-scale,1));text-align:center;flex-direction:column;align-items:center;display:flex}.avatar-lg{width:calc(52px * var(--font-scale,1));height:calc(52px * var(--font-scale,1));border-radius:var(--radius-full);background:var(--brand-100);color:var(--brand-700);font-weight:600;font-size:calc(20px * var(--font-scale,1));place-items:center;display:grid}.lock-hint{font-size:calc(12px * var(--font-scale,1));color:var(--muted-foreground)}.login-page{min-height:100vh;padding:calc(24px * var(--font-scale,1)) calc(6vw * var(--font-scale,1));background-position:50%;background-size:cover;justify-content:flex-end;align-items:center;display:flex;overflow-y:auto}.login-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:calc(16px * var(--font-scale,1));width:min(400px,100%);padding:calc(26px * var(--font-scale,1)) calc(24px * var(--font-scale,1)) calc(22px * var(--font-scale,1));background:#ffffffe0;border:1px solid #ffffffb3;box-shadow:0 24px 60px #20202b29}.login-title{font-size:calc(20px * var(--font-scale,1));font-weight:600}.login-sub{font-size:calc(12.5px * var(--font-scale,1));color:var(--muted-foreground);margin-top:calc(4px * var(--font-scale,1));margin-bottom:calc(18px * var(--font-scale,1))}.login-message{align-items:center;gap:calc(7px * var(--font-scale,1));background:var(--tint-red-bg);color:var(--danger-strong);border-radius:var(--radius-md);padding:calc(8px * var(--font-scale,1)) calc(10px * var(--font-scale,1));font-size:calc(12.5px * var(--font-scale,1));margin-bottom:calc(12px * var(--font-scale,1));border:1px solid #f2d5d5;display:flex}.login-message svg{width:calc(15px * var(--font-scale,1));height:calc(15px * var(--font-scale,1));flex:none}.captcha-row{gap:calc(8px * var(--font-scale,1));align-items:center;display:flex}.captcha-image{height:var(--control-h);width:calc(140px * var(--font-scale,1));border:1px solid var(--input);border-radius:var(--radius-md);cursor:pointer;background:var(--muted);object-fit:contain;flex:none}.captcha-image:hover{border-color:var(--brand-300)}.attachment-list{gap:calc(8px * var(--font-scale,1));flex-wrap:wrap;display:flex}.attachment-item{align-items:center;gap:calc(7px * var(--font-scale,1));padding:calc(6px * var(--font-scale,1)) calc(9px * var(--font-scale,1));border:1px solid var(--border);border-radius:var(--radius-md);font-size:calc(12.5px * var(--font-scale,1));background:var(--card);max-width:100%;display:flex}.attachment-item svg{width:calc(14px * var(--font-scale,1));height:calc(14px * var(--font-scale,1));color:var(--muted-foreground);flex:none}.info-grid{gap:calc(10px * var(--font-scale,1));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.info-item{min-width:0}.info-label{font-size:calc(11.5px * var(--font-scale,1));color:var(--muted-foreground)}.info-value{font-size:calc(13px * var(--font-scale,1));margin-top:calc(2px * var(--font-scale,1));word-break:break-all}.info-item.full{grid-column:1/-1}.detail-head{align-items:center;gap:calc(8px * var(--font-scale,1));flex-direction:column;display:flex}@media (max-width:700px){.drawer{width:100vw}.info-grid{grid-template-columns:minmax(0,1fr)}.login-page{justify-content:center;align-items:flex-start}}

