*{box-sizing:border-box}html,body{color:#e2e8f0;background:#000;min-width:320px;min-height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.page{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.viewerHeader{background:#0a0a0af5;border-bottom:1px solid #1f2937;align-items:center;min-height:68px;padding:18px 24px;display:flex}.viewerHeader h3{color:#fff;margin:0;font-size:1.35rem;font-weight:750}.viewer{background:#000;min-height:0;position:relative;overflow:hidden}.viewer.isSelecting:before{z-index:1;content:"";pointer-events:none;background:0 0;position:absolute;inset:0}.viewerCanvas{width:100%;height:calc(100vh - 68px);min-height:420px}.partPanel{z-index:2;color:#e2e8f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111827e0;border:1px solid #ffffff1f;border-radius:8px;width:min(340px,100% - 48px);padding:18px;position:absolute;top:24px;right:24px;box-shadow:0 18px 48px #0009}.partPanel h4{color:#fff;margin:4px 0 10px;font-size:1.12rem;line-height:1.2}.partPanel p{color:#9ca3af;margin:0;font-size:.95rem;line-height:1.55}.partPanel .partEyebrow{color:#6b7280;letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:700}.partPanelActions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.partPanelActions button{color:#e5e7eb;cursor:pointer;min-height:38px;font:inherit;white-space:nowrap;background:#1f2937;border:1px solid #374151;border-radius:6px;flex:1;padding:0 12px}.partPanelActions button:hover{background:#374151;border-color:#4b5563}.partPanelActions button.measurementBtn{color:#fff;background:#2563eb;border-color:#3b82f6;font-weight:500}.partPanelActions button.measurementBtn:hover{background:#1d4ed8;border-color:#2563eb}.viewerToolbar{z-index:10;gap:12px;display:flex;position:absolute;top:24px;left:24px}.toolbarBtn{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#111827d9;border:1px solid #ffffff26;border-radius:8px;min-height:40px;padding:0 16px;font-family:inherit;font-weight:600;transition:all .2s;box-shadow:0 8px 32px #0006}.toolbarBtn:hover{background:#1f2937e6;border-color:#ffffff40;transform:translateY(-1px)}.toolbarBtn.active{background:#2563eb;border-color:#3b82f6;box-shadow:0 8px 32px #2563eb66}.leftPanelContainer{z-index:2;pointer-events:none;flex-direction:column;gap:16px;width:min(360px,100% - 48px);display:flex;position:absolute;top:88px;left:24px}.leftPanelContainer>*{pointer-events:auto}.booleanPanel{color:#e2e8f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111827e0;border:1px solid #ffffff1f;border-radius:8px;width:100%;padding:18px;animation:.3s cubic-bezier(.16,1,.3,1) forwards panelFadeIn;box-shadow:0 18px 48px #0009}.sensorPanel{color:#e2e8f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111827e0;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:20px;animation:.3s cubic-bezier(.16,1,.3,1) forwards panelFadeIn;display:flex;box-shadow:0 18px 48px #0009}@keyframes panelFadeIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.sensorTimepoint{color:#9ca3af;border-bottom:1px solid #ffffff14;justify-content:space-between;margin-bottom:4px;padding-bottom:8px;font-size:.88rem;display:flex}.timepointValue{color:#3b82f6;font-family:monospace;font-weight:700}.sensorRodsList{flex-direction:column;gap:10px;margin-bottom:4px;display:flex}.sensorRodItem{background:#ffffff08;border:1px solid #ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;transition:all .2s;display:flex}.sensorRodItem:hover{background:#ffffff0f;border-color:#ffffff1a}.rodNameContainer{align-items:center;gap:10px;display:flex}.rodColorDot{border-radius:50%;width:10px;height:10px;transition:background-color .4s,box-shadow .4s}.rodDisplayName{color:#f1f5f9;font-size:.9rem;font-weight:550}.rodValueContainer{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.rodValue{color:#fff;font-family:monospace;font-size:.95rem;font-weight:700}.rodStatusBadge{text-transform:uppercase;letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:600}.status-fine{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f640}.status-warning{color:#c084fc;background:#a855f726;border:1px solid #a855f740}.status-low{color:#f87171;background:#ef444426;border:1px solid #ef444440}.sensorControls{gap:10px;margin-top:4px;display:flex}.simulationBtn,.nextTimeBtn{cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:0 12px;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .2s;display:flex}.simulationBtn{color:#fff;background:#ffffff14;border:1px solid #ffffff26}.simulationBtn:hover{background:#ffffff26}.simulationBtn.playing{color:#f87171;background:#ef444426;border-color:#ef4444;box-shadow:0 0 12px #ef444433}.pulseDot{background-color:#ef4444;border-radius:50%;width:8px;height:8px;animation:1s infinite alternate pulse}@keyframes pulse{0%{opacity:.5;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.nextTimeBtn{color:#fff;background:#2563eb;border:1px solid #3b82f6}.nextTimeBtn:hover{background:#1d4ed8}.sensorLegend{border-top:1px solid #ffffff14;margin-top:4px;padding-top:10px}.legendTitle{text-transform:uppercase;color:#6b7280;margin:0 0 6px;font-size:.76rem;font-weight:700}.legendBar{justify-content:space-between;align-items:center;gap:10px;display:flex}.legendLabel{color:#9ca3af;font-size:.72rem}.gradientBar{background:linear-gradient(90deg,#ef4444,#10b981,#3b82f6);border:1px solid #ffffff1a;border-radius:4px;flex:1;height:8px}.viewerStatus{color:#9ca3af;pointer-events:none;background:#111827cc;border:1px solid #ffffff1a;border-radius:6px;max-width:calc(100% - 32px);padding:8px 11px;font-size:.86rem;position:absolute;bottom:16px;left:16px}@media (max-width:640px){.viewerHeader{min-height:58px;padding:14px 16px}.viewerCanvas{height:calc(100vh - 58px);min-height:360px}.partPanel{width:auto;padding:14px;inset:auto 12px 56px}}.viewerTooltip{z-index:9999;color:#f8fafc;letter-spacing:.01em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;white-space:nowrap;opacity:0;background:#0f172ae6;border:1px solid #fff3;border-radius:6px;padding:6px 12px;font-size:.88rem;font-weight:500;animation:.15s cubic-bezier(.16,1,.3,1) forwards tooltipFadeIn;position:fixed;box-shadow:0 6px 24px #0006,inset 0 1px #ffffff26}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.inspectionDetails{border-top:1px solid #ffffff1a;flex-direction:column;gap:10px;margin:16px 0;padding:14px 0 0;display:flex}.inspectionDetails .sectionTitle{text-transform:uppercase;color:#3b82f6;letter-spacing:.05em;margin:0 0 4px;font-size:.8rem;font-weight:700}.detailRow{justify-content:space-between;align-items:center;font-size:.84rem;display:flex}.detailLabel{color:#9ca3af;font-weight:500}.detailValue{color:#f1f5f9;font-family:monospace;font-weight:600}.remarksRow{flex-direction:column;align-items:flex-start;gap:6px;margin-top:2px}.remarksValue{color:#d1d5db;box-sizing:border-box;background:#ffffff08;border:1px solid #ffffff0d;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:.8rem;font-weight:400;line-height:1.45}.telemetrySlider{-webkit-appearance:none;background:#1f2937;border-radius:3px;outline:none;width:100%;height:6px;margin:6px 0}.telemetrySlider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#3b82f6;border-radius:50%;width:14px;height:14px;transition:background .15s;box-shadow:0 0 8px #3b82f699}.telemetrySlider::-webkit-slider-thumb:hover{background:#60a5fa}.telemetryToggle{cursor:pointer;-webkit-appearance:none;background-color:#374151;border-radius:10px;outline:none;width:38px;height:20px;margin:0;transition:background-color .2s;position:relative}.telemetryToggle:checked{background-color:#10b981}.telemetryToggle:before{content:"";background-color:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:3px;left:3px}.telemetryToggle:checked:before{transform:translate(18px)}.telemetryNavbar{z-index:100;justify-content:space-between;box-shadow:0 4px 24px #0009}.navbarLogoContainer{align-items:center;gap:12px;display:flex}.navbarLogoIcon{color:#3b82f6;filter:drop-shadow(0 0 6px #3b82f666)}.navbarTitleGroup{flex-direction:column;display:flex}.navbarSubTitle{letter-spacing:.12em;color:#6b7280;font-size:.62rem;font-weight:700}.navbarMainTitle{background:linear-gradient(135deg,#fff 30%,#a5b4fc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:1.15rem;font-weight:850}.navbarLinks{gap:10px;display:flex}.navbarLink{color:#9ca3af;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;font-weight:600;text-decoration:none;transition:all .25s;display:flex}.navbarLink:hover{color:#fff;background:#ffffff08}.navbarLink.active{color:#fff;background:#3b82f614;border-color:#3b82f64d;box-shadow:inset 0 0 12px #3b82f61a,0 0 8px #3b82f60d}.navbarSystemStatus{background:#10b9810f;border:1px solid #10b98133;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;display:flex}.statusIndicatorPulse{background-color:#10b981;border-radius:50%;width:7px;height:7px;animation:1.8s infinite alternate navbarPulse;box-shadow:0 0 8px #10b981}@keyframes navbarPulse{0%{opacity:.45;transform:scale(.85)}to{opacity:1;transform:scale(1.15);box-shadow:0 0 12px #10b981}}.statusText{letter-spacing:.06em;color:#10b981;font-size:.72rem;font-weight:750}.dashboardLayout{background:#030712;grid-template-columns:320px 1fr 340px;height:calc(100vh - 68px);min-height:500px;display:grid;overflow:hidden}.dashboardSidebar{z-index:10;background:#030712f2;flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.leftSidebar{border-right:1px solid #1f2937}.rightSidebar{border-left:1px solid #1f2937}.dashboardViewport{background:#030712;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.canvasContainer{flex:1;width:100%;height:100%}.telemetryPanel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#11182773;border:1px solid #ffffff0d;border-radius:10px;flex-direction:column;display:flex;box-shadow:0 4px 18px #00000040}.telemetryPanel.heightFull{height:100%}.panelHeader{background:#ffffff05;border-bottom:1px solid #ffffff0d;align-items:center;gap:8px;padding:12px 14px;display:flex}.panelTitle{letter-spacing:.05em;color:#f3f4f6;text-transform:uppercase;font-size:.78rem;font-weight:750}.recordCount{color:#6b7280;margin-left:auto;font-family:monospace;font-size:.72rem}.panelBody{flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px;display:flex}.panelBody.tableBody{gap:0;padding:0}.telemetryGrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.metricCard{background:#ffffff05;border:1px solid #ffffff08;border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.metricLabel{color:#9ca3af;letter-spacing:.04em;text-transform:uppercase;font-size:.6rem;font-weight:700}.metricValue{color:#fff;font-family:monospace;font-size:1.15rem;font-weight:800}.metricUnit{color:#6b7280;font-size:.7rem;font-weight:400}.alarmCard{background:#ef444405;border-color:#ef444426}.criticalText{text-shadow:0 0 10px #ef44444d;color:#f87171!important}.systemStatusWidget{background:#ffffff05;border:1px solid #ffffff0a;border-radius:6px;flex-direction:column;gap:8px;margin-top:6px;padding:10px 12px;display:flex}.statusLabelRow{color:#9ca3af;justify-content:space-between;align-items:center;font-size:.64rem;font-weight:700;display:flex}.statusBadge{letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:.62rem;font-weight:750}.statusBadge.nominal{color:#34d399;background:#10b98126;border:1px solid #10b98140}.statusBadge.degraded{color:#f87171;background:#ef444426;border:1px solid #ef444440;animation:1.5s infinite alternate criticalFlash}@keyframes criticalFlash{0%{opacity:.8}to{opacity:1;box-shadow:0 0 8px #ef444433}}.statusAlertMsg{color:#d1d5db;background:#ef44440d;border:1px solid #ef44441a;border-radius:4px;align-items:flex-start;gap:8px;padding:6px 8px;font-size:.74rem;line-height:1.4;display:flex}.alertPulse{background:#ef4444;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:4px;animation:.8s infinite alternate criticalPulse}@keyframes criticalPulse{0%{opacity:.5;transform:scale(.8);box-shadow:0 0 #ef444400}to{opacity:1;transform:scale(1.3);box-shadow:0 0 8px #ef4444}}.controlGroup{flex-direction:column;gap:6px;display:flex}.controlLabel{color:#9ca3af;letter-spacing:.02em;text-transform:uppercase;font-size:.68rem;font-weight:750}.sliderHeader{justify-content:space-between;align-items:center;display:flex}.sliderValue{color:#3b82f6;font-family:monospace;font-size:.72rem;font-weight:700}.btnGrid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.btnGrid.flex3{grid-template-columns:1fr 1fr 1fr}.cfgBtn{color:#9ca3af;cursor:pointer;background:#111827;border:1px solid #1f2937;border-radius:6px;min-height:32px;padding:0 6px;font-family:inherit;font-size:.72rem;font-weight:600;transition:all .2s}.cfgBtn:hover{color:#fff;background:#1f2937;border-color:#374151}.cfgBtn.active{color:#fff;background:#2563eb26;border-color:#2563eb;box-shadow:inset 0 0 8px #2563eb33}.toggleRow{flex-direction:row;justify-content:space-between;align-items:center;padding:6px 0}.cursorPointer{cursor:pointer}.graphsToolbar{top:16px;left:16px}.viewportOverlayBadge{color:#9ca3af;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827d9;border:1px solid #ffffff14;border-radius:6px;padding:6px 12px;font-size:.72rem;position:absolute;top:16px;right:16px}.activeModeText{color:#3b82f6;letter-spacing:.04em}.telemetryTableContainer{border-bottom:1px solid #ffffff0d;flex:1;min-height:0;overflow-y:auto}.telemetryTable{border-collapse:collapse;text-align:left;width:100%;font-size:.78rem}.telemetryTable th{color:#9ca3af;letter-spacing:.04em;text-transform:uppercase;z-index:2;background:#111827;border-bottom:1px solid #ffffff0d;padding:10px 12px;font-size:.64rem;font-weight:700;position:sticky;top:0}.telemetryTable td{color:#d1d5db;border-bottom:1px solid #ffffff08;padding:10px 12px}.tableRow{cursor:pointer;transition:all .15s}.tableRow:hover,.tableRow.hovered{background:#ffffff08!important}.tableRow.hovered{border-left:2px solid #facc15}.criticalRow{background:#ef444404}.criticalRow:hover{background:#ef444408!important}.fontMono{font-family:monospace;font-weight:700}.fontBold{font-weight:700}.tableLegend{background:#0003;flex-direction:column;gap:6px;padding:10px 14px;display:flex}.legendItem{color:#9ca3af;align-items:center;gap:8px;font-size:.68rem;display:flex}.legendColor{border-radius:50%;width:8px;height:8px}.tooltipHeader{color:#9ca3af;letter-spacing:.08em;border-bottom:1px solid #ffffff1a;margin-bottom:4px;padding-bottom:4px;font-size:.6rem;font-weight:800}.tooltipRow{justify-content:space-between;gap:16px;margin:3px 0;font-size:.74rem;display:flex}.tooltipLabel{color:#9ca3af}.tooltipVal{color:#fff;font-family:monospace}.tooltipFooter{margin-top:6px;display:flex}.tooltipBadgeStatus{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 5px;font-size:.58rem;font-weight:750}.tooltipBadgeStatus.nominal{color:#34d399;background:#10b98126}.tooltipBadgeStatus.warning{color:#fbbf24;background:#f59e0b26}.tooltipBadgeStatus.critical{color:#f87171;background:#ef444426;animation:1.5s infinite alternate tooltipFlash}@keyframes tooltipFlash{0%{opacity:.85}to{opacity:1}}.centerFlex{justify-content:center;align-items:center;gap:12px;display:flex}.loaderSpin{border:2px solid #3b82f633;border-top-color:#3b82f6;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spinner}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.telemetryTableContainer::-webkit-scrollbar{width:6px}.dashboardSidebar::-webkit-scrollbar{width:6px}.telemetryTableContainer::-webkit-scrollbar-track{background:0 0}.dashboardSidebar::-webkit-scrollbar-track{background:0 0}.telemetryTableContainer::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.dashboardSidebar::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.telemetryTableContainer::-webkit-scrollbar-thumb:hover{background:#ffffff26}.dashboardSidebar::-webkit-scrollbar-thumb:hover{background:#ffffff26}@media (max-width:1200px){.dashboardLayout{grid-template-rows:1fr auto;grid-template-columns:300px 1fr;height:auto;min-height:calc(100vh - 68px);overflow:visible}.rightSidebar{border-top:1px solid #1f2937;border-left:none;grid-column:span 2;height:360px}.dashboardViewport{height:550px}}@media (max-width:768px){.dashboardLayout{grid-template-rows:auto 420px auto;grid-template-columns:1fr;height:auto;min-height:calc(100vh - 58px);overflow:visible}.leftSidebar{border-bottom:1px solid #1f2937;border-right:none}.dashboardViewport{height:420px}.rightSidebar{grid-column:span 1;height:360px}.navbarLinks{display:none}}.remoteControllerLayout{color:#f3f4f6;background-color:#030712;background-image:radial-gradient(circle at 100% 0,#a855f714,#0000 400px),radial-gradient(circle at 0 100%,#3b82f60d,#0000 400px);justify-content:center;align-items:center;min-height:100vh;padding:16px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;display:flex}.remoteCard{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111827b3;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:20px;width:100%;max-width:440px;padding:24px;display:flex;box-shadow:0 10px 30px #00000080}.remoteHeader{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.remoteLogo{align-items:center;gap:8px;display:flex}.remoteTitle{letter-spacing:.08em;color:#fff;font-size:.88rem;font-weight:800}.remoteStatusBadge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:4px 8px;font-size:.65rem;font-weight:750}.remoteStatusBadge.initializing,.remoteStatusBadge.connecting{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b40}.remoteStatusBadge.connected{color:#34d399;background:#10b98126;border:1px solid #10b98140}.remoteStatusBadge.disconnected,.remoteStatusBadge.error,.remoteStatusBadge.permission-denied{color:#f87171;background:#ef444426;border:1px solid #ef444440}.remoteSpinnerContainer{color:#9ca3af;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 0;font-size:.88rem;display:flex}.remoteSpinner{border:3px solid #a855f733;border-top-color:#a855f7;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spinner}.peerIdCode{color:#d1d5db;background:#0000004d;border-radius:4px;padding:4px 8px;font-family:monospace;font-size:.78rem}.remoteErrorContainer{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px 0;display:flex}.errorIcon{margin-bottom:8px;font-size:2.5rem}.retryBtn{color:#fff;cursor:pointer;background:#a855f7;border:none;border-radius:8px;margin-top:12px;padding:10px 20px;font-size:.88rem;font-weight:700;transition:background .2s}.retryBtn:hover{background:#9333ea}.remoteConnectedContainer{flex-direction:column;gap:20px;display:flex}.connectionBanner{color:#34d399;background:#10b98114;border:1px solid #10b98126;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:.82rem;font-weight:600;display:flex}.pulseDot{background:#10b981;border-radius:50%;width:8px;height:8px;animation:1s infinite alternate criticalPulse;box-shadow:0 0 8px #10b981}.startSection{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:20px 0;display:flex}.instructionText{color:#d1d5db;font-size:.88rem;line-height:1.5}.actionBtn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#a855f7,#3b82f6);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:.95rem;font-weight:700;transition:transform .1s,opacity .2s;display:flex;box-shadow:0 4px 15px #a855f740}.actionBtn:active{transform:scale(.98)}.divider{color:#4b5563;text-transform:uppercase;letter-spacing:.1em;align-items:center;width:100%;margin:10px 0;font-size:.75rem;display:flex}.divider:before,.divider:after{content:"";background:#ffffff14;flex:1;height:1px;margin:0 10px}.simulateBtn{color:#9ca3af;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;padding:10px 16px;font-size:.82rem;font-weight:600;transition:all .2s}.simulateBtn:hover{color:#fff;background:#ffffff0a}.simulateBtn.stop{color:#f87171;background:#ef44440d;border-color:#ef44444d;margin-top:12px}.simulateBtn.stop:hover{background:#ef44441a}.activeControllerSection{flex-direction:column;gap:20px;display:flex}.visualizerGrid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dialCard{background:#ffffff05;border:1px solid #ffffff0a;border-radius:10px;flex-direction:column;align-items:center;gap:10px;padding:14px;display:flex}.dialCard.spanFull{grid-column:span 2}.dialLabel{color:#9ca3af;letter-spacing:.06em;text-transform:uppercase;font-size:.65rem;font-weight:750}.dialRing{background:#0003;border:3px solid #a855f726;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.dialPointer{transform-origin:bottom;background:#a855f7;border-radius:2px;width:4px;height:30px;position:absolute;top:10px;left:38px;box-shadow:0 0 8px #a855f7b3}.dialVal{color:#fff;z-index:2;font-family:monospace;font-size:1.1rem;font-weight:800}.dialDescription{color:#6b7280;text-align:center;font-size:.7rem}.compassBar{background:#0000004d;border:1px solid #ffffff0f;border-radius:6px;align-items:center;width:100%;height:32px;display:flex;position:relative;overflow:hidden}.compassTrack{color:#4b5563;gap:24px;width:200%;padding:0 16px;font-size:.75rem;font-weight:800;transition:transform .1s ease-out;display:flex}.compassTrack span{text-align:center;width:20px}.compassCenter{background:#111827f2;border:1px solid #ffffff1a;border-radius:4px;padding:2px 6px;font-size:.82rem;position:absolute;right:12px}.simulatorControls{background:#ffffff05;border:1px solid #ffffff0d;border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.simulatorControls h5{color:#fbbf24;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.76rem;font-weight:750}.sliderRow{flex-direction:column;gap:4px;display:flex}.sliderRow label{color:#9ca3af;font-family:monospace;font-size:.72rem}.sliderRow input[type=range]{accent-color:#a855f7;background:#ffffff14;border-radius:2px;outline:none;width:100%;height:4px}.footerControlRow{border-top:1px solid #ffffff0f;flex-direction:column;align-items:center;padding-top:14px;display:flex}.streamingTip{color:#9ca3af;text-align:center;margin:0;font-size:.72rem}.partAttachments{border-top:1px solid #ffffff1a;margin-top:18px;padding-top:14px}.attachmentsGrid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px;display:grid}.imagePlaceholder{aspect-ratio:1.5;cursor:pointer;color:#9ca3af;background:#ffffff05;border:1px dashed #fff3;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:.72rem;transition:all .2s;display:flex}.imagePlaceholder:hover{color:#fff;background:#3b82f60d;border-color:#3b82f6}.uploadedImageWrapper{aspect-ratio:1.5;border:1px solid #ffffff1a;border-radius:6px;position:relative;overflow:hidden}.uploadedImage{object-fit:cover;width:100%;height:100%;transition:transform .3s}.uploadedImageWrapper:hover .uploadedImage{transform:scale(1.05)}.deleteAttachmentBtn{color:#fff;cursor:pointer;z-index:10;background:#ef4444d9;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;line-height:1;transition:all .2s;display:flex;position:absolute;top:6px;right:6px}.deleteAttachmentBtn:hover{background:#ef4444;transform:scale(1.1)}.documentsList{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.documentItem{background:#ffffff08;border:1px solid #ffffff0d;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;display:flex}.docInfo{flex:1;align-items:center;gap:8px;display:flex;overflow:hidden}.docIcon{color:#60a5fa;flex-shrink:0}.docName{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.docDeleteBtn{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px 6px;font-size:.9rem;transition:all .2s;display:flex}.docDeleteBtn:hover{color:#f87171;background:#ef44441a}.attachmentActions{gap:8px;margin-top:10px;display:flex}.attachmentBtn{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff26;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.attachmentBtn:hover{background:#ffffff1f;border-color:#ffffff40}.emptyAttachmentsText{color:#6b7280;text-align:center;margin:0;padding:8px 0;font-size:.78rem}.lightboxOverlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99999;cursor:zoom-out;background:#000000e0;justify-content:center;align-items:center;animation:.22s cubic-bezier(.16,1,.3,1) forwards lightboxFadeIn;display:flex;position:fixed;inset:0}.lightboxContent{cursor:default;justify-content:center;align-items:center;max-width:90vw;max-height:90vh;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards lightboxZoomIn;display:flex;position:relative}.lightboxContent img{object-fit:contain;border:1px solid #ffffff26;border-radius:8px;max-width:100%;max-height:85vh;box-shadow:0 24px 64px #000000e6}.lightboxClose{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;line-height:1;transition:all .2s;display:flex;position:absolute;top:-44px;right:0}.lightboxClose:hover{color:#fff;background:#ef4444;border-color:#f87171;transform:scale(1.08)}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxZoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.uploadedImageWrapper{cursor:zoom-in}.docName:hover{color:#60a5fa!important;text-decoration:underline!important}.calculatorDashboard,.calculatorViewport{background:#030712}.numericControlGroup{background:#ffffff05;border:1px solid #ffffff08;border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;transition:all .25s;display:flex}.numericControlGroup.focused,.numericControlGroup:hover{background:#ffffff0a;border-color:#ffffff14}.controlLabelRow{justify-content:space-between;align-items:center;display:flex}.controlLabelRow label{color:#d1d5db;align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:flex}.varTag{text-transform:uppercase;border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.65rem;font-weight:700}.varTag.valX{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f633}.varTag.valC{color:#a78bfa;background:#8b5cf626;border:1px solid #8b5cf633}.varTag.valY{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b33}.varTag.valZ{color:#34d399;background:#10b98126;border:1px solid #10b98133}.numberInput{color:#fff;text-align:right;background:#03071299;border:1px solid #ffffff14;border-radius:4px;outline:none;width:75px;padding:4px 8px;font-family:monospace;font-size:.82rem;font-weight:700;transition:all .2s}.numberInput:focus{background:#030712f2;border-color:#3b82f6}.fieldHint{color:#6b7280;font-size:.7rem;line-height:1.3}.formulaCard{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#11182773;border:1px solid #ffffff0d;border-radius:10px;flex-direction:column;gap:16px;padding:20px;display:flex;box-shadow:0 4px 18px #00000040}.formulaCardTitle{letter-spacing:.05em;color:#fbbf24;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:750}.formulaEquationWrapper{color:#fff;justify-content:center;align-items:center;gap:16px;padding:16px 0;font-size:1.45rem;font-weight:800;display:flex}.eqResult{color:#fff;background:#ffffff05;border:1px solid #ffffff0d;border-radius:6px;padding:6px 12px}.eqEquals{color:#6b7280}.eqFraction{flex-direction:column;align-items:center;gap:4px;display:flex}.eqNumerator,.eqDenominator{align-items:center;gap:6px;display:flex}.eqDivider{background:#ffffff26;border-radius:1px;width:100%;height:2px}.eqTerm{cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:4px;padding:2px 8px;font-weight:700;transition:all .25s}.eqTerm.active{transform:scale(1.08)}.eqTerm.termX.active,.eqTerm.termX:hover{color:#60a5fa;background:#3b82f633;border-color:#3b82f6;box-shadow:0 0 12px #3b82f64d}.eqTerm.termC.active,.eqTerm.termC:hover{color:#a78bfa;background:#8b5cf633;border-color:#8b5cf6;box-shadow:0 0 12px #8b5cf64d}.eqTerm.termY.active,.eqTerm.termY:hover{color:#fbbf24;background:#f59e0b33;border-color:#f59e0b;box-shadow:0 0 12px #f59e0b4d}.eqTerm.termZ.active,.eqTerm.termZ:hover{color:#34d399;background:#10b98133;border-color:#10b981;box-shadow:0 0 12px #10b9814d}.eqOp{color:#4b5563;font-size:1.1rem}.eqDetailsList{border-top:1px solid #ffffff0d;flex-direction:column;gap:8px;padding-top:12px;display:flex}.eqDetailItem{color:#9ca3af;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;font-size:.82rem;transition:all .2s;display:flex}.eqDetailItem.active{color:#fff;background:#ffffff05}.eqDot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.eqDot.valX{background:#3b82f6;box-shadow:0 0 6px #3b82f6}.eqDot.valC{background:#8b5cf6;box-shadow:0 0 6px #8b5cf6}.eqDot.valY{background:#f59e0b;box-shadow:0 0 6px #f59e0b}.eqDot.valZ{background:#10b981;box-shadow:0 0 6px #10b981}.performanceGraphContainer{width:100%}.svgPerformanceGraph{display:block}.pulsingGraphNode{animation:1.8s infinite alternate graphNodePulse}@keyframes graphNodePulse{0%{r:5px;stroke-width:2px}to{r:7.5px;stroke-width:3.5px}}.zeroErrorState{text-align:center;color:#ef4444;background:#00000026;border:1px dashed #ffffff1a;border-radius:6px;justify-content:center;align-items:center;height:150px;padding:18px;font-size:.85rem;display:flex}.svgWave{transform-origin:bottom;animation:3.8s linear infinite waveMotion}@keyframes waveMotion{0%{transform:translateY(var(--wave-translate-y,0px)) translateX(0)}50%{transform:translateY(var(--wave-translate-y,0px)) translateX(-6px) skewY(1deg)}to{transform:translateY(var(--wave-translate-y,0px)) translateX(0)}}.fluidTankWrapper{background:#0307124d;border-radius:16px;overflow:hidden;box-shadow:0 10px 32px #00000080}.gradeBadge{min-width:140px;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-block}.gradeBadge.grade-a{background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 100%);box-shadow:0 0 20px #3b82f666,inset 0 1px #fff3;border-color:#3b82f680!important}.gradeBadge.grade-b{background:linear-gradient(135deg,#064e3b 0%,#059669 100%);box-shadow:0 0 20px #10b98166,inset 0 1px #fff3;border-color:#10b98180!important}.gradeBadge.grade-c{background:linear-gradient(135deg,#78350f 0%,#d97706 100%);box-shadow:0 0 20px #f59e0b66,inset 0 1px #fff3;border-color:#f59e0b80!important}.gradeBadge.grade-d{background:linear-gradient(135deg,#7c2d12 0%,#ea580c 100%);box-shadow:0 0 20px #f9731666,inset 0 1px #fff3;border-color:#f9731680!important}.gradeBadge.grade-e{background:linear-gradient(135deg,#7f1d1d 0%,#dc2626 100%);box-shadow:0 0 20px #ef444466,inset 0 1px #fff3;border-color:#ef444480!important}.gradeBadge.grade-invalid{box-shadow:none;background:#1f293780;color:#6b7280!important;border-color:#ffffff1a!important}.scalePointerIndicator{filter:drop-shadow(0 2px 4px #00000080);border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;transition:left .3s cubic-bezier(.16,1,.3,1),border-top-color .3s;position:absolute;top:-6px}
