:root{--color-primary:#1976d2;--color-primary-dark:#1565c0;--color-primary-light:#e9f0ff;--color-white:#fff;--color-black:#000;--color-gray-50:#f9f9f9;--color-gray-100:#f6f6f6;--color-gray-200:#f1f1f1;--color-gray-300:#f0f0f0;--color-gray-400:#e7e7e7;--color-gray-500:#e5e5e5;--color-gray-600:#e0e0e0;--color-gray-700:#ddd;--color-gray-800:#ccc;--color-gray-900:#c9c9c9;--color-text-primary:#333;--color-text-secondary:#666;--color-text-tertiary:#0000008c;--color-border:#888;--color-border-light:#ccc;--color-border-subtle:#00000014;--color-border-panel:#00000026;--color-danger:#f44336;--color-danger-dark:#d32f2f;--color-warning:orange;--color-success:#008000b3;--color-bg-canvas:#fff;--color-bg-panel:#fff;--color-bg-hover:#f8f8f8;--color-bg-active:#e9f0ff;--color-scrim:#00000059;--color-overlay:#00000080;--color-overlay-dark:#0009;--space-xs:4px;--space-sm:6px;--space-md:8px;--space-lg:10px;--space-xl:12px;--space-2xl:16px;--space-3xl:20px;--space-4xl:24px;--font-family-base:system-ui,Avenir,Helvetica,Arial,sans-serif;--font-family-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:15px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:32px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-base:1.5;--line-height-tight:1.1;--line-height-none:1;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:12px;--radius-3xl:22px;--radius-round:50%;--shadow-sm:0 2px 10px #00000014;--shadow-md:0 4px 12px #0000002e;--shadow-lg:0 8px 24px #0000002e;--shadow-xl:0 20px 60px #0000004d;--shadow-focus:0 0 0 3px #1976d21a;--shadow-primary:0 6px 18px #0b57d04d;--z-base:1;--z-scrim:999;--z-sheet-panel:1000;--z-sheet-handle:1001;--z-sheet-overlay:1002;--z-mode-popover:2000;--z-settings:10000;--transition-fast:.15s;--transition-base:.2s;--transition-medium:.22s;--transition-slow:.26s;--ease-default:ease;--ease-in-out:cubic-bezier(.22,.61,.36,1);--ease-out:ease-out;--ease-in:ease-in;--transition-transform:transform var(--transition-slow)var(--ease-in-out);--transition-opacity:opacity var(--transition-medium)var(--ease-default);--transition-color:color var(--transition-base)var(--ease-default);--transition-background:background var(--transition-base)var(--ease-default);--btn-padding-x:var(--space-lg);--btn-padding-y:var(--space-sm);--btn-min-height:40px;--btn-min-height-mobile:44px;--btn-min-height-large:48px;--sheet-handle-size:22px;--sheet-gap:52px;--sheet-border-radius:var(--radius-2xl);--sheet-grabber-width:42px;--sheet-grabber-height:5px;--sheet-grabber-width-vertical:5px;--sheet-grabber-height-vertical:42px;--touch-target-min:44px;--touch-target-large:52px;--mode-popover-size:52px;--mode-popover-center-dot:12px;--grid-gap:var(--space-md);--grid-padding:var(--space-lg);--sidebar-width:220px;--toolbar-height:45px}[data-theme=dark]{--color-primary:#4a9eff;--color-primary-dark:#357abd;--color-primary-light:#1a2f4a;--color-white:#1e1e1e;--color-black:#fff;--color-gray-50:#2a2a2a;--color-gray-100:#2d2d2d;--color-gray-200:#323232;--color-gray-300:#383838;--color-gray-400:#3d3d3d;--color-gray-500:#424242;--color-gray-600:#484848;--color-gray-700:#4d4d4d;--color-gray-800:#525252;--color-gray-900:#575757;--color-text-primary:#e0e0e0;--color-text-secondary:#b0b0b0;--color-text-tertiary:#ffffff8c;--color-border:#555;--color-border-light:#444;--color-border-subtle:#ffffff14;--color-border-panel:#ffffff26;--color-bg-canvas:#1e1e1e;--color-bg-panel:#252525;--color-bg-hover:#2a2a2a;--color-bg-active:#1a2f4a;--color-scrim:#0009;--color-overlay:#000000b3;--color-overlay-dark:#000c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#4a9eff;--color-primary-dark:#357abd;--color-primary-light:#1a2f4a;--color-white:#1e1e1e;--color-black:#fff;--color-gray-50:#2a2a2a;--color-gray-100:#2d2d2d;--color-gray-200:#323232;--color-gray-300:#383838;--color-gray-400:#3d3d3d;--color-gray-500:#424242;--color-gray-600:#484848;--color-gray-700:#4d4d4d;--color-gray-800:#525252;--color-gray-900:#575757;--color-text-primary:#e0e0e0;--color-text-secondary:#b0b0b0;--color-text-tertiary:#ffffff8c;--color-border:#555;--color-border-light:#444;--color-border-subtle:#ffffff14;--color-border-panel:#ffffff26;--color-bg-canvas:#1e1e1e;--color-bg-panel:#252525;--color-bg-hover:#2a2a2a;--color-bg-active:#1a2f4a;--color-scrim:#0009;--color-overlay:#000000b3;--color-overlay-dark:#000c}}:root{--electrical-high:#0f8;--electrical-low:#ff6b6b;--electrical-disconnected:#888;--electrical-high-disconnected:#008044;--electrical-low-disconnected:#b50000;font-family:var(--font-family-base);line-height:var(--line-height-base);font-weight:var(--font-weight-normal);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{background:var(--color-bg-canvas);width:100vw;height:100vh;color:var(--color-text-primary);display:flex}h1{font-size:3.2em;line-height:var(--line-height-tight);margin:0}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin:0}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.u-hidden{display:none!important}.u-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.u-overflow-hidden{overflow:hidden!important}@media (width<=768px){html,body,body{height:100dvh}}#app{width:calc(100% - 20px);height:calc(100% - 20px);padding:var(--grid-padding);grid-template-columns:var(--sidebar-width)1fr;gap:var(--grid-gap);grid-template-rows:auto 1fr;display:grid}#app>div{min-width:0;min-height:0}@media (width<=768px){#app{grid-template-rows:1fr!important;grid-template-columns:1fr!important;width:100vw!important;height:100dvh!important;padding:0!important}#app>div:first-child{grid-row:auto!important}}.btn{border-radius:var(--radius-lg);padding:var(--btn-padding-y)var(--btn-padding-x);font:inherit;color:#fffc;cursor:pointer;min-height:var(--btn-min-height);font-weight:var(--font-weight-medium);letter-spacing:.3px;background:#0000004d;border:1px solid #60a5fa33;transition:all .2s;position:relative;overflow:hidden}.btn:before{content:"";background:#60a5fa4d;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn:hover{color:#fffffff2;border-color:#60a5fa4d;box-shadow:0 0 12px #60a5fa33}.btn:hover:before{width:300px;height:300px}.btn:active{background:#60a5fa40;transform:scale(.98)}.btn:focus-visible{outline-offset:2px;outline:2px solid #60a5fa;box-shadow:0 0 20px #60a5fa80}.btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale()}.btn:disabled:hover{box-shadow:none;background:#0000004d;border-color:#60a5fa33}.btn--primary{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#93c5fd,#357abd);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #60a5fa80}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #60a5fa80}.btn--primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{letter-spacing:1px}.btn--success{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#10b981,#0c8a60);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #10b9814d}.btn--success:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b9814d}.btn--success:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--danger{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#ef4444,#eb1515);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #ef444466}.btn--danger:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.btn--danger:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--warning{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#fbbf24,#e8a804);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #fbbf2459}.btn--warning:hover{transform:translateY(-2px);box-shadow:0 6px 16px #fbbf2459}.btn--warning:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--secondary{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#baa3fb,#825af8);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #a78bfa66}.btn--secondary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #a78bfa66}.btn--secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--ghost{color:#60a5fa;background:0 0;border:1px dashed #60a5fa4d}.btn--ghost:hover{background:#60a5fa1a;border-style:solid;box-shadow:0 0 12px #60a5fa33}.btn--outline{color:#60a5fa;background:0 0;border:2px solid #60a5fa}.btn--outline:hover{background:#60a5fa26;box-shadow:0 0 20px #60a5fa80}.btn--small{padding:var(--space-xs)var(--space-md);font-size:var(--font-size-sm);min-height:32px}.btn--large{padding:var(--space-lg)var(--space-2xl);font-size:var(--font-size-lg);min-height:var(--btn-min-height-large);font-weight:var(--font-weight-bold)}.btn--icon{padding:var(--space-md);min-width:var(--touch-target-min);min-height:var(--touch-target-min);border-radius:var(--radius-md);justify-content:center;align-items:center;display:inline-flex}.btn--icon:hover{transform:scale(1.1)}.btn--icon:active{transform:scale(1.05)}.btn-group{border-radius:var(--radius-xl);background:#0006;border:1px solid #60a5fa4d;gap:0;display:inline-flex;overflow:hidden;box-shadow:0 0 8px #00000080}.btn-group .btn{padding:var(--btn-padding-y)var(--btn-padding-x);font:inherit;color:#ffffffb3;cursor:pointer;min-height:var(--btn-min-height);background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.btn-group .btn:before{content:none}.btn-group .btn:after{content:"";opacity:0;background:linear-gradient(135deg,#93c5fd,#357abd);height:2px;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.btn-group .btn+.btn{border-left:1px solid #60a5fa33}.btn-group .btn.active,.btn-group .btn:active{color:#60a5fa;text-shadow:0 0 8px #60a5fa80;background:#60a5fa33}.btn-group .btn.active:after,.btn-group .btn:active:after{opacity:1}.btn-group .btn:hover:not(.active){color:#fffc;background:#60a5fa1a}@media (width<=768px){.btn-group--modes .btn{min-height:var(--btn-min-height-mobile);padding:var(--space-lg)14px;font-size:var(--font-size-sm)}button,.btn{min-height:var(--btn-min-height-mobile);padding:var(--space-md)var(--space-xl);font-size:var(--font-size-base)}.btn--large{padding:var(--space-xl)var(--space-3xl)}}@keyframes cyber-pulse{0%,to{box-shadow:0 0 8px #60a5fa66}50%{box-shadow:0 0 20px #60a5facc}}.btn--pulse{animation:2s ease-in-out infinite cyber-pulse}.canvas-host{background:var(--color-bg-canvas);box-sizing:border-box;border:none;border-radius:0;width:100%;height:100%;position:relative}.canvas-host canvas{background:var(--color-bg-canvas);user-select:none;touch-action:none;display:block}.canvas-host--grabbing{cursor:grabbing!important}.canvas-host--default{cursor:default}.canvas-host--grab{cursor:grab}.canvas-host--pointer{cursor:pointer}.canvas-host--crosshair{cursor:crosshair}.canvas-host--drag-active{transition:box-shadow .2s;box-shadow:inset 0 0 0 3px #00d9ff66,0 0 20px #00d9ff4d}.canvas-host--drop-animation{animation:.3s drop-pulse}@keyframes drop-pulse{0%{box-shadow:inset 0 0 0 3px #00d9ff99,0 0 20px #00d9ff80}50%{box-shadow:inset 0 0 0 6px #0f8c,0 0 40px #0f89}to{box-shadow:none}}.toolbar{backdrop-filter:blur(10px);padding:var(--space-md);border-radius:16px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:2px solid #60a5fa66;max-width:100%;display:block;box-shadow:0 10px 40px #0009}.toolbar__content{gap:var(--space-md);flex-wrap:wrap;align-items:center;min-width:0;display:flex}.toolbar__content button,.toolbar__content .btn{--ripple-color:#60a5fa80;min-width:var(--btn-min-height)!important;width:auto!important;height:var(--btn-min-height)!important;min-height:var(--btn-min-height)!important;max-height:var(--btn-min-height)!important;padding:var(--btn-padding-y)var(--btn-padding-x)!important;box-sizing:border-box!important;font-size:var(--font-size-sm)!important;justify-content:center!important;align-items:center!important;line-height:1!important;transition:all .2s!important;display:inline-flex!important;position:relative!important;overflow:hidden!important;box-shadow:0 2px 4px #0000004d!important}.toolbar__content button:before,.toolbar__content .btn:before{content:"";background:var(--ripple-color);pointer-events:none;z-index:0;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toolbar__content button:hover:before,.toolbar__content .btn:hover:before{width:300px;height:300px}.toolbar__content .btn--success{--ripple-color:#0f89;border:1px solid #fff3!important}.toolbar__content .btn--warning{--ripple-color:#ff6b0099;border:1px solid #fff3!important}.toolbar__content .btn--danger{--ripple-color:#f059;border:1px solid #fff3!important}.toolbar__content select,.toolbar__content input,.toolbar__content label{min-height:var(--btn-min-height);box-sizing:border-box;justify-content:center;align-items:center;display:inline-flex;padding:var(--btn-padding-y)var(--btn-padding-x)!important}.toolbar__content select{padding-right:var(--space-xl)!important}.toolbar__content label{display:inline-flex;padding:var(--btn-padding-y)var(--btn-padding-x)!important}.toolbar__main-group{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:inline-flex}.toolbar__main-group .btn,.toolbar__main-group button{min-height:var(--btn-min-height)}.toolbar__main-group .btn-group--modes{border-radius:var(--radius-lg);background:#0006;border:1px solid #60a5fa33;gap:0;display:inline-flex;overflow:hidden;box-shadow:none!important}.toolbar__main-group .btn-group--modes .btn-mode{border:none;border-radius:0;position:relative;padding:var(--btn-padding-y)var(--btn-padding-x)!important;min-width:var(--btn-min-height)!important;min-height:var(--btn-min-height)!important;height:var(--btn-min-height)!important;box-shadow:none!important;background:0 0!important}.toolbar__main-group .btn-group--modes .btn-mode:after{content:"";opacity:0;background:linear-gradient(135deg,#93c5fd,#357abd);height:2px;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.toolbar__main-group .btn-group--modes .btn-mode:hover{background:#60a5fa1a!important}.toolbar__main-group .btn-group--modes .btn-mode.active{color:#60a5fa;text-shadow:0 0 10px #60a5fa80;background:#60a5fa33!important}.toolbar__main-group .btn-group--modes .btn-mode.active:after{opacity:1}.toolbar__main-group .btn-group--modes .btn-mode+.btn-mode{border-left:1px solid #60a5fa33}.toolbar__layer-wrapper{gap:var(--space-sm);min-height:var(--btn-min-height);align-items:center;display:inline-flex}.toolbar__layer-wrapper .btn-group--modes{margin:0}.toolbar__tests-group{gap:var(--space-sm);min-height:var(--btn-min-height);align-items:center;display:inline-flex}.toolbar__tests-group .btn,.toolbar__tests-group button{width:var(--btn-min-height);height:var(--btn-min-height);min-width:var(--btn-min-height);min-height:var(--btn-min-height);justify-content:center;align-items:center;line-height:1;display:inline-flex;padding:0!important}.toolbar__level-wrapper{gap:var(--space-sm);min-height:var(--btn-min-height);align-items:center;margin-left:auto;display:inline-flex}.toolbar__level-select{--ripple-color:#fbbf244d;padding:var(--btn-padding-y)var(--btn-padding-x);border-radius:var(--radius-lg);color:#fffc;font:inherit;cursor:pointer;min-width:200px;min-height:var(--btn-min-height);isolation:isolate;background:#0006;border:1px solid #60a5fa4d;transition:all .2s;position:relative;overflow:hidden}.toolbar__level-select:before{content:"";background:var(--ripple-color);pointer-events:none;z-index:-1;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toolbar__level-select:hover{color:#fffffff2;background:#fbbf2426;border-color:#fbbf24;box-shadow:0 0 12px #fbbf2433}.toolbar__level-select:hover:before{width:300px;height:300px}.toolbar__level-select:focus{border-color:#fbbf24;outline:none;box-shadow:0 0 12px #fbbf244d}.toolbar__level-select option,.toolbar__level-select optgroup{color:#fffc;background:#1e293bfa}.toolbar__settings-btn{--ripple-color:#a78bfa4d;font-size:var(--font-size-lg);min-width:var(--btn-min-height);min-height:var(--btn-min-height);border-radius:var(--radius-lg);color:#a78bfa;cursor:pointer;padding:var(--btn-padding-y)var(--btn-padding-x);isolation:isolate;background:#a78bfa1a;border:1px solid #a78bfa4d;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative;overflow:hidden}.toolbar__settings-btn:before{content:"";background:var(--ripple-color);pointer-events:none;z-index:-1;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toolbar__settings-btn:hover{background:#a78bfa33;border-color:#a78bfa;transform:rotate(90deg);box-shadow:0 0 12px #a78bfa66}.toolbar__settings-btn:hover:before{width:300px;height:300px}@media (width<=768px){.toolbar{border-radius:0}.toolbar__content{gap:var(--space-sm)}.toolbar__level-wrapper{justify-content:center;width:100%;margin-left:0}}.toolbox{backdrop-filter:blur(10px);padding:var(--space-md);border-radius:16px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:2px solid #60a5fa66;box-shadow:0 10px 40px #0009}.toolbox__button{align-items:center;gap:var(--space-md);width:100%;margin:var(--space-sm)0;padding:var(--space-md);border-radius:var(--radius-md);cursor:pointer;font:inherit;color:#fffc;text-align:left;font-weight:var(--font-weight-medium);letter-spacing:.3px;background:#0000004d;border:1px solid #60a5fa33;transition:all .2s;display:flex;position:relative;overflow:hidden}.toolbox__button:before{content:"";opacity:0;background:linear-gradient(135deg,#93c5fd,#357abd);width:3px;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0}.toolbox__button:after{content:"▸";right:var(--space-md);color:#60a5fa;opacity:0;transition:all .2s;position:absolute;top:50%;transform:translateY(-50%)}.toolbox__button:hover{color:#fffffff2;background:#60a5fa1a;border-color:#60a5fa4d;transform:translate(4px);box-shadow:0 0 12px #60a5fa33}.toolbox__button:hover:before{opacity:1}.toolbox__button:hover:after{opacity:1;transform:translateY(-50%)translate(4px)}.toolbox__button:active{background:#60a5fa33;transform:translate(2px);box-shadow:0 0 16px #60a5fa4d,inset 0 0 12px #60a5fa1a}.toolbox__button[data-type=logic]{border-left:3px solid #60a5fa}.toolbox__button[data-type=logic]:hover{box-shadow:0 0 12px #60a5fa80}.toolbox__button[data-type=input]{border-left:3px solid #10b981}.toolbox__button[data-type=input]:hover{box-shadow:0 0 12px #10b9814d}.toolbox__button[data-type=output]{border-left:3px solid #fbbf24}.toolbox__button[data-type=output]:hover{box-shadow:0 0 12px #fbbf2459}.toolbox__button-content{align-items:center;gap:var(--space-md);width:100%;display:flex}.toolbox__thumbnail{border-radius:var(--radius-sm);width:60px;height:40px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;background:#0003;border:1px solid #60a5fa33;flex-shrink:0;transition:all .2s}.toolbox__label{text-align:left;flex:1}.toolbox__category{margin-bottom:var(--space-lg)}.toolbox__category:last-child{margin-bottom:0}.toolbox__category-header{width:100%;padding:var(--space-sm)var(--space-md);border-radius:var(--radius-md);color:#fffffff2;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);text-align:left;cursor:pointer;letter-spacing:.5px;text-transform:uppercase;background:#60a5fa1a;border:1px solid #60a5fa33;justify-content:space-between;align-items:center;transition:all .2s;display:flex}.toolbox__category-header:hover{background:#60a5fa33;border-color:#60a5fa;box-shadow:0 0 8px #60a5fa4d}.toolbox__category-header[aria-expanded=false]{opacity:.7}.toolbox__category-arrow{font-size:var(--font-size-xs);color:#60a5fa;transition:transform .2s}.toolbox__category-content{opacity:1;max-height:1000px;transition:max-height .3s,opacity .3s;overflow:hidden}.toolbox__category-content[data-expanded=false]{opacity:0;max-height:0}.toolbox-drag-preview{border-radius:var(--radius-sm);image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;border:2px solid #60a5fa;box-shadow:0 8px 16px #0006,0 0 12px #60a5fa80}@media (width<=768px){.toolbox{border-radius:0}.toolbox__button{padding:var(--space-lg);font-size:var(--font-size-base);min-height:var(--touch-target-min)}}.mode-popover{z-index:var(--z-mode-popover);touch-action:none;pointer-events:none;position:absolute}.mode-popover__option{font:inherit;width:var(--mode-popover-size);height:var(--mode-popover-size);border-radius:var(--radius-round);font-size:var(--font-size-xl);pointer-events:auto;transition:all .2s ease ease-out;cursor:pointer;color:#ffffffb3;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa33;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 20px #60a5fa80}.mode-popover__option:hover{color:#fffc;border-color:#60a5fa4d;box-shadow:0 0 20px #60a5fa80}.mode-popover__option--active{color:#fffffff2;background:linear-gradient(135deg,#93c5fd,#357abd);border-color:#60a5fa;transform:translate(-50%,-50%)scale(1.15);box-shadow:0 0 30px #60a5fa80}.mode-popover__center-dot{width:var(--mode-popover-center-dot);height:var(--mode-popover-center-dot);border-radius:var(--radius-round);pointer-events:none;background:#60a5fa;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 0 20px #60a5fa80}.dialogue-box__speaker-name{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm)}.dialogue-box__portrait{border-radius:var(--radius-md);overflow:hidden}.dialogue-box__text{color:var(--color-text-primary);line-height:var(--line-height-base)}.dialogue-box[data-speaker-color] .dialogue-box__speaker-name{color:var(--speaker-color)}.dialogue-box[data-speaker-font] .dialogue-box__speaker-name{font-family:var(--speaker-font)}.dialogue-box[data-speaker-transform] .dialogue-box__speaker-name{text-transform:var(--speaker-transform)}.debriefing__health-fill{transition:width .3s var(--ease-default)}.settings-overlay{z-index:var(--z-settings);backdrop-filter:blur(8px);background:#000000d9;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.settings-modal{backdrop-filter:blur(10px);background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:2px solid #60a5fa66;border-radius:16px;flex-direction:column;width:90%;max-width:800px;max-height:85vh;animation:.4s cubic-bezier(.16,1,.3,1) scaleIn;display:flex;overflow:hidden;box-shadow:0 20px 80px #000000e6}.settings-header{justify-content:space-between;align-items:center;gap:var(--space-4xl);background:linear-gradient(135deg,#1e293bcc,#0f172acc);border-bottom:2px solid #60a5fa4d;padding:24px 32px;display:flex}.settings-header h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:#60a5fa;text-shadow:0 0 20px #60a5fa80;text-transform:uppercase;letter-spacing:2px;margin:0}.settings-close-btn{font-size:var(--font-size-2xl);cursor:pointer;color:#ffffffb3;border-radius:var(--radius-md);background:#ffffff0d;border:1px solid #60a5fa33;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:all .2s;display:flex}.settings-close-btn:hover{color:#fff;background:#64c8ff33;border-color:#60a5fa66;box-shadow:0 0 20px #60a5fa80}.settings-tabs{gap:var(--space-xs);padding:var(--space-2xl)var(--space-4xl)0;background:#0003;border-bottom:2px solid #60a5fa33;display:flex}.settings-tab{padding:var(--space-lg)var(--space-3xl);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#ffffff80;text-transform:uppercase;letter-spacing:1px;background:0 0;border:none;border-bottom:3px solid #0000;transition:all .2s;position:relative}.settings-tab:before{content:"";opacity:0;background:linear-gradient(135deg,#93c5fd,#357abd);height:3px;transition:opacity .2s;position:absolute;bottom:-2px;left:0;right:0}.settings-tab:hover{color:#fffc;background:#64c8ff0d}.settings-tab.active{color:#60a5fa;text-shadow:0 0 20px #60a5fa80}.settings-tab.active:before{opacity:1}.settings-content{padding:var(--space-4xl);background:#0003;flex:1;overflow-y:auto}.settings-content::-webkit-scrollbar{width:8px}.settings-content::-webkit-scrollbar-track{background:#0000004d;border-radius:4px}.settings-content::-webkit-scrollbar-thumb{background:#64c8ff66;border-radius:4px}.settings-content::-webkit-scrollbar-thumb:hover{background:#64c8ff99}.settings-section{margin-bottom:var(--space-4xl);padding:var(--space-3xl);border-radius:var(--radius-xl);background:#64c8ff08;border:1px solid #60a5fa33}.settings-section:last-child{margin-bottom:0}.settings-section h3{margin:0 0 var(--space-2xl)0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:#60a5fa;text-transform:uppercase;letter-spacing:1px}.settings-select{width:100%;padding:var(--space-lg)var(--space-xl);font-size:var(--font-size-base);border-radius:var(--radius-md);color:#fffffff2;cursor:pointer;background:#0006;border:2px solid #60a5fa33;font-family:Consolas,Monaco,monospace;transition:all .2s}.settings-select:hover{border-color:#60a5fa66;box-shadow:0 0 12px #64c8ff33}.settings-select:focus{border-color:#60a5fa;outline:none;box-shadow:0 0 20px #60a5fa80}.settings-select option{color:#fffffff2;background:#0f172afa}.settings-row{align-items:center;gap:var(--space-2xl);margin-bottom:var(--space-2xl);padding:var(--space-lg);border-radius:var(--radius-md);background:#0000004d;border:1px solid #64c8ff1a;display:flex}.settings-row label{font-size:var(--font-size-base);color:#fffc;font-weight:var(--font-weight-medium);flex:1}.settings-slider{appearance:none;background:#00000080;border:1px solid #60a5fa33;border-radius:4px;outline:none;flex:2;height:8px}.settings-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:linear-gradient(135deg,#93c5fd,#357abd);border:2px solid #60a5fa;border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 8px #4a90e266}.settings-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 4px 12px #4a90e299}.settings-slider::-moz-range-thumb{cursor:pointer;background:linear-gradient(135deg,#93c5fd,#357abd);border:2px solid #60a5fa;border-radius:50%;width:20px;height:20px;transition:all .2s;box-shadow:0 2px 8px #4a90e266}.settings-slider::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 4px 12px #4a90e299}.settings-value{text-align:right;min-width:50px;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:#60a5fa;text-shadow:0 0 10px #60a5fa4d;font-family:Consolas,Monaco,monospace}.shortcuts-table{gap:var(--space-xs);flex-direction:column;display:flex}.shortcuts-category{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;color:#fbbf24;margin-top:var(--space-2xl);margin-bottom:var(--space-md);letter-spacing:1px;padding-left:var(--space-md);border-left:3px solid #fbbf24}.shortcuts-row{padding:var(--space-lg)var(--space-xl);border-radius:var(--radius-md);background:#0000004d;border:1px solid #64c8ff1a;justify-content:space-between;align-items:center;transition:all .2s;display:flex}.shortcuts-row:hover{background:#64c8ff14;border-color:#60a5fa33;box-shadow:0 0 10px #64c8ff1a}.shortcuts-label{font-size:var(--font-size-base);color:#fffc;flex:1}.shortcuts-keys-container{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.key-badge{padding:var(--space-xs)var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#93c5fd,#357abd);border:1px solid #60a5fa;font-family:Consolas,Monaco,monospace;transition:all .2s;display:inline-block;box-shadow:0 2px 6px #4a90e24d}.key-badge:hover{background:linear-gradient(135deg,#357abd,#2868a8);transform:translateY(-2px);box-shadow:0 4px 12px #4a90e280}.key-badge:active{transform:translateY(0)}.key-badge--recording{background:linear-gradient(135deg,#fbbf24,#e8a804);border-color:#fbbf24;animation:1.5s ease-in-out infinite pulse}.key-badge-remove{padding:var(--space-xs)var(--space-sm);font-size:var(--font-size-lg);color:#ef4444;cursor:pointer;background:0 0;border:2px solid #ef4444;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-weight:700;line-height:1;transition:all .2s;display:flex}.key-badge-remove:hover{color:#fff;background:#ef4444;box-shadow:0 0 12px #ef444480}.key-badge-add{padding:var(--space-xs)var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#60a5fa;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:2px dashed #60a5fa66;transition:all .2s;display:inline-block}.key-badge-add:hover{color:#fff;background:#64c8ff1a;border-color:#60a5fa;box-shadow:0 0 20px #60a5fa80}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #fbbf24b3}50%{opacity:.8;box-shadow:0 0 0 8px #fbbf2400}}.settings-footer{justify-content:space-between;gap:var(--space-xl);padding:var(--space-3xl)var(--space-4xl);background:#0000004d;border-top:2px solid #60a5fa33;display:flex}.settings-reset-btn{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #ef444466}.settings-reset-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.settings-reset-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.settings-close-footer-btn{color:#fff;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#93c5fd,#357abd);border:none;border-radius:8px;padding:12px 24px;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #4a90e266}.settings-close-footer-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4a90e266}.settings-close-footer-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.settings-close-footer-btn{flex:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (width<=768px){.settings-modal{width:95%;max-height:90vh}.settings-header{padding:var(--space-2xl)var(--space-3xl)}.settings-header h2{font-size:var(--font-size-2xl)}.settings-content{padding:var(--space-3xl)}.settings-tabs{padding:var(--space-lg)var(--space-3xl)0;overflow-x:auto}.settings-row{align-items:stretch;gap:var(--space-md);flex-direction:column}.settings-slider{width:100%}.shortcuts-row{align-items:flex-start;gap:var(--space-sm);flex-direction:column}}.panel{border-radius:var(--radius-md);padding:var(--space-md);background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa33;box-shadow:0 0 20px #60a5fa80}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);display:none}.panel-title{font-weight:var(--font-weight-semibold);color:#fffc}.burger-button{font-size:var(--font-size-xl);line-height:var(--line-height-none);padding:var(--space-md)var(--space-xl);min-width:var(--touch-target-min);min-height:var(--touch-target-min);border-radius:var(--radius-md);color:#fffc;cursor:pointer;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa33;transition:all .2s}.burger-button:hover{background:#1e293bfa;border-color:#60a5fa4d;box-shadow:0 0 20px #60a5fa80}@media (width<=768px){.panel-collapsible[aria-expanded=false] .panel-content{display:none!important}.panel-collapsible.toolbar .panel-content,.panel-collapsible.toolbox .panel-content{display:block!important}.panel-collapsible{border:none!important}.panel.panel-collapsible.toolbar,.panel.panel-collapsible.toolbox{z-index:var(--z-sheet-panel);border-radius:var(--sheet-border-radius);background:linear-gradient(135deg,#0f172afa,#1e293bfa);width:100%;max-width:none;padding:0;position:fixed}.panel.panel-collapsible.toolbar{border-radius:0 0 var(--sheet-border-radius)var(--sheet-border-radius);width:100vw;top:0;left:0;right:0}.panel.panel-collapsible.toolbar .panel-header{height:var(--sheet-gap);padding:0 var(--space-xl);border-radius:var(--sheet-border-radius)var(--sheet-border-radius)0 0;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border-top:1px solid #60a5fa4d;border-left:1px solid #60a5fa4d;border-right:1px solid #60a5fa4d;justify-content:space-between;align-items:center;position:relative;box-shadow:0 0 20px #60a5fa80;display:flex!important}.panel.panel-collapsible.toolbar .panel-header:after{content:"";top:var(--space-md);width:36px;height:var(--space-xs);background:#60a5fa;border-radius:2px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 0 20px #60a5fa80}.panel.panel-collapsible.toolbar .burger-button{font-size:var(--font-size-lg)}.panel.panel-collapsible.toolbar .panel-content{padding:var(--space-xl);opacity:0;pointer-events:none;will-change:transform,opacity;background:linear-gradient(135deg,#0f172afa,#1e293bfa);transition:transform .2s,opacity .2s;position:fixed;inset:0;overflow:auto;transform:translateY(100%);box-shadow:0 20px 80px #000000e6}.panel.panel-collapsible.toolbar[aria-expanded=true] .panel-content{opacity:1;pointer-events:auto;transform:translateY(0%)}.panel.panel-collapsible.toolbar:before{content:"";opacity:0;z-index:-1;pointer-events:none;background:#000000d9;transition:opacity .2s;position:fixed;inset:0}.panel.panel-collapsible.toolbar[aria-expanded=true]:before{opacity:1}.panel.panel-collapsible.toolbox{border-radius:var(--sheet-border-radius)0 0 var(--sheet-border-radius);width:auto;top:0;bottom:0;right:0}.panel.panel-collapsible.toolbox .panel-header{top:var(--space-xl);right:var(--space-xl);height:var(--touch-target-min);padding:0 var(--space-lg);align-items:center;gap:var(--space-md);border-radius:var(--radius-3xl);color:#fffc;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa4d;position:absolute;box-shadow:0 0 20px #60a5fa80;display:flex!important}.panel.panel-collapsible.toolbox .panel-title{display:none}.panel.panel-collapsible.toolbox .panel-content{padding:var(--space-2xl);opacity:0;pointer-events:none;will-change:transform,opacity;background:linear-gradient(135deg,#0f172afa,#1e293bfa);transition:transform .2s,opacity .2s;position:fixed;inset:0;overflow:auto;transform:translate(100%);box-shadow:0 20px 80px #000000e6}.panel.panel-collapsible.toolbox[aria-expanded=true] .panel-content{opacity:1;pointer-events:auto;transform:translate(0%)}.panel.panel-collapsible.toolbox:before{content:"";opacity:0;z-index:-1;pointer-events:none;background:#000000d9;transition:opacity .2s;position:fixed;inset:0}.panel.panel-collapsible.toolbox[aria-expanded=true]:before{opacity:1}.panel-collapsible.sheet-mode-top .panel-content:before{content:"";left:50%;bottom:var(--space-md);width:var(--sheet-grabber-width);height:var(--sheet-grabber-height);background:#60a5fa;border-radius:3px;position:absolute;transform:translate(-50%);box-shadow:0 0 20px #60a5fa80}.panel-collapsible.sheet-mode-bottom .panel-content:before{content:"";left:50%;top:var(--space-md);width:var(--sheet-grabber-width);height:var(--sheet-grabber-height);background:#60a5fa;border-radius:3px;position:absolute;transform:translate(-50%);box-shadow:0 0 20px #60a5fa80}.panel-collapsible.sheet-mode-right .panel-content:before{content:"";left:var(--space-md);width:var(--sheet-grabber-width-vertical);height:var(--sheet-grabber-height-vertical);background:#60a5fa;border-radius:3px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 20px #60a5fa80}.panel-collapsible.sheet-mode-left .panel-content:before{content:"";right:var(--space-md);width:var(--sheet-grabber-width-vertical);height:var(--sheet-grabber-height-vertical);background:#60a5fa;border-radius:3px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 20px #60a5fa80}.toolbar .panel-content button,.toolbox .panel-content button{width:100%;min-height:var(--btn-min-height-large);margin:var(--space-sm)0;min-height:var(--touch-target-min);padding:var(--space-lg)14px}.edge-open-toolbar{will-change:transform,opacity;height:48px;z-index:var(--z-sheet-handle);pointer-events:none;background:linear-gradient(#60a5fa80,#0000);transition:transform .2s,opacity .2s;display:block;position:fixed;top:0;left:0;right:0}.edge-open-toolbar:after{content:"▾ Menu";left:50%;top:var(--space-xs);font-size:var(--font-size-xs);line-height:var(--line-height-none);color:#fffc;border-radius:var(--radius-2xl);padding:var(--space-xs)var(--space-md);pointer-events:none;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa33;animation:2.2s ease-in-out 1.2s 2 hintNudgeUp;position:absolute;transform:translate(-50%);box-shadow:0 0 20px #60a5fa80}.edge-open-toolbox{will-change:transform,opacity;width:48px;z-index:var(--z-sheet-handle);pointer-events:none;background:linear-gradient(270deg,#60a5fa80,#0000);transition:transform .2s,opacity .2s;display:block;position:fixed;top:0;bottom:0;right:0}.edge-open-toolbox:after{content:"Composants ▸";writing-mode:vertical-rl;top:50%;right:var(--space-xs);font-size:var(--font-size-xs);color:#fffc;border-radius:var(--radius-2xl);padding:var(--space-sm)var(--space-xs);pointer-events:none;background:linear-gradient(135deg,#0f172afa,#1e293bfa);border:1px solid #60a5fa33;animation:2.2s ease-in-out 1.2s 2 hintNudgeLeft;position:absolute;transform:translateY(-50%);box-shadow:0 0 20px #60a5fa80}@keyframes hintNudgeUp{0%,60%,to{transform:translate(-50%)}20%{transform:translate(-50%,-6px)}40%{transform:translate(-50%)}}@keyframes hintNudgeLeft{0%,60%,to{transform:translateY(-50%)translate(0)}20%{transform:translateY(-50%)translate(6px)}40%{transform:translateY(-50%)translate(0)}}}@media (width>=769px){.panel-header,.panel-collapsible .panel-header,.edge-open-toolbar,.edge-open-toolbox{display:none}}
