.layout{display:grid;grid-template-columns:var(--sidebar-width-expanded) 1fr;min-height:100vh;transition:grid-template-columns var(--transition-normal) var(--easing-out)}.layout.sidebar-collapsed{grid-template-columns:var(--sidebar-width-collapsed) 1fr}.sidebar{display:flex;flex-direction:column;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);height:100vh;position:sticky;top:0;overflow:hidden;transition:width var(--transition-normal) var(--easing-out)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-3);border-bottom:1px solid var(--color-divider);min-height:56px}.sidebar-brand{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:var(--color-hover);color:var(--color-text-primary)}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--spacing-2) 0}.sidebar-group{padding:var(--spacing-1) var(--spacing-2)}.sidebar-group-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-2) var(--spacing-2);margin-bottom:var(--spacing-1)}.sidebar-link{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-2);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:none;background:transparent;width:100%;font-size:var(--font-size-sm)}.sidebar-link:hover{background:var(--color-hover);color:var(--color-text-primary)}.sidebar-link.active{background:var(--sidebar-active-item-bg);color:var(--sidebar-active-item-text);font-weight:var(--font-weight-medium)}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.sidebar-icon svg{width:20px;height:20px}.sidebar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{border-top:1px solid var(--color-divider);padding:var(--spacing-2);display:flex;flex-direction:column;gap:var(--spacing-1)}.sidebar-theme-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);color:var(--color-text-secondary);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.sidebar-theme-btn:hover{background:var(--color-hover);color:var(--color-text-primary)}.sidebar-user{padding:var(--spacing-2);display:flex;align-items:center;gap:var(--spacing-2)}.sidebar-user-name{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.sidebar-user-badge{font-size:var(--font-size-xs);color:var(--color-primary);background:var(--color-hover);padding:2px 6px;border-radius:var(--radius-sm)}.sidebar-logout{color:var(--color-danger-text)}.sidebar-logout:hover{background:var(--color-danger-bg)}.sidebar-version{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;padding:var(--spacing-1)}.layout-main{background:var(--color-bg-page);min-height:100vh;padding:var(--spacing-4);overflow-x:hidden}.sidebar-collapsed .sidebar-header{justify-content:center;padding:var(--spacing-3) var(--spacing-1)}.sidebar-collapsed .sidebar-group{padding:var(--spacing-1)}.sidebar-collapsed .sidebar-link{justify-content:center;padding:var(--spacing-2)}@media(max-width:768px){.layout{grid-template-columns:var(--sidebar-width-collapsed) 1fr}.sidebar-header{justify-content:center}.sidebar-toggle{display:none}}:root{--spacing-0: 0px;--spacing-1: 4px;--spacing-2: 6px;--spacing-3: 10px;--spacing-4: 12px;--spacing-6: 16px;--spacing-8: 32px;--spacing-12: 48px;--spacing-16: 64px;--spacing-24: 96px;--spacing-32: 128px;--spacing-48: 192px;--font-family-sans: "Inter", "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-line-height-tight: 1.25;--font-line-height-normal: 1.5;--font-line-height-relaxed: 1.6;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-none: 0px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-full: 9999px;--shadow-none: none;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .08), 0 1px 1px rgba(15, 23, 42, .04);--shadow-md: 0 4px 8px rgba(15, 23, 42, .12), 0 2px 4px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 24px rgba(15, 23, 42, .16), 0 6px 12px rgba(15, 23, 42, .12);--border-width-hairline: 1px;--border-width-thin: 1.5px;--border-width-thick: 2px;--transition-fast: .15s;--transition-normal: .2s;--transition-slow: .3s;--easing-out: cubic-bezier(.16, 1, .3, 1);--easing-in-out: cubic-bezier(.4, 0, .2, 1);--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CBD5E1;--color-gray-400: #94A3B8;--color-gray-500: #64748B;--color-gray-600: #475569;--color-gray-700: #334155;--color-gray-800: #1E293B;--color-gray-900: #0F172A;--color-primary-50: #EFF6FF;--color-primary-100: #DBEAFE;--color-primary-200: #BFDBFE;--color-primary-300: #93C5FD;--color-primary-400: #60A5FA;--color-primary-500: #3B82F6;--color-primary-600: #2563EB;--color-primary-700: #1D4ED8;--color-primary-800: #1E40AF;--color-primary-900: #1E3A8A;--color-success-50: #ECFDF3;--color-success-100: #D1FADF;--color-success-200: #A6F4C5;--color-success-300: #6CE9A6;--color-success-400: #32D583;--color-success-500: #12B76A;--color-success-600: #039855;--color-success-700: #027A48;--color-success-800: #05603A;--color-success-900: #054F31;--color-warning-50: #FFFBEB;--color-warning-100: #FEF3C7;--color-warning-200: #FDE68A;--color-warning-300: #FCD34D;--color-warning-400: #FBBF24;--color-warning-500: #F59E0B;--color-warning-600: #D97706;--color-warning-700: #B45309;--color-warning-800: #92400E;--color-warning-900: #78350F;--color-danger-50: #FEF2F2;--color-danger-100: #FEE2E2;--color-danger-200: #FECACA;--color-danger-300: #FCA5A5;--color-danger-400: #F87171;--color-danger-500: #EF4444;--color-danger-600: #DC2626;--color-danger-700: #B91C1C;--color-danger-800: #991B1B;--color-danger-900: #7F1D1D;--color-info-50: #EFF6FF;--color-info-100: #DBEAFE;--color-info-200: #BFDBFE;--color-info-300: #93C5FD;--color-info-400: #60A5FA;--color-info-500: #3B82F6;--color-info-600: #2563EB;--color-info-700: #1D4ED8;--color-info-800: #1E40AF;--color-info-900: #1E3A8A;--button-height-sm: 28px;--button-height-lg: 40px;--button-height: 32px;--button-padding-x: 10px;--button-padding-y: 6px;--button-gap: 6px;--button-radius: 4px;--button-typography-size: 13px;--button-typography-weight: 600;--button-transition-duration: .2s;--button-transition-easing: cubic-bezier(.4, 0, .2, 1);--card-radius: 6px;--card-padding: 12px;--sidebar-width-collapsed: 72px;--sidebar-width-expanded: 256px;--table-radius: 4px;--table-padding: 8px;--table-row-height: 36px;--input-radius: 4px;--input-height: 32px;--input-padding-x: 10px;--input-padding-y: 6px;--font-size-page-title: 18px;--font-size-subtitle: 14px;--font-size-body: 14px;--font-size-small: 13px;--font-size-caption: 12px}:root[data-theme=light]{--color-text-primary: #0F172A;--color-text-secondary: #334155;--color-text-muted: #64748B;--color-text-disabled: #94A3B8;--color-text-inverse: #FFFFFF;--color-bg-page: #F8FAFC;--color-bg-card: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-overlay: rgba(15, 23, 42, .48);--color-success-bg: #ECFDF3;--color-success-text: #027A48;--color-success-border: #A6F4C5;--color-info-bg: #EFF6FF;--color-info-text: #1D4ED8;--color-info-border: #BFDBFE;--color-warning-bg: #FFFBEB;--color-warning-text: #B45309;--color-warning-border: #FDE68A;--color-danger-bg: #FEF2F2;--color-danger-text: #B91C1C;--color-danger-border: #FECACA;--color-hover: #EFF6FF;--color-active: #DBEAFE;--color-focus-ring: #93C5FD;--color-border-default: #CBD5E1;--color-border-focus: #3B82F6;--color-divider: #E2E8F0;--color-primary: #3B82F6;--color-primary-hover: #2563EB;--color-primary-active: #1D4ED8;--button-primary-bg: #2563EB;--button-primary-text: #FFFFFF;--button-primary-border: #2563EB;--button-primary-hover-bg: #1D4ED8;--button-primary-active-bg: #1E40AF;--button-primary-disabled-bg: #E2E8F0;--button-primary-disabled-text: #94A3B8;--button-primary-focus-ring: 0 0 0 3px #93C5FD;--button-secondary-bg: #FFFFFF;--button-secondary-text: #0F172A;--button-secondary-border: #CBD5E1;--button-secondary-hover-bg: #F1F5F9;--button-secondary-active-bg: #E2E8F0;--button-secondary-disabled-bg: #F1F5F9;--button-secondary-disabled-text: #94A3B8;--button-secondary-focus-ring: 0 0 0 3px #93C5FD;--button-ghost-bg: transparent;--button-ghost-text: #2563EB;--button-ghost-border: transparent;--button-ghost-hover-bg: #EFF6FF;--button-ghost-active-bg: #DBEAFE;--button-ghost-disabled-bg: transparent;--button-ghost-disabled-text: #94A3B8;--button-ghost-focus-ring: 0 0 0 3px #93C5FD;--card-bg: #FFFFFF;--card-text: #0F172A;--card-border: #CBD5E1;--card-shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 1px 1px rgba(15, 23, 42, .04);--card-elevated-bg: #FFFFFF;--card-elevated-shadow: 0 4px 8px rgba(15, 23, 42, .12), 0 2px 4px rgba(15, 23, 42, .08);--sidebar-bg: #FFFFFF;--sidebar-text: #0F172A;--sidebar-border: #CBD5E1;--sidebar-active-item-bg: #EFF6FF;--sidebar-active-item-text: #1D4ED8;--table-header-bg: #FFFFFF;--table-header-text: #334155;--table-row-hover-bg: #EFF6FF;--table-row-active-bg: #DBEAFE;--table-border: #CBD5E1;--table-divider: #E2E8F0;--input-bg: #FFFFFF;--input-text: #0F172A;--input-placeholder: #64748B;--input-border: #CBD5E1;--input-hover-border: #CBD5E1;--input-focus-border: #3B82F6;--input-disabled-bg: #F1F5F9;--input-disabled-text: #94A3B8;--input-shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 1px 1px rgba(15, 23, 42, .04)}:root[data-theme=dark]{--color-text-primary: #F8FAFC;--color-text-secondary: #CBD5E1;--color-text-muted: #64748B;--color-text-disabled: #475569;--color-text-inverse: #0F172A;--color-bg-page: #0B1220;--color-bg-card: #0F172A;--color-bg-elevated: #111827;--color-bg-overlay: rgba(0, 0, 0, .55);--color-success-bg: #054F31;--color-success-text: #D1FADF;--color-success-border: #027A48;--color-info-bg: #1E3A8A;--color-info-text: #DBEAFE;--color-info-border: #1D4ED8;--color-warning-bg: #78350F;--color-warning-text: #FEF3C7;--color-warning-border: #B45309;--color-danger-bg: #7F1D1D;--color-danger-text: #FEE2E2;--color-danger-border: #B91C1C;--color-hover: rgba(59, 130, 246, .12);--color-active: rgba(59, 130, 246, .18);--color-focus-ring: #60A5FA;--color-border-default: #334155;--color-border-focus: #60A5FA;--color-divider: #334155;--color-primary: #60A5FA;--color-primary-hover: #93C5FD;--color-primary-active: #BFDBFE;--button-primary-bg: #2563EB;--button-primary-text: #FFFFFF;--button-primary-border: #2563EB;--button-primary-hover-bg: #1D4ED8;--button-primary-active-bg: #1E40AF;--button-primary-disabled-bg: #1E293B;--button-primary-disabled-text: #475569;--button-primary-focus-ring: 0 0 0 3px #60A5FA;--button-secondary-bg: #0F172A;--button-secondary-text: #F8FAFC;--button-secondary-border: #334155;--button-secondary-hover-bg: #111827;--button-secondary-active-bg: #0B1220;--button-secondary-disabled-bg: #1E293B;--button-secondary-disabled-text: #475569;--button-secondary-focus-ring: 0 0 0 3px #60A5FA;--button-ghost-bg: transparent;--button-ghost-text: #2563EB;--button-ghost-border: transparent;--button-ghost-hover-bg: rgba(59, 130, 246, .12);--button-ghost-active-bg: rgba(59, 130, 246, .16);--button-ghost-disabled-bg: transparent;--button-ghost-disabled-text: #475569;--button-ghost-focus-ring: 0 0 0 3px #60A5FA;--card-bg: #0F172A;--card-text: #F8FAFC;--card-border: #334155;--card-shadow: 0 4px 8px rgba(15, 23, 42, .12), 0 2px 4px rgba(15, 23, 42, .08);--card-elevated-bg: #111827;--card-elevated-shadow: 0 12px 24px rgba(15, 23, 42, .16), 0 6px 12px rgba(15, 23, 42, .12);--sidebar-bg: #0F172A;--sidebar-text: #F8FAFC;--sidebar-border: #334155;--sidebar-active-item-bg: rgba(59, 130, 246, .16);--sidebar-active-item-text: #FFFFFF;--table-header-bg: #111827;--table-header-text: #CBD5E1;--table-row-hover-bg: rgba(59, 130, 246, .12);--table-row-active-bg: rgba(59, 130, 246, .18);--table-border: #334155;--table-divider: #334155;--input-bg: #0F172A;--input-text: #F8FAFC;--input-placeholder: #64748B;--input-border: #334155;--input-hover-border: #334155;--input-focus-border: #60A5FA;--input-disabled-bg: #1E293B;--input-disabled-text: #475569;--input-shadow: none}:root{font-family:Inter,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--color-text-primary);background-color:var(--color-bg-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--color-bg-page);font-size:var(--font-size-body)}#root{width:100%;min-height:100vh}h1{font-size:var(--font-size-page-title);line-height:1.3;font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-3) 0}.sub{font-size:var(--font-size-subtitle);color:var(--color-text-secondary)}small,.muted,.caption{font-size:var(--font-size-caption);color:var(--color-text-muted)}button,.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--button-height);padding:var(--button-padding-y) var(--button-padding-x);font-size:var(--button-typography-size);font-weight:var(--button-typography-weight);gap:var(--button-gap);border-radius:var(--button-radius);border:1px solid var(--color-border-default);background-color:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-normal),color var(--transition-normal),background-color var(--transition-normal)}button:hover,.btn:hover{border-color:var(--color-primary)}button:focus,button:focus-visible,.btn:focus,.btn:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:1px}button.small,.btn.small{height:var(--button-height-sm);padding:4px 8px;font-size:12px}button.large,.btn.large{height:var(--button-height-lg);padding:10px 16px}input,select,textarea{height:var(--input-height);padding:var(--input-padding-y) var(--input-padding-x);font-size:var(--font-size-body);border-radius:var(--input-radius);border:1px solid var(--color-border-default);background:var(--color-bg-card);color:var(--color-text-primary);box-sizing:border-box}select{padding-right:28px}textarea{height:auto;min-height:60px}table th,table td{padding:var(--table-padding);font-size:var(--font-size-small)}table th{font-weight:var(--font-weight-semibold)}table tr{height:var(--table-row-height)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-card)}::-webkit-scrollbar-thumb{background:var(--color-divider);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-default)}.page-loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2rem;color:var(--color-text-secondary)}
