:root,html.dark{--pp-background:#080b14;--pp-foreground:#e8edf7;--pp-card:#111627;--pp-card-fg:#e8edf7;--pp-muted:#1a2138;--pp-muted-fg:#8a93ab;--pp-border:#232b45;--pp-input:#1a2138;--pp-primary:#3b82f6;--pp-primary-hover:#60a5fa;--pp-primary-active:#2563eb;--pp-state-success:#22c55e;--pp-state-warning:#f59e0b;--pp-state-error:#ef4444;--pp-glass-bg:#11162799;--pp-glass-border:#3b82f62e;--pp-glow-primary:#3b82f659;--pp-grid-line:#3b82f60f;--pp-surface-elevated:#151b2e;--pp-shell-gradient-1:#3b82f61f;--pp-shell-gradient-2:#3b82f612}html.light{--pp-background:#f4f6fb;--pp-foreground:#0f1729;--pp-card:#fff;--pp-card-fg:#0f1729;--pp-muted:#eef2f9;--pp-muted-fg:#5b6478;--pp-border:#e2e8f4;--pp-input:#eef2f9;--pp-primary:#3b82f6;--pp-primary-hover:#2563eb;--pp-primary-active:#1d4ed8;--pp-state-success:#16a34a;--pp-state-warning:#d97706;--pp-state-error:#dc2626;--pp-glass-bg:#ffffffb3;--pp-glass-border:#3b82f629;--pp-glow-primary:#3b82f638;--pp-grid-line:#3b82f60d;--pp-surface-elevated:#fff;--pp-shell-gradient-1:#3b82f60f;--pp-shell-gradient-2:#3b82f60a}html,body{background:var(--pp-background);color:var(--pp-foreground);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;transition:background-color .2s,color .2s}*{box-sizing:border-box}a{color:inherit;text-decoration:none}.ant-pro-layout .ant-layout{background:var(--pp-background)!important}.ant-pro-layout .ant-pro-layout-content{background:radial-gradient(1100px 560px at 78% -12%, var(--pp-shell-gradient-1), transparent 60%), radial-gradient(820px 460px at 8% 112%, var(--pp-shell-gradient-2), transparent 60%), var(--pp-background)!important}.ant-card{-webkit-backdrop-filter:blur(12px)}.stat-card:hover{box-shadow:0 4px 20px var(--pp-glow-primary);transition:transform .2s;transform:translateY(-2px)}.stat-card{transition:transform .2s,box-shadow .2s}.admin-content{min-height:calc(100vh - 56px);padding:16px}.ant-pro-layout .ant-layout-header{-webkit-backdrop-filter:blur(16px)!important;border-bottom:1px solid var(--pp-border)!important}.ant-pro-layout .ant-layout-sider{border-right:1px solid var(--pp-border)!important}html.dark ::-webkit-scrollbar{width:6px;height:6px}html.dark ::-webkit-scrollbar-track{background:0 0}html.dark ::-webkit-scrollbar-thumb{background:var(--pp-border);border-radius:3px}html.dark ::-webkit-scrollbar-thumb:hover{background:var(--pp-muted-fg)}.login-shell{background:var(--pp-background);height:100vh;min-height:600px;position:relative;overflow:hidden}.login-bg-grid{z-index:0;background-image:linear-gradient(var(--pp-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--pp-grid-line) 1px, transparent 1px);pointer-events:none;background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 80%,#000 35%,#0000 85%);mask-image:radial-gradient(90% 80%,#000 35%,#0000 85%)}.login-glow{z-index:0;filter:blur(90px);pointer-events:none;border-radius:50%;position:absolute}.login-glow--tl{background:radial-gradient(circle, var(--pp-glow-primary) 0%, transparent 68%);width:540px;height:540px;animation:6.5s ease-in-out infinite login-pulse;top:-14%;left:-10%}.login-glow--br{background:radial-gradient(circle,#3b82f642 0%,#0000 68%);width:600px;height:600px;animation:7.5s ease-in-out infinite reverse login-pulse;bottom:-16%;right:-12%}@keyframes login-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.92;transform:scale(1.07)}}.login-neural{z-index:0;opacity:.85;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.login-node-pulse{transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite login-node-pulse}@keyframes login-node-pulse{0%,to{opacity:.45}50%{opacity:1}}.login-brand-panel{border-right:1px solid var(--pp-glass-border);position:relative;overflow:hidden}.login-brand-mark{filter:drop-shadow(0 0 14px #3b82f673);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.login-cap-icon{background:var(--pp-input);border:1px solid var(--pp-glass-border);width:42px;height:42px;color:var(--pp-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:inline-flex}.login-card{z-index:1;background:var(--pp-glass-bg);-webkit-backdrop-filter:blur(20px)saturate(140%);border:1px solid var(--pp-glass-border);border-radius:16px;flex-direction:column;gap:24px;width:100%;max-width:448px;padding:36px 28px;animation:.42s cubic-bezier(.16,1,.3,1) both login-card-in;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0a}@keyframes login-card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.login-eyebrow{color:var(--pp-primary);border:1px solid var(--pp-glass-border);background:#3b82f61a;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.login-eyebrow-dot{background:var(--pp-primary);width:6px;height:6px;box-shadow:0 0 8px var(--pp-primary);border-radius:50%;animation:2.4s ease-in-out infinite login-node-pulse}.login-form{flex-direction:column;gap:20px;display:flex}.login-field{flex-direction:column;gap:8px;display:flex}.login-label{color:var(--pp-foreground);font-size:13px;font-weight:500}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-icon{color:var(--pp-muted-fg);pointer-events:none;font-size:16px;position:absolute;left:14px}.login-input{width:100%;height:44px;color:var(--pp-foreground);background:var(--pp-input);border:1px solid var(--pp-border);border-radius:12px;outline:none;padding:0 44px 0 42px;font-size:14px;transition:border-color .25s,box-shadow .25s}.login-input::placeholder{color:var(--pp-muted-fg)}.login-input:focus{border-color:var(--pp-primary);box-shadow:0 0 0 3px #3b82f629}.login-pw-toggle{width:32px;height:32px;color:var(--pp-muted-fg);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:color .25s,background-color .25s;display:inline-flex;position:absolute;right:6px}.login-pw-toggle:hover{color:var(--pp-primary);background:#3b82f614}.login-row{justify-content:space-between;align-items:center;display:flex}.login-remember{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--pp-muted-fg);align-items:center;gap:8px;font-size:13px;display:flex}.login-checkbox{appearance:none;border:1px solid var(--pp-border);background:var(--pp-input);cursor:pointer;border-radius:4px;flex-shrink:0;width:16px;height:16px;transition:background-color .25s,border-color .25s;position:relative}.login-checkbox:checked{background:var(--pp-primary);border-color:var(--pp-primary)}.login-checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.login-link{color:var(--pp-muted-fg);font-size:13px;text-decoration:none;transition:color .25s}.login-link:hover{color:var(--pp-primary)}.login-btn{color:#fff;background:var(--pp-primary);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;height:46px;font-size:15px;font-weight:600;transition:background-color .25s,box-shadow .25s,transform .25s;display:flex;box-shadow:0 0 22px #3b82f652}.login-btn:hover:not(:disabled){background:var(--pp-primary-hover);transform:translateY(-1px);box-shadow:0 0 30px #3b82f680}.login-btn:active:not(:disabled){background:var(--pp-primary-active);transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.login-copyright{color:var(--pp-muted-fg);text-align:center;font-size:12px}.placeholder-page{background:var(--pp-card);text-align:center;color:var(--pp-muted-fg);border:1px solid var(--pp-border);border-radius:14px;padding:48px 32px}.placeholder-page h2{color:var(--pp-foreground);margin-bottom:8px}.ant-pro-sider .ant-menu-item.ant-menu-item-selected{position:relative}.ant-pro-sider .ant-menu-item.ant-menu-item-selected:before{content:"";background:var(--pp-primary);width:3px;height:22px;box-shadow:0 0 10px var(--pp-glow-primary);border-radius:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.ant-card .ant-card-body{transition:background-color .2s}.ant-pro-layout .ant-pro-layout-logo{align-items:center;gap:10px;display:flex}.ant-pro-layout .ant-pro-layout-logo h1{color:var(--pp-foreground)!important;font-size:16px!important;font-weight:700!important}@media (prefers-reduced-motion:reduce){.login-card{animation:none!important}.stat-card:hover{transform:none!important}}.pp-tabbar{z-index:12;background:var(--pp-glass-bg);-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--pp-border);align-items:center;gap:6px;height:42px;margin:-16px -16px 12px;padding:0 8px;display:flex;position:sticky;top:0}.pp-tabbar-scroll{scroll-behavior:smooth;scrollbar-width:none;flex:1;align-items:center;gap:4px;min-width:0;height:100%;display:flex;overflow:auto hidden}.pp-tabbar-scroll::-webkit-scrollbar{display:none}.pp-tab{height:30px;color:var(--pp-muted-fg);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:color .18s,background-color .18s,border-color .18s;display:inline-flex;position:relative}.pp-tab:hover{color:var(--pp-foreground);background:var(--pp-muted)}.pp-tab-icon{opacity:.85;font-size:14px;display:inline-flex}.pp-tab-title{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.pp-tab--active{color:var(--pp-primary);background:var(--pp-card);border-color:var(--pp-border);box-shadow:0 2px 8px #0000001f}.pp-tab--active:after{content:"";background:var(--pp-primary);height:2px;box-shadow:0 0 8px var(--pp-glow-primary);border-radius:2px;position:absolute;bottom:-1px;left:10px;right:10px}.pp-tab-close{width:16px;height:16px;color:var(--pp-muted-fg);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:9px;transition:opacity .18s,background-color .18s,color .18s;display:inline-flex}.pp-tab:hover .pp-tab-close,.pp-tab--active .pp-tab-close{opacity:1}.pp-tab-close:hover{color:#fff;background:var(--pp-state-error)}.pp-tabbar-arrow{width:24px;height:30px;color:var(--pp-muted-fg);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;transition:color .18s,background-color .18s;display:inline-flex}.pp-tabbar-arrow:hover{color:var(--pp-primary);background:var(--pp-muted)}.pp-tabbar-ops{width:30px;height:30px;color:var(--pp-muted-fg);border:1px solid var(--pp-border);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;transition:color .18s,border-color .18s,background-color .18s;display:inline-flex}.pp-tabbar-ops:hover{color:var(--pp-primary);border-color:var(--pp-primary);background:var(--pp-muted)}.keepalive-pane{width:100%}.ant-pro-sider .ant-menu-light .ant-menu-item-group-title,.ant-pro-sider .ant-menu-dark .ant-menu-item-group-title{letter-spacing:.6px;text-transform:uppercase;opacity:.7;font-size:11px}.ant-pro-sider .ant-menu-item .anticon,.ant-pro-sider .ant-menu-submenu-title .anticon{font-size:16px}.ant-pro-sider .ant-menu-item.ant-menu-item-selected:before{height:18px}.ant-pro-sider .ant-layout-sider-collapsed .ant-menu-item,.ant-pro-sider .ant-layout-sider-collapsed .ant-menu-submenu-title{text-align:center;padding-inline:0!important}.recommendation-row-unavailable>td{background:#ef444414!important}.recommendation-row-unavailable:hover>td{background:#ef444424!important}html.dark .ant-table-tbody .ant-table-cell-fix-right,html.dark .ant-table-tbody .ant-table-cell-fix-right-first,html.dark .ant-table-tbody .ant-table-cell-fix-left,html.dark .ant-table-tbody .ant-table-cell-fix-left-last,html.light .ant-table-tbody .ant-table-cell-fix-right,html.light .ant-table-tbody .ant-table-cell-fix-right-first,html.light .ant-table-tbody .ant-table-cell-fix-left,html.light .ant-table-tbody .ant-table-cell-fix-left-last{background:var(--pp-card)!important}html.dark .ant-table-tbody>tr:hover>.ant-table-cell-fix-right,html.dark .ant-table-tbody>tr:hover>.ant-table-cell-fix-left,html.dark .ant-table-tbody>tr:hover>.ant-table-cell-fix-right-first,html.dark .ant-table-tbody>tr:hover>.ant-table-cell-fix-left-last{background:var(--pp-surface-elevated)!important}html.light .ant-table-tbody>tr:hover>.ant-table-cell-fix-right,html.light .ant-table-tbody>tr:hover>.ant-table-cell-fix-left,html.light .ant-table-tbody>tr:hover>.ant-table-cell-fix-right-first,html.light .ant-table-tbody>tr:hover>.ant-table-cell-fix-left-last{background:var(--pp-muted)!important}
