:root{--primary: #f59e0b;--primary-dark: #d97706;--primary-light: #fbbf24;--primary-text: #92400e;--secondary: #8b5cf6;--secondary-dark: #7c3aed;--secondary-light: #a78bfa;--accent-blue: #3b82f6;--accent-purple: #8b5cf6;--accent-pink: #ec4899;--accent-orange: #f59e0b;--accent-green: #22c55e;--accent-red: #ef4444;--accent-yellow: #eab308;--background: #f5f5f5;--background-secondary: #ffffff;--background-tertiary: #f8f9fa;--card: #ffffff;--card-hover: #f8f9fa;--border: #e5e7eb;--border-light: #f3f4f6;--text-primary: #1f2937;--text-secondary: #4b5563;--text-muted: #6b7280;--text-disabled: #9ca3af;--success: #22c55e;--success-bg: rgba(34, 197, 94, .1);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .1);--error: #ef4444;--error-bg: rgba(239, 68, 68, .1);--info: #3b82f6;--info-bg: rgba(59, 130, 246, .1);--gradient-primary: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);--gradient-secondary: linear-gradient(135deg, var(--secondary) 0%, var(--accent-pink) 100%);--gradient-success: linear-gradient(135deg, var(--success) 0%, #16a34a 100%);--gradient-warning: linear-gradient(135deg, var(--warning) 0%, var(--primary-dark) 100%);--gradient-error: linear-gradient(135deg, var(--error) 0%, #dc2626 100%);--gradient-glass: linear-gradient(135deg, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, .4) 100%);--glass-bg: rgba(255, 255, 255, .85);--glass-border: rgba(0, 0, 0, .08);--glass-shadow: 0 4px 16px rgba(0, 0, 0, .08);--glass-blur: blur(10px);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(245, 158, 11, .3);--shadow-glow-purple: 0 0 20px rgba(139, 92, 246, .3);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--font-family: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-mono: "Consolas", "Monaco", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--background);overflow-x:hidden}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-lg);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:var(--primary)}.bg-gradient-primary{background:var(--gradient-primary)}.bg-gradient-secondary{background:var(--gradient-secondary)}.bg-gradient-success{background:var(--gradient-success)}.glow{box-shadow:var(--shadow-glow)}.glow-purple{box-shadow:var(--shadow-glow-purple)}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-in{animation:slideIn var(--transition-base) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--card-hover);border-color:var(--primary);transform:translateY(-2px)}.btn-success{background:var(--gradient-success);color:#fff}.btn-warning{background:var(--gradient-warning);color:#fff}.btn-error{background:var(--gradient-error);color:#fff}.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--card);border-color:var(--border)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border)}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.card-body{color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.badge-primary{background:var(--info-bg);color:var(--primary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-error{background:var(--error-bg);color:var(--error)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition-base)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #58a6ff1a}.input::placeholder{color:var(--text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media(max-width:768px){:root{--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem}.glass-card{padding:var(--spacing-md)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.projection-mode{--font-size-xs: .9rem;--font-size-sm: 1rem;--font-size-base: 1.15rem;--font-size-lg: 1.3rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.75rem;--text-muted: #4b5563;--text-disabled: #6b7280;--border: #d1d5db;--border-light: #e5e7eb;--transition-fast: .25s cubic-bezier(.4, 0, .2, 1);--transition-base: .4s cubic-bezier(.4, 0, .2, 1)}.projection-mode .badge{font-size:var(--font-size-sm);padding:.3rem .6rem}.projection-mode .btn-sm{font-size:var(--font-size-base);padding:.4rem .8rem}.projection-mode canvas{image-rendering:auto}.projection-mode .animate-pulse{animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite}@media(min-width:1920px){:root{--font-size-xs: .85rem;--font-size-sm: .95rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--color-primary: 38 92% 50%;--color-primary-text: 26 88% 31%;--color-secondary: 263 70% 50%;--color-background: 0 0% 96%;--color-surface: 0 0% 100%;--color-text: 215 25% 17%;--color-text-muted: 215 14% 34%;--color-border: 220 13% 91%;--font-heading: "Roboto", sans-serif;--font-body: "Open Sans", sans-serif;--font-mono: "Fira Mono", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:hsl(var(--color-background));color:hsl(var(--color-text));line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2;margin-bottom:1rem}button{cursor:pointer;font-family:inherit}input[type=number],input[type=text],input[type=range],select,textarea{font-family:inherit;font-size:inherit}input[type=number],input[type=text],select,textarea{background:hsl(var(--color-surface));color:hsl(var(--color-text));border:1px solid hsl(var(--color-border))}input[type=number]:focus,input[type=text]:focus,select:focus,textarea:focus{outline:2px solid hsl(var(--color-primary));outline-offset:2px}code{font-family:var(--font-mono)}.lab-tabs-container{width:100%;margin-bottom:.5rem}.lab-nav-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:#00000008;border-radius:6px}.lab-switch-btn{padding:.3rem .5rem;border-radius:4px;border:1px solid rgba(0,0,0,.1);cursor:pointer;font-weight:700;font-size:.8rem;transition:all .2s;flex-shrink:0}.lab-switch-btn.pq{background:linear-gradient(135deg,#dce6f9,#cedaf3);color:#3b82f6}.lab-switch-btn.irve{background:linear-gradient(135deg,#dcf9ef,#cef3e7);color:#16a34a}.lab-switch-btn:hover{transform:scale(1.02)}.tabs-groups{display:flex;align-items:center;gap:.25rem;flex:1}.tab-group{position:relative}.group-btn{display:flex;align-items:center;gap:.25rem;padding:.3rem .5rem;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;color:#6b7280;transition:all .15s;white-space:nowrap}.group-btn:hover{background:#0000000f;color:#1f2937}.group-btn.open{background:#f59e0b26;border-color:#f59e0b66;color:#d97706}.group-btn.has-active{border-color:hsl(var(--color-primary));box-shadow:0 0 0 1px hsl(var(--color-primary) / .3)}.group-icon{font-size:.9rem}.group-name{font-size:.85rem}.group-arrow{font-size:.65rem;opacity:.6;margin-left:.15rem}.dropdown-menu{position:absolute;top:calc(100% + 2px);left:0;min-width:140px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;z-index:1000;box-shadow:0 8px 24px #0000001a;animation:dropIn .15s ease-out;overflow:hidden}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:.4rem;width:100%;padding:.5rem .6rem;border:none;background:transparent;cursor:pointer;font-size:.85rem;color:#6b7280;text-align:left;transition:all .1s}.dropdown-item:hover{background:#f59e0b14;color:#1f2937}.dropdown-item.active{background:#f59e0b26;color:#d97706;font-weight:600}.dropdown-item:not(:last-child){border-bottom:1px solid rgba(0,0,0,.05)}.item-icon{font-size:.9rem}.item-label{font-size:.85rem}.active-tab-display{display:flex;align-items:center;gap:.35rem;padding:.3rem .6rem;background:hsl(var(--color-primary) / .15);border:1px solid hsl(var(--color-primary) / .3);border-radius:4px;margin-left:auto}.active-icon{font-size:.9rem}.active-label{font-size:.85rem;font-weight:600;color:hsl(var(--color-primary))}.quick-settings{display:flex;gap:.2rem;flex-shrink:0}.setting-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:4px;cursor:pointer;font-size:.8rem;color:#9ca3af;transition:all .15s}.setting-btn:hover{background:#0000000f;color:#1f2937}.setting-btn.active{background:hsl(var(--color-primary) / .2);border-color:hsl(var(--color-primary) / .4);color:hsl(var(--color-primary))}@media(max-width:768px){.lab-nav-row{flex-wrap:wrap;gap:.35rem}.group-name,.active-label{display:none}.dropdown-menu{min-width:120px}}@media(max-width:500px){.active-tab-display{display:none}.group-btn{padding:.25rem .35rem}}.focus-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.focus-container{width:100%;height:100%;max-width:95vw;max-height:95vh;background:#fff;border-radius:12px;border:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.focus-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8f9fa;border-bottom:1px solid #e5e7eb;flex-shrink:0}.focus-title{display:flex;align-items:center;gap:1rem;font-size:.95rem;font-weight:600;color:#1f2937}.focus-hint{font-size:.7rem;color:#9ca3af;font-weight:400;padding:.2rem .5rem;background:#0000000d;border-radius:4px}.focus-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:1rem;cursor:pointer;transition:all .2s}.focus-close-btn:hover{background:#ef444433;transform:scale(1.05)}.focus-content{flex:1;overflow:auto;padding:1rem;display:flex;flex-direction:column}.focus-content>*{flex:1;min-height:0}.focus-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;color:#d97706;font-size:1rem;cursor:pointer;transition:all .2s}.focus-btn:hover{background:#f59e0b33;border-color:#f59e0b;transform:scale(1.05)}.focus-btn:active{transform:scale(.95)}@media(max-width:768px){.focus-overlay{padding:.5rem}.focus-container{max-width:100vw;max-height:100vh;border-radius:8px}.focus-header{padding:.5rem .75rem}.focus-hint{display:none}}.pwm-oscilloscope{position:relative;width:100%;background:#f8f9fa;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden;display:flex;flex-direction:column}.pwm-osc-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#fff;border-bottom:1px solid #e5e7eb}.pwm-osc-title{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:#1f2937}.pwm-osc-icon{font-size:1rem}.pwm-osc-state{font-family:monospace;font-size:.75rem;padding:.15rem .5rem;background:#00000008;border-radius:4px}.pwm-osc-mode-buttons{display:flex;gap:.25rem}.pwm-mode-btn{width:28px;height:24px;display:flex;align-items:center;justify-content:center;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:4px;color:#9ca3af;font-size:.75rem;cursor:pointer;transition:all .2s}.pwm-mode-btn:hover{background:#0000000a;color:#6b7280}.pwm-mode-btn.active{background:#3b82f64d;border-color:#3b82f6;color:#60a5fa}.pwm-osc-section{border-bottom:1px solid #e5e7eb}.pwm-osc-section summary{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#00000008;cursor:pointer;font-size:.8rem;font-weight:500;color:#6b7280;transition:background .2s;list-style:none}.pwm-osc-section summary::-webkit-details-marker{display:none}.pwm-osc-section summary:before{content:"▶";font-size:.6rem;color:#9ca3af;transition:transform .2s}.pwm-osc-section[open] summary:before{transform:rotate(90deg)}.pwm-osc-section summary:hover{background:#0000000a}.section-badge{margin-left:auto;padding:.1rem .5rem;border-radius:10px;font-size:.65rem;font-weight:600;color:#000}.section-badge.perturbations{background:#ef4444;color:#fff}.toggle-perturbations{margin-left:.5rem;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;border:none;cursor:pointer;transition:all .2s}.toggle-perturbations.on{background:#22c55e;color:#fff}.toggle-perturbations.off{background:#64748b4d;color:#9ca3af}.pwm-state-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem;padding:.75rem;background:#00000005}.pwm-state-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:6px;cursor:pointer;transition:all .2s}.pwm-state-btn:hover{background:#0000000a;border-color:var(--state-color, #64748b)}.pwm-state-btn.active{background:var(--state-color, #64748b);border-color:var(--state-color, #64748b)}.pwm-state-btn.active .state-letter,.pwm-state-btn.active .state-name,.pwm-state-btn.active .state-voltage{color:#000}.state-letter{font-size:1.25rem;font-weight:700;color:var(--state-color, #e2e8f0)}.state-name{font-size:.7rem;color:#6b7280}.state-voltage{font-size:.6rem;font-family:monospace;color:#9ca3af}.pwm-perturbations-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:#00000005}.perturbation-tag{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#00000008;border-left:3px solid var(--tag-color, #64748b);border-radius:0 4px 4px 0;font-size:.7rem;color:#1f2937}.no-perturbations{font-size:.75rem;color:#9ca3af;font-style:italic}.pwm-canvas-container{position:relative;width:100%;flex:1;min-height:150px}.pwm-canvas-container canvas{display:block;background:#f8f9fa}.pwm-compact-overlay{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:linear-gradient(to bottom,rgba(15,23,42,.9),transparent);pointer-events:none}.pwm-compact-overlay>*{pointer-events:auto}.compact-state{font-size:.8rem;font-weight:600;font-family:monospace;background:#0000000a;padding:.25rem .5rem;border-radius:4px}.compact-buttons{display:flex;gap:.25rem}.compact-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#0000000a;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:#fff;font-size:.7rem;font-weight:700;cursor:pointer;transition:all .2s}.compact-btn:hover{background:#0000000f}.compact-btn.active{color:#000}.compact-perturbations{font-size:.7rem;color:#ef4444;background:#ef444433;padding:.2rem .5rem;border-radius:10px}.pwm-ideal-legend{position:absolute;top:.5rem;right:.5rem;background:#000000b3;padding:.25rem .5rem;border-radius:4px;font-size:.65rem;color:#9ca3af}.ideal-line{color:#ffffff4d;letter-spacing:-1px}.pwm-oscilloscope--compact .pwm-osc-header{padding:.35rem .5rem}.pwm-oscilloscope--compact .pwm-osc-title{font-size:.75rem}.pwm-oscilloscope--expanded .pwm-canvas-container{min-height:350px}@media(max-width:600px){.pwm-state-buttons{grid-template-columns:repeat(3,1fr)}.pwm-osc-title span:not(.pwm-osc-icon):not(.pwm-osc-state){display:none}.perturbation-tag{font-size:.65rem;padding:.2rem .4rem}}.pwm-osc-section[open]>:not(summary){animation:slideDown .2s ease-out}.pwm-focus-content{display:flex;flex-direction:column;height:100%;gap:1rem}.pwm-focus-info{display:flex;align-items:center;gap:2rem;padding:.75rem 1rem;background:#00000008;border-radius:8px;flex-wrap:wrap}.focus-state{font-size:1.1rem;font-weight:600}.focus-duty{font-size:.9rem;color:#6b7280;font-family:monospace}.focus-perturbations{font-size:.85rem;color:#f59e0b;background:#f59e0b26;padding:.25rem .75rem;border-radius:20px}.pop-out-button{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:6px 8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;color:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pop-out-button:hover{background:#00ff881a;border-color:#00ff884d;color:#0f8;transform:translateY(-1px);box-shadow:0 4px 12px #0f83}.pop-out-button:active{transform:translateY(0);box-shadow:0 2px 6px #00ff881a}.pop-out-button svg{width:16px;height:16px}.lab-visualization{height:100%;display:flex;flex-direction:column;gap:.5rem;container-type:inline-size;container-name:viz-panel}.viz-header-compact{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.viz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.viz-controls{display:flex;align-items:center;gap:.5rem}.viz-header h3{margin:0;font-size:.85rem;color:hsl(var(--color-text))}.mode-badge{background:hsl(var(--color-primary));color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600}.view-toggle{display:flex;background:hsl(var(--color-surface));border-radius:5px;border:1px solid hsl(var(--color-border));padding:2px}.toggle-btn{background:transparent;border:none;color:hsl(var(--color-text-muted));padding:.25rem .5rem;font-size:.7rem;cursor:pointer;border-radius:4px;transition:all .15s}.toggle-btn:hover{color:hsl(var(--color-text))}.viz-section{background:hsl(var(--color-background));padding:.5rem;border-radius:6px;border:1px solid hsl(var(--color-border))}.viz-section h4{margin:0 0 .35rem;color:hsl(var(--color-text));font-size:.8rem}.oscilloscope-canvas,.spectrum-canvas{width:100%;height:auto;border-radius:var(--radius-sm);display:block}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.metric-card{background:hsl(var(--color-surface));padding:1rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border));text-align:center}.metric-label{font-size:.8rem;color:hsl(var(--color-text-muted));text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.metric-value{font-size:1.5rem;font-weight:700;color:hsl(var(--color-primary));margin-bottom:.5rem}.metric-status{font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius-sm);display:inline-block}.metric-status.ok{background:hsl(var(--color-success-bg));color:hsl(var(--color-success))}.metric-status.warning{background:hsl(var(--color-warning-bg));color:hsl(var(--color-warning))}.spectrum-tooltip{background:#0f1729f2;border:1px solid hsl(var(--color-primary));border-radius:var(--radius-md);padding:.75rem;box-shadow:0 4px 6px -1px #00000080,0 2px 4px -1px #0000004d;z-index:100;min-width:150px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tooltip-title{color:hsl(var(--color-primary));font-weight:700;margin-bottom:.5rem;border-bottom:1px solid hsl(var(--color-border));padding-bottom:.25rem;font-size:.9rem}.tooltip-row{display:flex;justify-content:space-between;margin-bottom:.25rem;font-size:.85rem;color:hsl(var(--color-text))}.tooltip-row span{color:hsl(var(--color-text-muted))}.tooltip-row strong{color:#fff}@media(min-width:1601px){.viz-section{padding:1.5rem}.metric-value{font-size:1.75rem}}@media(max-width:1200px){.lab-visualization{gap:1rem}.viz-section{padding:1rem}.viz-header{flex-wrap:wrap;gap:.75rem}}@media(max-width:1024px){.viz-header{flex-direction:column;align-items:flex-start;gap:.75rem}.viz-controls{width:100%;justify-content:space-between}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:.75rem}.metric-card{padding:.75rem}.metric-value{font-size:1.25rem}}@media(max-width:768px){.lab-visualization{gap:.75rem}.viz-section{padding:.75rem}.viz-header h3{font-size:.9rem}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.metric-card{padding:.5rem}.metric-label{font-size:.7rem}.metric-value{font-size:1.1rem}.metric-status{font-size:.65rem;padding:.2rem .4rem}.toggle-btn{padding:.3rem .5rem;font-size:.75rem}.mode-badge{padding:.4rem .75rem;font-size:.75rem}.oscilloscope-canvas,.spectrum-canvas{max-width:100%;height:auto!important}}@media(max-width:480px){.viz-section{padding:.5rem;border-radius:var(--radius-sm)}.viz-section h4{font-size:.85rem;margin-bottom:.5rem}.metrics-grid{grid-template-columns:repeat(2,1fr)}.view-toggle{flex-wrap:wrap}.spectrum-tooltip{min-width:120px;padding:.5rem;font-size:.75rem}}@container viz-panel (max-width: 500px){.viz-header h3{font-size:.85rem!important}.viz-section h4{font-size:.8rem!important}.metric-label{font-size:.65rem!important}.metric-value{font-size:1rem!important}.metrics-grid{grid-template-columns:repeat(2,1fr)!important;gap:.5rem!important}.metric-card{padding:.5rem!important}}@container viz-panel (min-width: 501px) and (max-width: 800px){.viz-header h3{font-size:.95rem!important}.viz-section h4{font-size:.9rem!important}.metric-label{font-size:.75rem!important}.metric-value{font-size:1.25rem!important}.metrics-grid{grid-template-columns:repeat(4,1fr)!important}}@container viz-panel (min-width: 801px) and (max-width: 1100px){.viz-header h3{font-size:1.05rem!important}.metric-value{font-size:1.4rem!important}}@container viz-panel (min-width: 1101px){.viz-header h3{font-size:1.15rem!important}.viz-section h4{font-size:1rem!important}.metric-label{font-size:.85rem!important}.metric-value{font-size:1.6rem!important}.metric-card{padding:1.25rem!important}}.tooltip-trigger{display:inline-flex;align-items:center;gap:.25rem;cursor:help}.tooltip-content{position:fixed;z-index:9999;padding:.75rem 1rem;background:linear-gradient(135deg,#fff,#f5f5f5);border:1px solid #d97706;border-radius:8px;color:#1f2937;font-size:.8rem;line-height:1.5;box-shadow:0 10px 40px #00000026,0 0 20px #f59e0b1a;animation:tooltipFadeIn .2s ease-out;pointer-events:none}.tooltip-content:before{content:"";position:absolute;width:12px;height:12px;background:#fff;border:1px solid #d97706;transform:rotate(45deg)}.tooltip-top:before{bottom:-7px;left:50%;margin-left:-6px;border-top:none;border-left:none}.tooltip-bottom:before{top:-7px;left:50%;margin-left:-6px;border-bottom:none;border-right:none}.tooltip-left:before{right:-7px;top:50%;margin-top:-6px;border-left:none;border-bottom:none}.tooltip-right:before{left:-7px;top:50%;margin-top:-6px;border-right:none;border-top:none}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:10px;font-weight:700;cursor:help;transition:all .2s ease;flex-shrink:0}.help-icon:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b);transform:scale(1.1);box-shadow:0 0 10px #f59e0b80}.label-with-tooltip{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:hsl(var(--color-text-muted));margin-bottom:.25rem}.required-marker{color:#ef4444;font-weight:700}.tooltip-content strong{color:#d97706;font-weight:600}.tooltip-content em{color:#a78bfa;font-style:italic}.tooltip-content code{background:#f59e0b26;padding:.1rem .3rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.75rem;color:#fbbf24}.tooltip-content .formula{display:block;margin:.5rem 0;padding:.5rem;background:#0000000d;border-radius:4px;font-family:JetBrains Mono,monospace;text-align:center;color:#16a34a}.tooltip-content .warning{color:#f59e0b;font-weight:500}.tooltip-content .danger{color:#ef4444;font-weight:500}.tooltip-content .success{color:#4ade80;font-weight:500}.tooltip-content ul{margin:.5rem 0;padding-left:1.2rem}.tooltip-content li{margin:.25rem 0}.tooltip-content .unit{color:#6b7280;font-size:.75rem}@media(max-width:768px){.tooltip-content{max-width:250px!important;font-size:.75rem}.help-icon{width:14px;height:14px;font-size:9px}}.harmonics-tab{padding:.5rem}.thd-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.35rem .6rem;background:hsl(var(--color-surface));border-radius:5px;border:1px solid hsl(var(--color-border))}.thd-label{display:flex;align-items:center;gap:.25rem;font-weight:600;font-size:.75rem;color:hsl(var(--color-text))}.thd-value{font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:700;padding:.15rem .4rem;border-radius:4px}.thd-value.ok{background:#4ade8033;color:#4ade80}.thd-value.warning{background:#fbbf2433;color:#fbbf24}.thd-value.danger{background:#ef444433;color:#ef4444}.thd-status{font-size:.7rem;font-weight:500}.thd-status.ok{color:#4ade80}.thd-status.warning{color:#fbbf24}.thd-status.danger{color:#ef4444}.label-with-help{display:flex;align-items:center;gap:.25rem}.value-display{font-family:JetBrains Mono,monospace;color:hsl(var(--color-primary));font-weight:600}.harmonic-selector{background:hsl(var(--color-surface));padding:.5rem;border-radius:6px;margin-bottom:.5rem}.harmonic-selector h3{margin-bottom:.35rem;font-size:.75rem;color:hsl(var(--color-text))}.rank-buttons{display:flex;flex-wrap:wrap;gap:.25rem}.rank-btn{padding:.3rem .5rem;background:hsl(var(--color-primary));color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:.7rem;transition:all .15s ease}.rank-btn:hover{background:hsl(var(--color-primary-hover));transform:translateY(-1px)}.no-ranks{color:hsl(var(--color-text-muted));font-style:italic;font-size:.7rem}.harmonics-list{margin-top:.5rem}.harmonics-list h3{margin-bottom:.35rem;font-size:.75rem;color:hsl(var(--color-text))}.harmonic-item{background:hsl(var(--color-surface));padding:.5rem;border-radius:6px;margin-bottom:.35rem;border:1px solid hsl(var(--color-border))}.harmonic-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.harmonic-rank{font-weight:700;font-size:.9rem;color:hsl(var(--color-primary))}.harmonic-freq{color:hsl(var(--color-text-muted));font-size:.7rem}.remove-btn{margin-left:auto;background:hsl(var(--color-danger));color:#fff;border:none;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:.75rem;transition:all .15s ease}.remove-btn:hover{background:hsl(var(--color-danger-hover));transform:scale(1.05)}.harmonic-controls{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.control-group label{display:flex;flex-direction:column;gap:.2rem;color:hsl(var(--color-text));font-size:.7rem;font-weight:500}.control-group input[type=range]{width:100%;height:4px}.normative-info{background:hsl(var(--color-info-bg));padding:.5rem;border-radius:6px;border-left:3px solid hsl(var(--color-primary));margin-top:.5rem}.normative-info h3{margin-bottom:.35rem;font-size:.75rem;color:hsl(var(--color-text))}.limits-table{width:100%;border-collapse:collapse;font-size:.7rem}.limits-table th,.limits-table td{padding:.25rem .35rem;text-align:left;border-bottom:1px solid hsl(var(--color-border))}@media(max-width:768px){.harmonic-controls{grid-template-columns:1fr}}.flicker-tab{padding:1.5rem}.flicker-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.flicker-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:1.5rem}.flicker-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:1.5rem;align-items:start}.control-label{display:flex;align-items:center;gap:.5rem;color:hsl(var(--color-text));font-size:.9rem;margin-bottom:.5rem}.control-label strong{color:hsl(var(--color-primary));font-weight:600;min-width:60px;text-align:right}.type-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.type-btn{flex:1;padding:.5rem 1rem;background:hsl(var(--color-background));border:2px solid hsl(var(--color-border));border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;transition:all .2s ease;color:hsl(var(--color-text));min-width:80px}.type-btn:hover{border-color:hsl(var(--color-primary));background:hsl(var(--color-primary) / .05)}.type-btn.active{background:hsl(var(--color-primary));color:#fff;border-color:hsl(var(--color-primary))}.flicker-indicators{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border))}.flicker-indicators h3{margin:0 0 1rem;color:hsl(var(--color-text));font-size:1rem}.indicator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem}.indicator-card{background:hsl(var(--color-background));padding:1rem;border-radius:var(--radius-sm);text-align:center}.indicator-label{font-size:.8rem;color:hsl(var(--color-text-muted));text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.indicator-value{font-size:1.8rem;font-weight:700;color:hsl(var(--color-primary));margin-bottom:.5rem}.indicator-status{font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius-sm);display:inline-block}.limits-table td.ok{color:hsl(var(--color-success));font-weight:600}.limits-table td.warning{color:hsl(var(--color-warning));font-weight:600}.sensitivity-curve{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border))}.sensitivity-curve h3{margin:0 0 1rem;color:hsl(var(--color-text))}.curve-info{color:hsl(var(--color-text))}.curve-info ul{margin:1rem 0;padding-left:1.5rem}.curve-info li{margin-bottom:.5rem;color:hsl(var(--color-text-muted))}.current-zone{background:hsl(var(--color-background));padding:.75rem;border-radius:var(--radius-sm);margin-top:1rem}.zone-warning{color:hsl(var(--color-warning));font-weight:600}@media(max-width:768px){.type-buttons{flex-direction:column}}.voltage-dip-tab{padding:1.5rem;height:100%;display:flex;flex-direction:column;overflow-y:auto}.voltage-dip-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.voltage-dip-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:1.5rem}.dip-controls{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.control-section{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border))}.control-group:last-child{margin-bottom:0}.classification-panel{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border))}.classification-panel h3{margin:0 0 1rem;color:hsl(var(--color-text));font-size:1rem}.classification-card{background:hsl(var(--color-background));padding:1.5rem;border-radius:var(--radius-md);text-align:center;margin-bottom:1.5rem;border:3px solid transparent}.classification-card.ok{border-color:hsl(var(--color-success))}.classification-card.info{border-color:hsl(var(--color-info))}.classification-card.warning{border-color:hsl(var(--color-warning))}.classification-card.danger{border-color:hsl(var(--color-danger))}.class-label{font-size:.8rem;color:hsl(var(--color-text-muted));text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.class-value{font-size:2rem;font-weight:700;color:hsl(var(--color-primary))}.severity-info h4{margin:0 0 1rem;color:hsl(var(--color-text));font-size:.9rem}.severity-scale{display:flex;flex-direction:column;gap:.75rem}.scale-item{display:flex;align-items:center;gap:.75rem;opacity:.5;transition:opacity .2s ease}.scale-item.active{opacity:1}.scale-bar{width:40px;height:20px;border-radius:var(--radius-sm)}.scale-bar.ok{background:hsl(var(--color-success))}.scale-bar.info{background:hsl(var(--color-info))}.scale-bar.warning{background:hsl(var(--color-warning))}.scale-bar.danger{background:hsl(var(--color-danger))}.scale-item span{font-weight:600;color:hsl(var(--color-text));min-width:60px}.scale-item small{color:hsl(var(--color-text-muted));font-size:.8rem}.normative-info{background:hsl(var(--color-info-bg));padding:1.5rem;border-radius:var(--radius-md);border-left:4px solid hsl(var(--color-primary));margin-bottom:1.5rem}.normative-info h3{margin:0 0 1rem;color:hsl(var(--color-text))}.limits-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.limits-table th,.limits-table td{padding:.5rem;text-align:left;border-bottom:1px solid hsl(var(--color-border))}.info-box{background:hsl(var(--color-background));padding:1rem;border-radius:var(--radius-sm);font-size:.9rem;line-height:1.5;color:hsl(var(--color-text))}.impacts-section{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border))}.impacts-section h3{margin:0 0 1rem;color:hsl(var(--color-text))}.impact-card{background:hsl(var(--color-background));padding:1rem;border-radius:var(--radius-md);text-align:center;border:1px solid hsl(var(--color-border))}.impact-icon{font-size:2rem;margin-bottom:.5rem}.impact-title{font-weight:600;color:hsl(var(--color-text));margin-bottom:.5rem}@media(max-width:1200px){.voltage-dip-tab,.control-section,.classification-panel{padding:1.25rem}}@media(max-width:1024px){.voltage-dip-tab{padding:1rem}.dip-controls{grid-template-columns:1fr;gap:1rem}.impacts-grid{grid-template-columns:repeat(2,1fr)}.control-section,.classification-panel,.normative-info,.impacts-section{padding:1rem}.class-value{font-size:1.75rem}}@media(max-width:768px){.voltage-dip-tab{padding:.75rem}.voltage-dip-tab .tab-header h2{font-size:1.1rem}.voltage-dip-tab .description{font-size:.85rem;margin-bottom:1rem}.dip-controls{gap:.75rem;margin-bottom:1rem}.control-section,.classification-panel{padding:.75rem}.classification-card{padding:1rem;margin-bottom:1rem}.class-value{font-size:1.5rem}.normative-info{padding:1rem;margin-bottom:1rem}.limits-table th,.limits-table td{padding:.4rem;font-size:.85rem}.impacts-section{padding:.75rem}.impacts-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.impact-card{padding:.75rem}.impact-icon{font-size:1.5rem}.impact-title{font-size:.9rem}.impact-desc{font-size:.8rem}}@media(max-width:480px){.voltage-dip-tab{padding:.5rem}.impacts-grid{grid-template-columns:1fr}.severity-scale{gap:.5rem}.scale-bar{width:30px;height:16px}.scale-item span{min-width:50px;font-size:.85rem}}.voltage-unbalance-tab{padding:1.5rem}.voltage-unbalance-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.voltage-unbalance-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:2rem}.phase-controls{margin:2rem 0}.fresnel-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 6px #0000004d;width:fit-content;margin:10px auto}.fresnel-header{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:5px;border-bottom:1px solid #e5e7eb}.fresnel-header h3{margin:0;color:#1f2937;font-size:1rem;font-weight:600}.fresnel-controls{display:flex;gap:5px}.fresnel-controls button{background:#fff;border:1px solid #d1d5db;color:#1f2937;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:.9rem;transition:all .2s}.fresnel-controls button:hover{background:#e5e7eb;border-color:#d1d5db}.fresnel-controls button.anim-btn{width:30px;display:flex;justify-content:center}.fresnel-controls button.anim-btn.active{background:#0f4c3a;border-color:#10b981}.fresnel-canvas{background:#f8f9fa;border-radius:50%;border:1px solid #e5e7eb;cursor:crosshair}.fresnel-legend{display:flex;gap:10px;margin-top:10px;font-size:.8rem;color:#6b7280;flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:4px}.separator{color:#d1d5db}.load-unbalance-tab{padding:1.5rem}.load-unbalance-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.load-unbalance-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:2rem}.load-controls{margin:2rem 0}.load-controls h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.load-card{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1rem;border-left:4px solid}.load-card.phase-1{border-left-color:#f44}.load-card.phase-2{border-left-color:#fa0}.load-card.phase-3{border-left-color:#48f}.load-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.load-label{font-weight:700;font-size:1.1rem;color:hsl(var(--color-text))}.load-value{font-size:1.2rem;font-weight:700;color:hsl(var(--color-primary))}.load-indicators{margin:2rem 0}.load-indicators h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.balancing-tips{margin:2rem 0}.balancing-tips h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tip-card{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);text-align:center;border:1px solid hsl(var(--color-border));transition:all .2s ease}.tip-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.tip-icon{font-size:2.5rem;margin-bottom:.5rem}.tip-title{font-weight:700;color:hsl(var(--color-text));margin-bottom:.5rem}.tip-desc{font-size:.85rem;color:hsl(var(--color-text-muted))}.frequency-variation-tab{padding:1.5rem}.frequency-variation-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.frequency-variation-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:2rem}.frequency-controls{margin:2rem 0}.phase-controls h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.phase-card{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1rem;border-left:4px solid}.phase-card.phase-1{border-left-color:#f44}.phase-card.phase-2{border-left-color:#fa0}.phase-card.phase-3{border-left-color:#48f}.phase-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.phase-label{font-weight:700;font-size:1.1rem;color:hsl(var(--color-text))}.phase-value{font-size:1.2rem;font-weight:700;color:hsl(var(--color-primary))}.control-group{margin-bottom:1rem}.unbalance-indicators{margin:2rem 0}.unbalance-indicators h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.indicator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.indicator-card{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);text-align:center;border:1px solid hsl(var(--color-border))}.indicator-label{font-size:.85rem;color:hsl(var(--color-text-muted));margin-bottom:.5rem}.indicator-value{font-size:2rem;font-weight:700;color:hsl(var(--color-primary));margin:.5rem 0}.indicator-status{font-size:.85rem;font-weight:600;padding:.25rem .75rem;border-radius:var(--radius-sm);display:inline-block}.indicator-status.ok{background:hsl(var(--color-success-bg));color:hsl(var(--color-success))}.indicator-status.warning{background:hsl(var(--color-warning-bg));color:hsl(var(--color-warning))}.indicator-hint{font-size:.8rem;color:hsl(var(--color-text-muted));font-style:italic}.normative-info{background:hsl(var(--color-info-bg));padding:1.5rem;border-radius:var(--radius-md);border-left:4px solid hsl(var(--color-primary));margin:2rem 0}.normative-info h3{margin-bottom:1rem;color:hsl(var(--color-text))}.limits-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.limits-table th,.limits-table td{padding:.75rem;text-align:left;border-bottom:1px solid hsl(var(--color-border))}.limits-table th{background:hsl(var(--color-surface));font-weight:600;color:hsl(var(--color-text))}.limits-table td{color:hsl(var(--color-text-muted))}.limits-table td.ok{color:hsl(var(--color-success));font-weight:700}.limits-table td.warning{color:hsl(var(--color-warning));font-weight:700}.info-box{background:hsl(var(--color-surface));padding:1rem;border-radius:var(--radius-sm);margin-top:1rem}.info-box strong{color:hsl(var(--color-text));display:block;margin-bottom:.5rem}.info-box ul{margin:.5rem 0 0 1.5rem;color:hsl(var(--color-text-muted))}.info-box li{margin:.25rem 0}.impacts-section{margin:2rem 0}.impacts-section h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.impacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.impact-card{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);text-align:center;border:1px solid hsl(var(--color-border));transition:all .2s ease}.impact-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.impact-icon{font-size:2.5rem;margin-bottom:.5rem}.impact-title{font-weight:700;color:hsl(var(--color-text));margin-bottom:.5rem}.impact-desc{font-size:.85rem;color:hsl(var(--color-text-muted))}@media(max-width:768px){.indicator-grid,.impacts-grid{grid-template-columns:1fr}}.tolerance-chart{margin:2rem 0;background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md)}.tolerance-chart h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.chart-container{padding:2rem 0}.chart-bar{display:flex;height:80px;border-radius:var(--radius-sm);overflow:hidden;position:relative}.chart-zone{flex:1;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;position:relative}.chart-zone.danger-low,.chart-zone.danger-high{background:hsl(var(--color-danger));flex:.5}.chart-zone.ok{background:hsl(var(--color-success));flex:2}.current-marker{position:absolute;top:-30px;transform:translate(-50%);background:hsl(var(--color-primary));color:#fff;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:700;white-space:nowrap;box-shadow:0 2px 8px #0003}.current-marker:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:2px;height:100px;background:hsl(var(--color-primary))}.transient-tab{padding:1.5rem}.transient-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.transient-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:1.5rem}.control-section{background:hsl(var(--color-surface));padding:1.5rem;border-radius:var(--radius-md);border:1px solid hsl(var(--color-border));margin-bottom:1.5rem}.control-section h3{margin:0 0 1rem;color:hsl(var(--color-text));font-size:1rem}.control-group{margin-bottom:1.5rem}.control-group label{display:flex;flex-direction:column;gap:.5rem;color:hsl(var(--color-text));font-size:.9rem;font-weight:500}.control-group input[type=range]{width:100%}.hint{font-size:.8rem;color:hsl(var(--color-text-muted));font-weight:400}.info-box{background:hsl(var(--color-background));padding:1rem;border-radius:var(--radius-sm);font-size:.9rem;line-height:1.5;color:hsl(var(--color-text));border:1px solid hsl(var(--color-border))}.combined-tab{padding:1.5rem}.combined-tab .tab-header h2{color:hsl(var(--color-text));margin-bottom:.5rem}.combined-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;line-height:1.5;margin-bottom:2rem}.perturbations-summary{margin:2rem 0}.perturbations-summary h3{margin-bottom:1.5rem;color:hsl(var(--color-text))}.summary-card{background:linear-gradient(135deg,hsl(var(--color-primary)),hsl(var(--color-accent)));padding:2rem;border-radius:var(--radius-lg);text-align:center;color:#fff}.summary-count{display:flex;flex-direction:column;align-items:center;gap:.5rem}.count-number{font-size:4rem;font-weight:700;line-height:1}.count-label{font-size:1.2rem;opacity:.9}.perturbations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:2rem 0}.perturbation-card{background:hsl(var(--color-surface));border-radius:var(--radius-md);border:2px solid hsl(var(--color-border));overflow:hidden;transition:all .3s ease}.perturbation-card.active{border-color:hsl(var(--color-success));box-shadow:0 4px 12px #00c86433}.perturbation-card.inactive{opacity:.6}.card-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:hsl(var(--color-background));border-bottom:1px solid hsl(var(--color-border))}.card-icon{font-size:1.5rem}.card-title{flex:1;font-weight:700;color:hsl(var(--color-text))}.card-status{font-size:.75rem;font-weight:700;padding:.25rem .75rem;border-radius:var(--radius-sm)}.card-status.on{background:hsl(var(--color-success-bg));color:hsl(var(--color-success))}.card-status.off{background:hsl(var(--color-muted-bg));color:hsl(var(--color-text-muted))}.card-content{padding:1.5rem}.metric{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid hsl(var(--color-border))}.metric:last-child{border-bottom:none}.metric-label{color:hsl(var(--color-text-muted));font-size:.9rem}.metric-value{color:hsl(var(--color-text));font-weight:600;font-size:.9rem}.no-data{color:hsl(var(--color-text-muted));font-style:italic;text-align:center;padding:1rem 0}.global-config{margin:2rem 0;background:hsl(var(--color-info-bg));padding:1.5rem;border-radius:var(--radius-md);border-left:4px solid hsl(var(--color-primary))}.global-config h3{margin-bottom:1rem;color:hsl(var(--color-text))}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.config-item{display:flex;flex-direction:column;gap:.25rem}.config-label{font-size:.85rem;color:hsl(var(--color-text-muted))}.config-value{font-size:1rem;font-weight:600;color:hsl(var(--color-text))}.no-perturbations{text-align:center;padding:4rem 2rem;background:hsl(var(--color-surface));border-radius:var(--radius-lg);margin:2rem 0}.no-perturbations-icon{font-size:4rem;margin-bottom:1rem}.no-perturbations h3{color:hsl(var(--color-text));margin-bottom:.5rem}.no-perturbations p{color:hsl(var(--color-text-muted));max-width:500px;margin:0 auto}@media(max-width:768px){.perturbations-grid,.config-grid{grid-template-columns:1fr}}.calculations-tab{padding:20px;max-width:1400px;margin:0 auto}.calculations-tab.full-screen{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:1000;background-color:var(--color-background);overflow-y:auto;padding:2rem}.fullscreen-toggle-btn{position:absolute;top:1rem;right:1rem;padding:.5rem 1rem;background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;z-index:1100}.calculations-header{margin-bottom:2rem}.calculations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.calculation-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column}.card-header{margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:1rem}.card-header h3{color:var(--color-primary);margin-bottom:.5rem}.formula-section{background:#0003;padding:1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.formula-label{margin-bottom:1rem;color:var(--color-text-muted)}.formula-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.formula-block{flex:1;min-width:120px;display:flex;flex-direction:column;gap:.5rem;text-align:center}.formula-tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.math-display{font-family:KaTeX_Main,Computer Modern,serif;font-size:1.25rem;background:var(--color-background);padding:1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.arrow{color:var(--color-text-muted);font-size:1.5rem}.result-value{color:var(--color-success);font-weight:700;display:flex;flex-direction:column;gap:.5rem;align-items:center}.validation-badge{font-size:.8rem;padding:.25rem .5rem;border-radius:9999px;background:#10b9811a;color:#10b981}.validation-badge.invalid{background:#ef44441a;color:#ef4444}.calculation-details{border-top:1px solid var(--color-border);padding-top:1rem;font-size:.9rem;margin-top:auto}.calculation-details ul{list-style:none;padding:0}.calculation-details li{margin-bottom:5px}.frac{display:inline-block;vertical-align:middle;text-align:center}.num{display:block;border-bottom:1px solid;padding-bottom:2px}.den{display:block;padding-top:2px}.pwm-tab-container{color:hsl(var(--color-text))}.leakage-tab{padding:1rem;height:100%;color:hsl(var(--color-text));overflow-y:auto;display:flex;flex-direction:column}.leakage-tab .tab-header{margin-bottom:1rem}.leakage-tab .tab-header h2{margin:0 0 .5rem;font-size:1.25rem}.leakage-tab .description{color:hsl(var(--color-text-muted));font-size:.9rem;margin:0}.leakage-layout-extended{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}@media(max-width:1400px){.leakage-layout-extended{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.leakage-layout-extended{grid-template-columns:1fr}}.config-panel{background:hsl(var(--color-surface));padding:1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.75rem}.config-panel h3{margin:0;font-size:1rem;color:hsl(var(--color-text));border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.config-panel h4{margin:0;font-size:.9rem;color:hsl(var(--color-text-muted))}.control-group{display:flex;flex-direction:column;gap:.25rem}.control-group label{font-size:.85rem;color:hsl(var(--color-text-muted))}.toggle-group{display:flex;background:hsl(var(--color-background));border-radius:var(--radius-sm);padding:3px;gap:2px}.toggle-btn{flex:1;padding:.4rem .5rem;border:none;background:transparent;color:hsl(var(--color-text-muted));cursor:pointer;border-radius:var(--radius-sm);font-size:.8rem;transition:all .2s}.toggle-btn:hover{background:#0000000a}.toggle-btn.active{background:hsl(var(--color-primary));color:#fff;font-weight:600}.select-input{width:100%;padding:.4rem;background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:hsl(var(--color-text));font-size:.85rem}input[type=range]{width:100%;margin-top:.25rem;accent-color:hsl(var(--color-primary))}input[type=number]{width:60px;padding:.25rem .4rem;background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:hsl(var(--color-text));font-size:.8rem;text-align:center}.value-display{float:right;font-family:monospace;color:hsl(var(--color-primary));font-weight:600}.electrodes-section{display:flex;flex-direction:column;gap:.75rem}.electrode-card{background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem;transition:all .2s}.electrode-card.active{border-color:#4ade80;background:#4ade800d}.electrode-card.disabled{opacity:.6}.electrode-header{display:flex;align-items:center;gap:.5rem}.electrode-name{font-weight:600;font-size:.85rem}.electrode-params{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.param-row{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.param-row span:first-child{width:70px;color:hsl(var(--color-text-muted))}.param-row span:last-child{color:hsl(var(--color-text-muted));font-size:.75rem}.impedance-calc{margin-top:.5rem;padding:.4rem .6rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.3);border-radius:var(--radius-sm);font-size:.75rem;font-family:monospace;color:#60a5fa;text-align:center}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:hsl(var(--color-primary))}.interconnection-warning{margin-top:.5rem;padding-top:.75rem;border-top:1px dashed var(--color-border)}.warning-box{margin-top:.5rem;padding:.5rem;background:#ef444426;border:1px solid #ef4444;border-radius:var(--radius-sm);color:#dc2626;font-size:.8rem;font-weight:600}.source-card{background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .75rem;transition:all .2s}.source-card.active{border-color:#60a5fa;background:#60a5fa1a}.source-details{margin-top:.5rem;display:flex;gap:.75rem;font-size:.75rem;color:hsl(var(--color-text-muted))}.transformer-card{background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem;transition:all .2s}.transformer-card.active{border-color:#a855f7;background:#a855f71a}.transformer-params{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.select-input-small{padding:.25rem .4rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:hsl(var(--color-text));font-size:.8rem;width:100px}.transformer-currents{margin-top:.5rem;padding:.5rem;background:#a855f71a;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.4rem}.current-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.current-item span:first-child{flex:1;color:hsl(var(--color-text-muted))}.current-item .current-value{font-family:monospace;color:#a855f7;font-weight:600}.current-item input{width:50px;padding:.2rem .3rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:hsl(var(--color-text));font-size:.75rem;text-align:center}.transformer-warning{margin-top:.5rem;padding:.4rem .6rem;background:#a855f726;border:1px solid rgba(168,85,247,.4);border-radius:var(--radius-sm);font-size:.75rem;color:#c084fc;font-weight:600;text-align:center}.inject-btn{position:relative;width:100%;padding:.75rem;margin-top:.5rem;background:linear-gradient(135deg,#dc2626,#991b1b);border:none;border-radius:var(--radius-sm);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;overflow:hidden;transition:all .2s}.inject-btn:hover:not(:disabled){transform:scale(1.02);box-shadow:0 4px 20px #dc262666}.inject-btn:disabled{cursor:not-allowed;opacity:.8}.inject-btn.active{background:linear-gradient(135deg,#f59e0b,#d97706)}.inject-progress{position:absolute;left:0;top:0;height:100%;background:#ffffff4d;transition:width .05s linear}.inject-text{position:relative;z-index:1}.results-panel{background:hsl(var(--color-surface));padding:1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.results-panel h3{margin:0;font-size:1rem;color:hsl(var(--color-text));border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.kpi-card{background:hsl(var(--color-background));padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);text-align:center}.kpi-card.success{border-color:#4ade80;background:#4ade801a}.kpi-card.danger{border-color:#ef4444;background:#ef44441a}.kpi-card.warning{border-color:#f59e0b;background:#f59e0b1a}.kpi-card.info{border-color:#8b5cf6;background:#8b5cf61a}.kpi-label{font-size:.75rem;color:hsl(var(--color-text-muted));margin-bottom:.25rem}.kpi-value{font-size:1.5rem;font-weight:700;color:hsl(var(--color-text))}.kpi-status{margin-top:.25rem;font-weight:600;font-size:.75rem}.kpi-sub{font-size:.7rem;color:hsl(var(--color-text-muted));margin-top:.25rem}.kpi-sub.warning{color:#fbbf24}.distribution-panel{background:hsl(var(--color-background));padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.distribution-panel h4{margin:0 0 .75rem;font-size:.85rem;color:hsl(var(--color-text))}.current-bar-container{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.current-bar-container.total{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.current-bar-label{width:90px;font-size:.75rem;color:hsl(var(--color-text-muted));flex-shrink:0}.current-bar{flex:1;height:16px;background:hsl(var(--color-surface));border-radius:8px;overflow:hidden;position:relative}.current-bar-fill{height:100%;border-radius:8px;transition:width .3s ease}.current-bar-fill.borne{background:linear-gradient(90deg,#4ade80,#22c55e)}.current-bar-fill.external{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.current-bar-fill.transformer{background:linear-gradient(90deg,#a855f7,#7c3aed)}.current-bar-fill.soil{background:linear-gradient(90deg,#f59e0b,#d97706)}.current-bar-fill.injection{background:linear-gradient(90deg,#ef4444,#dc2626);animation:pulse-injection .5s ease-in-out infinite}.current-bar-fill.total{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.current-bar-fill.total.danger{background:linear-gradient(90deg,#ef4444,#dc2626);animation:pulse-danger .5s ease-in-out infinite}@keyframes pulse-injection{0%,to{opacity:1}50%{opacity:.7}}@keyframes pulse-danger{0%,to{opacity:1}50%{opacity:.8}}.rcd-threshold-marker{position:absolute;top:0;height:100%;border-left:2px dashed #ef4444}.rcd-threshold-marker span{position:absolute;top:-18px;left:-15px;font-size:.65rem;color:#ef4444;white-space:nowrap}.current-bar-value{width:70px;font-size:.75rem;font-weight:600;color:hsl(var(--color-text));text-align:right;flex-shrink:0}.impedance-table{background:hsl(var(--color-background));padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);margin-top:.75rem}.impedance-table h4{margin:0 0 .5rem;font-size:.85rem;color:hsl(var(--color-text))}.impedance-table table{width:100%;border-collapse:collapse;font-size:.75rem}.impedance-table th,.impedance-table td{padding:.4rem .5rem;text-align:center;border-bottom:1px solid var(--color-border)}.impedance-table th{background:hsl(var(--color-surface));color:hsl(var(--color-text-muted));font-weight:600}.impedance-table td{color:hsl(var(--color-text));font-family:monospace}.impedance-table td:first-child{text-align:left;font-family:inherit}.impedance-table .interco-row td{background:#4ade801a;color:#4ade80}.impedance-table .soil-row td{background:#f59e0b1a;color:#f59e0b}.alert-box{padding:.75rem;border-radius:var(--radius-sm);font-size:.8rem}.alert-box.danger{background:#ef444426;border:1px solid #ef4444;color:#dc2626}.alert-box strong{display:block;margin-bottom:.5rem;color:#ef4444}.alert-box p{margin:.25rem 0}.leakage-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem;align-items:stretch;flex:1}@media(min-width:1601px){.leakage-layout-extended{grid-template-columns:repeat(4,1fr);gap:1.25rem}.config-panel,.results-panel{padding:1.25rem}.kpi-value{font-size:1.75rem}}@media(max-width:1600px)and (min-width:1401px){.leakage-layout-extended{grid-template-columns:repeat(3,1fr)}}@media(max-width:1400px)and (min-width:1201px){.leakage-layout-extended{grid-template-columns:repeat(2,1fr)}.config-panel,.results-panel{padding:1rem}}@media(max-width:1200px)and (min-width:1025px){.leakage-layout-extended,.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.leakage-tab{padding:.75rem}.leakage-layout{grid-template-columns:1fr;gap:1rem}.leakage-layout-extended{grid-template-columns:1fr 1fr;gap:.75rem}.config-panel,.results-panel{padding:.75rem}.config-panel h3,.results-panel h3{font-size:.95rem}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.kpi-card{padding:.5rem}.kpi-value{font-size:1.25rem}.kpi-label{font-size:.7rem}.electrode-card{padding:.5rem}.param-row{font-size:.75rem}}@media(max-width:768px){.leakage-tab{padding:.5rem}.leakage-tab .tab-header h2{font-size:1.1rem}.leakage-tab .description{font-size:.85rem}.leakage-layout-extended{grid-template-columns:1fr;gap:.75rem}.config-panel,.results-panel{padding:.75rem}.toggle-group{flex-wrap:wrap}.toggle-btn{padding:.3rem .4rem;font-size:.75rem}.kpi-grid{grid-template-columns:repeat(2,1fr)}.current-bar-label{width:70px;font-size:.7rem}.current-bar-value{width:60px;font-size:.7rem}.impedance-table{font-size:.7rem}.impedance-table th,.impedance-table td{padding:.3rem}}@media(max-width:640px){.leakage-layout-extended{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.inject-btn{padding:.6rem;font-size:.85rem}.electrode-params{gap:.35rem}.param-row span:first-child{width:60px}}.metrics-analyzer{--primary: #f59e0b;--secondary: #f1f5f9;--accent: #8b5cf6;--success: #16a34a;--warning: #d97706;--critical: #dc2626;--text: #1f2937;--text-muted: #6b7280;--background: #f5f5f5;--card: #ffffff;--border: #e5e7eb;height:100%;display:flex;flex-direction:column;background:var(--background);color:var(--text);overflow:hidden}.analyzer-header{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);padding:1.5rem 2rem;box-shadow:0 4px 16px #f59e0b33}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.header-title{display:flex;align-items:center;gap:1rem}.header-title h2{margin:0;font-size:1.75rem;font-weight:700}.header-subtitle{margin:0;opacity:.9;font-size:.95rem}.btn-close{background:#0000001a;border:none;color:#fff;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer;transition:all .3s ease}.btn-close:hover{background:#0003;transform:rotate(90deg)}.analyzer-actions{display:flex;gap:1rem;padding:1.5rem 2rem;background:var(--secondary);border-bottom:1px solid var(--border);flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s ease;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #f59e0b4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--secondary);border-color:var(--primary);transform:translateY(-2px)}.spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.15);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.analyzer-tabs{display:flex;gap:.5rem;padding:1rem 2rem 0;background:var(--background);border-bottom:2px solid var(--border)}.tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-muted);font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.tab:hover{color:var(--text);background:#f59e0b14}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.analyzer-content{flex:1;overflow-y:auto;padding:2rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:4rem 2rem;text-align:center}.empty-state h3{margin:0 0 .5rem;font-size:1.5rem}.summary-tab{display:flex;flex-direction:column;gap:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary)}.stat-card.severity-warning:before{background:var(--warning)}.stat-card.severity-critical:before{background:var(--critical)}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.stat-icon{font-size:2.5rem;margin-bottom:.75rem}.stat-value{font-size:2.5rem;font-weight:700;color:var(--text);display:block;margin-bottom:.5rem}.stat-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.metrics-summary,.time-range{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.metrics-summary h3,.time-range h3{margin:0 0 1rem;color:var(--primary)}.averages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.average-item{display:flex;justify-content:space-between;padding:.75rem;background:var(--background);border-radius:8px}.average-label{color:var(--text-muted);font-size:.9rem}.average-value{font-weight:700;color:var(--primary)}.time-range p{margin:.5rem 0;color:var(--text-muted)}.time-range strong{color:var(--text)}.metrics-tab h3{margin:0 0 1.5rem;color:var(--primary)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.metric-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;padding:1rem;display:flex;align-items:center;gap:1rem;transition:all .3s ease}.metric-card:hover{transform:translate(4px);box-shadow:0 4px 12px #00000014}.metric-icon{font-size:2rem}.metric-info{flex:1}.metric-name{font-weight:600;margin-bottom:.25rem}.metric-count{color:var(--text-muted);font-size:.9rem}.anomalies-tab{display:flex;flex-direction:column;gap:1.5rem}.anomalies-summary{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.anomalies-summary h3{margin:0 0 1rem;color:var(--primary)}.summary-stats{display:flex;gap:2rem;flex-wrap:wrap}.summary-stats .stat{padding:.5rem 1rem;background:var(--background);border-radius:6px;font-weight:600}.summary-stats .stat.critical{color:var(--critical);background:#f851491a}.summary-stats .stat.warning{color:var(--warning);background:#f0883e1a}.summary-stats .stat.info{color:var(--primary);background:#f59e0b1a}.anomalies-list{display:flex;flex-direction:column;gap:1rem}.anomaly-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;padding:1rem;transition:all .3s ease}.anomaly-card.severity-critical{border-left-color:var(--critical);background:#f851490d}.anomaly-card.severity-warning{border-left-color:var(--warning);background:#f0883e0d}.anomaly-card:hover{transform:translate(4px);box-shadow:0 4px 12px #00000014}.anomaly-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.anomaly-icon{font-size:1.5rem}.anomaly-type{font-weight:700;flex:1}.anomaly-severity{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;background:var(--primary);color:#fff}.anomaly-card.severity-critical .anomaly-severity{background:var(--critical)}.anomaly-card.severity-warning .anomaly-severity{background:var(--warning)}.anomaly-description{margin-bottom:.75rem;line-height:1.5}.anomaly-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--text-muted)}.recommendations-tab h3{margin:0 0 1.5rem;color:var(--primary)}.recommendations-list{display:flex;flex-direction:column;gap:1.5rem}.recommendation-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:12px;padding:1.5rem;transition:all .3s ease}.recommendation-card.priority-critical{border-left-color:var(--critical);background:#f851490d}.recommendation-card.priority-high{border-left-color:var(--warning);background:#f0883e0d}.recommendation-card.priority-medium{border-left-color:var(--accent)}.recommendation-card:hover{transform:translate(4px);box-shadow:0 8px 24px #00000014}.recommendation-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.recommendation-icon{font-size:2rem}.recommendation-title{flex:1}.recommendation-priority{font-size:.75rem;font-weight:700;padding:.25rem .5rem;border-radius:4px;background:var(--primary);color:#fff;margin-right:.5rem}.recommendation-card.priority-critical .recommendation-priority{background:var(--critical)}.recommendation-card.priority-high .recommendation-priority{background:var(--warning)}.recommendation-category{font-size:.85rem;color:var(--text-muted);margin-right:.5rem}.recommendation-title h4{margin:.5rem 0 0;font-size:1.25rem}.recommendation-description{margin:0 0 1rem;line-height:1.6;color:var(--text-muted)}.recommendation-actions{background:var(--background);padding:1rem;border-radius:8px}.recommendation-actions strong{display:block;margin-bottom:.75rem;color:var(--primary)}.recommendation-actions ul{margin:0;padding-left:1.5rem}.recommendation-actions li{margin-bottom:.5rem;line-height:1.5}@media(max-width:768px){.analyzer-actions{flex-direction:column}.stats-grid,.metrics-grid{grid-template-columns:1fr}.analyzer-tabs{overflow-x:auto;flex-wrap:nowrap}.tab{white-space:nowrap}}.ocpp-analyzer{--primary: #f8f9fa;--secondary: #f1f5f9;--accent: #f59e0b;--text: #1f2937;--muted: #6b7280;--card: #ffffff;--background: #f5f5f5;--line: #e5e7eb;--green: #16a34a;--orange: #d97706;--red: #dc2626;--purple: #8b5cf6;--cahors-red: #E10613;height:100%;display:flex;flex-direction:column;background:var(--background);color:var(--text);overflow:hidden}.analyzer-header{background:linear-gradient(135deg,var(--cahors-red) 0%,#b8050f 100%);padding:1rem 1.5rem;box-shadow:0 4px 16px #e106134d}.header-content{display:flex;align-items:center;justify-content:space-between;gap:1rem}.analyzer-header h1{font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.analyzer-header p{font-size:.85rem;opacity:.9;margin:0}.version-badge{background:#fff3;padding:.2rem .6rem;border-radius:6px;font-size:.7rem;font-weight:700}.analyzer-nav{display:flex;justify-content:center;gap:1rem;padding:1rem;background:var(--card);border-bottom:1px solid var(--line)}.nav-tab{background:var(--background);border:1px solid var(--line);border-radius:8px;padding:.75rem 1.5rem;color:var(--text);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s ease}.nav-tab:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.nav-tab.active{background:var(--accent);border-color:var(--accent);box-shadow:0 4px 12px #f59e0b4d}.nav-tab:disabled{opacity:.5;cursor:not-allowed}.stats-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;padding:1rem;background:var(--secondary)}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;text-align:center;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.stat-card.primary:before{background:var(--accent)}.stat-card.success:before{background:var(--green)}.stat-card.warning:before{background:var(--orange)}.stat-card.danger:before{background:var(--red)}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000004d}.stat-icon{color:var(--muted);margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text)}.stat-card.success .stat-value{color:var(--green)}.stat-card.warning .stat-value{color:var(--orange)}.stat-card.danger .stat-value{color:var(--red)}.stat-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.section-import{flex:1;padding:2rem;overflow:auto}.drop-zone{border:3px dashed var(--line);border-radius:16px;padding:3rem;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--card);margin-bottom:2rem}.drop-zone:hover,.drop-zone.active{border-color:var(--accent);background:#f59e0b1a}.drop-zone.processing{cursor:wait;border-color:var(--orange)}.drop-zone h3{margin:1rem 0 .5rem;font-size:1.25rem}.drop-zone p{color:var(--muted);font-size:.9rem}.drop-zone svg{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.formats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.format-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.5rem 1rem;text-align:center;transition:all .3s ease}.format-card:hover{border-color:var(--accent);transform:translateY(-2px)}.format-card svg{color:var(--accent);margin-bottom:.5rem}.format-card span{display:block;font-weight:600;margin-bottom:.25rem}.format-card small{color:var(--muted);font-size:.7rem}.import-result{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.5rem}.import-result h4{font-size:1.1rem;margin-bottom:1rem}.detected-mfg{background:#f59e0b1a;border-left:3px solid var(--accent);padding:.75rem 1rem;margin-bottom:1rem;border-radius:0 8px 8px 0}.files-list{margin-bottom:1rem}.file-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--background);border-radius:6px;margin-bottom:.5rem}.file-icon{font-size:1.25rem}.file-name{flex:1;font-weight:500}.file-logs{color:var(--green);font-size:.85rem}.import-errors{background:#f851491a;border-left:3px solid var(--red);padding:1rem;margin:1rem 0;border-radius:0 8px 8px 0}.import-errors h5{margin-bottom:.5rem}.import-errors p{color:var(--red);font-size:.85rem;margin:.25rem 0}.import-actions{display:flex;gap:1rem;margin-top:1rem}.btn-primary,.btn-secondary,.btn-danger{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s ease}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--line)}.btn-danger{background:var(--red);color:#fff}.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.section-logs{flex:1;display:flex;flex-direction:column;padding:1rem;overflow:hidden}.logs-toolbar{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.search-box{flex:1;min-width:200px;max-width:400px;display:flex;align-items:center;gap:.5rem;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:0 1rem}.search-box input{flex:1;background:transparent;border:none;color:var(--text);padding:.75rem 0;outline:none}.logs-toolbar select{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.75rem 1rem;color:var(--text);cursor:pointer}.results-count{color:var(--muted);font-size:.85rem}.logs-grid{flex:1;display:grid;grid-template-columns:1fr 600px;gap:1rem;overflow:hidden}.logs-list{overflow:auto;background:var(--card);border-radius:12px;padding:.5rem}.log-item{padding:.75rem;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;border-left:3px solid transparent}.log-item:hover{background:#00000008}.log-item.selected{background:#f59e0b1a}.log-item.severity-info{border-left-color:var(--accent)}.log-item.severity-warning{border-left-color:var(--orange)}.log-item.severity-critical{border-left-color:var(--red)}.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.log-action{font-weight:600;display:flex;align-items:center;gap:.5rem}.severity-badge{padding:.15rem .5rem;border-radius:9999px;font-size:.65rem;font-weight:600}.severity-info{background:#f59e0b26;color:var(--accent)}.severity-warning{background:#f0883e33;color:var(--orange)}.severity-critical{background:#f8514933;color:var(--red)}.log-description{font-size:.8rem;color:var(--muted);margin-bottom:.25rem}.log-meta{font-size:.7rem;color:var(--muted);display:flex;gap:1rem}.log-meta .direction{padding:.1rem .4rem;border-radius:4px;font-weight:600}.direction.OUT{background:#f59e0b26;color:var(--accent)}.direction.IN{background:#3fb95033;color:var(--green)}.more-logs{text-align:center;padding:1rem;color:var(--muted);font-style:italic}.log-details{background:var(--card);border-radius:12px;overflow:auto}.detail-section{padding:1rem;border-bottom:1px solid var(--line)}.detail-section h4{font-size:1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.detail-section h5{font-size:.85rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;color:var(--muted)}.detail-meta{font-size:.75rem;color:var(--muted);display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.json-viewer{background:var(--background);padding:1rem;border-radius:8px;font-size:.75rem;font-family:Consolas,Monaco,monospace;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;line-height:1.5}.detail-section.warnings .alert-item{background:#f851491a;border-left:3px solid var(--red);padding:.5rem;margin-bottom:.25rem;border-radius:0 6px 6px 0;font-size:.8rem}.detail-section.recommendations .recommendation-item{background:#3fb9501a;border-left:3px solid var(--green);padding:.5rem;margin-bottom:.25rem;border-radius:0 6px 6px 0;font-size:.8rem}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--muted);text-align:center;padding:2rem}.no-selection svg{opacity:.5;margin-bottom:1rem}.quick-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1rem}.stat-panel{background:var(--card);border-radius:12px;padding:1rem}.stat-panel h5{margin-bottom:.75rem;font-size:.9rem}.stat-panel.errors h5{color:var(--red)}.stat-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.8rem}.stat-row .count{font-weight:600;color:var(--accent)}.stat-row .count.error{color:var(--red)}.section-catalog{flex:1;padding:1rem;overflow:auto}.catalog-grid{display:grid;gap:1rem}.catalog-card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.catalog-header{display:flex;align-items:center;gap:.75rem;padding:1rem;cursor:pointer;transition:background .2s}.catalog-header:hover{background:#00000008}.catalog-icon{font-size:1.5rem}.catalog-header h4{flex:1;font-size:1rem}.catalog-count{background:var(--accent);padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:600}.catalog-content{max-height:400px;overflow:auto;padding:0 1rem 1rem}.catalog-item{background:var(--background);padding:.75rem;border-radius:8px;margin-bottom:.5rem}.catalog-item strong{display:block;margin-bottom:.25rem}.catalog-item .version,.catalog-item .severity,.catalog-item .country{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;margin-left:.5rem}.catalog-item .version,.catalog-item .severity.info{background:#f59e0b26;color:var(--accent)}.catalog-item .severity.warning{background:#f0883e33;color:var(--orange)}.catalog-item .severity.critical{background:#f8514933;color:var(--red)}.catalog-item .country{background:#8b5cf626;color:var(--purple)}.catalog-item p{font-size:.8rem;color:var(--muted);margin-top:.25rem}@media(max-width:1024px){.logs-grid{grid-template-columns:1fr}.log-details{max-height:300px}}.section-metrics{flex:1;overflow:hidden;display:flex;flex-direction:column}.section-metrics .metrics-analyzer{flex:1;overflow:hidden}@media(max-width:768px){.analyzer-header h1{font-size:1.2rem}.stats-dashboard{grid-template-columns:repeat(3,1fr)}.analyzer-nav{flex-wrap:wrap}.nav-tab{flex:1;justify-content:center}}.caly-analyzer{height:100%;display:flex;flex-direction:column;background:hsl(var(--color-background));overflow:hidden}.caly-nav{display:flex;gap:.5rem;padding:1rem;background:hsl(var(--color-surface));border-bottom:1px solid var(--color-border);flex-wrap:wrap}.caly-nav-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-md);color:hsl(var(--color-text));font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.caly-nav-btn:hover{background:hsl(var(--color-primary) / .1);border-color:hsl(var(--color-primary))}.caly-nav-btn.active{background:hsl(var(--color-primary));border-color:hsl(var(--color-primary));color:#fff}.caly-content{flex:1;overflow:auto;padding:1.5rem}.caly-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;margin-bottom:1rem;color:hsl(var(--color-text))}.caly-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.caly-stat-card{background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;cursor:pointer;transition:all .3s}.caly-stat-card:hover{border-color:hsl(var(--color-primary));transform:translateY(-4px);box-shadow:0 8px 24px #3b82f626}.caly-stat-icon{font-size:2rem;margin-bottom:.5rem}.caly-stat-value{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.caly-stat-label{font-size:.75rem;color:hsl(var(--color-text-muted));text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.caly-catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;margin-bottom:2rem}.caly-catalog-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.caly-catalog-card:hover{border-color:hsl(var(--color-primary));background:hsl(var(--color-primary) / .05)}.caly-catalog-icon{font-size:1.75rem}.caly-catalog-content{flex:1}.caly-catalog-title{font-weight:600;font-size:.9rem}.caly-catalog-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;font-size:.75rem;color:hsl(var(--color-text-muted))}.caly-catalog-arrow{color:hsl(var(--color-text-muted))}.caly-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.65rem;font-weight:600;background:hsl(var(--color-primary) / .15);color:hsl(var(--color-primary))}.caly-badge.primary{background:hsl(var(--color-primary));color:#fff}.caly-badge.critical{background:#ef444426;color:#ef4444}.caly-badge.high{background:#f59e0b26;color:#f59e0b}.caly-badge.medium{background:#3b82f626;color:#3b82f6}.caly-badge.low,.caly-badge.info{background:#10b98126;color:#10b981}.caly-badge.warning{background:#f59e0b26;color:#f59e0b}.caly-thresholds-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.caly-threshold-card{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md)}.caly-threshold-icon{padding:.5rem;border-radius:var(--radius-sm)}.caly-threshold-icon.voltage{background:#3b82f626;color:#3b82f6}.caly-threshold-icon.voltage-tri{background:#8b5cf626;color:#8b5cf6}.caly-threshold-icon.current{background:#f59e0b26;color:#f59e0b}.caly-threshold-icon.temperature{background:#ef444426;color:#ef4444}.caly-threshold-icon.leakage{background:#10b98126;color:#10b981}.caly-threshold-icon.frequency{background:#ec489926;color:#ec4899}.caly-threshold-info{flex:1}.caly-threshold-label{font-size:.8rem;color:hsl(var(--color-text-muted))}.caly-threshold-value{font-size:1rem;font-weight:600;margin:.25rem 0}.caly-threshold-nominal{font-size:.7rem;color:hsl(var(--color-text-muted))}.caly-connectors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.caly-connector-card{padding:1rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center}.caly-connector-card.ac{border-left:3px solid #3b82f6}.caly-connector-card.dc{border-left:3px solid #f59e0b}.caly-connector-type{font-weight:700;font-size:.85rem;margin-bottom:.5rem}.caly-connector-specs{display:flex;justify-content:center;gap:.5rem;font-size:.7rem;color:hsl(var(--color-text-muted));margin-bottom:.5rem}.caly-connector-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600}.caly-connector-badge.ac{background:#3b82f626;color:#3b82f6}.caly-connector-badge.dc{background:#f59e0b26;color:#f59e0b}.caly-catalog-view{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;height:100%}.caly-catalog-sidebar{background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.caly-catalog-sidebar h4{padding:1rem;margin:0;border-bottom:1px solid var(--color-border);font-size:.9rem}.caly-catalog-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--color-border);transition:all .2s}.caly-catalog-item:hover{background:hsl(var(--color-primary) / .05)}.caly-catalog-item.active{background:hsl(var(--color-primary) / .1);border-left:3px solid hsl(var(--color-primary))}.caly-catalog-item-icon{font-size:1.25rem}.caly-catalog-item-title{font-size:.8rem;flex:1}.caly-catalog-detail{background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto;padding:1.5rem}.caly-catalog-header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.caly-catalog-header-icon{font-size:2.5rem}.caly-catalog-header h3{margin:0;font-size:1.25rem}.caly-catalog-header-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;font-size:.8rem;color:hsl(var(--color-text-muted))}.caly-catalog-section{margin-bottom:1.5rem}.caly-catalog-section h4{display:flex;align-items:center;gap:.5rem;font-size:.9rem;margin-bottom:.5rem}.caly-catalog-section p{font-size:.85rem;color:hsl(var(--color-text-muted));line-height:1.6}.caly-catalog-section ul{margin:0;padding-left:1.25rem;font-size:.85rem;color:hsl(var(--color-text-muted))}.caly-catalog-section ul li{margin-bottom:.35rem}.caly-catalog-section.warning{background:#f59e0b0d;padding:1rem;border-radius:var(--radius-md);border-left:3px solid #f59e0b}.caly-catalog-section.warning h4{color:#f59e0b}.caly-catalog-section.success{background:#10b9810d;padding:1rem;border-radius:var(--radius-md);border-left:3px solid #10b981}.caly-catalog-section.success h4{color:#10b981}.caly-catalog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:hsl(var(--color-text-muted));text-align:center}.caly-catalog-empty svg{opacity:.3;margin-bottom:1rem}.caly-tags{display:flex;flex-wrap:wrap;gap:.35rem}.caly-tag{display:inline-block;padding:.25rem .5rem;background:hsl(var(--color-background));border:1px solid var(--color-border);border-radius:4px;font-size:.7rem;font-family:monospace}.caly-tag.example{background:hsl(var(--color-primary) / .1);border-color:hsl(var(--color-primary) / .3);color:hsl(var(--color-primary))}.caly-search-view{height:100%;display:flex;flex-direction:column}.caly-search-header{margin-bottom:1.5rem}.caly-search-input-wrapper{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md)}.caly-search-input-wrapper svg{color:hsl(var(--color-text-muted))}.caly-search-input{flex:1;background:transparent;border:none;color:hsl(var(--color-text));font-size:1rem;outline:none}.caly-search-results{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;flex:1;overflow:hidden}.caly-search-column{display:flex;flex-direction:column;overflow:hidden}.caly-search-column h4{display:flex;align-items:center;gap:.5rem;font-size:.9rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.caly-search-list{flex:1;overflow:auto}.caly-search-item{padding:.75rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:.5rem}.caly-search-item.error{border-left:3px solid #ef4444}.caly-search-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.caly-code{font-family:monospace;font-weight:600;font-size:.85rem}.caly-search-item-desc{font-size:.8rem;color:hsl(var(--color-text-muted));margin-bottom:.35rem}.caly-search-item-meta{display:flex;justify-content:space-between;font-size:.7rem;color:hsl(var(--color-text-muted))}.caly-dc-view{height:100%;display:flex;flex-direction:column}.caly-dc-header{margin-bottom:1.5rem}.caly-dc-stats{display:flex;gap:1rem;margin-bottom:1rem}.caly-dc-stat{padding:.75rem 1.5rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center}.caly-dc-stat.critical{border-left:3px solid #ef4444}.caly-dc-stat.high{border-left:3px solid #f59e0b}.caly-dc-stat.medium{border-left:3px solid #3b82f6}.caly-dc-stat-value{font-size:1.5rem;font-weight:700}.caly-dc-stat-label{font-size:.7rem;color:hsl(var(--color-text-muted))}.caly-dc-filters{display:flex;gap:.75rem;flex-wrap:wrap}.caly-filter-group{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm)}.caly-filter-group input{background:transparent;border:none;color:hsl(var(--color-text));outline:none;width:150px}.caly-dc-filters select{padding:.5rem .75rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:hsl(var(--color-text));cursor:pointer}.caly-dc-list{flex:1;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:.75rem;align-content:start}.caly-dc-item{padding:.75rem 1rem;background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-sm)}.caly-dc-item.critical{border-left:3px solid #ef4444}.caly-dc-item.high{border-left:3px solid #f59e0b}.caly-dc-item.medium{border-left:3px solid #3b82f6}.caly-dc-item.low,.caly-dc-item.info{border-left:3px solid #10b981}.caly-dc-item-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.caly-dc-code{font-family:monospace;font-size:.75rem;font-weight:600}.caly-dc-desc{font-size:.8rem;color:hsl(var(--color-text-muted));margin-bottom:.35rem}.caly-dc-meta{display:flex;justify-content:space-between;font-size:.7rem;color:hsl(var(--color-text-muted))}.caly-dc-category{background:hsl(var(--color-background));padding:.15rem .4rem;border-radius:3px}.caly-dc-mapping{font-family:monospace}.caly-dc-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:hsl(var(--color-text-muted))}.caly-dc-empty svg{opacity:.3;margin-bottom:1rem}.caly-thresholds-view{overflow:auto}.caly-thresholds-table{overflow-x:auto}.caly-thresholds-table table{width:100%;border-collapse:collapse;font-size:.85rem}.caly-thresholds-table th,.caly-thresholds-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.caly-thresholds-table th{background:hsl(var(--color-surface));font-weight:600;font-size:.75rem;text-transform:uppercase;color:hsl(var(--color-text-muted))}.caly-thresholds-table tr:hover{background:hsl(var(--color-surface) / .5)}.caly-performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.caly-perf-card{background:hsl(var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem}.caly-perf-card h4{margin:0 0 1rem;font-size:.9rem}.caly-perf-levels{display:flex;flex-direction:column;gap:.5rem}.caly-perf-level{display:flex;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.8rem}.caly-perf-level.excellent{background:#10b9811a;color:#10b981}.caly-perf-level.good{background:#3b82f61a;color:#3b82f6}.caly-perf-level.acceptable{background:#f59e0b1a;color:#f59e0b}.caly-perf-level.poor{background:#ef44441a;color:#ef4444}@media(max-width:1024px){.caly-catalog-view,.caly-search-results{grid-template-columns:1fr}}@media(max-width:768px){.caly-stats-grid{grid-template-columns:repeat(2,1fr)}.caly-dc-list{grid-template-columns:1fr}}.lab-summary-panel{background:linear-gradient(135deg,#252b37,#181d25);border:1px solid hsl(220,15%,30%);border-radius:12px;padding:20px;color:#fff;box-shadow:0 4px 12px #0000004d;height:fit-content;position:sticky;top:1.5rem;z-index:100;min-height:300px;display:flex;flex-direction:column;container-type:inline-size;container-name:summary-panel}.lab-summary-panel h3{margin-top:0;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px;color:#80bfff;font-size:1.2rem;text-align:center}.summary-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#bdc7db;margin-bottom:12px;margin-left:5px;font-weight:700;display:flex;align-items:center}.summary-card{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:12px 15px;margin-bottom:12px;transition:all .2s ease;cursor:default;position:relative}.summary-card:hover{background:#ffffff1f;border-color:#ffffff4d;transform:translateY(-1px);box-shadow:0 4px 8px #0003}.summary-card.multi-row{padding-bottom:8px}.summary-row{display:flex;justify-content:space-between;align-items:center}.summary-card-title{font-size:.9rem;color:#cdd5e4;font-weight:600;margin-bottom:8px;border-bottom:1px dashed rgba(255,255,255,.2);padding-bottom:5px}.summary-label{color:#e5e5e5;font-size:.95rem;font-weight:500}.summary-value{font-weight:700;font-family:Roboto Mono,monospace;font-size:1.2rem;transition:color .3s}.summary-value.good{color:#4ade80}.summary-value.warning{color:#fbbf24}.summary-value.danger{color:#f87171}.summary-subitem{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.9rem;padding:2px 0}.summary-subitem .summary-label{font-size:.88rem;color:#d0d0d0;font-weight:500}.summary-value-small{font-family:Roboto Mono,monospace;color:#f0f0f0;font-weight:600;font-size:.95rem}.export-btn{width:100%;margin-top:15px;padding:12px;background:linear-gradient(to right,#1980e6,#1773cf);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:.95rem;box-shadow:0 2px 4px #0003;transition:all .2s}.export-btn:hover{background:linear-gradient(to right,#4799eb,#308ce8);transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.export-btn:active{transform:translateY(0)}.tooltip-container{position:relative;display:inline-flex;align-items:center;cursor:help;margin-left:6px;z-index:200}.tooltip-icon{display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;background-color:#ffffff26;border-radius:50%;font-size:11px;font-weight:700;font-style:normal;color:#ccc;border:1px solid rgba(255,255,255,.3);transition:all .2s}.tooltip-container:hover .tooltip-icon{background-color:#ffffffe6;color:#111;border-color:#fff}.tooltip-text{visibility:hidden;width:250px;background-color:#141419f2;color:#fff;text-align:left;border-radius:6px;padding:10px;position:absolute;z-index:99999;bottom:125%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s,bottom .2s;font-size:.85rem;line-height:1.4;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 15px #00000080;font-weight:400;text-transform:none;letter-spacing:normal;pointer-events:none}.tooltip-container:hover .tooltip-text{visibility:visible;opacity:1;bottom:145%}.tooltip-text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(20,20,25,.95) transparent transparent transparent}.report-overlap{display:none}@media print{.report-overlap{display:block!important;position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;color:#000;z-index:99999;padding:40px}.lab-summary-panel>*:not(.report-overlap){display:none!important}body>*:not(.lab-summary-panel){display:none!important}}@media(min-width:1601px){.lab-summary-panel{padding:24px}.summary-value{font-size:1.4rem}}@media(max-width:1200px){.lab-summary-panel{position:relative;top:0}}@media(max-width:1024px){.lab-summary-panel{padding:16px;position:relative;top:0}.lab-summary-panel h3{font-size:1.1rem;margin-bottom:15px}.summary-card{padding:10px 12px;margin-bottom:10px}.summary-grid-responsive{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}}@media(max-width:768px){.lab-summary-panel{padding:12px;border-radius:8px}.lab-summary-panel h3{font-size:1rem;margin-bottom:12px;padding-bottom:8px}.summary-section-title{font-size:.8rem;margin-bottom:8px}.summary-card{padding:8px 10px;margin-bottom:8px}.summary-label{font-size:.85rem}.summary-value{font-size:1rem}.summary-value-small{font-size:.85rem}.export-btn{padding:10px;font-size:.9rem}.tooltip-text{width:200px;font-size:.8rem;padding:8px}}@container summary-panel (max-width: 280px){h3{font-size:.95rem!important}.summary-section-title{font-size:.7rem!important}.summary-label{font-size:.8rem!important}.summary-value{font-size:1rem!important}.summary-value-small{font-size:.75rem!important}.summary-card{padding:8px 10px!important;margin-bottom:8px!important}}@container summary-panel (min-width: 281px) and (max-width: 400px){h3{font-size:1.1rem!important}.summary-section-title{font-size:.8rem!important}.summary-label{font-size:.9rem!important}.summary-value{font-size:1.15rem!important}}@container summary-panel (min-width: 401px) and (max-width: 550px){h3{font-size:1.25rem!important}.summary-section-title{font-size:.85rem!important}.summary-label{font-size:.95rem!important}.summary-value{font-size:1.3rem!important}.summary-card{padding:14px 16px!important}}@container summary-panel (min-width: 551px){h3{font-size:1.4rem!important;margin-bottom:24px!important}.summary-section-title{font-size:.9rem!important}.summary-label{font-size:1rem!important}.summary-value{font-size:1.5rem!important}.summary-value-small{font-size:1rem!important}.summary-card{padding:16px 18px!important;margin-bottom:14px!important}.export-btn{padding:14px!important;font-size:1rem!important}}.summary-panel-wrapper{background:#0a0e1a99;border:1px solid rgba(0,255,136,.2);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.summary-panel-wrapper .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.summary-panel-wrapper .panel-header h3{margin:0;font-size:18px;color:#0f8;font-weight:600}.resizer{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:transparent;transition:background-color .2s ease;z-index:10}.resizer-horizontal{width:12px;cursor:col-resize;margin:0 -4px}.resizer-horizontal:hover,.resizer-horizontal.active{background:linear-gradient(90deg,transparent 0%,rgba(99,102,241,.3) 50%,transparent 100%)}.resizer-vertical{height:12px;cursor:row-resize;margin:-4px 0}.resizer-vertical:hover,.resizer-vertical.active{background:linear-gradient(180deg,transparent 0%,rgba(99,102,241,.3) 50%,transparent 100%)}.resizer-handle{display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;background:hsl(var(--color-surface));border:1px solid hsl(var(--color-border));opacity:.6;transition:all .2s ease}.resizer:hover .resizer-handle,.resizer.active .resizer-handle{opacity:1;background:hsl(var(--color-primary));border-color:hsl(var(--color-primary))}.resizer-dots{display:flex;gap:3px}.resizer-horizontal .resizer-dots{flex-direction:column}.resizer-vertical .resizer-dots{flex-direction:row}.resizer-dots span{width:4px;height:4px;border-radius:50%;background:hsl(var(--color-text-muted));transition:background-color .2s ease}.resizer:hover .resizer-dots span,.resizer.active .resizer-dots span{background:#fff}.resizer.active{z-index:100}.resizer.active .resizer-handle{transform:scale(1.1);box-shadow:0 0 10px #6366f180}@media(max-width:1024px){.resizer{display:none}}.status-bar{display:flex;align-items:center;gap:1rem;padding:.25rem .75rem;background:linear-gradient(to right,#f8f9fa,#f1f5f9);border-top:1px solid #e5e7eb;font-size:.8rem;color:#6b7280;flex-wrap:wrap;justify-content:center}.status-section{display:flex;align-items:center;gap:.25rem;padding:.15rem .5rem;background:#00000005;border-radius:3px;border:1px solid rgba(0,0,0,.05)}.status-section.mode{background:transparent;border:none;padding:0}.status-section.quality{margin-left:auto;background:transparent;border:none}.mode-indicator{padding:.15rem .4rem;border-radius:3px;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.3px}.mode-indicator.irve{background:linear-gradient(135deg,#22c55e33,#16a34a33);border:1px solid rgba(34,197,94,.4);color:#4ade80}.mode-indicator.pq{background:linear-gradient(135deg,#3b82f633,#2563eb33);border:1px solid rgba(59,130,246,.4);color:#60a5fa}.status-label{color:#9ca3af;font-size:.7rem;text-transform:uppercase;letter-spacing:.3px}.status-value{font-weight:600;color:#1f2937;font-family:SF Mono,Consolas,monospace;font-size:.8rem}.status-value.highlight{color:#22c55e;font-size:.7rem}.status-value.ok{color:#22c55e}.status-value.warning{color:#f59e0b}.status-value.danger{color:#ef4444}.status-sub{color:#9ca3af;font-size:.7rem}.quality-indicator{display:flex;align-items:center;gap:.2rem;padding:.15rem .4rem;border-radius:12px;font-size:.75rem;font-weight:600}.quality-indicator.excellent{background:#22c55e26;color:#22c55e}.quality-indicator.good{background:#f59e0b26;color:#f59e0b}.quality-indicator.degraded{background:#ef444426;color:#ef4444}.quality-label{font-size:.7rem}@media(max-width:900px){.status-bar{gap:.5rem;padding:.2rem .35rem}.status-section{padding:.1rem .35rem}.status-label,.quality-label{display:none}}@media(max-width:600px){.status-bar{justify-content:space-between}.status-section.quality{margin-left:0}}.lab-page{width:100%;padding:.5rem .75rem;min-height:100vh;box-sizing:border-box}.lab-header-compact{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0;margin-bottom:.35rem}.lab-header-left{display:flex;align-items:center;gap:.75rem}.lab-header-compact h1{color:hsl(var(--color-text));margin:0;font-size:.95rem;font-weight:600}.lab-subtitle{color:hsl(var(--color-text-muted));font-size:.7rem;padding:.15rem .5rem;background:#0000000a;border-radius:10px}.lab-header{text-align:center;margin-bottom:.5rem}.lab-header h1{color:hsl(var(--color-text));margin-bottom:.25rem;font-size:1rem}.subtitle{color:hsl(var(--color-text-muted));font-size:.75rem}.reset-layout-btn{padding:.2rem .4rem;background:#0000000a;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:hsl(var(--color-text-muted));font-size:.75rem;cursor:pointer;transition:all .2s}.reset-layout-btn:hover{background:#00000014;color:#1f2937;border-color:#00000026}.lab-content{display:grid;grid-template-columns:minmax(320px,450px) minmax(400px,1fr) minmax(280px,350px);gap:1.5rem;margin-top:1.5rem;align-items:stretch}.lab-content-resizable{display:flex;flex-direction:row;gap:0;align-items:stretch}.tab-content,.visualization-panel,.summary-layout{min-width:0;display:flex;flex-direction:column}.tab-content{background:hsl(var(--color-background));border-radius:8px;border:1px solid hsl(var(--color-border));min-height:300px;max-height:calc(100vh - 140px);overflow-y:auto;transition:width .05s ease-out;container-type:inline-size;container-name:tab-panel}.lab-content-resizable .tab-content{min-width:280px;max-width:800px}.visualization-panel{background:hsl(var(--color-surface));padding:.5rem;border-radius:8px;border:1px solid hsl(var(--color-border));flex:1;min-height:400px;min-width:280px;overflow:hidden}.lab-content-resizable .summary-layout{min-width:200px;max-width:800px;transition:width .05s ease-out}.visualization-panel h3{margin-bottom:1rem;color:hsl(var(--color-text))}.summary-layout{min-height:400px}.viz-placeholder{background:hsl(var(--color-background));padding:3rem;border-radius:var(--radius-md);text-align:center;color:hsl(var(--color-text-muted))}.mode-info{margin-top:1rem;font-size:.9rem}.mode-info strong{color:hsl(var(--color-primary))}.placeholder-tab{padding:3rem;text-align:center}.placeholder-tab h2{color:hsl(var(--color-text));margin-bottom:1rem}.placeholder-tab p{color:hsl(var(--color-text-muted))}@media(min-width:1601px){.lab-content{grid-template-columns:minmax(400px,500px) minmax(600px,1fr) minmax(300px,400px)}}@media(max-width:1600px)and (min-width:1401px){.lab-content{grid-template-columns:minmax(350px,450px) minmax(450px,1fr) minmax(280px,320px)}}@media(max-width:1400px)and (min-width:1201px){.lab-content{grid-template-columns:minmax(320px,400px) 1fr;grid-template-rows:auto auto}.summary-layout{grid-column:2;grid-row:2}}@media(max-width:1200px)and (min-width:1025px){.lab-content{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.visualization-panel{grid-column:1 / -1;grid-row:1}.tab-content{grid-column:1;grid-row:2}.summary-layout{grid-column:2;grid-row:2}}@media(max-width:1024px)and (min-width:769px){.lab-page{padding:1rem}.lab-content,.lab-content-resizable{display:flex;flex-direction:column;gap:1rem}.tab-content,.visualization-panel,.summary-layout,.lab-content-resizable .tab-content,.lab-content-resizable .summary-layout{width:100%!important;max-width:none!important;min-width:0!important;max-height:none;min-height:auto}.visualization-panel{padding:1rem}.reset-layout-btn{display:none}}@media(max-width:768px){.lab-page{padding:.75rem}.lab-header{margin-bottom:1rem}.lab-content,.lab-content-resizable{display:flex;flex-direction:column;gap:.75rem}.tab-content,.lab-content-resizable .tab-content{border-radius:var(--radius-md);width:100%!important;max-width:none!important;min-width:0!important}.visualization-panel{padding:.75rem;border-radius:var(--radius-md);min-width:0!important}.summary-layout,.lab-content-resizable .summary-layout{border-radius:var(--radius-md);width:100%!important;max-width:none!important;min-width:0!important}.reset-layout-btn{display:none}}@container tab-panel (max-width: 350px){h2,h3{font-size:.95rem!important}h4{font-size:.85rem!important}p,label,span,.control-group label{font-size:.8rem!important}input[type=range]{height:4px}.hint{font-size:.7rem!important}}@container tab-panel (min-width: 351px) and (max-width: 500px){h2,h3{font-size:1rem!important}h4{font-size:.9rem!important}p,label,span{font-size:.85rem!important}}@container tab-panel (min-width: 501px) and (max-width: 650px){h2,h3{font-size:1.1rem!important}h4{font-size:.95rem!important}p,label,span{font-size:.9rem!important}}@container tab-panel (min-width: 651px){h2,h3{font-size:1.25rem!important}h4{font-size:1rem!important}p,label,span{font-size:.95rem!important}.control-section{padding:1.5rem!important}}.hydraulic-simulator{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:linear-gradient(135deg,#f5f5f5,#f8f9fa);border-radius:12px;color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.hs-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(0,0,0,.08)}.hs-header-left h2{margin:0;font-size:1.4rem;font-weight:700;color:#1f2937}.hs-header-left p{margin:.25rem 0 0;font-size:.9rem;color:#6b7280}.hs-header-right{display:flex;gap:.5rem}.hs-mode-btn{padding:.6rem 1rem;border:none;border-radius:8px;background:#f1f5f9;color:#1f2937;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.hs-mode-btn:hover{background:#e5e7eb;transform:translateY(-1px)}.hs-mode-btn.active{background:#3b82f6;color:#fff}.hs-guided-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;background:linear-gradient(90deg,#1e40af,#3b82f6);border-radius:10px;border:1px solid rgba(0,0,0,.1)}.hs-guided-info{flex:1}.hs-guided-step{font-size:1.1rem;font-weight:700;color:#fff}.hs-guided-info p{margin:.25rem 0 0;font-size:.9rem;color:#fffffff2}.hs-guided-nav{display:flex;align-items:center;gap:1rem}.hs-guided-nav button{padding:.5rem 1rem;border:none;border-radius:6px;background:#0000000f;color:#fff;font-weight:500;cursor:pointer;transition:all .2s}.hs-guided-nav button:hover:not(:disabled){background:#00000014}.hs-guided-nav button:disabled{opacity:.5;cursor:not-allowed}.hs-guided-nav span{color:#ffffffe6;font-size:.9rem}.hs-quiz-banner{padding:1.25rem;background:linear-gradient(90deg,#7c3aed,#a855f7);border-radius:10px;border:1px solid rgba(0,0,0,.1)}.hs-quiz-header{display:flex;justify-content:space-between;margin-bottom:1rem;font-size:.9rem;color:#ffffffe6}.hs-quiz-question h4{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#fff}.hs-quiz-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.hs-quiz-option{padding:.75rem 1rem;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#0000000a;color:#fff;font-size:.9rem;text-align:left;cursor:pointer;transition:all .2s}.hs-quiz-option:hover:not(:disabled){background:#0000000f;border-color:#ffffff80}.hs-quiz-option.correct{background:#22c55e4d;border-color:#22c55e}.hs-quiz-option.wrong{background:#ef44444d;border-color:#ef4444}.hs-quiz-explanation{margin-top:1rem;padding:1rem;background:#0000000a;border-radius:8px;border-left:4px solid #22c55e}.hs-quiz-explanation p{margin:0 0 .75rem;color:#fffffff2}.hs-quiz-explanation button{padding:.5rem 1.25rem;border:none;border-radius:6px;background:#22c55e;color:#fff;font-weight:600;cursor:pointer}.hs-presets{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.hs-presets-label{font-size:.9rem;font-weight:600;color:#6b7280}.hs-preset-btn{padding:.5rem 1rem;border:1px solid #e5e7eb;border-radius:20px;background:#fff;color:#1f2937;font-size:.85rem;cursor:pointer;transition:all .2s}.hs-preset-btn:hover{background:#f1f5f9;border-color:#3b82f6;transform:translateY(-1px)}.hs-panel{background:#fff;border-radius:10px;padding:1rem;border:1px solid rgba(0,0,0,.08)}.hs-panel h3{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#1f2937;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.hs-main{display:flex;flex-direction:row;gap:1rem;overflow-x:auto}.hs-schematic{flex:1.5;min-width:450px}.hs-schematic .hydraulic-svg-container{width:100%;height:340px;border-radius:10px}.hs-graphs{display:flex;flex-direction:row;gap:1rem;flex:2}.hs-oscilloscope,.hs-spectrum{flex:1;min-width:280px}.hs-oscilloscope canvas,.hs-spectrum canvas{width:100%;height:220px;border-radius:8px;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.hs-bottom{display:grid;grid-template-columns:2fr 1fr;gap:1rem}.hs-controls{display:flex;flex-direction:column}.hs-sliders{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.hs-slider{display:flex;flex-direction:column;gap:.25rem}.hs-slider-header{display:flex;justify-content:space-between;align-items:center}.hs-slider-label{font-size:.8rem;color:#6b7280}.hs-slider-value{font-size:.85rem;font-weight:600;color:#1f2937;min-width:45px;text-align:right}.hs-slider-track{position:relative;height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}.hs-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:4px;transition:width .1s ease}.hs-slider-track input[type=range]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.hs-indicators,.hs-metrics{display:flex;flex-direction:column;gap:.75rem}.hs-metric{display:flex;align-items:center;gap:.75rem}.hs-metric-label{font-size:.8rem;color:#6b7280;min-width:110px}.hs-metric-bar{flex:1;height:10px;background:#f1f5f9;border-radius:5px;overflow:hidden}.hs-metric-fill{height:100%;border-radius:5px;transition:width .3s ease,background-color .3s ease}.hs-metric-value{font-size:.9rem;font-weight:700;color:#1f2937;min-width:55px;text-align:right}.hs-risk{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f1f5f9;border-radius:8px;margin-top:.25rem}.hs-risk span:first-child{font-size:.85rem;color:#6b7280}.hs-risk-badge{font-weight:700;padding:.25rem .75rem;border-radius:20px;font-size:.8rem}.hs-risk-low .hs-risk-badge{background:#22c55e33;color:#22c55e}.hs-risk-medium .hs-risk-badge{background:#eab30833;color:#eab308}.hs-risk-high .hs-risk-badge{background:#f9731633;color:#f97316}.hs-risk-critical .hs-risk-badge{background:#ef444433;color:#ef4444}.hs-correspondences{margin-top:.5rem}.hs-correspondences h4{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:#6b7280}.hs-correspondences table{width:100%;border-collapse:collapse;font-size:.8rem}.hs-correspondences th,.hs-correspondences td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.05)}.hs-correspondences th{color:#9ca3af;font-weight:500}.hs-correspondences td{color:#4b5563}.hs-export{display:flex;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}.hs-export button{flex:1;padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;background:transparent;color:#6b7280;font-size:.85rem;cursor:pointer;transition:all .2s}.hs-export button:hover{background:#f1f5f9;color:#1f2937;border-color:#d1d5db}@media(max-width:1400px){.hs-main{flex-wrap:wrap}.hs-schematic{flex:100%;min-width:100%}.hs-graphs{flex:100%}}@media(max-width:1200px){.hs-bottom{grid-template-columns:1fr}.hs-sliders{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.hydraulic-simulator{padding:.75rem}.hs-header{flex-direction:column;gap:.75rem}.hs-header-left h2{font-size:1.2rem}.hs-presets{flex-wrap:wrap}.hs-preset-btn{font-size:.75rem;padding:.4rem .75rem}.hs-sliders{grid-template-columns:1fr}.hs-guided-banner{flex-direction:column;text-align:center}.hs-quiz-options{grid-template-columns:1fr}.hs-schematic canvas{height:180px}.hs-oscilloscope canvas,.hs-spectrum canvas{height:150px}}@media(max-width:480px){.hs-header-right{width:100%}.hs-mode-btn{flex:1}.hs-metric{flex-wrap:wrap}.hs-metric-bar{width:100%;order:3}.hs-metric-label{flex:1}}.hs-risk-critical .hs-risk-badge{animation:pulse 1s ease-in-out infinite}@media print{.hs-header-right,.hs-presets,.hs-controls,.hs-export,.hs-guided-banner,.hs-quiz-banner{display:none}.hydraulic-simulator{background:#fff;color:#000}.hs-panel{background:#f8fafc;border:1px solid #e2e8f0}}.hydraulic-svg-container{width:100%;height:340px;background:#f5f5f5;border-radius:10px;overflow:hidden;box-shadow:0 4px 20px #0000004d}.hydraulic-svg{width:100%;height:100%;display:block}.pump-blades-svg{transform-origin:center;animation:pumpRotateSVG 5s linear infinite}@keyframes pumpRotateSVG{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.valve-handle-svg{transform-origin:center;transition:transform .5s ease-out}.valve-indicator-svg{animation:valveGlowSVG 2s ease-in-out infinite}@keyframes valveGlowSVG{0%,to{opacity:.8}50%{opacity:1;filter:brightness(1.3)}}.water-flow-main{animation:waterFlowSVG 4s linear infinite}@keyframes waterFlowSVG{0%{transform:translate(-150px)}to{transform:translate(0)}}.water-particle-svg{animation:particleMoveSVG 3s linear infinite}.water-particle-svg.turbulent{animation:particleTurbulentSVG 2s ease-in-out infinite}@keyframes particleMoveSVG{0%{transform:translate(0);opacity:.5}50%{opacity:1}to{transform:translate(40px);opacity:.5}}@keyframes particleTurbulentSVG{0%{transform:translate(0);opacity:.5}25%{transform:translate(10px,-6px);opacity:1}50%{transform:translate(20px,4px);opacity:.7}75%{transform:translate(30px,-4px);opacity:1}to{transform:translate(40px);opacity:.5}}.tank-water-svg{animation:tankWaveSVG 3s ease-in-out infinite}@keyframes tankWaveSVG{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.charge-pulse-svg{animation:chargePulseSVG 2s ease-out infinite;transform-origin:center}@keyframes chargePulseSVG{0%{transform:scale(1);opacity:.6}to{transform:scale(1.4);opacity:0}}.flow-arrow-svg{animation:flowArrowSVG 2.5s ease-in-out infinite}@keyframes flowArrowSVG{0%{opacity:.2;transform:translate(-8px)}50%{opacity:1;transform:translate(0)}to{opacity:.2;transform:translate(8px)}}@media(prefers-reduced-motion:reduce){.pump-blades-svg,.water-flow-main,.water-particle-svg,.tank-water-svg,.charge-pulse-svg,.flow-arrow-svg,.valve-indicator-svg{animation:none}}:root{--tooltip-bg: #ffffff;--tooltip-text: #1f2937;--tooltip-border: #f59e0b;--tooltip-border-secondary: rgba(245, 158, 11, .3);--tooltip-shadow: rgba(245, 158, 11, .2);--tooltip-title-color: #d97706;--tooltip-description-color: #6b7280;--tooltip-note-color: #9ca3af;--tooltip-formula-bg: rgba(0, 0, 0, .03);--tooltip-formula-border: #f59e0b;--tooltip-padding: 14px 18px;--tooltip-max-width: 380px;--tooltip-min-width: 200px;--tooltip-border-radius: 10px;--tooltip-border-width: 1px;--tooltip-arrow-size: 8px;--tooltip-transition-duration: .25s;--tooltip-transition-easing: cubic-bezier(.4, 0, .2, 1);--tooltip-show-delay: .4s;--tooltip-hide-delay: .1s;--tooltip-font-size: 14px;--tooltip-font-size-small: 12px;--tooltip-font-size-large: 16px;--tooltip-line-height: 1.6;--tooltip-font-family: "Segoe UI", system-ui, -apple-system, sans-serif;--tooltip-font-family-mono: "Courier New", "Consolas", monospace;--tooltip-z-index: 10000}.tooltip-wrapper{position:relative;display:inline-block}[data-tooltip]{cursor:help;position:relative}.tooltip-bubble{position:absolute;z-index:var(--tooltip-z-index);background:var(--tooltip-bg);color:var(--tooltip-text);border:var(--tooltip-border-width) solid var(--tooltip-border);border-radius:var(--tooltip-border-radius);padding:var(--tooltip-padding);min-width:var(--tooltip-min-width);max-width:var(--tooltip-max-width);width:max-content;box-shadow:0 4px 6px #00000014,0 8px 24px var(--tooltip-shadow),inset 0 1px #fffc;font-family:var(--tooltip-font-family);font-size:var(--tooltip-font-size);line-height:var(--tooltip-line-height);text-align:left;word-wrap:break-word;opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity var(--tooltip-transition-duration) var(--tooltip-transition-easing),visibility var(--tooltip-transition-duration) var(--tooltip-transition-easing),transform var(--tooltip-transition-duration) var(--tooltip-transition-easing);pointer-events:none}.tooltip-bubble.show{opacity:1;visibility:visible;transform:translateY(0);transition-delay:var(--tooltip-show-delay);pointer-events:auto}.tooltip-bubble:before{content:"";position:absolute;width:0;height:0;border:var(--tooltip-arrow-size) solid transparent}.tooltip-bubble:after{content:"";position:absolute;width:0;height:0;border:calc(var(--tooltip-arrow-size) - 1px) solid transparent}.tooltip-bubble.top{bottom:calc(100% + 12px);left:50%;transform:translate(-50%) translateY(-5px)}.tooltip-bubble.top.show{transform:translate(-50%) translateY(0)}.tooltip-bubble.top:before{top:100%;left:var(--arrow-pos, 50%);transform:translate(-50%);border-top-color:var(--tooltip-border)}.tooltip-bubble.top:after{top:100%;left:var(--arrow-pos, 50%);transform:translate(-50%) translateY(-1px);border-top-color:var(--tooltip-bg)}.tooltip-bubble.bottom{top:calc(100% + 12px);left:50%;transform:translate(-50%) translateY(5px)}.tooltip-bubble.bottom.show{transform:translate(-50%) translateY(0)}.tooltip-bubble.bottom:before{bottom:100%;left:var(--arrow-pos, 50%);transform:translate(-50%);border-bottom-color:var(--tooltip-border)}.tooltip-bubble.bottom:after{bottom:100%;left:var(--arrow-pos, 50%);transform:translate(-50%) translateY(1px);border-bottom-color:var(--tooltip-bg)}.tooltip-bubble.left{right:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(-5px)}.tooltip-bubble.left.show{transform:translateY(-50%) translate(0)}.tooltip-bubble.left:before{left:100%;top:var(--arrow-pos, 50%);transform:translateY(-50%);border-left-color:var(--tooltip-border)}.tooltip-bubble.left:after{left:100%;top:var(--arrow-pos, 50%);transform:translateY(-50%) translate(-1px);border-left-color:var(--tooltip-bg)}.tooltip-bubble.right{left:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(5px)}.tooltip-bubble.right.show{transform:translateY(-50%) translate(0)}.tooltip-bubble.right:before{right:100%;top:var(--arrow-pos, 50%);transform:translateY(-50%);border-right-color:var(--tooltip-border)}.tooltip-bubble.right:after{right:100%;top:var(--arrow-pos, 50%);transform:translateY(-50%) translate(1px);border-right-color:var(--tooltip-bg)}.tooltip-title{font-weight:700;font-size:var(--tooltip-font-size-large);color:var(--tooltip-title-color);margin-bottom:8px;display:flex;align-items:center;gap:8px;line-height:1.3}.tooltip-title:before{content:"●";font-size:10px;color:var(--tooltip-border)}.tooltip-description{font-size:var(--tooltip-font-size-small);color:var(--tooltip-description-color);margin-bottom:10px;font-style:italic;line-height:1.4;padding-left:18px;border-left:2px solid var(--tooltip-border-secondary)}.tooltip-content{margin-bottom:10px;line-height:1.6}.tooltip-content strong{color:var(--tooltip-title-color);font-weight:600}.tooltip-content em{color:var(--tooltip-description-color);font-style:italic}.tooltip-formula{background:var(--tooltip-formula-bg);padding:10px 12px;border-radius:6px;font-family:var(--tooltip-font-family-mono);font-size:13px;margin:10px 0;border-left:3px solid var(--tooltip-formula-border);color:#d97706;overflow-x:auto;white-space:pre}.tooltip-formula:before{content:"Formule : ";font-family:var(--tooltip-font-family);font-size:11px;color:var(--tooltip-description-color);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:5px}.tooltip-note{font-size:var(--tooltip-font-size-small);color:var(--tooltip-note-color);margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08);display:flex;gap:6px;line-height:1.5}.tooltip-note:before{content:"💡";flex-shrink:0}.tooltip-standard{background:#f59e0b14;padding:8px 10px;border-radius:5px;font-size:var(--tooltip-font-size-small);margin:8px 0;border-left:3px solid var(--tooltip-border)}.tooltip-standard:before{content:"📋 ";margin-right:5px}.tooltip-list{margin:8px 0;padding-left:20px;list-style:none}.tooltip-list li{margin:4px 0;position:relative}.tooltip-list li:before{content:"▸";color:var(--tooltip-border);position:absolute;left:-15px}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:2px solid var(--tooltip-border);background:transparent;color:var(--tooltip-border);font-size:12px;font-weight:700;font-family:var(--tooltip-font-family);cursor:help;margin-left:6px;transition:all .2s ease;vertical-align:middle;flex-shrink:0}.help-icon:hover{background:var(--tooltip-border);color:var(--tooltip-bg);transform:scale(1.15);box-shadow:0 0 10px var(--tooltip-shadow)}.help-icon:before{content:"?"}.help-icon-svg{width:18px;height:18px;cursor:help;margin-left:6px;transition:transform .2s ease;vertical-align:middle}.help-icon-svg:hover{transform:scale(1.15)}.help-icon-svg circle{fill:none;stroke:var(--tooltip-border);stroke-width:2;transition:all .2s ease}.help-icon-svg text{fill:var(--tooltip-border);font-weight:700;transition:all .2s ease}.help-icon-svg:hover circle{fill:var(--tooltip-border)}.help-icon-svg:hover text{fill:var(--tooltip-bg)}.tooltip-bubble.compact{--tooltip-padding: 8px 12px;--tooltip-max-width: 250px;--tooltip-font-size: 13px}.tooltip-bubble.extended{--tooltip-max-width: 500px;--tooltip-padding: 18px 22px}.tooltip-bubble.error{--tooltip-border: #ff4444;--tooltip-title-color: #ff6b6b}.tooltip-bubble.success{--tooltip-border: #51cf66;--tooltip-title-color: #51cf66}.tooltip-bubble.warning{--tooltip-border: #ffd43b;--tooltip-title-color: #ffd43b}@media(max-width:768px){.tooltip-bubble{--tooltip-max-width: calc(100vw - 40px) ;--tooltip-font-size: 13px;--tooltip-padding: 12px 16px}.tooltip-bubble.mobile-fixed{position:fixed!important;inset:auto 20px 20px!important;transform:none!important;max-width:none!important}.tooltip-bubble.mobile-fixed:before,.tooltip-bubble.mobile-fixed:after{display:none}.help-icon{width:22px;height:22px;font-size:14px}}@media(max-width:480px){.tooltip-bubble{--tooltip-font-size: 12px;--tooltip-padding: 10px 14px}.tooltip-title{font-size:14px}}@keyframes tooltip-pulse{0%,to{box-shadow:0 4px 6px #0000004d,0 8px 24px var(--tooltip-shadow)}50%{box-shadow:0 4px 6px #0000004d,0 8px 32px var(--tooltip-shadow),0 0 20px var(--tooltip-shadow)}}.tooltip-bubble.animated{animation:tooltip-pulse 2s ease-in-out infinite}@keyframes tooltip-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.tooltip-bubble.bounce{animation:tooltip-bounce .5s ease}[data-tooltip]:focus-visible{outline:2px solid var(--tooltip-border);outline-offset:3px;border-radius:3px}@media(prefers-contrast:high){.tooltip-bubble{--tooltip-border-width: 2px;--tooltip-bg: #ffffff;--tooltip-text: #000000}}@media(prefers-reduced-motion:reduce){.tooltip-bubble{--tooltip-transition-duration: 0s;--tooltip-show-delay: 0s}.tooltip-bubble.animated{animation:none}}@media print{.tooltip-bubble,.help-icon{display:none!important}}.no-tooltip .tooltip-bubble{display:none!important}.tooltip-bubble.debug{opacity:1!important;visibility:visible!important;position:relative!important;margin:10px}.tooltip-bubble.selectable{-webkit-user-select:text;user-select:text;pointer-events:auto}.tooltip-bubble.manual-pos{position:fixed;margin:0}.tooltip-bubble.manual-pos.top,.tooltip-bubble.manual-pos.bottom{transform:translateY(-5px);left:auto;bottom:auto;right:auto}.tooltip-bubble.manual-pos.top.show,.tooltip-bubble.manual-pos.bottom.show{transform:translateY(0)}.tooltip-bubble.manual-pos.left{transform:translate(-5px);top:auto;right:auto}.tooltip-bubble.manual-pos.left.show{transform:translate(0)}.tooltip-bubble.manual-pos.right{transform:translate(5px);top:auto;left:auto}.tooltip-bubble.manual-pos.right.show{transform:translate(0)}.popup-layout{min-height:100vh;background:linear-gradient(135deg,#0a0e1a,#1a1f2e);color:#fff;padding:20px;overflow-y:auto}.popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid rgba(0,255,136,.2)}.popup-title{font-size:24px;font-weight:600;margin:0;color:#0f8;text-shadow:0 0 20px rgba(0,255,136,.3)}.sync-indicator{display:flex;align-items:center;gap:10px}.sync-badge{background:#00ff881a;border:1px solid rgba(0,255,136,.3);border-radius:20px;padding:6px 12px;font-size:12px;font-weight:500;color:#0f8;display:inline-flex;align-items:center;gap:6px;animation:pulse 2s ease-in-out infinite}.popup-content{animation:fadeIn .3s ease-in-out}.popup-layout::-webkit-scrollbar{width:8px}.popup-layout::-webkit-scrollbar-track{background:#ffffff0d}.popup-layout::-webkit-scrollbar-thumb{background:#00ff884d;border-radius:4px}.popup-layout::-webkit-scrollbar-thumb:hover{background:#00ff8880}.oscilloscope-panel{background:#fffffff2;border:1px solid rgba(0,255,136,.2);border-radius:12px;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column}.osc-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:#00ff880d;border-bottom:1px solid rgba(0,255,136,.15)}.osc-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;color:#0f8}.osc-icon{font-size:1.1rem}.osc-header-controls{display:flex;align-items:center;gap:.75rem}.osc-mode-buttons{display:flex;gap:.25rem}.osc-mode-btn{width:28px;height:24px;display:flex;align-items:center;justify-content:center;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:4px;color:#64748b;font-size:.75rem;cursor:pointer;transition:all .2s}.osc-mode-btn:hover{background:#00ff881a;color:#6b7280}.osc-mode-btn.active{background:#0f83;border-color:#0f8;color:#0f8}.osc-section{border-bottom:1px solid rgba(0,255,136,.1)}.osc-section summary{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#00ff8805;cursor:pointer;font-size:.8rem;font-weight:500;color:#6b7280;transition:background .2s;list-style:none}.osc-section summary::-webkit-details-marker{display:none}.osc-section summary:before{content:"▶";font-size:.6rem;color:#0f8;opacity:.5;transition:transform .2s}.osc-section[open] summary:before{transform:rotate(90deg)}.osc-section summary:hover{background:#00ff880d}.section-icon{font-size:.9rem}.section-badge{margin-left:auto;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600}.section-badge.view-type{background:#00ff8826;color:#0f8}.osc-settings{padding:.75rem 1rem;background:#00000008}.view-toggle{display:flex;gap:.5rem;margin-bottom:.75rem}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;background:#00000008;border:1px solid rgba(0,0,0,.08);color:#9ca3af;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease}.toggle-btn:hover{background:#0000000a;color:#1f2937}.toggle-btn.active{background:#0f83;border-color:#00ff8880;color:#0f8;box-shadow:0 0 10px #0f83}.toggle-icon{font-size:.9rem}.osc-legend{display:flex;flex-wrap:wrap;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#6b7280}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.neutral{background:#888;border:1px dashed rgba(0,0,0,.2)}.osc-canvas-container{position:relative;width:100%;flex:1}.oscilloscope-canvas{display:block;border-radius:0;background:#f8f9fa;box-shadow:inset 0 0 10px #0000000d}.osc-compact-overlay{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.25rem}.compact-view-toggle{display:flex;gap:.25rem}.compact-toggle{padding:.25rem .5rem;background:#ffffffd9;border:1px solid rgba(0,255,136,.3);border-radius:4px;color:#6b7280;font-size:.7rem;cursor:pointer;transition:all .2s}.compact-toggle:hover{background:#00ff881a}.compact-toggle.active{background:#0f83;color:#0f8}.metrics-row{display:flex;gap:1rem;padding:.6rem 1rem;background:#00ff8808;border-top:1px solid rgba(0,255,136,.1)}.metric-item{display:flex;align-items:center;gap:.35rem}.metric-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.metric-value{font-size:.9rem;font-weight:600;color:#0f8;font-family:Courier New,monospace}.metric-unit{font-size:.7rem;color:#9ca3af}.oscilloscope-panel--compact .osc-header{padding:.4rem .75rem}.oscilloscope-panel--compact .osc-title{font-size:.85rem}.oscilloscope-panel--compact .osc-title span:nth-child(2){display:none}.oscilloscope-panel--compact .metrics-row{padding:.4rem .75rem}.oscilloscope-panel--compact .metric-label{display:none}.oscilloscope-panel--expanded .osc-canvas-container{min-height:350px}.osc-section[open]>:not(summary){animation:fadeSlideDown .2s ease-out}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.view-toggle{flex-direction:column}.metrics-row{flex-wrap:wrap}.osc-legend{flex-direction:column;gap:.35rem}}.osc-focus-content{display:flex;flex-direction:column;height:100%;gap:1rem}.osc-focus-info{display:flex;align-items:center;gap:2rem;padding:.75rem 1rem;background:#00ff880d;border:1px solid rgba(0,255,136,.2);border-radius:8px;flex-wrap:wrap}.focus-metric{font-size:.9rem;color:#6b7280}.focus-metric strong{color:#0f8;font-family:monospace}.focus-view-toggle{display:flex;gap:.5rem;margin-left:auto}.focus-view-toggle button{padding:.4rem .75rem;background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:6px;color:#6b7280;font-size:.8rem;cursor:pointer;transition:all .2s}.focus-view-toggle button:hover{background:#00ff881a}.focus-view-toggle button.active{background:#0f83;border-color:#0f8;color:#0f8}.spectrum-panel{background:#0a0e1a99;border:1px solid rgba(0,255,136,.2);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.spectrum-canvas{width:100%;height:auto;border-radius:8px;background:#0a0e1a;box-shadow:inset 0 0 20px #00000080}.spectrum-tooltip{background:#0a0e1af2;border:1px solid rgba(0,255,136,.4);border-radius:8px;padding:12px;box-shadow:0 4px 20px #00000080;z-index:1000;min-width:200px}.tooltip-title{font-weight:600;color:#0f8;margin-bottom:8px;font-size:14px}.tooltip-row{display:flex;justify-content:space-between;gap:15px;margin:4px 0;font-size:13px}.tooltip-row span{color:#fff9}.tooltip-row strong{color:#fff;font-family:Courier New,monospace}.thd-display{display:flex;align-items:center;gap:15px;margin-top:15px;padding:15px;background:#00ff880d;border-radius:8px;border:1px solid rgba(0,255,136,.1)}.thd-label{font-size:14px;color:#ffffffb3;font-weight:500}.thd-value{font-size:24px;font-weight:700;font-family:Courier New,monospace}.thd-value.ok{color:#0f8}.thd-value.warning{color:#f44}.thd-status{font-size:13px;padding:4px 10px;border-radius:4px;font-weight:500}.thd-status.ok{background:#0f83;color:#0f8}.thd-status.warning{background:#f443;color:#f44}.pwm-panel{background:#0a0e1a99;border:1px solid rgba(0,255,136,.2);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pwm-info{display:flex;gap:20px;margin-top:15px;padding:15px;background:#00ff880d;border-radius:8px;border:1px solid rgba(0,255,136,.1)}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:18px;font-weight:600;color:#0f8;font-family:Courier New,monospace}.leakage-current-panel{background:#0a0e1a99;border:1px solid rgba(0,255,136,.2);border-radius:12px;padding:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.leakage-content{display:flex;flex-direction:column;gap:20px}.schema-section,.spectrum-section{background:#0003;border-radius:8px;padding:15px;border:1px solid rgba(255,255,255,.05)}.schema-section h4,.spectrum-section h4{margin:0 0 15px;font-size:16px;color:#0f8;font-weight:600}.ocpp-analyzer-popout{height:100vh;display:flex;flex-direction:column;background:var(--background);overflow:hidden}.metrics-analyzer-popout{height:100vh;display:flex;flex-direction:column;background:var(--background);overflow:hidden}.popout-header{background:var(--gradient-primary);padding:1rem 1.5rem;box-shadow:var(--shadow-lg);position:relative;z-index:10}.btn-back{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}.sync-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff3;border-radius:var(--radius-full);color:#fff;font-size:.875rem;font-weight:600}.popout-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.popout-content>*{flex:1;overflow:hidden}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center}.empty-icon{color:var(--text-muted);opacity:.5;margin-bottom:1.5rem}.empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:var(--text-primary)}.empty-state p{color:var(--text-muted);margin:0}.lab-tab-popout{height:100vh;display:flex;flex-direction:column;background:var(--background);overflow:hidden}.popout-header{background:var(--gradient-primary);padding:1rem 1.5rem;box-shadow:var(--shadow-lg);position:relative;z-index:10;flex-shrink:0}.header-content{display:flex;align-items:center;gap:1rem}.btn-back{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.btn-back:hover{background:#ffffff4d;transform:translate(-2px)}.header-title{flex:1}.header-title h1{margin:0;font-size:1.5rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:.5rem}.header-subtitle{font-size:.875rem;color:#fffc;display:block;margin-top:.25rem}.sync-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff3;border-radius:var(--radius-full);color:#fff;font-size:.875rem;font-weight:600;flex-shrink:0}.sync-dot{width:8px;height:8px;background:var(--success);border-radius:50%;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.popout-content{flex:1;overflow:auto;padding:1.5rem}.popout-content>*{max-width:100%}.popout-content{position:relative;z-index:1}@media(max-width:768px){.popout-header{padding:.75rem 1rem}.header-title h1{font-size:1.25rem}.popout-content{padding:1rem}}.synoptic-classic{padding:1rem;height:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,#f8fafc,#f1f5f9);gap:.75rem}.synoptic-header-classic{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;background:#fff;border:2px solid #1e3a8a;border-radius:8px;box-shadow:0 2px 8px #0000001a}.header-title h2{font-size:1.3rem;color:#1e3a8a;margin:0;font-weight:700}.header-title .subtitle{color:#64748b;font-size:.85rem;margin-top:.25rem;display:block}.btn-classic{padding:.6rem 1.2rem;background:#fff;border:2px solid #1e3a8a;border-radius:6px;color:#1e3a8a;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-classic:hover,.btn-classic.active{background:#1e3a8a;color:#fff}.synoptic-content-classic{display:flex;gap:1.5rem;flex:1;min-height:0}.schema-container{flex:1;background:#fff;border:2px solid #1e3a8a;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.schema-svg{width:100%;height:100%;display:block}.component-block{transition:all .2s ease}.component-block:hover rect:first-of-type{stroke-width:3}.guided-border{animation:dash 1s linear infinite}.info-panel-classic{width:320px;background:#fff;border:2px solid #1e3a8a;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000001a;overflow:hidden}.btn-details{width:100%;padding:.75rem;background:#1e3a8a;border:none;border-radius:6px;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}@media(max-width:1200px){.synoptic-content-classic{flex-direction:column}.info-panel-classic{width:100%;max-height:280px}.schema-container{min-height:450px}}@media(max-width:768px){.synoptic-classic{padding:1rem}.synoptic-header-classic{flex-direction:column;gap:1rem;text-align:center}.header-title h2{font-size:1.1rem}.schema-container{min-height:350px}.info-panel-classic{max-height:240px}}@media print{.synoptic-classic{background:#fff}.synoptic-header-classic,.info-panel-classic{box-shadow:none}.btn-classic,.btn-details{display:none}}.charging-process{padding:1.5rem}.process-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.process-header h2{font-size:1.4rem;color:#fff;margin:0}.step-counter{background:linear-gradient(135deg,#cf7317,#ffbf00);padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem}.steps-nav{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:#00000008;border-radius:10px;margin-bottom:1.5rem}.step-btn{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;background:#0000000a;border:2px solid transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .3s ease;min-width:50px}.step-btn:hover{background:#0000000f;border-color:#d98026}.step-btn.active{background:linear-gradient(135deg,#cf7317,#ffbf00);color:#fff;border-color:#fc3}.step-btn.completed{background:#1b986e;border-color:#00e699;color:#fff}.step-num{font-size:1rem;font-weight:700}.step-title-short{font-size:.7rem;margin-top:.25rem;text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-content{background:#00000008;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.step-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid hsl(30,70%,40%)}.step-badge{background:linear-gradient(135deg,#cf7317,#ffbf00);padding:.5rem 1rem;border-radius:20px;font-weight:700;font-size:.9rem}.step-header h3{font-size:1.5rem;color:#fff;margin:0}.step-description{background:#1e40af33;border-left:4px solid hsl(220,80%,50%);padding:1rem;border-radius:0 8px 8px 0;margin-bottom:1.5rem}.step-description p{margin:0;color:#4b5563;font-size:1.05rem}.step-details{margin-bottom:1.5rem}.step-details h4,.step-formula h4,.step-quiz h4{color:#fc3;font-size:1.1rem;margin-bottom:.75rem}.step-details ul{list-style:none;padding:0;margin:0}.step-details li{padding:.75rem 1rem;background:#00000008;border-radius:6px;margin-bottom:.5rem;color:#4b5563;border-left:3px solid hsl(30,70%,50%)}.step-details li:before{content:"•";color:#ffbf00;font-weight:700;margin-right:.75rem}.step-formula{background:#0ea5e926;border:1px solid hsl(200,80%,50%);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.step-formula code{display:block;background:#0000000a;padding:1rem;border-radius:6px;font-family:Fira Code,Consolas,monospace;color:#3fb;font-size:1rem}.step-quiz{background:#8b5cf626;border:1px solid hsl(280,70%,50%);border-radius:8px;padding:1rem}.quiz-question{color:#fff;font-size:1.05rem;margin-bottom:1rem}.quiz-options{display:flex;flex-direction:column;gap:.5rem}.quiz-option{padding:.75rem 1rem;background:#0000000a;border:2px solid transparent;border-radius:8px;color:#fff;text-align:left;cursor:pointer;transition:all .3s ease}.quiz-option:hover:not(:disabled){background:#0000000f;border-color:#9d26d9}.quiz-option.correct{background:#10b9814d;border-color:#00e699}.quiz-option.wrong{background:#ef44444d;border-color:#e61919}.quiz-option:disabled{cursor:not-allowed;opacity:.8}.quiz-result{margin-top:1rem;padding:.75rem 1rem;border-radius:8px;font-weight:600}.quiz-result.success{background:#10b98133;border:1px solid hsl(160,100%,45%);color:#6fc}.quiz-result.error{background:#ef444433;border:1px solid hsl(0,80%,50%);color:#ff8080}.step-navigation{display:flex;justify-content:space-between;gap:1rem}.nav-btn{padding:.75rem 2rem;border:none;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease}.nav-btn.prev{background:#e5e7eb;color:#fff}.nav-btn.prev:hover:not(:disabled){background:#d1d5db}.nav-btn.next{background:linear-gradient(135deg,#cf7317,#ffbf00);color:#fff}.nav-btn.next:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #f59e0b66}.nav-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}@media(max-width:768px){.process-header{flex-direction:column;gap:1rem;text-align:center}.step-btn{min-width:40px;padding:.4rem .5rem}.step-title-short{display:none}.step-header{flex-direction:column;text-align:center}.step-header h3{font-size:1.2rem}.step-navigation{flex-direction:column}.nav-btn{width:100%}}.component-details{padding:1.5rem}.details-header{margin-bottom:1.5rem}.details-header h2{font-size:1.4rem;color:#fff;margin:0}.component-selector{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:#00000008;border-radius:10px;margin-bottom:1.5rem}.comp-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#0000000a;border:2px solid transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .3s ease}.comp-btn:hover{background:#0000000f;border-color:#d98026}.comp-btn.active{background:linear-gradient(135deg,#cf7317,#ffbf00);color:#fff;border-color:#fc3}.comp-icon{font-size:1.2rem}.comp-name{font-size:.85rem;font-weight:600}.component-content{background:#00000008;border-radius:12px;padding:1.5rem}.content-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid hsl(30,70%,40%)}.content-icon{font-size:2.5rem}.content-header h3{font-size:1.5rem;color:#fff;margin:0}.content-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab{padding:.6rem 1.2rem;background:#0000000a;border:none;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .3s ease;font-weight:600}.tab:hover{background:#0000000f}.tab.active{background:linear-gradient(135deg,#195de6,#0af);color:#fff}.tab-content{min-height:300px}.role-content p{color:#4b5563;font-size:1.05rem;line-height:1.7}.schema-content p{color:#4b5563;margin-bottom:1.5rem}.schema-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:#00000008;border:2px dashed #d1d5db;border-radius:12px}.schema-placeholder span{font-size:4rem;margin-bottom:1rem}.schema-placeholder p{color:#6b7280;margin:0}.calculs-content{display:flex;flex-direction:column;gap:1rem}.calc-item{background:#0ea5e926;border:1px solid hsl(200,80%,50%);border-radius:8px;padding:1rem}.calc-item h4{color:#6cf;margin:0 0 .5rem;font-size:1rem}.calc-item code{display:block;background:#0000000a;padding:.75rem;border-radius:6px;font-family:Fira Code,Consolas,monospace;color:#3fb;font-size:1rem;margin-bottom:.5rem}.calc-item p{color:#6b7280;margin:0;font-size:.9rem}.no-calc{color:#6b7280;font-style:italic;text-align:center;padding:2rem}.specs-table{width:100%;border-collapse:collapse}.specs-table tr{border-bottom:1px solid #e5e7eb}.specs-table tr:last-child{border-bottom:none}.specs-table td{padding:.75rem 1rem}.spec-label{color:#6b7280;font-weight:600;width:40%}.spec-value{color:#fc3;font-weight:600}@media(max-width:768px){.component-selector{justify-content:center}.comp-name{display:none}.comp-btn{padding:.5rem}.comp-icon{font-size:1.5rem}.content-tabs{flex-wrap:wrap;justify-content:center}.tab{padding:.5rem .8rem;font-size:.85rem}}.calculators-panel{padding:1.5rem}.calc-header h2{font-size:1.4rem;color:#fff;margin:0 0 1.5rem}.calc-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.calc-btn{padding:.75rem 1.25rem;background:#0000000a;border:2px solid transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .3s ease;font-weight:600}.calc-btn:hover{background:#0000000f;border-color:#269dd9}.calc-btn.active{background:linear-gradient(135deg,#1791cf,#1a66ff);color:#fff;border-color:#3bf}.calc-content{background:#00000008;border-radius:12px;padding:1.5rem}.calculator h3{color:#fc3;font-size:1.3rem;margin:0 0 .5rem}.calc-desc{color:#6b7280;margin-bottom:1.5rem}.input-group label{display:block;color:#4b5563;font-weight:600;margin-bottom:.5rem}.input-group input[type=number],.input-group select{width:100%;padding:.75rem;background:#0000000a;border:2px solid #e5e7eb;border-radius:8px;color:#fff;font-size:1rem}.input-group input:focus,.input-group select:focus{outline:none;border-color:#0af}.slider-container{display:flex;align-items:center;gap:1rem}.slider-container input[type=range]{flex:1;height:8px;background:#f1f5f9;border-radius:4px;outline:none;-webkit-appearance:none}.slider-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:linear-gradient(135deg,#e68019,#ffc61a);border-radius:50%;cursor:pointer}.slider-value{background:#f1f5f9;padding:.5rem 1rem;border-radius:6px;font-weight:700;color:#fc3;min-width:60px;text-align:center}.formula-box{background:#0ea5e91a;border:1px solid hsl(200,70%,40%);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.formula-box h4{color:#6cf;margin:0 0 .75rem;font-size:1rem}.formula-item{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.formula-item .condition{color:#6b7280;font-size:.9rem;min-width:120px}.formula-item code{background:#0000000a;padding:.5rem 1rem;border-radius:4px;color:#3fb;font-family:Fira Code,Consolas,monospace}.calculate-btn{width:100%;padding:.875rem;background:linear-gradient(135deg,#14b881,#0fa);border:none;border-radius:8px;color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;margin-bottom:1rem}.calculate-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #10b98166}.result-box{background:#10b98126;border:2px solid hsl(160,70%,40%);border-radius:10px;padding:1rem}.result-box h4{color:#3fb;margin:0 0 .75rem}.result-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(0,0,0,.08)}.result-item:last-child{border-bottom:none}.result-item span{color:#6b7280}.result-item strong{color:#fc3;font-size:1.1rem}.states-reference{background:#00000008;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.states-reference h4{color:#6cf;margin:0 0 .75rem}.state-item{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;color:#4b5563}.state-badge{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-weight:700;font-size:.9rem}.state-badge.a{background:#1fad7e;color:#fff}.state-badge.b{background:#269dd9;color:#fff}.state-badge.c{background:#e6b319;color:#fff}.state-badge.d{background:#e68019;color:#fff}.state-badge.e{background:#d92626;color:#fff}.state-badge.f{background:#9d26d9;color:#fff}.state-detected{font-size:1.2rem;font-weight:700;color:#3fb;text-align:center;padding:.5rem}@media(max-width:768px){.calc-selector{justify-content:center}.calc-btn{padding:.6rem 1rem;font-size:.9rem}.formula-item{flex-direction:column;align-items:flex-start;gap:.5rem}}.ocpp-simulator{padding:1.5rem}.ocpp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.ocpp-header h2{font-size:1.4rem;color:#1f2937;margin:0}.ocpp-controls{display:flex;gap:.5rem}.ocpp-btn{padding:.6rem 1.2rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.ocpp-btn.play{background:linear-gradient(135deg,#14b881,#0fa);color:#fff}.ocpp-btn.pause{background:linear-gradient(135deg,#cfa117,#ffc61a);color:#fff}.ocpp-btn.reset{background:linear-gradient(135deg,#c32222,#ff1a1a);color:#fff}.ocpp-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #0000001a}.ocpp-btn:disabled{opacity:.5;cursor:not-allowed}.ocpp-info{display:flex;flex-wrap:wrap;gap:1.5rem;padding:1rem;background:#00000008;border-radius:10px;margin-bottom:1.5rem}.info-item{display:flex;flex-direction:column}.info-label{font-size:.8rem;color:#8592ad;margin-bottom:.25rem}.info-value{font-weight:600;color:#6cf}.ocpp-log{background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:1rem;height:400px;overflow-y:auto;margin-bottom:1.5rem}.log-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#679}.log-empty span{font-size:4rem;margin-bottom:1rem}.log-message{background:#00000005;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:4px solid transparent;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.log-message.outgoing{border-left-color:#0af}.log-message.incoming{border-left-color:#0fa}.message-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.timestamp{background:#f1f5f9;padding:.25rem .5rem;border-radius:4px;font-family:Fira Code,monospace;font-size:.85rem;color:#fc3}.direction{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.direction.out{background:#0f618a;color:#9df}.direction.in{background:#0f8a61;color:#9fd}.msg-type{background:linear-gradient(135deg,#7e1fad,#a0f);padding:.25rem .75rem;border-radius:12px;font-weight:700;font-size:.85rem}.message-payload{background:#0000000a;border-radius:6px;padding:.75rem;margin-bottom:.75rem;overflow-x:auto}.message-payload pre{margin:0;font-family:Fira Code,Consolas,monospace;font-size:.85rem;color:#6fc;white-space:pre-wrap}.message-desc{color:#a3adc2;font-size:.9rem;padding:.5rem;background:#8b5cf61a;border-radius:4px}.ocpp-legend{background:#00000008;border-radius:10px;padding:1rem}.ocpp-legend h4{color:#6cf;margin:0 0 1rem}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.75rem}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;min-width:100px;text-align:center}.legend-badge.auth{background:#7e1fad}.legend-badge.start{background:#1fad7e}.legend-badge.meter{background:#1f7ead}.legend-badge.stop{background:#c32222}.legend-badge.status{background:#c39b22;color:#000}.legend-badge.heartbeat{background:#359}.legend-item span:last-child{color:#a3adc2;font-size:.85rem}@media(max-width:768px){.ocpp-header{flex-direction:column;text-align:center}.ocpp-controls{justify-content:center}.ocpp-log{height:300px}}.content-editor{padding:1.5rem;height:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,#f5f5f5,#f8f9fa)}.editor-header{margin-bottom:1.5rem}.editor-header h2{font-size:1.4rem;color:#1f2937;margin:0;background:linear-gradient(135deg,#a78bfa,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.editor-header .subtitle{color:#6b7280;font-size:.9rem;margin-top:.25rem}.editor-layout{display:flex;gap:1.5rem;flex:1;min-height:0}.editor-sidebar{width:280px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:1rem;display:flex;flex-direction:column}.editor-sidebar h3{color:#8b5cf6;font-size:1rem;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:2px solid #8b5cf6}.component-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.comp-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#00000008;border:2px solid transparent;border-radius:8px;color:#6b7280;cursor:pointer;transition:all .2s ease;text-align:left}.comp-item:hover{background:#8b5cf614;border-color:#8b5cf6}.comp-item.active{background:#8b5cf61f;border-color:#8b5cf6;color:#1f2937}.comp-item.has-content .comp-icon{color:#0fa}.comp-icon{font-size:1.1rem}.comp-name{font-size:.85rem;font-weight:500}.editor-main{flex:1;background:#fff;border-radius:12px;border:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.editor-comp-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#f8f9fa;border-bottom:2px solid #e5e7eb}.editor-comp-header h3{color:#1f2937;font-size:1.1rem;margin:0}.save-status .saved{color:#0fa;font-size:.85rem}.save-status .unsaved{color:#fc3;font-size:.85rem}.content-tabs{display:flex;gap:.25rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #e5e7eb}.content-tabs .tab{padding:.6rem 1rem;background:transparent;border:none;border-radius:6px;color:#6b7280;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.content-tabs .tab:hover{background:#8b5cf614;color:#1f2937}.content-tabs .tab.active{background:#8b5cf6;color:#fff}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f5f5f5;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;gap:.75rem}.mode-selector{display:flex;gap:.25rem;background:#0000000d;padding:.25rem;border-radius:6px}.mode-btn{padding:.4rem .75rem;background:transparent;border:none;border-radius:4px;color:#6b7280;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.mode-btn:hover{background:#00000014}.mode-btn.active{background:#8b5cf6;color:#fff}.toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.template-dropdown{display:flex;align-items:center;gap:.25rem}.template-dropdown span{color:#6b7280;font-size:.8rem;margin-right:.25rem}.template-dropdown button{padding:.35rem .6rem;background:#0000000a;border:1px solid #e5e7eb;border-radius:4px;color:#4b5563;font-size:.75rem;cursor:pointer;transition:all .2s}.template-dropdown button:hover{background:#8b5cf626;color:#8b5cf6}.btn-upload{padding:.4rem .8rem;background:#297aa3;border:none;border-radius:6px;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-upload:hover{background:#269dd9}.btn-save{padding:.5rem 1rem;background:linear-gradient(135deg,#1fad7e,#00e699);border:none;border-radius:6px;color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s}.btn-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.editor-area{flex:1;padding:1rem;overflow:hidden;display:flex}.editor-textarea{flex:1;background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1rem;color:#1f2937;font-family:Fira Code,Consolas,monospace;font-size:.9rem;line-height:1.6;resize:none}.editor-textarea:focus{outline:none;border-color:#8b5cf6}.editor-textarea::placeholder{color:#9ca3af}.preview-content{flex:1;background:#fff;border-radius:8px;padding:1.5rem;overflow-y:auto;color:#1f2937}.markdown-preview h2{font-size:1.4rem;color:#1e3a8a;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem;margin:1.5rem 0 1rem}.markdown-preview h3{font-size:1.2rem;color:#334155;margin:1.25rem 0 .75rem}.markdown-preview h4{font-size:1rem;color:#475569;margin:1rem 0 .5rem}.markdown-preview p{margin:.5rem 0;line-height:1.7}.markdown-preview strong{color:#1e40af}.markdown-preview .code-block{background:#1f2937;color:#22c55e;padding:1rem;border-radius:6px;overflow-x:auto;margin:1rem 0;font-size:.85rem}.markdown-preview .inline-code{background:#f1f5f9;color:#dc2626;padding:.1rem .4rem;border-radius:4px;font-size:.85rem}.markdown-preview .md-table{width:100%;border-collapse:collapse;margin:1rem 0}.markdown-preview .md-table td{border:1px solid #e2e8f0;padding:.5rem .75rem}.markdown-preview .md-table tr:first-child td{background:#f8fafc;font-weight:600;color:#1e3a8a}.markdown-preview ul{padding-left:1.5rem;margin:.5rem 0}.markdown-preview li{margin:.25rem 0}.markdown-preview blockquote{background:#fef3c7;border-left:4px solid #f59e0b;padding:.75rem 1rem;margin:1rem 0;border-radius:0 6px 6px 0}.markdown-preview .md-image{max-width:100%;border-radius:8px;margin:1rem 0}.editor-help{padding:.75rem 1rem;background:#f8f9fa;border-top:1px solid #e5e7eb}.editor-help summary{color:#6b7280;font-size:.85rem;cursor:pointer}.editor-help .help-content{padding:.75rem 0;color:#6b7280;font-size:.8rem}.editor-help code{background:#0000000f;padding:.15rem .4rem;border-radius:4px;margin:.15rem;display:inline-block}.editor-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca3af}.editor-placeholder .placeholder-icon{font-size:4rem;margin-bottom:1rem}.editor-placeholder p{font-size:1rem}@media(max-width:1024px){.editor-layout{flex-direction:column}.editor-sidebar{width:100%;max-height:200px}.component-list{flex-direction:row;flex-wrap:wrap}.comp-item{flex:0 0 auto}}@media(max-width:768px){.editor-toolbar{flex-direction:column;align-items:stretch}.mode-selector,.toolbar-actions{justify-content:center}.template-dropdown{flex-wrap:wrap;justify-content:center}}.dc-synoptic-classic{padding:1rem;height:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,#f8fafc,#f1f5f9);gap:.75rem}.dc-synoptic-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;background:#fff;border:2px solid #1e3a8a;border-radius:8px;box-shadow:0 2px 8px #0000001a}.dc-synoptic-header .header-title h2{font-size:1.3rem;color:#1e3a8a;margin:0;font-weight:700}.dc-synoptic-header .subtitle{color:#64748b;font-size:.85rem;margin-top:.25rem;display:block}.header-controls{display:flex;gap:.5rem}.btn-guided{padding:.6rem 1.2rem;background:#fff;border:2px solid #1e3a8a;border-radius:6px;color:#1e3a8a;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-guided:hover,.btn-guided.active{background:#1e3a8a;color:#fff}.dc-synoptic-content{display:flex;gap:1.5rem;flex:1;min-height:0}.dc-schema-container{flex:1;background:#fff;border:2px solid #1e3a8a;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.dc-schema-svg{width:100%;height:100%;display:block}.guided-highlight{animation:dash 1s linear infinite}@keyframes dash{to{stroke-dashoffset:-24}}.dc-info-panel{width:320px;background:#fff;border:2px solid #1e3a8a;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000001a;overflow:hidden}.guided-controls{padding:.75rem 1rem;background:#1e3a8a;display:flex;justify-content:space-between;align-items:center}.step-indicator{color:#fff;font-weight:700;font-size:.9rem}.nav-buttons{display:flex;gap:.5rem}.nav-buttons button{padding:.4rem .8rem;background:#fff;border:none;border-radius:4px;color:#1e3a8a;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s}.nav-buttons button:hover:not(:disabled){background:#fbbf24}.nav-buttons button:disabled{opacity:.5;cursor:not-allowed}.component-details{padding:1.25rem;flex:1;overflow-y:auto}.details-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0;border-left:4px solid;padding-left:.75rem}.details-header h3{font-size:1rem;color:#1f2937;margin:0;flex:1;line-height:1.3}.key-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;color:#fff;white-space:nowrap}.details-desc{color:#475569;font-size:.9rem;line-height:1.6;margin-bottom:1rem}.specs-list{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}.specs-list h4{color:#1e3a8a;font-size:.85rem;margin:0 0 .5rem}.specs-list ul{list-style:none;padding:0;margin:0}.specs-list li{padding:.35rem 0;color:#334155;font-size:.85rem;border-bottom:1px solid #e2e8f0}.specs-list li:last-child{border-bottom:none}.specs-list li:before{content:"▸";color:#1e3a8a;margin-right:.5rem}.btn-details{width:100%;padding:.75rem;background:#1e3a8a;border:none;border-radius:6px;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.btn-details:hover{background:#1e40af;transform:translateY(-1px);box-shadow:0 4px 12px #1e3a8a4d}.placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.placeholder-icon{font-size:3rem;margin-bottom:1rem}.placeholder p{color:#475569;font-size:.95rem;margin:0}.placeholder .hint{color:#94a3b8;font-size:.85rem;margin-top:.5rem;display:block}@media(max-width:1200px){.dc-synoptic-content{flex-direction:column}.dc-info-panel{width:100%;max-height:280px}.dc-schema-container{min-height:450px}}@media(max-width:768px){.dc-synoptic-classic{padding:1rem}.dc-synoptic-header{flex-direction:column;gap:1rem;text-align:center}.dc-synoptic-header .header-title h2{font-size:1.1rem}.dc-schema-container{min-height:350px}.dc-info-panel{max-height:240px}}.dc-powerflow-container{display:flex;flex-direction:column;height:100%;padding:1rem;gap:1rem;background:linear-gradient(135deg,#f5f5f5,#fff);border-radius:12px;overflow:hidden}.powerflow-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#00000008;border-radius:10px;border:1px solid rgba(0,0,0,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.powerflow-header h3{margin:0;color:#1f2937;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.play-pause-btn{padding:.5rem 1rem;border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:.4rem;box-shadow:0 2px 8px #0000004d}.play-pause-btn.running{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.play-pause-btn.running:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.play-pause-btn.paused{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.play-pause-btn.paused:hover{transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}.powerflow-layout{display:grid;grid-template-columns:minmax(400px,1.4fr) minmax(280px,1fr);gap:1.25rem;flex:1;min-height:0}.powerflow-canvas-wrapper{display:flex;flex-direction:column;background:#00000008;border-radius:12px;border:1px solid rgba(0,0,0,.08);overflow:hidden}.powerflow-canvas{width:100%;height:100%;min-height:260px;border-radius:0;background:#f5f5f5}.powerflow-details-panel{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;padding-right:.25rem}.powerflow-details-panel::-webkit-scrollbar{width:4px}.powerflow-details-panel::-webkit-scrollbar-track{background:transparent}.powerflow-details-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.powerflow-details-panel h4{margin:0;color:#1f2937;font-size:.95rem;font-weight:700;padding:.75rem;background:#0000000a;border-radius:10px;border:1px solid rgba(0,0,0,.08);display:flex;align-items:center;gap:.4rem}.details-list{display:flex;flex-direction:column;gap:.5rem;flex:1;overflow-y:auto}.detail-item{background:#0000000a;border-radius:10px;padding:.65rem .85rem;border-left:4px solid #3b82f6;cursor:pointer;transition:all .2s;border:1px solid rgba(0,0,0,.06)}.detail-item:hover{background:#1e3a5fe6;transform:translate(2px);border-color:#3b82f64d}.detail-item.selected{background:#1e3a5ff2;border-color:#3b82f680;box-shadow:0 2px 10px #3b82f626}.detail-header{display:flex;justify-content:space-between;align-items:center}.detail-name{font-weight:700;font-size:.9rem}.detail-power{color:#1f2937;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.detail-losses{display:flex;gap:.5rem;margin-top:.35rem;align-items:center}.loss-value{color:#f87171;font-size:.8rem;font-weight:700;background:#ef444426;padding:.15rem .4rem;border-radius:4px}.loss-percent{color:#6b7280;font-size:.75rem}.detail-expanded{margin-top:.6rem;padding-top:.6rem;border-top:1px solid rgba(0,0,0,.1);animation:expandIn .25s ease-out}@keyframes expandIn{0%{opacity:0;max-height:0;transform:translateY(-5px)}to{opacity:1;max-height:120px;transform:translateY(0)}}.detail-expanded p{margin:0 0 .5rem;color:#4b5563;font-size:.8rem;line-height:1.5}.detail-specs{display:flex;gap:.5rem;flex-wrap:wrap}.detail-specs span{background:#0000000d;color:#1f2937;padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;border:1px solid rgba(0,0,0,.08)}.details-summary{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .85rem;border-radius:10px;transition:all .2s;border:1px solid transparent}.summary-item:hover{transform:translate(2px)}.summary-item.efficiency{background:linear-gradient(135deg,#22c55e26,#22c55e14);border-color:#22c55e33}.summary-item.efficiency:hover{border-color:#22c55e66;box-shadow:0 0 15px #22c55e26}.summary-item.losses{background:linear-gradient(135deg,#ef444426,#ef444414);border-color:#ef444433}.summary-item.losses:hover{border-color:#ef444466;box-shadow:0 0 15px #ef444426}.summary-item.output{background:linear-gradient(135deg,#3b82f626,#3b82f614);border-color:#3b82f633}.summary-item.output:hover{border-color:#3b82f666;box-shadow:0 0 15px #3b82f626}.summary-label{color:#6b7280;font-size:.8rem;font-weight:500}.summary-value{font-weight:800;font-size:1rem;font-variant-numeric:tabular-nums}.summary-item.efficiency .summary-value{color:#4ade80}.summary-item.losses .summary-value{color:#f87171}.summary-item.output .summary-value{color:#60a5fa}@media(max-width:1100px){.powerflow-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.powerflow-canvas-wrapper{max-height:320px}.powerflow-details-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;overflow:visible}.powerflow-details-panel h4{grid-column:1 / -1}.details-list{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}.details-summary{grid-column:1 / -1;flex-direction:row;gap:.75rem}.summary-item{flex:1;flex-direction:column;align-items:center;text-align:center;gap:.3rem}}@media(max-width:768px){.dc-powerflow-container{padding:.75rem}.powerflow-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.powerflow-header h3{font-size:1rem;justify-content:center}.play-pause-btn{width:100%;justify-content:center}.powerflow-details-panel{grid-template-columns:1fr}.details-list{grid-template-columns:repeat(2,1fr)}.details-summary{flex-direction:column}.summary-item{flex-direction:row;justify-content:space-between}}@media(max-width:480px){.details-list{grid-template-columns:1fr}}.dc-charging-curve-container{display:flex;flex-direction:column;height:100%;padding:1rem;gap:1rem;background:linear-gradient(135deg,#f5f5f5,#fff);border-radius:12px;overflow:hidden}.charging-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#00000008;border-radius:10px;border:1px solid rgba(0,0,0,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.charging-header h3{margin:0;color:#1f2937;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.charging-controls{display:flex;align-items:center;gap:1.5rem}.control-group{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#00000008;border-radius:8px;border:1px solid rgba(0,0,0,.08)}.control-group label{color:#6b7280;font-size:.75rem;font-weight:500;white-space:nowrap}.control-group select{padding:.35rem .6rem;border-radius:6px;background:#fff;color:#1f2937;border:1px solid #d1d5db;font-size:.8rem;cursor:pointer;transition:all .2s}.control-group select:hover{border-color:#3b82f6}.control-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.control-group input[type=range]{width:100px;height:6px;accent-color:#3b82f6;cursor:pointer}.control-group span{color:#22c55e;font-size:.85rem;font-weight:700;min-width:40px;text-align:center}.control-buttons{display:flex;gap:.5rem}.ctrl-btn{padding:.5rem 1rem;border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:.4rem;box-shadow:0 2px 8px #0000004d}.ctrl-btn.play{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.ctrl-btn.play:hover{transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}.ctrl-btn.pause{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.ctrl-btn.pause:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.ctrl-btn.reset{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}.ctrl-btn.reset:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.charging-layout{display:grid;grid-template-columns:minmax(450px,1.5fr) minmax(250px,1fr);gap:1.25rem;flex:1;min-height:0}.charging-canvas-wrapper{display:flex;flex-direction:column;background:#00000008;border-radius:12px;border:1px solid rgba(0,0,0,.08);overflow:hidden}.charging-canvas{width:100%;height:100%;min-height:280px;border-radius:0;background:#f5f5f5}.charging-details-panel{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;padding-right:.25rem}.charging-details-panel::-webkit-scrollbar{width:4px}.charging-details-panel::-webkit-scrollbar-track{background:transparent}.charging-details-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.details-section{background:#0000000a;border-radius:10px;padding:.85rem;border:1px solid rgba(0,0,0,.08);transition:all .2s}.details-section:hover{border-color:#3b82f64d;background:#1e293bf2}.details-section h4{margin:0 0 .65rem;color:#1f2937;font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:.4rem;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.current-values{background:linear-gradient(135deg,#0000000a,#00000008)}.value-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}.value-item{display:flex;flex-direction:column;gap:.2rem}.value-item.soc{grid-column:1 / -1;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.08);margin-bottom:.25rem}.value-label{color:#9ca3af;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.value-num{font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums}.value-item.soc .value-num{color:#22c55e}.value-item.power .value-num{color:#ef4444}.value-item.current .value-num{color:#3b82f6}.value-item.voltage .value-num{color:#f59e0b}.soc-bar{height:8px;background:#0000000d;border-radius:4px;overflow:hidden;margin-top:.35rem;box-shadow:inset 0 1px 3px #0000004d}.soc-fill{height:100%;background:linear-gradient(90deg,#22c55e,#4ade80,#22c55e);border-radius:4px;transition:width .3s ease;box-shadow:0 0 10px #22c55e66}.phase-info{text-align:center}.phase-badge{padding:.6rem 1rem;border-radius:8px;font-size:.85rem;font-weight:700;text-align:center;letter-spacing:.3px;transition:all .3s}.phase-badge.cc{background:#22c55e26;color:#4ade80;border:2px solid rgba(34,197,94,.5);box-shadow:0 0 15px #22c55e33,inset 0 0 20px #22c55e0d}.phase-badge.cv{background:#f59e0b26;color:#fbbf24;border:2px solid rgba(245,158,11,.5);box-shadow:0 0 15px #f59e0b33,inset 0 0 20px #f59e0b0d}.phase-desc{margin:.6rem 0 0;color:#6b7280;font-size:.75rem;line-height:1.5;text-align:left}.estimate-list{display:flex;flex-direction:column;gap:.4rem}.estimate-item{display:flex;justify-content:space-between;align-items:center;padding:.45rem .5rem;background:#00000005;border-radius:6px;transition:background .2s}.estimate-item:hover{background:#00000008}.estimate-item span:first-child{color:#6b7280;font-size:.75rem}.est-value{color:#1f2937;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.info-box{background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);border:1px solid rgba(59,130,246,.2)}.info-box h4{color:#60a5fa;border-bottom-color:#3b82f64d}.info-box p{margin:0;color:#4b5563;font-size:.8rem;line-height:1.6}.info-box strong{color:#fbbf24;font-weight:700}@media(max-width:1100px){.charging-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.charging-canvas-wrapper{max-height:350px}.charging-details-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;overflow:visible}.details-section.current-values{grid-column:1 / -1}}@media(max-width:768px){.dc-charging-curve-container{padding:.75rem}.charging-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.charging-header h3{font-size:1rem;text-align:center}.charging-controls{flex-wrap:wrap;justify-content:center;gap:.75rem}.control-group{flex:1 1 auto;min-width:fit-content;justify-content:center}.charging-details-panel{grid-template-columns:1fr}.details-section.current-values{grid-column:1}.value-grid{grid-template-columns:repeat(2,1fr)}.value-item.soc{grid-column:1 / -1}}@media(max-width:480px){.charging-controls{flex-direction:column}.control-buttons{width:100%;justify-content:center}.ctrl-btn{flex:1;justify-content:center}}.dc-advanced-container{display:flex;flex-direction:column;height:100%;background:#f5f5f5;border-radius:12px;overflow:hidden}.dc-advanced-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#fff,#f5f5f5);border-bottom:1px solid #e5e7eb;flex-wrap:wrap;gap:1rem}.dc-advanced-header .header-info h2{margin:0;font-size:1.25rem;color:#1f2937;font-weight:700}.dc-advanced-header .subtitle{margin:.25rem 0 0;font-size:.8rem;color:#6b7280}.power-selector{display:flex;align-items:center;gap:.75rem}.power-selector label{color:#6b7280;font-size:.85rem;font-weight:500}.power-buttons{display:flex;gap:.25rem}.power-btn{padding:.4rem .75rem;background:#fff;color:#6b7280;border:1px solid #e5e7eb;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.power-btn:hover{background:#e5e7eb;color:#1f2937}.power-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:#3b82f6}.dc-subtabs{display:flex;gap:.25rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb;overflow-x:auto}.subtab-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;color:#6b7280;border:1px solid transparent;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.subtab-btn:hover{background:#3b82f61a;color:#1f2937}.subtab-btn.active{background:#3b82f626;color:#60a5fa;border-color:#3b82f6}.subtab-icon{font-size:1rem}.dc-stats-bar{display:flex;gap:1rem;padding:.75rem 1.5rem;background:#f5f5f5;border-bottom:1px solid #ffffff;overflow-x:auto}.stat-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border-radius:8px;min-width:100px}.stat-icon{font-size:1.25rem}.stat-content{display:flex;flex-direction:column}.stat-value{color:#1f2937;font-size:.95rem;font-weight:700}.dc-content{flex:1;overflow-y:auto;padding:0}.dc-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#fff;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:.5rem}.legend-item{display:flex;align-items:center;gap:.35rem;color:#6b7280;font-size:.75rem}.legend-item .dot.red{background:#dc2626}.legend-item .dot.orange{background:#f59e0b}.legend-item .dot.green{background:#22c55e}.legend-item .dot.blue{background:#3b82f6}.legend-item .dot.purple{background:#8b5cf6}.legend-item .dot.cyan{background:#06b6d4}.footer-norms{color:#9ca3af;font-size:.7rem}@media(max-width:768px){.dc-advanced-header{flex-direction:column;align-items:flex-start}.power-selector{width:100%;flex-wrap:wrap}.power-buttons{flex-wrap:wrap}.dc-stats-bar{flex-wrap:nowrap;padding:.5rem 1rem}.stat-item{min-width:80px;padding:.4rem .75rem}.dc-subtabs{padding:.5rem}.subtab-btn{padding:.4rem .75rem;font-size:.8rem}}.anatomy-borne-container{min-height:100vh;background:linear-gradient(135deg,#f5f5f5,#f8f9fa);color:#1f2937;padding:.75rem}.anatomy-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.6rem 1rem;background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #d97706;border-radius:8px;margin-bottom:.75rem}.header-title h1{font-size:1.1rem;font-weight:700;margin:0;background:linear-gradient(135deg,#fc3,#ff8000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-title .subtitle{color:#ffffffd9;font-size:.7rem;margin-top:.1rem}.mode-selector{display:flex;gap:.4rem}.mode-btn{padding:.35rem .75rem;font-size:.75rem;font-weight:600;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .2s ease;background:#ffffff40;color:#fff}.mode-btn.ac{border-color:#1fad7e}.mode-btn.ac:hover,.mode-btn.ac.active{background:linear-gradient(135deg,#12a171,#00e699);box-shadow:0 2px 10px #10b9814d}.mode-btn.dc{border-color:#d92662}.mode-btn.dc:hover,.mode-btn.dc.active{background:linear-gradient(135deg,#cf1754,#ff1a66);box-shadow:0 2px 10px #ec48994d}.progress-container{display:flex;align-items:center;gap:.5rem;min-width:120px}.progress-bar{flex:1;height:14px;background:#0000000f;border-radius:7px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.progress-fill{height:100%;background:linear-gradient(90deg,#ffbf00,#ff8000);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2);transition:width .5s ease}.progress-label{font-size:.7rem;color:#ffffffd9;white-space:nowrap}.anatomy-tabs{display:flex;gap:.3rem;padding:.35rem;background:#0000000a;border-radius:8px;margin-bottom:.75rem;overflow-x:auto}.tab-btn{display:flex;align-items:center;gap:.3rem;padding:.4rem .7rem;background:transparent;border:1px solid transparent;border-radius:5px;color:#6b7280;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tab-btn:hover{background:#0000000f;color:#1f2937}.tab-btn.active{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#fc3;box-shadow:0 2px 8px #f59e0b40}.tab-icon{font-size:.9rem}.anatomy-content{background:#fff;border-radius:8px;border:1px solid #e5e7eb;min-height:calc(100vh - 160px);overflow:hidden}@media(max-width:900px){.anatomy-header{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.header-title{flex:1;min-width:200px}.mode-selector{order:2}.progress-container{order:3;flex:1;min-width:100px}}@media(max-width:600px){.anatomy-borne-container{padding:.5rem}.anatomy-header{padding:.5rem .75rem}.header-title h1{font-size:.95rem}.header-title .subtitle{display:none}.mode-btn{padding:.3rem .6rem;font-size:.7rem}.tab-btn{padding:.35rem .5rem;font-size:.7rem}.tab-label{display:none}.tab-icon{font-size:1rem}.progress-label{display:none}}.troubleshooting-lab{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f5f5f5,#fff)}.troubleshooting-loading,.troubleshooting-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;color:#6b7280}.loading-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#ef4444;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.troubleshooting-error{color:#f87171}.error-icon{font-size:3rem}.troubleshooting-header{background:#fff;border-bottom:2px solid #ef4444;padding:.5rem 1rem;display:flex;align-items:center;gap:1.5rem}.header-title{display:flex;align-items:center;gap:.4rem}.header-icon{font-size:1.1rem}.header-title h1{font-size:.95rem;font-weight:700;color:#1f2937;margin:0;white-space:nowrap}.header-progress{margin-left:auto}.progress-circle{position:relative;width:26px;height:26px}.progress-circle svg{transform:rotate(-90deg);width:100%;height:100%}.progress-bg{fill:none;stroke:#e5e7eb;stroke-width:3}.progress-fill{fill:none;stroke:#ef4444;stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .5s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.5rem;font-weight:700;color:#1f2937}.module-tabs{display:flex;gap:.3rem}.module-tab{display:flex;align-items:center;gap:.3rem;padding:.35rem .6rem;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.module-tab:hover{background:#d1d5db}.module-tab.active{background:#ef4444}.module-tab.active .tab-short{color:#fff}.tab-icon{font-size:.85rem}.tab-short{font-size:.7rem;font-weight:700;color:#6b7280}.troubleshooting-content{flex:1;padding:1rem 1.5rem;overflow-y:auto}.troubleshooting-footer{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.5rem;background:#f5f5f5;border-top:1px solid #e5e7eb}.footer-legend{display:flex;gap:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.7rem;color:#6b7280}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.f1{background:#3b82f6}.legend-dot.f2{background:#ef4444}.legend-dot.f3{background:#8b5cf6}.legend-dot.f4{background:#f59e0b}.legend-dot.f5{background:#6b7280}.footer-info{display:flex;gap:.5rem;font-size:.7rem;color:#9ca3af}@media(max-width:1024px){.module-tab{padding:.75rem 1rem}.tab-title{max-width:150px;font-size:.85rem}}@media(max-width:768px){.troubleshooting-header{padding:1rem 1rem 0}.header-content{flex-direction:column;gap:1rem;text-align:center}.header-title,.module-tabs{flex-direction:column}.module-tab{border-radius:8px;border:2px solid transparent}.module-tab.active{border-color:#ef4444}.tab-title{max-width:none}.troubleshooting-content{padding:1rem}.troubleshooting-footer{flex-direction:column;gap:1rem;text-align:center}.footer-legend{justify-content:center}}.ma1-methodology{max-width:1400px;margin:0 auto}.ma1-tabs{display:flex;gap:.5rem;margin-bottom:1rem;padding:.25rem;background:#00000008;border-radius:10px;width:fit-content}.ma1-tab{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:transparent;border:none;border-radius:8px;color:#6b7280;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.ma1-tab:hover{color:#1f2937;background:#0000000a}.ma1-tab.active{background:#ef4444;color:#fff;box-shadow:0 2px 8px #ef44444d}.ma1-tab .tab-icon{font-size:1rem}.scenario-header{background:linear-gradient(135deg,#fff,#f8f9fa);border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.scenario-badge{display:flex;gap:.75rem;margin-bottom:.75rem}.mode-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase}.mode-badge.ac{background:#22c55e33;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.mode-badge.dc{background:#3b82f633;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.level-badge{padding:.25rem .75rem;background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3);border-radius:20px;font-size:.75rem;font-weight:700}.scenario-header h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.scenario-id{color:#9ca3af;font-size:.85rem;margin:0}.ma1-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.ma1-left,.ma1-right{display:flex;flex-direction:column;gap:1rem}.info-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem}.info-card h3{color:#1f2937;font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.user-report{margin-bottom:1rem}.report-label{display:block;font-size:.8rem;color:#9ca3af;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.user-report p{color:#f59e0b;font-style:italic;margin:0;padding:.75rem;background:#f59e0b1a;border-left:3px solid #f59e0b;border-radius:0 6px 6px 0}.tech-observations ul{list-style:none;padding:0;margin:0}.tech-observations li{padding:.5rem 0;color:#4b5563;border-bottom:1px solid #e5e7eb;font-size:.9rem}.tech-observations li:last-child{border-bottom:none}.tech-observations li:before{content:"•";color:#9ca3af;margin-right:.5rem}.timeline{display:flex;flex-direction:column;gap:.5rem}.timeline-event{display:grid;grid-template-columns:80px 1fr auto;gap:.75rem;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:8px;font-size:.85rem;transition:all .2s}.timeline-event.faulted{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.event-time{color:#9ca3af;font-family:Consolas,monospace}.event-status{font-weight:600}.event-error{color:#ef4444;font-weight:600;background:#ef444433;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.event-info{color:#6b7280;font-size:.8rem;grid-column:2 / -1}.fault-marker{grid-column:1 / -1;color:#ef4444;font-weight:600;font-size:.8rem;margin-top:.25rem}.measurements-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.measurement-item{display:flex;flex-direction:column;padding:.75rem;background:#f8f9fa;border-radius:8px}.measurement-label{color:#9ca3af;font-size:.75rem;margin-bottom:.25rem}.measurement-value{color:#1f2937;font-size:1.1rem;font-weight:600}.measurement-value .unit{color:#9ca3af;font-size:.85rem;font-weight:400}.step-progress{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border-radius:8px;font-size:.85rem;color:#6b7280}.score{color:#22c55e;font-weight:600}.question-card{background:#fff;border:2px solid #ef4444;border-radius:12px;padding:1.5rem;flex:1}.question-card h3{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0 0 1.5rem;line-height:1.5}.fault-families{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.fault-family-btn{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.fault-family-btn:hover:not(:disabled){border-color:var(--family-color);background:#00000005}.fault-family-btn.selected{border-color:var(--family-color);background:#00000008;box-shadow:0 0 0 3px #ef444433}.fault-family-btn.correct{border-color:#22c55e!important;background:#22c55e1a!important}.fault-family-btn.wrong{border-color:#ef4444!important;background:#ef44441a!important}.fault-family-btn:disabled{cursor:default}.family-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#00000008;border-radius:8px}.family-content{flex:1}.family-label{display:block;color:#1f2937;font-weight:600;font-size:.95rem;margin-bottom:.25rem}.family-desc{display:block;color:#9ca3af;font-size:.8rem}.options-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.option-btn{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#f8f9fa;border:2px solid #e5e7eb;border-radius:8px;color:#1f2937;font-size:.9rem;text-align:left;cursor:pointer;transition:all .2s}.option-btn:hover:not(:disabled){border-color:#9ca3af;background:#00000005}.option-btn.selected{border-color:#ef4444;background:#ef44441a}.option-btn.correct{border-color:#22c55e!important;background:#22c55e1a!important}.option-btn.wrong{border-color:#ef4444!important;background:#ef44441a!important}.option-btn:disabled{cursor:default}.checkbox{font-size:1.1rem;color:#9ca3af}.option-btn.selected .checkbox{color:#ef4444}.feedback{padding:1rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.75rem}.feedback.correct{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.feedback.incorrect{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.feedback-icon{font-size:1.25rem}.feedback p{color:#1f2937;margin:0;font-size:.9rem;line-height:1.5;flex:1}.points{color:#22c55e;font-weight:700;font-size:.9rem;padding:.25rem .5rem;background:#22c55e33;border-radius:4px}.question-actions{display:flex;justify-content:flex-end}.btn-submit,.btn-next{padding:.875rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.btn-submit{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.btn-next{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.btn-next:hover{transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.ma1-complete{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.complete-icon{font-size:4rem;margin-bottom:1.5rem}.ma1-complete h2{color:#1f2937;font-size:1.75rem;margin:0 0 1rem}.ma1-complete p{color:#22c55e;font-size:1.25rem;font-weight:600}@media(max-width:1024px){.ma1-grid{grid-template-columns:1fr}.measurements-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.measurements-grid{grid-template-columns:repeat(2,1fr)}.timeline-event{grid-template-columns:70px 1fr}.event-error{grid-column:2}.fault-family-btn{padding:.75rem}.family-icon{font-size:1.25rem;width:36px;height:36px}}.cause-effect-analyzer{background:#f5f5f5;border-radius:12px;padding:1rem;min-height:400px}.cea-back-btn{background:#f59e0b14;border:1px solid rgba(59,130,246,.3);color:#d97706;padding:.4rem .8rem;border-radius:6px;font-size:.8rem;cursor:pointer;margin-bottom:1rem;transition:all .2s}.cea-back-btn:hover{background:#f59e0b26}.cea-selector-header{text-align:center;margin-bottom:1.5rem}.cea-selector-header h3{color:#1f2937;font-size:1.1rem;margin:0 0 .3rem}.cea-selector-header p{color:#9ca3af;font-size:.85rem;margin:0}.cea-families-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1.5rem}.cea-family-card{display:flex;align-items:center;gap:.75rem;background:#0000000a;border:2px solid var(--family-color, #9ca3af);border-radius:10px;padding:.8rem 1rem;cursor:pointer;transition:all .2s}.cea-family-card:hover{background:#0000000f;transform:translate(4px);box-shadow:0 4px 12px #0000004d}.cea-family-card .family-icon{font-size:1.5rem}.cea-family-card .family-info{flex:1;display:flex;flex-direction:column;align-items:flex-start}.cea-family-card .family-name{color:#1f2937;font-weight:600;font-size:.9rem}.cea-family-card .family-count{color:#9ca3af;font-size:.75rem}.cea-family-card .family-arrow{color:var(--family-color);font-size:1.2rem;opacity:0;transition:opacity .2s}.cea-family-card:hover .family-arrow{opacity:1}.cea-quick-search{background:#00000008;border-radius:10px;padding:1rem}.cea-quick-search h4{color:#6b7280;font-size:.85rem;margin:0 0 .75rem;font-weight:500}.quick-codes{display:flex;flex-wrap:wrap;gap:.4rem}.quick-code-btn{display:flex;align-items:center;gap:.3rem;background:#0000000a;border:1px solid;border-radius:6px;padding:.3rem .6rem;cursor:pointer;transition:all .2s}.quick-code-btn:hover{background:#0000000f;transform:scale(1.05)}.quick-code-btn .code-icon{font-size:.9rem}.quick-code-btn .code-name{color:#1f2937;font-size:.75rem;font-family:monospace}.cea-tree-header{display:flex;align-items:center;gap:.75rem;background:#0000000a;border-left:4px solid var(--family-color, #9ca3af);border-radius:0 10px 10px 0;padding:1rem;margin-bottom:1rem}.cea-tree-header .tree-icon{font-size:2rem}.cea-tree-header h3{color:#1f2937;margin:0;font-size:1.1rem}.cea-tree-header p{color:#9ca3af;margin:0;font-size:.8rem}.cea-entries-list{display:flex;flex-direction:column;gap:.6rem}.cea-entry-card{background:#1e293b99;border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:.8rem;cursor:pointer;transition:all .2s;text-align:left;width:100%}.cea-entry-card:hover{background:#0000000a;border-color:#64748b99}.entry-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.entry-icon{font-size:1.1rem}.entry-code{color:#1f2937;font-family:monospace;font-weight:600;font-size:.95rem}.entry-severity{padding:.15rem .4rem;border-radius:4px;font-size:.65rem;text-transform:uppercase;color:#fff}.entry-mode{padding:.15rem .4rem;border-radius:4px;font-size:.65rem;font-weight:600}.entry-mode.mode-ac{background:#22c55e;color:#fff}.entry-mode.mode-dc{background:#3b82f6;color:#fff}.entry-mode.mode-both{background:#8b5cf6;color:#fff}.entry-desc{color:#6b7280;font-size:.8rem;margin:0 0 .5rem}.entry-preview{display:flex;gap:1rem;color:#9ca3af;font-size:.7rem}.cea-detail-header{background:linear-gradient(135deg,#0000000a,#0f172ae6);border-radius:12px;padding:1rem;margin-bottom:1rem}.detail-title{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.detail-icon{font-size:2rem}.detail-title h2{color:#1f2937;margin:0;font-size:1.2rem;font-family:monospace}.detail-title p{color:#6b7280;margin:.2rem 0 0;font-size:.85rem}.detail-badges{display:flex;flex-wrap:wrap;gap:.4rem}.badge-severity,.badge-family,.badge-mode{padding:.25rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500;color:#fff}.badge-mode.mode-ac{background:#22c55e}.badge-mode.mode-dc{background:#3b82f6}.badge-mode.mode-both{background:#8b5cf6}.cea-progress-bar{background:#00000008;border-radius:8px;padding:.6rem .8rem;margin-bottom:1rem}.progress-label{display:flex;justify-content:space-between;color:#6b7280;font-size:.75rem;margin-bottom:.4rem}.progress-track{height:6px;background:#00000014;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#10b981);border-radius:3px;transition:width .3s ease}.cea-sections{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.cea-section{background:#00000008;border-radius:10px;overflow:hidden}.section-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.7rem .8rem;background:none;border:none;cursor:pointer;transition:background .2s}.section-header:hover{background:#0000000a}.section-icon{font-size:1rem}.section-title{flex:1;text-align:left;color:#1f2937;font-weight:500;font-size:.9rem}.section-count{color:#9ca3af;font-size:.75rem;background:#0000000d;padding:.15rem .5rem;border-radius:10px}.section-toggle{color:#9ca3af;font-size:.7rem}.section-content{padding:0 .8rem .8rem}.cause-item{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem;background:#00000008;border-radius:8px;margin-bottom:.4rem;cursor:pointer;transition:all .2s;border:1px solid transparent}.cause-item:hover{background:#0000000a}.cause-item.checked{border-color:#22c55e80;background:#22c55e1a}.cause-checkbox{font-size:1rem;color:#9ca3af}.cause-item.checked .cause-checkbox{color:#22c55e}.cause-rank{color:#f59e0b;font-weight:700;font-size:.75rem;min-width:20px}.cause-content{flex:1;display:flex;flex-direction:column;gap:.15rem}.cause-text{color:#1f2937;font-size:.85rem}.cause-details{color:#9ca3af;font-size:.75rem;font-style:italic}.cause-prob{padding:.15rem .4rem;border-radius:4px;font-size:.65rem;color:#fff;text-transform:uppercase}.measurements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.6rem}.measure-card{background:#00000008;border:1px solid rgba(0,0,0,.05);border-radius:8px;padding:.6rem;cursor:pointer;transition:all .2s}.measure-card:hover{background:#0000000a}.measure-card.checked{border-color:#22c55e80;background:#22c55e1a}.measure-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}.measure-checkbox{font-size:.9rem;color:#9ca3af}.measure-card.checked .measure-checkbox{color:#22c55e}.measure-label{color:#1f2937;font-weight:500;font-size:.85rem}.measure-tool{display:flex;align-items:center;gap:.3rem;color:#9ca3af;font-size:.75rem;margin-bottom:.4rem}.tool-icon{font-size:.8rem}.measure-values{display:flex;flex-direction:column;gap:.2rem}.value-expected,.value-critical{display:flex;gap:.3rem;font-size:.75rem}.value-label{color:#9ca3af}.value-text.ok{color:#22c55e}.value-text.ko{color:#ef4444}.actions-timeline{display:flex;flex-direction:column}.action-item{display:flex;gap:.75rem;cursor:pointer}.action-step{display:flex;flex-direction:column;align-items:center;width:28px}.step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#00000014;border-radius:50%;color:#6b7280;font-size:.75rem;font-weight:600}.action-item.checked .step-number{background:#22c55e;color:#fff}.action-item.next .step-number{background:#f59e0b;color:#fff;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.step-line{flex:1;width:2px;background:#00000014;min-height:20px}.action-item:last-child .step-line{display:none}.action-content{flex:1;display:flex;align-items:flex-start;gap:.5rem;padding:.4rem .6rem;background:#00000008;border-radius:8px;margin-bottom:.5rem;transition:all .2s}.action-item:hover .action-content{background:#0000000a}.action-item.checked .action-content{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.action-checkbox{font-size:.9rem}.action-text{flex:1;color:#1f2937;font-size:.85rem}.action-item.checked .action-text{text-decoration:line-through;color:#9ca3af}.action-skill{padding:.15rem .4rem;border-radius:4px;font-size:.65rem;color:#fff;font-weight:600}.cea-escalate{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:.8rem;margin-bottom:.75rem}.escalate-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.escalate-icon{font-size:1rem}.escalate-header span:last-child{color:#ef4444;font-weight:600;font-size:.85rem}.escalate-text{color:#fca5a5;font-size:.85rem;margin:0;line-height:1.4}.cea-related{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem;background:#00000008;border-radius:8px;margin-bottom:1rem}.related-label{color:#9ca3af;font-size:.75rem}.related-tags{display:flex;gap:.3rem;flex-wrap:wrap}.related-tag{background:#f59e0b26;color:#d97706;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-family:monospace}.cea-complete-btn{width:100%;padding:.8rem;background:linear-gradient(135deg,#22c55e,#10b981);border:none;border-radius:10px;color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s}.cea-complete-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.cea-phenomenon-section{margin-bottom:1rem}.phenomenon-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.phenomenon-section-icon{font-size:1.1rem}.phenomenon-section-title{color:#d97706;font-size:.9rem;font-weight:600}@media(max-width:768px){.cea-families-grid,.measurements-grid{grid-template-columns:1fr}.detail-badges,.cause-item{flex-wrap:wrap}.cause-prob{margin-left:auto}}.phenomenon-card{background:linear-gradient(135deg,#3b82f61a,#8b5cf60d);border:1px solid rgba(59,130,246,.3);border-radius:12px;padding:1rem;margin-top:1rem}.phenomenon-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.phenomenon-title{display:flex;align-items:center;gap:.75rem}.phenomenon-icon{font-size:1.75rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#3b82f633;border-radius:10px}.phenomenon-title h4{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.phenomenon-norm{color:#d97706;font-size:.75rem;font-family:monospace}.toggle-details-btn{background:#0000000d;border:none;color:#6b7280;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.7rem;transition:all .2s}.toggle-details-btn:hover{background:#0000001a;color:#1f2937}.phenomenon-threshold{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;margin-bottom:.75rem}.threshold-label{color:#6b7280;font-size:.75rem}.threshold-value{color:#fca5a5;font-size:.85rem;font-weight:500;font-family:monospace}.phenomenon-explanation{margin-bottom:.75rem}.phenomenon-explanation p{color:#4b5563;font-size:.85rem;line-height:1.5;margin:0}.phenomenon-analogy{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;background:#f59e0b1a;border-left:3px solid #f59e0b;border-radius:0 8px 8px 0;margin-bottom:.75rem}.analogy-icon{font-size:1rem;flex-shrink:0}.phenomenon-analogy p{color:#fcd34d;font-size:.8rem;font-style:italic;margin:0;line-height:1.4}.phenomenon-analogy strong{color:#fbbf24;font-weight:600}.phenomenon-details{border-top:1px solid rgba(0,0,0,.08);padding-top:.75rem;margin-bottom:.75rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preset-params{margin-bottom:.75rem}.params-title{color:#9ca3af;font-size:.75rem;display:block;margin-bottom:.4rem}.params-list{display:flex;flex-wrap:wrap;gap:.4rem}.param-badge{background:#22c55e26;color:#4ade80;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-family:monospace;border:1px solid rgba(34,197,94,.3)}.waveform-mini{background:#00000008;border-radius:8px;padding:.5rem}.waveform-label{color:#9ca3af;font-size:.7rem;display:block;margin-bottom:.4rem}.waveform-svg{width:100%;height:50px;display:block}.phenomenon-actions{display:flex;gap:.5rem;margin-bottom:.5rem}.btn-simulate,.btn-course{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:8px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-simulate{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-simulate:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.btn-course{background:#0000000d;color:#1f2937;border:1px solid rgba(0,0,0,.08)}.btn-course:hover{background:#00000014}.btn-icon{font-size:1rem}.lab-tab-info{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#00000008;border-radius:6px}.lab-info-icon{font-size:.9rem}.lab-info-text{color:#6b7280;font-size:.75rem}.lab-info-text strong{color:#1f2937}@media(max-width:640px){.phenomenon-actions{flex-direction:column}.btn-simulate,.btn-course{width:100%}}.fault-log-viewer{background:#f5f5f5;border-radius:12px;overflow:hidden;border:1px solid #ffffff}.flv-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb}.flv-title{display:flex;align-items:center;gap:.75rem}.flv-title h3{color:#1f2937;font-size:1rem;margin:0}.flv-title p{color:#9ca3af;font-size:.75rem;margin:0}.flv-controls{display:flex;gap:.5rem;align-items:center}.scenario-select{padding:.4rem .75rem;background:#f5f5f5;border:1px solid #e5e7eb;border-radius:6px;color:#1f2937;font-size:.8rem;font-family:monospace;cursor:pointer}.scenario-select:focus{outline:none;border-color:#3b82f6}.btn-timeline{width:32px;height:32px;background:#0000000d;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:all .2s}.btn-timeline:hover{background:#0000000f;color:#1f2937}.flv-scenario-info{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#00000008;border-bottom:1px solid #e5e7eb}.mode-badge{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600}.mode-badge.ac{background:#22c55e33;color:#22c55e}.mode-badge.dc{background:#f59e0b26;color:#3b82f6}.scenario-desc{color:#6b7280;font-size:.8rem;flex:1}.log-count{color:#9ca3af;font-size:.75rem;background:#0000000d;padding:.2rem .5rem;border-radius:4px}.flv-legend{display:flex;gap:1rem;padding:.5rem 1rem;background:#00000005;border-bottom:1px solid #e5e7eb}.legend-item{display:flex;align-items:center;gap:.3rem;color:#9ca3af;font-size:.7rem}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.normal{background:#9ca3af}.legend-dot.precursor{background:#f59e0b}.legend-dot.fault{background:#ef4444}.legend-dot.consequence{background:#f97316}.flv-log-container{display:flex;max-height:400px;overflow:hidden}.flv-timeline{width:30px;background:#00000008;border-right:1px solid #e5e7eb;padding:.5rem 0;display:flex;flex-direction:column;align-items:center;overflow-y:auto}.timeline-point{display:flex;flex-direction:column;align-items:center;min-height:28px}.point-dot{width:12px;height:12px;border-radius:50%;border:2px solid #9ca3af;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:.5rem;color:#fff}.timeline-point.precursor .point-dot{border-color:#f59e0b;background:#f59e0b4d}.timeline-point.fault .point-dot{border-color:#ef4444;background:#ef4444;box-shadow:0 0 8px #ef444499}.timeline-point.consequence .point-dot{border-color:#f97316}.point-line{width:2px;flex:1;min-height:16px;background:#e5e7eb}.flv-logs{flex:1;overflow-y:auto;font-family:Consolas,Monaco,monospace;font-size:.75rem}.log-line{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-left:3px solid transparent;transition:all .15s;position:relative;min-height:28px}.log-line:hover{background:#0000000a!important}.log-line.precursor{border-left-color:#f59e0b}.log-line.fault{border-left-color:#ef4444;background:#ef44441a}.log-line.consequence{border-left-color:#f97316}.log-line.hovered.precursor{background:#f59e0b26!important}.log-line.hovered.fault{background:#ef444433!important}.log-index{color:#d1d5db;width:20px;text-align:right}.log-timestamp{color:#9ca3af;width:95px}.log-level{padding:.1rem .3rem;border-radius:3px;font-size:.65rem;font-weight:600;width:50px;text-align:center}.log-action{color:#d97706;width:140px;font-weight:500}.log-payload{color:#6b7280;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-type-icon{font-size:.9rem;width:20px;text-align:center}.log-tooltip{position:absolute;top:100%;left:50px;right:20px;z-index:100;margin-top:4px;animation:tooltipFadeIn .15s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tooltip-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;box-shadow:0 4px 12px #0006}.tooltip-explanation{color:#1f2937;font-size:.85rem;font-family:system-ui,sans-serif;margin:0 0 .5rem;line-height:1.4}.tooltip-phenomenon{display:inline-block;color:#d97706;font-size:.75rem;padding:.2rem .5rem;background:#f59e0b1a;border-radius:4px;margin-right:.5rem}.btn-analyze{padding:.3rem .6rem;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:4px;color:#d97706;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-analyze:hover{background:#3b82f64d}.flv-footer{display:flex;gap:.5rem;padding:.75rem 1rem;background:#fff;border-top:1px solid #e5e7eb}.btn-export,.btn-replay,.btn-new{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-export{background:#0000000d;color:#1f2937;border:1px solid #e5e7eb}.btn-export:hover{background:#0000000f}.btn-replay{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-replay:hover{transform:translateY(-1px);box-shadow:0 2px 8px #f59e0b4d}.btn-new{background:#8b5cf633;color:#a78bfa;border:1px solid rgba(139,92,246,.3);margin-left:auto}.btn-new:hover{background:#8b5cf64d}.btn-icon{font-size:.9rem}.flv-stats{display:flex;gap:1.5rem;padding:.5rem 1rem;background:#00000005;border-top:1px solid #e5e7eb}.stat-item{display:flex;align-items:center;gap:.4rem}.stat-label{color:#9ca3af;font-size:.7rem}.stat-value{color:#1f2937;font-size:.75rem;font-weight:600;font-family:monospace}.stat-value.precursor{color:#f59e0b}.stat-value.fault{color:#ef4444}.flv-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.flv-error .error-icon{font-size:2rem;margin-bottom:1rem}.flv-error p{color:#6b7280;margin:0}.flv-logs::-webkit-scrollbar,.flv-timeline::-webkit-scrollbar{width:6px}.flv-logs::-webkit-scrollbar-track,.flv-timeline::-webkit-scrollbar-track{background:#f5f5f5}.flv-logs::-webkit-scrollbar-thumb,.flv-timeline::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:3px}.flv-logs::-webkit-scrollbar-thumb:hover,.flv-timeline::-webkit-scrollbar-thumb:hover{background:#d1d5db}@media(max-width:768px){.flv-header{flex-direction:column;gap:.5rem;align-items:flex-start}.flv-controls{width:100%}.scenario-select{flex:1}.flv-legend{flex-wrap:wrap;gap:.5rem}.flv-timeline{display:none}.log-action{width:100px}.log-payload{display:none}.flv-footer{flex-wrap:wrap}.btn-new{margin-left:0;width:100%}}.cpo-live-panel{background:#f5f5f5;border-radius:12px;overflow:hidden;border:1px solid #ffffff}.clp-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb}.clp-title{display:flex;align-items:center;gap:.75rem}.title-icon{font-size:1.5rem}.clp-title h3{color:#1f2937;font-size:1rem;margin:0}.connection-url{color:#9ca3af;font-size:.7rem;font-family:monospace}.clp-connection{display:flex;align-items:center;gap:.75rem}.connection-indicator{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:20px;font-size:.75rem;font-weight:500}.connection-indicator.connected{background:#22c55e26;color:#22c55e}.connection-indicator.connecting{background:#f59e0b26;color:#f59e0b}.connection-indicator.disconnected{background:#64748b26;color:#6b7280}.connection-indicator.error{background:#ef444426;color:#ef4444}.indicator-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.connection-indicator.connecting .indicator-dot{animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.btn-connect,.btn-disconnect{padding:.4rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-connect{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.btn-disconnect{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.clp-disconnected{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.disconnected-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.clp-disconnected p{color:#6b7280;margin:0 0 .5rem}.clp-disconnected .help-text{color:#9ca3af;font-size:.8rem}.clp-disconnected code{background:#f59e0b26;color:#d97706;padding:.15rem .4rem;border-radius:4px;font-size:.75rem}.clp-instructions{text-align:left;background:#00000008;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;margin:1rem 0;width:100%;max-width:400px}.clp-instructions h4{color:#1f2937;margin:0 0 .75rem;font-size:.9rem}.start-method{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border:1px solid rgba(34,197,94,.3);border-radius:8px;padding:1rem;text-align:center;margin-bottom:.75rem}.start-label{font-size:.85rem;color:#6b7280;margin:0 0 .5rem}.start-file{display:block;font-size:1.25rem;font-weight:700;color:#4ade80;background:#22c55e26;padding:.75rem 1rem;border-radius:6px;margin:.5rem 0;font-family:Consolas,Monaco,monospace}.start-path{font-size:.75rem;color:#9ca3af;margin:.5rem 0 0;font-family:monospace}.services-info{display:flex;justify-content:space-around;margin-top:.75rem;padding:.5rem;background:#00000005;border-radius:6px}.services-info span{font-size:.7rem;color:#6b7280}.clp-instructions .advanced-instructions{margin-top:.5rem;color:#9ca3af;font-size:.8rem}.clp-instructions .advanced-instructions summary{cursor:pointer;color:#6b7280;font-size:.75rem;padding:.25rem 0}.clp-instructions .advanced-instructions summary:hover{color:#1f2937}.clp-instructions ol{margin:.5rem 0 0;padding-left:1.25rem;color:#6b7280;font-size:.8rem}.clp-instructions li{margin-bottom:.3rem}.clp-instructions code{background:#f59e0b26;color:#d97706;padding:.1rem .4rem;border-radius:4px;font-size:.8rem}.clp-buttons{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap;justify-content:center}.btn-connect-large{padding:.75rem 1.25rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-connect-large:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.btn-open-interface{padding:.75rem 1.25rem;background:#22c55e33;color:#22c55e;border:1px solid rgba(34,197,94,.4);border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-open-interface:hover{background:#22c55e4d;transform:translateY(-2px)}.clp-controls{display:flex;gap:.5rem;padding:.75rem 1rem;background:#00000008;border-bottom:1px solid #e5e7eb}.btn-simulation,.btn-inject{flex:1;padding:.5rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-simulation{background:#22c55e33;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.btn-simulation.running{background:#ef444433;color:#ef4444;border-color:#ef44444d}.btn-inject{background:#f59e0b33;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.btn-inject:disabled{opacity:.5;cursor:not-allowed}.clp-stations{padding:.75rem 1rem;border-bottom:1px solid #e5e7eb}.clp-stations h4{color:#6b7280;font-size:.85rem;font-weight:500;margin:0 0 .75rem}.stations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.station-card{background:#00000008;border:1px solid #e5e7eb;border-radius:8px;padding:.6rem;cursor:pointer;transition:all .2s}.station-card:hover{background:#0000000a;border-color:#d1d5db}.station-card.selected{border-color:#3b82f6;background:#3b82f61a}.station-card.faulted{border-color:#ef444480;background:#ef44441a}.station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.station-id{color:#1f2937;font-size:.8rem;font-weight:600;font-family:monospace}.station-status{font-size:.7rem;font-weight:500}.station-error{display:flex;align-items:center;gap:.4rem;margin-top:.3rem}.error-code{background:#ef444433;color:#ef4444;padding:.15rem .4rem;border-radius:4px;font-size:.65rem;font-family:monospace}.btn-analyze-small{width:22px;height:22px;padding:0;background:#f59e0b26;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;transition:all .2s}.btn-analyze-small:hover{background:#f59e0b4d}.no-stations{text-align:center;padding:1.5rem}.no-stations p{color:#9ca3af;font-size:.85rem;margin:0}.no-stations .help-text{font-size:.75rem;margin-top:.3rem}.clp-events{padding:.75rem 1rem}.clp-events h4{color:#6b7280;font-size:.85rem;font-weight:500;margin:0 0 .5rem}.events-list{max-height:200px;overflow-y:auto;font-family:Consolas,monospace;font-size:.7rem}.event-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;border-radius:4px;margin-bottom:.25rem}.event-item:hover{background:#64748b1a}.event-item.fault{background:#ef44441a}.event-time{color:#9ca3af;width:70px}.event-type{color:#6b7280;width:140px}.event-station{color:#d97706;font-weight:500}.event-status{font-weight:500}.event-error{background:#ef444433;color:#ef4444;padding:.1rem .3rem;border-radius:3px;font-size:.65rem}.event-heartbeat{color:#ef4444}.no-events{text-align:center;padding:1rem;color:#9ca3af}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;padding:1.5rem;width:90%;max-width:400px;border:1px solid #e5e7eb}.modal-content h3{color:#1f2937;margin:0 0 1.5rem;font-size:1.1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;color:#6b7280;font-size:.8rem;margin-bottom:.4rem}.form-group select{width:100%;padding:.6rem;background:#f5f5f5;border:1px solid #e5e7eb;border-radius:6px;color:#1f2937;font-size:.9rem}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem}.btn-cancel{flex:1;padding:.6rem;background:#0000000d;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer}.btn-inject-confirm{flex:1;padding:.6rem;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer}.btn-inject-confirm:disabled{opacity:.5;cursor:not-allowed}.events-list::-webkit-scrollbar{width:6px}.events-list::-webkit-scrollbar-track{background:#f5f5f5}.events-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:3px}.dc-sequence-diagram{background:#00000008;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.dsd-family-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:20px;margin-bottom:1rem;font-size:.8rem;color:#fff}.dsd-family-badge .family-id{font-weight:700;padding:.15rem .4rem;background:#fff3;border-radius:4px}.dsd-family-badge .family-label{font-weight:500}.dsd-timeline{display:flex;align-items:center;justify-content:space-between;gap:0;overflow-x:auto;padding:1rem 0}.dsd-connector{flex:1;min-width:20px;max-width:60px;height:4px;position:relative;display:flex;align-items:center;justify-content:center}.dsd-connector .connector-line{width:100%;height:3px;background:linear-gradient(90deg,#e5e7eb,#d1d5db);border-radius:2px}.dsd-connector.past .connector-line{background:linear-gradient(90deg,#22c55e,#16a34a)}.dsd-connector.break{position:relative}.dsd-connector.break .connector-line{background:linear-gradient(90deg,#22c55e,#ef4444)}.dsd-connector .connector-break{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ef4444;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;box-shadow:0 0 10px #ef444480;z-index:1}.dsd-step{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem;background:#ffffffe6;border:2px solid #d1d5db;border-radius:12px;min-width:70px;transition:all .2s ease}.dsd-step.clickable{cursor:pointer}.dsd-step.clickable:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000004d}.dsd-step.past{border-color:#22c55e;background:#22c55e1a}.dsd-step.break{border-color:#ef4444;background:#ef444426;box-shadow:0 0 15px #ef44444d;transform:scale(1.1)}.dsd-step.future{opacity:.4;border-color:#e5e7eb}.dsd-step .step-icon{font-size:1.5rem}.dsd-step .step-id{font-weight:700;font-size:.85rem;color:#1f2937}.dsd-step .step-label{font-size:.65rem;color:#6b7280;text-align:center;max-width:80px;line-height:1.2}.dsd-step.past .step-id{color:#22c55e}.dsd-step.break .step-id{color:#ef4444}.step-break-indicator{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);padding:.15rem .4rem;border-radius:4px;font-size:.55rem;font-weight:700;color:#fff;white-space:nowrap;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.dsd-break-details{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.dsd-break-details h4{display:flex;align-items:center;gap:.5rem;color:#ef4444;margin:0 0 .75rem;font-size:1rem}.dsd-break-details .break-description{color:#4b5563;font-size:.9rem;margin:0 0 1rem}.dsd-break-details .break-checkpoints{background:#00000008;padding:.75rem;border-radius:8px}.dsd-break-details .break-checkpoints strong{color:#1f2937;font-size:.85rem}.dsd-break-details .break-checkpoints ul{margin:.5rem 0 0;padding-left:1.25rem;color:#6b7280;font-size:.8rem}.dsd-break-details .break-checkpoints li{margin-bottom:.25rem}.dc-sequence-diagram.compact{padding:.75rem}.dc-sequence-diagram.compact .dsd-timeline{padding:.5rem 0}.dc-sequence-diagram.compact .dsd-step{min-width:50px;padding:.5rem}.dc-sequence-diagram.compact .dsd-step .step-icon{font-size:1.2rem}.dc-sequence-diagram.compact .dsd-step .step-id{font-size:.7rem}.dc-sequence-diagram.compact .dsd-connector{min-width:15px;max-width:30px}@media(max-width:768px){.dsd-timeline{flex-wrap:wrap;justify-content:center;gap:.5rem}.dsd-connector{display:none}.dsd-step{min-width:60px}}.measurements-panel{background:#00000008;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem}.measurements-panel.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#9ca3af}.measurements-panel.empty .empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.mp-title{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:#1f2937;font-size:1rem}.mp-title .title-icon{font-size:1.1rem}.mp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.measurement-card{background:#ffffffe6;border:2px solid #d1d5db;border-radius:10px;padding:1rem;transition:all .2s ease}.measurement-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.measurement-card.ok{background:#22c55e14}.measurement-card.warning{background:#f59e0b14}.measurement-card.danger{background:#ef444414}.mc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.mc-label{font-size:.8rem;color:#6b7280;font-weight:500}.mc-status{font-size:1rem}.mc-value{display:flex;align-items:baseline;gap:.35rem;margin-bottom:.75rem}.mc-value .value{font-size:1.8rem;font-weight:700;line-height:1}.mc-value .unit{font-size:.9rem;font-weight:500;opacity:.8}.mc-reference{padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}.ref-row{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.25rem;color:#9ca3af}.ref-row .ref-label{font-weight:500}.ref-row.ok .ref-value{color:#22c55e}.ref-row.warning .ref-value{color:#f59e0b}.ref-hint{margin-top:.5rem;padding:.4rem;background:#3b82f61a;border-radius:6px;font-size:.7rem;color:#6b7280;line-height:1.3}.mp-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:#6b7280}.legend-item .dot{width:10px;height:10px;border-radius:50%}.legend-item.ok .dot{background:#22c55e}.legend-item.warning .dot{background:#f59e0b}.legend-item.danger .dot{background:#ef4444}.measurements-panel.compact{padding:.75rem}.measurements-panel.compact .mp-title{font-size:.9rem;margin-bottom:.75rem}.measurements-panel.compact .mp-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.measurements-panel.compact .measurement-card{padding:.6rem}.measurements-panel.compact .mc-value .value{font-size:1.3rem}.measurements-panel.compact .mc-value .unit{font-size:.75rem}@media(max-width:480px){.mp-grid{grid-template-columns:1fr}.mp-legend{flex-direction:column;align-items:center;gap:.5rem}}.ma2-acmode3{max-width:1200px;margin:0 auto}.ma2-header{text-align:center;margin-bottom:2rem}.ma2-header h2{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.ma2-header p{color:#6b7280;margin:0}.ma2-nav{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;background:#fff;border-radius:12px}.nav-btn{flex:1;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;color:#6b7280;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.nav-btn:hover{background:#f1f5f9;color:#1f2937}.nav-btn.active{background:#22c55e;color:#fff}.ma2-content{min-height:400px}.section-content{animation:fadeIn .3s ease}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.analyzer-card,.reference-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.analyzer-card h3,.reference-card h3{color:#1f2937;font-size:1rem;margin:0 0 1rem}.input-group{margin-bottom:1rem}.input-group label{display:block;color:#6b7280;font-size:.85rem;margin-bottom:.5rem}.input-group input{width:100%;padding:.75rem 1rem;background:#f8f9fa;border:2px solid #e5e7eb;border-radius:8px;color:#1f2937;font-size:1rem;transition:border-color .2s}.input-group input:focus{outline:none;border-color:#22c55e}.result-box{padding:1rem;border-radius:8px;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.result-box.ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.result-box.limite{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3)}.result-box.anormal,.result-box.warning{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.result-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.state-badge{padding:.25rem .75rem;border-radius:20px;color:#fff;font-weight:600;font-size:.85rem}.status-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge.ok{background:#22c55e33;color:#22c55e}.status-badge.limite{background:#f59e0b33;color:#f59e0b}.status-badge.anormal,.status-badge.warning{background:#ef444433;color:#ef4444}.pwm-arrow{color:#9ca3af;font-size:1.25rem}.result-desc{color:#6b7280;margin:0;font-size:.9rem}.reference-table{display:flex;flex-direction:column;gap:.5rem}.ref-row{display:grid;grid-template-columns:60px 100px 1fr;gap:.75rem;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:8px}.ref-state{padding:.25rem .5rem;border-radius:6px;color:#fff;font-weight:600;font-size:.8rem;text-align:center}.ref-voltage{color:#1f2937;font-family:Consolas,monospace;font-size:.85rem}.ref-desc{color:#6b7280;font-size:.85rem}.codes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.code-card{background:#fff;border-radius:10px;padding:1.25rem;border-left:4px solid}.code-card.error{border-color:#ef4444}.code-card.warning{border-color:#f59e0b}.code-card.info{border-color:#3b82f6}.code-card h4{color:#1f2937;font-size:.95rem;margin:0 0 .5rem}.code-card p{color:#6b7280;font-size:.85rem;margin:0 0 .75rem;line-height:1.4}.code-family{display:inline-block;padding:.2rem .5rem;background:#00000008;border-radius:4px;font-size:.75rem;color:#9ca3af}.scenarios-preview{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:12px;border:1px solid #e5e7eb}.scenarios-preview h3{color:#1f2937;font-size:1rem;margin:0 0 1rem}.scenarios-list{display:flex;flex-wrap:wrap;gap:.5rem}.scenario-chip{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border:1px solid #e5e7eb;border-radius:20px}.chip-id{color:#22c55e;font-weight:600;font-size:.8rem}.chip-title{color:#6b7280;font-size:.85rem}@media(max-width:1024px){.section-grid{grid-template-columns:1fr}.codes-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.ma2-nav{flex-wrap:wrap}.nav-btn{flex:1 1 45%}.codes-grid{grid-template-columns:1fr}}.ma3-dcadvanced{max-width:1200px;margin:0 auto}.ma3-header{text-align:center;margin-bottom:2rem}.ma3-header h2{color:#1f2937;font-size:1.5rem;margin:0 0 .5rem}.ma3-header p{color:#6b7280;margin:0}.ma3-content{display:flex;flex-direction:column;gap:2rem}.dc-sequence{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.dc-sequence h3{color:#1f2937;font-size:1rem;margin:0 0 1.5rem}.sequence-timeline{display:flex;overflow-x:auto;padding-bottom:.5rem;gap:0}.sequence-stage{display:flex;flex-direction:column;align-items:center;min-width:100px;cursor:pointer;transition:all .2s;position:relative}.sequence-stage:hover{transform:translateY(-4px)}.sequence-stage.active .stage-node{background:#3b82f6;border-color:#d97706;box-shadow:0 0 20px #3b82f666}.stage-connector{position:relative;height:20px;width:100%}.connector-line{position:absolute;top:50%;left:-50%;width:100%;height:3px;background:linear-gradient(90deg,#e5e7eb,#3b82f6)}.stage-node{width:60px;height:60px;background:#f5f5f5;border:3px solid #e5e7eb;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .3s}.stage-icon{font-size:1.25rem}.stage-id{font-size:.65rem;color:#9ca3af;margin-top:2px}.sequence-stage.active .stage-id{color:#fff}.stage-info{margin-top:.75rem;text-align:center}.stage-label{color:#6b7280;font-size:.75rem;font-weight:500}.sequence-stage.active .stage-label{color:#d97706;font-weight:600}.stage-details{background:#fff;border:2px solid #3b82f6;border-radius:12px;padding:1.5rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.details-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.details-icon{font-size:2.5rem}.details-header h3{color:#1f2937;font-size:1.25rem;margin:0 0 .25rem}.details-header p{color:#6b7280;margin:0;font-size:.9rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.details-card{background:#f5f5f5;border-radius:10px;padding:1.25rem}.details-card h4{color:#1f2937;font-size:.95rem;margin:0 0 .75rem}.details-card ul{list-style:none;padding:0;margin:0}.details-card li{padding:.5rem 0;color:#4b5563;font-size:.9rem;border-bottom:1px solid #ffffff}.details-card li:last-child{border-bottom:none}.details-card.checks li:before{content:"✓";color:#22c55e;margin-right:.5rem}.details-card.failures li:before{content:"✗";color:#ef4444;margin-right:.5rem}.iso-reference{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.iso-reference h3{color:#1f2937;font-size:1rem;margin:0 0 1rem}.iso-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.iso-card{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:10px;padding:1rem}.iso-card h4{color:#d97706;font-size:.95rem;margin:0 0 .5rem}.iso-card p{color:#6b7280;font-size:.8rem;margin:0 0 .75rem;line-height:1.4}.iso-tag{display:inline-block;padding:.2rem .5rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:4px;font-size:.7rem;color:#d97706}.dc-scenarios{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.dc-scenarios h3{color:#1f2937;font-size:1rem;margin:0 0 1rem}.dc-scenario-card{background:#f5f5f5;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:.75rem;cursor:pointer;transition:all .2s;overflow:hidden}.dc-scenario-card:hover,.dc-scenario-card.expanded{border-color:#3b82f6}.dc-scenario-card .scenario-header{display:flex;align-items:center;gap:.75rem;padding:1rem}.scenario-badge{padding:.25rem .5rem;background:#3b82f633;color:#d97706;border-radius:4px;font-size:.75rem;font-weight:600}.scenario-title{flex:1;color:#1f2937;font-size:.9rem}.scenario-level{padding:.2rem .5rem;background:#ef444433;color:#f87171;border-radius:4px;font-size:.7rem;font-weight:600}.scenario-expanded{padding:0 1rem 1rem;border-top:1px solid #ffffff;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.expanded-section{margin-top:1rem}.expanded-section h5{color:#6b7280;font-size:.8rem;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.expanded-section p{color:#f59e0b;font-style:italic;margin:0;font-size:.9rem}.expanded-section ul{list-style:none;padding:0;margin:0}.expanded-section li{padding:.35rem 0;color:#4b5563;font-size:.85rem}.expanded-section li:before{content:"•";color:#3b82f6;margin-right:.5rem}.fault-badge,.stage-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500;margin-right:.5rem}.fault-badge{background:#ef444433;color:#f87171}.stage-badge{background:#3b82f633;color:#d97706}@media(max-width:1024px){.iso-grid{grid-template-columns:repeat(2,1fr)}.details-grid{grid-template-columns:1fr}}@media(max-width:640px){.iso-grid{grid-template-columns:1fr}.sequence-timeline{flex-wrap:wrap;justify-content:center}.sequence-stage{min-width:80px}.connector-line{display:none}}.hyc-hypercharger{display:flex;flex-direction:column;gap:1rem}.hyc-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#8b5cf626,#3b82f61a);border:1px solid rgba(139,92,246,.3);border-radius:12px}.hyc-title{display:flex;align-items:center;gap:.75rem}.hyc-title .title-icon{font-size:2rem}.hyc-title h2{margin:0;color:#1f2937;font-size:1.25rem}.hyc-title .subtitle{font-size:.8rem;color:#6b7280}.hyc-progress-badge{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:8px}.progress-label{font-size:.7rem;color:#9ca3af;text-transform:uppercase}.progress-value{font-size:1.25rem;font-weight:700;color:#22c55e}.hyc-tabs{display:flex;gap:.5rem;padding:.5rem;background:#00000008;border-radius:10px;overflow-x:auto}.tab-btn{padding:.6rem 1rem;background:transparent;border:none;border-radius:8px;color:#6b7280;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:all .2s}.tab-btn:hover:not(:disabled){background:#f59e0b14;color:#1f2937}.tab-btn.active{background:#8b5cf633;color:#a78bfa;font-weight:600}.tab-btn:disabled{opacity:.4;cursor:not-allowed}.hyc-content{flex:1;overflow-y:auto}.hyc-overview{display:flex;flex-direction:column;gap:1.5rem}.overview-intro{padding:1.25rem;background:#00000008;border-radius:12px}.overview-intro h3{color:#1f2937;margin:0 0 .5rem}.overview-intro p{color:#6b7280;margin:0;line-height:1.5}.overview-section{padding:1.25rem;background:#00000005;border:1px solid #e5e7eb;border-radius:12px}.overview-section h4{color:#1f2937;margin:0 0 .5rem;font-size:1rem}.section-desc{color:#6b7280;font-size:.85rem;margin:0 0 1rem}.families-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.family-card{background:#00000008;border:2px solid;border-radius:10px;overflow:hidden}.family-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;color:#fff}.family-id{font-weight:700;font-size:.9rem}.family-label{font-size:.8rem}.family-desc{padding:.75rem;margin:0;color:#6b7280;font-size:.8rem;border-bottom:1px solid #e5e7eb}.family-examples{padding:.5rem .75rem;display:flex;flex-wrap:wrap;gap:.35rem}.example-tag{padding:.15rem .4rem;background:#f59e0b1a;color:#d97706;border-radius:4px;font-size:.7rem}.access-info .access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.access-item{background:#00000008;padding:.75rem;border-radius:8px;text-align:center}.access-label{display:block;font-size:.75rem;color:#9ca3af;margin-bottom:.35rem}.access-item code{font-size:1rem;color:#22c55e;background:#22c55e1a;padding:.25rem .5rem;border-radius:4px}.access-hint{margin:0;font-size:.8rem;color:#6b7280;padding:.5rem;background:#f59e0b14;border-radius:6px}.hyc-scenarios{padding:.5rem}.scenarios-header{margin-bottom:1rem}.scenarios-header h3{color:#1f2937;margin:0 0 .25rem}.scenarios-header p{color:#9ca3af;margin:0;font-size:.85rem}.scenarios-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.scenario-card{position:relative;background:#00000008;border:1px solid #d1d5db;border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s}.scenario-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000004d;border-color:#8b5cf6}.scenario-card.completed{border-color:#22c55e;background:#22c55e0d}.completed-badge{position:absolute;top:-8px;right:-8px;font-size:1.5rem}.sc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.sc-id{font-size:.7rem;color:#9ca3af;font-family:monospace}.sc-stage{padding:.2rem .5rem;background:#8b5cf633;color:#a78bfa;border-radius:4px;font-size:.75rem;font-weight:600}.sc-title{color:#1f2937;margin:0 0 .75rem;font-size:.95rem;line-height:1.3}.sc-symptoms{font-size:.8rem;margin-bottom:.75rem}.symptom-label{color:#9ca3af}.symptom-text{color:#6b7280;font-style:italic}.sc-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;border-top:1px solid #e5e7eb}.sc-family{padding:.2rem .5rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:600}.sc-points{color:#22c55e;font-weight:600;font-size:.85rem}.hyc-play{display:flex;flex-direction:column;gap:1rem}.play-header{display:flex;align-items:center;gap:1rem}.btn-back{padding:.5rem 1rem;background:#00000014;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;transition:all .2s}.btn-back:hover{background:#0000001f;color:#1f2937}.play-info h3{color:#1f2937;margin:0;font-size:1.1rem}.play-meta{display:flex;gap:1rem;margin-top:.25rem}.meta-item{font-size:.75rem;color:#9ca3af}.play-context{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.context-section{background:#00000008;padding:1rem;border-radius:10px}.context-section h4{color:#1f2937;margin:0 0 .5rem;font-size:.9rem}.user-report{color:#f59e0b;font-style:italic;margin:0}.context-section ul{margin:0;padding-left:1.25rem;color:#6b7280;font-size:.85rem}.play-grid{display:grid;grid-template-columns:1fr 400px;gap:1rem}.play-quiz{min-width:0}.play-data{display:flex;flex-direction:column;gap:1rem}.data-section{background:#00000008;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#00000008}.section-header.clickable{cursor:pointer}.section-header h4{margin:0;color:#1f2937;font-size:.9rem}.toggle-icon{color:#9ca3af;font-size:.8rem}.timeline-list{padding:.75rem;max-height:200px;overflow-y:auto}.timeline-event{display:grid;grid-template-columns:70px 120px 1fr;gap:.5rem;padding:.4rem 0;border-bottom:1px solid #e5e7eb;font-size:.8rem}.timeline-event:last-child{border-bottom:none}.timeline-event.fault{background:#ef44441a;margin:0 -.75rem;padding:.4rem .75rem;border-left:3px solid #ef4444}.event-time{color:#9ca3af;font-family:monospace}.event-type{color:#d97706}.event-detail{color:#1f2937}.timeline-event.fault .event-detail{color:#ef4444;font-weight:600}.hyc-reference{padding:.5rem}.hyc-reference h3{color:#1f2937;margin:0 0 1.5rem}.ref-section{margin-bottom:2rem}.ref-section h4{color:#4b5563;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.ref-table{width:100%;border-collapse:collapse;font-size:.85rem}.ref-table th,.ref-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb}.ref-table th{background:#00000008;color:#1f2937;font-weight:600}.ref-table td{color:#6b7280;vertical-align:top}.ref-table ul{margin:0;padding-left:1rem}.ref-table li{margin-bottom:.25rem}.step-badge{display:inline-block;padding:.25rem .5rem;background:#8b5cf633;color:#a78bfa;border-radius:6px;font-weight:600}.fault-tag{display:inline-block;margin:.15rem;padding:.15rem .4rem;background:#ef444426;color:#f87171;border-radius:4px;font-size:.75rem}.family-badge{display:inline-block;padding:.3rem .6rem;border-radius:6px;color:#fff;font-weight:700}.ref-table.families td .desc{font-size:.8rem;color:#9ca3af}@media(max-width:900px){.play-grid,.play-context,.access-info .access-grid{grid-template-columns:1fr}}@media(max-width:600px){.hyc-header{flex-direction:column;gap:1rem;text-align:center}.hyc-tabs{flex-wrap:wrap}.families-grid{grid-template-columns:1fr}}.api-explorer-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;margin-left:15px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:1px solid #d97706;border-radius:6px;font-weight:600;font-size:.85rem;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .2s ease;vertical-align:middle}.api-explorer-toggle:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.api-explorer-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;animation:fadeIn .3s ease}.api-explorer-panel{position:fixed;top:0;right:-450px;width:450px;height:100vh;background:#fff;box-shadow:-5px 0 30px #0000001a;z-index:1001;transition:right .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}.api-explorer-panel.open{right:0}.api-explorer-header{padding:25px;background:linear-gradient(135deg,#f59e0b,#d97706);border-bottom:2px solid #d97706;display:flex;justify-content:space-between;align-items:flex-start}.api-explorer-header h2{margin:0 0 5px;font-size:1.5rem;color:#fff}.api-explorer-header p{margin:0;font-size:.85rem;color:#ffffffd9}.close-btn{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn:hover{background:#0000001a}.api-explorer-content{flex:1;overflow-y:auto;padding:20px}.api-info-box{background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:20px;border-left:4px solid hsl(var(--color-primary))}.api-info-box strong{display:block;color:#4b5563;margin-bottom:8px;font-size:.85rem}.api-info-box code{display:block;background:#f1f5f9;padding:8px 12px;border-radius:4px;color:#2563eb;font-family:JetBrains Mono,monospace;font-size:.9rem}.api-stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:25px}.stat-item{background:#f8f9fa;padding:15px;border-radius:8px;text-align:center}.stat-value{display:block;font-size:2rem;font-weight:700;color:hsl(var(--color-primary));margin-bottom:5px}.stat-label{display:block;font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.categories-list{display:flex;flex-direction:column;gap:10px}.category-group{background:#f8f9fa;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb}.category-header{width:100%;padding:15px;background:none;border:none;color:#1f2937;font-weight:600;font-size:.95rem;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .2s}.category-header:hover{background:#00000008}.category-header span:first-of-type{flex:1;text-align:left}.endpoint-count{background:#f1f5f9;padding:2px 8px;border-radius:12px;font-size:.75rem;color:#6b7280}.endpoints-list{padding:10px;background:#f1f5f9}.endpoint-item{padding:12px;margin-bottom:8px;background:#f8f9fa;border-radius:6px;cursor:pointer;transition:all .2s;border-left:3px solid transparent}.endpoint-item:hover{background:#e5e7eb;border-left-color:hsl(var(--color-primary));transform:translate(3px)}.endpoint-item:last-child{margin-bottom:0}.endpoint-method-line{display:flex;align-items:center;gap:10px;margin-bottom:6px}.method-badge{padding:3px 8px;border-radius:4px;font-size:.7rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em;min-width:50px;text-align:center}.endpoint-path{flex:1;font-family:JetBrains Mono,monospace;font-size:.85rem;color:#2563eb;background:#f1f5f9;padding:4px 8px;border-radius:4px}.external-icon{color:#9ca3af;opacity:0;transition:opacity .2s}.endpoint-item:hover .external-icon{opacity:1}.endpoint-description{margin:0;font-size:.85rem;color:#6b7280;padding-left:60px}.api-footer{margin-top:25px;padding:15px;background:#f8f9fa;border-radius:8px;border-left:4px solid hsl(45,100%,50%)}.api-footer p{margin:0 0 8px;font-size:.85rem;color:#6b7280}.api-footer p:last-child{margin-bottom:0}.api-footer strong{color:#ffd966}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.api-explorer-content::-webkit-scrollbar{width:8px}.api-explorer-content::-webkit-scrollbar-track{background:#f5f5f5}.api-explorer-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.api-explorer-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media(max-width:768px){.api-explorer-panel{width:100%;right:-100%}.api-explorer-toggle{padding:5px 10px;font-size:.75rem;gap:4px;margin-left:10px}.api-explorer-toggle span{display:none}}@media(max-width:1024px){.api-explorer-toggle{left:10px;top:60px}}
