*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:#f5f7fb;color:#172033}button,input,select,textarea{font:inherit}.appShell{display:flex;flex-direction:column;min-height:100vh;background:radial-gradient(circle at top left,rgba(22,119,255,.07),transparent 28%),linear-gradient(180deg,#fff,#f5f7fb)}.appBody{min-height:calc(100vh - 68px)}.appSider{position:sticky;top:68px;height:calc(100vh - 68px);padding:18px 16px;background:#fffffff5!important;border-right:1px solid #e7ecf3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex!important;flex-direction:column}.appSider .ant-layout-sider-children{display:flex;min-height:0;height:100%;flex-direction:column}.navItem{display:flex;width:100%;height:42px;align-items:center;gap:11px;border:0;border-radius:10px;background:transparent;color:#526070;cursor:pointer;font-size:14px;padding:0 13px;text-align:left;transition:all .16s ease}.navItem:hover{background:#f3f8ff;color:#1677ff}.navItem.active{background:#eef5ff;color:#1677ff;box-shadow:inset 3px 0 #1677ff}.navGroup{margin-bottom:4px}.navGroupLabel{padding:8px 12px 6px;font-size:12px;font-weight:600;color:#94a3b8;letter-spacing:.2px}.topbar{position:sticky;z-index:10;top:0;display:flex;height:68px;align-items:center;justify-content:space-between;padding:0 24px;background:#ffffffeb;border-bottom:1px solid #e7ecf3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbarSpacer{flex:1}.topbarBrand{display:flex;align-items:center;gap:12px;min-width:0}.topbarBrandLogo{width:38px;height:38px;flex:0 0 auto;border:1px solid rgba(22,119,255,.16);border-radius:10px;background:#fff;box-shadow:0 8px 22px #1677ff24;object-fit:contain;padding:4px}.topbarBrandText{display:flex;min-width:0;flex-direction:column;gap:2px}.topbarBrandTitle{color:#172033;font-size:15px;line-height:1.2;white-space:nowrap}.topbarTenantSelect{width:fit-content;max-width:220px;min-width:96px;color:#667085;font-size:12px}.topbarTenantSelect .ant-select-selector{padding:0 16px 0 0!important;height:18px!important;min-height:18px!important}.topbarTenantSelect .ant-select-selection-item{padding:0!important;color:#667085;font-size:12px;line-height:18px!important}.topbarTenantSelect .ant-select-arrow{right:0;color:#94a3b8;font-size:10px}.topbarTenantSelect:hover .ant-select-selection-item,.topbarTenantSelect:hover .ant-select-arrow{color:#1677ff}.topbarTenantDropdown{min-width:160px!important}.topbarTenantFallback{font-size:12px;line-height:1.2}.topbarUserButton{height:44px;padding:5px 10px 5px 6px;border-radius:999px;color:#172033}.topbarUserButton:hover{background:#f3f8ff!important;color:#1677ff!important}.topbarUserMeta{display:flex;min-width:72px;flex-direction:column;align-items:flex-start;line-height:1.15}.topbarUserName{max-width:104px;overflow:hidden;color:inherit;font-size:13px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.topbarUserRole{max-width:104px;overflow:hidden;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.topbarUserArrow{color:#94a3b8;font-size:10px}.search{width:320px}.avatar{background:#1677ff;font-weight:700}.content{padding:20px 22px 28px}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.pageHeader h2{margin:0 0 6px;color:#172033;font-size:26px;line-height:1.2}.sectionTitle{color:#172033;font-size:16px;font-weight:760}.panel{border:1px solid #e7ecf3;border-radius:14px;box-shadow:0 14px 34px #0f172a0b}.fullHeightCol{width:100%;display:flex;flex-direction:column}.fullHeightCol>.panel{flex:1;display:flex;flex-direction:column}.fullHeightCol>.panel>.ant-card-body{flex:1}.panel+.panel{margin-top:16px}.metricCard{min-height:118px;border:1px solid #e7ecf3;border-radius:14px;box-shadow:0 12px 28px #0f172a0a}.metricCard .ant-statistic-title{color:#667085;font-size:13px}.metricCard .ant-statistic-content{color:#172033;font-size:32px;font-weight:760}.metricIcon{display:grid;width:48px;height:48px;place-items:center;border-radius:12px;background:#f0f5ff;flex-shrink:0}.guidePanel{display:grid;gap:14px}.guideIntro{border:1px solid #ebeff5;border-radius:12px;background:#fbfdff;color:#475467;line-height:1.7;padding:14px 16px}.guideGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.guideBlock{display:grid;gap:12px;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:16px}.guideItem{display:flex;gap:10px;align-items:flex-start;color:#475467}.guideItem .anticon{color:#1677ff;margin-top:3px}.mainGrid{margin-top:16px}.treePanel .ant-card-body,.detailPanel .ant-card-body,.alertPanel .ant-card-body{display:flex;flex-direction:column;gap:16px}.treeHint{border:1px solid #ebeff5;border-radius:12px;background:#fbfdff;padding:12px 14px}.storeTree{border:1px solid #ebeff5;border-radius:12px;background:#fff;max-height:860px;overflow:auto;padding:6px 2px}.storeTree .ant-tree-node-content-wrapper{border-radius:8px;padding:2px 4px!important;min-height:unset!important}.storeTree .ant-tree-node-content-wrapper.ant-tree-node-selected{background:#eef5ff!important}.storeTree .ant-tree-treenode{padding:1px 0}.storeTree .ant-tree-indent-unit{width:16px}.treeNode{display:flex;width:100%;align-items:center;justify-content:space-between;gap:6px;padding:2px 0}.treeOrg .treeTitle{font-size:13px}.treeLeafContent{display:flex;flex-direction:column;min-width:0}.treeLeaf .treeTitle{font-weight:600;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeTitle{display:block;color:#172033;font-weight:700;font-size:12px}.treeMeta{display:block;margin-top:1px;color:#7b8898;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treeLeaf .treeMeta{font-size:9px;color:#929eaf}.alertSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alertSummaryCard{border:1px solid #ebeff5;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcff);padding:16px}.alertSummaryCard.critical{border-color:#dc26262e;background:linear-gradient(180deg,#fff1f2cc,#fff)}.alertSummaryCard.warning{border-color:#f59e0b2e;background:linear-gradient(180deg,#fffbebcc,#fff)}.alertSummaryCard.notice{border-color:#1677ff2e;background:linear-gradient(180deg,#eff6ffd9,#fff)}.alertSummaryValue{margin:8px 0 6px;color:#172033;font-size:30px;font-weight:780}.alertHeroList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alertHeroCard{display:grid;gap:12px;border:1px solid #ebeff5;border-radius:14px;background:#fff;padding:16px}.alertHeroTitle{margin-top:10px;color:#172033;font-size:16px;font-weight:760}.alertHeroMeta{display:flex;flex-wrap:wrap;gap:8px}.alertHeroMeta span{border-radius:999px;background:#f3f6fb;color:#546274;font-size:12px;padding:5px 9px}.statStrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.statStrip.vertical{grid-template-columns:1fr}.statBadge{display:grid;gap:4px;border:1px solid #ebeff5;border-radius:12px;background:#fbfdff;padding:16px}.statBadge span{color:#172033;font-size:26px;font-weight:780}.scoreStrip{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.scoreGauge{display:flex;flex-direction:column;align-items:center;min-width:100px;padding:16px 12px 12px;border:1px solid #ebeff5;border-radius:14px;background:#fff}.recordList{display:grid;gap:12px}.recordCard{display:grid;gap:8px;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.recordCard.fail{border-color:#dc26262e;background:linear-gradient(180deg,#fff1f2c7,#fff)}.recordCard.pass{border-color:#22c55e2e;background:linear-gradient(180deg,#f0fdf4c7,#fff)}.rankingList{display:grid;gap:12px}.rankingItem{display:flex;gap:12px;align-items:center;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.rankingIndex{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#eef5ff;color:#1677ff;font-weight:780}.rankingIndex.top{background:#fff1f0;color:#ff4d4f}.rankingBody{display:grid;gap:3px}.detailSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.detailSummary>div,.cameraDetailCard,.detailStatsRow,.planningItem{border:1px solid #ebeff5;border-radius:12px;background:#fbfdff}.detailSummary>div{padding:14px}.detailValue{margin-top:6px;color:#172033;font-size:16px;font-weight:700}.cameraDetailCard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:14px}.detailItem{min-width:0}.metaCode{margin-top:6px;word-break:break-all;color:#506072;font-size:12px}.tagGroup{display:flex;flex-wrap:wrap;gap:8px}.alertSnippetList,.planningList{display:grid;gap:12px}.alertSnippet{display:grid;gap:8px;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.detailStatsRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.cameraPreviewCard{display:grid;gap:14px}.cameraSwitcher{display:grid;gap:12px}.cameraSwitcherList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cameraSwitchChip{display:grid;gap:4px;border:1px solid #ebeff5;border-radius:12px;background:#fff;cursor:pointer;padding:12px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.cameraSwitchChip:hover{border-color:#1677ff52;box-shadow:0 10px 24px #1677ff14;transform:translateY(-1px)}.cameraSwitchChip.active{border-color:#1677ff;background:#f5faff;box-shadow:0 12px 24px #1677ff1f}.cameraSwitchName{color:#172033;font-weight:700}.cameraSwitchMeta{color:#667085;font-size:12px}.cameraSwitchStatus{color:#1677ff;font-size:12px}.cameraPreviewBox{display:flex;min-height:108px;align-items:center;justify-content:center;gap:10px;border:1px dashed #cdd6e1;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f5f9ff);color:#607187;padding:16px;text-align:center}.cameraPreviewImageBox{position:relative;overflow:hidden;border:1px solid #ebeff5;border-radius:12px;background:#fff;aspect-ratio:16 / 9}.cameraPreviewImage{display:block;width:100%;height:100%;object-fit:cover}.cameraIssueOverlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cameraIssueBox{position:absolute;border:2px solid rgba(255,59,59,.95);border-radius:10px;box-shadow:0 0 0 1px #ffffff9e,0 0 0 9999px #ff00000f inset;background:#ff48480f}.cameraIssueLabel{position:absolute;left:8px;top:8px;border-radius:999px;background:#ff3b3beb;color:#fff;font-size:11px;font-weight:700;line-height:1;padding:5px 8px;white-space:nowrap}.cameraPreviewBox.large{min-height:156px}.cameraPreviewBox .anticon{font-size:22px;color:#1677ff}.cameraMetaList{display:grid;gap:12px}.cameraMetaRow{border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.configRow{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #ebeff5;border-radius:12px;background:#fbfdff;padding:14px}.configRow.stack{display:grid}.thumbnailGuide,.ruleCard{display:grid;gap:10px;border:1px solid #ebeff5;border-radius:12px;background:#fbfdff;padding:14px}.algorithmToggleList{display:grid;gap:12px}.algorithmToggleList.compact .algorithmToggleCard{padding:12px 14px}.algorithmToggleCard{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.resultDetail{display:grid;gap:14px}.inlineAlgorithmPanel{display:grid;gap:12px}.detailBadgeRow{display:flex;flex-wrap:wrap;gap:8px}.actionBar.compact{padding:12px 0 0;border:0;background:transparent}.miniSelector{width:140px}.fullSelector{width:100%}.messageCardGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.messageCard{display:grid;gap:0;overflow:hidden;border:1px solid rgba(220,38,38,.14);border-radius:14px;background:#fff;padding:0;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.messageCard:hover{border-color:#dc262647;box-shadow:0 12px 28px #dc262614;transform:translateY(-1px)}.messageCard.active{border-color:#d14343;box-shadow:0 14px 30px #dc26261f}.messageThumb{min-height:128px;background:linear-gradient(180deg,#fff1f2e6,#fffffff2);padding:12px}.messageBody{display:grid;gap:8px;padding:14px}.detailStat{display:flex;flex-direction:column;gap:4px}.detailStat span{color:#172033;font-size:24px;font-weight:780}.storeCameraList{display:grid;gap:10px}.storeCameraItem{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ebeff5;border-radius:12px;background:#fff;padding:14px}.actionBar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e7ecf3;border-radius:12px;background:linear-gradient(90deg,#f7fbff,#fff);padding:16px}.actionTitle{margin-top:6px;color:#172033;font-size:16px;font-weight:700}.planningItem{display:flex;gap:10px;align-items:flex-start;padding:14px}.planningItem .anticon{color:#1677ff;margin-top:2px}.inspectionOverviewGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.inspectionOverviewCard{display:grid;gap:4px;padding:14px;border:1px solid #e7ecf3;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.inspectionOverviewCard strong{color:#172033;font-size:26px;line-height:1.1}.inspectionOverviewCard span{color:#667085;font-size:12px}@media(max-width:1360px){.alertHeroList,.alertSummaryGrid,.messageCardGrid{grid-template-columns:1fr}}@media(max-width:1100px){.appSider{display:none}.pageHeader{flex-direction:column;align-items:flex-start}.search{width:100%}.detailSummary,.cameraDetailCard,.detailStatsRow,.guideGrid,.statStrip,.cameraSwitcherList,.inspectionOverviewGrid{grid-template-columns:1fr}.cameraGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cameraGridBody.withDetail{grid-template-columns:1fr}.cameraGridDetail{position:static}.actionBar{flex-direction:column;align-items:flex-start}.algorithmToggleCard,.configRow{align-items:flex-start;flex-direction:column}}@media(max-width:780px){.topbar{flex-direction:column;height:auto;align-items:flex-start;gap:10px;padding:14px 16px}.content{padding:16px}.selector,.search{width:100%}.cameraGrid{grid-template-columns:1fr!important}}.loginShell{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f5ff;overflow:hidden}.loginBg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.loginShape{position:absolute;border-radius:50%;opacity:.08;background:#1677ff}.shape1{width:600px;height:600px;top:-200px;right:-150px;animation:loginFloat 20s ease-in-out infinite}.shape2{width:400px;height:400px;bottom:-100px;left:-100px;animation:loginFloat 25s ease-in-out infinite reverse}.shape3{width:200px;height:200px;top:50%;left:15%;animation:loginFloat 18s ease-in-out infinite}@keyframes loginFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}.loginCard{position:relative;width:420px;background:#fff;border-radius:16px;box-shadow:0 0 0 1px #1677ff0f,0 4px 24px #1677ff0f,0 12px 48px #0000000f;overflow:hidden}.loginAccent{height:4px;background:linear-gradient(90deg,#1677ff,#4096ff,#69b1ff)}.loginContent{padding:44px 48px 40px}.loginBrand{text-align:center;margin-bottom:36px}.loginLogoBox{width:56px;height:56px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,#1677ff,#4096ff);box-shadow:0 8px 24px #1677ff47}.loginLogoIcon{font-size:28px;color:#fff}.loginTitle{margin:0 0 6px!important;color:#1e293b;font-size:22px!important;font-weight:700!important;letter-spacing:1px}.loginSubtitle{color:#94a3b8;font-size:14px}.loginInput{border-radius:8px;height:44px}.loginBtn{height:46px!important;border-radius:8px!important;font-size:16px!important;font-weight:600!important;letter-spacing:2px;background:linear-gradient(135deg,#1677ff,#4096ff)!important;border:none!important;box-shadow:0 4px 16px #1677ff4d;transition:all .3s ease}.loginBtn:hover{box-shadow:0 6px 24px #1677ff66;transform:translateY(-1px)}.loginHint{display:block;text-align:center;margin-top:20px;color:#cbd5e1;font-size:12px}.navList{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;min-height:0;padding-bottom:12px}.cameraGridPanel{display:flex;flex-direction:column;gap:16px}.cameraGridBody{display:block}.cameraGridBody.withDetail{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;align-items:start}.cameraGridBody>.cameraGrid{min-width:0}.cameraGridHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid #ebeff5;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#fff)}.cameraGridHeaderMeta{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:6px}.cameraGridHeaderSummary{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.cameraGridHeaderSummaryItem{margin:0;border-radius:999px;font-size:12px;font-weight:600;line-height:1.3;padding:2px 10px}.cameraGridHeaderInfo{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#7b8898;font-size:11px}.cameraGridHeaderActions{display:flex;align-items:center;justify-content:flex-end;min-height:24px}.cameraGrid{display:grid;gap:18px}.cameraGridCard{display:flex;flex-direction:column;gap:0;border:1px solid #ebeff5;border-radius:16px;background:#fff;cursor:pointer;overflow:hidden;padding:0;text-align:left;transition:all .2s ease;box-shadow:0 2px 8px #0000000a;min-height:100%}.cameraGridCard:hover{border-color:#1677ff66;box-shadow:0 8px 24px #1677ff1a;transform:translateY(-2px)}.cameraGridCard.selected{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff33,0 8px 24px #1677ff1f}.cameraGridThumb{position:relative;aspect-ratio:16 / 9;background:#101418;overflow:hidden}.cameraGridThumb img{width:100%;height:100%;object-fit:cover;display:block}.cameraGridPlaceholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;background:linear-gradient(135deg,#f8f9fb,#eef1f6);color:#94a3b8;font-size:12px}.cameraGridPlaceholder.large{min-height:200px}.cameraGridPlaceholder .anticon{font-size:32px;color:#1677ff;opacity:.5}.cameraGridLabel{display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px}.cameraGridTags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.detailKvList{display:grid;gap:10px}.detailKvRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.cameraGridDetail{position:sticky;top:86px;display:flex;flex-direction:column;gap:14px;border:1px solid #e7ecf3;border-radius:16px;background:#fff;padding:14px;box-shadow:0 10px 28px #0f172a0f}.cameraDetailHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cameraDetailTitle{display:block;max-width:210px;overflow:hidden;color:#172033;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.cameraDetailSub{margin-top:4px;color:#667085;font-size:12px}.cameraDetailThumb{overflow:hidden;border-radius:12px;background:#101418;aspect-ratio:16 / 9}.cameraDetailThumb img{display:block;width:100%;height:100%;object-fit:cover}.cameraDetailSection{display:grid;gap:10px;padding:12px;border:1px solid #eef2f7;border-radius:12px;background:#fbfdff}.cameraDetailTags{display:flex;flex-wrap:wrap;gap:6px}.cameraDetailTabs .ant-tabs-nav{margin-bottom:10px}.cameraDetailTabs .ant-tabs-tab{padding:8px 0;font-size:13px}.cameraInspectionList,.cameraAlertList{display:grid;gap:10px}.cameraInspectionItem{display:grid;gap:8px;padding:10px;border:1px solid #eef2f7;border-radius:10px;background:#fff}.cameraInspectionDesc{margin-top:3px;color:#667085;font-size:12px;line-height:1.45}.cameraAlertItem{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border:1px solid rgba(255,77,79,.16);border-radius:10px;background:snow}.cameraAlertThumb{display:flex;align-items:center;justify-content:center;overflow:hidden;aspect-ratio:16 / 9;border-radius:8px;background:#111827;color:#cbd5e1}.cameraAlertThumb img{display:block;width:100%;height:100%;object-fit:cover}.cameraAlertMeta{display:grid;min-width:0;gap:4px}.cameraAlertMeta .ant-typography-secondary{font-size:12px}.cameraAlertEmpty{display:flex;align-items:center;justify-content:center;min-height:86px;gap:8px;border:1px dashed #d8e0eb;border-radius:10px;background:#fff}.cameraRecentAlertSection{background:#fffdfd}.cameraGridPlayBtn{position:absolute;left:50%;top:50%;width:54px;height:54px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:#14181fc7;color:#fff;font-size:24px;cursor:pointer;opacity:.92;transform:translate(-50%,-50%) scale(1);transition:all .18s ease;box-shadow:0 12px 28px #0000004d;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cameraGridCard:hover .cameraGridPlayBtn{opacity:1;transform:translate(-50%,-50%) scale(1.04)}.cameraGridPlayBtn:hover{background:#000000e0;box-shadow:0 14px 32px #00000061;transform:translate(-50%,-50%) scale(1.08)!important}.cameraGridAlgoTag{margin:0;border-radius:999px;font-size:11px;line-height:18px}.playbackContainer{display:grid;gap:20px}.playbackVideoBox{border-radius:12px;overflow:hidden;background:#000}.playbackImage,.playbackVideo{width:100%;display:block;aspect-ratio:16 / 9;object-fit:contain;background:#000}.playbackInfo{display:grid;grid-template-columns:80px 1fr;gap:8px 16px;align-items:center}.visualEvaluationPage{display:grid;gap:16px}.visualEvaluationProgress{margin-bottom:16px}.visualEvaluationWeight{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.visualEvaluationImage{position:relative;overflow:hidden;border-radius:8px;background:#f5f5f5;min-height:260px}.visualEvaluationImage img{display:block;width:100%;max-height:420px;object-fit:contain}.visualEvaluationBox{position:absolute;border:3px solid #ff4d4f;box-shadow:0 0 0 1px #fffc;pointer-events:none}.visualEvaluationPage pre{max-height:240px;overflow:auto;white-space:pre-wrap;font-size:12px}@media(max-width:900px){.visualEvaluationImage{min-height:200px}}.aisopCaseLayout{display:flex;gap:16px;height:calc(100vh - 180px)}.aisopCaseVideoColumn{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.aisopCaseResultsColumn{width:380px;overflow-y:auto}@media(max-width:900px){.aisopCaseLayout{display:block;height:auto}.aisopCaseResultsColumn{width:100%;margin-top:16px;overflow-y:visible}}
