.app-error[data-v-c5d83246]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;color:#1f2937;background:#f7f9fb;text-align:center}.app-error h1[data-v-c5d83246]{margin:0;font-size:24px}.app-error p[data-v-c5d83246]{max-width:640px;margin:0;color:#667085}.app-error button[data-v-c5d83246]{height:36px;padding:0 16px;border:0;border-radius:6px;color:#fff;background:#1677ff;cursor:pointer}:root{--color-primary: #1677FF;--color-primary-hover: #4096FF;--color-primary-active: #0958D9;--color-primary-bg: #E6F4FF;--color-primary-border: #91CAFF;--color-success: #52C41A;--color-success-bg: #F6FFED;--color-success-border: #B7EB8F;--color-warning: #FAAD14;--color-warning-bg: #FFFBE6;--color-warning-border: #FFE58F;--color-error: #F5222D;--color-error-bg: #FFF2F0;--color-error-border: #FFCCC7;--color-info: #1677FF;--color-text: #262626;--color-text-secondary: #595959;--color-text-tertiary: #8C8C8C;--color-text-quaternary: #BFBFBF;--color-border: #D9D9D9;--color-border-secondary: #F0F0F0;--color-fill: #FAFAFA;--color-fill-secondary: #F5F5F5;--color-bg: #F0F2F5;--color-bg-white: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-sidebar: #001529;--color-sidebar-hover: #002140;--color-sidebar-active: #1677FF;--color-sidebar-text: rgba(255, 255, 255, .65);--color-sidebar-text-active: #FFFFFF;--color-topbar: #FFFFFF;--color-topbar-border: #F0F0F0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .16);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-round: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-xxl: 32px;--font-family: "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "DIN Alternate", "SF Mono", "Roboto Mono", "Consolas", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-xxl: 24px;--font-size-title: 20px;--font-size-huge: 36px;--sidebar-width: 200px;--sidebar-collapsed-width: 72px;--topbar-height: 56px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-sidebar: 100;--z-topbar: 110;--z-overlay: 1000;--z-toast: 1100;--z-modal: 1200;color:var(--color-text);background:var(--color-bg);font-family:var(--font-family);font-size:var(--font-size-base)}[data-theme=dark]{--color-bg: #141414;--color-bg-white: #1F1F1F;--color-bg-elevated: #262626;--color-text: rgba(255, 255, 255, .85);--color-text-secondary: rgba(255, 255, 255, .65);--color-text-tertiary: rgba(255, 255, 255, .45);--color-text-quaternary: rgba(255, 255, 255, .25);--color-border: #424242;--color-border-secondary: #303030;--color-fill: #262626;--color-fill-secondary: #303030;--color-topbar: #1F1F1F;--color-topbar-border: #303030;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4)}body{margin:0;transition:background var(--transition-slow),color var(--transition-slow)}*{box-sizing:border-box}.app-shell,.workspace,.topbar,.card,input,button,table,th,td{transition-property:background-color,background,border-color,color,box-shadow,transform,opacity;transition-duration:.3s;transition-timing-function:ease}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.app-shell{display:grid;min-height:100vh;grid-template-columns:var(--sidebar-width) 1fr;transition:grid-template-columns var(--transition-normal)}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-width) 1fr}.workspace{position:relative;min-width:0;display:flex;flex-direction:column;background:var(--color-bg);transition:background var(--transition-slow)}.workspace:before{content:"";position:fixed;top:0;bottom:0;left:var(--sidebar-width);width:14px;pointer-events:none;z-index:1;background:linear-gradient(90deg,#94a3b824,#94a3b800);transition:left var(--transition-normal),opacity var(--transition-slow)}.app-shell.sidebar-collapsed .workspace:before{left:var(--sidebar-collapsed-width);opacity:.56}.workspace>main{padding-left:24px;padding-right:24px}.page{padding:var(--space-xl);flex:1;overflow-y:auto;animation:pageIn .25s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-xl);transition:background var(--transition-slow),box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;font-size:var(--font-size-base);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff;box-shadow:var(--shadow-md)}.btn-danger{color:var(--color-error)}.btn-danger:hover{border-color:var(--color-error);color:var(--color-error)}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-fill-secondary);border-color:transparent;color:var(--color-text)}.btn-sm{height:28px;padding:0 10px;font-size:var(--font-size-xs)}.btn-lg{height:44px;padding:0 24px;font-size:var(--font-size-lg)}.ripple{position:absolute;border-radius:50%;background:#fff6;transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}.input,.select,.textarea{width:100%;height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);color:var(--color-text);font-size:var(--font-size-base);transition:all var(--transition-fast);outline:none}.input:hover,.select:hover{border-color:var(--color-primary-hover)}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-bg)}.input::placeholder{color:var(--color-text-quaternary)}.textarea{min-height:80px;padding:8px 12px;resize:vertical;height:auto}.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border-secondary)}table{width:100%;border-collapse:collapse;background:var(--color-bg-white);transition:background var(--transition-slow)}th{background:var(--color-fill);color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-sm);padding:12px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border-secondary);position:sticky;top:0;z-index:1;transition:background var(--transition-slow)}td{padding:12px 16px;border-bottom:1px solid var(--color-border-secondary);font-size:var(--font-size-base);transition:background var(--transition-fast)}tr:hover td{background:var(--color-primary-bg)}tr:last-child td{border-bottom:none}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-round);font-size:var(--font-size-xs);font-weight:500;line-height:20px;white-space:nowrap}.tag-blue{background:var(--color-primary-bg);color:var(--color-primary);border:1px solid var(--color-primary-border)}.tag-green{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.tag-orange{background:var(--color-warning-bg);color:#d48806;border:1px solid var(--color-warning-border)}.tag-red{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.tag-gray{background:var(--color-fill);color:var(--color-text-tertiary);border:1px solid var(--color-border)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:var(--space-lg);transition:background var(--transition-slow)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) 0;gap:var(--space-md);flex-wrap:wrap}.pagination-info{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.pagination-controls{display:flex;align-items:center;gap:4px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-lg)}.breadcrumb a{color:var(--color-text-tertiary)}.breadcrumb a:hover{color:var(--color-primary)}.breadcrumb .separator{color:var(--color-text-quaternary)}.breadcrumb .current{color:var(--color-text);font-weight:500}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl);gap:var(--space-lg);flex-wrap:wrap}.page-header h1{margin:0;font-size:var(--font-size-xxl);font-weight:600;color:var(--color-text)}.page-header p{margin:4px 0 0;color:var(--color-text-tertiary);font-size:var(--font-size-base)}.split-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.split-2-1{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-lg)}.split-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:var(--z-overlay);display:grid;place-items:center;padding:var(--space-xl);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:1400px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1024px){.app-shell,.split-panels,.split-2-1,.split-3{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.page{padding:var(--space-md)}.stat-grid{grid-template-columns:1fr}.page-header{flex-direction:column}}
