.main-layout{min-height:100vh}.main-sider{position:fixed;top:0;left:0;bottom:0;z-index:100;display:flex;flex-direction:column;overflow:hidden}.main-sider .sider-logo{display:flex;align-items:center;height:60px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .2s ease}.main-sider .sider-logo:hover{background:#ffffff0a}.main-sider .sider-logo .logo-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#2563eb,#60a5fa);display:flex;align-items:center;justify-content:center;flex-shrink:0}.main-sider .sider-logo .logo-icon .logo-text{color:#fff;font-size:18px;font-weight:700;line-height:1}.main-sider .sider-logo .logo-title{margin-left:12px;display:flex;flex-direction:column;overflow:hidden}.main-sider .sider-logo .logo-title .logo-brand{color:#fff;font-size:16px;font-weight:600;line-height:1.2;white-space:nowrap}.main-sider .sider-logo .logo-title .logo-subtitle{color:#ffffff80;font-size:11px;line-height:1.2;margin-top:2px;white-space:nowrap}.main-sider .sider-menu{flex:1;border-right:none;overflow-y:auto;overflow-x:hidden;padding:12px 0}.main-sider .sider-footer{border-top:1px solid rgba(255,255,255,.08);padding:12px 8px}.main-sider .sider-footer .sider-user{display:flex;align-items:center;padding:8px;border-radius:8px;cursor:pointer;transition:background .2s ease}.main-sider .sider-footer .sider-user:hover{background:#ffffff14}.main-sider .sider-footer .sider-user .sider-user-info{margin-left:12px;overflow:hidden}.main-sider .sider-footer .sider-user .sider-user-info .sider-user-name{color:#ffffffe6;font-size:14px;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-sider .sider-footer .sider-user .sider-user-info .sider-user-role{color:#ffffff73;font-size:12px;line-height:1.3;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-content-layout{margin-left:240px;transition:margin-left .2s ease;background:var(--color-bg-body)}.main-content-layout.sider-collapsed{margin-left:64px}.main-layout:has(.ant-layout-sider-collapsed) .main-content-layout{margin-left:64px}.main-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff;border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-xs);position:sticky;top:0;z-index:10;height:60px;line-height:60px}.main-header .header-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.main-header .header-right{display:flex;align-items:center}.main-header .sider-toggle-btn{font-size:16px;width:40px;height:40px}.main-header .sider-toggle-btn:hover{background:var(--color-neutral-100)}.main-header .header-breadcrumb{font-size:14px}.main-header .header-action-btn{width:40px;height:40px;font-size:16px}.main-header .header-action-btn:hover{background:var(--color-neutral-100)}.main-header .ai-assistant-btn.ant-btn-primary{height:40px;padding:0 16px}.main-header .ai-assistant-btn.ant-btn-primary .anticon{margin-right:0}.main-header .header-user{display:flex;align-items:center;gap:8px;padding:0 8px;height:40px;border-radius:8px;cursor:pointer;transition:background .2s ease}.main-header .header-user:hover{background:var(--color-neutral-100)}.main-header .header-user .header-user-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.main-content{margin:0;padding:20px;min-height:calc(100vh - 60px);background:var(--color-bg-body);overflow-x:hidden}@media (max-width: 768px){.main-sider{transform:translate(0);transition:transform .2s ease}.main-sider.ant-layout-sider-collapsed{transform:translate(-100%)}.main-content-layout{margin-left:0!important}.main-header .header-breadcrumb,.main-header .header-user-name{display:none}.main-content{padding:12px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5715;color:#1f2937;background-color:#f5f7fa;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;color:#111827;margin:0}p{margin:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;vertical-align:middle}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}:root{--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: #ecfdf5;--color-success-100: #d1fae5;--color-success-500: #10b981;--color-success-600: #059669;--color-success-700: #047857;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-danger-500: #ef4444;--color-danger-600: #dc2626;--color-danger-700: #b91c1c;--color-neutral-50: #f9fafb;--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-primary: var(--color-primary-600);--color-primary-hover: var(--color-primary-500);--color-primary-active: var(--color-primary-700);--color-primary-light: var(--color-primary-50);--color-success: var(--color-success-600);--color-warning: var(--color-warning-600);--color-danger: var(--color-danger-600);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-400);--color-text-disabled: var(--color-neutral-300);--color-border: var(--color-neutral-200);--color-border-light: var(--color-neutral-100);--color-bg-body: #f5f7fa;--color-bg-container: #ffffff;--color-bg-elevated: #ffffff;--color-bg-sider: #0f172a;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-family-mono: "SF Mono", "Fira Code", "Consolas", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-base: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--layout-header-height: 60px;--layout-sider-width: 240px;--layout-sider-collapsed-width: 64px;--layout-content-padding: 20px;--layout-content-max-width: 1440px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-1{flex:1}.flex-center{display:flex;align-items:center;justify-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.text-center{text-align:center}.text-right{text-align:right}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.w-full{width:100%}.h-full{height:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}::-webkit-scrollbar-corner{background:transparent}.sider-scrollbar::-webkit-scrollbar-thumb{background:#ffffff26}.sider-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff40}.page-container{padding:var(--layout-content-padding);min-height:calc(100vh - var(--layout-header-height))}.page-header{margin-bottom:var(--spacing-6)}.page-header .page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.page-header .page-description{font-size:var(--font-size-base);color:var(--color-text-secondary)}.pharma-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-base)}.pharma-card:hover{box-shadow:var(--shadow-sm)}.ant-layout{background:var(--color-bg-body)}.ant-layout-sider{background:var(--color-bg-sider)!important}.ant-menu-dark{background:transparent!important}.ant-card-head{border-bottom:1px solid var(--color-border-light);font-weight:var(--font-weight-semibold)}.ant-table-thead>tr>th{background:var(--color-neutral-50)!important;font-weight:var(--font-weight-semibold)}.pharma-gradient-text{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-400) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
