@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{--color-primary: #4361ee;--color-background: #0a0f1c;--color-surface: rgba(17, 25, 40, .75);--color-text: #f8fafc;--color-border: rgba(255, 255, 255, .1);--color-glass: rgba(17, 25, 40, .6);--gradientBackground: radial-gradient(circle at 100% 0%, rgba(67, 97, 238, .15), transparent 40%), radial-gradient(circle at 0% 100%, rgba(247, 37, 133, .12), transparent 40%);--ui-scale: 1.2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text);background-image:var(--color-gradientBackground);background-attachment:fixed;background-size:cover;transition:background-color var(--transition-normal),color var(--transition-normal);overflow:hidden}#root{width:100%;height:100vh;overflow:hidden}.app-header,.sidebar,.view-tabs,.diagram-quick-actions,.view-scale{zoom:var(--ui-scale, 1)}h1,h2,h3,h4,h5,h6{font-family:Outfit,sans-serif;letter-spacing:-.02em}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--color-textSecondary);border:2px solid transparent;background-clip:padding-box}::selection{background-color:var(--color-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 12px var(--color-glowPrimary)}button{font-family:inherit}@keyframes slideInFromRight{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromLeft{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromTop{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromBottom{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal)}.slide-in-right{animation:slideInFromRight var(--transition-bounce)}.slide-in-left{animation:slideInFromLeft var(--transition-bounce)}.slide-in-top{animation:slideInFromTop var(--transition-bounce)}.slide-in-bottom{animation:slideInFromBottom var(--transition-bounce)}.scale-in{animation:scaleIn var(--transition-bounce)}.pulse{animation:pulse 2.5s ease-in-out infinite}.spin{animation:spin 1s linear infinite}.float{animation:float 4s ease-in-out infinite}.transition-all{transition:all var(--transition-normal)}.transition-colors{transition:background-color var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}.transition-transform{transition:transform var(--transition-bounce)}.hover-lift{transition:transform var(--transition-bounce),box-shadow var(--transition-normal)}.hover-lift:hover{transform:translateY(-3px);box-shadow:0 10px 25px var(--color-shadow)}.hover-lift:active{transform:translateY(-1px)}.hover-scale{transition:transform var(--transition-bounce)}.hover-scale:hover{transform:scale(1.03)}.hover-scale:active{transform:scale(.98)}.hover-glow{transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.hover-glow:hover{box-shadow:0 0 20px var(--color-glowPrimary);border-color:var(--color-primary)}.glass-panel{background:var(--color-surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-glassBorder);box-shadow:0 8px 32px var(--color-shadow)}.soe-playback-wrapper{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-left:12px;border-left:1px solid var(--color-border);padding-left:12px;flex:1;min-width:350px}.soe-mode-select{font-size:13px;font-weight:600;color:var(--color-text);margin-right:6px;background:transparent;border:none;outline:none;cursor:pointer}.soe-playback-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;background:var(--color-surfaceHover);color:var(--color-text);border:1px solid var(--color-border);transition:all .15s}.soe-playback-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.soe-speed-wrapper{display:flex;align-items:center;gap:6px;margin-left:8px}.soe-speed-label{font-size:11px;color:var(--color-textSecondary)}.soe-speed-input{width:60px;cursor:pointer;accent-color:var(--color-primary)}.soe-time-display{font-size:12px;font-weight:600;color:var(--color-textSecondary);width:50px;text-align:right;margin-left:auto}.voltage-heatmap-legend{position:absolute;bottom:12px;left:12px;z-index:10;display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:6px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e0e0e0);box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-width:72px;pointer-events:auto;-webkit-user-select:none;user-select:none}.voltage-heatmap-legend-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-textSecondary, #757575);text-align:center}.voltage-heatmap-legend-body{display:flex;flex-direction:column;gap:6px;align-items:center}.voltage-heatmap-legend-bar-container{display:flex;flex-direction:row;gap:6px;align-items:stretch}.voltage-heatmap-legend-bar{width:18px;height:180px;border-radius:3px;border:1px solid var(--color-border, #e0e0e0);flex-shrink:0}.voltage-heatmap-legend-labels{display:flex;flex-direction:column;justify-content:space-between;padding:1px 0;position:relative;height:180px}.voltage-heatmap-legend-label{font-size:9px;font-weight:500;color:var(--color-text, #212121);white-space:nowrap;line-height:1;position:absolute;left:0;transform:translateY(-50%)}.voltage-heatmap-legend-label.top{top:0%}.voltage-heatmap-legend-label.at-1pu{top:41.2%}.voltage-heatmap-legend-label.mid{top:70.6%}.voltage-heatmap-legend-label.bottom{top:100%}.voltage-heatmap-legend-phase{width:100%}.voltage-heatmap-phase-select{width:100%;padding:3px 4px;font-size:10px;font-weight:500;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;background:var(--color-surface, #ffffff);color:var(--color-text, #212121);cursor:pointer;outline:none;transition:border-color .15s;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.voltage-heatmap-phase-select:hover{border-color:var(--color-primary, #2196F3)}.voltage-heatmap-phase-select:focus-visible{border-color:var(--color-primary, #2196F3);box-shadow:0 0 0 2px #2196f333}.heatmap-toggle-btn{padding:5px 12px;font-size:11px;font-weight:500;border:none;cursor:pointer;transition:background-color .15s,color .15s;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #757575);white-space:nowrap;line-height:1.2;border-left:1px solid var(--color-border, #e0e0e0)}.heatmap-toggle-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.heatmap-toggle-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px;z-index:1}.heatmap-toggle-btn.active{background:#e65100;color:#fff;font-weight:600}.heatmap-toggle-btn.active:hover{background:#bf360c;color:#fff}[data-theme=dark] .voltage-heatmap-legend{background:#1e1e1eeb;border-color:#ffffff1f;box-shadow:0 2px 8px #0006}[data-theme=dark] .voltage-heatmap-legend-title{color:var(--color-textSecondary, #b0b0b0)}[data-theme=dark] .voltage-heatmap-legend-bar{border-color:#ffffff26}[data-theme=dark] .voltage-heatmap-legend-label{color:var(--color-text, #ffffff)}[data-theme=dark] .voltage-heatmap-phase-select{background:#ffffff0f;border-color:#ffffff26;color:var(--color-text, #ffffff)}[data-theme=dark] .voltage-heatmap-phase-select:hover{border-color:var(--color-primary, #42A5F5)}[data-theme=dark] .heatmap-toggle-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #b0b0b0);border-left-color:#ffffff1f}[data-theme=dark] .heatmap-toggle-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .heatmap-toggle-btn.active{background:#ff9800;color:#000}[data-theme=dark] .heatmap-toggle-btn.active:hover{background:#ffb74d;color:#000}.canvas-legend-overlay{position:absolute;bottom:24px;right:24px;width:220px;background-color:#fffffff2;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #0000001a;padding:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;transition:all .2s ease}.canvas-legend-overlay--dark{background-color:#1e1e1ef2;border-color:#444;box-shadow:0 4px 12px #0000004d;color:#fff}.clo-header{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}.canvas-legend-overlay--dark .clo-header{border-bottom-color:#444}.clo-title{font-size:11px;font-weight:700;text-transform:uppercase;color:#666;letter-spacing:.5px}.canvas-legend-overlay--dark .clo-title{color:#aaa}.clo-subtitle{font-size:13px;font-weight:600;color:#a91d2a;margin-top:2px}.canvas-legend-overlay--dark .clo-subtitle{color:#ef5350}.clo-section{margin-bottom:12px}.clo-section:last-child{margin-bottom:0}.clo-section-title{font-size:11px;color:#444;margin-bottom:6px}.canvas-legend-overlay--dark .clo-section-title{color:#ccc}.clo-visibility-list{display:flex;flex-wrap:wrap;gap:4px}.clo-tag{font-size:10px;background-color:#e3f2fd;color:#1976d2;padding:2px 6px;border-radius:4px;font-weight:500}.canvas-legend-overlay--dark .clo-tag{background-color:#1976d233;color:#90caf9}.clo-color-grid{display:flex;flex-direction:column;gap:4px}.clo-color-row{display:flex;align-items:center;gap:8px;font-size:11px;color:#555}.canvas-legend-overlay--dark .clo-color-row{color:#bbb}.clo-swatch{width:12px;height:12px;border-radius:2px;display:inline-block}.clo-gradient-bar{width:60px;height:8px;border-radius:4px;background:linear-gradient(to right,#1d5c1d,#b45309,#a91d2a,#7c0a18)}.canvas-legend-overlay--dark .clo-gradient-bar{background:linear-gradient(to right,#4caf50,#ffb300,#ef5350,#b71c1c)}.one-line-diagram{width:100%;height:100%;background:var(--color-background);border-radius:8px;overflow:hidden;box-shadow:inset 0 2px 4px var(--color-shadow);position:relative}.one-line-diagram canvas{cursor:grab}.one-line-diagram canvas:active{cursor:grabbing}.one-line-diagram.anno-tool-pen canvas,.one-line-diagram.anno-tool-pen canvas:active{cursor:crosshair}.one-line-diagram.anno-tool-text canvas,.one-line-diagram.anno-tool-text canvas:active{cursor:text}.anno-toolbar{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);overflow-x:auto;padding:7px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 6px 24px var(--color-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.anno-title{font-size:12px;font-weight:700;color:var(--color-textSecondary);white-space:nowrap}.anno-hint{font-size:11px;color:var(--color-textSecondary);opacity:.85;white-space:nowrap}.anno-group{display:inline-flex;align-items:center;gap:4px}.anno-sep{width:1px;align-self:stretch;background:var(--color-border);margin:2px}.anno-tool-btn,.anno-action{padding:5px 10px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer}.anno-tool-btn:hover,.anno-action:hover:not(:disabled){background:var(--color-surfaceHover)}.anno-tool-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.anno-action:disabled{opacity:.4;cursor:default}.anno-colors{gap:3px}.anno-swatch{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:0 0 0 1px var(--color-border) inset}.anno-swatch.active{border-color:var(--color-primary)}.anno-color-picker{width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer}.anno-slider{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--color-textSecondary)}.anno-slider input[type=range]{width:74px}.anno-slider-val{min-width:16px;text-align:right;font-variant-numeric:tabular-nums}.anno-close{padding:4px 9px;font-size:14px;line-height:1;color:var(--color-textSecondary);background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer}.anno-close:hover{color:var(--color-error, #e11d48);border-color:var(--color-error, #e11d48)}.anno-text-editor{position:absolute;z-index:30;min-width:90px;padding:2px 4px;margin:0;border:1px dashed var(--color-primary);border-radius:3px;background:color-mix(in srgb,var(--color-background) 85%,transparent);font-family:inherit;font-weight:600;line-height:1.3;resize:none;outline:none;overflow:hidden;white-space:pre;cursor:text;caret-color:currentColor}.fault-overlay-toggles{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:4px;z-index:10;align-items:flex-end}.fault-toolbar{position:absolute;top:56px;right:8px;z-index:20;display:flex;flex-direction:row;align-items:flex-start;gap:0;font-family:system-ui,-apple-system,sans-serif}.ft-collapse-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:22px;min-height:36px;padding:6px 0;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e0e0e0);border-right:none;border-radius:6px 0 0 6px;cursor:pointer;color:var(--color-textSecondary, #757575);font-size:9px;line-height:1;box-shadow:-2px 2px 6px #0000001f;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none}.ft-collapse-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.ft-collapse-icon{font-size:8px;line-height:1}.ft-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:9px;font-weight:700;letter-spacing:.05em;color:var(--color-text, #424242);margin-top:4px}.ft-panel{display:flex;flex-direction:column;gap:6px;padding:8px 8px 6px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e0e0e0);border-radius:0 6px 6px 0;box-shadow:2px 2px 10px #00000024;min-width:148px;max-width:180px}.ft-section{display:flex;flex-direction:column;gap:3px}.ft-section-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-textSecondary, #9e9e9e);padding:0 1px;-webkit-user-select:none;user-select:none}.ft-flow-legend{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.ft-flow-legend-item{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;color:var(--color-text, #1d1d1f)}.ft-flow-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}[data-theme=dark] .ft-flow-legend-item{color:var(--color-text, #e0e0e0)}.ft-segmented{display:flex;border-radius:5px;overflow:hidden;border:1px solid var(--color-border, #e0e0e0);box-shadow:0 1px 3px #00000014}.ft-btn{flex:1;padding:4px 6px;font-size:11px;font-weight:500;border:none;cursor:pointer;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #757575);white-space:nowrap;line-height:1.2;transition:background .12s,color .12s;min-width:28px;text-align:center}.ft-btn:not(:last-child){border-right:1px solid var(--color-border, #e0e0e0)}.ft-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.ft-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px;z-index:1}.ft-btn--active{background:var(--color-primary, #2196F3);color:#fff;font-weight:600}.ft-btn--active:hover{background:var(--color-primaryDark, #1976D2);color:#fff}.ft-btn--fault-type.ft-btn--active-fault{background:#d84315;color:#fff;font-weight:700}.ft-btn--fault-type.ft-btn--active-fault:hover{background:#bf360c;color:#fff}.ft-layer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px}.ft-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}.ft-card-grid .ft-layer-btn{white-space:normal;min-width:0;overflow-wrap:break-word}.ft-layer-btn{padding:3px 4px;font-size:10px;font-weight:500;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;cursor:pointer;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e);white-space:nowrap;line-height:1.2;text-align:center;transition:background .12s,color .12s}.ft-layer-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.ft-layer-btn.ft-btn--active{background:var(--color-primary, #2196F3);color:#fff;border-color:var(--color-primary, #2196F3);font-weight:600}.ft-view-row{display:flex;gap:2px}.ft-view-row .ft-btn{flex:1;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;font-size:10px}.ft-view-row--secondary{margin-top:1px}.ft-btn--cbf{background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e)}.ft-btn--active-cbf{background:#0072b2!important;color:#fff!important;border-color:#0072b2!important}.ft-btn--active-cbf:hover{background:#005a8c!important}.ft-btn--export{background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e)}.ft-btn--export:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.ft-kbd-hint{display:flex;align-items:center;gap:4px;padding:3px 4px;font-size:9px;color:var(--color-textSecondary, #9e9e9e);border-top:1px solid var(--color-border, #e0e0e0);margin-top:2px;cursor:help;-webkit-user-select:none;user-select:none}.ft-kbd-hint-icon{font-size:10px;opacity:.6}.ft-kbd-hint-keys{font-family:Consolas,Monaco,monospace;font-size:8px;font-weight:600;letter-spacing:.04em;opacity:.7}[data-theme=dark] .fault-toolbar .ft-collapse-btn,[data-theme=dark] .fault-toolbar .ft-panel{background:var(--color-surface, #1e1e1e);border-color:#ffffff1f}[data-theme=dark] .fault-toolbar .ft-collapse-btn{box-shadow:-2px 2px 6px #0006;color:var(--color-textSecondary, #757575)}[data-theme=dark] .fault-toolbar .ft-panel{box-shadow:2px 2px 10px #00000080}[data-theme=dark] .ft-section-label{color:var(--color-textSecondary, #757575)}[data-theme=dark] .ft-segmented{border-color:#ffffff1f}[data-theme=dark] .ft-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #9e9e9e)}[data-theme=dark] .ft-btn:not(:last-child){border-right-color:#ffffff1f}[data-theme=dark] .ft-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .ft-btn--active{background:var(--color-primary, #2196F3);color:#fff}[data-theme=dark] .ft-btn--fault-type.ft-btn--active-fault{background:#ff5722}[data-theme=dark] .ft-layer-btn{background:var(--color-surface, #1e1e1e);border-color:#ffffff1f;color:var(--color-textSecondary, #9e9e9e)}[data-theme=dark] .ft-layer-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .ft-layer-btn.ft-btn--active{background:var(--color-primary, #2196F3);border-color:var(--color-primary, #2196F3);color:#fff}[data-theme=dark] .ft-view-row .ft-btn{background:var(--color-surface, #1e1e1e);border-color:#ffffff1f;color:var(--color-textSecondary, #9e9e9e)}[data-theme=dark] .ft-view-row .ft-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .ft-kbd-hint{border-top-color:#ffffff14;color:var(--color-textSecondary, #757575)}.fault-toolbar--collapsed .ft-collapse-btn{border-radius:6px;border-right:1px solid var(--color-border, #e0e0e0);min-height:60px}[data-theme=dark] .fault-toolbar--collapsed .ft-collapse-btn{border-right-color:#ffffff1f}.fault-display-mode-toggle,.voltage-type-toggle{display:flex;gap:0;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #00000026;border:1px solid var(--color-border, #e0e0e0)}.fault-display-mode-btn{padding:5px 12px;font-size:11px;font-weight:500;border:none;cursor:pointer;transition:background-color .15s,color .15s;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #757575);white-space:nowrap;line-height:1.2}.fault-display-mode-btn:not(:last-child){border-right:1px solid var(--color-border, #e0e0e0)}.fault-display-mode-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.fault-display-mode-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px;z-index:1}.fault-display-mode-btn.active{background:var(--color-primary, #2196F3);color:#fff;font-weight:600}.fault-display-mode-btn.active:hover{background:var(--color-primaryDark, #1976D2);color:#fff}[data-theme=dark] .fault-display-mode-toggle,[data-theme=dark] .voltage-type-toggle{border-color:#ffffff1f;box-shadow:0 2px 8px #0006}[data-theme=dark] .fault-display-mode-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #b0b0b0)}[data-theme=dark] .fault-display-mode-btn:not(:last-child){border-right-color:#ffffff1f}[data-theme=dark] .fault-display-mode-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .fault-display-mode-btn.active{background:var(--color-primary, #2196F3);color:#fff}[data-theme=dark] .fault-display-mode-btn.active:hover{background:var(--color-primaryDark, #1976D2)}.layer-toggle-strip{display:flex;gap:0;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #00000026;border:1px solid var(--color-border, #e0e0e0);flex-wrap:wrap;max-width:320px}.layer-toggle-btn{padding:4px 8px;font-size:10px;font-weight:500;border:none;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e);white-space:nowrap;line-height:1.2;letter-spacing:.02em;position:relative}.layer-toggle-btn:not(:last-child){border-right:1px solid var(--color-border, #e0e0e0)}.layer-toggle-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.layer-toggle-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px;z-index:1}.layer-toggle-btn.active{background:var(--color-primary, #2196F3);color:#fff;font-weight:600;box-shadow:inset 0 1px 2px #00000026}.layer-toggle-btn.active:hover{background:var(--color-primaryDark, #1976D2);color:#fff}[data-theme=dark] .layer-toggle-strip{border-color:#ffffff1f;box-shadow:0 2px 8px #0006}[data-theme=dark] .layer-toggle-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #757575)}[data-theme=dark] .layer-toggle-btn:not(:last-child){border-right-color:#ffffff1f}[data-theme=dark] .layer-toggle-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .layer-toggle-btn.active{background:var(--color-primary, #2196F3);color:#fff}[data-theme=dark] .layer-toggle-btn.active:hover{background:var(--color-primaryDark, #1976D2)}.fault-summary-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:0 12px;font-size:12px;font-weight:500;color:#fff;z-index:15;gap:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 6px #00000040;transition:background-color .3s ease;-webkit-user-select:none;user-select:none}.fault-summary-bar:not(.fsb).severity-critical{background:linear-gradient(90deg,#b71c1c,#c62828)}.fault-summary-bar:not(.fsb).severity-high{background:linear-gradient(90deg,#c62828,#d32f2f)}.fault-summary-bar:not(.fsb).severity-moderate{background:linear-gradient(90deg,#e65100,#ef6c00)}.fault-summary-bar:not(.fsb).severity-low{background:linear-gradient(90deg,#f57f17,#f9a825);color:#212121}.fault-summary-bar:not(.fsb).severity-normal{background:linear-gradient(90deg,#2e7d32,#388e3c)}.fault-summary-bar-icon{font-size:14px;flex-shrink:0}.fault-summary-bar-text{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis}.fault-summary-bar-separator{opacity:.5;font-weight:300}.fault-summary-bar-metric{display:inline-flex;align-items:center;gap:3px}.fault-summary-bar-metric-label{opacity:.85;font-weight:400;font-size:11px}.fault-summary-bar-metric-value{font-weight:700;font-size:12px}.fault-summary-bar-dismiss{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;font-size:14px;padding:2px 4px;opacity:.7;transition:opacity .15s;flex-shrink:0;line-height:1}.fault-summary-bar-dismiss:hover{opacity:1}[data-theme=dark] .fault-summary-bar.severity-low{color:#fff}.fault-tooltip{position:absolute;pointer-events:none;z-index:1000;background:#212121eb;color:#fff;border-radius:6px;padding:8px 10px;font-size:11px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.5;max-width:280px;box-shadow:0 4px 12px #00000059;border:1px solid rgba(255,255,255,.1);opacity:0;transition:opacity .15s ease-in-out;white-space:pre-line}.fault-tooltip.visible{opacity:1}.fault-tooltip-header{font-weight:700;font-size:12px;margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.2)}.fault-tooltip-divider{border:none;border-top:1px solid rgba(255,255,255,.15);margin:4px 0}.fault-tooltip-row{display:flex;justify-content:space-between;gap:8px}.fault-tooltip-label{opacity:.8}.fault-tooltip-value{font-weight:600}.fault-tooltip-fault-info{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.15);color:#ff8a65;font-weight:600}[data-theme=light] .fault-tooltip,:root:not([data-theme=dark]) .fault-tooltip{background:#212121eb;color:#fff}[data-theme=dark] .fault-tooltip{background:#000000eb;border-color:#ffffff26}.severity-critical{--severity-color: #B71C1C;--severity-bg: rgba(183, 28, 28, .12)}.severity-high{--severity-color: #C62828;--severity-bg: rgba(198, 40, 40, .12)}.severity-moderate{--severity-color: #E65100;--severity-bg: rgba(230, 81, 0, .12)}.severity-low{--severity-color: #F9A825;--severity-bg: rgba(249, 168, 37, .12)}.severity-normal{--severity-color: #2E7D32;--severity-bg: rgba(46, 125, 50, .12)}[data-theme=dark] .severity-critical{--severity-color: #EF5350;--severity-bg: rgba(239, 83, 80, .15)}[data-theme=dark] .severity-high{--severity-color: #F44336;--severity-bg: rgba(244, 67, 54, .15)}[data-theme=dark] .severity-moderate{--severity-color: #FF9800;--severity-bg: rgba(255, 152, 0, .15)}[data-theme=dark] .severity-low{--severity-color: #FFEE58;--severity-bg: rgba(255, 238, 88, .15)}[data-theme=dark] .severity-normal{--severity-color: #66BB6A;--severity-bg: rgba(102, 187, 106, .15)}@keyframes flowAnimation{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes flowAnimationFast{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes flowAnimationSlow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.cbf-toggle-btn{padding:4px 8px;font-size:10px;font-weight:500;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e);white-space:nowrap;line-height:1.2;letter-spacing:.02em;box-shadow:0 2px 8px #00000026}.cbf-toggle-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.cbf-toggle-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px}.cbf-toggle-btn.active{background:#0072b2;color:#fff;font-weight:600;border-color:#0072b2;box-shadow:0 2px 8px #0072b259}.cbf-toggle-btn.active:hover{background:#005a8c;color:#fff}[data-theme=dark] .cbf-toggle-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #757575);border-color:#ffffff1f;box-shadow:0 2px 8px #0006}[data-theme=dark] .cbf-toggle-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .cbf-toggle-btn.active{background:#0072b2;color:#fff;border-color:#0072b2}[data-theme=dark] .cbf-toggle-btn.active:hover{background:#005a8c}.cbf-active .severity-critical{--severity-color: #0072B2;--severity-bg: rgba(0, 114, 178, .12)}.cbf-active .severity-high{--severity-color: #E69F00;--severity-bg: rgba(230, 159, 0, .12)}.cbf-active .severity-moderate{--severity-color: #56B4E9;--severity-bg: rgba(86, 180, 233, .12)}.cbf-active .severity-low{--severity-color: #D55E00;--severity-bg: rgba(213, 94, 0, .12)}.cbf-active .severity-normal{--severity-color: #009E73;--severity-bg: rgba(0, 158, 115, .12)}[data-theme=dark] .cbf-active .severity-critical{--severity-color: #56B4E9;--severity-bg: rgba(86, 180, 233, .15)}[data-theme=dark] .cbf-active .severity-high{--severity-color: #F0C75E;--severity-bg: rgba(240, 199, 94, .15)}[data-theme=dark] .cbf-active .severity-moderate{--severity-color: #89CFF0;--severity-bg: rgba(137, 207, 240, .15)}[data-theme=dark] .cbf-active .severity-low{--severity-color: #FF8C42;--severity-bg: rgba(255, 140, 66, .15)}[data-theme=dark] .cbf-active .severity-normal{--severity-color: #66D9A8;--severity-bg: rgba(102, 217, 168, .15)}.cbf-active .fault-summary-bar.severity-critical{background:linear-gradient(90deg,#0072b2,#0088d4)}.cbf-active .fault-summary-bar.severity-high{background:linear-gradient(90deg,#e69f00,#f0b020);color:#212121}.cbf-active .fault-summary-bar.severity-moderate{background:linear-gradient(90deg,#56b4e9,#78c8f0);color:#212121}.cbf-active .fault-summary-bar.severity-low{background:linear-gradient(90deg,#d55e00,#e87020)}.cbf-active .fault-summary-bar.severity-normal{background:linear-gradient(90deg,#009e73,#00b888)}.fault-type-switch{display:flex;gap:0;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #00000026;border:1px solid var(--color-border, #e0e0e0)}.fault-type-switch-btn{padding:4px 10px;font-size:11px;font-weight:600;border:none;cursor:pointer;transition:background-color .15s,color .15s,box-shadow .15s;background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #757575);white-space:nowrap;line-height:1.2;letter-spacing:.03em}.fault-type-switch-btn:not(:last-child){border-right:1px solid var(--color-border, #e0e0e0)}.fault-type-switch-btn:hover{background:var(--color-hover, #f5f5f5);color:var(--color-text, #212121)}.fault-type-switch-btn:focus-visible{outline:2px solid var(--color-primary, #2196F3);outline-offset:-2px;z-index:1}.fault-type-switch-btn.active{background:#d84315;color:#fff;font-weight:700;box-shadow:inset 0 1px 3px #0003}.fault-type-switch-btn.active:hover{background:#bf360c;color:#fff}[data-theme=dark] .fault-type-switch{border-color:#ffffff1f;box-shadow:0 2px 8px #0006}[data-theme=dark] .fault-type-switch-btn{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #757575)}[data-theme=dark] .fault-type-switch-btn:not(:last-child){border-right-color:#ffffff1f}[data-theme=dark] .fault-type-switch-btn:hover{background:#ffffff14;color:var(--color-text, #ffffff)}[data-theme=dark] .fault-type-switch-btn.active{background:#ff5722;color:#fff}[data-theme=dark] .fault-type-switch-btn.active:hover{background:#e64a19}.fault-pulse-overlay{pointer-events:none}.fault-pulse-ring{fill:none;stroke:#d32f2f;stroke-width:2;opacity:0}.fault-pulse-ring-1{animation:faultPulse 2.4s ease-out infinite}.fault-pulse-ring-2{animation:faultPulse 2.4s ease-out .8s infinite}.fault-pulse-ring-3{animation:faultPulse 2.4s ease-out 1.6s infinite}@keyframes faultPulse{0%{r:10;stroke-width:3;opacity:.7;stroke:#d32f2f}to{r:45;stroke-width:.5;opacity:0;stroke:#ff5722}}.keyboard-shortcut-hint{display:flex;align-items:center;gap:4px;padding:3px 8px;font-size:10px;color:var(--color-textSecondary, #9e9e9e);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e0e0e0);border-radius:6px;box-shadow:0 1px 4px #0000001a;cursor:help;-webkit-user-select:none;user-select:none;white-space:nowrap;line-height:1.2}.keyboard-shortcut-hint-keys{font-family:Consolas,Monaco,Courier New,monospace;font-size:9px;font-weight:600;letter-spacing:.05em;color:var(--color-text, #424242);opacity:.7}[data-theme=dark] .keyboard-shortcut-hint{background:var(--color-surface, #1e1e1e);border-color:#ffffff1f;color:var(--color-textSecondary, #757575);box-shadow:0 1px 4px #0000004d}[data-theme=dark] .keyboard-shortcut-hint-keys{color:var(--color-text, #e0e0e0)}.ft-layer-btn--disabled{opacity:.35;cursor:not-allowed}.ft-layer-btn--disabled:hover{background:var(--color-surface, #ffffff);color:var(--color-textSecondary, #9e9e9e)}[data-theme=dark] .ft-layer-btn--disabled:hover{background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #757575)}.fault-summary-bar.fsb{height:auto;min-height:48px;flex-direction:column;align-items:stretch;padding:0;gap:0;background:var(--fsb-bg, #1a1a2e);color:var(--fsb-text, #f0f0f0);font-family:system-ui,-apple-system,sans-serif}:root:not([data-theme=dark]) .fault-summary-bar.fsb{--fsb-bg: #263238;--fsb-text: #eceff1;--fsb-secondary-text: rgba(236,239,241,.75);--fsb-sep: rgba(236,239,241,.3)}[data-theme=dark] .fault-summary-bar.fsb{--fsb-bg: #0d1117;--fsb-text: #e6edf3;--fsb-secondary-text: rgba(230,237,243,.65);--fsb-sep: rgba(230,237,243,.2)}.fsb-row{display:flex;align-items:center;gap:8px;padding:0 10px;white-space:nowrap;overflow:hidden}.fsb-row--primary{height:28px;font-size:12px;font-weight:500;border-bottom:1px solid var(--fsb-sep, rgba(255,255,255,.15));flex-wrap:nowrap}.fsb-row--primary .fsb-metric{flex-shrink:0}.fsb-row--primary .fsb-pill{margin-left:auto;flex-shrink:0}.fsb-row--secondary{height:20px;font-size:10px;color:var(--fsb-secondary-text, rgba(255,255,255,.7))}.fsb-fault-icon{font-size:13px;flex-shrink:0}.fsb-fault-type{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--fsb-text, #f0f0f0);flex-shrink:0}.fsb-sep{opacity:.4;font-weight:300;flex-shrink:0}.fsb-sep-sm{opacity:.35;font-weight:300;flex-shrink:0}.fsb-bus-link{background:none;border:none;color:#90caf9;cursor:pointer;font-size:inherit;font-weight:600;padding:0;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:color .12s;flex-shrink:0}.fsb-bus-link:hover{color:#bbdefb}.fsb-bus-link:disabled{cursor:default;text-decoration:none;color:var(--fsb-text, #f0f0f0)}.fsb-bus-link--sm{font-size:10px;font-weight:400;color:#90caf9cc}.fsb-bus-link--sm:hover{color:#90caf9}.fsb-metric{display:inline-flex;align-items:baseline;gap:3px;flex-shrink:0}.fsb-metric--sm{gap:2px}.fsb-metric-label{font-size:10px;font-weight:400;opacity:.8}.fsb-metric-value{font-size:12px;font-weight:700}.fsb-metric-value--sm{font-size:10px;font-weight:600}.fsb-pill{margin-left:auto;padding:2px 8px;border-radius:10px;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;line-height:1.4}.fsb-pill--critical{background:#b71c1c;color:#fff}.fsb-pill--high{background:#c62828;color:#fff}.fsb-pill--moderate{background:#e65100;color:#fff}.fsb-pill--low{background:#f9a825;color:#212121}.fsb-pill--normal{background:#2e7d32;color:#fff}[data-theme=dark] .fsb-pill--critical{background:#ef5350}[data-theme=dark] .fsb-pill--high{background:#f44336}[data-theme=dark] .fsb-pill--moderate{background:#ff9800;color:#212121}[data-theme=dark] .fsb-pill--low{background:#ffee58;color:#212121}[data-theme=dark] .fsb-pill--normal{background:#66bb6a;color:#212121}.cbf-active .fsb-pill--critical{background:#0072b2}.cbf-active .fsb-pill--high{background:#e69f00;color:#212121}.cbf-active .fsb-pill--moderate{background:#56b4e9;color:#212121}.cbf-active .fsb-pill--low{background:#d55e00}.cbf-active .fsb-pill--normal{background:#009e73}.fsb-dismiss{background:none;border:none;color:var(--fsb-text, #f0f0f0);cursor:pointer;font-size:13px;padding:2px 4px;opacity:.55;transition:opacity .12s;flex-shrink:0;line-height:1;margin-left:4px}.fsb-dismiss:hover{opacity:1}.fsb.fsb--critical{border-left:3px solid #B71C1C}.fsb.fsb--high{border-left:3px solid #C62828}.fsb.fsb--moderate{border-left:3px solid #E65100}.fsb.fsb--low{border-left:3px solid #F9A825}.fsb.fsb--normal{border-left:3px solid #2E7D32}[data-theme=dark] .fsb.fsb--critical{border-left-color:#ef5350}[data-theme=dark] .fsb.fsb--high{border-left-color:#f44336}[data-theme=dark] .fsb.fsb--moderate{border-left-color:#ff9800}[data-theme=dark] .fsb.fsb--low{border-left-color:#ffee58}[data-theme=dark] .fsb.fsb--normal{border-left-color:#66bb6a}.cbf-active .fsb.fsb--critical{border-left-color:#0072b2}.cbf-active .fsb.fsb--high{border-left-color:#e69f00}.cbf-active .fsb.fsb--moderate{border-left-color:#56b4e9}.cbf-active .fsb.fsb--low{border-left-color:#d55e00}.cbf-active .fsb.fsb--normal{border-left-color:#009e73}.relay-properties-panel,.ct-properties-panel,.pt-properties-panel{font-size:13px;color:#1f2937}.relay-properties-panel input,.relay-properties-panel select,.relay-properties-panel textarea,.ct-properties-panel input,.ct-properties-panel select,.pt-properties-panel input,.pt-properties-panel select{background:#fff;color:#1f2937}.block{display:block}.flex{display:flex}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-2{grid-column:span 2 / span 2}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.ml-auto{margin-left:auto}.w-full{width:100%}.w-1\/3{width:33.333333%}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-x-3{column-gap:.75rem}.gap-y-0\.5{row-gap:.125rem}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-y-0>*+*{margin-top:0}.space-y-0\.5>*+*{margin-top:.125rem}.space-y-1>*+*{margin-top:.25rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pr-2{padding-right:.5rem}.pr-10{padding-right:2.5rem}.pl-3{padding-left:.75rem}.pb-0\.5{padding-bottom:.125rem}.pb-2{padding-bottom:.5rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.text-\[10px\]{font-size:10px;line-height:14px}.text-xs{font-size:.75rem;line-height:1rem}.text-sm,.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-wide{letter-spacing:.025em}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.resize-none{resize:none}.text-white{color:#fff}.text-gray-400{color:#9ca3af}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}.text-gray-800{color:#1f2937}.text-red-600{color:#dc2626}.text-red-700{color:#b91c1c}.text-amber-600{color:#d97706}.text-amber-700{color:#b45309}.text-blue-600{color:#2563eb}.text-blue-700{color:#1d4ed8}.text-indigo-600{color:#4f46e5}.text-indigo-700{color:#4338ca}.text-purple-700{color:#7e22ce}.text-orange-700{color:#c2410c}.bg-white{background-color:#fff}.bg-gray-50{background-color:#f9fafb}.bg-red-50{background-color:#fef2f2}.bg-blue-50{background-color:#eff6ff}.bg-amber-50{background-color:#fffbeb}.border{border:1px solid #e5e7eb}.border-t{border-top:1px solid #e5e7eb}.border-b{border-bottom:1px solid #e5e7eb}.border-gray-100{border-color:#f3f4f6}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d1d5db}.border-red-200{border-color:#fecaca}.border-red-300{border-color:#fca5a5}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.last\:border-0:last-child{border:0}.shadow-sm{box-shadow:0 1px 2px #0000000d}.transition-colors{transition:background-color .15s,border-color .15s,color .15s}.relay-properties-panel input[type=text],.relay-properties-panel input[type=number],.relay-properties-panel select,.relay-properties-panel textarea,.ct-properties-panel input,.ct-properties-panel select,.pt-properties-panel input,.pt-properties-panel select{border:1px solid #d1d5db;border-radius:.375rem;padding:.375rem .5rem}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-indigo-500:focus{box-shadow:0 0 0 2px #6366f180}.focus\:border-indigo-500:focus{border-color:#6366f1}.hover\:bg-gray-50:hover{background-color:#f9fafb}.hover\:bg-gray-100:hover{background-color:#f3f4f6}.hover\:bg-blue-100:hover{background-color:#dbeafe}.hover\:bg-red-100:hover{background-color:#fee2e2}.hover\:bg-red-700:hover{background-color:#b91c1c}.hover\:text-gray-600:hover{color:#4b5563}.hover\:text-red-500:hover{color:#ef4444}.hover\:underline:hover{text-decoration:underline}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.element-properties{padding:20px;background:var(--color-surface);border-radius:8px;height:100%;overflow-y:auto}.element-properties h3{margin-top:0;margin-bottom:20px;color:var(--color-text);border-bottom:2px solid var(--color-primary);padding-bottom:10px}.no-selection{color:var(--color-textSecondary);text-align:center;padding:40px 20px;font-style:italic}.property-form{display:flex;flex-direction:column;gap:15px}.element-properties .form-group{display:flex;flex-direction:column;gap:5px}.element-properties .form-group label{font-weight:600;color:var(--color-textSecondary);font-size:14px}.element-properties .form-group input,.element-properties .form-group select{padding:8px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;transition:border-color .2s;background:var(--color-surface);color:var(--color-text)}.element-properties .form-group input.input-error,.element-properties .form-group select.input-error{border-color:var(--color-error)}.element-properties .field-error{color:var(--color-error);font-size:12px;line-height:1.2}.element-properties .form-error{color:var(--color-error);background:color-mix(in srgb,var(--color-error) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 35%,transparent);padding:10px 12px;border-radius:6px;font-size:13px}.element-properties .form-group input:disabled{background:var(--color-background);color:var(--color-textSecondary);cursor:not-allowed}.element-properties .form-group input:focus,.element-properties .form-group select:focus{outline:none;border-color:var(--color-primary)}.button-group{display:flex;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid var(--color-borderLight)}.element-properties .btn-primary,.element-properties .btn-danger{flex:1;padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.element-properties .btn-primary{background:var(--color-primary);color:#fff}.element-properties .btn-primary:hover{opacity:.9}.element-properties .btn-danger{background:var(--color-error);color:#fff}.element-properties .btn-danger:hover{opacity:.9}.element-properties h4{color:var(--color-text);margin-top:1rem;margin-bottom:.5rem}.fault-data-section{margin-top:20px;padding-top:16px;border-top:2px solid var(--color-primary);border-left:3px solid var(--color-primary);padding-left:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 6%,var(--color-surface)),var(--color-surface));border-radius:0 6px 6px 0}.fault-data-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.fault-data-icon{font-size:16px}.fault-data-title{font-weight:700;font-size:14px;color:var(--color-text);flex:1}.fault-type-tag{padding:2px 8px;border-radius:10px;background:var(--color-primary);color:#fff;font-size:10px;font-weight:600;letter-spacing:.3px;white-space:nowrap}.fault-data-alert{background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);border-radius:4px;padding:6px 10px;font-size:12px;font-weight:600;color:#e74c3c;margin-bottom:10px}.fault-data-group{margin-bottom:10px}.fault-data-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:4px;padding-bottom:2px;border-bottom:1px solid var(--color-borderLight)}.fault-inspect-table{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:4px}.fault-inspect-table th{text-align:right;padding:3px 6px;font-size:10px;font-weight:600;color:var(--color-textSecondary);border-bottom:1px solid var(--color-borderLight)}.fault-inspect-table th:first-child{text-align:left}.fault-inspect-table td{padding:3px 6px;border-bottom:1px solid color-mix(in srgb,var(--color-borderLight) 50%,transparent)}.fault-inspect-table tbody tr:last-child td{border-bottom:none}.fault-inspect-table .fi-label{font-weight:500;color:var(--color-textSecondary);font-size:10px;white-space:nowrap}.fault-inspect-table .fi-value{text-align:right;font-family:Courier New,monospace;color:var(--color-text);font-size:11px}.fault-inspect-table .fi-fault-current{color:#e74c3c;font-weight:700}.fault-inspect-table .phase-a-col{color:#e74c3c!important}.fault-inspect-table .phase-b-col{color:#f1c40f!important}.fault-inspect-table .phase-c-col{color:#3498db!important}.fault-data-kv-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;font-size:12px}.fi-label-inline{color:var(--color-textSecondary);font-size:11px}.fi-value-inline{font-family:Courier New,monospace;color:var(--color-text);font-size:11px;font-weight:500}.fi-value-inline.fi-fault-current{color:#e74c3c;font-weight:700}.fi-severe{color:#e74c3c!important;font-weight:700!important}.fi-moderate{color:#f39c12!important;font-weight:600!important}.fi-mild{color:#2ecc71!important}.fault-data-direction{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}.fi-from-bus,.fi-to-bus{font-weight:600;color:var(--color-text);padding:2px 6px;background:var(--color-surfaceHover);border-radius:3px;font-size:11px}.fi-arrow{color:var(--color-primary);font-weight:700;font-size:14px}.fault-data-no-data{font-size:11px;color:var(--color-textSecondary);font-style:italic;padding:4px 0}.element-help{margin-top:14px;border:1px solid var(--color-border, #d8dde6);border-radius:6px;background:var(--color-surfaceAlt, #f6f8fb);padding:6px 10px}.element-help>summary{cursor:pointer;font-weight:600;font-size:12px;color:var(--color-text, #1d2330);list-style:revert}.element-help-summary{margin:8px 0 6px;font-size:12px;line-height:1.45;color:var(--color-text, #1d2330)}.element-help-details{margin:0;display:grid;grid-template-columns:max-content 1fr;column-gap:8px;row-gap:4px}.element-help-details dt{font-weight:600;font-size:11px;color:var(--color-accent, #2563eb);white-space:nowrap}.element-help-details dd{margin:0;font-size:11px;line-height:1.4;color:var(--color-textSecondary, #5b6676)}.element-help-guide-link{margin-top:8px;padding:0;background:none;border:none;cursor:pointer;font-size:11px;font-weight:600;color:var(--color-accent, #2563eb)}.element-help-guide-link:hover{text-decoration:underline}.auto-apply-hint{margin:8px 0 4px;font-size:11px;font-style:italic;color:var(--color-textSecondary, #5b6676);opacity:.8}.relay-settings{padding:20px;background:var(--color-surface);border-radius:8px;height:100%;overflow-y:auto}.relay-settings h3{margin-top:0;margin-bottom:20px;color:var(--color-text);border-bottom:2px solid var(--color-primary);padding-bottom:10px}.add-relay-section{margin-bottom:30px;padding:15px;background:var(--color-background);border-radius:4px}.add-relay-section h4{margin-top:0;margin-bottom:15px;color:var(--color-textSecondary);font-size:14px}.add-relay-form{display:flex;gap:10px}.add-relay-form input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;background:var(--color-surface);color:var(--color-text)}.add-relay-form input:focus{outline:none;border-color:var(--color-primary)}.relay-list h4{margin-bottom:15px;color:var(--color-textSecondary);font-size:14px}.no-relays{color:var(--color-textSecondary);text-align:center;padding:20px;font-style:italic}.relay-card{margin-bottom:15px;padding:15px;border:2px solid var(--color-border);border-radius:4px;cursor:pointer;transition:all .2s;background:var(--color-surface)}.relay-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px var(--color-shadow)}.relay-card.selected{border-color:var(--color-primary);background:var(--color-surfaceHover)}.relay-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.relay-header h5{margin:0;color:var(--color-text);font-size:16px}.btn-delete{width:24px;height:24px;padding:0;background:var(--color-error);color:#fff;border:none;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;transition:background .2s}.btn-delete:hover{opacity:.9}.relay-info{margin-bottom:15px;padding:8px;background:var(--color-background);border-radius:4px;font-size:13px;color:var(--color-textSecondary)}.protection-functions{display:flex;flex-direction:column;gap:10px}.function-config{display:flex;flex-direction:column;gap:5px;padding:10px;background:var(--color-background);border-left:3px solid var(--color-success);border-radius:4px}.function-config strong{font-size:12px;color:var(--color-textSecondary);margin-bottom:5px}.function-config input{padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-surface);color:var(--color-text)}.function-config input:focus{outline:none;border-color:var(--color-primary)}.btn-enable{padding:8px 12px;background:var(--color-success);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s}.btn-enable:hover{opacity:.9}.relay-settings .btn-primary{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.relay-settings .btn-primary:hover{opacity:.9}.validation-report-section{margin-top:16px;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.validation-report-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-background);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.validation-report-header:hover{background:var(--color-surfaceHover)}.validation-header-left{display:flex;align-items:center;gap:10px}.validation-header-left h5{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-textSecondary)}.validation-toggle-icon{font-size:12px;color:var(--color-textSecondary);transition:transform .2s}.validation-toggle-icon.expanded{transform:rotate(90deg)}.validation-verdict-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;letter-spacing:.3px}.validation-verdict-badge.pass{background:#4caf5026;color:var(--color-success);border:1px solid rgba(76,175,80,.3)}.validation-verdict-badge.warning{background:#ff980026;color:var(--color-warning);border:1px solid rgba(255,152,0,.3)}.validation-verdict-badge.fail{background:#f4433626;color:var(--color-error);border:1px solid rgba(244,67,54,.3)}.validation-verdict-inline{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;margin-left:8px;vertical-align:middle}.validation-verdict-inline.pass{background:#4caf5026;color:var(--color-success)}.validation-verdict-inline.warning{background:#ff980026;color:var(--color-warning)}.validation-verdict-inline.fail{background:#f4433626;color:var(--color-error)}.validation-summary-stats{font-size:12px;color:var(--color-textSecondary)}.validation-header-right{display:flex;align-items:center;gap:10px}.validation-report-body{padding:10px 14px;background:var(--color-surface)}.validation-timing{font-size:11px;color:var(--color-textSecondary);margin-bottom:10px;text-align:right}.validation-check-list{display:flex;flex-direction:column;gap:4px}.validation-check-item{border:1px solid var(--color-borderLight);border-radius:4px;overflow:hidden;transition:border-color .15s}.validation-check-item:hover{border-color:var(--color-border)}.validation-check-item.status-pass{border-left:3px solid var(--color-success)}.validation-check-item.status-warning{border-left:3px solid var(--color-warning)}.validation-check-item.status-fail{border-left:3px solid var(--color-error)}.validation-check-item.status-skipped{border-left:3px solid var(--color-textSecondary);opacity:.7}.validation-check-header{display:flex;align-items:center;padding:6px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px;font-size:13px;background:var(--color-background);transition:background .15s}.validation-check-header:hover{background:var(--color-surfaceHover)}.validation-check-icon{flex-shrink:0;font-size:14px}.validation-check-name{flex:1;font-weight:500;color:var(--color-text)}.validation-check-category{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-textSecondary);background:var(--color-surfaceHover);padding:1px 6px;border-radius:3px}.validation-check-error{font-family:Courier New,monospace;font-size:11px;color:var(--color-textSecondary);white-space:nowrap}.validation-check-expand{font-size:10px;color:var(--color-textSecondary);transition:transform .2s}.validation-check-expand.expanded{transform:rotate(90deg)}.validation-check-details{padding:8px 10px 8px 32px;background:var(--color-surface);border-top:1px solid var(--color-borderLight)}.validation-check-message{font-size:12px;color:var(--color-textSecondary);margin-bottom:6px;font-style:italic}.validation-check-meta{display:flex;gap:16px;font-size:11px;color:var(--color-textSecondary);margin-bottom:6px}.validation-check-meta span{font-family:Courier New,monospace}.validation-detail-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:6px}.validation-detail-table th{text-align:left;padding:3px 8px;color:var(--color-textSecondary);font-weight:600;border-bottom:1px solid var(--color-border);font-size:10px;text-transform:uppercase;letter-spacing:.3px}.validation-detail-table td{padding:3px 8px;color:var(--color-text);border-bottom:1px solid var(--color-borderLight);font-family:Courier New,monospace}.validation-detail-table tr:last-child td{border-bottom:none}.validation-detail-table .detail-pass{color:var(--color-success)}.validation-detail-table .detail-fail{color:var(--color-error)}.validation-check-severity{font-size:10px;font-weight:600;padding:1px 5px;border-radius:3px;white-space:nowrap;flex-shrink:0}.validation-check-severity.sev-fail{background:#f443361f;color:var(--color-error)}.validation-check-severity.sev-warn{background:#ff98001f;color:var(--color-warning)}.validation-check-severity.sev-info{background:#2196f31f;color:#2196f3}.validation-check-layer{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);background:var(--color-surfaceHover);padding:1px 5px;border-radius:3px;border:1px solid var(--color-borderLight);white-space:nowrap;flex-shrink:0}.validation-check-hint{font-size:11px;color:#2196f3;background:#2196f30f;border-left:2px solid #2196f3;padding:4px 8px;margin-bottom:6px;border-radius:0 3px 3px 0}.wizard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;background:#0009;animation:wizardFadeIn .25s ease}@keyframes wizardFadeIn{0%{opacity:0}to{opacity:1}}.wizard-spotlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px #0000008c;z-index:10001;pointer-events:none;transition:all .35s cubic-bezier(.4,0,.2,1);border:2px solid var(--color-primary, #58a6ff);animation:wizardSpotlightPulse 2s ease-in-out infinite}@keyframes wizardSpotlightPulse{0%,to{border-color:var(--color-primary, #58a6ff)}50%{border-color:#58a6ff66}}.wizard-tooltip{z-index:10002;background:var(--color-surface, #1e1e1e);border:1px solid var(--color-border, #444);border-radius:12px;box-shadow:0 8px 32px #0006,0 2px 8px #0003;width:380px;max-width:calc(100vw - 32px);animation:wizardTooltipIn .3s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes wizardTooltipIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.wizard-tooltip[style*="top:"][style*="left:"]{animation:wizardTooltipSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes wizardTooltipSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-tooltip-header{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--color-borderLight, #333);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary, #58a6ff) 10%,var(--color-surface, #1e1e1e)),var(--color-surface, #1e1e1e))}.wizard-step-icon{font-size:22px;line-height:1}.wizard-step-title{flex:1;font-size:15px;font-weight:700;color:var(--color-text, #e0e0e0)}.wizard-close-btn{padding:2px 6px;border:1px solid var(--color-border, #444);border-radius:4px;background:transparent;color:var(--color-textSecondary, #888);font-size:14px;cursor:pointer;transition:all .15s;line-height:1}.wizard-close-btn:hover{background:var(--color-error, #e74c3c);color:#fff;border-color:var(--color-error, #e74c3c)}.wizard-tooltip-body{padding:12px 16px;color:var(--color-text, #ccc);font-size:13px;line-height:1.6}.wizard-tooltip-body p{margin:0 0 6px}.wizard-tooltip-body p:last-child{margin-bottom:0}.wizard-tooltip-body .wizard-bullet{padding-left:4px;margin:2px 0;font-size:12.5px}.wizard-progress{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:1px solid var(--color-borderLight, #333);background:var(--color-background, #161616)}.wizard-step-counter{font-size:11px;color:var(--color-textSecondary, #888);font-weight:500}.wizard-dots{display:flex;gap:6px}.wizard-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border, #444);cursor:pointer;transition:all .2s}.wizard-dot:hover{background:var(--color-textSecondary, #888);transform:scale(1.2)}.wizard-dot.active{background:var(--color-primary, #58a6ff);transform:scale(1.3);box-shadow:0 0 6px #58a6ff66}.wizard-dot.completed{background:var(--color-success, #2ecc71)}.wizard-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 14px;gap:8px}.wizard-dont-show{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-textSecondary, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.wizard-dont-show input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--color-primary, #58a6ff)}.wizard-nav-buttons{display:flex;gap:6px}.wizard-btn{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent}.wizard-btn-primary{background:var(--color-primary, #58a6ff);color:#fff;border-color:var(--color-primary, #58a6ff)}.wizard-btn-primary:hover{filter:brightness(1.1);box-shadow:0 2px 8px #58a6ff4d}.wizard-btn-secondary{background:var(--color-surface, #1e1e1e);color:var(--color-text, #ccc);border-color:var(--color-border, #444)}.wizard-btn-secondary:hover{background:var(--color-surfaceHover, #2a2a2a)}.wizard-btn-skip{background:transparent;color:var(--color-textSecondary, #888);border-color:transparent}.wizard-btn-skip:hover{color:var(--color-text, #ccc);background:var(--color-surfaceHover, #2a2a2a)}@media(max-width:480px){.wizard-tooltip{width:calc(100vw - 24px)}.wizard-nav{flex-direction:column;gap:10px}.wizard-dont-show{order:2}.wizard-nav-buttons{order:1;width:100%;justify-content:flex-end}}.backend-settings{padding:10px 12px;border:1px solid var(--border-color, #444);border-radius:6px;margin-bottom:12px;background:var(--surface-color, #2a2a2a);font-size:13px}.backend-settings__header{margin-bottom:8px}.backend-settings__title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #aaa)}.backend-settings__toggle-row{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.backend-settings__segmented{display:flex;border:1px solid var(--border-color, #555);border-radius:6px;overflow:hidden}.backend-settings__seg{flex:1;padding:6px 10px;background:var(--input-bg, #1a1a1a);border:none;color:var(--text-secondary, #aaa);font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.backend-settings__seg+.backend-settings__seg{border-left:1px solid var(--border-color, #555)}.backend-settings__seg:hover:not(.is-active){background:var(--button-hover, #333);color:var(--text-primary, #e0e0e0)}.backend-settings__seg.is-active{background:var(--accent-color, #4dabf7);color:#fff;font-weight:600}.backend-settings__checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--accent-color, #4dabf7)}.backend-settings__toggle-label{color:var(--text-primary, #e0e0e0);font-size:13px}.backend-settings__url-section{margin-top:10px;display:flex;flex-direction:column;gap:5px}.backend-settings__url-label{font-size:11px;color:var(--text-secondary, #aaa);text-transform:uppercase;letter-spacing:.3px}.backend-settings__url-row{display:flex;gap:6px}.backend-settings__url-input{flex:1;padding:5px 8px;background:var(--input-bg, #1a1a1a);border:1px solid var(--border-color, #555);border-radius:4px;color:var(--text-primary, #e0e0e0);font-size:12px;font-family:monospace}.backend-settings__url-input:focus{outline:none;border-color:var(--accent-color, #4dabf7)}.backend-settings__test-btn{padding:5px 10px;background:var(--button-bg, #3a3a3a);border:1px solid var(--border-color, #555);border-radius:4px;color:var(--text-primary, #e0e0e0);font-size:12px;cursor:pointer;white-space:nowrap}.backend-settings__test-btn:hover:not(:disabled){background:var(--button-hover, #4a4a4a)}.backend-settings__test-btn:disabled{opacity:.6;cursor:not-allowed}.backend-settings__status{font-size:12px;font-weight:500}.backend-settings__hint{font-size:11px;color:var(--text-secondary, #888);line-height:1.5;margin-top:4px}.backend-settings__hint code{background:var(--code-bg, #1a1a1a);padding:2px 5px;border-radius:3px;font-family:monospace;color:var(--accent-color, #4dabf7);word-break:break-all}.fault-analysis-panel{padding:16px;background:var(--color-surface);border-radius:8px;box-shadow:0 2px 4px var(--color-shadow);height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.fault-analysis-panel::-webkit-scrollbar{width:6px}.fault-analysis-panel::-webkit-scrollbar-track{background:transparent}.fault-analysis-panel::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.fault-analysis-panel::-webkit-scrollbar-thumb:hover{background:var(--color-textSecondary)}.fault-analysis-panel h3{margin:0 0 16px;color:var(--color-text);border-bottom:2px solid var(--color-primary);padding-bottom:8px;font-size:16px}.fault-error-banner{margin:0 0 12px;padding:10px 12px;border-radius:6px;border:1px solid rgba(231,76,60,.4);background:#e74c3c26;color:var(--color-error, #e74c3c);font-size:13px;line-height:1.3}.fault-config{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.fault-config .form-group{display:flex;flex-direction:column;gap:4px}.fault-config .form-row{display:flex;gap:10px}.fault-config .form-group-half{flex:1;min-width:0}.fault-config .form-group label{font-weight:600;color:var(--color-textSecondary);font-size:12px;text-transform:uppercase;letter-spacing:.3px}.fault-config .form-group select,.fault-config .form-group input{padding:7px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;transition:border-color .2s;background:var(--color-surface);color:var(--color-text)}.fault-config .form-group select:focus,.fault-config .form-group input:focus{outline:none;border-color:var(--color-primary)}.fault-analysis-panel .btn-primary{padding:9px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s}.fault-analysis-panel .btn-primary:hover{opacity:.9}.fault-analysis-panel .btn-primary:disabled{opacity:.5;cursor:not-allowed}.fault-results{margin-top:16px;padding-top:0}.fault-executive-banner{background:var(--color-surfaceHover);border-radius:8px;padding:16px;margin-bottom:16px;border:1px solid var(--color-border);box-shadow:0 2px 8px #0000001a}.banner-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.banner-identity{display:flex;align-items:center;gap:10px}.fault-type-badge{display:inline-block;padding:4px 12px;border-radius:16px;color:#fff;font-weight:700;font-size:14px;letter-spacing:.5px;box-shadow:0 2px 4px #0003}.fault-bus-label{font-size:18px;font-weight:700;color:var(--color-text)}.fault-panel__backend-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#4caf5026;border:1px solid rgba(76,175,80,.4);border-radius:12px;font-size:11px;font-weight:600;color:#4caf50;letter-spacing:.3px;vertical-align:middle}.banner-health{flex:1;display:flex;justify-content:flex-start;padding-left:16px}.banner-main-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;background:var(--color-background);padding:16px;border-radius:6px;border:1px solid var(--color-borderLight);flex-wrap:wrap;gap:16px}.banner-primary-metric{display:flex;flex-direction:column;gap:4px}.metric-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-textSecondary);font-weight:600}.metric-value{display:flex;align-items:baseline;gap:8px}.fault-current-big{font-size:32px;font-weight:800;color:var(--color-error);font-family:Courier New,monospace;line-height:1}.fault-current-angle{font-size:18px;color:var(--color-textSecondary);font-family:Courier New,monospace;font-weight:600}.metric-sub{font-size:14px;color:var(--color-textSecondary);font-family:Courier New,monospace}.banner-system-context{display:flex;gap:24px;flex-wrap:wrap}.context-item{display:flex;flex-direction:column;gap:4px}.context-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-textSecondary)}.context-value{font-size:16px;font-weight:600;color:var(--color-text);font-family:Courier New,monospace}.banner-interpretation{margin-top:12px}.fault-point-analysis{margin-bottom:20px}.section-title{font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-borderLight)}.two-column-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:900px){.two-column-layout{grid-template-columns:1fr}}.column-left,.column-right{display:flex;flex-direction:column;gap:16px}.data-card{background:var(--color-surfaceHover);border-radius:8px;padding:16px;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000d}.card-title{font-size:14px;font-weight:600;color:var(--color-text);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.phasor-diagrams-container{display:flex;flex-direction:column;gap:20px}.phasor-diagram-wrapper{background:var(--color-background);padding:12px;border-radius:6px;border:1px solid var(--color-borderLight)}.phasor-title{font-size:12px;font-weight:600;color:var(--color-textSecondary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.system-wide-impact{margin-bottom:20px}.impact-tabs{display:flex;gap:8px;margin-bottom:12px;border-bottom:2px solid var(--color-borderLight);padding-bottom:8px;overflow-x:auto}.impact-tab{padding:8px 16px;background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:6px;color:var(--color-textSecondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.impact-tab:hover{background:var(--color-surface);color:var(--color-text)}.impact-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.impact-tab-content{background:var(--color-surfaceHover);border-radius:8px;padding:16px;border:1px solid var(--color-border);min-height:200px}.tab-pane{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.empty-state{display:flex;align-items:center;justify-content:center;height:100px;color:var(--color-textSecondary);font-style:italic;font-size:13px}.supplementary-analysis{margin-top:24px}.export-buttons{display:flex;gap:6px}.btn-export{padding:3px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-textSecondary);font-size:11px;cursor:pointer;transition:all .15s}.btn-export:hover{background:var(--color-surfaceHover);color:var(--color-text);border-color:var(--color-primary)}.collapsible-section{margin-bottom:6px;border:1px solid var(--color-borderLight);border-radius:6px;overflow:hidden}.collapsible-header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:var(--color-background);color:var(--color-text);cursor:pointer;font-size:13px;font-weight:600;text-align:left;transition:background .15s}.collapsible-header:hover{background:var(--color-surfaceHover)}.collapsible-chevron{font-size:10px;color:var(--color-textSecondary);width:14px;text-align:center;flex-shrink:0;transition:transform .25s ease}.collapsible-title{flex:1;text-transform:uppercase;letter-spacing:.4px;font-size:11px}.collapsible-badge{padding:1px 7px;border-radius:10px;background:var(--color-primary);color:#fff;font-size:10px;font-weight:600}.collapsible-body{overflow:hidden;transition:max-height .3s ease}.collapsible-content{padding:10px 12px}.fault-data-table{width:100%;border-collapse:collapse;font-size:12px}.fault-data-table th{text-align:left;padding:5px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--color-textSecondary);border-bottom:1px solid var(--color-border);white-space:nowrap;position:sticky;top:0;z-index:1;background:var(--color-surfaceHover)}.fault-data-table td{padding:5px 8px;border-bottom:1px solid var(--color-borderLight)}.fault-data-table tbody tr:nth-child(2n){background:var(--color-surfaceHover)}.fault-data-table tbody tr:last-child td{border-bottom:none}.fault-data-table .label-cell{font-weight:500;color:var(--color-textSecondary);white-space:nowrap}.fault-data-table .value-cell{text-align:right;color:var(--color-text)}.fault-data-table .value-cell.mono,.mono{font-family:Courier New,monospace}.btn-icon-small{background:none;border:none;color:var(--color-textSecondary);cursor:pointer;font-size:10px;padding:2px 4px;margin-right:4px;border-radius:3px;transition:background .15s,color .15s}.btn-icon-small:hover{background:var(--color-surfaceHover);color:var(--color-text)}.phasor-expansion-row{background:var(--color-surfaceHover)}.phasor-expansion-row td{padding:12px!important;border-bottom:1px solid var(--color-borderLight)!important}.branch-ka-row td{padding-top:2px!important;border-bottom:1px solid var(--color-borderLight)!important;color:var(--color-textSecondary);font-size:11px}.phase-table th{text-align:right}.phase-table th:first-child{text-align:left}.phase-a-header{color:#e74c3c!important}.phase-b-header{color:#f1c40f!important}.phase-c-header{color:#3498db!important}.highlight-row{background:var(--color-surfaceHover)!important}.highlight-row td{padding-top:8px;padding-bottom:8px}.fault-bus-row{background:#e74c3c14!important}.fault-bus-row td:first-child{font-weight:700;color:var(--color-error)}.fault-current-value{color:var(--color-error);font-weight:700}.fault-current-value-large{color:var(--color-error);font-weight:700;font-size:1.15em}.fault-current-value-small{color:var(--color-textSecondary);font-size:.85em}.fault-pu-value{color:var(--color-textSecondary);font-size:.85em;font-family:Courier New,monospace}.voltage-good{color:var(--color-success);font-weight:700}.voltage-warning{color:var(--color-warning);font-weight:700}.voltage-danger{color:var(--color-error);font-weight:700}.voltage-type-row{display:flex;align-items:center;gap:4px;margin-bottom:8px}.voltage-type-label-text{font-size:11px;color:var(--color-textSecondary);margin-right:4px}.voltage-type-btn{padding:1px 6px;font-size:11px;font-weight:600;border:1px solid var(--color-border, #444);border-radius:3px;background:var(--color-surface, #1e1e1e);color:var(--color-textSecondary, #aaa);cursor:pointer;transition:background .15s,color .15s,border-color .15s;line-height:1.4}.voltage-type-btn:hover{background:var(--color-surfaceHover, #333);color:var(--color-text, #fff)}.voltage-type-btn.active{background:var(--color-primary, #58a6ff);color:#fff;border-color:var(--color-primary, #58a6ff)}.voltage-sag-description{font-size:11px;color:var(--color-textSecondary);margin:0 0 8px;font-style:italic}.voltage-sag-footnote{font-size:11px;color:var(--color-textSecondary);margin:0 0 6px;font-style:italic}.phase-shift-label{font-size:.8em;color:var(--color-primary);font-weight:700}.reference-label{font-size:.8em;color:var(--color-success)}.prefault-warnings{background:var(--color-surfaceHover);border:1px solid var(--color-warning);border-radius:4px;padding:8px 12px;margin-bottom:10px;font-size:.85em}.prefault-warnings strong{color:var(--color-warning)}.prefault-warning-item{margin-top:4px;color:var(--color-textSecondary)}.voltage-profile-chart{max-width:100%;overflow:hidden}.voltage-profile-chart svg{display:block}.validation-verdict-inline{font-size:14px;margin-left:auto}.validation-verdict-inline.pass{color:var(--color-success)}.validation-verdict-inline.warning{color:var(--color-warning)}.validation-verdict-inline.fail{color:var(--color-error)}.results-tabs{display:flex;gap:6px;margin-bottom:15px;border-bottom:2px solid var(--color-border);flex-wrap:wrap}.results-tab-btn{padding:10px 16px;border:none;background:transparent;color:var(--color-textSecondary);cursor:pointer;border-radius:5px 5px 0 0;font-weight:400;font-size:.9em;transition:all .2s}.results-tab-btn:hover{background:var(--color-surfaceHover);color:var(--color-text)}.results-tab-btn.active{background:var(--color-primary);color:#fff;font-weight:700}.results-section{margin-bottom:20px;padding:15px;background:var(--color-background);border-radius:4px}.results-section h5{margin-top:0;margin-bottom:10px;color:var(--color-textSecondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px}.result-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-borderLight)}.result-row:last-child{border-bottom:none}.result-row span:first-child{font-weight:500;color:var(--color-textSecondary)}.result-row span:last-child{font-family:Courier New,monospace;color:var(--color-text)}.result-row.highlight{background:var(--color-surfaceHover);padding:12px;margin:10px -15px -15px;border-radius:4px}.result-row.highlight span{font-size:16px;font-weight:600}.bus-voltage-row{padding:8px;border-radius:4px;margin-bottom:2px}.bus-voltage-row.fault-bus,.bus-voltage-row.phase-shifted{background:var(--color-surfaceHover)}.prefault-description{font-size:.85em;color:var(--color-textSecondary);margin-bottom:10px}.voltage-type-selector{vertical-align:middle}.btn-compare{padding:3px 10px;border:1px solid var(--color-primary);border-radius:4px;background:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface));color:var(--color-primary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}.btn-compare:hover{background:var(--color-primary);color:#fff}.btn-compare:disabled{opacity:.5;cursor:not-allowed}.comparison-panel{margin-top:16px;border:2px solid var(--color-primary);border-radius:8px;overflow:hidden;background:var(--color-surface);box-shadow:0 4px 12px var(--color-shadow)}.comparison-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 15%,var(--color-background)),var(--color-background));border-bottom:1px solid var(--color-borderLight)}.comparison-title{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text)}.comparison-icon{font-size:16px}.comparison-close{padding:2px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-textSecondary);font-size:14px;cursor:pointer;transition:all .15s;line-height:1}.comparison-close:hover{background:var(--color-error);color:#fff;border-color:var(--color-error)}.comparison-error{padding:8px 14px;background:#e74c3c1a;border-bottom:1px solid rgba(231,76,60,.2);color:#e74c3c;font-size:12px}.comparison-table-wrapper{overflow-x:auto;padding:8px}.comparison-table{width:100%;border-collapse:collapse;font-size:12px}.comparison-table thead th{padding:6px 10px;text-align:center;font-size:13px;font-weight:700;color:var(--color-text);letter-spacing:.5px}.comparison-table .ct-metric-col{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--color-textSecondary);min-width:100px}.comparison-table .ct-value-col{min-width:70px}.comparison-table tbody td{padding:5px 10px;border-bottom:1px solid var(--color-borderLight)}.comparison-table tbody tr:last-child td{border-bottom:none}.comparison-table .ct-metric{font-weight:500;color:var(--color-textSecondary);font-size:11px;white-space:nowrap}.comparison-table .ct-bus-metric,.comparison-table .ct-branch-metric{padding-left:12px;font-size:10px}.comparison-table .ct-value{text-align:center;font-family:Courier New,monospace;color:var(--color-text);font-size:12px}.comparison-table .ct-secondary{color:var(--color-textSecondary);font-size:11px}.comparison-table .ct-highlight-row{background:var(--color-surfaceHover)}.comparison-table .ct-highlight-row td{font-weight:600}.comparison-table .ct-extreme-high,.comparison-table .ct-extreme-low{color:#e74c3c!important;font-weight:700!important;background:#e74c3c14}.comparison-table .ct-separator td{padding:2px 0;border-bottom:2px solid var(--color-border)}.current-contribution-chart{max-width:100%;overflow:hidden}.current-contribution-chart svg{display:block}.fault-action-row{display:flex;gap:8px}.fault-action-row .btn-primary{flex:1}.btn-sweep{padding:9px 14px;background:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface));color:var(--color-primary);border:1px solid var(--color-primary);border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-sweep:hover{background:var(--color-primary);color:#fff}.btn-sweep:disabled{opacity:.5;cursor:not-allowed}.sweep-panel{margin-top:16px;border:2px solid var(--color-primary);border-radius:8px;overflow:hidden;background:var(--color-surface);box-shadow:0 4px 12px var(--color-shadow)}.sweep-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 15%,var(--color-background)),var(--color-background));border-bottom:1px solid var(--color-borderLight);gap:8px}.sweep-title{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text);font-weight:600}.sweep-icon{font-size:16px}.sweep-header-actions{display:flex;align-items:center;gap:6px}.sweep-table-wrapper{overflow-x:auto;max-height:400px;overflow-y:auto;padding:0}.sweep-table{width:100%;border-collapse:collapse;font-size:12px}.sweep-table thead{position:sticky;top:0;z-index:1}.sweep-table thead th{padding:8px 10px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--color-textSecondary);background:var(--color-background);border-bottom:2px solid var(--color-border);white-space:nowrap}.sweep-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.sweep-th-sortable:hover{color:var(--color-primary)!important}.sweep-th-num{text-align:right!important}.sweep-table tbody tr{cursor:pointer;transition:background .1s}.sweep-table tbody tr:hover{background:var(--color-surfaceHover)!important}.sweep-table tbody td{padding:6px 10px;border-bottom:1px solid var(--color-borderLight)}.sweep-table tbody tr:last-child td{border-bottom:none}.sweep-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-surfaceHover) 30%,transparent)}.sweep-bus-name{font-weight:500;color:var(--color-text);white-space:nowrap}.sweep-num-cell{text-align:right;font-family:Courier New,monospace;color:var(--color-text)}.sweep-error-cell{color:var(--color-warning);font-style:italic;font-size:11px}.sweep-row-max-current{background:#e74c3c1a!important}.sweep-row-max-current td{font-weight:600}.sweep-row-min-voltage{background:#f39c121a!important}.sweep-row-error{opacity:.6}.sweep-val-danger{color:#e74c3c!important;font-weight:700!important}.sweep-val-warn{color:#e67e22!important;font-weight:600!important}.fault-panel-header-row{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;border-bottom:2px solid var(--color-primary);padding-bottom:8px}.fault-panel-header-row h3{margin:0;border-bottom:none;padding-bottom:0;font-size:16px;color:var(--color-text)}.btn-wizard{padding:4px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-textSecondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-wizard:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.snapshot-manager{margin-top:16px;border:1px solid var(--color-borderLight);border-radius:6px;overflow:hidden}.snapshot-manager-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:var(--color-background);color:var(--color-text);cursor:pointer;font-size:13px;font-weight:600;text-align:left;transition:background .15s}.snapshot-manager-toggle:hover{background:var(--color-surfaceHover)}.snapshot-list{border-top:1px solid var(--color-borderLight);max-height:350px;overflow-y:auto}.snapshot-empty{padding:16px;text-align:center;color:var(--color-textSecondary);font-size:12px;font-style:italic}.snapshot-list-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--color-background);border-bottom:1px solid var(--color-borderLight)}.snapshot-list-count{font-size:11px;color:var(--color-textSecondary)}.btn-snapshot-clear{padding:2px 8px;border:1px solid var(--color-error, #e74c3c);border-radius:3px;background:transparent;color:var(--color-error, #e74c3c);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s}.btn-snapshot-clear:hover{background:var(--color-error, #e74c3c);color:#fff}.snapshot-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--color-borderLight);gap:8px;transition:background .1s}.snapshot-item:last-child{border-bottom:none}.snapshot-item:hover{background:var(--color-surfaceHover)}.snapshot-item-info{flex:1;min-width:0;overflow:hidden}.snapshot-item-name{font-size:12px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snapshot-item-meta{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:10px;color:var(--color-textSecondary)}.fault-type-badge-sm{display:inline-block;padding:0 5px;border-radius:8px;color:#fff;font-weight:700;font-size:9px;letter-spacing:.3px}.snapshot-item-date{color:var(--color-textSecondary);opacity:.7}.snapshot-item-actions{display:flex;gap:4px;flex-shrink:0}.btn-snapshot-action{padding:2px 8px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface);color:var(--color-textSecondary);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s}.btn-snapshot-action:hover{background:var(--color-surfaceHover);color:var(--color-text);border-color:var(--color-primary)}.btn-snapshot-compare{border-color:var(--color-primary);color:var(--color-primary)}.btn-snapshot-compare:hover{background:var(--color-primary);color:#fff}.btn-snapshot-delete{border-color:transparent;color:var(--color-textSecondary);opacity:.6}.btn-snapshot-delete:hover{background:var(--color-error, #e74c3c);color:#fff;border-color:var(--color-error, #e74c3c);opacity:1}.snapshot-comparison-panel{margin-top:16px;border:2px solid var(--color-primary);border-radius:8px;overflow:hidden;background:var(--color-surface);box-shadow:0 4px 12px var(--color-shadow)}.snapshot-comparison-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 15%,var(--color-background)),var(--color-background));border-bottom:1px solid var(--color-borderLight)}.snapshot-comparison-title{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text)}.snapshot-comparison-icon{font-size:16px}.snapshot-comparison-body{padding:10px 14px}.snapshot-compare-section-title{margin:12px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--color-textSecondary)}.snapshot-compare-table th{font-size:10px;text-transform:uppercase;letter-spacing:.3px}.snapshot-compare-table td{font-size:11px}.phasor-inline-wrapper{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.phasor-inline-diagram{flex-shrink:0}.phasor-inline-legend{flex:1;min-width:130px}.phasor-legend-title{font-size:11px;font-weight:700;color:var(--color-text);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phasor-legend-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:11px}.phasor-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.phasor-legend-label{min-width:22px;color:var(--color-textSecondary);font-weight:600}.phasor-legend-val{font-family:var(--font-mono, monospace);font-weight:700;color:var(--color-text);min-width:44px}.phasor-legend-ang,.phasor-legend-unit{font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-textSecondary)}.fault-interpretation-box{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px;padding:10px 14px;border-radius:6px;background:#3498db14;border:1px solid rgba(52,152,219,.25);border-left:3px solid var(--color-primary);font-size:12px;color:var(--color-textSecondary);line-height:1.6}.fault-interpretation-icon{font-size:14px;flex-shrink:0;margin-top:1px}.fault-interpretation-text{flex:1}.health-check-panel{margin-bottom:10px;border-radius:6px;border:1px solid var(--color-border);overflow:hidden}.health-check-panel.health-check-ok{border-color:#2ecc714d}.health-check-panel.health-check-warn{border-color:#e74c3c59}.health-check-toggle{display:flex;align-items:center;gap:7px;width:100%;background:var(--color-surfaceHover);border:none;padding:7px 12px;cursor:pointer;font-size:12px;color:var(--color-textSecondary);text-align:left;transition:background .15s}.health-check-toggle:hover{background:var(--color-surface)}.health-check-icon{font-size:13px}.health-check-title{font-weight:600;flex:1}.health-check-fail-badge{padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.health-check-chevron{font-size:9px;color:var(--color-textSecondary)}.health-check-body{padding:8px 12px;display:flex;flex-direction:column;gap:4px;background:var(--color-surface)}.health-check-row{display:flex;align-items:center;gap:7px;font-size:11px;padding:2px 0}.health-check-row--pass{color:var(--color-textSecondary)}.health-check-row--fail{color:#e74c3c}.health-check-row--info{color:var(--color-textSecondary);opacity:.85}.health-check-ready-badge{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;background:#6c757d1f;color:var(--color-textSecondary);white-space:nowrap}.health-check-ready-badge--ok{background:#2ecc712e;color:#2ecc71}.health-check-row-icon{font-size:11px;flex-shrink:0;font-weight:700}.health-check-row-label{flex:1}.health-check-row-detail{font-size:10px;color:var(--color-textSecondary);opacity:.8;font-style:italic}.enhanced-bus-selector{display:flex;gap:6px;align-items:center;margin-bottom:4px}.enhanced-bus-select{flex:1;padding:7px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-surface);color:var(--color-text);transition:border-color .2s}.enhanced-bus-select:focus{outline:none;border-color:var(--color-primary)}.btn-worst-bus--active{background:#e74c3c40;border-color:#e74c3c}.all-faults-wrapper{display:flex;flex-direction:column;gap:8px}.all-faults-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.all-faults-note{font-size:11px;color:var(--color-textSecondary)}.all-faults-empty{font-size:12px;color:var(--color-textSecondary);padding:8px;text-align:center}.all-faults-table{width:100%}.all-faults-severity-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;color:#fff}.severity-card{display:flex;flex-direction:column;gap:10px}.severity-card-top{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.severity-gauge-area{flex-shrink:0}.severity-metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:1;min-width:180px}.severity-metric-cell{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;padding:8px 10px}.severity-metric-label{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:2px}.severity-metric-value{font-size:13px;font-weight:700;color:var(--color-text)}.severity-metric-kv{font-size:10px;color:var(--color-textSecondary);font-weight:400}.severity-metric-warn{color:#e67e22}.severity-metric-ok{color:#2ecc71}.severity-details{display:flex;flex-direction:column;gap:0}.severity-details-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.severity-details-toggle:hover{background:var(--color-surfaceHover)}.severity-details-body{padding-top:6px}.donut-wrapper{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.donut-chart-area{flex-shrink:0}.donut-legend{flex:1;min-width:140px;display:flex;flex-direction:column;gap:5px}.donut-legend-row{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--color-textSecondary)}.donut-legend-ka{font-family:var(--font-mono, monospace);font-weight:600;color:var(--color-text);font-size:11px}.donut-legend-pct{font-size:10px;color:var(--color-textSecondary);min-width:36px;text-align:right}.seq-cards-wrapper{display:flex;flex-direction:column;gap:10px}.seq-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seq-card{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.seq-card-header{display:flex;align-items:center;gap:6px;padding:8px 10px 4px;border-top:3px solid transparent}.seq-card-symbol{font-size:15px;font-weight:800;font-family:var(--font-mono, monospace)}.seq-card-label{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary)}.seq-card-body{padding:4px 10px 10px}.seq-card-magnitude{font-size:13px;font-weight:700;font-family:var(--font-mono, monospace);color:var(--color-text)}.seq-card-bar-track{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden;margin-bottom:3px}.seq-card-bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.seq-card-bar-label{font-size:9px;color:var(--color-textSecondary);margin-bottom:4px}.seq-card-desc{font-size:9px;color:var(--color-textSecondary);opacity:.8}.seq-context-note{padding:8px 10px;background:#3498db12;border:1px solid rgba(52,152,219,.2);border-radius:5px;font-size:11px;color:var(--color-textSecondary);line-height:1.5;display:flex;gap:6px;align-items:flex-start}.seq-context-icon{flex-shrink:0;color:var(--color-primary)}.seq-voltages-row{display:flex;flex-direction:column;gap:5px}.seq-voltages-title{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);font-weight:600}.seq-volt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.seq-volt-card{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;padding:7px 8px;display:flex;flex-direction:column;align-items:center;gap:2px}.seq-volt-symbol{font-size:12px;font-weight:800;font-family:var(--font-mono, monospace)}.seq-volt-mag{font-size:11px;font-weight:600;font-family:var(--font-mono, monospace);color:var(--color-text)}.seq-volt-ang{font-size:9px;color:var(--color-textSecondary);font-family:var(--font-mono, monospace)}.seq-volt-note{font-size:9px;color:var(--color-textSecondary);opacity:.7;line-height:1.4}.seq-theory-panel{display:flex;flex-direction:column;gap:0}.seq-theory-chevron{font-size:9px}.seq-theory-type-badge{margin-left:auto;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;background:var(--color-surfaceHover);color:var(--color-textSecondary);border:1px solid var(--color-border)}.seq-theory-body{padding:10px 12px;background:var(--color-surfaceHover);border:1px solid var(--color-border);border-top:none;border-radius:0 0 4px 4px}.seq-theory-title{font-size:11px;font-weight:700;color:var(--color-text);margin-bottom:5px}.seq-theory-formula{font-family:var(--font-mono, monospace);font-size:10px;background:var(--color-surface);padding:5px 8px;border-radius:3px;margin:4px 0;color:var(--color-primary);line-height:1.5}.seq-theory-note{font-size:10px;color:var(--color-textSecondary);line-height:1.5;margin-top:4px}.heatmap-cards-wrapper{display:flex;flex-direction:column;gap:8px}.heatmap-view-toggle{display:flex;gap:4px}.heatmap-toggle-btn{padding:3px 10px;border:1px solid var(--color-border);border-radius:4px;background:none;color:var(--color-textSecondary);font-size:11px;cursor:pointer;transition:all .15s}.heatmap-toggle-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.heatmap-toggle-btn:hover:not(.active){background:var(--color-surfaceHover)}.heatmap-card-grid{display:flex;flex-wrap:wrap;gap:6px}.heatmap-bus-card{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:6px;border:1px solid var(--color-border);min-width:72px;max-width:100px;position:relative;overflow:hidden;transition:transform .1s}.heatmap-bus-card:hover{transform:translateY(-1px)}.heatmap-bus-card--faulted{box-shadow:0 0 0 2px #e74c3c66}.heatmap-card-top{display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}.heatmap-card-name{font-size:10px;color:var(--color-textSecondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;display:flex;align-items:center;gap:2px}.heatmap-fault-icon{font-size:10px}.heatmap-severity-badge{font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 4px;border-radius:3px;color:#fff;white-space:nowrap}.heatmap-card-avg{font-size:16px;font-weight:800;font-family:var(--font-mono, monospace);color:var(--color-text)}.heatmap-phase-row{display:flex;gap:4px;flex-wrap:wrap}.heatmap-phase-cell{font-size:9px;font-family:var(--font-mono, monospace);font-weight:600}.heatmap-card-bar{height:3px;border-radius:2px;margin-top:2px;transition:width .4s ease}.heatmap-chart-fallback{display:flex;flex-direction:column;gap:4px}.heatmap-bar-row{display:flex;align-items:center;gap:8px}.heatmap-bar-label{font-size:10px;color:var(--color-textSecondary);min-width:70px;font-family:var(--font-mono, monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heatmap-bar-track{flex:1;height:16px;background:var(--color-surfaceHover);border-radius:3px;overflow:hidden;position:relative}.heatmap-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.heatmap-bar-value{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:9px;font-family:var(--font-mono, monospace);color:var(--color-text);font-weight:600}.heatmap-summary-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px}.heatmap-summary-badge{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700}.heatmap-summary-badge--warn{background:#e67e2226;color:#e67e22;border:1px solid rgba(230,126,34,.3)}.heatmap-summary-badge--crit{background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.heatmap-summary-badge--ok{background:#2ecc711f;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.heatmap-summary-ref{color:var(--color-textSecondary);font-size:10px}.inline-phasor-wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.inline-phasor-legend-wrap{flex:1;min-width:140px;font-size:12px}.inline-phasor-legend-title{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:6px;font-weight:600}.inline-phasor-legend-row{display:flex;align-items:center;gap:7px;margin-bottom:4px;color:var(--color-textSecondary);font-size:11px}.inline-phasor-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.contribution-donut-wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.donut-legend-wrap{flex:1;min-width:140px}.donut-legend-row{display:flex;align-items:center;gap:7px;margin-bottom:5px;font-size:11px;color:var(--color-textSecondary)}.donut-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend-kA{font-family:var(--font-mono, monospace);font-weight:600;color:var(--color-text);font-size:11px}.donut-legend-pct{font-size:10px;color:var(--color-textSecondary)}.donut-total-row{margin-top:6px;padding-top:6px;border-top:1px solid var(--color-border);font-size:11px;font-weight:700;color:var(--color-text);font-family:var(--font-mono, monospace)}.fault-severity-card-wrap{display:flex;flex-direction:column;gap:10px}.fault-severity-top-row{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.fault-severity-gauge-col{text-align:center;flex-shrink:0}.fault-severity-gauge-lbl{font-size:10px;color:var(--color-textSecondary);margin-top:4px;text-transform:uppercase;letter-spacing:.3px}.fault-severity-info-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:8px}.fault-severity-badge-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fault-severity-badge-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.fault-severity-badge-pill.mild{background:#2ecc7126;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.fault-severity-badge-pill.moderate{background:#f1c40f26;color:#f1c40f;border:1px solid rgba(241,196,15,.3)}.fault-severity-badge-pill.high{background:#e67e2226;color:#e67e22;border:1px solid rgba(230,126,34,.3)}.fault-severity-badge-pill.severe{background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.fault-severity-metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fault-severity-metric-box{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;padding:8px 10px}.fault-severity-metric-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:2px}.fault-severity-metric-val{font-size:14px;font-weight:700;color:var(--color-text)}.fault-severity-details-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.fault-severity-details-btn:hover{background:var(--color-surfaceHover)}.fault-severity-details-body{padding-top:4px}.fault-interpretation-box{margin-bottom:12px;padding:10px 14px;border-radius:6px;background:#3498db14;border:1px solid rgba(52,152,219,.25);border-left:3px solid var(--color-primary);font-size:12px;color:var(--color-textSecondary);line-height:1.6}.fault-interpretation-box strong{color:var(--color-text)}.interp-sev-mild{color:#2ecc71;font-weight:700}.interp-sev-moderate{color:#f1c40f;font-weight:700}.interp-sev-high{color:#e67e22;font-weight:700}.interp-sev-severe{color:#e74c3c;font-weight:700}.model-health-wrap{margin-bottom:10px}.model-health-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:5px;padding:5px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.model-health-btn:hover{background:var(--color-surfaceHover)}.model-health-btn.has-issues{border-color:#e74c3c66;color:#e74c3c}.model-health-btn.all-pass{border-color:#2ecc714d;color:#2ecc71}.model-health-icon{font-size:12px}.model-health-chevron{margin-left:auto;font-size:9px}.model-health-list{margin-top:4px;padding:8px 10px;background:var(--color-surfaceHover);border-radius:5px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:3px}.model-health-item{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--color-textSecondary)}.model-health-item-icon{font-size:12px;flex-shrink:0}.model-health-item-detail{font-size:10px;color:var(--color-textSecondary);margin-left:4px;opacity:.7}.enhanced-bus-sel{display:flex;flex-direction:column;gap:4px}.enhanced-bus-sel label{font-weight:600;color:var(--color-textSecondary);font-size:12px;text-transform:uppercase;letter-spacing:.3px}.enhanced-bus-sel-row{display:flex;gap:6px;align-items:center}.enhanced-bus-sel-row select{flex:1;padding:7px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-surface);color:var(--color-text);transition:border-color .2s}.enhanced-bus-sel-row select:focus{outline:none;border-color:var(--color-primary)}.btn-find-worst{padding:6px 10px;background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);border-radius:4px;color:#e74c3c;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-find-worst:hover{background:#e74c3c33}.btn-find-worst:disabled{opacity:.5;cursor:not-allowed}.enhanced-bus-worst-hint{font-size:10px;color:var(--color-textSecondary);opacity:.7}.all-fault-types-wrap{display:flex;flex-direction:column;gap:8px}.all-fault-types-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.all-fault-types-desc{font-size:11px;color:var(--color-textSecondary)}.btn-run-all{padding:5px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-run-all:hover{opacity:.85}.btn-run-all:disabled{opacity:.5;cursor:not-allowed}.all-fault-types-tbl{width:100%;border-collapse:collapse;font-size:12px}.all-fault-types-tbl th{background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:10px;text-transform:uppercase;letter-spacing:.3px;padding:6px 10px;text-align:left;border-bottom:1px solid var(--color-border)}.all-fault-types-tbl td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--color-textSecondary)}.all-fault-types-tbl tr:hover td{background:var(--color-surfaceHover)}.aft-ft-pill{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;color:#fff}.aft-sev-pill{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700}.aft-err{color:var(--color-error, #e74c3c);font-size:10px}.aft-mono{font-family:var(--font-mono, monospace)}.fault-results{position:relative}.fault-results-updating{opacity:.7;pointer-events:none;transition:opacity .2s}.fault-updating-overlay{position:absolute;top:8px;right:8px;background:var(--color-primary);color:#fff;font-size:11px;font-weight:600;padding:3px 10px;border-radius:12px;z-index:10;animation:pulse-overlay .8s ease-in-out infinite alternate}@keyframes pulse-overlay{0%{opacity:.7}to{opacity:1}}.fault-interpretation{margin-bottom:12px;padding:10px 14px;border-radius:6px;background:#3498db14;border:1px solid rgba(52,152,219,.25);border-left:3px solid var(--color-primary);font-size:12px;color:var(--color-textSecondary);line-height:1.6}.fault-interpretation strong{color:var(--color-text)}.fault-interpretation .interp-severity-mild{color:#2ecc71;font-weight:700}.fault-interpretation .interp-severity-moderate{color:#f1c40f;font-weight:700}.fault-interpretation .interp-severity-high{color:#e67e22;font-weight:700}.fault-interpretation .interp-severity-severe{color:#e74c3c;font-weight:700}.model-health-check{margin-bottom:10px}.model-health-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:5px;padding:5px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.model-health-toggle:hover{background:var(--color-surfaceHover)}.model-health-toggle.has-issues{border-color:#e74c3c66;color:#e74c3c}.model-health-toggle.all-pass{border-color:#2ecc714d;color:#2ecc71}.model-health-list{margin-top:4px;padding:8px 10px;background:var(--color-surfaceHover);border-radius:5px;border:1px solid var(--color-border)}.model-health-item{display:flex;align-items:center;gap:7px;font-size:11px;padding:2px 0;color:var(--color-textSecondary)}.model-health-item .hc-icon{font-size:12px;flex-shrink:0}.model-health-item .hc-detail{font-size:10px;color:var(--color-textSecondary);margin-left:4px;opacity:.7}.enhanced-bus-selector{display:flex;flex-direction:column;gap:4px}.enhanced-bus-selector label{font-weight:600;color:var(--color-textSecondary);font-size:12px;text-transform:uppercase;letter-spacing:.3px}.enhanced-bus-selector-row{display:flex;gap:6px;align-items:center}.enhanced-bus-selector-row select{flex:1;padding:7px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-surface);color:var(--color-text);transition:border-color .2s}.enhanced-bus-selector-row select:focus{outline:none;border-color:var(--color-primary)}.btn-worst-bus{padding:6px 10px;background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);border-radius:4px;color:#e74c3c;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-worst-bus:hover{background:#e74c3c33}.btn-worst-bus:disabled{opacity:.5;cursor:not-allowed}.bus-kv-hint{font-size:10px;color:var(--color-textSecondary);opacity:.7;margin-top:1px}.sequence-component-cards{display:flex;flex-direction:column;gap:10px}.seq-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seq-card{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:6px;padding:10px 12px;text-align:center;position:relative;overflow:hidden}.seq-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:6px 6px 0 0}.seq-card-zero:before{background:#f1c40f}.seq-card-pos:before{background:#2ecc71}.seq-card-neg:before{background:#e74c3c}.seq-card-label{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:4px}.seq-card-value{font-size:14px;font-weight:700;font-family:var(--font-mono, monospace);margin-bottom:2px}.seq-card-zero .seq-card-value{color:#f1c40f}.seq-card-pos .seq-card-value{color:#2ecc71}.seq-card-neg .seq-card-value{color:#e74c3c}.seq-card-angle{font-size:10px;color:var(--color-textSecondary);font-family:var(--font-mono, monospace);margin-bottom:6px}.seq-card-bar-bg{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden;margin-bottom:4px}.seq-card-bar{height:100%;border-radius:2px;transition:width .4s ease}.seq-card-zero .seq-card-bar{background:#f1c40f}.seq-card-pos .seq-card-bar{background:#2ecc71}.seq-card-neg .seq-card-bar{background:#e74c3c}.seq-card-desc{font-size:9px;color:var(--color-textSecondary);opacity:.8;line-height:1.3}.seq-context-note{padding:8px 10px;background:#3498db12;border:1px solid rgba(52,152,219,.2);border-radius:5px;font-size:11px;color:var(--color-textSecondary);line-height:1.5}.seq-context-note strong{color:var(--color-text)}.seq-theory-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:4px;padding:5px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.seq-theory-toggle:hover{background:var(--color-surfaceHover)}.seq-theory-panel{padding:10px 12px;background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;font-size:11px;color:var(--color-textSecondary);line-height:1.6}.seq-theory-panel h4{font-size:11px;font-weight:700;color:var(--color-text);margin-bottom:6px}.seq-theory-formula{font-family:var(--font-mono, monospace);font-size:11px;background:var(--color-surface);padding:4px 8px;border-radius:3px;margin:4px 0;color:var(--color-primary)}.seq-voltages-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.seq-voltage-item{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;padding:7px 8px;text-align:center}.seq-voltage-label{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:3px}.seq-voltage-val{font-size:12px;font-weight:700;font-family:var(--font-mono, monospace)}.seq-voltage-ang{font-size:9px;color:var(--color-textSecondary);font-family:var(--font-mono, monospace)}.voltage-heatmap-cards{display:flex;flex-direction:column;gap:8px}.voltage-heatmap-grid{display:flex;flex-wrap:wrap;gap:6px}.voltage-hm-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;border-radius:6px;border:1px solid var(--color-border);min-width:64px;text-align:center;transition:transform .1s}.voltage-hm-card:hover{transform:translateY(-1px)}.voltage-hm-name{font-size:10px;color:var(--color-textSecondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}.voltage-hm-value{font-size:14px;font-weight:700;font-family:var(--font-mono, monospace)}.voltage-hm-severity{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.voltage-hm-bar{width:100%;height:3px;border-radius:2px;margin-top:2px}.voltage-hm-card.sev-faulted{background:#e74c3c26;border-color:#e74c3c59}.voltage-hm-card.sev-faulted .voltage-hm-value,.voltage-hm-card.sev-faulted .voltage-hm-severity{color:#e74c3c}.voltage-hm-card.sev-faulted .voltage-hm-bar{background:#e74c3c}.voltage-hm-card.sev-critical{background:#c0392b1f;border-color:#c0392b4d}.voltage-hm-card.sev-critical .voltage-hm-value,.voltage-hm-card.sev-critical .voltage-hm-severity{color:#c0392b}.voltage-hm-card.sev-critical .voltage-hm-bar{background:#c0392b}.voltage-hm-card.sev-warning{background:#e67e221f;border-color:#e67e224d}.voltage-hm-card.sev-warning .voltage-hm-value,.voltage-hm-card.sev-warning .voltage-hm-severity{color:#e67e22}.voltage-hm-card.sev-warning .voltage-hm-bar{background:#e67e22}.voltage-hm-card.sev-low{background:#f1c40f1a;border-color:#f1c40f4d}.voltage-hm-card.sev-low .voltage-hm-value,.voltage-hm-card.sev-low .voltage-hm-severity{color:#f1c40f}.voltage-hm-card.sev-low .voltage-hm-bar{background:#f1c40f}.voltage-hm-card.sev-normal{background:#2ecc7114;border-color:#2ecc7140}.voltage-hm-card.sev-normal .voltage-hm-value,.voltage-hm-card.sev-normal .voltage-hm-severity{color:#2ecc71}.voltage-hm-card.sev-normal .voltage-hm-bar{background:#2ecc71}.voltage-hm-summary{font-size:11px;color:var(--color-textSecondary);padding:5px 8px;background:var(--color-surfaceHover);border-radius:4px;border:1px solid var(--color-border)}.voltage-hm-summary .sum-warn{color:#e67e22;font-weight:600}.voltage-hm-summary .sum-crit{color:#e74c3c;font-weight:600}.voltage-hm-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--color-textSecondary)}.voltage-hm-legend span{display:flex;align-items:center;gap:4px}.voltage-hm-legend .leg-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.inline-phasor-diagram{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.inline-phasor-svg{flex-shrink:0}.inline-phasor-legend{flex:1;min-width:140px;font-size:12px}.inline-phasor-legend-title{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:6px}.inline-phasor-legend-item{display:flex;align-items:center;gap:7px;margin-bottom:4px;color:var(--color-textSecondary)}.inline-phasor-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.inline-phasor-note{margin-top:8px;font-size:10px;color:var(--color-textSecondary);padding:5px 7px;background:var(--color-surfaceHover);border-radius:4px;border:1px solid var(--color-border);line-height:1.4}.current-contribution-donut{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:4px 0}.donut-svg{flex-shrink:0}.donut-legend{flex:1;min-width:140px;font-size:12px}.donut-legend-item{display:flex;align-items:center;gap:7px;margin-bottom:5px;color:var(--color-textSecondary)}.donut-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend-name{flex:1}.donut-legend-val{font-family:var(--font-mono, monospace);font-weight:600;color:var(--color-text);font-size:11px}.donut-total{margin-top:6px;padding-top:6px;border-top:1px solid var(--color-border);font-size:11px;font-weight:700;color:var(--color-text);font-family:var(--font-mono, monospace)}.fault-severity-card{display:flex;flex-direction:column;gap:10px}.fault-severity-top{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.fault-severity-gauge-wrap{text-align:center;flex-shrink:0}.fault-severity-gauge-label{font-size:10px;color:var(--color-textSecondary);margin-top:4px;text-transform:uppercase;letter-spacing:.3px}.fault-severity-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.fault-severity-badge.mild{background:#2ecc7126;color:#2ecc71;border:1px solid rgba(46,204,113,.3)}.fault-severity-badge.moderate{background:#f1c40f26;color:#f1c40f;border:1px solid rgba(241,196,15,.3)}.fault-severity-badge.high{background:#e67e2226;color:#e67e22;border:1px solid rgba(230,126,34,.3)}.fault-severity-badge.severe{background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.fault-severity-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:1;min-width:180px}.fault-severity-metric{background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:5px;padding:8px 10px}.fault-severity-metric-label{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:2px}.fault-severity-metric-value{font-size:14px;font-weight:700;color:var(--color-text)}.fault-severity-metric-sub{font-size:9px;color:var(--color-textSecondary);margin-top:1px}.fault-severity-details-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:11px;color:var(--color-textSecondary);width:100%;text-align:left;transition:background .15s}.fault-severity-details-toggle:hover{background:var(--color-surfaceHover)}.all-fault-types-table{display:flex;flex-direction:column;gap:8px}.all-fault-types-run-btn{padding:6px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s;align-self:flex-start}.all-fault-types-run-btn:hover{opacity:.85}.all-fault-types-run-btn:disabled{opacity:.5;cursor:not-allowed}.all-fault-types-empty{font-size:12px;color:var(--color-textSecondary);padding:8px;text-align:center}.aft-table{width:100%;border-collapse:collapse;font-size:12px}.aft-table th{background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:10px;text-transform:uppercase;letter-spacing:.3px;padding:6px 10px;text-align:left;border-bottom:1px solid var(--color-border)}.aft-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--color-textSecondary)}.aft-table tr:hover td{background:var(--color-surfaceHover)}.aft-ft-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;color:#fff}.aft-severity-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700}.aft-error{color:var(--color-error, #e74c3c);font-size:10px}.pa-tab-pane{padding:0!important}.phasor-anim-panel{display:flex;flex-direction:column;gap:10px;padding:10px 8px 12px;background:var(--color-surface)}.pa-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 2px}.pa-play-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.pa-play-btn:hover{background:var(--color-surface);border-color:var(--color-primary)}.pa-play-btn.pa-playing{background:#3498db2e;border-color:var(--color-primary);color:var(--color-primary)}.pa-speed-group{display:flex;border:1px solid var(--color-border);border-radius:5px;overflow:hidden}.pa-speed-btn{padding:3px 6px;font-size:10px;font-weight:600;border:none;background:var(--color-surfaceHover);color:var(--color-textSecondary);cursor:pointer;transition:background .12s,color .12s;border-right:1px solid var(--color-border)}.pa-speed-btn:last-child{border-right:none}.pa-speed-btn:hover{background:var(--color-surface);color:var(--color-text)}.pa-speed-btn.active{background:var(--color-primary, #3498db);color:#fff}.pa-ctrl-sep{width:1px;height:22px;background:var(--color-border);margin:0 2px;flex-shrink:0}.pa-btn-group{display:flex;border:1px solid var(--color-border);border-radius:5px;overflow:hidden}.pa-btn{padding:3px 8px;font-size:10px;font-weight:600;border:none;background:var(--color-surfaceHover);color:var(--color-textSecondary);cursor:pointer;transition:background .12s,color .12s;border-right:1px solid var(--color-border);font-family:var(--font-mono, monospace);letter-spacing:.3px}.pa-btn:last-child{border-right:none}.pa-btn:hover{background:var(--color-surface);color:var(--color-text)}.pa-btn.active{background:#3498db2e;color:var(--color-primary, #3498db)}.pa-item-selector{display:flex;gap:4px;flex-wrap:wrap;padding:2px 0}.pa-item-btn{padding:3px 9px;font-size:10px;font-weight:600;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surfaceHover);color:var(--color-textSecondary);cursor:pointer;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis;transition:background .12s,border-color .12s,color .12s}.pa-item-btn:hover{background:var(--color-surface);color:var(--color-text)}.pa-item-btn.active{background:#3498db26;border-color:var(--color-primary, #3498db);color:var(--color-primary, #3498db)}.pa-wheel-row{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;justify-content:center;padding:4px 0 2px}.pa-wheel-svg{flex-shrink:0;display:block;background:#0000002e;border-radius:8px;border:1px solid var(--color-border)}.pa-wheel-legend{flex:1;min-width:160px;max-width:240px;display:flex;flex-direction:column;gap:4px;padding-top:4px}.pa-legend-header{font-size:11px;font-weight:700;color:var(--color-text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--color-border);padding-bottom:4px}.pa-legend-row{display:flex;align-items:center;gap:6px;font-size:11px;padding:2px 0}.pa-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pa-legend-label{min-width:22px;font-weight:600;color:var(--color-textSecondary);font-family:var(--font-mono, monospace)}.pa-legend-vals{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-family:var(--font-mono, monospace);font-size:10px}.pa-legend-rms{color:var(--color-text);font-weight:700}.pa-legend-ang{color:var(--color-textSecondary)}.pa-legend-inst{font-weight:600;min-width:46px}.pa-legend-time{margin-top:6px;display:flex;gap:6px;align-items:baseline;font-size:10px;color:var(--color-textSecondary);border-top:1px solid var(--color-border);padding-top:5px}.pa-legend-time-lbl{font-style:italic}.pa-legend-time-val{font-family:var(--font-mono, monospace);color:var(--color-text);font-weight:600}.pa-legend-footnote{font-size:9px;color:var(--color-textSecondary);opacity:.7;margin-top:2px;font-style:italic}.pa-osc-section{display:flex;flex-direction:column;gap:4px}.pa-osc-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.pa-osc-title{font-size:10px;font-weight:600;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.4px}.pa-osc-window{font-weight:400;opacity:.75;margin-left:4px}.pa-osc-legend-pills{display:flex;gap:4px;flex-wrap:wrap}.pa-osc-pill{font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;border:1px solid;font-family:var(--font-mono, monospace)}.pa-osc-svg{display:block;width:100%;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surface);overflow:visible}.pa-main-layout{display:flex;gap:16px;align-items:flex-start;min-height:0}.pa-left-col{display:flex;flex-direction:column;gap:8px;flex-shrink:0;width:292px}.pa-right-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.pa-freq-badge{font-size:10px;font-weight:700;font-family:var(--font-mono, monospace);color:var(--color-primary, #3498db);background:#3498db1a;border:1px solid rgba(52,152,219,.25);border-radius:8px;padding:2px 7px;letter-spacing:.3px}.pa-reset-btn{width:26px;height:26px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,border-color .15s;padding:0;line-height:1}.pa-reset-btn:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-primary)}.pa-overview-section{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--color-border)}.pa-overview-title{font-size:10px;font-weight:700;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.4px}.pa-overview-subtitle{font-weight:400;font-style:italic;opacity:.75}.pa-overview-grid{display:flex;flex-wrap:wrap;gap:6px}.pa-thumb{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 6px 4px;border-radius:7px;border:1.5px solid var(--color-border);background:var(--color-surfaceHover);cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.pa-thumb:hover{border-color:var(--color-primary, #3498db);background:var(--color-surface);transform:translateY(-1px)}.pa-thumb-sel{border-color:var(--color-primary, #3498db)!important;background:#3498db1a!important;box-shadow:0 0 0 2px #3498db2e}.pa-thumb-label{font-size:9px;font-weight:600;color:var(--color-textSecondary);max-width:82px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.pa-thumb-sel .pa-thumb-label{color:var(--color-primary, #3498db)}@media(max-width:760px){.pa-main-layout{flex-direction:column}.pa-left-col{width:100%;align-items:center}}.pe-layout{display:flex;gap:var(--spacing-md, 16px);align-items:flex-start;min-height:0;height:100%}.pe-left{display:flex;flex-direction:column;gap:10px;width:clamp(340px,30vw,480px);flex-shrink:0;overflow-y:auto;max-height:calc(100vh - 120px);padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.pe-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.pe-funcpane{width:210px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 120px);overflow-y:auto;padding:10px;background:var(--color-background, #fff);border:1px solid var(--color-border);border-radius:10px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.pe-funcpane-collapsed{width:30px;align-items:center;cursor:pointer;padding:8px 4px;overflow:hidden}.pe-funcpane-vert{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--color-textSecondary);white-space:nowrap}.pe-funcpane-head{display:flex;align-items:center;justify-content:space-between}.pe-funcpane-title{font-size:13px;font-weight:700;color:var(--color-text)}.pe-funcpane-collapse{border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);border-radius:5px;cursor:pointer;font-size:11px;padding:1px 6px}.pe-funcpane-search{width:100%;box-sizing:border-box;padding:4px 8px;font-size:12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.pe-funcpane-body{display:flex;flex-direction:column;gap:8px}.pe-funcpane-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-textSecondary);margin-bottom:3px}.pe-funcpane-items{display:flex;flex-wrap:wrap;gap:4px}.pe-funcpane-chip{border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);border-radius:999px;padding:3px 9px;font-size:12px;cursor:pointer;white-space:nowrap}.pe-funcpane-chip:hover{border-color:var(--color-primary, #2563eb)}.pe-funcpane-foot{font-size:10.5px;color:var(--color-textSecondary);line-height:1.4}.pe-clear-btn{border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer}.pe-clear-btn:hover:not(:disabled){border-color:#dc2626;color:#dc2626}.pe-clear-btn:disabled{opacity:.45;cursor:default}.pe-fsmulti-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--color-background, #fff);display:flex;flex-direction:column;padding:12px 16px 16px;gap:10px}.pe-fsmulti-pick{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0;align-items:center}.pe-fsmulti-chip{border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;white-space:nowrap}.pe-fsmulti-chip-on{border-color:var(--color-primary, #2563eb);color:var(--color-primary, #2563eb);font-weight:600}.pe-fsmulti-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-textSecondary);font-size:14px}.pe-fsmulti-grid{flex:1;display:grid;gap:12px;min-height:0}.pe-fsmulti-tile{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--color-border);border-radius:8px;padding:6px;background:var(--color-surface)}.pe-fsmulti-tiletitle{font-size:14px;font-weight:700;color:var(--color-text);text-align:center;margin-bottom:2px}.pe-fsmulti-tiledesc{font-size:12px;color:var(--color-textSecondary);text-align:center;margin-bottom:4px;line-height:1.35}.pe-fsmulti-canvaswrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.pe-fsmulti-canvas{width:100%;height:100%;object-fit:contain}.pe-rec-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--color-background, #fff);display:flex;flex-direction:column;padding:12px 16px 16px;gap:12px}.pe-rec-opts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.pe-rec-opts label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-textSecondary)}.pe-rec-opts input[type=number]{font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.pe-rec-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pe-rec-pick-label{font-size:12px;font-weight:600;color:var(--color-textSecondary)}.pe-rec-opts select{font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.pe-rec-body{flex:1;min-height:0;display:flex;gap:16px;align-items:stretch;flex-wrap:wrap}.pe-rec-stage{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.pe-rec-canvas{max-width:100%;max-height:calc(100vh - 170px);object-fit:contain;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.pe-rec-caption{font-size:12px;color:var(--color-textSecondary);text-align:center}.pe-rec-result{width:340px;max-width:100%;display:flex;flex-direction:column;gap:8px;align-items:center;border-left:1px solid var(--color-border);padding-left:16px}.pe-rec-result-title{font-size:13px;font-weight:700;color:var(--color-text);align-self:flex-start}.pe-rec-media{max-width:100%;max-height:50vh;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.pe-ops-bar.pe-ops-bar-pane{flex-direction:column;align-items:stretch;gap:6px;background:transparent;border:none;box-shadow:none;padding:0 0 8px;border-bottom:1px solid var(--color-border)}.pe-ops-bar-pane .pe-ops-hint,.pe-ops-bar-pane .pe-ops-prompt{font-size:10.5px;line-height:1.35}.pe-editor-section,.pe-presets-section,.pe-values-section,.pe-study-section,.pe-calc-section,.pe-adj-section{display:flex;flex-direction:column;gap:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:12px;box-shadow:0 1px 2px var(--color-shadow)}.pe-section-label{font-size:11px;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.6px}.pe-editor-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.pe-editor-hdr-actions{display:flex;align-items:center;gap:6px}.pe-values-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.pe-load-btn{font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-load-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.pe-load-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border);background:transparent;color:var(--color-textSecondary)}.pe-editor-wrap{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);overflow:hidden;background:var(--color-background);transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease)}.pe-editor-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.pe-line-numbers{padding:8px 6px 8px 8px;background:var(--color-surfaceHover);border-right:1px solid var(--color-borderLight);color:var(--color-textSecondary);opacity:.7;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;line-height:1.55;text-align:right;min-width:30px;overflow:hidden;-webkit-user-select:none;user-select:none;flex-shrink:0}.pe-line-numbers>div{height:17px}.pe-line-numbers>div.has-error{color:var(--color-error);font-weight:700;opacity:1}.pe-textarea{flex:1;min-width:0;padding:8px;background:transparent;color:var(--color-text);font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;line-height:1.55;border:none;outline:none;resize:vertical;min-height:200px;-moz-tab-size:2;tab-size:2}.pe-errors{display:flex;flex-direction:column;gap:2px}.pe-error-line{font-size:10px;font-family:var(--font-mono, monospace);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 10%,transparent);border-left:2px solid var(--color-error);padding:3px 7px;border-radius:0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0}.pe-error-more{font-size:10px;color:var(--color-textSecondary);font-style:italic;padding-left:4px}.pe-editor-hint{font-size:10px;color:var(--color-textSecondary);line-height:1.6}.pe-editor-hint code{font-family:var(--font-mono, monospace);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);padding:1px 4px;border-radius:3px}.pe-preset-grid{display:flex;flex-wrap:wrap;gap:5px}.pe-preset-btn{font-size:10.5px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-preset-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-vars-table{width:100%;border-collapse:collapse;font-size:10.5px}.pe-vars-table thead th{text-align:left;padding:4px 5px;font-size:9.5px;font-weight:700;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border)}.pe-vars-table tbody tr:hover{background:var(--color-surfaceHover)}.pe-vars-table tbody td{padding:3px 5px;vertical-align:middle;border-bottom:1px solid var(--color-borderLight)}.pe-var-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle;flex-shrink:0}.pe-var-name{font-family:var(--font-mono, monospace);font-size:11px;font-weight:600;color:var(--color-text)}.pe-adj-mark{font-size:8px;color:var(--color-primary);margin-left:3px;vertical-align:super}.pe-val-mono{font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-textSecondary);white-space:nowrap}.pe-empty-hint{font-size:11px;color:var(--color-textSecondary);font-style:italic;text-align:center;padding:12px 0}.pe-adj-toggle{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.6px;background:none;border:none;padding:0;cursor:pointer;width:100%;text-align:left}.pe-adj-reset-all{margin-left:auto;font-size:9.5px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--color-textSecondary);padding:2px 7px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-adj-reset-all:hover{color:var(--color-error);border-color:var(--color-error)}.pe-adj-list{display:flex;flex-direction:column;gap:6px}.pe-adj-var{background:var(--color-surfaceHover);border:1px solid var(--color-borderLight);border-radius:var(--radius-sm, 4px);padding:6px 8px}.pe-adj-var.pe-adj-modified{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 7%,transparent)}.pe-adj-header{display:flex;align-items:center;gap:5px;margin-bottom:3px}.pe-adj-name{font-family:var(--font-mono, monospace);font-size:11px;font-weight:700}.pe-adj-reset{margin-left:auto;font-size:9px;color:var(--color-textTertiary, #6b7280);background:none;border:none;cursor:pointer;padding:0 2px;text-decoration:underline}.pe-adj-reset:hover{color:var(--color-error)}.pe-adj-row{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--color-textSecondary)}.pe-adj-row label{width:10px;flex-shrink:0;font-weight:600}.pe-adj-row input[type=range]{flex:1;height:3px;accent-color:var(--color-primary)}.pe-adj-val{width:44px;text-align:right;font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-text);flex-shrink:0}.pe-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:8px 12px;box-shadow:0 1px 2px var(--color-shadow)}.pe-hz-btn{padding:6px 12px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);font-family:var(--font-mono, monospace);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap;min-width:56px}.pe-hz-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-anim-btn{padding:6px 16px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-anim-btn:hover{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}.pe-anim-btn.pe-anim-running{background:var(--color-primary);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 22%,transparent)}.pe-speed-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-textSecondary);white-space:nowrap}.pe-speed-slider{width:84px;height:4px;accent-color:var(--color-primary)}.pe-speed-val{font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-text);min-width:44px}.pe-toggle-btn{padding:5px 11px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-toggle-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pe-toggle-btn.pe-toggle-active{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:var(--color-primary);color:var(--color-primary)}.pe-reset-anim-btn{padding:5px 9px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:14px;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-reset-anim-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pe-newplot-btn{margin-left:auto;padding:5px 11px;border-radius:var(--radius-sm, 4px);border:1px dashed var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-newplot-btn:hover{border-color:var(--color-primary);border-style:solid;color:var(--color-primary)}.pe-clip-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 9px;border-radius:999px;border:1px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);font-size:10.5px;font-weight:600;white-space:nowrap}.pe-clip-clear{border:none;background:none;cursor:pointer;color:inherit;font-size:11px;line-height:1;padding:0 3px;opacity:.8}.pe-clip-clear:hover{opacity:1;color:var(--color-error)}.pe-diagram-actions{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.pe-plot-act{font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-textSecondary);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-plot-act:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pe-plot-act:disabled{opacity:.4;cursor:not-allowed}.pe-plot-x{position:absolute;top:8px;right:8px;z-index:10}.pe-plot-act.pe-plot-x:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error)}.pe-plot-act.pe-plot-act-on{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.pe-plot-mode{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;overflow:hidden}.pe-plot-mode-btn{font-size:10px;font-weight:600;padding:2px 8px;border:none;background:var(--color-surface);color:var(--color-textSecondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast, .15s ease)}.pe-plot-mode-btn+.pe-plot-mode-btn{border-left:1px solid var(--color-border)}.pe-plot-mode-btn:hover{color:var(--color-primary)}.pe-plot-mode-btn.pe-plot-mode-on{background:var(--color-primary);color:#fff;cursor:default}.pe-plot-empty{border-style:dashed}.pe-plot-empty-body{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px 16px;font-size:11.5px;font-style:italic;line-height:1.5;color:var(--color-textSecondary)}.pe-diagrams{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.pe-diagram-cell{position:relative;display:flex;flex-direction:column;gap:8px;flex:1 1 460px;min-width:280px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:10px;box-shadow:0 1px 3px var(--color-shadow);overflow:hidden}.pe-plot-resize{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:ew-resize;background:linear-gradient(135deg,transparent 0 45%,var(--color-textSecondary) 45% 55%,transparent 55% 70%,var(--color-textSecondary) 70% 80%,transparent 80%);opacity:.5;border-bottom-right-radius:var(--radius-md, 8px)}.pe-plot-resize:hover{opacity:1}.pe-plot-move{min-width:22px;padding-left:4px;padding-right:4px}.pe-diagram-cell.pe-plot-dropfocus{outline:2px dashed var(--color-primary);outline-offset:-3px}.pe-diagram-cell.pe-plot-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 45%,transparent),0 1px 3px var(--color-shadow)}.pe-plot-active-badge{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:var(--color-primary)}.pe-plot-grip{cursor:grab;color:var(--color-textSecondary);font-size:13px;line-height:1;padding-right:2px;opacity:.6;-webkit-user-select:none;user-select:none}.pe-plot-grip:hover{opacity:1;color:var(--color-primary)}.pe-plot-grip:active{cursor:grabbing}.pe-diagram-title{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text)}.pe-diagram-title-edit{font:inherit;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:4px;padding:1px 4px;min-width:70px;flex:1 1 auto;max-width:260px}.pe-diagram-title-edit:hover{border-color:var(--color-border)}.pe-diagram-title-edit:focus{outline:none;border-color:var(--color-primary, #2563eb);background:var(--color-surface);text-transform:none}.pe-diagram-title-edit::placeholder{color:var(--color-textSecondary);font-weight:500;text-transform:none}.pe-plot-desc{width:100%;box-sizing:border-box;margin-top:6px;font-family:inherit;font-size:12px;line-height:1.4;color:var(--color-text);background:var(--color-surfaceHover);border:1px solid var(--color-border);border-radius:6px;padding:5px 7px;resize:vertical}.pe-plot-desc::placeholder{color:var(--color-textSecondary)}.pe-plot-desc:focus{outline:none;border-color:var(--color-primary, #2563eb)}.pe-diagram-empty{width:100%;padding:48px 16px;text-align:center;font-size:12px;font-style:italic;color:var(--color-textSecondary);border:1px dashed var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-surface)}.pe-phasor-wrap{border-radius:var(--radius-sm, 4px);overflow:hidden;border:1px solid var(--color-border);background:#111827;min-width:0}.pe-card-scope-wrap{position:relative}.pe-scope-reset{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);font-size:14px;line-height:1;cursor:pointer;opacity:.85}.pe-scope-reset:hover{opacity:1;border-color:var(--color-primary);color:var(--color-primary)}.pe-phasor-canvas,.pe-card-scope-canvas{display:block;width:100%;max-width:100%;height:auto}.pe-scopes{display:flex;flex-direction:column;gap:10px}.pe-scope-section{border-radius:var(--radius-md, 8px);overflow:hidden;border:1px solid var(--color-border);background:#111827;box-shadow:0 1px 3px var(--color-shadow)}.pe-scope-header{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.pe-scope-title{font-size:10px;font-weight:700;color:#cbd5e1;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.pe-scope-traces{display:flex;flex-wrap:wrap;gap:8px}.pe-trace-label{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none}.pe-trace-label input[type=checkbox]{width:11px;height:11px;accent-color:var(--color-primary)}.pe-trace-swatch{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.pe-scope-canvas{display:block;width:100%;max-width:100%;height:auto}.pe-scope-empty{padding:18px;text-align:center;font-size:12px;color:#94a3b8;font-style:italic}.pe-scope-note{font-size:9.5px;color:var(--color-textSecondary);font-style:italic;text-align:right;padding-right:2px}.pe-study-toggle,.pe-calc-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;padding:0;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text)}.pe-study-count{margin-left:auto;font-size:10px;font-weight:700;background:var(--color-primary);color:#fff;border-radius:999px;padding:1px 8px;letter-spacing:0}.pe-study-empty{padding:12px;font-size:11px;font-style:italic;line-height:1.5;color:var(--color-textSecondary);background:var(--color-surfaceHover);border:1px dashed var(--color-border);border-radius:var(--radius-sm, 4px)}.pe-study-body{display:flex;flex-direction:column;gap:10px}.pe-study-hint,.pe-calc-hint{font-size:10px;line-height:1.5;color:var(--color-textSecondary)}.pe-study-group-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.pe-study-group-title,.pe-calc-group-title{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--color-textSecondary);margin-bottom:4px}.pe-study-addall{margin-left:auto;font-size:10px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-textSecondary);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-study-addall:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-study-rows{display:flex;flex-direction:column;gap:4px}.pe-study-row{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:5px 7px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover)}.pe-study-row.pe-study-V{border-left:3px solid #2563eb}.pe-study-row.pe-study-I{border-left:3px solid #dc2626}.pe-study-row-name{min-width:0;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pe-study-row-btns{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-start}.pe-study-cbtn{min-width:21px;padding:0 4px;height:21px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-textSecondary);font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:700;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-study-cbtn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-study-cbtn.pe-study-c-an,.pe-study-cbtn.pe-study-c-ab,.pe-study-cbtn.pe-study-c-pos{margin-left:5px}.pe-study-cbtn.pe-study-plotted{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:var(--color-success);color:var(--color-success);cursor:pointer}.pe-study-cbtn.pe-study-plotted:hover{border-color:var(--color-error);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 14%,transparent)}.pe-study-sets{margin-left:6px;height:21px;padding:0 8px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;font-weight:700;letter-spacing:.5px;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast, .15s ease)}.pe-study-sets:hover{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}.pe-calc-body{display:flex;flex-direction:column;gap:10px}.pe-calc-items{display:flex;flex-wrap:wrap;gap:5px}.pe-calc-chip{font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-textSecondary);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-calc-chip:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-diagram-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:8px;padding-right:28px;border-bottom:1px solid var(--color-borderLight)}.pe-chain-btn{margin-left:auto;font-size:10px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-textSecondary);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-chain-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pe-chain-btn.pe-chain-on{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pe-legend{display:flex;flex-direction:column;gap:1px;padding-top:8px;border-top:1px solid var(--color-borderLight)}.pe-leg-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:3px 4px;border-radius:var(--radius-sm, 4px);font-size:11px;transition:background var(--transition-fast, .15s ease)}.pe-leg-row:hover{background:var(--color-surfaceHover)}.pe-leg-row.pe-leg-hidden{opacity:.4}.pe-leg-check{width:13px;height:13px;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.pe-leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pe-leg-name{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:700;color:var(--color-text);min-width:42px;overflow-wrap:anywhere}.pe-leg-val{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10px;color:var(--color-textSecondary);white-space:nowrap}.pe-leg-tail{margin-left:auto;display:flex;align-items:center;gap:4px;flex-shrink:0}.pe-leg-from{display:flex;align-items:center;gap:3px;cursor:pointer}.pe-leg-act{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-sm, 4px);background:none;color:var(--color-textSecondary);font-size:11px;line-height:1;cursor:pointer;opacity:.55;transition:all var(--transition-fast, .15s ease)}.pe-leg-row:hover .pe-leg-act{opacity:1}.pe-leg-act:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-leg-del{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm, 4px);background:none;color:var(--color-textSecondary);font-size:11px;line-height:1;cursor:pointer;opacity:.5;transition:all var(--transition-fast, .15s ease)}.pe-leg-row:hover .pe-leg-del{opacity:1}.pe-leg-del:hover{background:color-mix(in srgb,var(--color-error) 14%,transparent);color:var(--color-error)}.pe-leg-from-icon{font-size:11px;color:var(--color-textSecondary)}.pe-leg-from-select{font-family:var(--font-mono, monospace);font-size:10px;padding:2px 5px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-textSecondary);cursor:pointer;max-width:96px;transition:border-color var(--transition-fast, .15s ease)}.pe-leg-from-select:hover{border-color:var(--color-primary)}.pe-dragging,.pe-dragging *{-webkit-user-select:none;user-select:none}.pe-ops-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:8px 12px;box-shadow:0 1px 2px var(--color-shadow)}.pe-ops-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--color-textSecondary)}.pe-ops-tools{display:flex;flex-wrap:wrap;gap:5px}.pe-op-tool{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:600;padding:4px 11px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-op-tool:hover{border-color:var(--color-primary);color:var(--color-primary)}.pe-op-tool.pe-op-tool-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 22%,transparent)}.pe-ops-prompt{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--color-text)}.pe-ops-next{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f59e0b;color:#fff;font-family:var(--font-mono, monospace)}.pe-ops-picked{font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-textSecondary)}.pe-ops-cancel{border:none;background:none;cursor:pointer;color:var(--color-textSecondary);font-size:13px;line-height:1;padding:0 2px}.pe-ops-cancel:hover{color:var(--color-error)}.pe-ops-hint{margin-left:auto;font-size:10.5px;color:var(--color-textSecondary)}.pe-op-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.pe-op-popover{position:fixed;z-index:61;transform:translate(-50%,10px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);box-shadow:0 10px 28px var(--color-shadow, rgba(0, 0, 0, .35));padding:10px;display:flex;flex-direction:column;gap:8px;min-width:172px}.pe-op-title{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:700;color:var(--color-text);text-align:center}.pe-op-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pe-op-btn{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:600;padding:7px 8px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast, .15s ease);white-space:nowrap}.pe-op-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.pe-hover-tip{position:fixed;z-index:62;transform:translate(-50%,calc(-100% - 12px));pointer-events:none;background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-sm, 4px);box-shadow:0 6px 20px var(--color-shadow, rgba(0, 0, 0, .35));padding:5px 9px;display:flex;flex-direction:column;gap:1px;white-space:nowrap}.pe-hover-tip-name{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;font-weight:700;color:var(--color-primary)}.pe-hover-tip-row{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:11px;color:var(--color-text)}.pe-hover-tip-rect{color:var(--color-textSecondary, var(--color-text));opacity:.85}.pe-measure{position:relative;margin:6px 0 2px;padding:7px 30px 7px 10px;border:1px solid color-mix(in srgb,#f59e0b 55%,var(--color-border));border-left:3px solid #f59e0b;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,#f59e0b 8%,var(--color-surface));display:flex;flex-direction:column;gap:2px}.pe-measure-main{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:13px;font-weight:700;color:var(--color-text)}.pe-measure-lead{font-size:11px;font-weight:600;color:color-mix(in srgb,#f59e0b 80%,var(--color-text))}.pe-measure-sub{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:10.5px;color:var(--color-textSecondary, var(--color-text));opacity:.9}.pe-measure-clear{position:absolute;top:5px;right:5px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm, 4px);background:transparent;color:var(--color-textSecondary, var(--color-text));cursor:pointer;font-size:12px;line-height:1;transition:all var(--transition-fast, .15s ease)}.pe-measure-clear:hover{background:color-mix(in srgb,#f59e0b 18%,transparent);color:var(--color-text)}.pe-fs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;background:var(--color-background)}.pe-fs-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.pe-fs-title{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text)}.pe-fs-exit{padding:6px 14px;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surfaceHover);color:var(--color-text);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.pe-fs-exit:hover{border-color:var(--color-primary);color:var(--color-primary)}.pe-fs-stage{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;padding:14px;overflow:hidden}.pe-fs-canvas{height:100%;max-height:100%;width:auto;max-width:100%;aspect-ratio:1 / 1;border-radius:var(--radius-md, 8px);border:1px solid var(--color-border);background:#111827}.pe-fs-controls{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--color-border);background:var(--color-surface)}@media(max-width:820px){.pe-layout{flex-direction:column}.pe-left{width:100%;max-height:none}.pe-funcpane{width:100%;max-height:320px}}.coordination-report{padding:20px;background:var(--color-surface);border-radius:8px;box-shadow:0 2px 4px var(--color-shadow);height:100%;overflow-y:auto}.coordination-report h3{margin-top:0;margin-bottom:20px;color:var(--color-text);border-bottom:2px solid var(--color-primary);padding-bottom:10px}.coordination-header{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.coordination-report .relay-info{padding:15px;background:var(--color-background);border-radius:4px}.coordination-report .relay-info h4{margin-top:0;margin-bottom:10px;color:var(--color-textSecondary);font-size:14px;text-transform:uppercase}.coordination-report .relay-info p{margin:5px 0;font-size:14px;color:var(--color-textSecondary)}.coordination-summary{margin-bottom:20px;padding:15px;background:var(--color-background);border-radius:4px}.status-badge{display:inline-block;padding:8px 16px;border-radius:20px;font-weight:600;margin-bottom:15px}.status-badge.coordinated{background:var(--color-success);color:#fff}.status-badge.violation{background:var(--color-warning);color:#fff}.cti-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat{display:flex;flex-direction:column;gap:5px}.stat-label{font-size:12px;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:18px;font-weight:600;font-family:Courier New,monospace;color:var(--color-text)}.violations-section{margin-bottom:20px;padding:15px;background:var(--color-surfaceHover);border-left:4px solid var(--color-warning);border-radius:4px}.violations-section h4{margin-top:0;margin-bottom:15px;color:var(--color-warning)}.violations-table,.checkpoints-table{width:100%;border-collapse:collapse;font-size:14px}.violations-table th,.checkpoints-table th{background:var(--color-background);padding:10px;text-align:left;font-weight:600;color:var(--color-textSecondary);border-bottom:2px solid var(--color-border)}.violations-table td,.checkpoints-table td{padding:8px 10px;border-bottom:1px solid var(--color-borderLight);color:var(--color-text)}.violation-row,.not-coordinated{background:var(--color-surfaceHover)}.status-indicator{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}.status-indicator.critical{background:var(--color-error);color:#fff}.status-indicator.warning{background:var(--color-warning);color:#fff}.checkpoints-section{margin-bottom:20px}.checkpoints-section h4{margin-bottom:10px;color:var(--color-textSecondary)}.checkpoints-scroll{max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:4px}.btn-secondary{padding:10px 20px;background:var(--color-textSecondary);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-secondary:hover{opacity:.9}.toast-container{position:fixed;bottom:20px;right:20px;z-index:10000;display:flex;flex-direction:column-reverse;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 4px 16px var(--color-shadow);min-width:300px;max-width:400px;pointer-events:all;border-left:4px solid;transition:all var(--transition-normal)}.toast-visible{animation:slideInFromRight .3s ease-out;opacity:1;transform:translate(0)}.toast-hidden{animation:slideOutToRight .3s ease-out;opacity:0;transform:translate(100%)}@keyframes slideOutToRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.toast-message{flex:1;font-size:14px;color:var(--color-text);line-height:1.4}.toast-close{background:transparent;border:none;color:var(--color-textSecondary);font-size:18px;cursor:pointer;padding:4px;line-height:1;transition:all var(--transition-fast);border-radius:4px}.toast-close:hover{background:var(--color-surfaceHover);color:var(--color-text)}.toast-success{border-left-color:var(--color-success)}.toast-success .toast-icon{background:var(--color-success);color:#fff}.toast-error{border-left-color:var(--color-error)}.toast-error .toast-icon{background:var(--color-error);color:#fff}.toast-warning{border-left-color:var(--color-warning)}.toast-warning .toast-icon{background:var(--color-warning);color:#fff}.toast-info{border-left-color:var(--color-info)}.toast-info .toast-icon{background:var(--color-info);color:#fff}@media(max-width:600px){.toast-container{left:20px;right:20px}.toast{min-width:auto;max-width:none}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--background-color, #f5f5f5)}.error-content{max-width:600px;width:100%;padding:2rem;background:var(--surface-color, #ffffff);border-radius:8px;box-shadow:0 4px 6px #0000001a;text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem}.error-content h2{color:var(--text-color, #333);margin-bottom:1rem;font-size:1.5rem}.error-message{color:var(--error-color, #d32f2f);margin:1rem 0;font-size:1rem;font-weight:500}.error-details{margin:1.5rem 0;text-align:left;background:var(--background-color, #f5f5f5);border-radius:4px;padding:1rem}.error-details summary{cursor:pointer;font-weight:600;color:var(--text-color, #333);-webkit-user-select:none;user-select:none;padding:.5rem}.error-details summary:hover{background:#0000000d;border-radius:4px}.error-stack{margin-top:1rem}.error-stack h4{margin:1rem 0 .5rem;color:var(--text-color, #333);font-size:.875rem}.error-stack pre{overflow-x:auto;font-size:.75rem;line-height:1.4;padding:.75rem;background:#fff;border:1px solid #ddd;border-radius:4px;color:#666;max-height:200px;overflow-y:auto}.error-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.error-actions button{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-color, #1976d2);color:#fff}.btn-primary:hover{background:var(--primary-dark, #1565c0);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-secondary{background:var(--secondary-color, #757575);color:#fff}.btn-secondary:hover{background:var(--secondary-dark, #616161);transform:translateY(-1px);box-shadow:0 2px 4px #0003}@media(prefers-color-scheme:dark){.error-boundary{background:var(--background-color, #1e1e1e)}.error-content{background:var(--surface-color, #2d2d2d)}.error-content h2{color:var(--text-color, #e0e0e0)}.error-details{background:var(--background-color, #1e1e1e)}.error-details summary{color:var(--text-color, #e0e0e0)}.error-stack h4{color:var(--text-color, #e0e0e0)}.error-stack pre{background:#1e1e1e;border-color:#444;color:#ccc}}.hotkey-legend{position:fixed;bottom:40px;left:20px;z-index:1000;pointer-events:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.hotkey-legend__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#000000b3;color:#fff;font-size:16px;cursor:default;-webkit-user-select:none;user-select:none;transition:opacity .15s ease;opacity:.7}.hotkey-legend__icon:hover{opacity:1}.hotkey-legend:hover .hotkey-legend__icon{display:none}.hotkey-legend__panel{display:none;background:#000c;color:#e8e8e8;border-radius:8px;padding:10px 12px;font-size:11px;line-height:1.5;min-width:220px;box-shadow:0 2px 10px #00000059}.hotkey-legend:hover .hotkey-legend__panel{display:block}.hotkey-legend__title{font-weight:600;font-size:11px;margin-bottom:6px;color:#fff;letter-spacing:.3px}.hotkey-legend__table{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center}.hotkey-legend__key{display:inline-block;background:#ffffff21;border:1px solid rgba(255,255,255,.25);border-radius:3px;padding:1px 5px;font-family:SF Mono,Consolas,Menlo,monospace;font-size:10px;color:#fff;white-space:nowrap;text-align:center;min-width:20px;line-height:1.6}.hotkey-legend__action{color:#ccc;white-space:nowrap}.tut-overlay{--tut-bg: #ffffff;--tut-fg: #1e293b;--tut-muted: #64748b;--tut-border: #cbd5e1;--tut-accent: #2563eb;--tut-accent-tip: #0d9488;--tut-accent-warn: #d97706;--tut-shadow: rgba(15, 23, 42, .18);--tut-scrim: rgba(15, 23, 42, .45);position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;pointer-events:none}@media(prefers-color-scheme:dark){.tut-overlay{--tut-bg: #1e293b;--tut-fg: #e2e8f0;--tut-muted: #94a3b8;--tut-border: #475569;--tut-shadow: rgba(0, 0, 0, .5);--tut-scrim: rgba(0, 0, 0, .55)}}:root[data-theme=dark] .tut-overlay{--tut-bg: #1e293b;--tut-fg: #e2e8f0;--tut-muted: #94a3b8;--tut-border: #475569;--tut-shadow: rgba(0, 0, 0, .5);--tut-scrim: rgba(0, 0, 0, .55)}:root[data-theme=light] .tut-overlay{--tut-bg: #ffffff;--tut-fg: #1e293b;--tut-muted: #64748b;--tut-border: #cbd5e1;--tut-shadow: rgba(15, 23, 42, .18);--tut-scrim: rgba(15, 23, 42, .45)}.tut-spotlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px var(--tut-scrim);border:2px solid var(--tut-accent);pointer-events:none;transition:left .25s ease,top .25s ease,width .25s ease,height .25s ease}.tut-scrim-plain{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--tut-scrim);pointer-events:none}.tut-arrow{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.tut-bubble{position:fixed;width:320px;max-width:calc(100vw - 24px);background:var(--tut-bg);color:var(--tut-fg);border:1px solid var(--tut-border);border-top:3px solid var(--tut-accent);border-radius:10px;box-shadow:0 8px 30px var(--tut-shadow);padding:14px 16px 12px;pointer-events:auto;font-size:14px;line-height:1.5;transition:left .25s ease,top .25s ease}.tut-bubble.tone-tip{border-top-color:var(--tut-accent-tip)}.tut-bubble.tone-warn{border-top-color:var(--tut-accent-warn)}.tut-bubble__title{font-weight:700;font-size:15px;margin:0 0 6px}.tut-bubble__body{margin:0 0 12px}.tut-bubble__body p{margin:0 0 6px}.tut-bubble__body code{background:color-mix(in srgb,var(--tut-fg) 12%,transparent);padding:1px 5px;border-radius:4px;font-size:12.5px}.tut-bubble__row{display:flex;align-items:center;justify-content:space-between;gap:8px}.tut-bubble__step{color:var(--tut-muted);font-size:12px;font-variant-numeric:tabular-nums}.tut-bubble__btns{display:flex;gap:8px}.tut-btn{font:inherit;font-size:13px;padding:5px 12px;border-radius:6px;cursor:pointer;border:1px solid var(--tut-border);background:transparent;color:var(--tut-fg)}.tut-btn:hover{background:color-mix(in srgb,var(--tut-fg) 8%,transparent)}.tut-btn--primary{background:var(--tut-accent);border-color:var(--tut-accent);color:#fff}.tut-btn--primary:hover{filter:brightness(1.06)}.tut-btn--exit{color:var(--tut-muted);border-color:transparent}.tut-btn:disabled{opacity:.4;cursor:default}.tut-quiz{margin:10px 0 4px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--tut-border) 60%,transparent)}.tut-quiz__prompt{margin:0 0 8px;font-weight:600;font-size:13.5px}.tut-quiz__opts{display:flex;flex-direction:column;gap:6px}.tut-quiz__opt{font:inherit;font-size:13px;text-align:left;line-height:1.35;padding:7px 10px;border-radius:7px;cursor:pointer;border:1px solid var(--tut-border);background:transparent;color:var(--tut-fg)}.tut-quiz__opt:hover{background:color-mix(in srgb,var(--tut-fg) 7%,transparent)}.tut-quiz__opt.is-correct{border-color:#16a34a;background:color-mix(in srgb,#16a34a 16%,transparent)}.tut-quiz__opt.is-wrong{border-color:var(--tut-accent-warn);background:color-mix(in srgb,var(--tut-accent-warn) 15%,transparent)}.tut-quiz__feedback{margin:8px 0 0;font-size:12.5px;line-height:1.4}.tut-quiz__feedback.is-correct{color:#15803d}.tut-quiz__feedback.is-wrong{color:var(--tut-accent-warn)}@media(prefers-color-scheme:dark){.tut-quiz__feedback.is-correct{color:#4ade80}}:root[data-theme=dark] .tut-quiz__feedback.is-correct{color:#4ade80}.tut-cursor{position:fixed;z-index:4001;pointer-events:none;transform:translate(-3px,-2px);transition:left .06s linear,top .06s linear;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.tut-cursor svg{display:block}.tut-cursor__ripple{position:absolute;left:2px;top:2px;width:10px;height:10px;border-radius:50%;border:2px solid var(--tut-accent);opacity:0;transform:translate(-50%,-50%) scale(.4)}.tut-cursor[data-state=click] .tut-cursor__ripple{animation:tut-click .32s ease-out}@keyframes tut-click{0%{opacity:.9;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(2.6)}}.tut-cursor[data-state=click]{transform:translate(-3px,-2px) scale(.9)}@media(prefers-reduced-motion:reduce){.tut-spotlight,.tut-bubble,.tut-cursor{transition:none}.tut-cursor__ripple{animation:none}}.soe-timeline-container{position:relative;width:100%;height:24px;margin-top:8px;display:flex;align-items:center}.soe-timeline-track{position:absolute;left:0;right:0;height:8px;background-color:var(--color-border);border-radius:4px;pointer-events:none;box-shadow:inset 0 1px 3px #0000001a}.soe-timeline-marker{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;z-index:6;transition:transform .15s ease-out,box-shadow .15s ease-out;box-shadow:0 1px 2px #0003}.soe-timeline-marker:after{content:"";position:absolute;top:-8px;bottom:-8px;left:-8px;right:-8px;border-radius:50%;background:transparent}.soe-timeline-marker:before{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;background-color:#1f2937;color:#f9fafb;padding:6px 10px;border-radius:6px;font-size:11px;font-family:monospace;white-space:pre;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease-out,visibility .15s ease-out;box-shadow:0 4px 12px #00000040;z-index:100;line-height:1.4;text-align:left}.soe-timeline-marker:hover:before{opacity:1;visibility:visible}.soe-timeline-marker:hover{transform:translate(-50%,-50%) scale(1.4);z-index:10;box-shadow:0 2px 6px #0000004d}.soe-timeline-marker--pickup{background-color:#f59e0b}.soe-timeline-marker--trip{background-color:#ef4444}.soe-timeline-marker--breaker{background-color:#3b82f6}.soe-timeline-marker--fault{background-color:#a91d2a}.soe-timeline-scrubber{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:5;margin:0}.soe-timeline-playhead{position:absolute;top:0;bottom:0;left:0;background-color:var(--color-text, #000);border-radius:4px;pointer-events:none;z-index:1}.soe-controls-row{display:flex;align-items:center;gap:6px;width:100%}.collab-widget{position:relative;display:inline-flex;align-items:center}.collab-fab{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;font-size:13px;font-weight:600;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;box-shadow:0 4px 14px var(--color-shadow);cursor:pointer;white-space:nowrap}.collab-fab:hover{border-color:var(--color-primary)}.collab-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 6px currentColor}.collab-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:901;width:320px;max-width:calc(100vw - 24px);max-height:70vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 16px 48px var(--color-shadow);overflow:hidden;font-size:13px;color:var(--color-text)}.collab-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,rgba(67,97,238,.06),transparent)}.collab-x{background:none;border:none;color:var(--color-textSecondary);font-size:15px;cursor:pointer}.collab-body{padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.collab-field{display:flex;flex-direction:column;gap:4px}.collab-field span{font-size:11px;color:var(--color-textSecondary)}.collab-body input{padding:7px 9px;font-size:13px;color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:7px;outline:none;width:100%}.collab-code{text-transform:uppercase;letter-spacing:1px;font-family:ui-monospace,monospace}.collab-row{display:flex;gap:8px;align-items:center}.collab-or{text-align:center;font-size:11px;color:var(--color-textSecondary);opacity:.8}.collab-btn{padding:7px 12px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--color-text);background:transparent;border:1px solid var(--color-border);border-radius:7px;cursor:pointer}.collab-btn:hover:not(:disabled){background:var(--color-surfaceHover)}.collab-btn:disabled{opacity:.5;cursor:default}.collab-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary);flex:1}.collab-btn.danger{color:var(--color-error, #e11d48);border-color:var(--color-error, #e11d48)}.collab-error{color:var(--color-error, #e11d48);font-size:12px}.collab-hint{font-size:11px;color:var(--color-textSecondary);opacity:.85;line-height:1.5}.collab-status{display:flex;flex-direction:column;gap:6px}.collab-status .muted{color:var(--color-textSecondary);font-size:11px}.collab-status code{font-family:ui-monospace,monospace;font-size:14px;letter-spacing:1px}.collab-room{display:flex;align-items:center;gap:8px}.collab-copy{margin-left:auto;padding:3px 9px;font-size:11px;font-weight:600;color:var(--color-primary);background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;white-space:nowrap}.collab-copy:hover{background:var(--color-surfaceHover);border-color:var(--color-primary)}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--color-text) 10%,transparent)}.badge.you{background:#22c55e26;color:#16a34a}.badge.warn{background:#ef444426;color:#dc2626}.collab-roster{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.collab-member{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:7px;background:var(--color-background)}.collab-member.controlling{outline:1px solid rgba(34,197,94,.4)}.collab-member-name{display:inline-flex;align-items:center;gap:6px}.collab-member-name .role{font-size:10px;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.5px}.collab-give{font-size:11px;padding:3px 8px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-primary);cursor:pointer}.collab-reconnect{display:flex;align-items:center;gap:8px;font-weight:600}.collab-reconnect code{font-family:ui-monospace,monospace;letter-spacing:1px}.collab-chat{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--color-border);padding-top:10px}.collab-chat-log{max-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;font-size:12px}.app--mobile .collab-panel{left:auto;right:0}.collab-follow-banner{position:fixed;top:0;left:0;right:0;z-index:902;display:flex;align-items:center;justify-content:center;gap:8px;padding:5px 12px;font-size:12px;font-weight:600;color:#7c2d12;background:#fde68a;border-bottom:1px solid #f59e0b}.collab-follow-banner.warn{color:#fff;background:#dc2626;border-bottom-color:#b91c1c}.app{display:flex;flex-direction:column;height:100vh;background:var(--color-background);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-normal)}.app-header{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:10px 24px;background:var(--color-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-glassBorder);color:var(--color-text);box-shadow:0 4px 30px #0000001a;z-index:100;animation:slideInFromTop .5s cubic-bezier(.175,.885,.32,1.275)}.header-main-row{display:flex;justify-content:flex-start;gap:24px;align-items:center;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.header-main-row::-webkit-scrollbar{height:6px}.header-left{display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-logo-link{display:inline-flex;line-height:0}.brand-logo{height:40px;width:auto;display:block;border-radius:8px}.brand-links{display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.3;white-space:nowrap}.brand-links-row{display:flex;align-items:center;gap:6px}.brand-links a{color:var(--color-primary, #4361ee);text-decoration:none;font-weight:500}.brand-links a:hover{text-decoration:underline}.brand-links-row span{opacity:.4}.brand-credit{color:var(--color-text);opacity:.6;font-weight:500}.brand-divider{width:1px;align-self:stretch;margin:4px 0;background:var(--color-glassBorder)}.header-left h1{font-size:20px;font-weight:600;margin:0;display:flex;align-items:center;gap:10px;white-space:nowrap}.header-left h1:before{content:"⚡";font-size:24px;animation:pulse 2s ease-in-out infinite}.project-name{font-size:14px;opacity:.95;padding:6px 14px;background:color-mix(in srgb,var(--color-text) 12%,transparent);color:var(--color-text);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.project-name:hover{background:color-mix(in srgb,var(--color-text) 20%,transparent);transform:scale(1.05)}.header-actions{display:flex;gap:14px;align-items:center}.ui-scale-group{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.ui-scale-label{font-size:11px;font-weight:600;line-height:1.15;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;-webkit-user-select:none;user-select:none}.ui-scale-controls{display:inline-flex;align-items:center;flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:0 2px 6px #0000000d}.ui-scale-btn{padding:6px 11px;min-width:34px;background:transparent;color:var(--color-text);border:none;font-size:13px;font-weight:700;line-height:1;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.ui-scale-btn+.ui-scale-btn{border-left:1px solid var(--color-border)}.ui-scale-btn:hover{background:var(--color-surfaceHover);color:var(--color-primaryLight)}.ui-scale-btn:active{transform:translateY(1px)}.btn-header{padding:8px 18px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;white-space:nowrap;font-weight:500;cursor:pointer;transition:all var(--transition-normal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 6px #0000000d;display:flex;align-items:center;gap:6px}.btn-header:hover{background:var(--color-surfaceHover);border-color:var(--color-primaryLight);transform:translateY(-1px);box-shadow:0 4px 12px var(--color-shadow);color:var(--color-primaryLight)}.btn-header:active{transform:translateY(0)}.theme-toggle{padding:8px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);font-size:18px}.theme-toggle:hover{background:#ffffff40;transform:rotate(180deg) scale(1.1)}.app-content{display:flex;flex:1;overflow:hidden}.app--follower .app-content,.app--tutorial-driving .app-content{pointer-events:none;filter:saturate(.9)}.sidebar{background:var(--color-glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 4px 30px var(--color-shadow);border-right:1px solid var(--color-glassBorder);overflow-y:auto;flex-shrink:0}.sidebar-left{border-right:none;animation:slideInFromLeft .4s ease-out}.sidebar-right{border-left:none;animation:slideInFromRight .4s ease-out}.resize-handle{flex-shrink:0;width:5px;background:var(--color-border);cursor:col-resize;position:relative;transition:background var(--transition-fast);z-index:20;touch-action:none}.resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:2px;background:var(--color-textSecondary);opacity:0;transition:opacity var(--transition-fast)}.resize-handle:hover,.resize-handle:active{background:var(--color-primary)}.resize-handle:hover:after,.resize-handle:active:after{opacity:.6}.sidebar-section{padding:20px;border-bottom:1px solid var(--color-borderLight);animation:fadeIn .5s ease-out}.sidebar-section:last-child{border-bottom:none}.sidebar-section h3{font-size:14px;font-weight:600;color:var(--color-textSecondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.main-canvas,.center-panel{flex:1;display:flex;flex-direction:column;background:var(--color-background);overflow:hidden;min-width:0}.view-tabs{display:flex;gap:6px;padding:12px 16px;background:var(--color-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-borderLight);box-shadow:0 2px 10px var(--color-shadow);position:relative;z-index:10;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.view-tabs::-webkit-scrollbar{height:6px}.view-tab{padding:10px 22px;background:transparent;color:var(--color-textSecondary);border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-bounce);position:relative;flex-shrink:0;white-space:nowrap}.view-tab:hover{background:var(--color-surfaceHover);color:var(--color-text);transform:translateY(-2px)}.view-tab.active{background:var(--color-gradientPrimary);color:#fff;box-shadow:0 4px 15px var(--color-glowPrimary);transform:translateY(-1px)}.view-tab.active:after{content:"";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background-color:var(--color-primaryLight);box-shadow:0 0 10px var(--color-primaryLight)}.view-content{flex:1;overflow:hidden;position:relative}.view-panel{width:100%;height:100%;animation:fadeIn .3s ease-out}.add-element-section{position:relative}.btn-add-element{width:100%;padding:14px;background:var(--color-gradientPrimary);color:#fff;border:none;border-radius:var(--radius-full);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-bounce);box-shadow:0 4px 15px var(--color-glowPrimary);position:relative;overflow:hidden}.btn-add-element:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:all .5s ease}.btn-add-element:hover{transform:translateY(-3px);box-shadow:0 8px 25px var(--color-glowPrimary)}.btn-add-element:hover:before{left:100%}.btn-add-element:active{transform:translateY(0)}.add-menu{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:var(--color-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--color-glassBorder);border-radius:var(--radius-md);box-shadow:0 8px 32px var(--color-shadow);z-index:1000;overflow:hidden;animation:scaleIn .2s cubic-bezier(.4,0,.2,1)}.add-menu-item{width:100%;padding:12px 16px;background:transparent;color:var(--color-text);border:none;text-align:left;font-size:14px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:10px}.add-menu-item:hover{background:var(--color-surfaceHover);padding-left:20px}.add-menu-item:before{content:"➕";font-size:16px}.project-info{display:flex;flex-direction:column;gap:8px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-background);border-radius:var(--radius-sm);font-size:13px;transition:all var(--transition-fast)}.info-row:hover{background:var(--color-surfaceHover);transform:translate(4px)}.info-label{color:var(--color-textSecondary);font-weight:500}.info-value{color:var(--color-text);font-weight:600;padding:2px 8px;background:var(--color-primary);color:#fff;border-radius:12px;font-size:12px}.view-controls{display:flex;flex-direction:column;gap:10px}.control-group{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-background);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.control-group:hover{background:var(--color-surfaceHover)}.control-label{font-size:13px;color:var(--color-text);font-weight:500}.toggle-switch{position:relative;width:44px;height:24px;background:var(--color-border);border-radius:12px;cursor:pointer;transition:all var(--transition-fast)}.toggle-switch.active{background:var(--color-primary)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:all var(--transition-fast);box-shadow:0 2px 4px #0003}.toggle-switch.active:after{left:22px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 20px;background:var(--color-surface);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-textSecondary);box-shadow:0 -2px 8px var(--color-shadow)}.status-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--color-background);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.status-item:hover{background:var(--color-surfaceHover);transform:scale(1.05)}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:pulse 2s ease-in-out infinite}@media(max-width:1100px){.sidebar-left{width:200px;min-width:200px}.sidebar-right{width:260px;min-width:260px}}@media(max-width:768px){.sidebar-left,.sidebar-right{position:absolute;top:0;bottom:0;z-index:50}.sidebar-left{left:-220px}.sidebar-right{right:-300px}.sidebar-left.open{left:0}.sidebar-right.open{right:0}}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:6px 12px;background:var(--color-text);color:var(--color-surface);font-size:12px;border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--transition-fast)}.tooltip:hover:after{opacity:1;transform:translate(-50%) translateY(-4px)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:var(--color-success);color:#fff}.badge-warning{background:var(--color-warning);color:#fff}.badge-error{background:var(--color-error);color:#fff}.badge-info{background:var(--color-info);color:#fff}.element-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sidebar-right--collapsed,.sidebar-left--collapsed{display:flex;flex-direction:column;align-items:center;padding-top:6px;background:var(--color-surface)}.sidebar-right--collapsed{border-left:1px solid var(--color-border)}.sidebar-left--collapsed{border-right:1px solid var(--color-border)}.sidebar-collapse-btn{width:24px;height:24px;padding:0;border-radius:4px;border:1px solid var(--color-border);background:var(--color-background);color:var(--color-textSecondary);cursor:pointer;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center}.sidebar-collapse-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.sidebar-collapse-btn--inline{margin-left:auto;align-self:center}.sidebar-collapsed-label{writing-mode:vertical-rl;transform:rotate(180deg);margin-top:12px;font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--color-textSecondary);-webkit-user-select:none;user-select:none;white-space:nowrap}.element-group-label{font-size:10px;font-weight:600;letter-spacing:.5px;color:var(--color-textSecondary);text-transform:uppercase;margin-top:12px;margin-bottom:4px;opacity:.75}.element-group-label:first-child{margin-top:0}.btn-element{position:relative;width:100%;min-height:60px;padding:10px 6px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-glassBorder);border-radius:var(--radius-md);font-size:11px;font-weight:600;line-height:1.25;cursor:pointer;transition:all var(--transition-bounce);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-element:hover{background:var(--color-surfaceHover);border-color:var(--color-primaryLight);color:var(--color-primaryLight);transform:translateY(-3px);box-shadow:0 8px 20px var(--color-shadow)}.btn-element:active{transform:scale(.95)}.btn-element.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 0 0 2px var(--color-primary) inset,0 0 8px #0071e359}.btn-element.active:hover{background:var(--color-primary);color:#fff;transform:none}.btn-element.active .elem-count{background:#ffffff40;color:#fff}.elem-count{position:absolute;top:4px;right:4px;padding:0 5px;border-radius:10px;font-size:9.5px;font-weight:700;line-height:15px;background:var(--color-primary);color:#fff;opacity:.9;min-width:16px;text-align:center}.btn-load-sample{width:100%;padding:8px 12px;background:#3498db1a;border:1px solid rgba(52,152,219,.3);border-radius:var(--radius-sm);color:var(--color-primary);font-size:12px;font-weight:600;cursor:pointer;text-align:left;transition:all .15s}.btn-load-sample:hover{background:#3498db2e;border-color:var(--color-primary)}.btn-load-sample--small{padding:5px 10px;font-size:11px;opacity:.8}.btn-load-sample--small:hover{opacity:1}.info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-background);border-radius:var(--radius-sm);font-size:13px;transition:all var(--transition-fast);color:var(--color-text)}.info-item span{color:var(--color-textSecondary)}.info-item strong{color:var(--color-text);font-weight:600}.sidebar-tabs{display:flex;border-bottom:2px solid var(--color-border);background:var(--color-surface)}.sidebar-tab{flex:1;padding:12px 16px;background:transparent;color:var(--color-textSecondary);border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.5px;position:relative}.sidebar-tab:hover{color:var(--color-text);background:var(--color-surfaceHover)}.sidebar-tab.active{color:var(--color-primary);background:var(--color-surface)}.sidebar-tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--color-primary)}.sidebar-content{padding:16px;overflow-y:auto;flex:1}.canvas-content{flex:1;overflow:auto;position:relative;display:flex;flex-direction:column;min-height:0}.canvas-content>.diagram-host{flex:1;position:relative;overflow:hidden;min-height:0}.view-scale{flex:1;min-height:0;display:flex;flex-direction:column}.app-footer{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding:6px 20px;background:var(--color-surface);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-textSecondary);box-shadow:0 -2px 8px var(--color-shadow)}.app-footer span{transition:all var(--transition-fast)}.status-ready{color:var(--color-success);font-weight:600;display:flex;align-items:center;gap:6px}.status-ready:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:pulse 2s ease-in-out infinite}.tcc-container{width:100%;height:100%;padding:16px;overflow:auto}.zoom-controls{display:flex;align-items:center;gap:4px;padding:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);position:absolute;top:16px;right:16px;z-index:10;box-shadow:0 2px 8px var(--color-shadow)}.zoom-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text);border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.zoom-btn:hover{background:var(--color-surfaceHover);color:var(--color-primary)}.zoom-level{font-size:12px;font-weight:600;color:var(--color-textSecondary);min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.fault-overlay-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.fault-overlay-btn:hover{background:var(--color-surfaceHover);border-color:#ff5722;color:#ff5722}.fault-overlay-btn.active{background:#ff5722;color:#fff;border-color:#ff5722;box-shadow:0 1px 6px #ff572266}.fault-overlay-btn.active:hover{background:#e64a19;border-color:#e64a19;color:#fff}.shortcuts-help{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;z-index:1000;box-shadow:0 8px 32px var(--color-shadow);min-width:360px;max-width:480px;animation:scaleIn .2s ease-out}.shortcuts-help h3{margin:0 0 16px;color:var(--color-text);font-size:16px;border-bottom:2px solid var(--color-primary);padding-bottom:8px}.shortcut-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-borderLight)}.shortcut-row:last-child{border-bottom:none}.shortcut-key{display:inline-block;padding:2px 8px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:12px;font-weight:600;color:var(--color-text)}.shortcut-desc{color:var(--color-textSecondary);font-size:13px}.shortcuts-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay);z-index:999;animation:fadeIn .2s ease-out}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}.confirm-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;min-width:320px;max-width:440px;box-shadow:0 8px 32px var(--color-shadow);animation:scaleIn .2s ease-out}.confirm-dialog h4{margin:0 0 12px;color:var(--color-text);font-size:16px}.confirm-dialog p{margin:0 0 20px;color:var(--color-textSecondary);font-size:14px;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.share-phasor-toggle{display:flex;align-items:center;gap:8px;margin:10px 0 4px;cursor:pointer}.share-choice-list{display:flex;flex-direction:column;gap:10px;margin:14px 0 4px}.share-choice-btn{width:100%;text-align:left;padding:10px 12px}.share-choice-sub{display:block;font-size:.85em;opacity:.8;margin-top:2px}.btn-cancel{padding:8px 16px;background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--color-surfaceHover)}.btn-confirm{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-confirm:hover{opacity:.9;transform:translateY(-1px)}.btn-confirm.danger{background:var(--color-error)}.project-name-input{font-size:14px;padding:6px 14px;background:color-mix(in srgb,var(--color-text) 14%,transparent);border:1px solid color-mix(in srgb,var(--color-text) 30%,transparent);border-radius:16px;color:var(--color-text);outline:none;width:180px;transition:all var(--transition-fast)}.project-name-input:focus{background:color-mix(in srgb,var(--color-text) 20%,transparent);border-color:color-mix(in srgb,var(--color-text) 50%,transparent)}.project-name-input::placeholder{color:color-mix(in srgb,var(--color-text) 55%,transparent)}.phasor-view{height:100%;display:flex;flex-direction:column;overflow-y:auto;background:var(--color-background)}.phasor-view-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px 24px 12px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.phasor-view-header-left{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.phasor-view-title{margin:0;font-size:17px;font-weight:700;color:var(--color-text);letter-spacing:-.2px}.phasor-view-subtitle{font-size:12px;color:var(--color-primary, #3498db);font-weight:600;font-family:var(--font-mono, monospace)}.phasor-view-note{font-size:11px;color:var(--color-textSecondary);opacity:.8}.phasor-view-body{flex:1;padding:20px 24px;max-width:1100px;width:100%;margin:0 auto;box-sizing:border-box}.phasor-view-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px;text-align:center;color:var(--color-textSecondary)}.phasor-view-empty-icon{font-size:52px;opacity:.3;line-height:1}.phasor-view-empty-title{margin:0;font-size:18px;font-weight:600;color:var(--color-text)}.phasor-view-empty-msg{margin:0;font-size:13px;max-width:380px;line-height:1.6}.phasor-view-empty-btn{margin-top:8px;padding:9px 22px;border-radius:8px;border:none;background:var(--color-primary, #3498db);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.phasor-view-empty-btn:hover{opacity:.88}.app--mobile{height:100dvh}.app--mobile .app-header{padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));animation:none}.mobile-header{display:flex;align-items:center;gap:10px;width:100%}.mobile-header-title{flex:1;min-width:0;font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-header-title small{display:block;font-size:11px;font-weight:500;opacity:.6;overflow:hidden;text-overflow:ellipsis}.mobile-icon-btn{flex-shrink:0;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:19px;line-height:1;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;position:relative;transition:background var(--transition-fast),border-color var(--transition-fast)}.mobile-icon-btn:active{background:var(--color-surfaceHover)}.mobile-icon-btn .badge-dot{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:10px;font-weight:700;line-height:16px;text-align:center;background:var(--color-error);color:#fff}.mobile-more-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:transparent}.mobile-more-sheet{position:fixed;top:calc(env(safe-area-inset-top) + 56px);right:8px;z-index:1301;width:min(82vw,300px);max-height:75vh;overflow-y:auto;overscroll-behavior:contain;padding:8px;border-radius:14px;background:var(--color-surface);border:1px solid var(--color-glassBorder);box-shadow:0 12px 40px var(--color-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:scaleIn .16s ease-out}.mobile-more-sheet .sheet-section-label{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--color-textSecondary);padding:10px 10px 4px}.mobile-more-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 10px;border:none;border-radius:10px;background:transparent;color:var(--color-text);font-size:14px;font-weight:500;text-align:left;cursor:pointer}.mobile-more-item:active{background:var(--color-surfaceHover)}.mobile-more-item[disabled]{opacity:.4}.mobile-more-item .item-state{margin-left:auto;font-size:12px;font-weight:600;color:var(--color-textSecondary)}.mobile-more-check{display:flex;align-items:center;gap:10px;padding:10px;font-size:13px;cursor:pointer}.mobile-more-check input{width:18px;height:18px}.app--mobile .app-content{position:relative}.app--mobile .sidebar-left,.app--mobile .sidebar-right{position:fixed;top:0;bottom:0;z-index:1250;zoom:1;width:min(92vw,var(--drawer-w, 360px))!important;min-width:0!important;max-width:92vw;padding-top:env(safe-area-inset-top);padding-bottom:calc(60px + env(safe-area-inset-bottom));box-shadow:0 0 50px #00000080;transition:transform .26s cubic-bezier(.22,.61,.36,1);animation:none!important;will-change:transform;overscroll-behavior:contain}.app--mobile .sidebar-left{left:0;transform:translate(-104%)}.app--mobile .sidebar-right{right:0;transform:translate(104%)}.app--left-open .sidebar-left,.app--right-open .sidebar-right{transform:translate(0)}.mobile-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1240;background:#00000073;animation:fadeIn .2s ease-out}.app--mobile .resize-handle{display:none}.drawer-resize-grip{position:fixed;top:64px;bottom:24px;width:24px;z-index:1260;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none;--grip-edge: min(92vw, var(--drawer-w, 360px))}.drawer-resize-grip--left{left:calc(var(--grip-edge) - 12px)}.drawer-resize-grip--right{right:calc(var(--grip-edge) - 12px)}.drawer-resize-grip:after{content:"";width:4px;height:46px;border-radius:2px;background:var(--color-primary);opacity:.55;box-shadow:0 0 0 1px #0000004d}.drawer-resize-grip:active:after{opacity:.95}.mobile-mode-banner{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;background:var(--color-primary);color:#fff;z-index:30}.mobile-mode-banner--fault{background:#d84315}.mobile-mode-banner__text{font-size:13px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-mode-banner__cancel{flex-shrink:0;min-height:34px;padding:6px 16px;border-radius:17px;border:1px solid rgba(255,255,255,.65);background:#ffffff2e;color:#fff;font-size:13px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-mode-banner__cancel:active{background:#ffffff4d}.diagram-connect-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:7px 8px 7px 14px;border-radius:22px;background:#2e7d32;color:#fff;box-shadow:0 4px 14px #0006}.diagram-connect-banner__text{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diagram-connect-banner__cancel{flex-shrink:0;min-height:32px;padding:5px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.65);background:#ffffff2e;color:#fff;font-size:13px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.diagram-connect-banner__cancel:active{background:#ffffff52}.app--mobile .fault-toolbar{bottom:8px}.app--mobile .fault-toolbar .ft-panel{max-height:100%;overflow-y:auto}.app--mobile .view-tabs{display:none}.mobile-nav{flex-shrink:0;display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -2px 14px var(--color-shadow);padding-bottom:env(safe-area-inset-bottom);z-index:60}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav-item{flex:1 0 auto;min-width:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 6px;border:none;background:transparent;color:var(--color-textSecondary);cursor:pointer;transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent}.mobile-nav-item.active{color:var(--color-primary)}.mobile-nav-item.active .mobile-nav-icon{transform:translateY(-1px)}.mobile-nav-icon{position:relative;font-size:20px;line-height:1;transition:transform var(--transition-fast)}.mobile-nav-label{font-size:10.5px;font-weight:600;letter-spacing:.2px}.app--phone .mobile-nav-item{flex:1 1 0;min-width:0;padding:7px 2px;gap:2px}.app--phone .mobile-nav-icon{font-size:18px}.app--phone .mobile-nav-label{font-size:9.5px;letter-spacing:0;white-space:nowrap}.mobile-nav-dot{position:absolute;top:-3px;right:-7px;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--color-surface)}.mobile-nav-dot--pass{background:#2ecc71}.mobile-nav-dot--warning{background:#f39c12}.mobile-nav-dot--fail{background:#e74c3c}.app--mobile .diagram-host,.app--mobile .konvajs-content,.app--mobile .konvajs-content canvas{touch-action:none}.app--mobile .zoom-controls{top:auto;bottom:14px;right:12px;gap:2px;padding:5px}.app--touch .zoom-btn{width:40px;height:40px;font-size:20px}.app--mobile .canvas-legend-overlay{right:auto;left:10px;bottom:12px;width:min(155px,46vw);padding:9px 10px}.mobile-overlay-toggle{position:absolute;top:12px;right:12px;z-index:12;display:inline-flex;align-items:center;gap:5px;padding:9px 14px;border-radius:22px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:13px;font-weight:600;box-shadow:0 2px 10px var(--color-shadow);cursor:pointer}.mobile-overlay-toggle.active{background:#ff5722;border-color:#ff5722;color:#fff}.app--mobile .canvas-content{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.app--mobile .canvas-content>*{max-width:100%}.app--mobile .diagram-quick-actions{flex-wrap:wrap;gap:6px;padding:8px 10px}.app--mobile input:not([type=checkbox]):not([type=radio]),.app--mobile select:not([size]):not([multiple]),.app--mobile textarea:not([readonly]):not([hidden]){font-size:16px}.app--mobile .sidebar input:not([type=checkbox]):not([type=radio]),.app--mobile .sidebar select{min-height:38px}.app--touch .canvas-content button,.app--touch .sidebar button.btn-load-sample{min-height:38px}.app--mobile .status-bar,.app--mobile .app-footer{display:none}.app--mobile .phasor-view-body{padding:14px 12px}.app--mobile .phasor-view-header{padding:10px 14px}.app--mobile .hotkey-legend{display:none}.app--mobile .coordination-tcc-plot,.app--mobile .tcc-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.app--mobile .canvas-content table{display:block;width:max-content;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.app--mobile .fault-analysis-panel .data-card{overflow-x:auto;-webkit-overflow-scrolling:touch}.app--mobile .fault-analysis-panel .two-column-layout,.app--mobile .fault-analysis-panel .column-left,.app--mobile .fault-analysis-panel .column-right{min-width:0}.app--mobile .coord-mode-toggle{display:flex!important;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.app--mobile .coord-mode-toggle button{flex:0 0 auto}.app--mobile .canvas-content div:has(>button+button):not(.coord-mode-toggle){flex-wrap:wrap}.app--mobile .confirm-dialog,.app--mobile .shortcuts-help{width:calc(100vw - 28px);min-width:0;max-width:440px;max-height:84vh;overflow-y:auto}
