.app-layout{min-height:100vh;background:#f5f6f8}.app-sider{position:fixed;left:0;top:0;bottom:0;height:100vh;z-index:200;border-right:1px solid #eef0f3;box-shadow:1px 0 #00000005}.app-sider>.ant-layout-sider-children{height:100%}.app-sider-inner{display:flex;flex-direction:column;height:calc(100vh - 48px)}.app-main{margin-left:240px;height:100vh;overflow:hidden;display:flex;flex-direction:column;background:#f5f6f8;transition:margin-left .2s}.app-layout--collapsed .app-main{margin-left:72px}.app-sider-logo{height:64px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 16px;color:#1f1f1f;border-bottom:1px solid #f0f0f0}.app-sider-logo--collapsed{justify-content:center;padding:0}.app-sider-brand-name{font-weight:600;font-size:15px;line-height:1.3;color:#1f1f1f}.app-sider-logo-icon{font-size:22px;flex-shrink:0}.app-sider-menu{flex:1;min-height:0;overflow-y:auto;padding-top:8px;border-inline-end:none!important}.app-sider-menu.ant-menu-light{background:transparent}.app-sider-footer{flex-shrink:0;border-top:1px solid #f0f0f0;padding:8px 0;background:inherit}.app-sider-footer .ant-menu{border-inline-end:none!important;background:transparent}.app-sider .ant-menu-item,.app-sider-menu .ant-menu-item{margin:4px 12px;width:calc(100% - 24px);border-radius:10px;height:42px;line-height:42px;color:#595959}.app-sider .ant-menu-item .anticon,.app-sider-menu .ant-menu-item .anticon{color:#8c8c8c;font-size:16px}.app-sider .ant-menu-item:hover:not(.ant-menu-item-selected),.app-sider-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#f5f5f5!important;color:#262626!important}.app-sider .ant-menu-item-selected,.app-sider-menu .ant-menu-item-selected{background:color-mix(in srgb,var(--app-primary) 12%,#ffffff)!important;color:var(--app-primary)!important;font-weight:500}.app-sider .ant-menu-item-selected .anticon,.app-sider-menu .ant-menu-item-selected .anticon{color:var(--app-primary)!important}.app-sider .ant-menu-divider,.app-sider-menu .ant-menu-divider{margin:8px 16px;border-color:#f0f0f0}.app-sider .ant-menu-light{background:transparent;border-inline-end:none!important}.app-sider.ant-layout-sider-collapsed .ant-menu-inline-collapsed>.ant-menu-item,.app-sider.ant-layout-sider-collapsed .ant-menu-inline-collapsed .ant-menu-item{margin:4px 8px!important;width:calc(100% - 16px)!important;padding-inline:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.app-sider.ant-layout-sider-collapsed .ant-menu-inline-collapsed .ant-menu-item-icon,.app-sider.ant-layout-sider-collapsed .ant-menu-inline-collapsed .ant-menu-item .anticon{margin-inline:0!important;line-height:1!important}.app-sider.ant-layout-sider-collapsed .ant-menu-inline-collapsed .ant-menu-title-content{display:none!important}.app-sider-logout.ant-menu-item,.app-sider .app-sider-logout,.app-sider-logout.ant-menu-item .anticon,.app-sider .app-sider-logout .anticon{color:#cf1322!important}.app-sider-logout.ant-menu-item:hover,.app-sider .app-sider-logout:hover{background:#fff1f0!important;color:#cf1322!important}.app-sider .ant-layout-sider-trigger{flex-shrink:0;background:#fafafa;color:#595959;border-top:1px solid #f0f0f0}.app-header{z-index:100;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:0 24px!important;background:var(--app-header-bg, #ffffff)!important;border-bottom:1px solid #f0f0f0;height:64px;line-height:1.4!important;overflow:visible}.app-header-page-title{color:#1f1f1f;font-size:18px;line-height:1.2;margin:0}.app-header .ant-typography{line-height:1.2;margin:0}.app-header-title{display:flex;flex-direction:column;justify-content:center;gap:2px}.app-header-profile-info{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.2}.app-header-profile-name{color:#1f1f1f;font-size:14px;line-height:1.2}.app-header-profile-role{margin:0;font-size:11px;line-height:18px;padding-inline:8px}.app-header-notifications-badge .ant-badge-count{box-shadow:0 0 0 2px var(--app-header-bg, #ffffff)}.app-header-notifications-btn{width:36px;height:36px;min-width:36px;padding:0;border-radius:50%;border:1px solid #eef0f3;background:#fff;color:#595959;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #1018280a}.app-header-notifications-btn:hover,.app-header-notifications-btn:focus-visible{background:#f7f9fc!important;border-color:#dfe3ea!important;color:#262626!important}.app-notifications-panel{width:360px;max-width:calc(100vw - 24px);background:#fff;border:1px solid #dfe3ea;border-radius:14px;box-shadow:0 8px 24px #1018281f,0 2px 8px #1018280f;overflow:hidden}.app-notifications-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 12px;border-bottom:1px solid #f0f2f5;background:linear-gradient(180deg,#fafbfc,#fff)}.app-notifications-panel-title{display:block;font-size:15px;line-height:1.3}.app-notifications-panel-subtitle{display:block;margin-top:2px;font-size:12px;line-height:1.3}.app-notifications-panel-badge{margin:0;border-radius:999px}.app-notifications-list{max-height:360px;overflow:auto;padding:8px}.app-notification-item{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.app-notification-item:hover{background:#f7f9fc;border-color:#eef0f3}.app-notification-item--unread{background:color-mix(in srgb,var(--app-primary, #118c27) 6%,#ffffff);border-color:color-mix(in srgb,var(--app-primary, #118c27) 18%,#ffffff)}.app-notification-item--unread:hover{background:color-mix(in srgb,var(--app-primary, #118c27) 10%,#ffffff)}.app-notification-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px}.app-notification-icon--success{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.app-notification-icon--error{color:#cf1322;background:#fff1f0;border:1px solid #ffccc7}.app-notification-icon--warning{color:#d48806;background:#fffbe6;border:1px solid #ffe58f}.app-notification-icon--info{color:#0958d9;background:#e6f4ff;border:1px solid #91caff}.app-notification-content{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.app-notification-title-row{display:flex;align-items:center;gap:8px}.app-notification-title{font-size:14px;line-height:1.35}.app-notification-body{font-size:13px;line-height:1.4;white-space:normal}.app-notification-time{font-size:12px;line-height:1.3}.app-notification-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--app-primary, #118c27);box-shadow:0 0 0 2px color-mix(in srgb,var(--app-primary, #118c27) 18%,#ffffff)}.app-notifications-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 20px 32px;text-align:center}.app-notifications-empty-icon{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:22px;color:#8c8c8c;background:#f5f7fa;border:1px solid #eef0f3;margin-bottom:4px}.app-notifications-panel-footer{padding:4px 8px 8px;border-top:1px solid #f0f2f5;text-align:center}.app-notifications-panel-footer .ant-btn{font-weight:500}.app-content{flex:1;display:flex;flex-direction:column;margin:16px;padding:0;background:transparent;border:none;min-height:0;overflow-y:auto}.app-content>.dashboard-page{flex:1;min-height:0}@media(min-width:1600px){.app-content{margin:20px}}@media(max-width:768px){.app-content{margin:8px}.app-header{padding:0 12px!important;height:56px}.app-header-page-title{font-size:16px}.app-header-profile-info{display:none}}@media(max-width:1280px){.app-content{margin:12px}.app-header{padding:0 16px!important}.app-sider-brand-name{font-size:14px}}.stats-page{max-width:1100px;background:#fff;border:1px solid #dfe3ea;border-radius:14px;box-shadow:0 1px 2px #1018280f,0 4px 12px #1018280a;display:flex;flex-direction:column;min-height:0}.stats-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 24px 16px;border-bottom:1px solid #f0f2f5;background:linear-gradient(180deg,#fafbfc,#fff);flex-shrink:0}.stats-page-title{display:block;font-size:16px;line-height:1.3}.stats-page-subtitle{display:block;margin-top:4px;font-size:13px;line-height:1.4}.stats-filter-field{display:flex;flex-direction:column;gap:6px;min-width:0;width:min(100%,320px)}.stats-filter-label{font-size:12px;font-weight:600;color:#434343}.stats-period-picker{width:100%}.stats-subnav{display:flex;flex-wrap:wrap;gap:4px 20px;padding:0 24px;border-bottom:1px solid #eef0f3;flex-shrink:0}.stats-subnav-link{display:inline-flex;align-items:center;gap:8px;padding:14px 2px;color:#595959;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.stats-subnav-link:hover{color:var(--app-primary, #118c27)}.stats-subnav-link--active{color:var(--app-primary, #118c27);font-weight:600;border-bottom-color:var(--app-primary, #118c27)}.stats-page-body{padding:20px 24px 24px;min-height:280px;overflow:visible}.stats-section{min-height:200px}.stats-summary-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding:16px 18px;border-radius:12px;border:1px solid color-mix(in srgb,var(--app-primary, #118c27) 20%,#ffffff);background:linear-gradient(135deg,color-mix(in srgb,var(--app-primary, #118c27) 8%,#ffffff),#fff)}.stats-summary-title{display:block;font-size:14px}.stats-summary-subtitle{display:block;margin-top:2px;font-size:12px}.stats-summary-rate{display:flex;align-items:center;gap:10px}.stats-summary-rate-value{font-size:28px;font-weight:700;line-height:1;color:var(--app-primary, #118c27)}.stats-overview{margin-bottom:0}.stats-metric{display:flex;align-items:flex-start;gap:12px;height:100%;padding:16px;border-radius:12px;border:1px solid #eef0f3;background:#fff;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.stats-metric:hover{transform:translateY(-1px);box-shadow:0 6px 16px #1018280f;border-color:#dfe3ea}.stats-metric-icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:18px}.stats-metric-body{display:flex;flex-direction:column;gap:4px;min-width:0}.stats-metric-label{font-size:12px;font-weight:600;color:#8c8c8c;line-height:1.3}.stats-metric-value{font-size:22px;font-weight:700;color:#1f1f1f;line-height:1.2;word-break:break-word}.stats-metric--primary .stats-metric-icon{color:var(--app-primary, #118c27);background:color-mix(in srgb,var(--app-primary, #118c27) 12%,#ffffff);border:1px solid color-mix(in srgb,var(--app-primary, #118c27) 24%,#ffffff)}.stats-metric--success .stats-metric-icon{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.stats-metric--error .stats-metric-icon{color:#cf1322;background:#fff1f0;border:1px solid #ffccc7}.stats-metric--warning .stats-metric-icon{color:#d48806;background:#fffbe6;border:1px solid #ffe58f}.stats-metric--info .stats-metric-icon{color:#0958d9;background:#e6f4ff;border:1px solid #91caff}.stats-metric--accent .stats-metric-icon{color:#531dab;background:#f9f0ff;border:1px solid #d3adf7}.stats-metric--neutral .stats-metric-icon{color:#595959;background:#f5f5f5;border:1px solid #e8e8e8}.stats-table-panel{border:1px solid #eef0f3;border-radius:12px;background:#fff;overflow:visible}.stats-table-hint{padding:12px 16px;border-bottom:1px solid #f0f2f5;background:#fafbfc}.stats-table-scroll{overflow:auto;max-height:none}.stats-table .ant-table{background:transparent}.stats-table .ant-table-thead>tr>th{background:#fafbfc!important;color:#434343;font-weight:600;border-bottom:1px solid #eef0f3!important}.stats-table .ant-table-tbody>tr>td{border-bottom:1px solid #f5f5f5}.stats-table .ant-table-tbody>tr:hover>td{background:#f7f9fc!important}.stats-table .ant-table-placeholder .ant-table-cell{border-bottom:none!important}.stats-table .ant-table-body{overflow:auto!important}.stats-cell-number{font-variant-numeric:tabular-nums;font-weight:600;color:#262626}.stats-cell-muted{color:#595959;font-variant-numeric:tabular-nums}.stats-cell-date{font-weight:500;color:#262626}.stats-tag{margin:0;font-weight:500}.stats-tag--entity{color:#531dab;background:#f9f0ff}.stats-tag--user{color:#0958d9;background:#e6f4ff;font-family:Consolas,Courier New,monospace}.stats-empty{padding:28px 16px 36px}.stats-empty-icon{font-size:42px;color:#bfbfbf}.stats-empty .ant-empty-description{color:#8c8c8c}@media(max-width:768px){.stats-page-header{padding:16px}.stats-subnav{padding:0 12px;gap:0 12px}.stats-page-body{padding:16px 12px}.stats-metric-value{font-size:20px}.stats-summary-rate-value{font-size:24px}}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow-x:hidden;background:#f5f5f5}#root{min-height:100vh}.page-container{max-width:1400px;margin:0 auto}.page-lazy-fallback{display:flex;align-items:center;justify-content:center;min-height:280px;padding:48px 16px}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled){background:var(--app-primary)!important;border-color:var(--app-primary)!important}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover{background:var(--app-primary-hover)!important;border-color:var(--app-primary-hover)!important}.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):active{background:var(--app-primary-active)!important;border-color:var(--app-primary-active)!important}.ant-switch.ant-switch-checked{background:var(--app-primary)!important}.ant-switch.ant-switch-checked:hover:not(.ant-switch-disabled){background:var(--app-primary-hover)!important}.ant-checkbox-checked .ant-checkbox-inner,.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:var(--app-primary)!important;border-color:var(--app-primary)!important}.ant-checkbox-wrapper:not(.ant-checkbox-wrapper-disabled):hover .ant-checkbox-inner,.ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--app-primary)!important}.ant-radio-checked .ant-radio-inner{border-color:var(--app-primary)!important;background-color:var(--app-primary)!important}.ant-progress-line .ant-progress-track,.ant-progress-line .ant-progress-bg,.ant-tabs .ant-tabs-ink-bar{background:var(--app-primary)!important}.ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn,.ant-typography a,a.ant-typography,.ant-link{color:var(--app-primary)!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector{border-color:var(--app-primary)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--app-primary) 20%,transparent)!important}.ant-layout-header.app-header{background:var(--app-header-bg)!important}.ant-layout-sider.app-sider{background:var(--app-sider-bg, #ffffff)!important}.ant-layout-sider.app-sider .ant-layout-sider-trigger{background:#fafafa!important;color:#595959!important;border-top:1px solid #f0f0f0}.app-sider .ant-menu-item-selected{background:color-mix(in srgb,var(--app-primary) 12%,#ffffff)!important;color:var(--app-primary)!important}.app-sider .ant-menu-item-selected .anticon{color:var(--app-primary)!important}.theme-preset-card:hover,.theme-preset-card--active{border-color:var(--app-primary)!important}.theme-preset-card--active{box-shadow:0 0 0 1px var(--app-primary)!important}.theme-preset-check,.login-brand-icon{color:var(--app-primary)!important}
