:root{--color-primary:#d90217;--color-primary-hover:#b80114;--color-primary-bg:rgba(217,2,23,.06);--color-success:#16a34a;--color-warning:#ea580c;--color-error:#dc2626;--color-info:#2563eb;--color-bg-page:#f8f9fb;--color-bg-card:#fff;--color-bg-subtle:#f4f5f7;--color-border:#e8eaef;--color-border-strong:#d1d5dc;--color-text:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-sider-bg:#0f172a;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-xxl:32px;--motion-fast:120ms;--motion-normal:200ms;--motion-easing:cubic-bezier(0.25,0.1,0.25,1);--motion-easing-out:cubic-bezier(0.16,1,0.3,1);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 12px 32px rgba(0,0,0,.12);--focus-ring:none}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.6;color:var(--color-text);background:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11" 1}.app-shell{display:flex;height:100vh;height:100dvh;overflow:hidden}.app-main{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.app-content{padding:var(--spacing-xl) var(--spacing-xxl);padding-bottom:64px;max-width:1400px;margin:0 auto;min-width:0;width:100%}.app-content-narrow{max-width:720px;margin-left:auto;margin-right:auto}.app-sider-desktop{display:flex!important}.app-hamburger{display:none!important}@media (max-width:768px){.app-sider-desktop{display:none!important}.app-hamburger{display:flex!important}.app-header{padding:0 var(--spacing-lg)!important}.app-content{padding:var(--spacing-lg)!important;padding-bottom:48px!important}.app-user-name{display:none!important}}.app-table-wrapper{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-card)}.app-table-wrapper .ant-table{border-radius:var(--radius-lg)}.app-table-wrapper .ant-table-thead>tr>td,.app-table-wrapper .ant-table-thead>tr>th{white-space:nowrap;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);background:var(--color-bg-subtle)!important;border-bottom:1px solid var(--color-border);padding:10px 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.app-table-wrapper .ant-table-tbody>tr>td{padding:12px 16px;border-bottom:1px solid var(--color-border);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;transition:background-color var(--motion-fast) var(--motion-easing)}.app-table-wrapper .ant-table-tbody>tr:last-child>td{border-bottom:none}.app-table-wrapper .ant-table-tbody>tr:hover>td{background:rgba(0,0,0,.02)!important}.app-table-wrapper .ant-table-row{cursor:pointer;transition:background-color var(--motion-fast) var(--motion-easing)}.app-table-wrapper .ant-pagination{padding:12px 16px;margin:0!important;border-top:1px solid var(--color-border);flex-shrink:0}.app-table-wrapper .ant-spin-container,.app-table-wrapper .ant-spin-nested-loading,.app-table-wrapper .ant-table-wrapper{display:flex;flex-direction:column;flex:1 1;min-height:0}.app-table-wrapper .ant-table{flex:1 1;min-height:0}.app-table-wrapper .ant-table-container{display:flex;flex-direction:column;height:100%}.app-table-wrapper .ant-table-body{flex:1 1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.1) transparent}.app-table-wrapper .ant-table-body::-webkit-scrollbar{width:5px}.app-table-wrapper .ant-table-body::-webkit-scrollbar-track{background:transparent}.app-table-wrapper .ant-table-body::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}.app-table-wrapper .ant-table-body::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.18)}.ant-card{border-radius:var(--radius-lg)!important;border-color:var(--color-border)!important;transition:box-shadow var(--motion-normal) var(--motion-easing),border-color var(--motion-normal) var(--motion-easing)}.ant-tag{border-radius:var(--radius-sm)!important;font-size:12px;font-weight:500;line-height:20px;padding:0 8px;border:none}.ant-menu-dark .ant-menu-item{border-radius:var(--radius-md)!important;margin:2px 10px!important;height:38px!important;line-height:38px!important;font-weight:500;font-size:13px;transition:background-color var(--motion-fast) var(--motion-easing),color var(--motion-fast) var(--motion-easing)!important}.ant-menu-dark .ant-menu-item:hover{background:hsla(0,0%,100%,.06)!important}.ant-menu-dark .ant-menu-item-selected{background:hsla(0,0%,100%,.1)!important;font-weight:600}.ant-menu-dark .ant-menu-item-active:not(.ant-menu-item-selected){background:hsla(0,0%,100%,.06)!important;color:hsla(0,0%,100%,.85)!important}.ant-menu-dark .ant-menu-item-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:hsla(0,0%,100%,.3);padding:20px 22px 6px}.app-main::-webkit-scrollbar{width:5px}.app-main::-webkit-scrollbar-track{background:transparent}.app-main::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}.app-main::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.18)}.transition-fast{transition:all var(--motion-fast) var(--motion-easing)}*,:after,:before{outline:none!important;-webkit-tap-highlight-color:transparent!important}:active,:focus,:focus-visible{outline:none!important;box-shadow:none!important}.app-card-hover{transition:box-shadow var(--motion-normal) var(--motion-easing),border-color var(--motion-normal) var(--motion-easing)}.app-card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-content>*{animation:fadeIn .2s var(--motion-easing-out) both}.ant-btn:active,.ant-btn:focus,.ant-menu-item:active,.ant-menu-item:focus{transform:none!important}.ant-btn.ant-btn-loading:before{opacity:.15!important;background:#000!important}.ant-btn-dangerous.ant-btn-loading:before,.ant-btn-primary.ant-btn-loading:before{background:#fff!important}.ant-collapse{border-radius:var(--radius-lg)!important;border-color:var(--color-border)!important;background:var(--color-bg-card)!important}.ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:14px 16px!important;align-items:center!important}.ant-tabs-nav:before{border-color:var(--color-border)!important}@media (max-width:576px){.app-table-wrapper .ant-table-thead>tr>td,.app-table-wrapper .ant-table-thead>tr>th{padding:8px 12px;font-size:10px}.app-table-wrapper .ant-table-tbody>tr>td{padding:10px 12px;font-size:13px}}.ant-row{align-items:stretch!important}.ant-row>.ant-col{display:flex;flex-direction:column}.ant-row>.ant-col>*{flex:1 1}.chart-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);padding:20px;transition:box-shadow var(--motion-normal) var(--motion-easing);min-height:200px;height:100%;display:flex;flex-direction:column}.chart-card>:last-child{flex:1 1}.chart-card:hover{box-shadow:var(--shadow-sm)}.chart-card-title{font-size:13px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px;flex-shrink:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}@media (max-width:640px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:400px){.stat-grid{grid-template-columns:1fr}}.bar-row{display:flex;align-items:center;gap:12px;padding:6px 0}.bar-label{width:120px;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.bar-track{flex:1 1;height:8px;border-radius:4px;background:var(--color-bg-subtle);overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .5s var(--motion-easing-out)}.bar-value{width:40px;text-align:right;font-size:13px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text);flex-shrink:0}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 16px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.glass-panel{background:hsla(0,0%,100%,.75);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 8px 32px 0 rgba(31,38,135,.15)}.hud-wrapper{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);z-index:1000;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;max-width:90vw;transition:all var(--motion-normal) var(--motion-easing-out);animation:hudPop .4s var(--motion-easing-out) both}@keyframes hudPop{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}.hud-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:999px;font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;transition:all var(--motion-fast) var(--motion-easing);cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hud-chip:hover{background:#fff;border-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.hud-chip-label{color:var(--color-text-tertiary);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.hud-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:var(--color-text-tertiary);cursor:pointer;transition:background-color var(--motion-fast)}.hud-chip-remove:hover{background:var(--color-error-bg);color:var(--color-error)}.hud-add-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 12px rgba(217,2,23,.3);transition:all var(--motion-normal) var(--motion-easing)}.hud-add-btn:hover{background:var(--color-primary-hover);transform:scale(1.05) rotate(90deg);box-shadow:0 6px 16px rgba(217,2,23,.4)}.hud-clear-btn{font-size:12px;font-weight:600;color:var(--color-text-tertiary);padding:0 8px;cursor:pointer;transition:color var(--motion-fast)}.hud-clear-btn:hover{color:var(--color-error)}.app-page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media (max-width:576px){.app-page-title{flex-wrap:wrap;gap:var(--spacing-md)}.app-page-title>div:first-child{flex:1 1 100%}.app-page-title>div:last-child{width:100%;margin-top:8px;padding-top:0!important}}.app-sider-mobile .ant-drawer-content-wrapper{width:260px!important}