._wrapper_xs01b_1{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page)}._card_xs01b_9{width:100%;max-width:400px;background:var(--bg-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl)}._logo_xs01b_18{font-size:22px;font-weight:700;color:var(--color-primary);text-align:center;margin-bottom:var(--spacing-xl);letter-spacing:1px}._shell_qp1o1_2{display:flex;flex-direction:column;height:100vh;overflow:hidden}._topBar_qp1o1_10{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-color);display:flex;align-items:stretch;padding:0 var(--spacing-md);flex-shrink:0;box-shadow:var(--shadow-sm);z-index:10}._topBarLeft_qp1o1_22{display:flex;align-items:center;flex:1;min-width:0}._topBarBrand_qp1o1_29{font-size:16px;font-weight:700;color:var(--color-primary);letter-spacing:1px;white-space:nowrap;padding:0 var(--spacing-md) 0 0;border-right:1px solid var(--border-color);margin-right:var(--spacing-md);flex-shrink:0}._menuScroll_qp1o1_41{flex:1;min-width:0;overflow:hidden;position:relative}._menuScroll_qp1o1_41::-webkit-scrollbar{display:none}._topMenu_qp1o1_52{background:transparent!important;border:none!important;line-height:var(--header-height)!important;white-space:nowrap;display:flex;align-items:center}._topMenu_qp1o1_52 .ant-menu-item{color:var(--text-secondary)!important;font-size:13px!important;padding:0 10px!important;margin:0 2px!important;border-radius:4px!important;height:32px!important;line-height:32px!important;white-space:nowrap}._topMenu_qp1o1_52 .ant-menu-item:hover{color:var(--color-primary)!important;background:#1890ff0f!important}._topMenu_qp1o1_52 .ant-menu-item-selected{color:var(--color-primary)!important;font-weight:600!important}._topMenu_qp1o1_52 .ant-menu-submenu-title{color:var(--text-secondary)!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.3px!important;height:32px!important;line-height:32px!important;padding:0 8px!important;margin:0 2px!important;white-space:nowrap}._topMenu_qp1o1_52 .ant-menu-item a{color:inherit!important;text-decoration:none!important}._topMenu_qp1o1_52 .ant-menu-overflow{flex-wrap:nowrap!important}._scrollBtn_qp1o1_103{background:none;border:1px solid var(--border-color);color:var(--text-secondary);width:24px;height:24px;border-radius:4px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;padding:0;line-height:1}._scrollBtn_qp1o1_103:hover{border-color:var(--color-primary);color:var(--color-primary)}._topBarRight_qp1o1_126{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0;margin-left:var(--spacing-md)}._topBarLang_qp1o1_134{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 10px;border-radius:var(--border-radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}._topBarLang_qp1o1_134:hover{border-color:var(--color-primary);color:var(--color-primary)}._topBarUser_qp1o1_152{font-size:13px;color:var(--text-secondary);white-space:nowrap}._topBarLogout_qp1o1_158{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 12px;border-radius:var(--border-radius-sm);font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}._topBarLogout_qp1o1_158:hover{border-color:var(--color-danger);color:var(--color-danger)}._sidebar_qp1o1_176{background:var(--bg-sidebar);display:flex;flex-direction:column;position:absolute;left:0;top:0;bottom:0;transition:width .25s ease;overflow:hidden;z-index:20;box-shadow:2px 0 8px #00000026}._sidebarOpen_qp1o1_190{width:var(--sidebar-width)}._sidebarClosed_qp1o1_194{width:60px}._sidebarInner_qp1o1_198{display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}._brand_qp1o1_207{height:var(--header-height);display:flex;align-items:center;padding:0 var(--spacing-md);font-size:16px;font-weight:700;color:var(--text-inverse);letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;white-space:nowrap;overflow:hidden}._brandIcon_qp1o1_222{font-size:18px;font-weight:700;color:var(--color-primary)}._menu_qp1o1_41{background:transparent!important;border-right:none!important;flex:1;overflow-y:auto;overflow-x:hidden;width:100%!important}._menu_qp1o1_41 .ant-menu-item{margin:2px 8px!important;border-radius:6px!important;color:#f8fafcbf!important;font-size:14px!important;height:38px!important;line-height:38px!important;white-space:nowrap}._menu_qp1o1_41 .ant-menu-item:hover{color:var(--text-inverse)!important;background:#ffffff1a!important}._menu_qp1o1_41 .ant-menu-item-selected{background:var(--color-primary)!important;color:var(--text-inverse)!important}._menu_qp1o1_41 .ant-menu-item a{color:inherit!important;text-decoration:none!important}._menu_qp1o1_41 .ant-menu-submenu-title{margin:2px 8px!important;border-radius:6px!important;color:#f8fafc80!important;font-size:11px!important;height:38px!important;line-height:38px!important;text-transform:uppercase!important;letter-spacing:.5px!important;white-space:nowrap}._menu_qp1o1_41 .ant-menu-submenu-title:hover{color:#f8fafcd9!important;background:#ffffff0d!important}._menu_qp1o1_41 .ant-menu-sub{background:transparent!important}._footer_qp1o1_285{padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0;flex-wrap:wrap;overflow:hidden}._username_qp1o1_296{flex:1;color:#f8fafcb3;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}._logoutBtn_qp1o1_306{background:none;border:1px solid rgba(255,255,255,.2);color:#f8fafcb3;padding:2px 8px;border-radius:var(--border-radius-sm);font-size:11px;transition:all .15s;cursor:pointer;white-space:nowrap}._logoutBtn_qp1o1_306:hover{border-color:var(--color-danger);color:#fca5a5}._langBtn_qp1o1_323{background:none;border:1px solid rgba(255,255,255,.2);color:#f8fafce6;padding:2px 6px;border-radius:var(--border-radius-sm);font-size:11px;font-weight:600;transition:all .15s;cursor:pointer;white-space:nowrap}._langBtn_qp1o1_323:hover{border-color:var(--color-primary);color:var(--text-inverse)}._collapseBtn_qp1o1_342{position:absolute!important;bottom:72px;right:-14px;z-index:30;width:28px!important;height:28px!important;padding:0!important;background:var(--color-primary)!important;color:#fff!important;border-radius:50%!important;border:none!important;font-size:10px!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 2px 8px #0000004d!important;cursor:pointer!important;line-height:1!important;transition:background .15s,transform .15s}._collapseBtn_qp1o1_342:hover{opacity:.85;transform:scale(1.1)}._collapseBtnPinned_qp1o1_369{background:var(--color-success, #52c41a)!important}._main_qp1o1_374{flex:1;display:flex;flex-direction:column;overflow:hidden}._content_qp1o1_381{flex:1;overflow-y:auto;padding:var(--spacing-lg);background:var(--bg-page)}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-secondary: #64748b;--color-success: #16a34a;--color-warning: #d97706;--color-danger: #dc2626;--bg-page: #f1f5f9;--bg-surface: #ffffff;--bg-sidebar: #1e293b;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #f8fafc;--border-color: #e2e8f0;--border-radius-sm: 4px;--border-radius: 8px;--border-radius-lg: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--sidebar-width: 240px;--header-height: 56px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased}#root{height:100%}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
