*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-track{background:#f1f1f1}.ant-layout{min-height:100vh}.chart-container{width:100%;min-height:300px}.page-header{margin-bottom:24px}.page-header h2{color:#1a1a1a;margin-bottom:8px;font-size:20px;font-weight:600}.page-header p{color:#666;font-size:14px}.kpi-card{text-align:center}.kpi-card .kpi-value{color:#1890ff;font-size:32px;font-weight:700;line-height:1.2}.kpi-card .kpi-label{color:#666;margin-top:4px;font-size:14px}.kpi-card .kpi-change{margin-top:4px;font-size:12px}.kpi-change.up{color:#52c41a}.kpi-change.down,.warning-red{color:#ff4d4f}.warning-yellow{color:#faad14}.warning-green{color:#52c41a}body{color:#172033;background:#f4f7fb}.route-loading{place-items:center;min-height:100vh;display:grid}.login-page{background:radial-gradient(circle at 50% 0,#eaf4ff,#f4f7fb 42%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:0;width:min(100%,460px);box-shadow:0 18px 55px #1f3a5d21}.login-heading{flex-direction:column;align-items:center;gap:8px;margin-bottom:28px;display:flex}.brand-identity{justify-content:center;align-items:center;min-width:0;max-width:100%;display:flex}.brand-system-name{color:#12355b;white-space:nowrap;text-overflow:ellipsis;font-size:24px;font-weight:650;line-height:1.25;overflow:hidden}.brand-identity--compact .brand-system-name{font-size:18px}.brand-company-logo{object-fit:contain;max-width:190px;height:38px;display:block}.test-account-section{color:#637083;border-top:1px solid #edf0f5;margin-top:26px;padding-top:18px;font-size:12px}.test-account-title{color:#4c596b;margin-bottom:8px;font-weight:600}.test-account-section table{border-collapse:collapse;table-layout:fixed;width:100%}.test-account-section th,.test-account-section td{text-align:left;overflow-wrap:anywhere;padding:5px 4px;font-weight:400}.test-account-section th{color:#8a94a3;border-bottom:1px solid #f0f2f5}.test-account-error{padding:4px 0;display:block}.app-shell{min-height:100vh}.app-sider,.platform-sider{z-index:20;inset:0 auto 0 0;overflow:auto;box-shadow:2px 0 12px #0412251f;flex:0 0 220px!important;width:220px!important;min-width:220px!important;max-width:220px!important;position:fixed!important}.app-sider.ant-layout-sider-collapsed{flex-basis:80px!important;width:80px!important;min-width:80px!important;max-width:80px!important}.sider-title{color:#fff;letter-spacing:.04em;border-bottom:1px solid #ffffff17;place-items:center;height:64px;padding:0 18px;font-size:19px;font-weight:650;display:grid}.sider-title .brand-identity{width:100%}.sider-title .brand-system-name{color:#fff;font-size:18px}.sider-title .brand-company-logo{max-width:160px;max-height:38px}.app-sider.ant-layout-sider-collapsed .sider-title{padding:0 10px}.app-sider.ant-layout-sider-collapsed .sider-title .brand-system-name{font-size:15px}.app-sider.ant-layout-sider-collapsed .sider-title .brand-company-logo{max-width:54px;max-height:34px}.app-main{min-width:0;transition:margin-left .2s}.app-header{z-index:10;background:#fffffff5;justify-content:space-between;align-items:center;gap:20px;height:64px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px 8px #1f3a5d14}.app-header-actions{margin-left:auto}.app-content{min-width:0;padding:24px 28px 36px;overflow:auto}.company-context{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.user-menu{cursor:pointer;border-radius:7px;padding:6px 8px}.user-menu:hover{background:#f2f6fb}.platform-page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.platform-detail-grid{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.analysis-page,.analysis-stack{width:100%;min-width:0}.analysis-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.analysis-chart-grid-lower{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)}.analysis-chart-card,.analysis-chart-card .ant-card-body{min-width:0;overflow:hidden}@media (width<=760px){.company-context,.user-menu .ant-typography{display:none}.app-header{padding:0 16px}.app-content{padding:18px 14px 28px}}@media (width<=1180px){.analysis-chart-grid,.analysis-chart-grid-lower{grid-template-columns:minmax(0,1fr)}}
