@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap";:root{--primary-gradient:linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);--secondary-gradient:linear-gradient(135deg, #6366f1 0%, #818cf8 100%);--success-gradient:linear-gradient(135deg, #10b981 0%, #34d399 100%);--warning-gradient:linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);--danger-gradient:linear-gradient(135deg, #ef4444 0%, #f87171 100%);--info-gradient:linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);--sidebar-bg:#1e293b;--sidebar-text:#94a3b8;--sidebar-active-bg:#3b82f6;--sidebar-hover-bg:#3b82f61a;--card-shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--card-shadow-hover:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--primary-color:#3b82f6;--primary-light:#60a5fa;--primary-dark:#2563eb;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--border-color:#e2e8f0;--bg-light:#f8fafc;--bg-card:#fff;--bg-hover:#f1f5f9;--header-height:64px;--sidebar-width:240px;--sidebar-collapsed-width:72px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-light);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-layout{background:var(--bg-light)}.app-sider{z-index:100;top:0;bottom:0;left:0;overflow:hidden;box-shadow:4px 0 20px #00000026;background:var(--sidebar-bg)!important;position:fixed!important}.app-sider .ant-layout-sider-children{flex-direction:column;height:100%;display:flex}.menu-logo{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;min-height:72px;padding:20px 16px;display:flex}.logo-icon{background:var(--primary-gradient);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #3b82f659}.logo-icon .anticon{color:#fff;font-size:18px}.logo-text-wrapper{flex-direction:column;display:flex;overflow:hidden}.logo-text{color:#fff;letter-spacing:-.3px;font-size:16px;font-weight:700;line-height:1.2}.logo-subtext{color:var(--sidebar-text);font-size:12px;font-weight:500}.app-sider .ant-menu{flex:1;padding:12px 8px;background:0 0!important;border:none!important}.app-sider .ant-menu-item{cursor:pointer;color:var(--sidebar-text)!important;border-radius:var(--radius-md)!important;height:44px!important;transition:all var(--transition-normal)!important;margin:4px 0!important;padding:0 12px!important;line-height:44px!important}.app-sider .ant-menu-item:hover{color:#fff!important;background:var(--sidebar-hover-bg)!important}.app-sider .ant-menu-item-selected{box-shadow:0 4px 12px #3b82f666;color:#fff!important;background:var(--sidebar-active-bg)!important;margin-left:4px!important;padding-left:8px!important}.app-sider .ant-menu-item-selected:before{content:"";background:#fff;border-radius:0 2px 2px 0;width:3px;height:24px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.app-sider .ant-menu-item .anticon{min-width:20px;font-size:18px!important}.sidebar-footer{border-top:1px solid #ffffff14;justify-content:center;padding:16px;display:flex}.collapse-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--sidebar-text);cursor:pointer;transition:all var(--transition-normal);background:#ffffff0d;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.collapse-btn:hover{background:var(--sidebar-hover-bg);color:#fff}.collapse-btn:focus{outline:2px solid var(--primary-color);outline-offset:2px}.main-layout{margin-left:var(--sidebar-width);transition:margin-left var(--transition-slow);background:var(--bg-light)}.ant-layout-sider-collapsed+.main-layout{margin-left:var(--sidebar-collapsed-width)}.app-header{z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000d;background:var(--bg-card)!important;border-bottom:1px solid var(--border-color)!important;height:var(--header-height)!important;line-height:var(--header-height)!important;padding:0 32px!important}.header-left{align-items:center;display:flex}.page-title{color:var(--text-primary)!important;margin:0!important;font-size:18px!important;font-weight:600!important}.header-right{align-items:center;gap:16px;display:flex}.header-divider{background:var(--border-color);width:1px;height:24px}.app-content{min-height:calc(100vh - var(--header-height) - 48px);background:0 0!important;margin:24px!important;padding:0!important}.ant-layout-content{background:var(--bg-light)!important}.ant-card{overflow:hidden;border-radius:var(--radius-xl)!important;box-shadow:var(--card-shadow)!important;transition:box-shadow var(--transition-normal), transform var(--transition-normal)!important;border:none!important}.ant-card:hover{box-shadow:var(--card-shadow-hover)!important}.ant-card-head{border-bottom:1px solid var(--border-color)!important;min-height:auto!important;padding:16px 24px!important}.ant-card-head-title{color:var(--text-primary)!important;padding:0!important;font-size:15px!important;font-weight:600!important}.ant-card-body{padding:20px 24px!important}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.stat-card.primary:before{background:var(--primary-gradient)}.stat-card.success:before{background:var(--success-gradient)}.stat-card.warning:before{background:var(--warning-gradient)}.stat-card.info:before{background:var(--info-gradient)}.stat-card.danger:before{background:var(--danger-gradient)}.stat-card .ant-statistic-title{color:var(--text-muted)!important;margin-bottom:8px!important;font-size:13px!important}.stat-card .ant-statistic-content{color:var(--text-primary)!important;font-size:28px!important;font-weight:700!important}.stat-card .ant-statistic-content-prefix{opacity:.9;margin-right:8px!important}.ant-table{background:var(--bg-card);overflow:hidden;border-radius:var(--radius-lg)!important}.ant-table-wrapper{border-radius:var(--radius-lg)}.ant-table-thead>tr>th{background:var(--bg-light)!important;color:var(--text-secondary)!important;border-bottom:2px solid var(--border-color)!important;text-transform:uppercase!important;letter-spacing:.5px!important;padding:12px 16px!important;font-size:12px!important;font-weight:600!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--border-color)!important;transition:background var(--transition-fast)!important;padding:14px 16px!important}.ant-table-tbody>tr:hover>td{background:var(--bg-hover)!important}.ant-table-tbody>tr:last-child>td{border-bottom:none!important}.ant-btn{cursor:pointer;justify-content:center;align-items:center;gap:6px;display:inline-flex;border-radius:var(--radius-md)!important;transition:all var(--transition-normal)!important;font-weight:500!important}.ant-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.ant-btn-primary:not(.ant-btn-sm){background:var(--primary-gradient)!important;color:#fff!important;border:none!important;height:40px!important;padding:0 20px!important;box-shadow:0 2px 8px #3b82f64d!important}.ant-btn-primary:not(.ant-btn-sm):hover{transform:translateY(-1px);color:#fff!important;box-shadow:0 4px 12px #3b82f666!important}.ant-btn-primary:not(.ant-btn-sm):active{transform:translateY(0)}.ant-btn-default:not(.ant-btn-sm){border:1px solid var(--border-color)!important;background:var(--bg-card)!important;color:var(--text-primary)!important;height:40px!important;padding:0 16px!important}.ant-btn-default:not(.ant-btn-sm):hover{border-color:var(--primary-color)!important;color:var(--primary-color)!important;background:#3b82f60a!important}.ant-btn-sm{height:32px!important;padding:0 12px!important;font-size:13px!important}.ant-btn-sm.ant-btn-icon-only{width:32px!important;padding:0!important}.ant-btn-dangerous{background:var(--bg-card)!important;color:#ef4444!important;border:1px solid #ef4444!important}.ant-btn-dangerous:hover{color:#dc2626!important;background:#fef2f2!important;border-color:#dc2626!important}.ant-btn-primary.ant-btn-background-ghost{color:var(--primary-color)!important;background:var(--bg-card)!important;border:1px solid var(--primary-color)!important;box-shadow:none!important}.ant-btn-primary.ant-btn-background-ghost:hover{color:var(--primary-dark)!important;border-color:var(--primary-dark)!important;background:#3b82f60a!important}.ant-btn-link{color:var(--primary-color)!important;padding:0 8px!important}.ant-btn-link:hover{color:var(--primary-light)!important}.ant-tag{border-radius:var(--radius-sm)!important;border:none!important;padding:2px 10px!important;font-size:12px!important;font-weight:500!important}.ant-tag-blue{color:#2563eb!important;background:#3b82f61a!important}.ant-tag-green{color:#059669!important;background:#10b9811a!important}.ant-tag-orange{color:#d97706!important;background:#f59e0b1a!important}.ant-tag-red{color:#dc2626!important;background:#ef44441a!important}.ant-tag-purple{color:#7c3aed!important;background:#8b5cf61a!important}.ant-modal-content{overflow:hidden;border-radius:var(--radius-xl)!important;box-shadow:0 25px 50px -12px #00000040!important}.ant-modal-header{border-bottom:1px solid var(--border-color)!important;padding:20px 24px!important}.ant-modal-title{color:var(--text-primary)!important;font-size:17px!important;font-weight:600!important}.ant-modal-body{padding:24px!important}.ant-modal-footer{border-top:1px solid var(--border-color)!important;padding:16px 24px!important}.ant-input,.ant-input-number,.ant-select-selector,.ant-picker{border-radius:var(--radius-md)!important;border:1px solid var(--border-color)!important;transition:all var(--transition-normal)!important}.ant-input:focus,.ant-input-focused,.ant-input-number:focus,.ant-input-number-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:var(--primary-color)!important;box-shadow:0 0 0 3px #3b82f61f!important}.ant-input-affix-wrapper{border-radius:var(--radius-md)!important}.ant-tabs-tab{color:var(--text-muted)!important;transition:color var(--transition-normal)!important;padding:12px 0!important;font-weight:500!important}.ant-tabs-tab:hover{color:var(--text-primary)!important}.ant-tabs-tab-active{color:var(--primary-color)!important}.ant-tabs-ink-bar{background:var(--primary-gradient)!important;border-radius:2px!important;height:2px!important}.ant-list-item{border-bottom:1px solid var(--border-color)!important;transition:background var(--transition-fast)!important;padding:16px 0!important}.ant-list-item:last-child{border-bottom:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0;border-radius:3px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.page-title{color:var(--text-primary);margin-bottom:24px;font-size:24px;font-weight:700}.section-title{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.section-title .anticon{color:var(--primary-color)}.search-result-content{border-radius:var(--radius-md);border-left:3px solid var(--primary-color);color:var(--text-primary);background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);padding:16px;font-size:14px;line-height:1.8}.ant-empty-description{color:var(--text-muted)!important}.ant-spin-dot-item{background-color:var(--primary-color)!important}.section-card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--card-shadow);margin-bottom:24px;padding:24px}.table-action-group{flex-wrap:nowrap;align-items:center;gap:2px;display:inline-flex}.table-action-group .ant-btn{cursor:pointer}.review-detail-summary .ant-card-body{padding:18px!important}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{color:var(--text-muted);opacity:.5;margin-bottom:16px;font-size:48px}.empty-state-title{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:500}.empty-state-description{color:var(--text-muted);font-size:14px}@media (width<=768px){.app-sider{transition:transform var(--transition-slow);transform:translate(-100%)}.app-sider.ant-layout-sider-collapsed{transform:translate(-100%)}.main-layout{margin-left:0!important}.app-header{padding:0 16px!important}.app-content{margin:16px!important}.page-title{font-size:18px!important}}@media (width<=480px){.ant-card-body{padding:16px!important}.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:10px 12px!important}}.login-page{min-height:100vh;display:flex}.login-brand{background:#1e293b;flex:0 0 52%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-brand-inner{z-index:2;max-width:440px;padding:48px;position:relative}.login-brand-glow{pointer-events:none;background:radial-gradient(circle,#3b82f61f 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;top:10%;right:-20%}.login-brand-logo{align-items:center;gap:14px;margin-bottom:32px;display:flex}.login-brand-icon{background:var(--primary-gradient);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 16px #3b82f659}.login-brand-icon .anticon{color:#fff;font-size:20px}.login-brand-name{color:#fff;letter-spacing:-.5px;font-size:28px;font-weight:700;line-height:1.2;display:block}.login-brand-sub{color:#64748b;font-size:15px;font-weight:500;display:block}.login-brand-tagline{color:#94a3b8;margin:0 0 40px;font-size:18px;line-height:1.6}.login-brand-features{flex-direction:column;gap:14px;display:flex}.login-brand-feature{color:#cbd5e1;align-items:center;gap:10px;font-size:15px;display:flex}.login-brand-dot{background:#3b82f6;border-radius:50%;flex-shrink:0;width:6px;height:6px}.login-form-side{background:#fff;flex:1;justify-content:center;align-items:center;padding:48px;display:flex}.login-form-wrapper{width:100%;max-width:360px}.login-form-title{color:var(--text-primary);letter-spacing:-.5px;margin:0 0 8px;font-size:30px;font-weight:700}.login-form-desc{color:var(--text-muted);margin:0 0 36px;font-size:16px}.login-form .ant-form-item{margin-bottom:16px}.login-form .ant-form-item-explain{font-size:13px}.login-input.ant-input-affix-wrapper,.login-input.ant-input-password{align-items:center;display:flex;border-radius:var(--radius-md)!important;border:1px solid var(--border-color)!important;background:#fff!important;height:48px!important;padding:0 16px!important;font-size:16px!important}.login-input .ant-input{height:auto!important;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important;font-size:16px!important}.login-input .ant-input:focus{box-shadow:none!important}.login-input .ant-input-prefix{margin-inline-end:10px!important}.login-input .ant-input-suffix{align-items:center;display:flex}.login-input.ant-input-affix-wrapper:focus-within{border-color:var(--primary-color)!important;box-shadow:0 0 0 3px #3b82f61a!important}.login-submit-btn{margin-top:4px;border-radius:var(--radius-md)!important;background:var(--primary-gradient)!important;border:none!important;height:48px!important;font-size:17px!important;font-weight:600!important;box-shadow:0 2px 8px #3b82f640!important}.login-submit-btn:hover{box-shadow:0 4px 16px #3b82f659!important}@media (width<=768px){.login-page{flex-direction:column}.login-brand{flex:none;padding:48px 32px 36px}.login-brand-inner{max-width:none;padding:0}.login-brand-tagline{margin-bottom:0}.login-brand-features{display:none}.login-brand-glow{width:300px;height:300px}.login-form-side{flex:1;padding:40px 24px}.login-form-wrapper{max-width:none}}.dashboard .loading-container{justify-content:center;align-items:center;min-height:400px;display:flex}.stat-card-content{align-items:flex-start;gap:16px;min-height:80px;display:flex}.stat-icon-wrapper{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-card.primary .stat-icon-wrapper,.stat-card.info .stat-icon-wrapper{color:var(--primary-color);background:#3b82f61a}.stat-card.warning .stat-icon-wrapper{color:#f59e0b;background:#f59e0b1a}.stat-card.success .stat-icon-wrapper{color:#10b981;background:#10b9811a}.stat-icon{font-size:22px}.stat-info{flex:1;min-width:0}.stat-title{color:var(--text-muted);margin-bottom:4px;font-size:13px}.stat-value-row{align-items:baseline;gap:4px;display:flex}.stat-value{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.2}.stat-suffix{color:var(--text-muted);font-size:14px}.stat-highlight{color:#f59e0b;margin-top:4px;font-size:12px}.view-all-link{color:var(--primary-color);font-size:13px;font-weight:500}.view-all-link:hover{color:var(--primary-dark)}.dashboard-error{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:300px;display:flex}.section-title{align-items:center;gap:8px;display:inline-flex}.dw-root{flex-direction:column;gap:16px;height:calc(100vh - 220px);display:flex;overflow:hidden}.dw-main-grid{flex:1;grid-template-columns:minmax(320px,34%) minmax(0,1fr);align-items:stretch;gap:16px;min-height:0;display:grid;overflow:hidden}.dw-toolbar{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.dw-toolbar--manual{background:#f7fbff}.dw-toolbar-tags,.dw-toolbar-actions{white-space:nowrap;overflow-x:auto}.dw-list-panel-body{height:100%;overflow-y:auto}.dw-chunk-item{cursor:pointer;transition:background var(--transition-fast);align-items:flex-start;padding:12px 16px}.dw-chunk-item-inner{border-radius:var(--radius-md);background:var(--bg-card);width:100%;transition:all var(--transition-fast);border:1px solid #0000;padding:8px 10px}.dw-chunk-item-inner--active{background:#eef6ff;border-color:#b7d7ff}.dw-detail-panel{height:100%;padding-right:4px;overflow-y:auto}.dw-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.dw-footer--center{justify-content:center}.dw-loading{justify-content:center;align-items:center;min-height:240px;display:flex}.dw-manual-dual-pane{grid-template-columns:minmax(280px,35%) minmax(0,1fr);gap:16px;height:100%;display:grid;overflow:hidden}.dw-manual-full-span{grid-column:1/-1;height:100%;min-height:0;overflow:hidden}.dw-manual-item{cursor:pointer;transition:all var(--transition-fast);border-left:3px solid #0000;border-bottom:1px solid var(--border-color);padding:12px 16px}.dw-manual-item:hover{background:var(--bg-hover)}.dw-manual-item--active{border-left-color:var(--primary-color);background:#f0f7ff}.dw-manual-right-card{flex-direction:column;height:100%;display:flex}.dw-manual-right-card .ant-card-body{flex:1;min-height:0;overflow:hidden}.dw-manual-fulltext-scroll{height:100%;overflow-y:auto}.dw-manual-fulltext{white-space:pre-wrap;word-break:break-word;cursor:text;-webkit-user-select:text;user-select:text;padding:12px;line-height:1.7}.dw-manual-segment{transition:background var(--transition-fast);cursor:pointer;border-radius:2px}.dw-manual-segment:hover{background:#3b82f60a}.dw-manual-segment--active{outline-offset:1px;background:#3b82f614;outline:1px solid #3b82f626}.dw-manual-segment--alt{background:#00000003}.dw-manual-boundary{border:1px dashed var(--primary-color);border-radius:var(--radius-sm);cursor:pointer;color:var(--primary-color);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:#3b82f60a;justify-content:center;align-items:center;gap:6px;margin:2px 0;padding:4px 12px;font-size:12px;display:flex}.dw-manual-boundary:hover{background:#3b82f61f;border-style:solid}@media (width<=900px){.dw-main-grid,.dw-manual-dual-pane{grid-template-columns:1fr}}
