@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0a0a0a,#111,#0a0a0a);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease,visibility .5s ease}#loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-content{display:flex;flex-direction:column;align-items:center;gap:40px}.loading-logo{text-align:center}.loading-logo .logo-box{width:100px;height:100px;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);border:2px solid #3a3a3a;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;letter-spacing:4px;color:#fff;margin:0 auto 16px;box-shadow:0 0 30px #ffffff1a;animation:logo-pulse 2s ease-in-out infinite}.loading-logo .logo-subtitle{font-size:14px;font-weight:600;letter-spacing:4px;color:#666;text-transform:uppercase}@keyframes logo-pulse{0%,to{box-shadow:0 0 30px #ffffff1a}50%{box-shadow:0 0 50px #fff3}}.loading-animation{position:relative;width:200px;height:200px}.radar-sweep{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0deg,rgba(68,170,68,.3) 30deg,rgba(68,170,68,.1) 60deg,transparent 90deg);border-radius:50%;animation:radar-rotate 2s linear infinite}@keyframes radar-rotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.radar-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid rgba(68,170,68,.3);border-radius:50%}.radar-ring.ring-1{width:60px;height:60px;animation:ring-pulse 2s ease-out infinite}.radar-ring.ring-2{width:120px;height:120px;animation:ring-pulse 2s ease-out .5s infinite}.radar-ring.ring-3{width:180px;height:180px;animation:ring-pulse 2s ease-out 1s infinite}@keyframes ring-pulse{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}.radar-center{position:absolute;top:50%;left:50%;width:12px;height:12px;background:#4a4;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #4a4c;animation:center-glow 1s ease-in-out infinite}@keyframes center-glow{0%,to{box-shadow:0 0 20px #4a4c}50%{box-shadow:0 0 40px #4a4}}.loading-status{width:280px;text-align:center}.loading-bar{height:4px;background:#1a1a1a;border:1px solid #2a2a2a;margin-bottom:16px;overflow:hidden}.loading-progress{height:100%;width:0%;background:linear-gradient(90deg,#4a4,#6c6);transition:width .3s ease;box-shadow:0 0 10px #44aa4480}.loading-text{font-family:JetBrains Mono,monospace;font-size:11px;color:#666;letter-spacing:1px;text-transform:uppercase}:root{--bg-primary: #0a0a0a;--bg-secondary: #111111;--bg-tertiary: #1a1a1a;--bg-card: #141414;--bg-panel: #0f0f0f;--bg-header: #0c0c0c;--text-primary: #ffffff;--text-secondary: #a0a0a0;--text-muted: #666666;--accent-primary: #ffffff;--accent-secondary: #cccccc;--accent-success: #4a4a4a;--accent-warning: #888888;--accent-danger: #cc0000;--border-color: #2a2a2a;--border-light: #3a3a3a;--font-main: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--radius-sm: 1px;--radius-md: 2px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;-webkit-user-select:none;user-select:none}#app{display:grid;grid-template-columns:280px 1fr 260px;height:100vh}#header-bar{position:fixed;top:0;left:0;right:0;height:44px;background:var(--bg-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:200}#header-bar .logo{display:flex;align-items:center;gap:12px}#header-bar .logo-icon{width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:10px;letter-spacing:1px;color:var(--text-primary)}#header-bar .logo-text{font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-primary)}#header-bar .logo-text span{color:var(--text-muted);font-weight:400;font-size:11px;margin-left:8px}#header-bar .status-bar{display:flex;gap:16px;font-size:11px;color:var(--text-secondary);font-family:var(--font-mono)}#header-bar .status-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color)}#header-bar .status-dot{width:6px;height:6px;border-radius:50%;background:#4a4}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.mode-toggle-container{display:flex;gap:2px;background:var(--bg-tertiary);padding:3px;border:1px solid var(--border-color)}.mode-toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 16px;background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font-main);cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.mode-toggle-btn .mode-icon{font-size:12px}.mode-toggle-btn:hover{color:var(--text-secondary);background:var(--bg-card)}.mode-toggle-btn.active{background:var(--accent-primary);color:var(--bg-primary)}.mode-toggle-btn.active .mode-icon{animation:none}#mode-canli-btn.active{background:#c00;color:#fff}#mode-canli-btn.active .mode-icon{animation:pulse 1s infinite}#canli-mode-container{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:#000}#canli-mode-container.active,body.canli-mode #canli-mode-container{display:block!important}#canli-map-view{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;z-index:1!important}#canli-map-view .cesium-viewer{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}#canli-map-view .cesium-viewer-cesiumWidgetContainer,#canli-map-view .cesium-widget,#canli-map-view .cesium-widget canvas{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}body.canli-mode #canvas-container>canvas{display:block!important}body.canli-mode #canli-mode-container{position:absolute!important;width:350px!important;height:250px!important;top:auto!important;bottom:20px!important;right:20px!important;left:auto!important;border:2px solid #4ecdc4;border-radius:8px;overflow:hidden;z-index:100!important;box-shadow:0 4px 20px #00000080}body.canli-mode #canli-map-view{width:100%!important;height:100%!important}body.canli-mode #canli-map-view canvas{display:block!important}body.canli-mode #canli-connection-overlay,body.canli-mode #canli-zoom-controls{display:none!important}body.canli-mode #crosshair{display:block}#control-panel,#data-panel{background:var(--bg-panel);padding:52px 10px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--border-color)}#data-panel{border-right:none;border-left:1px solid var(--border-color)}.panel-section{background:var(--bg-card);border:1px solid var(--border-color)}.panel-header{background:var(--bg-tertiary);padding:8px 12px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.panel-header h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-primary)}.panel-header .badge{font-size:9px;font-family:var(--font-mono);padding:2px 8px;background:#4a4;color:#000;letter-spacing:.5px;font-weight:600}.panel-content{padding:10px}.control-group{margin-bottom:12px}.control-group label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-secondary);margin-bottom:4px;font-family:var(--font-mono)}.control-group label span{color:var(--text-primary);font-weight:600}.control-group input[type=range]{width:100%;height:4px;background:var(--bg-tertiary);border:1px solid var(--border-color);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--text-primary);border:1px solid var(--border-light);cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text-muted);font-family:var(--font-mono);margin-top:2px}.control-hint{text-align:center;margin-top:8px;padding:6px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color)}.control-hint small{font-size:9px;color:var(--text-muted);font-family:var(--font-mono)}.fire-button-container,.demo-button-container{margin-bottom:6px}#fire-laser-btn{width:100%;padding:12px 16px;background:#c00;border:1px solid #990000;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .15s ease}#fire-laser-btn:hover{background:#a00}#fire-laser-btn:active,#fire-laser-btn.firing{background:#800}#demo-btn{width:100%;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .15s ease}#demo-btn:hover{background:var(--border-light);color:var(--text-primary)}.reset-button-container{margin-bottom:6px;display:flex;flex-direction:column;gap:4px}#reset-laser-btn{width:100%;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:not-allowed;transition:all .15s ease;opacity:.5}#reset-laser-btn:disabled{cursor:not-allowed;opacity:.4}#reset-laser-btn.active{background:#888;color:#000;border-color:#666;cursor:pointer;opacity:1}#reset-laser-btn.active:hover{background:#999}#reset-laser-btn.resetting{background:#777}@keyframes pulse-reset{0%,to{box-shadow:0 0 #fbbc0466}50%{box-shadow:0 0 0 6px #fbbc0400}}.action-toolbar{display:flex;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-color)}.toolbar-btn{flex:1;padding:6px 4px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:8px;font-weight:500;font-family:var(--font-mono);letter-spacing:.3px;cursor:pointer;transition:all .15s ease}.toolbar-btn:hover{background:var(--border-color);color:var(--text-primary)}.toolbar-btn.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.toolbar-btn.running{background:var(--accent-warning);color:var(--bg-primary);border-color:var(--accent-warning)}.test-status{font-size:9px;font-family:var(--font-mono);color:var(--text-muted);text-align:center;padding:4px 0;min-height:14px}.test-status.running{color:#f59e0b}.sensor-placement-container{margin-bottom:6px}#sensor-placement-btn{width:100%;padding:8px 12px;background:linear-gradient(180deg,#059669,#047857);border:1px solid #10b981;border-radius:var(--radius-md);color:#d1fae5;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .2s ease}#sensor-placement-btn:hover{background:linear-gradient(180deg,#10b981,#059669);border-color:#34d399;box-shadow:0 0 15px #10b9814d}#sensor-placement-btn.active{background:linear-gradient(180deg,#f59e0b,#d97706);border-color:#fbbf24;color:#fff;animation:pulse-sensor 1s infinite}@keyframes pulse-sensor{0%,to{box-shadow:0 0 10px #f59e0b4d}50%{box-shadow:0 0 20px #f59e0b99}}.test-status.complete{color:#22c55e}#open-calc-modal-btn{width:100%;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-secondary);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:8px}#open-calc-modal-btn:hover{background:var(--border-light);color:var(--text-primary)}#open-calc-modal-btn:active{background:var(--border-color)}.lock-status{font-size:8px;font-family:var(--font-mono);text-align:center;color:var(--text-muted);padding:2px 0;transition:all .2s ease}.lock-status.locked{color:var(--accent-warning);font-weight:500}.lock-status.warning{color:var(--accent-danger);font-weight:600;animation:flash-warning .3s ease infinite}@keyframes flash-warning{0%,to{opacity:1}50%{opacity:.5}}#fire-laser-btn.locked{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;border:1px solid var(--border-color)}#fire-laser-btn.locked:hover{background:var(--bg-tertiary)}#fire-laser-btn:disabled{cursor:not-allowed}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}#fire-laser-btn.shake{animation:shake .5s ease}.beam-visual-large{margin-bottom:8px}.beam-svg{width:100%;height:50px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.beam-source-svg{filter:drop-shadow(0 0 3px #ea4335)}.beam-svg-labels{display:flex;justify-content:space-between;font-size:8px;color:var(--text-muted);margin-top:4px;font-family:var(--font-mono)}.beam-svg-labels small{color:var(--accent-secondary)}.beam-analysis,.result-grid{margin-bottom:8px}.analysis-row,.result-row{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;background:var(--bg-tertiary);margin-bottom:1px;font-family:var(--font-mono);font-size:10px;border-left:2px solid transparent}.analysis-row label,.result-row label{color:var(--text-secondary);font-size:9px}.analysis-row .value,.result-row .value{color:var(--text-primary);font-weight:500}.analysis-row.highlight,.result-row.highlight{border-left-color:var(--text-primary)}.result-row.success{border-left-color:#4a4}.result-row.success .value{color:#4a4}.analysis-row.warning{border-left-color:#a80}.atm-effects-section{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-color)}.atm-effects-section .section-title{font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:4px;font-family:var(--font-mono)}.atm-effect-row{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;background:var(--bg-tertiary);margin-bottom:1px;font-family:var(--font-mono);font-size:8px;border-left:2px solid transparent}.atm-effect-row .effect-label{color:var(--text-secondary)}.atm-effect-row .effect-value{color:var(--text-primary);font-weight:500}.atm-effect-row.highlight{border-left-color:var(--accent-success);background:#34a85314}.atm-effect-row.highlight .effect-value{color:var(--accent-success)}#weather-badge{font-size:7px;padding:2px 5px}#weather-badge.clear{background:var(--accent-success)}#weather-badge.hazy{background:var(--accent-warning)}#weather-badge.foggy{background:#8b5cf6}#weather-badge.dusty{background:#f97316}#weather-badge.rainy{background:#06b6d4}#early-detection.detectable{color:var(--accent-success)!important;font-weight:600}#early-detection.not-detectable{color:var(--text-muted)!important}.trig-compact{display:grid;grid-template-columns:1fr 1fr;gap:2px}.trig-row{display:flex;justify-content:space-between;padding:4px 6px;background:var(--bg-tertiary);font-family:var(--font-mono);font-size:9px}.trig-row .formula{color:var(--text-muted)}.trig-row .value{color:var(--accent-secondary);font-weight:500}.accuracy-display{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg-tertiary);border:1px solid var(--border-color)}.accuracy-circle{width:44px;height:44px;border-radius:50%;border:2px solid #44aa44;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-card)}.accuracy-circle.medium{border-color:#a80}.accuracy-circle.low{border-color:#c00}.accuracy-circle .percent{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-primary)}.accuracy-circle .label{font-size:7px;color:var(--text-muted);text-transform:uppercase}.accuracy-info .grade{font-size:11px;font-weight:600;font-family:var(--font-mono)}.accuracy-info .grade.high{color:#4a4}.accuracy-info .grade.medium{color:#a80}.accuracy-info .grade.low{color:#c00}.accuracy-info .desc{font-size:9px;color:var(--text-muted)}.sensor-scroll{max-height:600px;overflow-y:auto}.sensor-grid{display:flex;flex-direction:column;gap:4px}.device-sensors{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:6px}.device-sensors.active{border-color:#666;background:#1a1a1a}.device-header{display:flex;justify-content:space-between;margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid var(--border-color);font-family:var(--font-mono)}.device-header .name{font-size:9px;font-weight:600;color:var(--text-primary)}.device-header .angle{font-size:9px;color:var(--text-muted)}.sensor-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.sensor-bar{text-align:center}.sensor-bar .bar-container{height:24px;background:var(--bg-card);border:1px solid var(--border-color);position:relative;overflow:hidden;margin-bottom:2px}.sensor-bar .bar-fill{position:absolute;bottom:0;left:0;right:0;background:#4a4;transition:height .2s ease}.sensor-bar .bar-fill.medium{background:#ca0}.sensor-bar .bar-fill.high{background:#f80}.sensor-bar .bar-fill.saturated{background:#c00}.sensor-bar .label{font-size:7px;color:var(--text-muted);font-family:var(--font-mono)}.sensor-bar .irradiance{font-family:var(--font-mono);font-size:7px;color:var(--text-secondary)}#canvas-container{position:relative;background:#0a0a0a;margin-top:44px;border:1px solid var(--border-color);overflow:hidden}#canvas-container #canli-mode-container{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;z-index:5}#crosshair{position:absolute;pointer-events:none;z-index:10;display:none}#crosshair .h-line,#crosshair .v-line{position:absolute;background:#fff9}#crosshair .h-line{width:16px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair .v-line{width:1px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair .center{position:absolute;width:4px;height:4px;border:1px solid rgba(255,255,255,.8);top:50%;left:50%;transform:translate(-50%,-50%)}#legend{position:fixed;bottom:8px;right:270px;display:flex;gap:12px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);z-index:10;font-family:var(--font-mono)}.legend-item{display:flex;align-items:center;gap:4px;font-size:8px;color:var(--text-muted)}.legend-color{width:8px;height:8px}.legend-color.tank{background:#3d4f3d}.legend-color.lws{background:#666}.legend-color.sensor{background:#4a4}.legend-color.laser{background:#c00}.legend-color.beam-spot{background:#a00;border-radius:50%}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-light)}@media (max-width: 1100px){#app{grid-template-columns:240px 1fr 220px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-container{background:var(--bg-secondary);border:1px solid var(--border-color);width:90%;max-width:800px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:12px;font-weight:600;letter-spacing:.5px;color:var(--text-primary)}.modal-close{width:28px;height:28px;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.modal-close:hover{background:#c00;border-color:#c00;color:#fff}.modal-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.calc-section{background:var(--bg-card);border:1px solid var(--border-color);padding:12px}.calc-section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.calc-section-header .section-icon{font-size:10px;font-weight:700;font-family:var(--font-mono);width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-primary)}.calc-section-header h3{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary)}.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.calc-item{background:var(--bg-tertiary);padding:8px;text-align:center;border:1px solid var(--border-color)}.calc-item label{display:block;font-size:8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-family:var(--font-mono)}.calc-item .calc-value{font-size:13px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono)}.calc-item .calc-value.highlight{color:var(--text-primary)}.calc-formula{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:8px 12px;text-align:center}.calc-formula code{font-family:var(--font-mono);font-size:11px;color:var(--text-primary)}.calc-formula.centered{display:flex;flex-direction:column;align-items:center;gap:4px}.calc-formula .formula-desc{font-size:9px;color:var(--text-muted);font-family:var(--font-mono)}.gaussian-visual{margin-bottom:10px}.gaussian-svg{width:100%;height:120px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.sensor-calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sensor-calc-card{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:10px;text-align:center}.sensor-calc-card.detecting{border-color:#666}.sensor-calc-card.saturated{border-color:#c00}.sensor-calc-card .sensor-id{font-size:10px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;font-family:var(--font-mono)}.sensor-calc-card .sensor-value{font-size:14px;font-weight:700;color:#4a4;font-family:var(--font-mono);margin-bottom:4px}.sensor-calc-card.detecting .sensor-value{color:#a80}.sensor-calc-card.saturated .sensor-value{color:#c00}.sensor-calc-card .sensor-detail{font-size:8px;color:var(--text-muted);font-family:var(--font-mono)}.position-calc{margin-bottom:12px}.calc-formula-large{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:12px;margin-bottom:10px}.formula-block{display:flex;align-items:center;justify-content:center;gap:12px}.formula-block .formula-label{font-size:10px;color:var(--text-secondary);font-family:var(--font-mono)}.formula-block code{font-size:13px;color:#4a4;font-family:var(--font-mono)}.calc-steps{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:10px;font-family:var(--font-mono);font-size:10px;max-height:120px;overflow-y:auto}.calc-step{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dotted var(--border-color)}.calc-step:last-child{border-bottom:none}.calc-step .step-label{color:var(--text-secondary)}.calc-step .step-value{color:var(--text-primary)}.calc-step.total{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light);border-bottom:none}.calc-step.total .step-label,.calc-step.total .step-value{color:var(--text-primary);font-weight:600}.calc-result{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.result-item{background:var(--bg-tertiary);padding:10px;text-align:center;border:1px solid var(--border-color)}.result-item.primary{border-color:#4a4}.result-item label{display:block;font-size:8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-family:var(--font-mono)}.result-item .value{font-size:14px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono)}.result-item.primary .value{color:#4a4}.atm-breakdown{padding:8px}.atm-bar-chart{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.atm-bar{display:flex;align-items:center;gap:10px}.atm-bar .bar-fill{flex:1;height:20px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);position:relative;overflow:hidden}.atm-bar .bar-fill:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--fill-width, 0%);background:var(--fill-color, var(--accent-primary));transition:width .3s ease}#atm-bar-rayleigh .bar-fill{--fill-color: #06b6d4}#atm-bar-mie .bar-fill{--fill-color: #f97316}#atm-bar-absorption .bar-fill{--fill-color: #8b5cf6}.atm-bar .bar-label{width:90px;font-size:10px;color:var(--text-secondary);font-family:var(--font-mono)}.atm-bar .bar-value{width:60px;text-align:right;font-size:11px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono)}.atm-total{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#ea43351a;border:1px solid rgba(234,67,53,.3);border-radius:var(--radius-sm)}.atm-total .label{font-size:10px;color:var(--text-secondary);font-family:var(--font-mono)}.atm-total .value{font-size:14px;font-weight:700;color:var(--accent-danger);font-family:var(--font-mono)}.legend-item.clickable{cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:all .15s ease}.demo-modal{max-width:900px;width:95%}.demo-modal .modal-header{display:flex;align-items:center;gap:20px}.demo-phase-indicator{display:flex;gap:8px;margin-left:auto;margin-right:20px}.demo-phase-indicator .phase{padding:4px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-mono);color:var(--text-muted);transition:all .3s ease}.demo-phase-indicator .phase.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.demo-phase-indicator .phase.completed{background:var(--accent-success);border-color:var(--accent-success);color:#fff}.demo-body{padding:16px}.demo-3d-container{position:relative;width:100%;height:400px;background:linear-gradient(135deg,#0a0d12,#101418);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}.demo-3d-container canvas{width:100%!important;height:100%!important}.demo-info-overlay{position:absolute;z-index:10;pointer-events:none}.demo-info-overlay.top-left{top:12px;left:12px}.demo-info-overlay.bottom-right{bottom:50px;right:12px}.demo-info-overlay .info-panel{background:#0f1218eb;border:1px solid rgba(48,54,61,.8);border-radius:var(--radius-sm);padding:10px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:160px}.demo-info-overlay .panel-header{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(48,54,61,.5);font-family:var(--font-mono)}.demo-info-overlay .panel-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0}.demo-info-overlay .panel-row .label{font-size:10px;color:var(--text-secondary);font-family:var(--font-mono)}.demo-info-overlay .panel-row .value{font-size:11px;font-weight:600;color:var(--accent-secondary);font-family:var(--font-mono)}.status-panel{min-width:180px}.status-indicator{display:flex;align-items:center;gap:8px;padding:6px 0}.status-indicator .status-icon{font-size:16px}.status-indicator .status-text{font-size:11px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono)}.status-indicator.detecting .status-text{color:var(--accent-warning)}.status-indicator.detected .status-text{color:var(--accent-success)}.detected-angle{margin-top:8px;padding-top:8px;border-top:1px solid rgba(48,54,61,.5);text-align:center}.detected-angle .angle-label{display:block;font-size:9px;color:var(--text-muted);margin-bottom:4px;font-family:var(--font-mono)}.detected-angle .angle-value{font-size:18px;font-weight:700;color:var(--accent-success);font-family:var(--font-mono)}.demo-progress-bar{position:absolute;bottom:12px;left:12px;right:12px;height:24px;background:#0f1218d9;border:1px solid rgba(48,54,61,.6);border-radius:12px;overflow:hidden;display:flex;align-items:center}.demo-progress-bar .progress-fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);border-radius:12px;transition:width .3s ease}.demo-progress-bar .progress-label{position:relative;z-index:1;width:100%;text-align:center;font-size:10px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono);text-shadow:0 1px 2px rgba(0,0,0,.5)}.demo-phase-description{display:flex;align-items:center;gap:16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px}.demo-phase-description .phase-icon{font-size:24px;min-width:40px;text-align:center}.demo-phase-description .phase-text h4{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.demo-phase-description .phase-text p{font-size:11px;color:var(--text-secondary);margin:0}.demo-controls{display:flex;justify-content:flex-end;gap:10px}.demo-btn{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;font-family:var(--font-mono);cursor:pointer;transition:all .15s ease}.demo-btn:hover{background:var(--bg-card);border-color:var(--accent-secondary)}.demo-btn.secondary{color:var(--text-muted)}.demo-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.demo-btn.primary:hover{background:var(--accent-secondary)}@keyframes laserPulse{0%,to{opacity:.8}50%{opacity:1}}@keyframes sensorDetect{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes ringExpand{0%{r:8;opacity:1}to{r:25;opacity:0}}@keyframes particleFade{0%{opacity:0}50%{opacity:.8}to{opacity:0}}@keyframes directionDash{0%{stroke-dashoffset:0}to{stroke-dashoffset:30}}.demo-laser-animated{animation:laserPulse .5s ease-in-out infinite}.demo-sensor-detected{animation:sensorDetect .4s ease-out}.demo-ring-expand{animation:ringExpand 1s ease-out forwards}.demo-particle{animation:particleFade 2s ease-in-out infinite}.demo-direction-animated{animation:directionDash .5s linear infinite}.calc-step.formula{background:#1a73e814;border-left:2px solid var(--accent-primary);margin:4px 0;padding:6px 8px}.calc-step.formula .step-label{color:var(--accent-secondary)}.calc-step .step-value.highlight{color:var(--accent-success);font-weight:700;font-size:11px}.calc-section-header{display:flex;justify-content:space-between;align-items:center;padding:8px 6px;margin:12px 0 6px;background:#ffffff08;border-left:3px solid var(--accent-primary);font-family:var(--font-mono)}.calc-section-header:first-child{margin-top:0}.calc-section-header span:first-child{font-size:10px;font-weight:600;color:var(--text-primary)}.calc-section-header span:last-child{font-size:8px;color:var(--text-muted)}.confidence-bar-container{position:relative;height:24px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.confidence-bar{height:100%;transition:width .3s ease}.confidence-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:600;font-family:var(--font-mono);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}#position-calc-steps{max-height:400px;overflow-y:auto}.legend-color.calculated{background:gold;border-radius:50%}.system-architecture{display:flex;gap:20px;flex-wrap:wrap}.arch-diagram{flex:1;min-width:250px;display:flex;flex-direction:column;gap:8px}.arch-row{display:flex;gap:8px;justify-content:center}.arch-box{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:8px 12px;text-align:center;border-radius:var(--radius-sm);min-width:80px}.arch-box .box-title{font-size:9px;font-weight:600;color:var(--accent-primary);font-family:var(--font-mono)}.arch-box .sensor-mini{font-size:7px;color:var(--text-muted);margin-top:4px;font-family:var(--font-mono)}.arch-center{text-align:center;padding:15px 0}.arch-center .tank-icon{font-size:12px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);background:linear-gradient(135deg,#374151,#4b5563);padding:10px 20px;border-radius:4px;border:1px solid var(--border-light);letter-spacing:2px;text-transform:uppercase}.arch-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;flex:1;min-width:150px}.stat-item{background:var(--bg-tertiary);border:1px solid var(--border-color);padding:12px;text-align:center;border-radius:var(--radius-sm)}.stat-item.highlight{border-color:var(--accent-success);background:#34a8531a}.stat-item .stat-value{display:block;font-size:24px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono)}.stat-item.highlight .stat-value{color:var(--accent-success)}.stat-item .stat-label{display:block;font-size:8px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.algorithm-steps{display:flex;flex-direction:column;gap:12px}.alg-step{display:flex;gap:12px;align-items:flex-start}.step-num{width:28px;height:28px;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.step-content{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-color);padding:12px;border-radius:var(--radius-sm)}.step-content h4{font-size:11px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.step-content p{font-size:10px;color:var(--text-secondary);line-height:1.5;margin-bottom:8px}.step-content code{display:block;background:var(--bg-card);color:var(--accent-secondary);padding:6px 10px;font-size:10px;font-family:var(--font-mono);border-radius:var(--radius-sm);border-left:2px solid var(--accent-primary)}.code-container{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.code-tabs{display:flex;border-bottom:1px solid var(--border-color);background:#0000004d}.code-tab{padding:8px 16px;background:none;border:none;color:var(--text-secondary);font-size:10px;font-family:var(--font-mono);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.code-tab:hover{color:var(--text-primary);background:#ffffff08}.code-tab.active{color:var(--accent-secondary);border-bottom-color:var(--accent-primary);background:#1a73e81a}.code-block{margin:0;padding:16px;overflow-x:auto;max-height:400px;overflow-y:auto;background:#0d1117}.code-block.hidden{display:none}.code-block code{font-family:var(--font-mono);font-size:11px;line-height:1.6;color:#c9d1d9;white-space:pre}.code-block code .keyword{color:#ff7b72}.code-block code .type{color:#79c0ff}.code-block code .comment{color:#8b949e;font-style:italic}.code-block code .string{color:#a5d6ff}.code-block code .number{color:#79c0ff}.legend-item.clickable{cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:background .2s ease}.legend-item.clickable:hover{background:var(--accent-primary);color:#fff}.device-sensor-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden}.device-sensor-card.active{border-color:var(--accent-warning);background:#fbbc040d}.device-card-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#0003;border-bottom:1px solid var(--border-color);font-family:var(--font-mono)}.device-card-header .device-name{font-size:11px;font-weight:600;color:var(--text-primary)}.device-card-header .device-angle{font-size:10px;color:var(--accent-secondary)}.device-card-header .device-status{font-size:9px;color:var(--text-muted)}.device-card-header .device-status.detecting{color:var(--accent-success)}.device-sensor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px}.sensor-mini-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px;text-align:center}.sensor-mini-card.detecting{border-color:var(--accent-warning);background:#fbbc041a}.sensor-mini-card.saturated{border-color:var(--accent-danger);background:#ea43351a}.sensor-mini-header{font-size:9px;font-weight:600;color:var(--text-secondary);font-family:var(--font-mono);margin-bottom:4px}.sensor-mini-bar{height:24px;background:#0000004d;border-radius:2px;position:relative;margin-bottom:4px;overflow:hidden}.sensor-mini-bar .sensor-bar-fill{position:absolute;bottom:0;left:0;right:0;background:var(--accent-success);transition:height .2s ease}.sensor-mini-card.detecting .sensor-bar-fill{background:var(--accent-warning)}.sensor-mini-card.saturated .sensor-bar-fill{background:var(--accent-danger)}.sensor-mini-value{font-size:12px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono)}.sensor-mini-card.detecting .sensor-mini-value{color:var(--accent-warning)}.sensor-mini-card.saturated .sensor-mini-value{color:var(--accent-danger)}.sensor-mini-irradiance{font-size:7px;color:var(--text-muted);font-family:var(--font-mono);margin-top:2px}.sensor-mini-status{font-size:7px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-top:2px}.sensor-mini-card.detecting .sensor-mini-status{color:var(--accent-success)}.sensor-mini-card.saturated .sensor-mini-status{color:var(--accent-danger)}.device-signal-summary{display:flex;justify-content:space-around;padding:6px 12px;border-top:1px solid var(--border-color);background:#34a8530d;font-family:var(--font-mono);font-size:9px;color:var(--accent-success)}#sensor-calc-details{max-height:350px;overflow-y:auto}.panel-section.collapsible .panel-header{cursor:pointer;display:flex;justify-content:space-between;align-items:center}.collapse-icon{font-size:10px;color:var(--text-muted);transition:transform .2s ease}.panel-section.collapsed .collapse-icon{transform:rotate(-90deg)}.panel-section.collapsed .panel-content{display:none}.param-group{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:10px;margin-bottom:10px;border:1px solid var(--border-color)}.param-group.calculated{background:#1a73e814;border-color:#1a73e84d}.param-group-title{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--accent-primary);margin-bottom:10px;letter-spacing:.5px}.param-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:4px 0}.param-row:last-child{margin-bottom:0}.param-row label{font-size:11px;color:var(--text-secondary);flex:1}.param-row.readonly{opacity:.85}.param-row.readonly label{color:var(--text-muted)}.param-input{display:flex;align-items:center;gap:4px}.param-input input[type=number]{width:70px;padding:4px 6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:11px;text-align:right}.param-input input[type=number]:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #1a73e833}.param-input .unit{font-size:10px;color:var(--text-muted);min-width:30px}.param-value{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--accent-secondary);text-align:right}.param-row select{width:120px;padding:4px 6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;cursor:pointer}.param-row select:focus{outline:none;border-color:var(--accent-primary)}.param-actions{display:flex;gap:8px;margin-top:12px}.apply-btn{flex:1;padding:8px 12px;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease}.apply-btn:hover{background:var(--accent-secondary)}.reset-btn-small{padding:8px 12px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .2s ease}.reset-btn-small:hover{border-color:var(--accent-warning);color:var(--accent-warning)}#control-panel{overflow-y:auto;max-height:calc(100vh - 36px)}.settings-button-container{padding:12px}.settings-btn{width:100%;padding:12px 16px;background:linear-gradient(180deg,#1a3a5c,#0d2137);border:1px solid #2a5a8c;border-radius:4px;color:#7cb3d9;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease;text-transform:uppercase}.settings-btn:hover{background:linear-gradient(180deg,#2a4a6c,#1a3147);border-color:#4a8acc;color:#9dd3f9;box-shadow:0 0 15px #4a8acc4d}.settings-btn .settings-icon{font-size:16px}#settings-modal.modal-overlay{background:#000a144d;justify-content:flex-start;align-items:stretch}.settings-modal{width:480px;max-width:50vw;height:100vh;max-height:100vh;background:linear-gradient(180deg,#0a1520,#061018);border:none;border-right:2px solid #1a4a7c;border-radius:0;box-shadow:10px 0 40px #00285080;animation:slideInLeft .3s ease-out;overflow-y:auto}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(180deg,#0d2030,#081520);border-bottom:1px solid #1a3a5c}.settings-header .header-left{display:flex;align-items:center;gap:12px}.settings-header .modal-icon{font-size:24px;color:#4a9eff}.settings-header .header-title h2{font-size:16px;font-weight:600;color:#c9d9e9;letter-spacing:2px;margin:0}.settings-header .subtitle{font-size:10px;color:#5a7a9a;letter-spacing:.5px}.settings-header .header-right{display:flex;align-items:center;gap:16px}.settings-header .classification{padding:4px 12px;background:#ea433526;border:1px solid rgba(234,67,53,.4);border-radius:2px;font-size:9px;font-weight:700;color:#ea4335;letter-spacing:1px}.settings-header .modal-close{width:28px;height:28px;background:#ffffff0d;border:1px solid #2a4a6c;border-radius:4px;color:#7a9ab0;font-size:18px;cursor:pointer;transition:all .2s}.settings-header .modal-close:hover{background:#ea433533;border-color:#ea4335;color:#ea4335}.settings-body{padding:16px;overflow-y:auto;max-height:calc(100vh - 140px)}.settings-grid,.settings-column{display:flex;flex-direction:column;gap:16px}.settings-section{background:#0a1e3280;border:1px solid #1a3a5c;border-radius:4px;overflow:hidden}.section-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(180deg,#0d2538,#081828);border-bottom:1px solid #1a3a5c}.section-header .section-icon{color:#4a9eff;font-size:12px}.section-header h3{font-size:11px;font-weight:600;color:#7ab3d9;letter-spacing:1.5px;margin:0}.param-card{padding:14px;border-bottom:1px solid rgba(26,58,92,.5)}.param-card:last-child{border-bottom:none}.card-title{font-size:10px;font-weight:600;color:#5a8ab0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px dashed rgba(90,138,176,.3)}.param-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.param-item{display:flex;flex-direction:column;gap:4px}.param-item label{font-size:10px;color:#7a9ab0;font-weight:500}.param-item .input-group{display:flex;align-items:center;gap:6px}.param-item input[type=number]{width:80px;padding:6px 8px;background:#061018;border:1px solid #2a4a6c;border-radius:3px;color:#c9d9e9;font-family:var(--font-mono);font-size:12px;text-align:right}.param-item input[type=number]:focus{outline:none;border-color:#4a9eff;box-shadow:0 0 8px #4a9eff4d}.param-item .unit{font-size:10px;color:#5a7a9a;min-width:30px}.param-item .param-hint{font-size:9px;color:#4a6a8a;font-style:italic}.param-item.readonly{opacity:.9}.param-item .value-display{padding:6px 10px;background:#4a9eff1a;border:1px solid rgba(74,158,255,.3);border-radius:3px;color:#7cb3ff;font-family:var(--font-mono);font-size:12px;font-weight:600}.param-item .value-display.large{font-size:14px;color:#4aff9e;background:#4aff9e1a;border-color:#4aff9e4d}.param-item.highlight .value-display{animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px #4aff9e4d}50%{box-shadow:0 0 15px #4aff9e80}}.weather-selector{margin-bottom:12px}.weather-selector select{width:100%;padding:10px 12px;background:#061018;border:1px solid #2a4a6c;border-radius:3px;color:#c9d9e9;font-size:11px;font-weight:500;cursor:pointer}.weather-selector select:focus{outline:none;border-color:#4a9eff}.weather-params{display:flex;flex-direction:column;gap:8px}.weather-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#00142880;border-radius:3px}.weather-label{font-size:10px;color:#6a8aa0}.weather-value{font-family:var(--font-mono);font-size:11px;font-weight:600;color:#9ac9e9}.threat-card{border:1px solid #4a2a2a!important;background:linear-gradient(135deg,#280a0a4d,#14050580)!important}.threat-selector{margin-bottom:12px}.threat-selector select{width:100%;padding:10px 12px;background:#180808;border:1px solid #6c2a2a;border-radius:3px;color:#e9c9c9;font-size:11px;font-weight:500;cursor:pointer}.threat-selector select:focus{outline:none;border-color:#ff4a4a}.threat-info{display:flex;flex-direction:column;gap:8px}.threat-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#280a0a80;border-radius:3px}.threat-label{font-size:10px;color:#a06a6a}.threat-value{font-family:var(--font-mono);font-size:11px;font-weight:600;color:#e99a9a}.threat-level-indicator{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#3c141499;border-radius:3px;margin-top:4px}.level-label{font-size:10px;color:#a06a6a;font-weight:500}.level-badge{padding:4px 10px;border-radius:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.level-badge.low{background:#1a4a1a;color:#4aff4a;border:1px solid #2a6a2a}.level-badge.medium{background:#4a4a1a;color:#ffff4a;border:1px solid #6a6a2a}.level-badge.critical{background:#6a1a1a;color:#ff4a4a;border:1px solid #8a2a2a;animation:pulse-danger 1s infinite}.level-badge.extreme{background:#8a0a0a;color:#fff;border:1px solid #aa2a2a;animation:pulse-danger .5s infinite}.level-badge.recon{background:#1a3a4a;color:#4affff;border:1px solid #2a5a6a}@keyframes pulse-danger{0%,to{opacity:1}50%{opacity:.6}}.threat-analysis-panel{border:1px solid #4a2a2a!important;background:linear-gradient(135deg,#1e0a0acc,#0f0505e6)!important}.threat-badge{background:#6a1a1a!important;color:#ff6a6a!important}.threat-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;text-align:center}.waiting-icon{font-size:48px;margin-bottom:12px;animation:radar-pulse 2s infinite}.waiting-text{font-size:14px;font-weight:600;color:#8a9a9a;margin-bottom:6px}.waiting-subtext{font-size:10px;color:#5a6a6a;line-height:1.4}@keyframes radar-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.threat-identification{display:flex;flex-direction:column;align-items:center;padding:12px;background:#280f0f99;border-radius:4px;margin-bottom:12px}.threat-icon-large{font-size:32px;margin-bottom:6px}.threat-name-large{font-size:14px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px}.threat-level-display{margin-top:8px}.level-indicator{padding:4px 12px;border-radius:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.level-indicator.low{background:#1a4a1a;color:#4aff4a;border:1px solid #2a6a2a}.level-indicator.medium{background:#4a4a1a;color:#ffff4a;border:1px solid #6a6a2a}.level-indicator.critical{background:#6a1a1a;color:#ff4a4a;border:1px solid #8a2a2a;animation:pulse-danger 1s infinite}.level-indicator.extreme{background:#8a0a0a;color:#fff;border:1px solid #aa2a2a;animation:pulse-danger .5s infinite}.level-indicator.recon{background:#1a3a4a;color:#4affff;border:1px solid #2a5a6a}.pulse-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.pulse-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#280f0f80;border-radius:3px;border:1px solid rgba(100,40,40,.3)}.pulse-label{font-size:9px;color:#a06a6a}.pulse-value{font-family:var(--font-mono);font-size:10px;font-weight:600;color:#e99a9a}.pulse-graph-container{background:#140505cc;border:1px solid rgba(100,40,40,.4);border-radius:4px;padding:10px;margin-bottom:12px}.pulse-graph-title{font-size:10px;color:#a06a6a;margin-bottom:8px;text-align:center;text-transform:uppercase;letter-spacing:1px}#pulse-pattern-canvas{width:100%;height:60px;background:#0a0505;border-radius:2px}.pulse-graph-labels{display:flex;justify-content:space-between;font-size:8px;color:#6a4a4a;margin-top:4px}.threat-action{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#3c141499;border-radius:4px;border-left:3px solid #ff4a4a}.action-icon{font-size:16px}.action-text{font-size:10px;color:#e9a0a0;line-height:1.4}.calc-display{padding:14px;display:flex;flex-direction:column;gap:10px}.calc-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:linear-gradient(90deg,#4a9eff0d,#4a9eff1a);border:1px solid rgba(74,158,255,.2);border-radius:3px}.calc-label{font-size:10px;color:#7a9ab0;font-weight:500}.calc-value{font-family:var(--font-mono);font-size:12px;font-weight:600;color:#7cb3ff}.calc-value.status{color:#4aff9e}.settings-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(180deg,#081520,#050d15);border-top:1px solid #1a3a5c}.footer-info{display:flex;gap:20px}.info-item{font-size:10px;color:#5a7a9a}.info-item strong{color:#8ab3d9}.footer-actions{display:flex;gap:10px}.action-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:all .2s ease}.action-btn.secondary{background:transparent;border:1px solid #3a5a7c;color:#7a9ab0}.action-btn.secondary:hover{border-color:#fbbf24;color:#fbbf24}.action-btn.primary{background:linear-gradient(180deg,#1a6a3a,#0d4020);border:1px solid #2a8a4a;color:#8fd9a9}.action-btn.primary:hover{background:linear-gradient(180deg,#2a7a4a,#1a5030);border-color:#4aaa6a;color:#aff9c9;box-shadow:0 0 15px #4aaa6a66}@media (max-width: 900px){.settings-grid{grid-template-columns:1fr}.settings-modal{width:95vw}}.label-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}.label-row.compact{margin-bottom:0}.help-btn{width:16px;height:16px;padding:0;background:#4a9eff26;border:1px solid rgba(74,158,255,.4);border-radius:50%;color:#4a9eff;font-size:10px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.help-btn:hover{background:#4a9eff4d;border-color:#4a9eff;transform:scale(1.1);box-shadow:0 0 8px #4a9eff80}.help-btn.small{width:14px;height:14px;font-size:9px}.help-modal-overlay{z-index:10001}.help-modal{width:500px;max-width:90vw;max-height:80vh;background:linear-gradient(180deg,#0c1a28,#081018);border:1px solid #2a5a8c;border-radius:8px;box-shadow:0 0 40px #003c7899,0 0 100px #4a9eff33;overflow:hidden}.help-modal-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(180deg,#0d2538,#081828);border-bottom:1px solid #2a5a8c}.help-modal-header .help-icon{font-size:24px}.help-modal-header h3{flex:1;font-size:14px;font-weight:600;color:#c9d9e9;letter-spacing:1px;margin:0}.help-close{width:28px;height:28px;background:#ffffff0d;border:1px solid #3a5a7c;border-radius:4px;color:#7a9ab0;font-size:18px;cursor:pointer;transition:all .2s}.help-close:hover{background:#ea433533;border-color:#ea4335;color:#ea4335}.help-modal-body{padding:20px;max-height:50vh;overflow-y:auto;color:#a9c9e9;font-size:13px;line-height:1.7}.help-modal-body h4{color:#7cb3ff;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin:16px 0 8px;padding-bottom:6px;border-bottom:1px dashed rgba(124,179,255,.3)}.help-modal-body h4:first-child{margin-top:0}.help-modal-body p{margin:0 0 12px}.help-modal-body ul{margin:8px 0;padding-left:20px}.help-modal-body li{margin:4px 0}.help-modal-body code{background:#4a9eff26;border:1px solid rgba(74,158,255,.3);border-radius:3px;padding:2px 6px;font-family:var(--font-mono);font-size:11px;color:#7cb3ff}.help-modal-body .formula{display:block;background:#0a1e32cc;border:1px solid #1a3a5c;border-radius:4px;padding:12px 16px;margin:12px 0;font-family:var(--font-mono);font-size:13px;color:#4aff9e;text-align:center}.help-modal-body .highlight-box{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:4px;padding:10px 14px;margin:12px 0;color:#fbbf24;font-size:12px}.help-modal-body .highlight-box strong{color:#fcd34d}.help-modal-body table{width:100%;border-collapse:collapse;margin:12px 0;font-size:11px}.help-modal-body th,.help-modal-body td{padding:8px 10px;border:1px solid #1a3a5c;text-align:left}.help-modal-body th{background:#4a9eff1a;color:#7cb3ff;font-weight:600}.help-modal-body td{background:#0a1e3280}.help-modal-footer{padding:14px 20px;background:linear-gradient(180deg,#081520,#050d15);border-top:1px solid #1a3a5c;display:flex;justify-content:flex-end}.help-ok-btn{padding:10px 24px;background:linear-gradient(180deg,#1a5a8a,#0d3a5a);border:1px solid #2a7aaa;border-radius:4px;color:#9dd3f9;font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:all .2s ease}.help-ok-btn:hover{background:linear-gradient(180deg,#2a6a9a,#1a4a6a);border-color:#4a9acc;color:#bdf3ff}.param-grid.two-col{grid-template-columns:1fr 1fr}@media (max-width: 768px){.settings-modal{width:100vw;max-width:100vw}}.mode-selector{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.mode-selector label{display:block;margin-bottom:8px;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.mode-buttons{display:flex;gap:4px}.mode-btn{flex:1;padding:8px 6px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:10px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--font-mono)}.mode-btn:hover{background:var(--bg-card);color:var(--text-primary)}.mode-btn.active{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}#fixed-controls .fixed-info{margin-top:12px;padding:10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-left:3px solid var(--accent-danger)}#fixed-controls .info-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:11px}#fixed-controls .info-row span:first-child{color:var(--text-secondary)}#fixed-controls .info-row span:last-child{font-family:var(--font-mono);color:var(--text-primary);font-weight:600}#accuracy-test-panel .test-badge{background:#c60;color:#fff}#accuracy-test-panel .test-info{padding:8px;background:var(--bg-tertiary);border-left:2px solid #cc6600;margin-bottom:10px}#accuracy-test-panel .test-info small{color:var(--text-secondary);font-size:10px;line-height:1.4}.test-controls{display:flex;gap:6px;margin-bottom:10px}.test-btn{flex:1;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);font-size:10px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-mono)}.test-btn:hover{background:var(--bg-card);border-color:var(--border-light)}.test-btn.secondary{color:var(--text-secondary)}.test-results{max-height:150px;overflow-y:auto;margin-bottom:10px}.test-result-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);margin-bottom:4px;font-size:10px;font-family:var(--font-mono)}.test-result-item .shot-num{color:var(--text-secondary);min-width:30px}.test-result-item .shot-input{color:var(--text-primary)}.test-result-item .shot-calc{color:#fa0}.test-result-item .shot-error{font-weight:600}.test-result-item .shot-error.good{color:#0c6}.test-result-item .shot-error.moderate{color:#fa0}.test-result-item .shot-error.poor{color:#c00}.test-summary{padding:10px;background:var(--bg-card);border:1px solid var(--border-color)}.test-summary .summary-row{display:flex;justify-content:space-between;padding:4px 0;font-size:11px}.test-summary .summary-row span:first-child{color:var(--text-secondary)}.test-summary .summary-row span:last-child{font-family:var(--font-mono);font-weight:600}.test-summary .summary-row.highlight{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-color)}.test-summary .summary-row.highlight span:last-child{color:#0c6;font-size:13px}.fixed-source-marker{position:absolute;pointer-events:none}#sensor-angle-modal{display:none;position:fixed;top:80px;right:20px;z-index:9999;pointer-events:none}#sensor-angle-modal.active{display:block}.sensor-angle-modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;width:320px;box-shadow:0 10px 40px #000c;pointer-events:auto;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.sensor-angle-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-header);border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;cursor:grab;-webkit-user-select:none;user-select:none}.sensor-angle-header:active{cursor:grabbing}.sensor-angle-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.sensor-angle-body{padding:16px}.sensor-info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:12px}.sensor-info-label{color:var(--text-secondary)}.sensor-info-value{font-family:var(--font-mono);font-weight:600;color:#0f8}.sensor-preview-container{margin:12px 0;background:#000;border:1px solid var(--border-color);border-radius:4px;overflow:hidden}#sensor-preview-canvas{display:block;width:100%;height:auto}.sensor-angle-controls{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0}.angle-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 10px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;transition:all .15s ease}.angle-btn:hover{background:var(--border-light);border-color:#0f8}.angle-btn:active{transform:scale(.95)}.angle-left-10,.angle-right-10{background:var(--bg-secondary)}.angle-display{background:#000;border:2px solid #00ff88;padding:8px 16px;border-radius:4px;min-width:80px;text-align:center}.angle-display span{font-family:var(--font-mono);font-size:18px;font-weight:700;color:#0f8}.sensor-angle-range{margin:12px 0}.sensor-angle-range input[type=range]{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:3px;outline:none}.sensor-angle-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:#0f8;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0f86}.sensor-angle-actions{display:flex;gap:10px;margin-top:16px}.action-btn{flex:1;padding:10px 16px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.reset-btn{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.reset-btn:hover{background:var(--border-light);color:var(--text-primary)}.save-btn{background:#0f8;color:#000}.save-btn:hover{background:#00cc6a;box-shadow:0 4px 12px #00ff884d}.export-pdf-container{margin-top:10px}.export-pdf-btn{width:100%;padding:12px 16px;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.export-pdf-btn:hover{background:linear-gradient(135deg,#2980b9,#1f6dad);box-shadow:0 4px 12px #3498db66;transform:translateY(-1px)}.export-pdf-btn:active{transform:translateY(0)}.coverage-analysis-container{margin-top:10px}.coverage-analysis-btn{width:100%;padding:12px 16px;background:linear-gradient(135deg,#9b59b6,#8e44ad);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.coverage-analysis-btn:hover{background:linear-gradient(135deg,#8e44ad,#7d3c98);box-shadow:0 4px 12px #9b59b666;transform:translateY(-1px)}.coverage-analysis-btn.active{background:linear-gradient(135deg,#27ae60,#2ecc71);box-shadow:0 0 15px #2ecc7180}.coverage-panel{position:fixed;top:60px;right:280px;width:320px;max-height:calc(100vh - 80px);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;z-index:150;box-shadow:0 8px 32px #00000080;overflow:hidden}.coverage-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.coverage-panel-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.coverage-panel-header .panel-close{width:24px;height:24px;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;transition:all .2s ease}.coverage-panel-header .panel-close:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.coverage-panel-body{padding:16px;overflow-y:auto;max-height:calc(100vh - 160px)}.coverage-radar-container{position:relative;width:280px;height:280px;margin:0 auto 16px}#coverage-radar-canvas{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,#1a1a2e,#0a0a14)}.radar-center-info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.radar-center-info span{display:block;font-family:var(--font-mono);font-size:24px;font-weight:700;color:#0f8}.radar-center-info small{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.critical-angles-section{margin-bottom:16px}.critical-angles-section h4{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-color)}.critical-list{max-height:100px;overflow-y:auto}.critical-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#ff64641a;border-left:3px solid #ff6464;margin-bottom:4px;border-radius:0 4px 4px 0}.critical-item.warning{background:#ffc8641a;border-left-color:#ffc864}.critical-item .angle-range{font-family:var(--font-mono);font-size:12px;color:var(--text-primary)}.critical-item .overlap-count{font-size:11px;color:var(--text-muted)}.no-critical{padding:10px;text-align:center;color:#0f8;font-size:12px;background:#00ff881a;border-radius:4px}.coverage-stats{background:var(--bg-tertiary);border-radius:6px;padding:12px;margin-bottom:16px}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-color)}.stat-row:last-child{border-bottom:none}.stat-row .stat-label{font-size:11px;color:var(--text-secondary)}.stat-row .stat-value{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-primary)}.stat-row .stat-value.danger{color:#ff6464}.angle-detail-section{margin-bottom:16px}.angle-detail-section h4{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.angle-input-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.angle-input-row label{font-size:12px;color:var(--text-muted)}.angle-input-row input{width:70px;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;text-align:center}.angle-input-row span{color:var(--text-muted);font-size:12px}.angle-detail-info{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:10px;font-size:11px}.angle-detail-info .detail-row{display:flex;justify-content:space-between;padding:3px 0}.angle-detail-info .detail-row .label{color:var(--text-muted)}.angle-detail-info .detail-row .value{font-family:var(--font-mono);color:var(--text-primary)}.angle-detail-info .sensors-list{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.angle-detail-info .sensor-badge{display:inline-block;padding:2px 6px;margin:2px;background:#0f83;border:1px solid rgba(0,255,136,.4);border-radius:3px;font-size:10px;color:#0f8}.refresh-btn{width:100%;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.refresh-btn:hover{background:var(--border-light);border-color:#0f8;color:#0f8}
