.topbar{display:flex;align-items:center;gap:var(--sp-5);height:var(--h-topbar);padding:0 var(--sp-5);background:var(--c-surface);border-bottom:2px solid var(--c-primary);flex-shrink:0;position:relative;z-index:20}.topbar__brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.topbar__mark{width:4px;height:26px;background:var(--c-primary);border-radius:1px;flex-shrink:0}.topbar__title{font-size:17px;font-weight:600;letter-spacing:.4px;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__status{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto;flex-wrap:nowrap;overflow:hidden}.status-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-alt);font-size:var(--fs-sm);white-space:nowrap}.status-pill__dot{width:7px;height:7px;border-radius:50%;background:var(--c-idle);flex-shrink:0}.status-pill__label{color:var(--c-text-muted)}.status-pill__value{font-weight:600;color:var(--c-text)}.status-pill--ok{border-color:var(--c-primary-border);background:var(--c-normal-bg)}.status-pill--ok .status-pill__dot{background:var(--c-normal)}.status-pill--ok .status-pill__value{color:var(--c-primary-dark)}.status-pill--warn{border-color:#ecc9a0;background:var(--c-warning-bg)}.status-pill--warn .status-pill__dot{background:var(--c-warning)}.status-pill--warn .status-pill__value{color:#a35c05}.status-pill--error{border-color:#e8b4b4;background:var(--c-critical-bg)}.status-pill--error .status-pill__dot{background:var(--c-critical)}.status-pill--error .status-pill__value{color:var(--c-critical)}.status-pill--offline .status-pill__dot{background:var(--c-idle)}.status-pill--offline .status-pill__value{color:var(--c-text-muted)}.topbar__right{display:flex;align-items:center;gap:var(--sp-3);padding-left:var(--sp-4);border-left:1px solid var(--c-border);flex-shrink:0}.topbar__clock{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-sub);white-space:nowrap}.topbar__tag{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--r-sm);font-size:var(--fs-sm);border:1px solid transparent;white-space:nowrap}.topbar__tag--idle{background:var(--c-info-bg);border-color:#cfdae4;color:var(--c-info)}button.topbar__tag--warn{background:var(--c-warning-bg);border-color:#ecc9a0;color:#a35c05;cursor:pointer}button.topbar__tag--warn:hover{background:#fbe8cd}@media(max-width:1240px){.status-pill__label{display:none}.topbar__clock{font-size:var(--fs-xs)}}@media(max-width:1040px){.topbar__status{display:none}}.sidebar{display:flex;flex-direction:column;width:var(--w-sidebar);flex-shrink:0;background:#1f2a2e;border-right:1px solid #16202400;transition:width .16s ease;overflow:hidden}.sidebar--collapsed{width:var(--w-sidebar-collapsed)}.sidebar__nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--sp-3) 0}.sidebar__nav::-webkit-scrollbar{width:6px}.sidebar__nav::-webkit-scrollbar-thumb{background:#3b4a50}.sidebar__group+.sidebar__group{margin-top:var(--sp-4)}.sidebar__group-title{padding:0 var(--sp-4) var(--sp-2);font-size:var(--fs-xs);letter-spacing:1.2px;color:#7b8b91;-webkit-user-select:none;user-select:none}.sidebar--collapsed .sidebar__group-title{text-align:center;padding:0 0 var(--sp-2);color:#4c5b61}.sidebar__list{list-style:none;margin:0;padding:0 var(--sp-2)}.sidebar__item{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;margin-bottom:2px;border:0;border-left:3px solid transparent;border-radius:var(--r-sm);background:transparent;color:#b9c6cb;font-size:var(--fs-md);text-align:left;transition:background .12s ease,color .12s ease}.sidebar__item:hover{background:#2a373c;color:#e8eff1}.sidebar__item--active{background:#24343a;border-left-color:var(--c-primary);color:#fff;font-weight:600}.sidebar__item--active .sidebar__icon{color:#4ec27f}.sidebar__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;color:#8b9ba1}.sidebar__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--c-critical);color:#fff;font-size:var(--fs-xs);font-weight:600;line-height:18px;text-align:center}.sidebar__badge--dot{position:absolute;top:5px;right:8px;min-width:7px;width:7px;height:7px;padding:0;border-radius:50%}.sidebar--collapsed .sidebar__item{justify-content:center;padding:0;position:relative}.sidebar__footer{flex-shrink:0;border-top:1px solid #2c393e;padding:var(--sp-2)}.sidebar__collapse{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:32px;border:0;border-radius:var(--r-sm);background:transparent;color:#8b9ba1;font-size:var(--fs-sm)}.sidebar__collapse:hover{background:#2a373c;color:#e8eff1}.sidebar__collapse-arrow{display:inline-block;font-size:16px;line-height:1;transform:rotate(0);transition:transform .16s ease}.sidebar__collapse-arrow.is-collapsed{transform:rotate(180deg)}@media(max-width:1040px){.sidebar{width:var(--w-sidebar-collapsed)}.sidebar .sidebar__label,.sidebar .sidebar__group-title,.sidebar .sidebar__collapse span:last-child{display:none}.sidebar .sidebar__item{justify-content:center;padding:0}}.panel{display:flex;flex-direction:column;min-width:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-card);overflow:hidden}.panel--primary{border-top:3px solid var(--c-primary)}.panel--warning{border-top:3px solid var(--c-warning)}.panel--critical{border-top:3px solid var(--c-critical)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:42px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);background:var(--c-surface-alt);flex-shrink:0}.panel__head-left{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.panel__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-sm);background:var(--c-primary-light);color:var(--c-primary-dark);flex-shrink:0}.panel__title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel__desc{margin-top:1px;font-size:var(--fs-xs);color:var(--c-text-muted)}.panel__extra{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.panel__body{flex:1;min-height:0;padding:var(--sp-4)}.panel__body--flush{padding:0}.badge{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 8px;border:1px solid var(--c-border);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:1;white-space:nowrap;background:var(--c-surface-alt);color:var(--c-text-sub)}.badge__dot,.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.dot{width:7px;height:7px}.dot--pulse{animation:dot-pulse 1.6s ease-in-out infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.badge--normal,.dot.badge--normal{color:var(--c-primary-dark)}.badge--normal{background:var(--c-normal-bg);border-color:var(--c-primary-border)}.dot.badge--normal{background:var(--c-normal)}.badge--warning{background:var(--c-warning-bg);border-color:#ecc9a0;color:#a35c05}.dot.badge--warning{background:var(--c-warning)}.badge--critical{background:var(--c-critical-bg);border-color:#e8b4b4;color:var(--c-critical)}.dot.badge--critical{background:var(--c-critical)}.badge--info{background:var(--c-info-bg);border-color:#cfdae4;color:var(--c-info)}.dot.badge--info{background:var(--c-info)}.badge--idle{background:#f1f3f5;border-color:var(--c-border);color:var(--c-text-muted)}.dot.badge--idle{background:var(--c-idle)}.badge--primary{background:var(--c-primary-light);border-color:var(--c-primary-border);color:var(--c-primary-dark)}.dot.badge--primary{background:var(--c-primary)}.badge--solid.badge--critical{background:var(--c-critical);border-color:var(--c-critical);color:#fff}.badge--solid.badge--warning{background:var(--c-warning);border-color:var(--c-warning);color:#fff}.badge--solid.badge--normal{background:var(--c-normal);border-color:var(--c-normal);color:#fff}.metric-list{display:flex;flex-direction:column}.metric-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:7px 0;border-bottom:1px dashed var(--c-border)}.metric-row:last-child{border-bottom:0}.metric-row__label{font-size:var(--fs-base);color:var(--c-text-sub);white-space:nowrap}.metric-row__value{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--c-text);text-align:right}.metric-row__unit{margin-left:3px;font-family:var(--font-sans);font-size:var(--fs-sm);font-style:normal;font-weight:400;color:var(--c-text-muted)}.metric-row__value--normal{color:var(--c-primary-dark)}.metric-row__value--warning{color:#a35c05}.metric-row__value--critical{color:var(--c-critical)}.metric-row__value--info{color:var(--c-info)}.metric-row__value--idle{color:var(--c-text-muted)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);padding-bottom:6px;border-bottom:1px solid var(--c-border)}.section-title__text{position:relative;padding-left:9px;font-size:var(--fs-base);font-weight:600;color:var(--c-text)}.section-title__text:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:12px;background:var(--c-primary);border-radius:1px}.section-title__extra{font-size:var(--fs-sm);color:var(--c-text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:var(--sp-8) var(--sp-4);text-align:center}.empty-state__title{font-size:var(--fs-md);font-weight:600;color:var(--c-text-sub)}.empty-state__desc{font-size:var(--fs-sm);color:var(--c-text-muted);max-width:420px;line-height:1.7}.empty-state__action{margin-top:var(--sp-2)}.empty-state--warning .empty-state__title{color:#a35c05}.empty-state--critical .empty-state__title{color:var(--c-critical)}.skeleton{display:block;border-radius:var(--r-xs);background:linear-gradient(90deg,#eef1f3 25%,#e3e8eb 37%,#eef1f3 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.stat-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + 3px);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-card);overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c-idle)}.stat-card--normal:before{background:var(--c-normal)}.stat-card--warning:before{background:var(--c-warning)}.stat-card--critical:before{background:var(--c-critical)}.stat-card--info:before{background:var(--c-info)}.stat-card--primary:before{background:var(--c-primary)}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{border-color:var(--c-border-strong);box-shadow:var(--sh-raised)}.stat-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.stat-card__label{font-size:var(--fs-base);color:var(--c-text-sub);white-space:nowrap}.stat-card__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--r-sm);background:var(--c-surface-alt);color:var(--c-text-muted);flex-shrink:0}.stat-card--normal .stat-card__icon{background:var(--c-normal-bg);color:var(--c-primary-dark)}.stat-card--warning .stat-card__icon{background:var(--c-warning-bg);color:var(--c-warning)}.stat-card--critical .stat-card__icon{background:var(--c-critical-bg);color:var(--c-critical)}.stat-card__value-row{display:flex;align-items:baseline;gap:5px;min-height:34px}.stat-card__value{font-family:var(--font-mono);font-size:27px;font-weight:600;line-height:1.15;color:var(--c-text);letter-spacing:-.5px}.stat-card--normal .stat-card__value{color:var(--c-primary-dark)}.stat-card--warning .stat-card__value{color:#a35c05}.stat-card--critical .stat-card__value{color:var(--c-critical)}.stat-card--info .stat-card__value{color:var(--c-info)}.stat-card__suffix{font-size:var(--fs-md);color:var(--c-text-muted)}.stat-card__footnote{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.6}.detection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.detection-overlay__box{position:absolute;border:.28vmin solid transparent;border-width:max(2px,.28vmin);border-radius:var(--r-xs);box-sizing:border-box}.detection-overlay__label{position:absolute;left:-1px;bottom:100%;margin-bottom:3px;padding:2px 7px;border-radius:var(--r-xs);color:#fff;font-family:var(--font-sans);font-size:max(11px,1.35vmin);font-weight:600;line-height:1.5;white-space:nowrap;letter-spacing:.2px}.detection-overlay__box[style*="top: 0%"] .detection-overlay__label{bottom:auto;top:0;margin-bottom:0;margin-top:2px}.monitor-video{position:relative;width:100%;aspect-ratio:16 / 9;background:#10181b;border-radius:var(--r-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.monitor-video__media{width:100%;height:100%;object-fit:contain;display:block;background:#10181b}.monitor-video__probing{width:100%;height:100%;background:linear-gradient(90deg,#10181b 25%,#162226 37%,#10181b 63%);background-size:400% 100%;animation:monitor-probing 1.6s ease infinite}@keyframes monitor-probing{0%{background-position:100% 50%}to{background-position:0 50%}}.monitor-video__timestamp,.monitor-video__camera,.monitor-video__notice{position:absolute;font-family:var(--font-mono);font-size:var(--fs-sm);color:#f2f6f7;background:#10181b8c;padding:2px 7px;border-radius:var(--r-xs);letter-spacing:.3px;pointer-events:none;white-space:nowrap}.monitor-video__timestamp{top:9px;left:10px}.monitor-video__camera{right:12px;bottom:10px;font-weight:600}.monitor-video__notice{right:10px;bottom:38px;background:#d97706db;font-family:var(--font-sans)}.monitor-video__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:var(--sp-5);text-align:center}.monitor-video__placeholder-mark{width:26px;height:18px;border:2px solid #46585f;border-radius:var(--r-xs);position:relative}.monitor-video__placeholder-mark:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);width:2px;height:5px;background:#46585f}.monitor-video__placeholder-title{font-size:var(--fs-md);color:#a8b7bd;font-weight:600}.monitor-video__placeholder-desc{font-size:var(--fs-sm);color:#6e8189;max-width:380px;line-height:1.7}.monitor-video__placeholder-desc code{background:#ffffff14;color:#93b8a5;margin:0 3px}.chart{position:relative;width:100%;min-width:0}.chart__canvas{width:100%;height:100%}.chart__empty{display:flex;align-items:center;justify-content:center;height:100%;border:1px dashed var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-alt)}.chart__empty .empty-state{padding:var(--sp-4)}.overview{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.overview__stats{flex-shrink:0}.overview__main,.overview__video-panel{min-width:0}.overview__video-wrap{padding:var(--sp-3) var(--sp-3) 0}.overview__video-meta{display:flex;flex-wrap:wrap;gap:0;margin-top:var(--sp-3);border-top:1px solid var(--c-border);background:var(--c-surface-alt)}.overview__meta-item{display:flex;flex-direction:column;gap:2px;padding:9px var(--sp-5) 9px var(--sp-3);min-width:0;flex:1 1 auto}.overview__meta-item+.overview__meta-item{border-left:1px solid var(--c-border)}.overview__meta-label{font-size:var(--fs-xs);color:var(--c-text-muted);white-space:nowrap}.overview__meta-value{font-size:var(--fs-base);font-weight:600;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview__meta-value.mono{font-family:var(--font-mono);font-weight:500}.overview__side{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.overview__status-value{font-family:var(--font-sans);font-size:var(--fs-base)}.overview__status-value.is-ok{color:var(--c-primary-dark)}.overview__status-value.is-warn{color:#a35c05}.overview__status-value.is-error{color:var(--c-critical)}.overview__status-value.is-offline{color:var(--c-text-muted)}.overview__link{border:0;background:transparent;padding:0;color:var(--c-primary);font-size:var(--fs-sm);cursor:pointer}.overview__link:hover{color:var(--c-primary-dark);text-decoration:underline}.overview__lower{min-width:0}.overview__stale{display:flex;align-items:center;gap:7px;padding:7px var(--sp-4);border:1px solid #ecc9a0;border-left:3px solid var(--c-warning);border-radius:var(--r-sm);background:var(--c-warning-bg);color:#a35c05;font-size:var(--fs-sm)}.overview__stale svg{flex-shrink:0}.overview__stale-detail{color:#b8863f;font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview__fusion-body{display:flex;flex-direction:column}.overview__fusion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5)}.overview__fusion-verdict{display:flex;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);margin-bottom:var(--sp-3);border-bottom:1px solid var(--c-border)}.overview__fusion-label{font-size:var(--fs-base);color:var(--c-text-sub)}.overview__fusion-verdict .badge{height:24px;padding:0 12px;font-size:var(--fs-md);font-weight:600}.overview__fusion-col{min-width:0}.overview__fusion-text{font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.75}.overview__fusion-reason{margin-top:auto;padding:var(--sp-3);border-radius:var(--r-sm);background:var(--c-surface-alt);border-left:3px solid var(--c-primary-border);font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8}.overview__device-summary{display:flex;flex-wrap:wrap;gap:var(--sp-5);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border);background:var(--c-surface-alt);font-size:var(--fs-sm);color:var(--c-text-sub)}.overview__device-summary span{display:inline-flex;align-items:center;gap:6px}.overview__device-table-wrap{max-height:218px;overflow-y:auto}.overview__device-table-wrap .data-table th,.overview__device-table-wrap .data-table td{padding:7px var(--sp-4);font-size:var(--fs-sm)}.overview__device-empty{text-align:center;color:var(--c-text-muted);padding:var(--sp-5)!important}.overview__device-more{display:flex;align-items:center;gap:4px;padding:8px var(--sp-4);border-top:1px solid var(--c-border);font-size:var(--fs-sm);color:var(--c-text-muted)}@media(max-width:1200px){.overview__fusion-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}.video-page{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.video-page__layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp-4);align-items:start}.video-page__main-wrap{padding:var(--sp-3)}.video-page__side{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.video-page__grid{min-width:0}.video-page__thumb{padding:var(--sp-3)}.video-page__thumb .monitor-video__placeholder-title{font-size:var(--fs-base)}.video-page__thumb .monitor-video__placeholder-desc{display:none}.video-page__thumb-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:8px var(--sp-3);border-top:1px solid var(--c-border);background:var(--c-surface-alt);font-size:var(--fs-sm);color:var(--c-text-sub)}.video-page__thumb-meta .mono{font-family:var(--font-mono);color:var(--c-text-muted)}@media(max-width:1360px){.video-page__layout{grid-template-columns:minmax(0,1fr)}}.fusion{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.fusion__top{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.15fr);gap:var(--sp-4);align-items:stretch;min-width:0}.fusion__top>.panel:not(.fusion__video-panel){display:flex;flex-direction:column}.fusion__video-panel{align-self:start}.fusion__video{padding:var(--sp-3)}.fusion__right{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.fusion__right>.panel:first-child{flex:1}.fusion__vision-body{display:flex;flex-direction:column}.fusion__vision-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}.fusion__vision-list .metric-row{flex-direction:column;align-items:flex-start;gap:2px;padding:0;border-bottom:0}.fusion__vision-list .metric-row__value{text-align:left}.fusion__headline{display:flex;align-items:baseline;gap:5px;padding-bottom:var(--sp-3);margin-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}.fusion__headline-value{font-family:var(--font-mono);font-size:32px;font-weight:600;line-height:1.1;color:var(--c-text);letter-spacing:-.6px}.fusion__headline-unit{font-size:var(--fs-lg);color:var(--c-text-muted)}.fusion__headline-label{margin-left:auto;font-size:var(--fs-base);color:var(--c-text-muted);white-space:nowrap}.fusion__radar-body{display:flex;flex-direction:column}.fusion__radar-body .metric-list{flex:1;justify-content:space-between}.fusion__radar-body .metric-row{padding:6px 0}.fusion__radar-body .metric-row__label{font-size:var(--fs-md)}.fusion__radar-body .metric-row__value{font-size:18px}.fusion__spec{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--c-border)}.fusion__spec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2) var(--sp-4);margin:0}.fusion__spec-list div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);padding:6px 0;border-bottom:1px dashed var(--c-border)}.fusion__spec-list dt{font-size:var(--fs-base);color:var(--c-text-muted);white-space:nowrap}.fusion__spec-list dd{margin:0;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--c-text-sub);white-space:nowrap}.fusion__spec-list dd.fusion__spec-em{color:var(--c-primary-dark)}.fusion__vision-status{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-bottom:var(--sp-3);margin-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}.fusion__vision-label{font-size:var(--fs-lg);font-weight:600;color:var(--c-text)}.fusion__basis{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.fusion__basis li{display:flex;align-items:baseline;gap:var(--sp-3);padding:6px 0;border-bottom:1px dashed var(--c-border)}.fusion__basis-key{flex-shrink:0;width:60px;font-size:var(--fs-sm);color:var(--c-text-muted)}.fusion__basis-val{font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.7}.fusion__reason{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--c-surface-alt);border-left:3px solid var(--c-primary-border);font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8}.fusion__mode{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--c-border)}.fusion__mode-note{font-size:var(--fs-sm);color:var(--c-text-muted)}@media(max-width:1560px){.fusion__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fusion__top>:first-child{grid-column:1 / -1}.fusion__vision-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.fusion__top,.fusion__spec-list{grid-template-columns:minmax(0,1fr)}.fusion__right>.panel:first-child{flex:0 1 auto}}.filter-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-card)}.filter-bar__fields{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;min-width:0}.filter-bar__field{display:flex;flex-direction:column;gap:4px;min-width:0}.filter-bar__label{font-size:var(--fs-xs);color:var(--c-text-muted);white-space:nowrap}.filter-bar__control{height:30px;min-width:128px;padding:0 8px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text);font-family:inherit;font-size:var(--fs-base)}.filter-bar__control:hover{border-color:var(--c-text-muted)}.filter-bar__control:focus{border-color:var(--c-primary);outline:none;box-shadow:0 0 0 2px var(--c-primary-light)}select.filter-bar__control{cursor:pointer;padding-right:4px}input[type=date].filter-bar__control{font-family:var(--font-mono)}.filter-bar__actions{display:flex;align-items:center;gap:var(--sp-4);flex-shrink:0;padding-bottom:1px}.filter-bar__extra{font-size:var(--fs-sm);color:var(--c-text-muted);white-space:nowrap}.filter-bar__extra strong{font-family:var(--font-mono);color:var(--c-text)}.filter-bar__reset{height:30px;padding:0 13px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-sub);font-size:var(--fs-base)}.filter-bar__reset:hover:not(:disabled){background:var(--c-surface-alt);border-color:var(--c-text-muted);color:var(--c-text)}.filter-bar__reset:disabled{opacity:.45;cursor:not-allowed}@media(max-width:900px){.filter-bar{flex-direction:column;align-items:stretch}.filter-bar__actions{justify-content:space-between}.filter-bar__control{min-width:108px}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);background:#1f2a2e6b;animation:modal-fade .14s ease-out;overflow-y:auto}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal__panel{display:flex;flex-direction:column;width:100%;max-height:calc(100vh - var(--sp-8) * 2);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:0 8px 32px #1f2a2e38;outline:none;animation:modal-rise .16s ease-out}@keyframes modal-rise{0%{transform:translateY(8px);opacity:.6}to{transform:none;opacity:1}}.modal__panel--md{max-width:620px}.modal__panel--lg{max-width:1080px}.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border);background:var(--c-surface-alt);border-radius:var(--r-lg) var(--r-lg) 0 0;flex-shrink:0}.modal__titles{min-width:0}.modal__title{font-size:var(--fs-lg);font-weight:600;color:var(--c-text);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.modal__subtitle{margin-top:3px;font-size:var(--fs-sm);color:var(--c-text-muted)}.modal__close{flex-shrink:0;width:26px;height:26px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--c-text-muted);font-size:13px;line-height:1}.modal__close:hover{background:var(--c-critical-bg);border-color:#e8b4b4;color:var(--c-critical)}.modal__body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-5)}.modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--c-border);background:var(--c-surface-alt);border-radius:0 0 var(--r-lg) var(--r-lg);flex-shrink:0}@media(max-width:720px){.modal{padding:var(--sp-3)}.modal__body{padding:var(--sp-4)}}.ai-analysis{padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface)}.ai-analysis__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-bottom:var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}.ai-analysis__title{font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.ai-analysis__head-right{display:flex;align-items:center;gap:var(--sp-2)}.ai-analysis__model{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-analysis__refresh{padding:3px 10px;font-size:var(--fs-sm);color:var(--c-text-sub);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xs);cursor:pointer;transition:border-color .15s,color .15s}.ai-analysis__refresh:hover:not(:disabled){border-color:var(--c-primary);color:var(--c-primary-dark)}.ai-analysis__refresh:disabled{opacity:.6;cursor:default}.ai-analysis__hint{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.7}.ai-analysis__body{display:flex;flex-direction:column;gap:var(--sp-3)}.ai-analysis__summary{font-size:var(--fs-md);color:var(--c-text);line-height:1.8}.ai-analysis__fallback{padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--c-border);background:var(--c-surface-alt);border-radius:var(--r-xs);font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8;white-space:pre-wrap}.ai-analysis__group-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-text-sub);margin-bottom:5px}.ai-analysis__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ai-analysis__list li{position:relative;padding-left:14px;font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.7}.ai-analysis__list li:before{content:"·";position:absolute;left:3px;color:var(--c-text-muted)}.ai-analysis__meta{display:flex;align-items:center;gap:5px;padding-top:var(--sp-2);border-top:1px dashed var(--c-border);font-size:var(--fs-sm);color:var(--c-text-muted)}.alarm-detail{display:flex;flex-direction:column;gap:var(--sp-5)}.alarm-detail__code{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:500;color:var(--c-text-sub);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:1px 8px}.alarm-detail__loading{display:flex;flex-direction:column;gap:var(--sp-4)}.alarm-detail__section{min-width:0}.alarm-detail__badges{display:inline-flex;gap:var(--sp-2)}.alarm-detail__operator{color:var(--c-text-muted);font-size:var(--fs-sm)}.alarm-detail__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-6)}.alarm-detail__evidence-figure{margin:0}.alarm-detail__evidence-figure img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:contain;background:#10181b;border:1px solid var(--c-border);border-radius:var(--r-sm)}.alarm-detail__evidence-figure figcaption{margin-top:7px;padding:8px var(--sp-3);border-radius:var(--r-sm);background:var(--c-warning-bg);border-left:3px solid var(--c-warning);font-size:var(--fs-sm);color:#a35c05;line-height:1.75}.alarm-detail__evidence{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--sp-4);align-items:start}.alarm-detail__snapshot{min-width:0}.alarm-detail__snapshot img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:contain;background:#10181b;border-radius:var(--r-sm)}.alarm-detail__snapshot-empty{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;background:var(--c-surface-alt);border:1px dashed var(--c-border);border-radius:var(--r-sm);color:var(--c-text-muted);font-size:var(--fs-sm)}.alarm-detail__snapshot-cap,.alarm-detail__trend-cap{margin-top:6px;font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.6}.alarm-detail__trend{min-width:0;padding:var(--sp-2) var(--sp-2) 0;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-alt)}.alarm-detail__note{display:flex;align-items:flex-start;gap:6px;margin-top:var(--sp-3);padding:8px var(--sp-3);border-radius:var(--r-sm);background:var(--c-info-bg);border-left:3px solid var(--c-info);font-size:var(--fs-sm);color:var(--c-info);line-height:1.75}.alarm-detail__note svg{flex-shrink:0;margin-top:3px}.alarm-detail__timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}.alarm-detail__step{display:flex;padding-left:var(--sp-3);border-left:2px solid var(--c-border)}.alarm-detail__step-body{min-width:0;flex:1}.alarm-detail__step-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}.alarm-detail__step-stage{flex-shrink:0;padding:0 6px;border-radius:var(--r-xs);background:var(--c-info-bg);color:var(--c-info);font-size:var(--fs-xs);line-height:17px}.alarm-detail__step-title{font-size:var(--fs-base);font-weight:600;color:var(--c-text)}.alarm-detail__step-ts{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text-muted);white-space:nowrap}.alarm-detail__step-detail{margin-top:3px;font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8}.alarm-detail__resolution{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--c-normal-bg);border-left:3px solid var(--c-normal);font-size:var(--fs-sm);color:var(--c-primary-dark);line-height:1.8}@media(max-width:900px){.alarm-detail__grid,.alarm-detail__evidence{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}.alarms{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.alarms__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:0 var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-card)}.alarms__tabs{display:flex;gap:var(--sp-4)}.alarms__tab{position:relative;display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--c-text-sub);font-size:var(--fs-md)}.alarms__tab:hover{color:var(--c-text)}.alarms__tab.is-active{border-bottom-color:var(--c-primary);color:var(--c-text);font-weight:600}.alarms__tab-badge{min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--c-warning);color:#fff;font-size:var(--fs-xs);font-weight:600;line-height:17px;text-align:center}.alarms__summary{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--c-text-muted)}.alarms__summary strong{font-family:var(--font-mono);color:var(--c-text)}.alarms__refresh{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-sub);font-size:var(--fs-sm)}.alarms__refresh:hover{background:var(--c-surface-alt);border-color:var(--c-text-muted);color:var(--c-text)}.alarms__stale{padding:7px var(--sp-4);border:1px solid #ecc9a0;border-left:3px solid var(--c-warning);border-radius:var(--r-sm);background:var(--c-warning-bg);color:#a35c05;font-size:var(--fs-sm)}.alarms__loading{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4)}.alarms__table-wrap{overflow-x:auto}.alarms__table{font-size:var(--fs-sm);min-width:1180px}.alarms__table th,.alarms__table td{padding:9px var(--sp-3);white-space:nowrap}.alarms__cell-code{font-weight:600;color:var(--c-text)}.alarms__row{cursor:pointer;transition:background .1s ease}.alarms__row:hover{background:#f7fafb}.alarms__row:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.alarms__row td:first-child{position:relative;padding-left:var(--sp-4)}.alarms__row td:first-child:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:1px;background:transparent}.alarms__row--info td:first-child:before{background:var(--c-info)}.alarms__row--warning td:first-child:before{background:var(--c-warning)}.alarms__row--critical td:first-child:before{background:var(--c-critical)}@media(max-width:720px){.alarms__bar{padding:var(--sp-2) var(--sp-3)}.alarms__tabs{gap:var(--sp-3)}}.trace{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.trace__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}.trace__stats .metric-row{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:0;border-bottom:0}.trace__stats .metric-row__value{text-align:left;font-size:20px;line-height:1.2}@media(max-width:1100px){.trace__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.trace__stale{padding:7px var(--sp-4);border:1px solid #ecc9a0;border-left:3px solid var(--c-warning);border-radius:var(--r-sm);background:var(--c-warning-bg);color:#a35c05;font-size:var(--fs-sm)}.trace__loading{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4)}.trace__pager{display:flex;align-items:center;gap:var(--sp-2)}.trace__pager-btn{height:26px;padding:0 10px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-sub);font-size:var(--fs-sm)}.trace__pager-btn:hover:not(:disabled){background:var(--c-surface-alt);border-color:var(--c-text-muted);color:var(--c-text)}.trace__pager-btn:disabled{opacity:.42;cursor:not-allowed}.trace__pager-info{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-muted);min-width:46px;text-align:center}.trace__table-wrap{overflow-x:auto}.trace__table{font-size:var(--fs-sm);min-width:1180px}.trace__table th,.trace__table td{padding:9px var(--sp-3);white-space:nowrap}.trace__cell-code{font-weight:600;color:var(--c-text)}.trace__row{cursor:pointer;transition:background .1s ease}.trace__row:hover{background:#f7fafb}.trace__row:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.trace__row td:first-child{position:relative;padding-left:var(--sp-4)}.trace__row td:first-child:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:1px;background:transparent}.trace__row--info td:first-child:before{background:var(--c-info)}.trace__row--warning td:first-child:before{background:var(--c-warning)}.trace__row--critical td:first-child:before{background:var(--c-critical)}.trace__foot{padding:9px var(--sp-4);border-top:1px solid var(--c-border);background:var(--c-surface-alt);font-size:var(--fs-sm);color:var(--c-text-muted)}@media(max-width:720px){.trace__pager-btn{padding:0 7px}}.predict{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.predict__loading{display:flex;flex-direction:column;gap:var(--sp-4)}.predict__stale{padding:7px var(--sp-4);border:1px solid #ecc9a0;border-left:3px solid var(--c-warning);border-radius:var(--r-sm);background:var(--c-warning-bg);color:#a35c05;font-size:var(--fs-sm)}.predict__hero{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--sp-3);align-items:stretch;min-width:0}.predict__big{display:flex;align-items:baseline;gap:4px;min-height:46px}.predict__big-value{font-family:var(--font-mono);font-size:40px;font-weight:600;line-height:1.05;letter-spacing:-1px;color:var(--c-text)}.predict__big-value.is-normal{color:var(--c-primary-dark)}.predict__big-value.is-info{color:var(--c-info)}.predict__big-value.is-warning{color:#a35c05}.predict__big-value.is-critical{color:var(--c-critical)}.predict__big-unit{font-size:var(--fs-lg);color:var(--c-text-muted)}.predict__big-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.predict__arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0 var(--sp-2);min-width:108px}.predict__arrow-line{width:100%;height:2px;background:linear-gradient(90deg,var(--c-border) 0%,var(--c-primary-border) 100%);border-radius:1px}.predict__arrow-label{font-size:var(--fs-xs);color:var(--c-text-muted);white-space:nowrap}.predict__arrow-tip{font-size:var(--fs-lg);color:var(--c-primary);line-height:1}.predict__disclaimer{display:flex;align-items:flex-start;gap:6px;margin-top:var(--sp-3);padding:8px var(--sp-3);border-radius:var(--r-sm);background:var(--c-info-bg);border-left:3px solid var(--c-info);font-size:var(--fs-sm);color:var(--c-info);line-height:1.75}.predict__disclaimer svg{flex-shrink:0;margin-top:3px}.predict__mid{min-width:0}.predict__evidence{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.predict__evidence-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);background:var(--c-surface-alt);border-left:3px solid var(--c-border)}.predict__evidence-item:has(.is-radar){border-left-color:var(--c-primary)}.predict__evidence-item:has(.is-vision){border-left-color:var(--c-info)}.predict__evidence-item:has(.is-conveyor){border-left-color:var(--c-warning)}.predict__evidence-item:has(.is-knowledge){border-left-color:#8a6bbf}.predict__evidence-src{flex-shrink:0;width:62px;font-size:var(--fs-sm);font-weight:600;color:var(--c-text-sub)}.predict__evidence-text{font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.75}.predict__suggestions{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}.predict__suggestions li{font-size:var(--fs-base);color:var(--c-text-sub);line-height:1.75}.predict__similar-body{display:flex;flex-direction:column}.predict__similar{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3);flex:1}.predict__similar-item{display:flex;flex-direction:column;padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-alt)}.predict__similar-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.predict__similar-code{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:600;color:var(--c-text)}.predict__similar-meta{margin-top:3px;font-size:var(--fs-sm);color:var(--c-text-muted)}.predict__similar-result{margin-top:auto;padding-top:5px;border-top:1px dashed var(--c-border);font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.75}.predict__similar-hint{margin-top:var(--sp-3);padding:8px var(--sp-3);border-radius:var(--r-sm);background:var(--c-warning-bg);border-left:3px solid var(--c-warning);font-size:var(--fs-sm);color:#a35c05;line-height:1.75}.predict__link{border:0;background:transparent;padding:0;color:var(--c-primary);font-size:var(--fs-sm);cursor:pointer}.predict__link:hover{color:var(--c-primary-dark);text-decoration:underline}@media(max-width:1240px){.predict__hero{grid-template-columns:minmax(0,1fr)}.predict__arrow{flex-direction:row;padding:var(--sp-2) 0}.predict__arrow-line{width:40px}.predict__arrow-tip{transform:rotate(90deg)}}.knowledge{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.knowledge__bar{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-card)}.knowledge__search{display:flex;align-items:center;gap:7px;flex:1 1 320px;min-width:0;height:32px;padding:0 10px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-muted)}.knowledge__search:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-light)}.knowledge__search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--c-text);font-family:inherit;font-size:var(--fs-base)}.knowledge__search input::placeholder{color:var(--c-text-muted)}.knowledge__search input::-webkit-search-cancel-button{display:none}.knowledge__clear{flex-shrink:0;width:18px;height:18px;border:0;border-radius:50%;background:var(--c-border);color:var(--c-text-sub);font-size:10px;line-height:1}.knowledge__clear:hover{background:var(--c-border-strong)}.knowledge__types{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.knowledge__type{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-alt);color:var(--c-text-sub);font-size:var(--fs-sm)}.knowledge__type:hover{border-color:var(--c-border-strong);color:var(--c-text)}.knowledge__type.is-active{background:var(--c-primary-light);border-color:var(--c-primary-border);color:var(--c-primary-dark);font-weight:600}.knowledge__type-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text-muted)}.knowledge__type.is-active .knowledge__type-count{color:var(--c-primary-dark)}.knowledge__count{margin-left:auto;font-size:var(--fs-sm);color:var(--c-text-muted);white-space:nowrap}.knowledge__count strong{font-family:var(--font-mono);color:var(--c-text)}.knowledge__stale{padding:7px var(--sp-4);border:1px solid #ecc9a0;border-left:3px solid var(--c-warning);border-radius:var(--r-sm);background:var(--c-warning-bg);color:#a35c05;font-size:var(--fs-sm)}.knowledge__loading{display:flex;flex-direction:column;gap:var(--sp-3)}.knowledge__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.knowledge__item{border:1px solid var(--c-border);border-left:3px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);overflow:hidden;transition:border-color .12s ease}.knowledge__item:hover{border-color:var(--c-border-strong)}.knowledge__item.is-open{border-left-color:var(--c-primary)}.knowledge__head{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);border:0;background:transparent;text-align:left}.knowledge__head:hover{background:var(--c-surface-alt)}.knowledge__caret{flex-shrink:0;display:inline-block;font-size:17px;line-height:1;color:var(--c-text-muted);transform:rotate(0);transition:transform .14s ease}.knowledge__caret.is-open{transform:rotate(90deg);color:var(--c-primary)}.knowledge__head-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.knowledge__code{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.knowledge__meta{font-size:var(--fs-sm);color:var(--c-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.knowledge__head-right{flex-shrink:0}.knowledge__body{padding:0 var(--sp-4) var(--sp-4);border-top:1px solid var(--c-border);background:var(--c-surface-alt);animation:knowledge-open .16s ease-out}@keyframes knowledge-open{0%{opacity:0}to{opacity:1}}.knowledge__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}.knowledge__field{padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface)}.knowledge__field--normal{border-left:3px solid var(--c-normal)}.knowledge__field-label{display:block;font-size:var(--fs-xs);color:var(--c-text-muted);margin-bottom:5px}.knowledge__field-text{font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8}.knowledge__highlight{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--c-warning-bg);border-left:3px solid var(--c-warning)}.knowledge__highlight-label{display:block;font-size:var(--fs-xs);font-weight:600;color:#a35c05;margin-bottom:4px}.knowledge__highlight-text{font-size:var(--fs-base);color:#8a4d04;line-height:1.8}.knowledge__preventive{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--c-primary-light);border-left:3px solid var(--c-primary)}.knowledge__preventive-label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--c-primary-dark);margin-bottom:4px}.knowledge__preventive-text{font-size:var(--fs-base);color:var(--c-primary-dark);line-height:1.8}@media(max-width:1240px){.knowledge__cols{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.knowledge__bar{flex-direction:column;align-items:stretch}.knowledge__count{margin-left:0}}.ai-model{display:flex;flex-direction:column;gap:var(--sp-3)}.ai-model__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-content:start}.ai-model__hint{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.7}.ai-model__field{display:flex;flex-direction:column;gap:5px}.ai-model__field--wide{grid-column:1 / -1}.ai-model__label{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--c-text-sub)}.ai-model__masked{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-muted)}.ai-model__input{width:100%;padding:6px 9px;font-size:var(--fs-sm);font-family:inherit;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xs);outline:none;transition:border-color .15s}.ai-model__input:focus{border-color:var(--c-primary)}.ai-model__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.ai-model__btn{padding:6px 14px;font-size:var(--fs-sm);color:var(--c-text-sub);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xs);cursor:pointer;transition:border-color .15s,color .15s}.ai-model__btn:hover:not(:disabled){border-color:var(--c-primary);color:var(--c-primary-dark)}.ai-model__btn--primary{color:#fff;background:var(--c-primary);border-color:var(--c-primary)}.ai-model__btn--primary:hover:not(:disabled){color:#fff;background:var(--c-primary-dark);border-color:var(--c-primary-dark)}.ai-model__btn:disabled{opacity:.6;cursor:default}.ai-model__feedback{padding:6px var(--sp-3);border-radius:var(--r-xs);font-size:var(--fs-sm);line-height:1.7}.ai-model__feedback--ok{color:var(--c-primary-dark);background:var(--c-normal-bg);border-left:3px solid var(--c-normal)}.ai-model__feedback--error{color:var(--c-critical);background:var(--c-critical-bg);border-left:3px solid var(--c-critical)}@media(max-width:1100px){.ai-model__grid{grid-template-columns:minmax(0,1fr)}}.settings{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.settings__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-3)}.settings__layout>.panel--wide{grid-column:1 / -1}.settings__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text);font-size:var(--fs-md);font-weight:500;transition:background .12s ease,border-color .12s ease}.btn:hover:not(:disabled){background:var(--c-surface-alt);border-color:var(--c-text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--c-primary-dark);border-color:var(--c-primary-dark)}.btn--warning{background:var(--c-warning);border-color:var(--c-warning);color:#fff}.btn--warning:hover:not(:disabled){background:#b86204;border-color:#b86204}.settings__state{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px dashed var(--c-border)}.settings__feedback{display:flex;align-items:flex-start;gap:6px;margin-top:var(--sp-3);padding:8px var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:1.7}.settings__feedback--ok{background:var(--c-normal-bg);border:1px solid var(--c-primary-border);color:var(--c-primary-dark)}.settings__feedback--error{background:var(--c-warning-bg);border:1px solid #ecc9a0;color:#a35c05}.settings__feedback svg{flex-shrink:0;margin-top:2px}.settings__rules{margin:var(--sp-4) 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px}.settings__rules li{font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.8}.settings__rules strong{color:var(--c-text)}.settings__muted{color:var(--c-text-muted);font-size:var(--fs-base)}.settings__meta .metric-row{padding:5px 0}.settings__modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.settings__mode{display:flex;flex-direction:column;gap:6px;padding:var(--sp-4);border:1px solid var(--c-border);border-left:3px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-alt);text-align:left;transition:border-color .12s ease,background .12s ease}.settings__mode:hover{background:var(--c-surface);border-color:var(--c-border-strong)}.settings__mode.is-active{border-left-color:var(--c-primary);background:var(--c-primary-light)}.settings__mode-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.settings__mode-name{font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.settings__scenarios{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.settings__scenario{display:flex;flex-direction:column;gap:3px;padding:var(--sp-3);border:1px solid var(--c-border);border-left:3px solid var(--c-idle);border-radius:var(--r-sm);background:var(--c-surface-alt);text-align:left;transition:border-color .12s ease,background .12s ease}.settings__scenario:hover:not(:disabled){background:var(--c-surface);border-color:var(--c-border-strong)}.settings__scenario:disabled{opacity:.55;cursor:not-allowed}.settings__scenario.is-normal{border-left-color:var(--c-normal)}.settings__scenario.is-info{border-left-color:var(--c-info)}.settings__scenario.is-warning{border-left-color:var(--c-warning)}.settings__scenario.is-critical{border-left-color:var(--c-critical)}.settings__scenario-label{font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.settings__scenario-desc{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.6}.settings__demo-foot{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px dashed var(--c-border);flex-wrap:wrap}.settings__demo-state{font-size:var(--fs-sm);color:var(--c-text-muted)}.settings__demo-state strong{color:var(--c-text)}.settings__table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.data-table th,.data-table td{padding:10px var(--sp-4);text-align:left;border-bottom:1px solid var(--c-border);vertical-align:middle}.data-table th{background:var(--c-surface-alt);font-weight:600;color:var(--c-text-sub);white-space:nowrap;font-size:var(--fs-sm);letter-spacing:.2px;position:sticky;top:0}.data-table tbody tr:hover{background:#f7fafb}.data-table tbody tr:last-child td{border-bottom:0}.data-table td.mono{font-family:var(--font-mono);white-space:nowrap}.settings__caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-5)}.settings__cap{padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-left:3px solid var(--c-normal);border-radius:var(--r-sm);background:var(--c-surface-alt)}.settings__cap-title{margin-top:7px;font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.settings__cap-desc{margin-top:4px;font-size:var(--fs-sm);color:var(--c-text-sub);line-height:1.75}@media(max-width:1360px){.settings__layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:1100px){.settings__caps{grid-template-columns:minmax(0,1fr)}.settings__scenarios{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.settings__scenarios{grid-template-columns:minmax(0,1fr)}}.shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--c-bg)}.shell__body{flex:1;display:flex;min-height:0}.workspace{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;background:var(--c-bg)}.page{display:flex;flex-direction:column;min-height:100%}.page__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5) var(--sp-3);background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-wrap:wrap}.page__head-left{display:flex;align-items:baseline;gap:var(--sp-3);min-width:0}.page__title{position:relative;padding-left:11px;font-size:17px;font-weight:600;color:var(--c-text);white-space:nowrap}.page__title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:15px;background:var(--c-primary);border-radius:1px}.page__head-right{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.page__mode{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--r-sm);border:1px solid var(--c-primary-border);background:var(--c-primary-light);color:var(--c-primary-dark);font-size:var(--fs-xs);font-weight:600;letter-spacing:.3px;white-space:nowrap}.page__mode--idle{border-color:var(--c-border);background:#f1f3f5;color:var(--c-text-muted)}.page__ts{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-muted);white-space:nowrap}.page__body{flex:1;padding:var(--sp-5);min-width:0}.grid{display:grid;gap:var(--sp-4);min-width:0}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-4);align-items:start}.page__body>*{animation:page-fade .18s ease-out}@keyframes page-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media(max-width:1560px){.overview-main{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:1360px){.overview-main{grid-template-columns:minmax(0,1fr)}.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.page__body{padding:var(--sp-4)}.grid--3,.grid--2{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.grid--4{grid-template-columns:minmax(0,1fr)}}.fatal{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-6);background:var(--c-bg)}.fatal__card{width:100%;max-width:600px;padding:var(--sp-8);background:var(--c-surface);border:1px solid var(--c-border);border-top:3px solid var(--c-warning);border-radius:var(--r-lg);box-shadow:var(--sh-card)}.fatal__mark{display:block;width:40px;height:4px;margin-bottom:var(--sp-5);background:var(--c-warning)}.fatal__title{font-size:var(--fs-xl);color:var(--c-text)}.fatal__desc{margin-top:var(--sp-3);font-size:var(--fs-md);color:var(--c-text-sub);line-height:1.8}.fatal__detail{margin-top:var(--sp-4);padding:var(--sp-3);max-height:140px;overflow:auto;background:#f7f9fa;border:1px solid var(--c-border);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-text-sub);white-space:pre-wrap;word-break:break-word}.fatal__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-5)}.fatal__btn{height:34px;padding:0 16px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text);font-size:var(--fs-md)}.fatal__btn:hover{background:var(--c-surface-alt)}.fatal__btn--primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.fatal__btn--primary:hover{background:var(--c-primary-dark)}.fatal__hint{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px dashed var(--c-border);font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.9}:root{--c-primary: #0f8a4d;--c-primary-dark: #0a6b3b;--c-primary-light: #e8f5ee;--c-primary-border: #b7e0c8;--c-normal: #1a9c5b;--c-normal-bg: #e9f7ef;--c-warning: #d97706;--c-warning-bg: #fdf3e3;--c-critical: #c62828;--c-critical-bg: #fdeaea;--c-info: #4a6b8a;--c-info-bg: #eef2f6;--c-idle: #8a949e;--c-bg: #f4f6f7;--c-surface: #ffffff;--c-surface-alt: #fafbfc;--c-border: #dfe4e8;--c-border-strong: #c6ced6;--c-text: #232a30;--c-text-sub: #5b666f;--c-text-muted: #8a949e;--c-text-invert: #ffffff;--font-sans: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", Consolas, "Courier New", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 26px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-xs: 2px;--r-sm: 3px;--r-md: 4px;--r-lg: 6px;--sh-card: 0 1px 2px rgba(35, 42, 48, .04);--sh-raised: 0 2px 8px rgba(35, 42, 48, .1);--h-topbar: 56px;--w-sidebar: 208px;--w-sidebar-collapsed: 60px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.3}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}p{margin:0}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer}code{font-family:var(--font-mono);font-size:.92em;background:var(--c-primary-light);color:var(--c-primary-dark);padding:1px 5px;border-radius:var(--r-xs)}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--c-primary);outline-offset:1px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c6ced6;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#a9b4bd}.boot-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-6)}.boot-card{width:100%;max-width:640px;background:var(--c-surface);border:1px solid var(--c-border);border-top:3px solid var(--c-primary);border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:var(--sp-8)}.boot-mark{width:40px;height:4px;background:var(--c-primary);margin-bottom:var(--sp-5)}.boot-card h1{font-size:var(--fs-2xl);letter-spacing:.5px}.boot-sub{margin-top:var(--sp-3);color:var(--c-text-sub);font-size:var(--fs-md)}.boot-note{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px dashed var(--c-border);color:var(--c-text-muted);font-size:var(--fs-sm);line-height:1.9}@media print{.topbar,.sidebar,.page__head-right{display:none!important}.shell,.workspace{height:auto;overflow:visible}.panel,.stat-card{break-inside:avoid}}
