:root{--bg-canvas: #F5F5F7;--bg-elevated: #FFFFFF;--bg-glass: rgba(255, 255, 255, .84);--bg-subtle: #F8FAFC;--bg-hover: rgba(15, 23, 42, .035);--text-primary: #1D1D1F;--text-secondary: #515154;--text-muted: #86868B;--border-hairline: rgba(15, 23, 42, .08);--border-strong: rgba(15, 23, 42, .14);--accent-blue: #0071E3;--accent-blue-hover: #0077ED;--accent-blue-soft: rgba(0, 113, 227, .09);--accent-indigo: #4F46E5;--status-green: #16A34A;--status-green-soft: rgba(22, 163, 74, .1);--status-amber: #D97706;--status-amber-soft: rgba(217, 119, 6, .11);--status-red: #DC2626;--status-red-soft: rgba(220, 38, 38, .1);--status-purple: #7C3AED;--status-purple-soft: rgba(124, 58, 237, .1);--shadow-card: 0 2px 12px -2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .04);--shadow-float: 0 18px 42px -10px rgba(15, 23, 42, .12), 0 4px 12px rgba(15, 23, 42, .05);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--ease-out-quart: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:var(--bg-canvas);color:var(--text-primary);line-height:1.5;font-size:14px;overflow-x:hidden}.tabular,code,pre,.mono{font-variant-numeric:tabular-nums}code,pre,.mono{font-family:SF Mono,JetBrains Mono,Menlo,Monaco,Consolas,monospace}.admin-shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.admin-sidebar{background:var(--bg-glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--border-hairline);padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}.brand-header{display:flex;align-items:center;gap:12px;padding:6px 10px 18px;border-bottom:1px solid var(--border-hairline);margin-bottom:14px}.brand-logo{width:38px;height:38px;border-radius:11px;object-fit:cover;box-shadow:0 2px 8px #0071e329;border:1px solid rgba(0,113,227,.12)}.brand-title{font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);display:flex;align-items:center;gap:6px}.brand-subtitle{font-size:11.5px;color:var(--text-muted);margin-top:1px}.nav-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:10px 12px 6px}.nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border-radius:11px;border:none;background:transparent;color:var(--text-secondary);font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;transition:background-color .14s ease-out,color .14s ease-out,transform .1s ease-out;margin-bottom:3px}.nav-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.nav-item:active{transform:scale(.985)}.nav-item.active{background-color:var(--accent-blue);color:#fff;font-weight:600;box-shadow:0 4px 12px #0071e33d}.nav-item-left{display:flex;align-items:center;gap:10px}.nav-badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;background:#0f172a0f;color:var(--text-secondary);font-variant-numeric:tabular-nums}.nav-item.active .nav-badge{background:#ffffff38;color:#fff}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-topbar{height:64px;background:var(--bg-glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border-hairline);padding:0 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.admin-content{padding:24px 28px 48px;max-width:1600px;width:100%;margin:0 auto}.card{background:var(--bg-elevated);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title{font-size:16px;font-weight:650;letter-spacing:-.015em;color:var(--text-primary);display:flex;align-items:center;gap:8px}.card-subtitle{font-size:12.5px;color:var(--text-muted);margin-top:2px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:20px}.kpi-card{background:var(--bg-elevated);border:1px solid var(--border-hairline);border-radius:var(--radius-md);padding:16px 18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s var(--ease-out-quart),box-shadow .18s var(--ease-out-quart)}.kpi-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px -4px #0f172a14}.kpi-label{font-size:12.5px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between}.kpi-value{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--text-primary);margin:8px 0 4px;font-variant-numeric:tabular-nums}.kpi-foot{font-size:11.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 15px;border-radius:10px;font-size:13px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:transform .1s ease-out,background-color .14s ease-out,border-color .14s ease-out,box-shadow .14s ease-out;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-blue);color:#fff;box-shadow:0 2px 6px #0071e338}.btn-primary:hover:not(:disabled){background:var(--accent-blue-hover)}.btn-secondary{background:#fff;color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle)}.btn-soft{background:var(--accent-blue-soft);color:var(--accent-blue)}.btn-soft:hover:not(:disabled){background:#0071e324}.btn-success{background:var(--status-green);color:#fff}.btn-warning{background:var(--status-amber);color:#fff}.btn-danger{background:var(--status-red-soft);color:var(--status-red)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:8px}.input,.select,.textarea{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--border-strong);background:#fff;color:var(--text-primary);font-size:13.5px;font-family:inherit;transition:border-color .14s ease-out,box-shadow .14s ease-out}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #0071e324}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums}.badge-green{background:var(--status-green-soft);color:var(--status-green)}.badge-amber{background:var(--status-amber-soft);color:var(--status-amber)}.badge-red{background:var(--status-red-soft);color:var(--status-red)}.badge-blue{background:var(--accent-blue-soft);color:var(--accent-blue)}.badge-purple{background:var(--status-purple-soft);color:var(--status-purple)}.badge-neutral{background:#0f172a0f;color:var(--text-secondary)}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:#fff}table.data-table{width:100%;border-collapse:collapse;font-size:13px}table.data-table th{background:#f8fafc;color:var(--text-secondary);font-weight:600;font-size:12px;text-align:left;padding:11px 14px;border-bottom:1px solid var(--border-hairline);white-space:nowrap}table.data-table td{padding:11px 14px;border-bottom:1px solid var(--border-hairline);color:var(--text-primary);vertical-align:middle}table.data-table tr:last-child td{border-bottom:none}table.data-table tbody tr:hover{background:#0071e306}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a52;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-panel{background:#fff;border-radius:var(--radius-xl);border:1px solid var(--border-hairline);box-shadow:var(--shadow-float);max-width:720px;width:100%;max-height:88vh;overflow-y:auto;padding:24px;animation:modalEnter .18s var(--ease-out-quart)}@keyframes modalEnter{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.toast-bar{position:fixed;bottom:24px;right:24px;background:#1d1d1feb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;padding:12px 18px;border-radius:14px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-float);z-index:200;display:flex;align-items:center;gap:10px;animation:modalEnter .18s var(--ease-out-quart)}@media (max-width: 960px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}}
