:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-400: #60a5fa;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--grad-brand: linear-gradient(135deg, #1d4ed8 0%, #3b82f6 100%);--grad-brand-hover: linear-gradient(135deg, #1e40af 0%, #2563eb 100%);--grad-sidebar: linear-gradient(180deg, #1e40af 0%, #1d4ed8 55%, #2563eb 100%);--ink-1: #0f172a;--ink-2: #1e293b;--ink-3: #334155;--ink-4: #475569;--ink-5: #64748b;--ink-6: #94a3b8;--line-1: #e2e8f0;--line-2: #eef2f7;--fill-1: #f8fafc;--fill-2: #f1f5f9;--bg: #f5f7fa;--success: #15803d;--success-bg: #f0fdf4;--success-bd: #bbf7d0;--warning: #b45309;--warning-bg: #fffbeb;--warning-bd: #fde68a;--danger: #dc2626;--danger-bg: #fef2f2;--danger-bd: #fecaca;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 14px;--shadow-1: 0 1px 2px rgba(15, 23, 42, .04);--shadow-2: 0 8px 24px rgba(15, 23, 42, .1);--shadow-brand: 0 2px 6px rgba(29, 78, 216, .24);--font-sans: "Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;--font-num: "SF Mono", "JetBrains Mono", Consolas, monospace;--sidebar-w: 220px;--sidebar-item-h: 40px;--topbar-h: 56px;--page-pad: 24px;--login-ratio-left: 2;--login-card-max: 440px;--login-card-min: 320px;--login-brand-h-sm: 160px;--login-brand-h-xs: 120px;--login-card-pad: 32px;--login-input-h: 40px;--login-btn-h: 42px;--login-art-line: rgba(255, 255, 255, .05);--login-art-line-strong: rgba(255, 255, 255, .075);--login-art-mod: rgba(255, 255, 255, .145);--login-art-mod-fill: rgba(255, 255, 255, .03)}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink-2);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-6)}::-webkit-scrollbar-track{background:transparent}.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap;line-height:20px;border:none;background:none;padding:0}.tag i{width:6px;height:6px;border-radius:50%;flex:none}.t-success{color:var(--success)}.t-success i{background:var(--success)}.t-warning{color:var(--warning)}.t-warning i{background:var(--warning)}.t-danger{color:var(--danger)}.t-danger i{background:var(--danger)}.t-info{color:var(--brand-700)}.t-info i{background:var(--brand-600)}.t-neutral{color:var(--ink-5)}.t-neutral i{background:var(--ink-5)}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled){background:var(--grad-brand)!important;border-color:transparent!important;box-shadow:var(--shadow-brand)!important}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{background:var(--grad-brand-hover)!important;border-color:transparent!important}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):active{background:var(--grad-brand-hover)!important}.ant-btn{white-space:nowrap}.ant-btn:focus-visible{outline:2px solid rgba(59,130,246,.22);outline-offset:1px}.ant-table-thead>tr>th.ant-table-cell{padding-top:11px!important;padding-bottom:11px!important;font-weight:500}.ant-table-tbody>tr>td{font-variant-numeric:tabular-nums}.ant-card{border-color:var(--line-1);box-shadow:var(--shadow-1)}.ant-pro-page-container-children-container{padding-inline:0!important;padding-block:0!important}.ant-pro-page-container-warp-page-header{padding-inline:0!important}.ant-pro-page-container .ant-page-header-heading-title{font-size:20px;font-weight:600;color:var(--ink-1)}.ant-pro-page-container .ant-page-header-heading-sub-title{color:var(--ink-5)}.ant-pro-card{border-radius:var(--radius-lg)}.ant-pro-card-border{border-color:var(--line-1)}.admin-shell{min-height:100vh}.admin-sider{background:var(--grad-sidebar)!important;position:fixed!important;inset-block:0;inset-inline-start:0;z-index:40;overflow:auto}.admin-sider .ant-layout-sider-children{display:flex;flex-direction:column}.admin-brand{height:var(--topbar-h);flex:none;display:flex;align-items:center;padding:0 20px;color:#fff;font-size:15px;font-weight:600;letter-spacing:.2px;border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap;overflow:hidden}.admin-brand__sub{display:block;font-size:11px;font-weight:400;line-height:1.2;color:#ffffffb8}.admin-sider .ant-menu{background:transparent;border-inline-end:none!important;padding-block:8px;color:#ffffffc7}.admin-sider .ant-menu-item,.admin-sider .ant-menu-submenu-title{position:relative}.admin-sider .ant-menu-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--brand-400);border-radius:0 2px 2px 0;transition:height .16s ease}.admin-sider .ant-menu-item-selected:before{height:20px}.admin-sider .ant-menu-item-selected{background:#ffffff1f!important;color:#fff!important}.admin-sider .ant-menu-submenu-selected>.ant-menu-submenu-title{color:#fff}.admin-sider .ant-menu-item:hover,.admin-sider .ant-menu-submenu-title:hover{color:#fff!important}.admin-sider .ant-menu-sub.ant-menu-inline{background:transparent!important}.admin-sider .ant-menu-submenu-arrow{color:#ffffff8c}.admin-sider .ant-menu-item .anticon,.admin-sider .ant-menu-submenu-title .anticon{font-size:16px}.admin-main{margin-inline-start:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.admin-header{height:var(--topbar-h);flex:none;position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line-1);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px}.admin-header__left{min-width:0;display:flex;align-items:center;gap:12px}.admin-header .ant-breadcrumb{font-size:13px}.admin-header .ant-breadcrumb a,.admin-header .ant-breadcrumb li:last-child span{color:var(--ink-5)}.admin-header .ant-breadcrumb li:last-child span{color:var(--ink-1);font-weight:500}.admin-content{flex:1;padding:var(--page-pad);background:var(--bg);min-width:0}.admin-footer{flex:none;text-align:center;padding:16px;color:var(--ink-5);font-size:12px;border-top:1px solid var(--line-2);background:#fff}.user-trigger{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .16s ease}.user-trigger:hover{background:var(--fill-2)}.user-avatar{width:30px;height:30px;flex:none;border-radius:50%;background:var(--grad-brand);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-name{font-size:13px;color:var(--ink-3);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-caret{font-size:12px;color:var(--ink-6);transition:transform .16s ease}.user-caret.is-open{transform:rotate(180deg)}.ant-popover .ant-popover-inner{padding:0!important}.user-panel{width:200px;box-sizing:border-box;background:#fff;border:1px solid var(--line-1);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:6px}.user-panel__head{padding:6px 10px 10px;border-bottom:1px solid var(--line-2);margin-bottom:6px}.user-panel__name{font-size:14px;font-weight:600;color:var(--ink-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel__sub{font-size:12px;color:var(--ink-5);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel__item{height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:6px;font-size:14px;color:var(--ink-3);cursor:pointer;transition:background .16s ease,color .16s ease}.user-panel__item:hover{background:var(--fill-1);color:var(--ink-1)}.user-panel__item .anticon{font-size:16px;color:var(--ink-5)}.user-panel__item--danger,.user-panel__item--danger .anticon{color:var(--danger)}.user-panel__item--danger:hover{background:var(--fill-1);color:var(--danger)}.user-panel__sep{height:1px;background:var(--line-2);margin:6px 0}
