:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--app-bg-content:#f7f8fa;--app-bg-card:#fff;--app-bg-sidebar:#0a0a0a;--app-bg-sidebar-muted:#171717;--app-text-primary:#0a0a0a;--app-text-secondary:#52525b;--app-text-muted:#a1a1aa;--app-text-on-dark:#fafafa;--app-border:#e5e7eb;--app-primary:#3b82f6;--app-accent:#a855f7;--app-success:#22c55e;--app-warning:#f97316;--app-danger:#ef4444;--app-radius-md:12px;--app-radius-lg:16px;--app-radius-pill:9999px;--app-shadow-sm:0 1px 2px #0000000a;--app-shadow-md:0 4px 12px #0000000f}*{box-sizing:border-box}html,body,#root{min-height:100dvh}body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;background:var(--app-bg-content);color:var(--app-text-primary);margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:16px}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.metric-large{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--app-text-primary);font-size:40px;font-weight:700;line-height:1.1}.metric-small{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--app-text-primary);font-size:28px;font-weight:700;line-height:1.15}.text-secondary{color:var(--app-text-secondary)}.text-muted{color:var(--app-text-muted)}.wh2-line-muted>td{opacity:.55}.icon-tile{border-radius:var(--app-radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:inline-flex}.kpi-accent-bar{border-top-left-radius:var(--app-radius-lg);border-top-right-radius:var(--app-radius-lg);height:4px}.delta-badge{border-radius:var(--app-radius-pill);font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.delta-badge.up{color:#15803d;background:#dcfce7}.delta-badge.down{color:#b91c1c;background:#fee2e2}.delta-badge.flat{color:#52525b;background:#f4f4f5}.live-badge{border-radius:var(--app-radius-pill);color:#b91c1c;letter-spacing:.5px;text-transform:uppercase;background:#fee2e2;align-items:center;gap:6px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-flex}.live-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse-live}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.35}}.sidebar-group-label{letter-spacing:.8px;text-transform:uppercase;color:#fff6;padding:16px 20px 6px;font-size:11px;font-weight:600}.app-sidebar{background:var(--app-bg-sidebar);color:var(--app-text-on-dark);scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex-direction:column;flex-shrink:0;align-self:flex-start;width:240px;height:100dvh;display:flex;position:sticky;top:0;left:0;overflow-y:auto}@media (width<=768px){.app-sidebar{align-self:stretch;width:100%;height:auto;min-height:100%;position:static}}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.app-sidebar{transition:width .18s}.sidebar-collapse-btn{color:#ffffffbf;cursor:pointer;z-index:1;background:#ffffff0f;border:none;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:background .15s,color .15s;display:inline-flex;position:absolute;top:10px;right:10px}.sidebar-collapse-btn:hover{color:#fafafa;background:#ffffff24}.app-sidebar.collapsed{width:72px}.app-sidebar.collapsed .sidebar-collapse-btn{margin:10px auto 2px;position:static;top:auto;right:auto}.app-sidebar.collapsed .company-name,.app-sidebar.collapsed .company-sub,.app-sidebar.collapsed .sidebar-section-title,.app-sidebar.collapsed .nav-label,.app-sidebar.collapsed .nav-chevron,.app-sidebar.collapsed .nav-children,.app-sidebar.collapsed .nav-badge,.app-sidebar.collapsed .lang-switcher,.app-sidebar.collapsed .user-meta{display:none}.app-sidebar.collapsed .sidebar-logo{padding:8px 6px 12px}.app-sidebar.collapsed .sidebar-logo img{max-height:40px!important;margin-bottom:0!important}.app-sidebar.collapsed .sidebar-section{padding:8px 8px 0}.app-sidebar.collapsed .nav-item{justify-content:center;gap:0;padding:10px 0}.app-sidebar.collapsed .nav-icon{width:auto;font-size:17px}.app-sidebar.collapsed .sidebar-bottom{padding:10px 8px}.app-sidebar.collapsed .user-card{justify-content:center;padding:6px}.sidebar-logo{text-align:center;border-bottom:1px solid #ffffff0f;padding:20px 16px 16px}.logo-icon{border-radius:var(--app-radius-md);background:#3b82f62e;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 10px;font-size:26px;line-height:1;display:flex}.company-name{color:#fafafa;font-size:14px;font-weight:700;line-height:1.3}.company-sub{color:#ffffff73;margin-top:2px;font-size:11px}.sidebar-section{padding:10px 12px 0}.sidebar-section-title{letter-spacing:1px;text-transform:uppercase;color:#fff6;padding:10px 8px 6px;font-size:10.5px;font-weight:700}.nav-item{cursor:pointer;color:#ffffffd9;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;margin:1px 0;padding:9px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#fafafa;background:#ffffff0f}.nav-item.active{color:#fff;background:#2563eb}.nav-item.active:hover{background:#1d4ed8}.nav-icon{flex-shrink:0;justify-content:center;width:20px;font-size:15px;display:inline-flex}.nav-badge{color:#fff;text-align:center;background:#ef4444;border-radius:9999px;min-width:18px;margin-left:auto;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.4}.nav-item.active .nav-badge{background:#ffffff40}.nav-children{margin:2px 0 4px;padding-left:22px}.nav-children .nav-item{color:#ffffffa6;padding:6px 12px;font-size:12.5px}.nav-chevron{opacity:.5;margin-left:auto;font-size:10px;transition:transform .15s}.nav-chevron.open{transform:rotate(90deg)}.sidebar-bottom{border-top:1px solid #ffffff0f;margin-top:auto;padding:12px}.sidebar-version{cursor:pointer;text-align:left;color:#ffffff59;background:0 0;border:none;width:100%;margin-top:8px;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:block}.sidebar-version:hover{color:#fff9}.app-sidebar.collapsed .sidebar-version{display:none}.lang-switcher{background:#ffffff0f;border-radius:8px;gap:2px;margin-bottom:12px;padding:3px;display:flex}.lang-btn{color:#fff9;cursor:pointer;letter-spacing:.5px;background:0 0;border:none;border-radius:6px;flex:1;padding:5px 0;font-size:11px;font-weight:600;transition:all .15s}.lang-btn:hover{color:#ffffffd9}.lang-btn.active{color:#fff;background:#ffffff1f}.user-card{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.user-card:hover{background:#ffffff0f}.user-avatar{color:#fff;background:linear-gradient(135deg,#3b82f6,#a855f7);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.user-meta{flex:1;min-width:0}.user-name{color:#fafafa;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.user-role{color:#ffffff80;margin-top:1px;font-size:11px;line-height:1.3}.app-topbar{border-bottom:1px solid var(--app-border);z-index:100;padding:12px 24px;padding-top:calc(12px + var(--safe-top));background:#fff;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar-title-block{flex-shrink:0;min-width:0}.topbar-title{color:var(--app-text-primary);font-size:22px;font-weight:700;line-height:1.2}.topbar-subtitle{color:var(--app-text-secondary);margin-top:2px;font-size:12px}.search-box{max-width:420px;color:var(--app-text-secondary);background:#f4f4f5;border-radius:10px;flex:1;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.search-box input{color:var(--app-text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13px}.topbar-icons{align-items:center;gap:8px;display:flex}.icon-btn{width:38px;height:38px;color:var(--app-text-primary);cursor:pointer;background:#f4f4f5;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:inline-flex;position:relative}.icon-btn:hover{background:#e5e7eb}.notif-dot{background:#ef4444;border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:7px;right:7px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.kpi-card{background:var(--app-bg-card);border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-sm);padding:18px 20px;position:relative;overflow:hidden}.kpi-card:before{content:"";height:4px;position:absolute;top:0;left:0;right:0}.kpi-card.blue:before{background:var(--app-primary)}.kpi-card.green:before{background:var(--app-success)}.kpi-card.orange:before{background:var(--app-warning)}.kpi-card.red:before{background:var(--app-danger)}.kpi-card.purple:before{background:var(--app-accent)}.kpi-card.teal:before{background:#14b8a6}.kpi-icon{border-radius:var(--app-radius-md);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:10px;font-size:22px;line-height:1;display:inline-flex}.kpi-icon.blue{background:#dbeafe}.kpi-icon.green{background:#dcfce7}.kpi-icon.orange{background:#ffedd5}.kpi-icon.red{background:#fee2e2}.kpi-icon.purple{background:#f3e8ff}.kpi-icon.teal{background:#ccfbf1}.kpi-value{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--app-text-primary);font-size:30px;font-weight:700;line-height:1.1}.kpi-label{color:var(--app-text-secondary);margin-top:4px;font-size:13px}.alert-item{border-radius:var(--app-radius-md);background:#fef9c3;border-left:4px solid #eab308;align-items:center;gap:12px;padding:12px 16px;display:flex}.alert-item.critical{background:#fee2e2;border-left-color:#ef4444}.alert-item.warning{background:#ffedd5;border-left-color:#f97316}.alert-item.info{background:#dbeafe;border-left-color:#3b82f6}.alert-icon{flex-shrink:0;font-size:20px}.alert-title{color:var(--app-text-primary);font-size:14px;font-weight:600}.alert-desc{color:var(--app-text-secondary);margin-top:2px;font-size:12px}.btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-xs{border-radius:8px;padding:4px 8px;font-size:11px}.btn-primary{background:var(--app-primary);color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{color:var(--app-text-primary);background:#f4f4f5}.btn-secondary:hover{background:#e5e7eb}.tabs{border-bottom:1px solid var(--app-border);gap:4px;margin-bottom:16px;display:flex}.tab-btn{color:var(--app-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:600}.tab-btn:hover{color:var(--app-text-primary)}.tab-btn.active{color:var(--app-primary);border-bottom-color:var(--app-primary)}.badge{white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge.gray{color:#52525b;background:#f4f4f5}.badge.blue{color:#1d4ed8;background:#dbeafe}.badge.green{color:#15803d;background:#dcfce7}.badge.orange{color:#c2410c;background:#ffedd5}.badge.red{color:#b91c1c;background:#fee2e2}.badge.purple{color:#7e22ce;background:#f3e8ff}.progress-bar{background:#f4f4f5;border-radius:9999px;height:6px;overflow:hidden}.progress-fill{background:var(--app-primary);height:100%;transition:width .3s}.progress-fill.green{background:var(--app-success)}.progress-fill.orange{background:var(--app-warning)}.progress-fill.red{background:var(--app-danger)}.demo-card{background:var(--app-bg-card);border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-sm);padding:20px}.demo-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.demo-card-title{color:var(--app-text-primary);font-size:16px;font-weight:700}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--app-text-secondary);border-bottom:1px solid var(--app-border);background:#fafafa;padding:10px 12px;font-size:11.5px;font-weight:600}.data-table tbody td{color:var(--app-text-primary);vertical-align:middle;border-bottom:1px solid #f4f4f5;padding:12px}.data-table tbody tr:hover{background:#fafafa}@media (width<=575px){.app-topbar{gap:8px;padding:10px 12px}.topbar-title{font-size:18px}.search-box{display:none}.icon-btn{width:34px;height:34px;font-size:14px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-card{padding:14px}.kpi-value{font-size:22px}.kpi-icon{width:36px;height:36px;font-size:18px}.kpi-label{font-size:12px}.alert-item{flex-wrap:wrap}.ant-btn .anticon+span{font-size:12px}}@media (width<=767px){.responsive-modal-drawer .ant-drawer-body{padding:12px!important}.responsive-modal-drawer .ant-form-item{margin-bottom:12px}.ant-descriptions-item-label,.ant-descriptions-item-content{font-size:13px;padding:8px 10px!important}}input,select,textarea{font-size:16px}@media (width<=767px){.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}}.safe-top{padding-top:var(--safe-top)}.safe-bottom{padding-bottom:var(--safe-bottom)}.safe-left{padding-left:var(--safe-left)}.safe-right{padding-right:var(--safe-right)}.app-header{padding-top:var(--safe-top)}.app-content{padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom)}@media (pointer:coarse){.ant-btn:not(.ant-btn-sm):not(.ant-btn-xs){min-height:40px}.ant-btn.ant-btn-text,.ant-btn.ant-btn-icon-only{min-width:40px;min-height:40px}}@media (width<=575px){.ant-pagination{justify-content:center}.ant-pagination-total-text{display:none}.ant-space-item .ant-typography h4{font-size:18px!important}.mobile-content{margin:8px!important}.recharts-wrapper{overflow:hidden}.ant-card-small>.ant-card-body{padding:10px!important}.ant-card-small>.ant-card-head{min-height:36px;padding:0 10px!important}.ant-card-head-title{padding:8px 0!important}.ant-modal{max-width:calc(100vw - 16px)!important;margin:8px auto!important}.responsive-modal-drawer .ant-drawer-body{padding-bottom:calc(16px + var(--safe-bottom));padding:16px!important}.responsive-modal-drawer .ant-drawer-header{padding:12px 16px!important}}.ant-layout-sider{transition:width .2s,min-width .2s!important}.mobile-nav-drawer .ant-drawer-body{background:#001529;padding:0}.mobile-nav-drawer .ant-drawer-header{background:#001529;border-bottom:1px solid #ffffff1a}.mobile-nav-drawer .ant-drawer-title{color:#fff;font-weight:700}.mobile-nav-drawer .ant-drawer-close{color:#ffffffa6}@media (prefers-reduced-motion:no-preference){.ant-drawer{will-change:transform}.ant-modal-wrap{will-change:opacity}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.offline-banner{z-index:1001;color:#92400e;text-align:center;background:#fef3c7;border-bottom:1px solid #fde68a;padding:6px 12px;font-size:13px;position:sticky;top:0}
