.visual-dashboard{position:fixed;inset:0;overflow:hidden;background:#000}.visual-dashboard.fullscreen{background:#020617}.stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;margin-left:-960px;margin-top:-540px;-webkit-transform-origin:center center;transform-origin:center center;background:radial-gradient(circle at 50% 48%,rgba(37,99,235,.14),transparent 34%),#020617;color:#e2e8f0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.footer,.header,.stage{display:-webkit-box;display:-ms-flexbox;display:flex}.footer,.header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 48px;background:rgba(2,6,23,.88)}.header{position:relative;height:120px;border-bottom:1px solid rgba(59,130,246,.32);background:radial-gradient(circle at 50% 0,rgba(59,130,246,.16),transparent 42%),rgba(2,6,23,.88)}.header-left{min-width:380px}.header-center{position:absolute;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);pointer-events:none}.header h1{margin:0;max-width:920px;font-size:34px;line-height:1;font-weight:900;font-style:italic;color:#fff;letter-spacing:.16em;text-shadow:0 0 18px rgba(59,130,246,.18);white-space:nowrap;text-align:center}.header-clock{margin-left:auto;text-align:right;font-family:monospace;-ms-flex-negative:0;flex-shrink:0}.clock-time{font-size:28px;font-weight:900;line-height:1;color:#fff}.clock-date-row{margin-top:10px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.clock-date{font-size:12px;color:#3b82f6;font-weight:700;letter-spacing:.12em}.fullscreen-btn{min-width:auto;height:auto;padding:0;line-height:1;color:#60a5fa;opacity:.85}.fullscreen-btn:focus,.fullscreen-btn:hover{color:#fff}.header-status{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;margin-left:24px;color:#10b981;font-size:12px;font-weight:800}.online-dot{width:8px;height:8px;border-radius:999px;background:#10b981;-webkit-box-shadow:0 0 8px rgba(16,185,129,.8);box-shadow:0 0 8px rgba(16,185,129,.8)}.content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;display:grid;grid-template-columns:minmax(360px,3fr) minmax(760px,6fr) minmax(360px,3fr);gap:18px;padding:18px}.middle-col,.portrait-panel,.right-col{min-height:0;min-width:0}.middle-col,.right-col{gap:14px}.middle-col,.panel,.right-col{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.panel{min-height:0;min-width:0;background:-webkit-gradient(linear,left top,left bottom,from(rgba(15,23,42,.8)),to(rgba(7,13,31,.72))),rgba(15,23,42,.64);background:linear-gradient(180deg,rgba(15,23,42,.8),rgba(7,13,31,.72)),rgba(15,23,42,.64);border:1px solid rgba(96,165,250,.14);border-radius:24px;overflow:hidden;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 14px 34px rgba(0,0,0,.24);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 14px 34px rgba(0,0,0,.24)}.panel-header{height:60px;padding:0 20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid hsla(0,0%,100%,.05);background:-webkit-gradient(linear,left top,right top,from(rgba(37,99,235,.12)),to(rgba(15,23,42,0)));background:linear-gradient(90deg,rgba(37,99,235,.12),rgba(15,23,42,0))}.panel-header,.panel-title,.section-label,.subpanel-title,.trend-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.panel-title,.section-label,.subpanel-title,.trend-head{gap:12px}.panel-title{font-size:15px;font-weight:900;font-style:italic;color:#fff;letter-spacing:.03em}.panel-tag{font-size:11px;color:#60a5fa;font-weight:900;padding:5px 10px;border-radius:999px;background:rgba(37,99,235,.14);border:1px solid rgba(96,165,250,.28)}.bar{width:6px;height:18px;border-radius:999px;display:inline-block}.bar.purple{background:#8b5cf6}.bar.green{background:#10b981}.bar.red{background:#ef4444}.bar.blue{background:#3b82f6}.portrait-panel{gap:16px;padding-bottom:20px}.portrait-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 20px 0;min-width:0}.fulfillment-card,.grid-monitor,.metric-card,.mini-row,.risk-card,.risk-item,.stat-card,.subpanel,.summary-chip,.trend-card,.trend-percent-item{background:rgba(15,23,42,.58);border:1px solid rgba(148,163,184,.12)}.metric-card,.risk-card,.stat-card,.trend-card{border-radius:18px}.stat-card{gap:14px;padding:16px}.metric-icon-wrap,.stat-card,.stat-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.metric-icon-wrap,.stat-icon{width:46px;height:46px;border-radius:14px;background:rgba(30,41,59,.74);border:1px solid rgba(148,163,184,.1);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0}.stat-icon{font-size:22px}.metric-label,.risk-label,.stat-label,.trend-label{font-size:12px;color:#64748b;font-weight:800}.chart-center-value,.metric-value,.risk-value,.stat-value,.summary-value,.trend-percent-value{font-weight:900;line-height:1;color:#fff;font-style:italic;text-shadow:0 0 16px hsla(0,0%,100%,.08)}.metric-value,.stat-value{font-size:28px}.metric-value span,.stat-value span{margin-left:6px;font-size:14px;color:hsla(0,0%,100%,.5);font-weight:400}.section-label{margin:18px 20px 0;font-size:14px;font-weight:900;color:#cbd5e1}.execution-grid,.portrait-chart-row,.radar-row{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;padding:14px 20px 0;min-height:0}.pie-wrap,.radar-wrap{position:relative;min-height:240px;overflow:visible}.chart-center{position:absolute;inset:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:none}.chart-center-label{font-size:12px;font-weight:900;color:#64748b}.chart-center-value{margin-top:6px;font-size:38px}.list-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:10px;overflow:hidden}.mini-row{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:16px;font-size:13px}.mini-name,.mini-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mini-name{gap:10px;color:#94a3b8;font-weight:700;min-width:0}.mini-value{color:#fff;font-size:12px;font-weight:900}.mini-value small{margin-left:6px;color:#8b5cf6;font-size:11px}.dot,.legend-dot{display:inline-block;width:12px;height:12px;border-radius:999px;-ms-flex-negative:0;flex-shrink:0}.section-split{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:0;padding:14px 20px 0;overflow:visible}.radar-row{padding:0;overflow:visible}.radar-wrap{min-height:260px}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;height:136px;min-width:0}.metric-card{position:relative;padding:34px 18px 22px;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:14px;min-width:0;background:radial-gradient(circle at 18% 20%,var(--metric-soft),transparent 44%),-webkit-gradient(linear,left top,left bottom,from(rgba(15,23,42,.84)),to(rgba(8,14,34,.78)));background:radial-gradient(circle at 18% 20%,var(--metric-soft),transparent 44%),linear-gradient(180deg,rgba(15,23,42,.84),rgba(8,14,34,.78));border-color:var(--metric-border);-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 14px 28px rgba(0,0,0,.24);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 14px 28px rgba(0,0,0,.24)}.metric-badge{position:absolute;top:10px;right:12px;font-size:10px;font-weight:900;line-height:1;padding:5px 9px;border-radius:7px;color:var(--metric-color);border:1px solid var(--metric-border);background:var(--metric-soft)}.metric-icon-wrap{width:56px;height:56px;border-radius:18px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;background:var(--metric-soft);border:1px solid var(--metric-border);-webkit-box-shadow:inset 0 0 18px var(--metric-glow);box-shadow:inset 0 0 18px var(--metric-glow)}.metric-icon{font-size:29px}.metric-body,.stat-meta{min-width:0}.metric-body{padding-top:4px;padding-right:8px}.metric-label,.risk-label,.stat-label,.trend-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.execution-panel{-webkit-box-flex:1;-ms-flex:1;flex:1}.execution-grid{grid-template-columns:1fr 1.5fr;gap:22px;padding-left:24px;padding-right:24px;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.subpanel{min-height:0;min-width:0;padding:24px 26px;border-radius:22px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.subpanel-title{margin-bottom:12px;font-size:13px;color:#38bdf8;font-weight:900}.analysis-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:16px;margin-bottom:8px}.analysis-head .subpanel-title{margin-bottom:0}.analysis-legend{gap:18px;color:rgba(203,213,225,.72);font-size:12px;font-weight:900;white-space:nowrap}.analysis-legend,.analysis-legend span{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analysis-legend span{gap:7px}.fulfillment-grid,.risk-list,.service-list{display:grid;gap:18px;min-width:0}.service-list{grid-template-columns:minmax(0,1fr);gap:14px}.fulfillment-card,.service-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px;min-width:0}.risk-head,.service-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:12px}.service-head{font-size:13px;font-weight:900;color:#e2e8f0;min-width:0;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.service-head span:last-child{color:#10b981;font-family:monospace;-ms-flex-negative:0;flex-shrink:0}.service-head span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-label,.stat-label{color:#8ea4c9;font-size:14px;line-height:1.2;font-weight:900;letter-spacing:0}.metric-value{margin-top:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:5px;white-space:nowrap}.metric-value,.metric-value .animated-number{color:#fff;font-size:30px;line-height:1.1;font-weight:900;font-style:italic;text-shadow:0 0 16px rgba(96,165,250,.18)}.stat-value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:5px;white-space:nowrap}.stat-value .animated-number{color:#fff;font-size:28px;line-height:1;font-weight:900;font-style:italic;text-shadow:0 0 16px hsla(0,0%,100%,.08)}.metric-value span{color:#8ea4c9;font-size:12px;font-weight:800}.metric-value span,.stat-value span{margin-left:0;font-style:normal;line-height:1}.stat-value span{color:hsla(0,0%,100%,.5);font-size:14px;font-weight:400}.progress{height:8px;background:rgba(148,163,184,.12);border-radius:999px;overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:#10b981;-webkit-box-shadow:0 0 16px rgba(16,185,129,.36);box-shadow:0 0 16px rgba(16,185,129,.36)}.fulfillment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.fulfillment-card{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;min-height:196px;padding:26px 18px 18px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:center;border-radius:22px;background:rgba(15,23,42,.44);border-color:rgba(148,163,184,.13)}.fulfillment-ring{width:138px;height:138px;-webkit-box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05),0 0 24px rgba(16,185,129,.08);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05),0 0 24px rgba(16,185,129,.08)}.fulfillment-ring,.fulfillment-ring-inner{border-radius:999px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fulfillment-ring-inner{width:100px;height:100px;background:rgba(7,13,31,.94);-webkit-box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.04);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.04)}.fulfillment-ring-value{color:#fff;font-size:28px;line-height:1;font-weight:900;font-style:italic}.fulfillment-name{margin-top:18px;font-size:15px;color:#e2e8f0;font-weight:900;white-space:nowrap}.fulfillment-threshold{margin-top:4px;font-size:10px;color:#94a3b8;letter-spacing:.06em;white-space:nowrap}.fulfillment-meta{margin-top:6px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:11px;color:#cbd5e1}.meta-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.meta-dot.warning{background:#f59e0b;-webkit-box-shadow:0 0 10px rgba(245,158,11,.8);box-shadow:0 0 10px rgba(245,158,11,.8)}.meta-dot.plan{background:rgba(148,163,184,.35);-webkit-box-shadow:none;box-shadow:none}.meta-dot.success{background:#34d399;-webkit-box-shadow:0 0 10px rgba(52,211,153,.8);box-shadow:0 0 10px rgba(52,211,153,.8)}.summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}.summary-chip{padding:14px 16px;border-radius:22px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px}.summary-label{color:#cbd5e1;font-size:12px;font-weight:900}.summary-value{font-size:24px}.summary-value.blue,.trend-percent-value.blue{color:#60a5fa;background:transparent}.summary-value.green,.trend-percent-value.green{color:#34d399;background:transparent}.summary-value.purple{color:#c084fc}.grid-monitor{display:grid;grid-template-columns:minmax(240px,270px) minmax(0,1fr);height:286px;margin:16px 20px 20px;padding:20px 24px;gap:18px;border-radius:24px;background:linear-gradient(135deg,rgba(15,23,42,.76),rgba(2,12,35,.72));overflow:hidden}.grid-monitor-info{min-width:0;padding-right:30px;border-right:1px solid rgba(96,165,250,.22);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.grid-title{margin-bottom:12px;font-size:18px;line-height:1;font-weight:900;color:#60a5fa;letter-spacing:.08em}.grid-desc{font-size:13px;line-height:1.75;color:#64748b;font-weight:700}.grid-scale{margin-top:10px}.density-title{margin-bottom:10px;font-size:14px;line-height:1;color:#fff;font-weight:900;letter-spacing:.1em}.density-bar{display:grid;grid-template-columns:1fr 2fr 2fr;height:12px;border-radius:999px;overflow:hidden;background:rgba(96,165,250,.18);-webkit-box-shadow:0 0 18px rgba(59,130,246,.28);box-shadow:0 0 18px rgba(59,130,246,.28)}.density-seg.low{background:rgba(96,165,250,.28)}.density-seg.mid{background:rgba(59,130,246,.78)}.density-seg.high{background:#3b82f6}.density-labels{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:8px;color:rgba(226,232,240,.74);font-size:11px;font-weight:800}.grid-status-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:8px;margin-top:6px}.grid-status-card{height:54px;border-radius:14px;border:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.68);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:8px}.status-dot{width:10px;height:10px;border-radius:999px;display:block}.grid-status-card.danger .status-dot{background:#f43f5e;-webkit-box-shadow:0 0 18px rgba(244,63,94,.9);box-shadow:0 0 18px rgba(244,63,94,.9)}.grid-status-card.warn .status-dot{background:#fbbf24;-webkit-box-shadow:0 0 18px rgba(251,191,36,.9);box-shadow:0 0 18px rgba(251,191,36,.9)}.grid-status-card.ok .status-dot{background:#34d399;-webkit-box-shadow:0 0 18px rgba(52,211,153,.9);box-shadow:0 0 18px rgba(52,211,153,.9)}.status-title{color:#fff;font-size:14px;line-height:1;font-weight:900}.grid-map{width:100%;height:100%;max-height:100%;min-height:0;align-self:start;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-auto-rows:15px;-ms-flex-line-pack:start;align-content:start;gap:4px 6px;min-width:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(96,165,250,.55) rgba(15,23,42,.35)}.grid-map::-webkit-scrollbar{width:6px}.grid-map::-webkit-scrollbar-track{background:rgba(15,23,42,.35);border-radius:999px}.grid-map::-webkit-scrollbar-thumb{background:rgba(96,165,250,.55);border-radius:999px}.grid-cell{position:relative;height:15px;min-width:0;overflow:hidden;border-radius:2px;border:1px solid rgba(96,165,250,.22);opacity:1;padding:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}.grid-cell:focus{outline:none}.grid-cell:before{content:"";position:absolute;inset:0;background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,.14)),color-stop(60%,transparent));background:linear-gradient(180deg,hsla(0,0%,100%,.14),transparent 60%)}.grid-cell:after{content:"";position:absolute;width:4px;height:4px;border-radius:999px;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.grid-cell.high{background:-webkit-gradient(linear,left top,left bottom,from(rgba(59,130,246,.92)),to(rgba(37,99,235,.72)));background:linear-gradient(180deg,rgba(59,130,246,.92),rgba(37,99,235,.72));border-color:rgba(96,165,250,.5)}.grid-cell.high:after{background:#ef4444;-webkit-box-shadow:0 0 6px rgba(239,68,68,.9),0 0 14px rgba(239,68,68,.72);box-shadow:0 0 6px rgba(239,68,68,.9),0 0 14px rgba(239,68,68,.72)}.grid-cell.medium{background:-webkit-gradient(linear,left top,left bottom,from(rgba(96,165,250,.74)),to(rgba(59,130,246,.48)));background:linear-gradient(180deg,rgba(96,165,250,.74),rgba(59,130,246,.48));border-color:rgba(96,165,250,.4)}.grid-cell.medium:after{background:#f59e0b;-webkit-box-shadow:0 0 6px rgba(245,158,11,.9),0 0 14px rgba(245,158,11,.64);box-shadow:0 0 6px rgba(245,158,11,.9),0 0 14px rgba(245,158,11,.64)}.grid-cell.low{background:-webkit-gradient(linear,left top,left bottom,from(rgba(186,230,253,.76)),to(rgba(96,165,250,.38)));background:linear-gradient(180deg,rgba(186,230,253,.76),rgba(96,165,250,.38));border-color:rgba(147,197,253,.44)}.grid-cell.low:after{background:#10b981;-webkit-box-shadow:0 0 6px rgba(16,185,129,.9),0 0 14px rgba(16,185,129,.58);box-shadow:0 0 6px rgba(16,185,129,.9),0 0 14px rgba(16,185,129,.58)}.grid-unit-modal .ant-modal-content{background:transparent;-webkit-box-shadow:none;box-shadow:none}.grid-unit-modal .ant-modal{max-width:calc(100vw - 48px)}.grid-unit-modal .ant-modal-close{display:none}.unit-dialog{position:relative;padding:58px 64px 52px;border-radius:22px;background:radial-gradient(circle at 18% 22%,rgba(59,130,246,.18),transparent 28%),radial-gradient(circle at 86% 14%,rgba(16,185,129,.14),transparent 18%),-webkit-gradient(linear,left top,left bottom,from(rgba(10,16,36,.98)),to(rgba(7,12,26,.98)));background:radial-gradient(circle at 18% 22%,rgba(59,130,246,.18),transparent 28%),radial-gradient(circle at 86% 14%,rgba(16,185,129,.14),transparent 18%),linear-gradient(180deg,rgba(10,16,36,.98),rgba(7,12,26,.98));border:1px solid rgba(96,165,250,.42);-webkit-box-shadow:0 28px 80px rgba(2,8,23,.8),inset 0 0 0 1px hsla(0,0%,100%,.03);box-shadow:0 28px 80px rgba(2,8,23,.8),inset 0 0 0 1px hsla(0,0%,100%,.03);overflow:hidden}.unit-dialog:before{content:"";position:absolute;inset:12px;border-radius:18px;border:1px solid rgba(96,165,250,.34);pointer-events:none}.unit-dialog-close{position:absolute;top:38px;right:46px;border:0;background:transparent;color:rgba(226,232,240,.62);font-size:42px;line-height:1;cursor:pointer}.unit-dialog-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:24px}.unit-dialog-kicker{font-size:32px;line-height:1;color:#77b7ff;font-weight:900}.unit-dialog-code{margin-top:28px;font-size:56px;line-height:1;color:#fff;font-weight:900;letter-spacing:.04em;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit-dialog-pin{padding-top:40px;color:#77b7ff;font-size:36px}.unit-dialog-line{margin:20px 0;height:2px;background:-webkit-gradient(linear,left top,right top,from(rgba(96,165,250,.2)),color-stop(rgba(148,163,184,.8)),to(rgba(96,165,250,.2)));background:linear-gradient(90deg,rgba(96,165,250,.2),rgba(148,163,184,.8),rgba(96,165,250,.2))}.unit-dialog-label{font-size:28px;line-height:1.15;color:rgba(226,232,240,.7);font-weight:700}.unit-dialog-location-value{margin-top:18px;font-size:36px;line-height:1.15;color:#fff;font-weight:900;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.risk-panel,.trend-panel{-webkit-box-flex:1;-ms-flex:1;flex:1}.risk-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:22px 20px 0}.risk-card{padding:14px 8px;text-align:center;min-width:0;border-radius:18px}.risk-card.high{background:rgba(244,63,94,.08);border-color:rgba(244,63,94,.2)}.risk-card.med{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.2)}.risk-card.low{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.18)}.risk-value{margin-top:10px;font-size:28px}.risk-list{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;height:190px;max-height:190px;overflow-y:auto;padding:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px}.risk-item,.risk-list{display:-webkit-box;display:-ms-flexbox;display:flex}.risk-item{gap:10px;padding:14px 12px;border-radius:18px;min-width:0;min-height:72px;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.risk-dot{width:12px;height:12px;border-radius:999px;margin-top:4px;-ms-flex-negative:0;flex-shrink:0}.risk-dot.high{background:#ef4444;-webkit-box-shadow:0 0 10px rgba(239,68,68,.7);box-shadow:0 0 10px rgba(239,68,68,.7)}.risk-dot.med{background:#f59e0b;-webkit-box-shadow:0 0 10px rgba(245,158,11,.7);box-shadow:0 0 10px rgba(245,158,11,.7)}.risk-dot.low{background:#34d399;-webkit-box-shadow:0 0 10px rgba(52,211,153,.7);box-shadow:0 0 10px rgba(52,211,153,.7)}.risk-body{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.risk-head{min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;row-gap:6px}.risk-type{font-size:13px;font-weight:900;line-height:1.2;min-width:0}.risk-type.high{color:#fb7185}.risk-type.med{color:#fbbf24}.risk-type.low{color:#34d399}.risk-item.high{background:rgba(244,63,94,.05)}.risk-item.med{background:rgba(245,158,11,.05)}.risk-item.low{background:rgba(16,185,129,.04)}.risk-time{font-size:12px;color:#64748b;font-family:monospace;font-weight:700;white-space:nowrap}.risk-msg{margin-top:8px;font-size:14px;color:#cbd5e1;line-height:1.5;overflow:hidden;word-break:break-word}.risk-list::-webkit-scrollbar{width:8px}.risk-list::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(96,165,250,.35)}.risk-list::-webkit-scrollbar-track{background:rgba(15,23,42,.35);border-radius:999px}.trend-head{padding:12px 20px 0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:#94a3b8;font-size:13px;font-weight:900}.trend-head strong{color:#fb7185;font-style:italic}.legend-line,.legend-square{display:inline-block;margin-right:8px;vertical-align:middle}.legend-square{width:14px;height:14px;border-radius:4px}.legend-line{width:16px;height:4px;border-radius:999px}.blue{background:#3b82f6}.green{background:#10b981}.trend-chart{padding:4px 18px 0}.trend-percent{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:12px 24px 20px}.trend-percent-item{min-height:96px;padding:18px 16px;text-align:center;border-radius:14px;background:rgba(15,23,42,.72);border-color:rgba(96,165,250,.12);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.trend-percent-value{margin-top:8px;font-size:28px}.footer{height:40px;border-top:1px solid rgba(59,130,246,.18);font-size:11px;font-weight:700;color:#64748b;overflow:hidden}.footer-left,.footer-right{display:-webkit-box;display:-ms-flexbox;display:flex;gap:32px;min-width:0}.footer-left,.footer-left span,.footer-right{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer-left span,.footer-right{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:8px;white-space:nowrap}.pie-wrap .g2-axis-label,.pie-wrap .g2-axis-title,.pie-wrap .g2-legend,.pie-wrap .g2-legend-item,.pie-wrap .g2-legend-item-title,.pie-wrap .g2-tooltip,.pie-wrap text,.radar-wrap text{color:#fff!important;fill:#fff!important}.pie-wrap text,.radar-wrap text{font-weight:700!important}.trend-chart .g2-axis-grid,.trend-chart .g2-axis-grid-line,.trend-chart .g2-axis-sub-tick,.trend-chart .g2-axis-tick{display:none!important}.animated-number{display:inline;min-width:0;color:inherit;font:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-shadow:inherit}.metric-card,.risk-card,.stat-card,.trend-percent-item{-webkit-animation:dashboardCardIn .62s ease both;animation:dashboardCardIn .62s ease both}.metric-card:nth-child(2),.risk-card:nth-child(2),.stat-card:nth-child(2){-webkit-animation-delay:80ms;animation-delay:80ms}.metric-card:nth-child(3),.risk-card:nth-child(3){-webkit-animation-delay:.15s;animation-delay:.15s}.metric-card:nth-child(4){-webkit-animation-delay:.22s;animation-delay:.22s}.chart-refresh{-webkit-animation:dashboardChartRefresh .76s ease both;animation:dashboardChartRefresh .76s ease both}.progress-bar{position:relative;overflow:hidden;-webkit-transition:width .68s cubic-bezier(.22,1,.36,1);transition:width .68s cubic-bezier(.22,1,.36,1);-webkit-animation:progressGrow .76s cubic-bezier(.22,1,.36,1) both;animation:progressGrow .76s cubic-bezier(.22,1,.36,1) both}.progress-bar:after{content:"";position:absolute;top:0;bottom:0;width:48px;left:-56px;background:-webkit-gradient(linear,left top,right top,from(transparent),color-stop(hsla(0,0%,100%,.58)),to(transparent));background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.58),transparent);-webkit-animation:progressShine 1.4s ease .22s both;animation:progressShine 1.4s ease .22s both}.service-item-animate{-webkit-animation:serviceRowIn .52s ease both;animation:serviceRowIn .52s ease both}.service-item-animate:nth-child(2){-webkit-animation-delay:70ms;animation-delay:70ms}.service-item-animate:nth-child(3){-webkit-animation-delay:.14s;animation-delay:.14s}.service-item-animate:nth-child(4){-webkit-animation-delay:.21s;animation-delay:.21s}.service-item-animate:nth-child(5){-webkit-animation-delay:.28s;animation-delay:.28s}.ring-refresh{-webkit-animation:ringRefresh .76s ease both;animation:ringRefresh .76s ease both}.grid-cell{-webkit-animation:gridPulseIn .88s ease both;animation:gridPulseIn .88s ease both}.risk-list{position:relative}.risk-list-track{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px;min-height:0}.risk-list-scrolling{overflow:hidden}.risk-list-scrolling .risk-list-track{-webkit-animation:riskListScroll var(--risk-scroll-duration,18s) linear infinite;animation:riskListScroll var(--risk-scroll-duration,18s) linear infinite}.risk-list-scrolling:hover .risk-list-track{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes dashboardCardIn{0%{opacity:0;-webkit-transform:translateY(14px);transform:translateY(14px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes dashboardCardIn{0%{opacity:0;-webkit-transform:translateY(14px);transform:translateY(14px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes dashboardChartRefresh{0%{opacity:0;-webkit-transform:translateY(10px) scale(.985);transform:translateY(10px) scale(.985);-webkit-filter:saturate(.72);filter:saturate(.72)}to{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);-webkit-filter:saturate(1);filter:saturate(1)}}@keyframes dashboardChartRefresh{0%{opacity:0;-webkit-transform:translateY(10px) scale(.985);transform:translateY(10px) scale(.985);-webkit-filter:saturate(.72);filter:saturate(.72)}to{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);-webkit-filter:saturate(1);filter:saturate(1)}}@-webkit-keyframes progressGrow{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left center;transform-origin:left center}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes progressGrow{0%{-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left center;transform-origin:left center}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:left center;transform-origin:left center}}@-webkit-keyframes progressShine{0%{left:-56px}to{left:100%}}@keyframes progressShine{0%{left:-56px}to{left:100%}}@-webkit-keyframes serviceRowIn{0%{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes serviceRowIn{0%{opacity:0;-webkit-transform:translateX(-14px);transform:translateX(-14px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes ringRefresh{0%{opacity:.4;-webkit-transform:scale(.92) rotate(-8deg);transform:scale(.92) rotate(-8deg)}to{opacity:1;-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes ringRefresh{0%{opacity:.4;-webkit-transform:scale(.92) rotate(-8deg);transform:scale(.92) rotate(-8deg)}to{opacity:1;-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes gridPulseIn{0%{opacity:.28;-webkit-transform:scale(.72);transform:scale(.72)}60%{opacity:1;-webkit-transform:scale(1.12);transform:scale(1.12)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes gridPulseIn{0%{opacity:.28;-webkit-transform:scale(.72);transform:scale(.72)}60%{opacity:1;-webkit-transform:scale(1.12);transform:scale(1.12)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes riskListScroll{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(-50%);transform:translateY(-50%)}}@keyframes riskListScroll{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(-50%);transform:translateY(-50%)}}