html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%;font-family:var(--font-family)}body{color:var(--color-text);background-color:var(--color-bg-page);font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button,input,select,textarea{font:inherit}code{font-family:var(--font-family-mono)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.leading-tight{line-height:var(--line-height-tight)}.leading-base{line-height:var(--line-height-base)}.leading-relaxed{line-height:var(--line-height-relaxed)}.text-primary{color:var(--color-primary)}.text-main,.text-body{color:var(--color-text)}.text-secondary,.text-muted{color:var(--color-text-secondary)}.text-inverse{color:var(--color-text-inverse)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error,.text-danger{color:var(--color-error)}.text-info{color:var(--color-info)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-nowrap{white-space:nowrap}.text-mono{font-family:var(--font-family-mono)}.text-truncate,.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-break{word-break:break-word;overflow-wrap:break-word}.text-sidebar-title{font-size:var(--text-sm);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text);white-space:nowrap}.text-sidebar-subtitle{font-size:var(--text-xs);line-height:var(--line-height-tight);color:var(--color-text-secondary);white-space:nowrap}.text-group-header{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);white-space:nowrap}.form-item-label{font-weight:var(--font-weight-medium);font-size:calc(var(--text-base) + 1px);color:var(--color-text)}.app-modal .ant-modal-content,.user-modal .ant-modal-content,.change-password-modal .ant-modal-content{border-radius:var(--radius-xl);padding:0;overflow:hidden;box-shadow:0 24px 64px #00000024,0 8px 24px #00000014}.app-modal .ant-modal-header,.user-modal .ant-modal-header,.change-password-modal .ant-modal-header{border-bottom:1px solid var(--color-border-light);margin:0;padding:18px 24px}.app-modal-title,.user-modal-title,.modal-title{color:var(--color-text);letter-spacing:.01em;align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.app-modal .ant-modal-close,.user-modal .ant-modal-close,.change-password-modal .ant-modal-close{top:14px;border-radius:var(--radius-sm);transition:color .2s,background .2s;inset-inline-end:16px}.app-modal .ant-modal-body,.user-modal .ant-modal-body,.change-password-modal .ant-modal-body{padding:20px 24px 24px}.app-modal .ant-modal-footer,.user-modal .ant-modal-footer,.change-password-modal .ant-modal-footer{border-top:1px solid var(--color-border-light);margin-top:0;padding:14px 24px 18px}.app-modal-form,.user-modal .users-form,.role-modal .roles-form,.change-password-form{margin-top:0}.app-modal .ant-form-item,.user-modal .ant-form-item,.role-modal .ant-form-item,.change-password-modal .ant-form-item{margin-bottom:18px}.app-modal .ant-form-item-label,.user-modal .ant-form-item-label,.role-modal .ant-form-item-label,.change-password-modal .ant-form-item-label,.users-form .ant-form-item-label,.roles-form .ant-form-item-label,.change-password-form .ant-form-item-label{padding-bottom:0}.app-modal .ant-form-item-label>label,.user-modal .ant-form-item-label>label,.role-modal .ant-form-item-label>label,.change-password-modal .ant-form-item-label>label,.users-form .ant-form-item-label>label,.roles-form .ant-form-item-label>label,.change-password-form .ant-form-item-label>label{height:auto}.app-modal .ant-form-item-control-input-content>.ant-input:not(textarea),.app-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:not(.ant-input-textarea-affix-wrapper),.app-modal .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,.app-modal .ant-form-item-control-input-content>.ant-input-number,.app-modal .ant-form-item-control-input-content>.ant-picker,.user-modal .ant-form-item-control-input-content>.ant-input:not(textarea),.user-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:not(.ant-input-textarea-affix-wrapper),.user-modal .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,.change-password-modal .ant-form-item-control-input-content>.ant-input:not(textarea),.change-password-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:not(.ant-input-textarea-affix-wrapper){height:var(--layout-form-control-height);border-radius:var(--radius-sm);border-color:var(--color-border-control)}.app-modal .ant-input-number .ant-input-number-input{height:calc(var(--layout-form-control-height) - 2px)}.app-modal .ant-input-textarea textarea.ant-input{border-radius:var(--radius-sm);border-color:var(--color-border-control)}.app-modal .ant-input-textarea textarea.ant-input:focus{border-color:var(--color-primary);box-shadow:none}.app-modal .ant-select-multiple .ant-select-selector,.user-modal .ant-select-multiple .ant-select-selector{min-height:var(--layout-form-control-height);border-radius:var(--radius-sm);border-color:var(--color-border-control)}.app-modal .ant-form-item-control-input-content>.ant-input:focus,.app-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:focus-within,.app-modal .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector,.app-modal .ant-input-number:focus,.app-modal .ant-input-number-focused,.app-modal .ant-picker-focused,.user-modal .ant-form-item-control-input-content>.ant-input:focus,.user-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:focus-within,.user-modal .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:var(--color-primary);box-shadow:none}.modal-form-actions.ant-form-item,.users-form-actions.ant-form-item,.change-password-form-actions.ant-form-item{margin-top:var(--space-lg);text-align:right;margin-bottom:0}.modal-cancel-btn.ant-btn,.user-modal-cancel-btn.ant-btn,.role-modal-cancel-btn.ant-btn{height:38px;color:var(--color-text-secondary);background:#fff;border-color:#d0d7de;border-radius:10px;margin-right:10px;padding:0 18px;font-weight:500;transition:border-color .18s,color .18s,background .18s}.modal-cancel-btn.ant-btn:hover,.user-modal-cancel-btn.ant-btn:hover,.role-modal-cancel-btn.ant-btn:hover{color:#1677ff;background:#f0f7ff;border-color:#1677ff}.modal-ok-btn.ant-btn,.user-modal-ok-btn.ant-btn,.role-modal-ok-btn.ant-btn{color:#fff;background:linear-gradient(135deg,#4f8ef7 0%,#1677ff 50%,#0958d9 100%);border:none;border-radius:10px;height:38px;padding:0 22px;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;position:relative;overflow:hidden;box-shadow:0 2px 8px #1677ff59,inset 0 1px #ffffff26}.modal-ok-btn.ant-btn:hover,.user-modal-ok-btn.ant-btn:hover,.role-modal-ok-btn.ant-btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 4px 14px #1677ff73}.modal-ok-btn.ant-btn:active,.user-modal-ok-btn.ant-btn:active,.role-modal-ok-btn.ant-btn:active{transform:translateY(0);box-shadow:0 2px 6px #1677ff4d}.ant-select-multiple .ant-select-selection-item-content{color:var(--color-text,#262626)!important;font-weight:500!important}.ant-select-single .ant-select-selection-item{color:var(--color-text,#262626);font-weight:500}.app-filter-select{flex:180px;width:100%;min-width:160px;max-width:250px}.app-select-dropdown .ant-select-item-option-content{font-size:14px;font-weight:var(--font-weight-medium);color:var(--color-text)}.app-select-dropdown .ant-select-item-option-selected .ant-select-item-option-content{font-weight:var(--font-weight-bold);color:var(--color-text)}.notification-panel-trigger-wrap{justify-content:center;align-items:center;display:inline-flex;position:relative}.notification-panel-badge{border:2px solid var(--color-bg-surface,#fff);color:#fff;pointer-events:none;z-index:2;background:#ef4444;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;animation:.25s cubic-bezier(.175,.885,.32,1.275) notification-badge-pop;display:inline-flex;position:absolute;top:-3px;right:-4px;box-shadow:0 1px 3px #ef444459}@keyframes notification-badge-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.notification-panel-popover .ant-popover-inner{border:1px solid #e2e8f0d9;border-radius:14px;padding:0;overflow:hidden;box-shadow:0 18px 36px -4px #0f172a1f,0 8px 16px -4px #0f172a0f}.notification-panel-popover .ant-popover-arrow{display:none}.notification-panel-content{background:var(--color-bg-surface,#fff);-webkit-user-select:none;user-select:none;flex-direction:column;width:410px;max-height:min(600px,100vh - 90px);display:flex;overflow:hidden}.notification-panel-header{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex}.notification-panel-header-title{align-items:center;gap:8px;display:flex}.notification-panel-heading{color:#0f172a;letter-spacing:-.01em;font-size:16px;font-weight:700}.notification-unread-pill{color:#dc2626;background:#fee2e2;border-radius:9999px;padding:2px 7px;font-size:11px;font-weight:600;line-height:1.2}.notification-panel-header-actions{align-items:center;gap:4px;display:flex}.notification-read-all-btn{color:var(--color-primary,#1890ff);border-radius:6px;height:28px;padding:0 8px;font-size:12px;font-weight:500}.notification-read-all-btn:hover{color:var(--color-primary,#1890ff)!important;background:#1890ff14!important}.notification-reload-btn{color:#64748b;width:28px;height:28px}.notification-reload-btn:hover{color:#0f172a!important;background:#f1f5f9!important}.notification-panel-push-prompt{background:#f0f9ff;border-bottom:1px solid #e0f2fe;align-items:center;gap:10px;padding:10px 14px;display:flex}.notification-push-icon{color:#0284c7;background:#e0f2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.notification-push-text{flex-direction:column;flex:1;min-width:0;display:flex}.notification-push-title{color:#0369a1;font-size:12px;font-weight:600;line-height:1.3}.notification-push-desc{color:#475569;margin-top:1px;font-size:11px;line-height:1.35}.notification-push-btn{border-radius:6px;height:26px;padding:0 10px;font-size:11.5px;font-weight:500}.notification-panel-push-hint{color:#92400e;background:#fffbeb;border-bottom:1px solid #fef3c7;align-items:center;gap:8px;padding:8px 14px;font-size:11.5px;display:flex}.notification-panel-list{flex:1;min-height:220px;padding:0;overflow-y:auto}.notification-panel-state{justify-content:center;align-items:center;height:240px;padding:20px;display:flex}.notification-panel-item{cursor:pointer;text-align:left;border-top:0;border-bottom:1px solid #f1f5f9;border-left:3.5px solid #0000;border-right:0;outline:none;align-items:flex-start;gap:12px;width:100%;padding:12px 14px 12px 12px;transition:background-color .16s,border-left-color .16s;display:flex;position:relative}.notification-panel-item:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary,#1890ff);background:#f8fafc}.notification-panel-item.is-read{background:#fff;border-left-color:#0000}.notification-panel-item.is-read:hover{background:#f8fafc}.notification-panel-item.is-unread{border-left-color:var(--color-primary,#1890ff);background:#f0f7ff}.notification-panel-item.is-unread:hover{background:#e4f0fe}.notification-panel-item-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-top:1px;font-size:16px;display:flex}.notification-panel-item-icon.tone-info{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe}.notification-panel-item-icon.tone-warning{color:#d97706;background:#fffbeb;border:1px solid #fef3c7}.notification-panel-item-icon.tone-danger{color:#ef4444;background:#fef2f2;border:1px solid #fee2e2}.notification-panel-item-icon.tone-success{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.notification-panel-item-copy{flex-direction:column;flex:1;min-width:0;display:flex}.notification-panel-item-header-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.notification-panel-item-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;line-height:1.4;overflow:hidden}.is-unread .notification-panel-item-title{color:#0f172a;font-weight:650}.notification-priority-tag{border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600;line-height:14px}.notification-priority-tag.tag-urgent{color:#dc2626;background:#fee2e2}.notification-priority-tag.tag-high{color:#ea580c;background:#ffedd5}.notification-panel-item-content{color:#64748b;white-space:pre-line;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.notification-panel-item-footer{align-items:center;gap:8px;margin-top:6px;display:flex}.notification-panel-item-time{color:#94a3b8;align-items:center;gap:4px;font-size:11px;display:flex}.notification-time-icon{font-size:10px}.notification-panel-item-actions{flex-shrink:0;align-self:flex-start;align-items:center;gap:6px;margin-top:2px;display:flex}.notification-panel-unread-dot{background:var(--color-primary,#1890ff);border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 2px #1890ff33}.notification-panel-unread-dot.tone-warning{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.notification-panel-unread-dot.tone-danger{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.notification-panel-unread-dot.tone-success{background:#10b981;box-shadow:0 0 0 2px #10b98133}.notification-panel-more-btn{color:#94a3b8;opacity:.35;width:26px;height:26px;transition:all .16s}.notification-panel-item:hover .notification-panel-more-btn,.notification-panel-more-btn:focus-visible,.ant-dropdown-open .notification-panel-more-btn{opacity:1;color:#475569}.notification-panel-more-btn:hover{color:#0f172a!important;background:#e2e8f0!important}.notification-panel-footer{background:#fff;border-top:1px solid #f1f5f9;padding:4px 0}.notification-panel-load-more{color:var(--color-primary,#1890ff);border-radius:0;height:36px;font-size:12px;font-weight:500}.notification-panel-load-more:hover{background:#f8fafc!important}.notification-drawer-indicator{background:#cbd5e1;border-radius:3px;width:36px;height:4px;margin:8px auto 6px}.notification-panel-drawer .ant-drawer-content{border-radius:20px 20px 0 0;overflow:hidden}.notification-panel-drawer .notification-panel-content{width:100%;height:100%;max-height:none}@media (width<=768px){.notification-panel-more-btn{opacity:1;color:#64748b}.notification-panel-content{width:100%}}.admin-layout{background-color:var(--color-bg-page);min-height:100vh}.admin-sidebar{border-right:1px solid var(--color-border);box-shadow:var(--shadow-sidebar);z-index:100;height:100vh;position:sticky;top:0;overflow:hidden;background:var(--color-bg-surface)!important}.admin-sidebar .ant-layout-sider-children,.admin-sidebar-shell{height:100%}.admin-sidebar-shell{background:var(--color-bg-surface);flex-direction:column;display:flex;overflow:hidden}.admin-sidebar-brand{border-bottom:1px solid var(--color-border-light);flex:0 0 var(--layout-header-height);align-items:center;gap:var(--space-xs);padding:0 var(--space-sm) 0 var(--space-md);justify-content:space-between;display:flex}.admin-sidebar-brand-info{align-items:center;gap:var(--space-xs);min-width:0;display:flex}.admin-sidebar-logo-img{object-fit:contain;flex-shrink:0;width:auto;max-width:64px;height:32px;display:block}.admin-sidebar-logo-mark{background:var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text-inverse);width:32px;height:32px;box-shadow:var(--shadow-login-icon);flex:0 0 32px;justify-content:center;align-items:center;display:flex}.admin-sidebar-brand-copy,.admin-sidebar-user-copy{min-width:0}.admin-sidebar-brand-title{color:var(--color-text);font-size:var(--text-base);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);white-space:nowrap}.admin-sidebar-brand-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--line-height-tight);white-space:nowrap;margin-top:2px}.admin-sidebar-collapse-button.ant-btn{color:var(--color-text-secondary);border-radius:var(--radius-sm);flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background-color .2s,color .2s;display:flex}.admin-sidebar-collapse-button.ant-btn:hover{background:var(--color-scrollbar-track);color:var(--color-text)}.admin-sidebar-collapse-button .anticon{font-size:var(--text-lg)}.admin-sidebar-nav{padding:var(--space-sm);flex:1;overflow:hidden auto}.admin-sidebar-menu-group+.admin-sidebar-menu-group{margin-top:var(--space-xxs)}.admin-sidebar-group-label{color:var(--color-text-secondary);font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:.06em;padding:var(--space-md) var(--space-sm) var(--space-xxs);text-transform:uppercase;white-space:nowrap}.admin-sidebar-nav-item{border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-weight-medium);align-items:center;gap:var(--space-sm);line-height:var(--line-height-base);min-height:38px;padding:var(--space-xs) var(--space-sm);text-align:left;background:0 0;border:0;border-left:3px solid #0000;width:calc(100% + 3px);margin-left:-3px;transition:background-color .15s,color .15s,border-color .15s;display:flex}.admin-sidebar-nav-item:hover{background:var(--color-scrollbar-track);color:var(--color-text)}.admin-sidebar-nav-item:focus-visible,.admin-sidebar-user-profile:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.admin-sidebar-nav-item.is-active{background:var(--color-primary-bg);border-left-color:var(--color-primary);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.admin-sidebar-nav-icon{color:var(--color-text-secondary);flex:0 0 20px;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.admin-sidebar-nav-item.is-active .admin-sidebar-nav-icon{color:var(--color-primary)}.admin-sidebar-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-lg);flex:1;overflow:hidden}.admin-sidebar-badge{border-radius:var(--radius-pill);font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);box-sizing:border-box;text-align:center;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;line-height:1;display:inline-flex}.admin-sidebar-badge--neutral{color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);background:0 0;min-width:auto;padding:0}.admin-sidebar-badge--warning{background:var(--color-badge-warning-bg);color:var(--color-badge-warning-text)}.admin-sidebar-badge--danger{background:var(--color-badge-danger-bg);color:var(--color-badge-danger-text)}.admin-sidebar-user{border-top:1px solid var(--color-border-light);align-items:center;gap:var(--space-xs);padding:var(--space-sm);flex:none;display:flex}.admin-sidebar-user-profile{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:var(--space-xs);min-width:0;padding:var(--space-xxs);text-align:left;background:0 0;border:0;flex:1;transition:background-color .2s;display:flex}.admin-sidebar-user-profile:hover{background:var(--color-scrollbar-track)}.admin-sidebar-user-avatar.ant-avatar{background:var(--color-primary-bg);color:var(--color-primary);flex:0 0 36px}.admin-sidebar-user-copy{flex-direction:column;flex:1;display:flex}.admin-sidebar-user-name,.admin-sidebar-user-role{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-sidebar-user-name{color:var(--color-text);font-size:var(--text-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.admin-sidebar-user-role{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--line-height-tight);margin-top:2px}.admin-sidebar-logout.ant-btn{color:var(--color-text-secondary);border-radius:var(--radius-sm);flex:0 0 32px;width:32px;height:32px;padding:0;transition:background-color .2s,color .2s}.admin-sidebar-logout.ant-btn:hover{background:var(--color-scrollbar-track);color:var(--color-error)}.admin-sidebar-shell.is-collapsed .admin-sidebar-brand{justify-content:center;padding:0}.admin-sidebar-shell.is-collapsed .admin-sidebar-brand-info{display:none}.admin-sidebar-shell.is-collapsed .admin-sidebar-nav{padding:var(--space-sm) var(--space-xs)}.admin-sidebar-shell.is-collapsed .admin-sidebar-menu-group+.admin-sidebar-menu-group{margin-top:var(--space-xs)}.admin-sidebar-shell.is-collapsed .admin-sidebar-nav-item{padding:var(--space-xs) 0;justify-content:center;width:100%;margin-left:0}.admin-sidebar-shell.is-collapsed .admin-sidebar-nav-icon{flex-basis:22px}.admin-sidebar-shell.is-collapsed .admin-sidebar-nav-icon svg{width:22px;height:22px}.admin-sidebar-shell.is-collapsed .admin-sidebar-user{padding:var(--space-sm) 0;justify-content:center}.admin-sidebar-shell.is-collapsed .admin-sidebar-user-profile{flex:0 0 36px;justify-content:center}.admin-sidebar-drawer .ant-drawer-body{overflow:hidden}.admin-header{height:var(--layout-header-height);padding:0 var(--space-lg);background:var(--color-bg-surface);box-shadow:var(--shadow-header);z-index:99;align-items:center;display:flex;position:sticky;top:0}.admin-header-left{align-items:center;gap:var(--space-sm);flex:1 1 0;min-width:0;display:flex;overflow:hidden}.admin-header-center{flex:1 1 0;align-items:center;min-width:0;display:flex}.admin-header-right{flex:none;align-items:center;display:flex}.admin-header-page-info{flex-direction:column;justify-content:center;gap:5px;min-width:0;display:flex}.admin-header-page-title.ant-typography{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;color:var(--color-text);margin:0;line-height:1.3;overflow:hidden}.admin-header-page-subtitle{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1.3;display:block;overflow:hidden}.admin-mobile-toggle-btn.ant-btn{font-size:var(--text-lg);height:var(--layout-control-height);justify-content:center;align-items:center;padding-left:3px;padding-right:3px;display:flex}.admin-content{min-height:calc(100vh - var(--layout-content-offset));margin:var(--space-sm)}.admin-breadcrumb{background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-light,#f0f0f0);height:36px;margin:calc(-1 * var(--space-sm)) calc(-1 * var(--space-sm)) var(--space-sm);padding:0 var(--space-md);font-size:var(--text-md);align-items:center;gap:6px;display:flex}.admin-breadcrumb-home{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;transition:color .15s;display:inline-flex}.admin-breadcrumb-home:hover{color:var(--color-text)}.admin-breadcrumb-sep{color:#716c6c;-webkit-user-select:none;user-select:none;line-height:1}.admin-breadcrumb-current{color:var(--color-text);font-weight:var(--font-weight-medium)}.admin-user-profile{align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-sm);transition:background-color .2s;display:flex}.admin-user-profile:hover{background-color:var(--color-scrollbar-track)}@media (width<=768px){.admin-header{padding:0}.admin-header-left--mobile{flex:none;overflow:visible}.admin-header-center{flex:1 1 0;min-width:0}.admin-header-right{flex:none}}.admin-header-bell{border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-lg);height:var(--layout-control-height);width:var(--layout-control-height);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background-color .2s,color .2s;display:flex}.admin-header-bell:hover{background-color:var(--color-scrollbar-track);color:var(--color-text)}.admin-header-search{background:var(--color-bg-page,#f5f5f5);border:1.5px solid var(--color-border,#e0e0e0);border-radius:var(--radius-sm,6px);align-items:center;gap:0;width:100%;height:36px;transition:border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.admin-header-search:focus-within{border-color:var(--color-primary,#1677ff);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary,#1677ff) 12%, transparent)}.admin-header-search-icon{color:var(--color-text-secondary,#8c8c8c);font-size:var(--text-lg);pointer-events:none;flex:0 0 32px;justify-content:center;align-items:center;height:100%;transition:color .18s;display:flex}.admin-header-search:focus-within .admin-header-search-icon{color:var(--color-primary,#1677ff)}.admin-header-search-input{color:var(--color-text,#1a1a1a);font-family:inherit;font-size:var(--text-base,13px);font-weight:var(--font-weight-medium);background:0 0;border:none;outline:none;flex:1;min-width:0;height:100%;padding:0 34px 0 0}.admin-header-search-input::placeholder{color:var(--color-text-secondary,#bfbfbf)}.admin-header-search-clear{border-radius:var(--radius-pill,9999px);color:var(--color-text-secondary,#bfbfbf);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;transition:color .15s,background-color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.admin-header-search-clear:hover{background-color:var(--color-scrollbar-track,#0000000f);color:var(--color-text,#1a1a1a)}.admin-header-search-kbd{background:var(--color-bg-surface,#fff);border:1px solid var(--color-border,#e0e0e0);border-radius:var(--radius-xs,4px);color:var(--color-text-secondary,#8c8c8c);font-family:inherit;font-size:10px;font-weight:var(--font-weight-semibold,600);-webkit-user-select:none;user-select:none;pointer-events:none;align-items:center;padding:2px 6px;line-height:1;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%);box-shadow:0 1px 2px #0000000d}@media (width<=640px){.admin-header-search-kbd{display:none}}.admin-user-profile-name{font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.change-password-modal .ant-modal-content{border-radius:var(--radius-xl);padding:0;overflow:hidden;box-shadow:0 24px 64px #00000024,0 8px 24px #00000014}.change-password-modal .ant-modal-header{border-bottom:none;margin:0;padding:16px 20px 0}.change-password-modal-title{color:#000;letter-spacing:.01em;align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.change-password-modal .ant-modal-close{top:12px;border-radius:var(--radius-sm);transition:color .2s,background .2s;inset-inline-end:14px}.change-password-modal .ant-modal-close:hover{color:var(--color-text);background:#0000000f}.change-password-modal .ant-modal-body{padding:14px 20px 0}.change-password-modal .ant-modal-footer{border-top:1px solid var(--color-border-light);justify-content:flex-end;gap:10px;margin:14px 0 0;padding:12px 20px 16px;display:flex}.change-password-modal .change-password-form{margin-top:0}.change-password-modal .ant-form-item{margin-bottom:14px}.change-password-modal .ant-form-item:last-child{margin-bottom:0}.change-password-modal .ant-form-item-label,.change-password-form .ant-form-item-label{padding-bottom:0}.change-password-modal .ant-form-item-label>label,.change-password-form .ant-form-item-label>label{height:auto}.change-password-modal .form-item-label,.change-password-form .form-item-label{font-weight:var(--font-weight-medium);font-size:calc(var(--text-base) + 1px);color:var(--color-text)}.change-password-modal .ant-form-item-control-input-content>.ant-input:not(textarea),.change-password-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:not(.ant-input-textarea-affix-wrapper){height:var(--layout-form-control-height);border-radius:var(--radius-sm);border-color:var(--color-border-control)}.change-password-modal .ant-form-item-control-input-content>.ant-input:focus,.change-password-modal .ant-form-item-control-input-content>.ant-input-affix-wrapper:focus-within{border-color:var(--color-primary);box-shadow:none}.change-password-modal-cancel-btn.ant-btn{height:38px;color:var(--color-text-secondary);background:#fff;border-color:#d0d7de;border-radius:10px;padding:0 18px;font-weight:500;transition:border-color .18s,color .18s,background .18s}.change-password-modal-cancel-btn.ant-btn:hover{color:#1677ff;background:#f0f7ff;border-color:#1677ff}.change-password-modal-ok-btn.ant-btn{color:#fff;background:linear-gradient(135deg,#4f8ef7 0%,#1677ff 50%,#0958d9 100%);border:none;border-radius:10px;height:38px;padding:0 22px;font-weight:600;transition:transform .18s,box-shadow .18s,filter .18s;position:relative;overflow:hidden;box-shadow:0 2px 8px #1677ff59,inset 0 1px #ffffff26}.change-password-modal-ok-btn.ant-btn:before{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 40%,#ffffff38 50%,#0000 60%);transition:transform .42s;position:absolute;inset:0;transform:translate(-100%)}.change-password-modal-ok-btn.ant-btn:not(:disabled):hover:before{transform:translate(100%)}.change-password-modal-ok-btn.ant-btn:not(:disabled):hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 6px 18px #1677ff73,inset 0 1px #fff3}.change-password-modal-ok-btn.ant-btn:not(:disabled):active{transition-duration:80ms;transform:translateY(0)scale(.97);box-shadow:0 2px 6px #1677ff4d}.change-password-modal-ok-btn.ant-btn:disabled{box-shadow:none;color:#ffffffa6;cursor:not-allowed;background:linear-gradient(135deg,#c8d8f0 0%,#b8cae8 100%)}.change-password-modal-ok-btn.ant-btn .anticon-loading{color:#fff}@media (width>=1441px){.admin-header-left{flex:0 0 400px}.admin-header-center{flex:1 1 0;justify-content:center}.admin-header-center .admin-header-search{width:80%;max-width:80%}}
