*,*:before,*:after{box-sizing:border-box}:root{--brand-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 55%, #a855f7 100%);--brand-grad-soft: linear-gradient(135deg, rgba(99, 102, 241, .12), rgba(168, 85, 247, .1));--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .55);--card-border: #e9ebf5;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 32px -16px rgba(99, 102, 241, .16);--shadow-card-hover: 0 2px 4px rgba(16, 24, 40, .05), 0 20px 44px -16px rgba(99, 102, 241, .28);--text-strong: #1e2433;--text-muted: #7c8496;--line-soft: rgba(99, 102, 241, .1);--chart-grid: #f0f0f0;--chart-label: #8c8c8c}:root[data-theme=dark]{--glass-bg: rgba(17, 19, 32, .72);--glass-border: rgba(255, 255, 255, .08);--card-border: #262a3d;--shadow-card: 0 1px 2px rgba(0, 0, 0, .25), 0 12px 32px -16px rgba(0, 0, 0, .55);--shadow-card-hover: 0 2px 4px rgba(0, 0, 0, .3), 0 20px 44px -16px rgba(99, 102, 241, .35);--text-strong: #e6e8f2;--text-muted: #8b93a8;--line-soft: rgba(255, 255, 255, .07);--chart-grid: #2c3046;--chart-label: #8b93a8}html{height:100%}body{margin:0;font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-strong);background-color:#f2f3fa;background-image:radial-gradient(1100px 520px at 8% -8%,rgba(99,102,241,.14),transparent 60%),radial-gradient(900px 480px at 96% 4%,rgba(168,85,247,.12),transparent 60%),radial-gradient(800px 560px at 55% 108%,rgba(56,189,248,.1),transparent 60%);background-attachment:fixed}:root[data-theme=dark] body{background-color:#0e1020;background-image:radial-gradient(1100px 520px at 8% -8%,rgba(99,102,241,.16),transparent 60%),radial-gradient(900px 480px at 96% 4%,rgba(168,85,247,.13),transparent 60%),radial-gradient(800px 560px at 55% 108%,rgba(56,189,248,.08),transparent 60%)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#cdd2e4;border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:#aeb5cf}:root[data-theme=dark] *::-webkit-scrollbar-thumb{background:#383e56}:root[data-theme=dark] *::-webkit-scrollbar-thumb:hover{background:#4a5170}:focus-visible{outline:2px solid #6366f1;outline-offset:2px;border-radius:6px}.app-shell{height:100vh;overflow:hidden;background:transparent}.app-sider{background:var(--glass-bg)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-right:1px solid var(--line-soft)}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-sider .ant-menu{background:transparent;border-inline-end:none!important;padding-top:8px;font-weight:500}.app-sider .ant-menu-item{transition:all .2s ease}.app-sider .ant-menu-item-selected{box-shadow:inset 0 0 0 1px #6366f12e}.app-sider .ant-menu-item-selected .anticon{background-image:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:#4f46e5}:root[data-theme=dark] .app-sider .ant-menu-item-selected .anticon{color:#a5b4fc}.brand{display:flex;align-items:center;gap:12px;padding:18px 16px;border:0;background:none;cursor:pointer;width:100%;text-align:left;border-bottom:1px solid var(--line-soft)}.brand span{display:flex;flex-direction:column;line-height:1.35}.brand strong{font-size:16px;font-weight:700;letter-spacing:-.02em;background-image:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.brand small{font-size:11px;color:var(--text-muted)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;font-size:20px;color:#fff;background:var(--brand-grad);border-radius:12px;box-shadow:0 6px 16px -6px #6366f199}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:60px;line-height:60px;background:var(--glass-bg)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line-soft)}.app-content{padding:24px 28px;overflow:auto;height:calc(100vh - 60px);animation:content-in .35s ease-out both}@keyframes content-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ant-card{border:1px solid var(--card-border);box-shadow:var(--shadow-card);transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}.ant-card .ant-card-head{border-bottom:1px solid var(--card-border);font-weight:600}.kpi-card{position:relative;overflow:hidden}.kpi-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:#6366f147}.kpi-card:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--kpi-accent, var(--brand-grad));opacity:.9}.kpi-chip{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:13px;font-size:20px;color:#fff;background:var(--kpi-accent, var(--brand-grad));box-shadow:0 8px 18px -8px var(--kpi-glow, rgba(99, 102, 241, .55))}.page-title{position:relative;padding-left:14px;letter-spacing:-.02em}.page-title:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:4px;background:var(--brand-grad)}.page-subtitle{padding-left:14px}.chart-grid{stroke:var(--chart-grid)}.chart-label{fill:var(--chart-label)}.ant-table{background:transparent}.ant-table-thead>tr>th{font-weight:600;text-transform:uppercase;font-size:11px!important;letter-spacing:.04em}.user-menu{padding:4px 10px 4px 4px;border-radius:999px;transition:background .2s ease}.user-menu:hover{background:#6366f114}.user-copy{display:flex;flex-direction:column;line-height:1.3}.sider-footnote{margin-top:auto;padding:12px 16px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--line-soft);word-break:break-all}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px;background:radial-gradient(900px 600px at 12% 10%,rgba(99,102,241,.22),transparent 60%),radial-gradient(800px 600px at 88% 18%,rgba(168,85,247,.2),transparent 60%),radial-gradient(900px 700px at 50% 110%,rgba(56,189,248,.18),transparent 60%),#eef0fa}:root[data-theme=dark] .login-bg{background:radial-gradient(900px 600px at 12% 10%,rgba(99,102,241,.25),transparent 60%),radial-gradient(800px 600px at 88% 18%,rgba(168,85,247,.2),transparent 60%),radial-gradient(900px 700px at 50% 110%,rgba(56,189,248,.14),transparent 60%),#0e1020}:root[data-theme=dark] .login-blob{opacity:.3}.login-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;animation:blob-float 14s ease-in-out infinite alternate}.login-blob-1{width:380px;height:380px;top:-120px;left:-80px;background:#818cf8}.login-blob-2{width:320px;height:320px;bottom:-100px;right:-60px;background:#c084fc;animation-delay:-5s}.login-blob-3{width:260px;height:260px;top:40%;left:62%;background:#67e8f9;animation-delay:-9s}@keyframes blob-float{0%{transform:translate(0) scale(1)}to{transform:translate(40px,-30px) scale(1.12)}}.login-card{width:420px;max-width:100%;border-radius:20px;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 60px -20px #4f46e559;position:relative;z-index:1;animation:content-in .45s ease-out both}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--brand-grad);border-radius:16px;color:#fff;font-size:26px;font-weight:800;box-shadow:0 12px 28px -10px #6366f1a6}.login-title{background-image:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent!important}.login-hint{margin-top:24px;padding:12px 16px;background:var(--brand-grad-soft);border:1px dashed rgba(99,102,241,.3);border-radius:12px}.ant-btn-primary{background:var(--brand-grad);border:none;box-shadow:0 8px 20px -8px #6366f199;transition:box-shadow .2s ease,transform .2s ease,filter .2s ease}.ant-btn-primary:not(:disabled):hover{filter:brightness(1.08);box-shadow:0 10px 24px -8px #6366f1b3;transform:translateY(-1px)}.ant-btn-primary:not(:disabled):active{transform:translateY(0);filter:brightness(.98)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.notification-panel{width:280px;padding:12px;border-radius:12px;color:var(--text-strong);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--card-border);box-shadow:0 6px 16px #0000002e}.notification-panel .ant-empty-description{color:var(--text-muted)}
