@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{--indigo-600: #4f46e5;--indigo-500: #6366f1;--indigo-400: #818cf8;--cyan-500: #22d3ee;--violet-500: #8b5cf6;--slate-900: #0f172a;--slate-700: #334155;--slate-500: #64748b;--bg-base: #eef1f8;--sidebar-bg: linear-gradient(180deg, #08080f 0%, #12102a 45%, #1a1640 100%);--card-glass: rgba(255, 255, 255, .92);--glow-indigo: 0 8px 32px rgba(99, 102, 241, .14)}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,-apple-system,sans-serif;background:var(--bg-base);color:var(--slate-900);-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:flex;background:#08080f;overflow:hidden}.auth-brand{flex:1;position:relative;display:flex;flex-direction:column;justify-content:center;padding:64px;background:var(--sidebar-bg);overflow:hidden}.auth-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(99,102,241,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.07) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 20%,transparent 70%);mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 20%,transparent 70%)}.auth-brand:after{content:"";position:absolute;top:-15%;right:-5%;width:520px;height:520px;background:radial-gradient(circle,rgba(139,92,246,.2) 0%,transparent 70%);pointer-events:none}.auth-brand-inner{position:relative;z-index:1;max-width:420px}.auth-logo{display:flex;align-items:center;gap:12px;margin-bottom:48px}.auth-logo-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--indigo-600),var(--violet-500));display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;box-shadow:0 8px 24px #6366f173}.auth-logo-text{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.02em}.auth-logo-text span{background:linear-gradient(90deg,#a5b4fc,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-headline{font-size:36px;font-weight:700;color:#fff;line-height:1.25;letter-spacing:-.03em;margin:0 0 16px}.auth-subline{font-size:16px;color:#e2e8f0a6;line-height:1.7;margin:0}.auth-features{margin-top:48px;display:flex;flex-direction:column;gap:16px}.auth-feature{display:flex;align-items:center;gap:12px;color:#e2e8f0cc;font-size:14px}.auth-feature-dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--violet-500),var(--indigo-500));box-shadow:0 0 12px #8b5cf699;flex-shrink:0}.auth-form-panel{width:480px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:48px;background:var(--bg-base);position:relative}.auth-form-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 80%,rgba(99,102,241,.06) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(34,211,238,.05) 0%,transparent 50%)}.auth-card{position:relative;z-index:1;width:100%;max-width:380px;background:var(--card-glass);border-radius:20px;padding:40px 36px;box-shadow:var(--glow-indigo),0 1px #fffc inset;border:1px solid rgba(255,255,255,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.auth-card-title{font-size:24px;font-weight:700;color:var(--slate-900);margin:0 0 8px;letter-spacing:-.02em}.auth-card-desc{font-size:14px;color:var(--slate-500);margin:0 0 32px}.auth-footer-link{text-align:center;margin-top:24px;font-size:14px;color:var(--slate-500)}.auth-submit-btn{height:44px!important;font-weight:600!important;border-radius:10px!important;background:linear-gradient(135deg,var(--indigo-600),#4338ca)!important;border:none!important;box-shadow:0 4px 16px #6366f159!important}.auth-submit-btn:hover{background:linear-gradient(135deg,var(--indigo-500),var(--indigo-600))!important;box-shadow:0 6px 20px #6366f173!important}@media(max-width:900px){.auth-brand{display:none}.auth-form-panel{width:100%}}.app-layout{min-height:100vh}.app-sider{background:var(--sidebar-bg)!important;border-right:1px solid rgba(255,255,255,.06)!important;position:relative;overflow:hidden}.app-sider:before{content:"";position:absolute;top:0;left:0;right:0;height:200px;background:radial-gradient(ellipse at 50% 0%,rgba(99,102,241,.18) 0%,transparent 70%);pointer-events:none}.app-sider-logo{position:relative;z-index:1;padding:24px 20px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.app-sider-logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--indigo-600),var(--violet-500));display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;flex-shrink:0}.app-sider-logo-text{font-size:15px;font-weight:700;color:#fff;line-height:1.3}.app-sider-logo-text small{display:block;font-size:11px;font-weight:500;color:#94a3b8cc;letter-spacing:.04em;text-transform:uppercase}.app-sider-menu{position:relative;z-index:1;border-inline-end:none!important;background:transparent!important;padding:0 8px}.app-main{background:var(--bg-base);position:relative}.app-main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(99,102,241,.035) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.app-header.ant-layout-header{position:relative;z-index:1;background:#ffffffd1!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(148,163,184,.15)!important;padding:16px 28px!important;height:auto!important;min-height:72px;line-height:1.4!important;color:var(--slate-900);display:flex;align-items:center;justify-content:space-between;gap:24px}.app-header-left{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;flex:1}.app-header-title{margin:0;padding:0;font-size:20px;font-weight:700;line-height:1.25;color:var(--slate-900);letter-spacing:-.02em}.app-header-subtitle{margin:0;padding:0;font-size:13px;font-weight:400;line-height:1.5;color:var(--slate-500)}.app-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.app-header-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;background:linear-gradient(135deg,#6366f114,#8b5cf614);border:1px solid rgba(99,102,241,.18);font-size:12px;font-weight:600;color:var(--indigo-600)}.app-header-badge-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b98199;animation:pulse 2s infinite}.app-header-logout{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:8px;background:transparent;font-size:13px;color:var(--slate-500);cursor:pointer;transition:color .15s,background .15s}.app-header-logout:hover{color:var(--indigo-600);background:#6366f114}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app-content{position:relative;z-index:1;margin:20px 24px 24px!important;padding:0!important;background:transparent!important}.page-header{margin-bottom:24px}.page-header-title{font-size:22px;font-weight:700;color:var(--slate-900);letter-spacing:-.02em;margin:0}.page-header-desc{font-size:14px;color:var(--slate-500);margin:6px 0 0}.dashboard-hint{margin:0 0 16px;font-size:13px;color:var(--slate-500);padding:8px 14px;background:#6366f10f;border:1px solid rgba(99,102,241,.12);border-radius:8px;display:inline-block}.page-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.page-card{background:#fff;border-radius:14px;border:1px solid rgba(148,163,184,.15);box-shadow:0 2px 12px #0f172a0a;overflow:hidden}.page-card .ant-card-head{border-bottom:1px solid rgba(148,163,184,.12);font-weight:600}.stat-card{background:#fff;border-radius:14px;padding:20px;border:1px solid rgba(148,163,184,.12);box-shadow:0 2px 12px #0f172a0a;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.stat-card-clickable{cursor:pointer}.stat-card-clickable:hover{transform:translateY(-2px);box-shadow:var(--glow-indigo)}.stat-card-active{border-color:#6366f159;box-shadow:var(--glow-indigo);transform:translateY(-2px)}.chart-panel{margin-top:20px;background:#fff;border-radius:14px;border:1px solid rgba(148,163,184,.12);box-shadow:0 2px 12px #0f172a0a;padding:20px 24px 8px}.chart-panel-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.chart-panel-title{font-size:16px;font-weight:700;color:var(--slate-900);letter-spacing:-.02em}.chart-panel-hint{font-size:12px;color:var(--slate-500)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--stat-accent, linear-gradient(90deg, var(--indigo-600), var(--violet-500)))}.stat-card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:14px;background:var(--stat-icon-bg, rgba(99, 102, 241, .1));color:var(--stat-icon-color, var(--indigo-600))}.stat-card-label{font-size:13px;color:var(--slate-500);margin-bottom:4px}.stat-card-value{font-size:28px;font-weight:700;color:var(--slate-900);letter-spacing:-.03em;line-height:1.2}.table-card{background:#fff;border-radius:14px;border:1px solid rgba(148,163,184,.12);box-shadow:0 2px 12px #0f172a0a;overflow:hidden;padding:4px 4px 0}.table-card .ant-table{background:transparent}.table-card .ant-table-thead>tr>th{background:#f8fafc!important;font-weight:600;font-size:13px}.info-card{background:#fff;border-radius:14px;border:1px solid rgba(148,163,184,.12);box-shadow:0 2px 12px #0f172a0a;padding:28px}.info-card .ant-descriptions-item-label{color:var(--slate-500)!important;font-weight:500}.info-card .ant-descriptions-item-content{color:var(--slate-900)!important;font-weight:600}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--slate-500);margin-bottom:16px;text-decoration:none;transition:color .15s}.back-link:hover{color:var(--indigo-600)}.plan-tag{display:inline-block;padding:2px 10px;border-radius:6px;font-size:12px;font-weight:600;background:#6366f11a;color:var(--indigo-600)}
