@font-face{font-family:ZXSpectrum;src:url(/fonts/zx-spectrum.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg-primary: #141416;--bg-secondary: #1a1a1d;--text-primary: #e0e0e0;--text-secondary: #999;--text-muted: #666;--border-color: #333;--accent-color: #cc0000;--glass-bg: rgba(13, 17, 23, .85);--glass-bg-header: rgba(33, 38, 45, .6);--glass-border: rgba(48, 54, 61, .6);--overlay-hover: rgba(255, 255, 255, .08);--overlay-active: rgba(255, 255, 255, .15);--overlay-white-10: rgba(255, 255, 255, .1);--accent-blue: #00FFFF;--accent-blue-bg: rgba(0, 255, 255, .12);--accent-blue-bg-strong: rgba(0, 255, 255, .2);--accent-blue-bg-stronger: rgba(0, 255, 255, .3);--accent-blue-border: rgba(0, 255, 255, .4);--accent-blue-border-light: rgba(0, 255, 255, .3);--accent-green: #00FF00;--accent-green-bg: rgba(0, 255, 0, .15);--accent-green-bg-strong: rgba(0, 255, 0, .2);--accent-green-bg-stronger: rgba(0, 255, 0, .25);--accent-green-border: rgba(0, 255, 0, .4);--accent-green-border-light: rgba(0, 255, 0, .3);--accent-red: #FF0000;--accent-red-bg: rgba(255, 0, 0, .12);--accent-red-bg-strong: rgba(255, 0, 0, .18);--accent-red-bg-stronger: rgba(255, 0, 0, .2);--accent-red-border: rgba(255, 0, 0, .4);--accent-purple: #FF00FF;--accent-purple-bg: rgba(255, 0, 255, .12);--accent-purple-bg-strong: rgba(255, 0, 255, .2);--accent-orange: #FFFF00;--accent-orange-bg: rgba(255, 255, 0, .12);--accent-orange-bg-strong: rgba(255, 255, 0, .2);--accent-orange-bg-stronger: rgba(255, 255, 0, .25);--accent-orange-border: rgba(255, 255, 0, .4);--accent-orange-border-light: rgba(255, 255, 0, .3);--accent-orange-border-strong: rgba(255, 255, 0, .5);--overlay-subtle: rgba(255, 255, 255, .04);--overlay-faint: rgba(255, 255, 255, .03);--glass-bg-solid: rgba(13, 17, 23, .95);--glass-border-subtle: rgba(48, 54, 61, .3);--input-bg: rgba(0, 0, 0, .15);--input-bg-deep: rgba(0, 0, 0, .25);--separator-bg: rgba(48, 54, 61, .6);--control-bg: rgba(33, 38, 45, .5);--reg-flash-color: #FFFF00;--reg-flash-bg: rgba(255, 255, 0, .15);--flag-active-glow: rgba(0, 255, 0, .2);--input-bg-dark: rgba(22, 27, 34, .5);--input-bg-deeper: rgba(10, 12, 16, .6);--badge-dim-bg: rgba(48, 54, 61, .5);--overlay-white-02: rgba(255, 255, 255, .02);--border-default: rgba(48, 54, 61, .6);--border-muted: rgba(48, 54, 61, .4);--canvas-bg: #05050a;--canvas-line: #1a1a2a;--screen-surround: #c8b89a;--disk-bg: #161b22;--disk-medium: #1a1308;--disk-sector-line: rgba(255,255,255,.08);--disk-ghost-outline: rgba(255,255,255,.06);--disk-ghost-sector: rgba(255,255,255,.03);--disk-ghost-hub: rgba(210,208,200,.08);--disk-hub-ring: rgba(210,208,200,.85);--disk-hub-edge: rgba(255,255,255,.12);--disk-hub-edge-inner: rgba(255,255,255,.08);--disk-hole-edge: rgba(0,0,0,.3);--disk-edge: rgba(255,255,255,.06);--channel-a: #00FFFF;--channel-b: #00FF00;--channel-c: #FF0000;--beeper-color: #00FF00;--control-border: rgba(48, 54, 61, .8);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--shadow-window: 0 2px 12px rgba(0, 0, 0, .4);--shadow-window-focused: 0 16px 64px rgba(0, 0, 0, 1), 0 6px 24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(0, 255, 255, .6);--radius-sm: 4px;--radius-md: 8px;--shimmer-peak: rgba(255, 255, 255, .85);--shimmer-edge: rgba(255, 255, 255, .35);--stripe-red: #FF0000;--stripe-yellow: #FFFF00;--stripe-green: #00FF00;--stripe-cyan: #00FFFF;--stripe-opacity: .2;--logo-red: var(--accent-red);--logo-yellow: var(--accent-orange);--logo-green: var(--accent-green);--logo-blue: var(--accent-blue);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Menlo", monospace}html[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f6f8fa;--text-primary: #1f2328;--text-secondary: #656d76;--text-muted: #8b949e;--border-color: #d0d7de;--accent-color: #b42d31;--glass-bg: rgba(255, 255, 255, .92);--glass-bg-header: rgba(246, 248, 250, .8);--glass-border: rgba(208, 215, 222, .8);--overlay-hover: rgba(31, 35, 40, .08);--overlay-active: rgba(31, 35, 40, .12);--overlay-white-10: rgba(31, 35, 40, .06);--accent-blue: #0000CD;--accent-blue-bg: rgba(0, 0, 205, .1);--accent-blue-bg-strong: rgba(0, 0, 205, .16);--accent-blue-bg-stronger: rgba(0, 0, 205, .22);--accent-blue-border: rgba(0, 0, 205, .4);--accent-blue-border-light: rgba(0, 0, 205, .3);--accent-green: #008A00;--accent-green-bg: rgba(0, 138, 0, .1);--accent-green-bg-strong: rgba(0, 138, 0, .16);--accent-green-bg-stronger: rgba(0, 138, 0, .22);--accent-green-border: rgba(0, 138, 0, .4);--accent-green-border-light: rgba(0, 138, 0, .3);--accent-red: #CD0000;--accent-red-bg: rgba(205, 0, 0, .1);--accent-red-bg-strong: rgba(205, 0, 0, .16);--accent-red-bg-stronger: rgba(205, 0, 0, .2);--accent-red-border: rgba(205, 0, 0, .4);--accent-purple: #CD00CD;--accent-purple-bg: rgba(205, 0, 205, .1);--accent-purple-bg-strong: rgba(205, 0, 205, .16);--accent-orange: #8B8B00;--accent-orange-bg: rgba(139, 139, 0, .1);--accent-orange-bg-strong: rgba(139, 139, 0, .16);--accent-orange-bg-stronger: rgba(139, 139, 0, .22);--accent-orange-border: rgba(139, 139, 0, .4);--accent-orange-border-light: rgba(139, 139, 0, .3);--accent-orange-border-strong: rgba(139, 139, 0, .5);--overlay-subtle: rgba(31, 35, 40, .04);--overlay-faint: rgba(31, 35, 40, .03);--glass-bg-solid: rgba(255, 255, 255, .97);--glass-border-subtle: rgba(208, 215, 222, .5);--input-bg: rgba(246, 248, 250, .6);--input-bg-deep: rgba(232, 236, 240, .6);--separator-bg: rgba(208, 215, 222, .8);--control-bg: rgba(246, 248, 250, .6);--reg-flash-color: #8B8B00;--reg-flash-bg: rgba(139, 139, 0, .15);--flag-active-glow: rgba(0, 205, 0, .15);--input-bg-dark: rgba(246, 248, 250, .5);--input-bg-deeper: rgba(232, 236, 240, .8);--badge-dim-bg: rgba(208, 215, 222, .5);--overlay-white-02: rgba(31, 35, 40, .02);--border-default: rgba(208, 215, 222, .8);--border-muted: rgba(208, 215, 222, .5);--canvas-bg: #f0f2f5;--canvas-line: #d0d7de;--screen-surround: #c8b89a;--disk-bg: #e8ecf0;--disk-medium: #2a2010;--disk-sector-line: rgba(0,0,0,.06);--disk-ghost-outline: rgba(0,0,0,.08);--disk-ghost-sector: rgba(0,0,0,.03);--disk-ghost-hub: rgba(180,178,170,.15);--disk-hub-ring: rgba(210,208,200,.9);--disk-hub-edge: rgba(0,0,0,.08);--disk-hub-edge-inner: rgba(0,0,0,.06);--disk-hole-edge: rgba(0,0,0,.15);--disk-edge: rgba(0,0,0,.08);--channel-a: #0000CD;--channel-b: #008A00;--channel-c: #CD0000;--beeper-color: #008A00;--control-border: rgba(208, 215, 222, .8);--shimmer-peak: rgba(255, 255, 255, 1);--shimmer-edge: rgba(255, 255, 255, .5);--stripe-red: #CD0000;--stripe-yellow: #C2C200;--stripe-green: #00CD00;--stripe-cyan: #00C2C2;--stripe-opacity: .15;--logo-red: #E00000;--logo-yellow: #B8860B;--logo-green: #008A00;--logo-blue: #0055CC;--shadow-md: 0 4px 16px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .25);--shadow-window: 0 2px 12px rgba(0, 0, 0, .12);--shadow-window-focused: 0 16px 64px rgba(0, 0, 0, .5), 0 6px 24px rgba(0, 0, 0, .4), 0 0 0 1px rgba(0, 0, 205, .6);--mobile-header-height: 40px;--mobile-keyboard-height: 220px;--mobile-dpad-size: 120px;--mobile-fire-size: 64px;--mobile-sheet-radius: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;-webkit-font-smoothing:antialiased}body:after{content:"";position:fixed;bottom:0;right:0;width:50vw;height:50vw;pointer-events:none;z-index:0;background:linear-gradient(to top left,var(--stripe-red) 0%,var(--stripe-red) 6%,var(--stripe-yellow) 6%,var(--stripe-yellow) 12%,var(--stripe-green) 12%,var(--stripe-green) 18%,var(--stripe-cyan) 18%,var(--stripe-cyan) 24%,transparent 24%);opacity:var(--stripe-opacity)}#app{display:flex;flex-direction:column;height:100vh;width:100vw}header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:44px;flex-shrink:0;z-index:2000;position:relative;transition:transform .25s ease,opacity .25s ease}header.auto-hide{position:fixed;top:0;left:0;right:0;transform:translateY(-100%);opacity:0;pointer-events:none}header.auto-hide.header-visible{transform:translateY(0);opacity:1;pointer-events:auto}#app.header-auto-hide main{padding-top:0}:fullscreen header{transform:translateY(-100%);opacity:0;pointer-events:none}:fullscreen header.header-visible{transform:translateY(0);opacity:1;pointer-events:auto}.header-left{display:flex;align-items:center;gap:12px}.header-logo{display:flex;align-items:center;height:44px;font-family:"ZXSpectrum",var(--font-mono);font-size:24px;font-weight:400;letter-spacing:1px;line-height:1;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;position:relative;padding-top:10px}.logo-r{color:var(--logo-red)}.logo-w{color:var(--text-primary)}.logo-y{color:var(--logo-yellow)}.logo-g{color:var(--logo-green)}.logo-c{color:var(--logo-blue)}.version-chip{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:var(--accent-blue-bg);color:var(--accent-blue);border:1px solid var(--accent-blue-border);-webkit-user-select:none;user-select:none}.header-site-link{font-family:var(--font-mono);font-size:14px;font-style:italic;font-weight:600;letter-spacing:1px;color:var(--accent-green);text-decoration:none;text-shadow:0 0 6px var(--accent-green-bg-stronger),0 0 12px var(--accent-green-bg-stronger);-webkit-user-select:none;user-select:none;transition:text-shadow .2s ease}.header-site-link:hover{text-shadow:0 0 8px var(--accent-green-border),0 0 16px var(--accent-green-border)}.logo-text{font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:.5px}.header-controls{display:flex;align-items:center;gap:8px}.control-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.control-btn:hover{background:var(--overlay-hover);color:var(--text-primary);border-color:var(--text-muted)}.control-btn:active{transform:scale(.95)}.control-btn svg{width:18px;height:18px}.control-btn.power-btn{color:var(--accent-green)}.control-btn.power-btn:hover{background:var(--accent-green-bg);color:#fff;border-color:var(--accent-green)}.control-btn.power-btn.off{color:var(--accent-red)}.control-btn.power-btn.off:hover{background:transparent;color:var(--accent-red);border-color:var(--accent-red);box-shadow:0 0 20px var(--accent-red-bg-stronger)}.header-text-btn{display:flex;align-items:center;justify-content:center;height:36px;padding:0 12px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-sans);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.header-text-btn:hover{background:var(--overlay-hover);color:var(--text-primary);border-color:var(--text-muted)}.header-text-btn:active{transform:scale(.95)}.header-text-btn.disabled,.control-btn.disabled{opacity:.35;pointer-events:none;cursor:default}.header-divider{width:1px;height:20px;background:var(--border-color);margin:0 4px;flex-shrink:0}.header-menu-container{position:relative}.header-menu-trigger{display:flex;align-items:center;gap:4px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:.8125rem;font-weight:400;cursor:pointer;transition:color .15s,background .15s}.header-menu-trigger:hover,.header-menu-container.open .header-menu-trigger{background:var(--overlay-hover);color:var(--text-primary)}.header-menu-trigger svg.menu-chevron{color:var(--text-muted);transition:transform .2s}.header-menu-container.open .header-menu-trigger svg.menu-chevron{transform:rotate(180deg)}.header-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .15s,transform .15s,visibility .15s;z-index:2000;padding:4px 0}.header-menu-container.open .header-menu{opacity:1;visibility:visible;transform:translateY(0)}.header-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;background:none;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:.8125rem;text-align:left;cursor:pointer;transition:background .1s}.header-menu-item:hover{background:var(--overlay-hover)}.header-menu-item-row{display:flex;align-items:stretch}.header-menu-item-row .header-menu-item{flex:1;min-width:0}.header-menu-action-btn{display:flex;align-items:center;justify-content:center;width:32px;background:none;border:none;border-left:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:background .1s,color .1s}.header-menu-action-btn:hover{background:var(--overlay-hover);color:var(--accent-red)}.menu-check-item{justify-content:flex-start;gap:6px}.menu-check{display:inline-block;width:14px;font-size:12px;text-align:center;color:var(--accent-green);visibility:hidden;flex-shrink:0}.menu-check-item.active .menu-check{visibility:visible}.menu-check-item.disabled{opacity:.35;pointer-events:none}.header-menu .toggle-row{cursor:default}.header-menu .toggle-switch{position:relative;display:inline-block;width:40px;height:22px;background:transparent;border:none}.header-menu .toggle-switch:after{display:none}.header-menu .toggle-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.header-menu .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--overlay-active);border-radius:22px;transition:.2s}.header-menu .toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.2s}.header-menu .toggle-switch input:checked+.toggle-slider{background-color:var(--accent-blue)}.header-menu .toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.header-menu-separator{height:1px;background:var(--glass-border);margin:4px 8px}.recent-item-row{display:flex;align-items:stretch}.recent-item-row .recent-item{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.recent-item{font-size:.75rem;color:var(--text-secondary);padding:5px 12px}.recent-item:hover{color:var(--text-primary)}.recent-item-remove{display:flex;align-items:center;justify-content:center;width:24px;background:none;border:none;color:var(--text-muted);font-size:.875rem;cursor:pointer;opacity:0;transition:opacity .1s,color .1s}.recent-item-row:hover .recent-item-remove{opacity:1}.recent-item-remove:hover{color:var(--accent-red)}.header-menu-section-label{padding:6px 12px 2px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);cursor:default}.control-group{display:flex;align-items:center;gap:6px;margin-left:4px}.panel-trigger-group{display:flex;align-items:center;gap:4px}.icon-menu-trigger{display:flex;align-items:center;gap:2px;padding:6px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:color .15s,background .15s}.icon-menu-trigger:hover{background:var(--overlay-hover);color:var(--text-primary)}.icon-menu-trigger:active{transform:scale(.95)}.icon-menu-trigger svg:not(.menu-chevron){width:18px;height:18px}.icon-menu-trigger .menu-chevron{color:var(--text-muted);flex-shrink:0}.icon-menu-trigger.speed-active{color:var(--accent-orange)}.icon-menu-trigger.speed-active:hover{background:var(--accent-orange-bg);color:var(--accent-orange)}.sound-control-wrapper{position:relative}.sound-popup{position:absolute;top:100%;right:0;margin-top:8px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px;min-width:200px;box-shadow:var(--shadow-lg);z-index:10000;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .15s,transform .15s,visibility .15s}.sound-popup.open{opacity:1;visibility:visible;transform:translateY(0)}.sound-popup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--glass-border)}.sound-popup-row:last-child{border-bottom:none}.sound-popup-row label:first-child{font-size:.8125rem;color:var(--text-secondary);flex-shrink:0}.sound-popup-row input[type=range]{flex:1;height:4px;background:var(--overlay-white-10);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.sound-popup-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent-blue);border-radius:50%;cursor:pointer}.sound-popup-row input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--accent-blue);border:none;border-radius:50%;cursor:pointer}#volume-value{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);min-width:32px;text-align:right}.sound-popup .toggle-switch{position:relative;display:inline-block;width:40px;height:22px;background:transparent;border:none}.sound-popup .toggle-switch:after{display:none}.sound-popup .toggle-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.sound-popup .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--overlay-active);border-radius:22px;transition:.2s}.sound-popup .toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.2s}.sound-popup .toggle-switch input:checked+.toggle-slider{background-color:var(--accent-blue)}.sound-popup .toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.speed-control-wrapper{position:relative}.speed-popup{position:absolute;top:100%;right:0;margin-top:8px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px;min-width:200px;box-shadow:var(--shadow-lg);z-index:10000;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .15s,transform .15s,visibility .15s}.speed-popup.open{opacity:1;visibility:visible;transform:translateY(0)}.speed-popup-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.speed-popup-row label:first-child{font-size:.8125rem;color:var(--text-secondary);flex-shrink:0}.speed-popup-row input[type=range]{flex:1;height:4px;background:var(--overlay-white-10);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.speed-popup-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent-blue);border-radius:50%;cursor:pointer}.speed-popup-row input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--accent-blue);border:none;border-radius:50%;cursor:pointer}#speed-value{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);min-width:24px;text-align:right}.icon-muted.hidden,.icon-unmuted.hidden,.icon-expand.hidden,.icon-compress.hidden{display:none}.control-btn.fullscreen-active{color:var(--accent-blue);border-color:var(--accent-blue-border-light)}.control-btn.fullscreen-active:hover{background:var(--accent-blue-bg);color:var(--accent-blue);border-color:var(--accent-blue-border)}main{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.emulator-section{display:flex;align-items:center;justify-content:center}#monitor-frame{display:none}#screen{display:block;image-rendering:pixelated;image-rendering:crisp-edges;background:#000;outline:none}#screen:focus{outline:none}#loading{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-secondary);font-size:16px;z-index:3000}#loading.hidden{display:none}.debug-window{position:fixed;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-window);display:flex;flex-direction:column;overflow:hidden;z-index:1000}.debug-window.hidden{display:none}.debug-window.dragging,.debug-window.resizing{-webkit-user-select:none;user-select:none}.debug-window.focused{border-color:var(--accent-blue-border-light);box-shadow:var(--shadow-window-focused)}.debug-window-header{display:flex;justify-content:space-between;align-items:center;padding:3px 8px;background:var(--glass-bg-header);border-bottom:1px solid var(--control-border);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:move;min-height:24px}.debug-window-title{font-family:var(--font-sans);font-size:.6875rem;font-weight:600;color:var(--text-primary);line-height:1}.debug-window-close{background:none;border:none;color:var(--text-muted);font-size:.8125rem;cursor:pointer;padding:1px 4px;line-height:1;border-radius:var(--radius-sm);opacity:.6;transition:all .15s}.debug-window-close:hover{opacity:1;color:var(--accent-red)}.debug-window-content{flex:1;min-height:0;padding:8px;overflow:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);line-height:1.4}.debug-resize-handle{position:absolute;background:transparent;z-index:10}.debug-resize-handle.n{top:-3px;left:10px;right:10px;height:6px;cursor:n-resize}.debug-resize-handle.s{bottom:-3px;left:10px;right:10px;height:6px;cursor:s-resize}.debug-resize-handle.e{top:10px;right:-3px;bottom:10px;width:6px;cursor:e-resize}.debug-resize-handle.w{top:10px;left:-3px;bottom:10px;width:6px;cursor:w-resize}.debug-resize-handle.ne{top:-3px;right:-3px;width:12px;height:12px;cursor:ne-resize}.debug-resize-handle.nw{top:-3px;left:-3px;width:12px;height:12px;cursor:nw-resize}.debug-resize-handle.se{bottom:-3px;right:-3px;width:12px;height:12px;cursor:se-resize}.debug-resize-handle.sw{bottom:-3px;left:-3px;width:12px;height:12px;cursor:sw-resize}.debug-window-content::-webkit-scrollbar{width:5px;height:5px}.debug-window-content::-webkit-scrollbar-track{background:transparent}.debug-window-content::-webkit-scrollbar-thumb{background:var(--overlay-active);border-radius:3px}.debug-window-content::-webkit-scrollbar-thumb:hover{background:var(--overlay-active)}.debug-window.chromeless{border:none;border-radius:var(--radius-md);box-shadow:none;overflow:hidden}.debug-window.chromeless .debug-window-header,.debug-window.chromeless .debug-resize-handle{display:none}.debug-window.chromeless .screen-window-lock{opacity:0;background:var(--glass-bg);border-color:var(--glass-border);transition:opacity .2s}.debug-window.chromeless:hover .screen-window-lock{opacity:.7}.debug-window.chromeless .screen-window-lock:hover{opacity:1}#screen-window .debug-window-content{padding:0;overflow:hidden;background:#000}.screen-window-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.screen-window-content #screen{display:block}.screen-window-media{position:absolute;top:3px;right:26px;z-index:10;display:grid;place-items:center;width:18px;height:18px;padding:0;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:.5;transition:opacity .15s,color .15s,background .15s,border-color .15s}.screen-window-media:hover{opacity:1;color:var(--accent-blue);background:var(--overlay-hover);border-color:var(--overlay-white-10)}.debug-window.chromeless .screen-window-media{opacity:0;background:var(--glass-bg);border-color:var(--glass-border);transition:opacity .2s}.debug-window.chromeless:hover .screen-window-media{opacity:.7}.debug-window.chromeless .screen-window-media:hover{opacity:1}.screen-window-lock{position:absolute;top:3px;right:4px;z-index:10;display:grid;place-items:center;width:18px;height:18px;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:.5;transition:opacity .15s,color .15s,background .15s,border-color .15s}.screen-window-lock:hover{opacity:1;color:var(--text-primary);background:var(--overlay-hover);border-color:var(--overlay-white-10)}.screen-window-lock.active{opacity:1;color:var(--accent-green);background:var(--accent-green-bg);border-color:var(--accent-green-border-light)}.screen-window-lock.active:hover{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border)}.screen-window-lock svg{grid-area:1 / 1;transition:opacity .15s}.screen-window-lock .lock-icon-expand{opacity:1}.screen-window-lock .lock-icon-compress,.screen-window-lock.active .lock-icon-expand{opacity:0}.screen-window-lock.active .lock-icon-compress{opacity:1}.display-settings-content{display:flex;flex-direction:column;gap:8px;font-family:var(--font-sans);font-size:11px;overflow:hidden}.display-settings-content .settings-section{background:var(--input-bg-dark);border-radius:var(--radius-sm);padding:6px 8px}.display-settings-content .settings-section-title{font-family:var(--font-sans);font-size:9px;font-weight:600;color:var(--accent-blue);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;padding-bottom:3px;border-bottom:1px solid var(--accent-blue-bg)}.display-settings-content .setting-row{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:6px;padding:2px 0}.display-settings-content .setting-row label{font-family:var(--font-sans);font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-settings-content input[type=range]{width:100%;min-width:0;height:4px;background:var(--input-bg-deeper);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.display-settings-content input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--accent-blue);border-radius:50%;cursor:pointer;transition:all .1s}.display-settings-content input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-green);transform:scale(1.1)}.display-settings-content input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--accent-blue);border:none;border-radius:50%;cursor:pointer}.display-settings-content input[type=range]::-moz-range-track{height:4px;background:var(--input-bg-deeper);border-radius:2px}.display-settings-content .setting-value{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);text-align:right}.display-settings-content input[type=color]{grid-column:2 / 4;width:100%;height:22px;padding:1px 2px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--input-bg);cursor:pointer}.display-settings-content input[type=color]::-webkit-color-swatch-wrapper{padding:1px}.display-settings-content input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.display-settings-content .toggle-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.display-settings-content .toggle-row>label:first-child{font-family:var(--font-sans);font-size:10px;color:var(--text-secondary)}.display-settings-content .toggle{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0}.display-settings-content .toggle input{opacity:0;width:0;height:0}.display-settings-content .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--input-bg-deeper);border-radius:18px;transition:all .2s}.display-settings-content .toggle-slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:all .2s}.display-settings-content .toggle input:checked+.toggle-slider{background:var(--accent-green-bg)}.display-settings-content .toggle input:checked+.toggle-slider:before{transform:translate(14px);background:var(--accent-green)}.display-settings-content .settings-actions{padding-top:8px;border-top:1px solid var(--glass-border)}.display-settings-content .settings-btn{width:100%;padding:6px 12px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:var(--glass-bg-header);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .1s}.display-settings-content .settings-btn:hover{background:var(--accent-red-bg-strong);border-color:var(--accent-red-border);color:var(--accent-red)}.theme-selector-row{display:flex;align-items:center;justify-content:space-between;cursor:default}.theme-selector-row:hover{background:transparent}.theme-btn-group{display:flex;gap:2px}.theme-btn{display:flex;align-items:center;justify-content:center;width:28px;height:24px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s;padding:0}.theme-btn svg{width:14px;height:14px}.theme-btn:hover{color:var(--text-primary);background:var(--overlay-hover)}.theme-btn.active{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border-light);color:var(--accent-blue)}.message-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000080;opacity:0;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.message-panel-backdrop-in{animation:message-panel-fade-in .15s ease forwards}.message-panel-backdrop-out{animation:message-panel-fade-out .12s ease forwards}.message-panel{background:var(--glass-bg-solid);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:24px 28px;min-width:300px;max-width:440px;opacity:0;transform:scale(.95) translateY(-8px)}.message-panel-in{animation:message-panel-enter .15s ease forwards}.message-panel-out{animation:message-panel-exit .12s ease forwards}.message-panel-text{color:var(--text-primary);font-family:var(--font-sans);font-size:13px;line-height:1.5;margin-bottom:20px}.message-panel-buttons{display:flex;justify-content:flex-end;gap:8px}.message-panel-btn{font-family:var(--font-sans);font-size:12px;padding:6px 16px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--control-bg);color:var(--text-primary);cursor:pointer;transition:all .15s}.message-panel-btn:hover{background:var(--overlay-hover);border-color:var(--text-muted)}.message-panel-btn-primary{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border);color:var(--accent-blue)}.message-panel-btn-primary:hover{background:var(--accent-blue-bg-stronger);border-color:var(--accent-blue-border-light)}@keyframes message-panel-fade-in{to{opacity:1}}@keyframes message-panel-fade-out{0%{opacity:1}to{opacity:0}}@keyframes message-panel-enter{to{opacity:1;transform:scale(1) translateY(0)}}@keyframes message-panel-exit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-8px)}}:root{--mobile-header-height: 40px;--mobile-keyboard-height: 220px;--mobile-dpad-size: 120px;--mobile-fire-size: 64px;--mobile-sheet-radius: 16px}.mobile-only{display:none!important}html[data-mobile=true] .mobile-only{display:flex!important}html[data-mobile=true] .mobile-only-block{display:block!important}html[data-mobile=true] .desktop-only{display:none!important}html[data-mobile=true] header{height:var(--mobile-header-height);padding:4px 8px}html[data-mobile=true] .header-logo{font-size:18px;height:var(--mobile-header-height)}html[data-mobile=true] .version-chip,html[data-mobile=true] .header-site-link,html[data-mobile=true] .header-left>.header-divider:last-of-type{display:none}html[data-mobile=true] #app{height:100dvh;overflow:hidden}html[data-mobile=true] main{flex:1;flex-direction:column;overflow:hidden}html[data-mobile=true] body{touch-action:manipulation}#mobile-overlays{flex-direction:column;flex-shrink:0}.debug-window.mobile-screen{position:relative!important;left:0!important;top:0!important;width:100%!important;border:none;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:#000;flex-shrink:0;z-index:auto}.debug-window.mobile-screen .debug-window-header,.debug-window.mobile-screen .debug-resize-handle,.debug-window.mobile-screen .screen-window-lock,.debug-window.mobile-screen .screen-window-media{display:none}html[data-mobile=true][data-orientation=portrait] .debug-window.mobile-screen{height:auto!important}html[data-mobile=true][data-orientation=landscape] .debug-window.mobile-screen{flex:1}html[data-mobile=true][data-soft-keyboard=open] .debug-window.mobile-screen{max-height:35vh}.vkbd{display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--bg-secondary);border-top:1px solid var(--border-color);touch-action:none;user-select:none;-webkit-user-select:none}.vkbd-row{display:flex;gap:2px;justify-content:center}.vkbd-key{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:44px;max-width:10%;background:var(--control-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:background .05s;position:relative;overflow:hidden}.vkbd-key.pressed{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border);color:var(--accent-blue)}.vkbd-key.shift-key{flex:1.5;max-width:15%;font-size:9px}.vkbd-key.shift-key.shift-active{background:var(--accent-red-bg-strong);border-color:var(--accent-red-border);color:var(--accent-red)}.vkbd-key .vkbd-label{font-size:12px;line-height:1}.vkbd-key .vkbd-keyword{font-size:7px;line-height:1;margin-top:2px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 1px}.vkbd-keyword.kw-red{color:var(--accent-red)}.vkbd-keyword.kw-green{color:var(--accent-green)}.vkbd-keyword.kw-blue{color:var(--accent-blue)}.vkbd-keyword.kw-purple{color:var(--accent-purple)}.vkbd-keyword.kw-white{color:var(--text-primary)}html[data-mobile=true][data-soft-keyboard=open] .vkbd{display:none}.gamepad-overlay{position:fixed;bottom:0;left:0;right:0;height:180px;pointer-events:none;z-index:1700}.gamepad-dpad{position:absolute;bottom:20px;left:20px;width:var(--mobile-dpad-size);height:var(--mobile-dpad-size);pointer-events:auto;touch-action:none;opacity:.5}.gamepad-dpad svg{width:100%;height:100%}.gamepad-dpad .dpad-direction{fill:var(--control-bg);stroke:var(--border-color);stroke-width:1;transition:fill .05s}.gamepad-dpad .dpad-direction.active{fill:var(--accent-blue-bg-stronger);stroke:var(--accent-blue-border)}.gamepad-dpad .dpad-center{fill:var(--bg-secondary);stroke:var(--border-color);stroke-width:1}.gamepad-fire{position:absolute;bottom:40px;right:30px;width:var(--mobile-fire-size);height:var(--mobile-fire-size);border-radius:50%;background:var(--accent-red-bg-strong);border:2px solid var(--accent-red-border);pointer-events:auto;touch-action:none;opacity:.5;display:flex;align-items:center;justify-content:center;color:var(--accent-red);font-family:var(--font-sans);font-size:12px;font-weight:700}.gamepad-fire.active{opacity:.8;background:var(--accent-red-bg-stronger)}.mobile-menu{position:fixed;top:var(--mobile-header-height);left:0;right:0;max-height:0;overflow:hidden;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:1900;transition:max-height .3s ease}.mobile-menu.open{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-menu-section{padding:8px 0;border-bottom:1px solid var(--glass-border)}.mobile-menu-section:last-child{border-bottom:none}.mobile-menu-section-label{padding:4px 16px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.mobile-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:8px 16px;background:none;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:14px;text-align:left;cursor:pointer;transition:background .1s}.mobile-menu-item:active{background:var(--overlay-active)}.mobile-menu-item .menu-check{display:inline-block;width:20px;font-size:14px;color:var(--accent-green);visibility:hidden;flex-shrink:0}.mobile-menu-item.active .menu-check{visibility:visible}.mobile-menu-item .menu-item-label{flex:1}.mobile-menu .theme-btn-group{display:flex;gap:4px}.mobile-menu .theme-btn{width:36px;height:36px}.mobile-menu .theme-btn svg{width:18px;height:18px}.mobile-menu-toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:8px 16px}.mobile-menu-toggle-row label{font-size:14px;color:var(--text-primary)}.mobile-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;top:var(--mobile-header-height);background:#0000004d;z-index:1890;opacity:0;transition:opacity .3s ease;pointer-events:none}.mobile-menu-backdrop.visible{opacity:1;pointer-events:auto}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1800;opacity:0;transition:opacity .3s ease;pointer-events:none}.bottom-sheet-overlay.visible{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;height:85vh;background:var(--glass-bg-solid);border-top-left-radius:var(--mobile-sheet-radius);border-top-right-radius:var(--mobile-sheet-radius);z-index:1850;transform:translateY(100%);transition:transform .3s ease;display:flex;flex-direction:column}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--glass-border);flex-shrink:0}.bottom-sheet-handle{position:absolute;top:6px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--text-muted);border-radius:2px;opacity:.5}.bottom-sheet-title{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--text-primary)}.bottom-sheet-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);line-height:1}.bottom-sheet-close:active{background:var(--overlay-active)}.bottom-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px}.bottom-sheet-body .debug-window-content{overflow:auto;height:100%}.mobile-controls-toggle{display:flex;gap:4px;padding:4px 16px 8px}.mobile-controls-toggle button{flex:1;min-height:36px;background:var(--control-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.mobile-controls-toggle button.active{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border);color:var(--accent-blue)}.toast-container{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:9500;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{background:var(--accent-blue-bg-stronger);border:1px solid var(--accent-blue-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg),0 0 12px var(--accent-blue-bg-stronger);color:var(--accent-blue);font-family:var(--font-sans);font-size:12px;font-weight:500;padding:8px 16px;white-space:nowrap;opacity:0;transform:translateY(-8px);pointer-events:auto;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.toast-in{animation:toast-enter .2s ease forwards}.toast-out{animation:toast-exit .15s ease forwards}@keyframes toast-enter{to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.cpu-dbg{display:flex;flex-direction:column;height:100%;min-height:0}.cpu-dbg-toolbar{display:flex;align-items:center;gap:6px;padding:4px 0 5px;border-bottom:1px solid var(--separator-bg);margin-bottom:6px}.cpu-dbg-btn-group{display:flex;gap:2px}.cpu-dbg-btn{display:inline-flex;align-items:center;gap:3px;padding:4px 8px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:var(--glass-bg-header);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.cpu-dbg-btn:hover{background:var(--glass-border);color:var(--text-primary)}.cpu-dbg-btn:active{transform:scale(.98)}.cpu-btn-run-pause{min-width:60px;height:24px;justify-content:center}.cpu-btn-run-pause[data-state=pause]{background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red)}.cpu-btn-run-pause[data-state=pause]:hover{background:var(--accent-red-bg-stronger);border-color:var(--accent-red-border);color:var(--accent-red)}.cpu-btn-run-pause[data-state=run]{background:var(--accent-green-bg);border-color:var(--accent-green-border-light);color:var(--accent-green)}.cpu-btn-run-pause[data-state=run]:hover{background:var(--accent-green-bg-stronger);border-color:var(--accent-green-border);color:var(--accent-green)}.cpu-btn-step{background:var(--accent-orange-bg);border-color:var(--accent-orange-border-light);color:var(--accent-orange)}.cpu-btn-step:hover{background:var(--accent-orange-bg-stronger);border-color:var(--accent-orange-border-strong);color:var(--accent-orange)}.cpu-dbg-sep{width:1px;height:16px;background:var(--separator-bg);flex-shrink:0}.cpu-dbg-status-bar{display:flex;align-items:center;justify-content:space-between;padding:3px 6px;background:var(--input-bg);border:1px solid var(--glass-border-subtle);border-radius:4px;margin-bottom:4px}.cpu-dbg-status-bar-left{display:flex;align-items:center;gap:6px}.cpu-dbg-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-orange);flex-shrink:0}.cpu-dbg-status-bar[data-state=running] .cpu-dbg-status-dot{background:var(--accent-green);animation:cpu-status-dot-pulse 1.5s ease-in-out infinite}.cpu-dbg-status-bar[data-state=paused] .cpu-dbg-status-dot{animation:none}.cpu-dbg-status-bar[data-state=off] .cpu-dbg-status-dot{background:var(--text-muted);animation:none}@keyframes cpu-status-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.cpu-dbg-status-bar[data-state=off] .cpu-dbg-status-text{color:var(--text-muted)}.cpu-dbg-status-text{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--accent-orange)}.cpu-dbg-status-text.running{color:var(--accent-green)}.cpu-dbg-section{display:flex;align-items:center;gap:6px;padding:2px 6px;border:1px solid var(--glass-border-subtle);border-radius:3px;background:var(--input-bg);margin-bottom:2px}.cpu-dbg-section-label{font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--text-muted);flex-shrink:0;min-width:30px}.cpu-dbg-regs{display:flex;gap:2px;flex:1}.cpu-dbg-reg{display:flex;align-items:center;gap:3px;padding:2px 5px;background:var(--input-bg-deep);border-radius:3px;flex:1;min-width:0}.reg-label{font-size:9px;font-weight:600;color:var(--text-muted);flex-shrink:0}.reg-value{font-size:11px;font-weight:600;color:var(--accent-green);font-family:var(--font-mono)}.reg-value.changed{animation:reg-flash .5s ease-out forwards}.reg-value[style*=cursor]{border-radius:2px;transition:background .1s}.reg-value[style*=cursor]:hover{background:var(--accent-blue-bg)}@keyframes reg-flash{0%{color:var(--reg-flash-color);background:var(--reg-flash-bg)}to{color:var(--accent-green);background:transparent}}.cpu-flags{display:flex;gap:2px;flex:1}.cpu-flags .flag{width:18px;height:16px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;background:var(--input-bg-deeper);border:1px solid transparent;border-radius:3px;color:var(--text-muted);transition:all .12s}.cpu-flags .flag.active{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border);color:var(--accent-green);box-shadow:0 0 6px var(--flag-active-glow)}.cpu-dbg-timing-row{display:flex;align-items:center;gap:6px;flex:1}.cpu-dbg-cycles{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary)}.cpu-dbg-cycles .meta-dim{color:var(--text-muted);font-size:9px;font-weight:600}.irq-indicator{font-family:var(--font-mono);font-size:8px;font-weight:700;padding:1px 4px;border-radius:2px;background:var(--badge-dim-bg);border:1px solid var(--glass-border-subtle);color:var(--text-muted);transition:all .15s}.irq-indicator.active{background:var(--accent-red-bg-stronger);border-color:var(--accent-red-border);color:var(--accent-red)}.cpu-dbg-disasm{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;margin-bottom:4px}.cpu-dbg-disasm-bar{display:flex;gap:3px;margin-bottom:4px;flex-shrink:0}.cpu-dbg-disasm-bar input{flex:1;padding:3px 6px;font-family:var(--font-mono);font-size:10px;background:var(--input-bg-deeper);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.cpu-dbg-disasm-bar input:focus{border-color:var(--accent-blue-border)}.cpu-dbg-bar-btn{padding:3px 7px;font-family:var(--font-mono);font-size:9px;font-weight:500;background:var(--control-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-secondary);cursor:pointer;transition:all .1s}.cpu-dbg-bar-btn:hover{background:var(--glass-border);color:var(--text-primary)}.cpu-disasm-view{background:var(--input-bg-dark);border:1px solid var(--glass-border-subtle);border-radius:3px;padding:2px 0;flex:1;overflow-y:auto;min-height:120px;scrollbar-width:none}.cpu-disasm-view::-webkit-scrollbar{display:none}.cpu-disasm-view.paused{scrollbar-width:thin}.cpu-disasm-view.paused::-webkit-scrollbar{display:block;width:4px}.cpu-disasm-view.paused::-webkit-scrollbar-track{background:transparent}.cpu-disasm-view.paused::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:2px}.cpu-disasm-line{display:flex;align-items:center;padding:1px 6px;cursor:pointer;border-left:2px solid transparent;transition:background .08s;-webkit-user-select:none;user-select:none;font-size:11px;line-height:1.5}.cpu-disasm-line>*{pointer-events:none}.cpu-disasm-line:hover{background:var(--overlay-subtle)}.cpu-disasm-line.current{background:var(--accent-blue-bg);border-left-color:var(--accent-blue)}.cpu-disasm-line.breakpoint{background:var(--accent-red-bg);border-left-color:var(--accent-red)}.cpu-disasm-line.current.breakpoint{background:linear-gradient(90deg,var(--accent-blue-bg) 0%,var(--accent-red-bg) 100%);border-left-color:var(--accent-red)}.cpu-disasm-gutter{min-width:14px;width:14px;text-align:center;font-size:8px;flex-shrink:0}.cpu-disasm-gutter .bp-dot{display:inline-block;width:8px;height:8px;background:var(--accent-red);border-radius:50%;box-shadow:0 0 4px var(--accent-red-bg-stronger)}.cpu-disasm-gutter .pc-arrow{color:var(--accent-blue);font-size:9px;text-shadow:0 0 3px var(--accent-blue-bg-stronger)}.cpu-disasm-header{display:flex;align-items:center;gap:6px;padding:2px 4px 2px 2px;border-bottom:1px solid var(--separator-bg);font-size:9px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.cpu-disasm-hdr-gutter{min-width:14px;width:14px}.cpu-disasm-hdr-ts{min-width:28px;text-align:left}.cpu-disasm-hdr-addr{min-width:36px}.cpu-disasm-hdr-bytes{min-width:68px}.cpu-disasm-hdr-mnemonic{flex:1}.cpu-disasm-addr{color:var(--accent-blue);min-width:36px;font-size:10px}.cpu-disasm-line.current .cpu-disasm-addr{color:var(--text-primary);font-weight:600}.cpu-disasm-bytes{color:var(--accent-purple);min-width:68px;font-size:10px}.cpu-disasm-mnemonic{color:var(--text-primary);font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpu-disasm-tstates{color:var(--accent-orange);font-size:9px;min-width:28px;text-align:left;flex-shrink:0}.cpu-disasm-tstates.contended,.disasm-flow{color:var(--accent-red);font-weight:600}.disasm-load{color:var(--accent-blue)}.disasm-alu{color:var(--accent-green)}.disasm-ctrl{color:var(--accent-orange);font-weight:600}.disasm-io{color:var(--accent-purple)}.disasm-op{color:var(--text-primary)}.disasm-operands{color:var(--text-secondary)}.disasm-num{color:var(--accent-orange)}.cpu-disasm-line.current .disasm-flow,.cpu-disasm-line.current .disasm-load,.cpu-disasm-line.current .disasm-alu,.cpu-disasm-line.current .disasm-ctrl,.cpu-disasm-line.current .disasm-io,.cpu-disasm-line.current .disasm-op,.cpu-disasm-line.current .disasm-operands,.cpu-disasm-line.current .disasm-num{filter:brightness(1.3)}.cpu-dbg-tabs{display:flex;flex-direction:column;min-height:140px;overflow:hidden;border-top:1px solid var(--control-border)}.cpu-dbg-tab-bar{display:flex;gap:0;flex-shrink:0}.cpu-dbg-tab{padding:5px 12px;font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;transition:all .12s;display:flex;align-items:center;gap:5px}.cpu-dbg-tab:hover{color:var(--text-secondary);background:var(--overlay-white-02)}.cpu-dbg-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.cpu-dbg-tab-count{font-size:8px;font-weight:700;min-width:14px;height:14px;line-height:14px;text-align:center;border-radius:7px;background:var(--badge-dim-bg);color:var(--text-muted);display:inline-block}.cpu-dbg-tab-count.has-items{background:var(--accent-blue-bg-strong);color:var(--accent-blue)}.cpu-dbg-tab-content{display:none;flex-direction:column;flex:1;min-height:0;overflow:hidden}.cpu-dbg-tab-content.active{display:flex}.cpu-dbg-tab-toolbar{display:flex;gap:3px;padding:4px 0;flex-shrink:0}.cpu-dbg-tab-toolbar input{flex:1;min-width:0;padding:2px 5px;font-family:var(--font-mono);font-size:10px;background:var(--input-bg-deep);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.cpu-dbg-tab-toolbar input:focus{border-color:var(--accent-blue-border)}.cpu-dbg-add-btn{padding:2px 7px;font-family:var(--font-mono);font-size:11px;font-weight:600;background:var(--control-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-secondary);cursor:pointer;transition:all .1s;flex-shrink:0;line-height:1}.cpu-dbg-add-btn:hover{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border);color:var(--accent-green)}.cpu-dbg-empty-state{padding:12px 8px;text-align:center;color:var(--text-muted);font-size:10px;font-style:italic;opacity:.7}.cpu-bp-list{flex:1;overflow-y:auto}.cpu-bp-item{display:flex;align-items:center;gap:4px;padding:4px;font-size:10px;border-radius:3px;cursor:default}.cpu-bp-item:hover{background:var(--overlay-faint)}.cpu-bp-item .bp-addr{color:var(--accent-red);flex-shrink:0;font-family:var(--font-mono)}.cpu-bp-item .bp-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 4px;margin-left:auto;flex-shrink:0;opacity:0;transition:opacity .1s,color .1s;line-height:1}.cpu-bp-item:hover .bp-remove{opacity:.6}.cpu-bp-item .bp-remove:hover{opacity:1;color:var(--accent-red)}.cpu-dbg-reg-edit{width:40px;background:var(--input-bg-deeper);border:1px solid var(--accent-blue);border-radius:2px;color:var(--accent-green);font-family:var(--font-mono);font-size:13px;font-weight:600;padding:0 2px;outline:none}.cpu-dbg-beam-row{display:flex;align-items:center;gap:8px;flex:1}.beam-item{display:flex;align-items:center;gap:3px;font-family:var(--font-mono)}.beam-label{font-size:9px;font-weight:600;color:var(--text-muted)}.beam-value{font-size:10px;font-weight:600;color:var(--text-secondary)}.beam-badge{font-family:var(--font-mono);font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.04em;margin-left:auto;border:1px solid transparent;transition:all .15s}.beam-badge-visible{background:var(--accent-green-bg);border-color:var(--accent-green-border-light);color:var(--accent-green)}.beam-badge-hblank{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.beam-badge-vbl{background:var(--accent-orange-bg);border-color:var(--accent-orange-border-light);color:var(--accent-orange)}.beam-badge-idle{background:var(--badge-dim-bg);border-color:var(--glass-border-subtle);color:var(--text-muted)}.beam-mode-select{padding:2px 4px;font-family:var(--font-mono);font-size:10px;background:var(--input-bg-deep);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.beam-input{width:60px;padding:2px 5px;font-family:var(--font-mono);font-size:10px;background:var(--input-bg-deep);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.beam-input:focus{border-color:var(--accent-blue-border)}.cpu-beam-list{flex:1;overflow-y:auto}.cpu-beam-item{display:flex;align-items:center;gap:4px;padding:4px;font-size:10px;border-radius:3px;cursor:default}.cpu-beam-item:hover{background:var(--overlay-faint)}.cpu-beam-item.hit{background:var(--accent-red-bg);animation:beam-hit-pulse .6s ease-in-out 2}@keyframes beam-hit-pulse{50%{background:var(--accent-red-bg-stronger)}}.beam-enable input{margin:0;cursor:pointer}.beam-type{font-family:var(--font-mono);font-size:8px;font-weight:700;min-width:24px;text-align:center;padding:1px 4px;border-radius:2px}.beam-type-vbl{background:var(--accent-red-bg);color:var(--accent-red)}.beam-type-hbl{background:var(--accent-orange-bg);color:var(--accent-orange)}.beam-type-scan{background:var(--accent-blue-bg);color:var(--accent-blue)}.beam-type-hts{background:var(--accent-green-bg);color:var(--accent-green)}.beam-type-sh{background:var(--accent-purple-bg);color:var(--accent-purple)}.beam-detail{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary)}.beam-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 4px;margin-left:auto;flex-shrink:0;opacity:0;transition:opacity .1s,color .1s;line-height:1}.cpu-beam-item:hover .beam-remove{opacity:.6}.beam-remove:hover{opacity:1;color:var(--accent-red)}.rule-builder-content{display:flex;flex-direction:column;height:100%;overflow:hidden;font-size:12px}.rule-builder-header{padding:8px 12px;border-bottom:1px solid var(--glass-border);background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;flex-shrink:0}.rule-builder-header .rule-label{color:var(--text-primary);font-weight:600}.rule-builder-tree{flex:1;overflow-y:auto;padding:8px}.rule-builder-preview{padding:8px 12px;border-top:1px solid var(--glass-border);background:var(--bg-secondary);flex-shrink:0}.rule-builder-preview-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:4px}.rule-builder-preview-expr{font-family:monospace;font-size:11px;color:var(--accent-blue);word-break:break-all;min-height:16px;padding:4px 6px;background:var(--bg-primary);border:1px solid var(--glass-border);border-radius:3px}.rule-builder-footer{display:flex;justify-content:flex-end;gap:6px;padding:8px 12px;border-top:1px solid var(--glass-border);background:var(--bg-secondary);flex-shrink:0}.rule-builder-footer button{padding:4px 12px;font-size:11px;border:1px solid var(--glass-border);border-radius:3px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer}.rule-builder-footer button:hover{background:var(--overlay-hover)}.rule-builder-footer button.primary{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--text-primary)}.rule-builder-footer button.primary:hover{background:var(--accent-blue-bg-strong)}.rule-group{border:1px solid var(--glass-border);border-radius:4px;padding:6px;margin:4px 0;background:var(--bg-primary)}.rule-group[data-depth="0"]{border-left:3px solid var(--accent-blue)}.rule-group[data-depth="1"]{border-left:3px solid var(--accent-purple)}.rule-group[data-depth="2"]{border-left:3px solid var(--accent-orange)}.rule-group[data-depth="3"]{border-left:3px solid var(--accent-green)}.rule-group[data-depth="4"]{border-left:3px solid var(--accent-red)}.rule-group-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.rule-group-logic{display:inline-flex;border:1px solid var(--glass-border);border-radius:3px;overflow:hidden}.rule-group-logic button{padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;border:none;background:var(--bg-tertiary);color:var(--text-tertiary);cursor:pointer}.rule-group-logic button.active{background:var(--accent-blue-bg);color:var(--text-primary)}.rule-group-logic button:hover:not(.active){background:var(--overlay-hover)}.rule-group-actions{margin-left:auto;display:flex;gap:4px}.rule-group-actions button{padding:2px 6px;font-size:10px;border:1px solid var(--glass-border);border-radius:3px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer}.rule-group-actions button:hover{background:var(--overlay-hover);color:var(--text-primary)}.rule-group-actions button.remove{color:var(--accent-red)}.rule-group-actions button.remove:hover{background:var(--accent-red-bg)}.rule-row{display:flex;align-items:center;gap:4px;padding:3px 4px;margin:2px 0;border-radius:3px}.rule-row:hover{background:var(--overlay-hover)}.rule-row select,.rule-row input{padding:2px 4px;font-size:11px;border:1px solid var(--glass-border);border-radius:3px;background:var(--input-bg);color:var(--text-primary)}.rule-row select{min-width:80px}.rule-row input{width:70px;font-family:monospace}.rule-row input.wide{width:120px}.rule-row .rule-remove{padding:2px 6px;font-size:10px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-tertiary);cursor:pointer;flex-shrink:0}.rule-row .rule-remove:hover{color:var(--accent-red);background:var(--accent-red-bg);border-color:var(--accent-red-border)}.rule-subject-label{font-size:10px;color:var(--text-tertiary);min-width:24px;text-align:right}.bas-gutter-line.has-condition:after{content:"?";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:8px;font-weight:700;color:var(--accent-orange);pointer-events:none}.cpu-bp-item .bp-condition-badge{font-size:9px;color:var(--accent-orange);margin-left:4px}.rule-context-menu{position:fixed;z-index:10000;min-width:160px;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:4px;box-shadow:var(--shadow-window);padding:4px 0;font-size:12px}.rule-context-menu-item{padding:6px 12px;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;gap:8px}.rule-context-menu-item:hover{background:var(--overlay-hover)}.rule-context-menu-item.danger{color:var(--accent-red)}.rule-context-menu-item.danger:hover{background:var(--accent-red-bg)}.rule-context-menu-separator{height:1px;background:var(--glass-border);margin:4px 0}.stack-info{display:flex;align-items:center;gap:12px;padding:6px 8px;border-bottom:1px solid var(--separator-bg)}.stack-sp-label,.stack-depth-label{font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--text-muted)}.stack-sp-value{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--accent-green)}.stack-depth-value{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-primary)}.stack-header{display:flex;gap:12px;padding:3px 8px;background:var(--input-bg);border-bottom:1px solid var(--glass-border-subtle);font-family:var(--font-mono);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.stack-col-addr{min-width:42px}.stack-col-value{min-width:28px}.stack-col-info{flex:1}.stack-content{flex:1;overflow-y:auto;font-family:var(--font-mono)}.stack-entry{display:flex;gap:12px;padding:2px 8px;font-size:11px;line-height:1.5;border-left:2px solid transparent;transition:background .08s}.stack-entry:hover{background:var(--accent-blue-bg)}.stack-entry.stack-top{background:var(--accent-green-bg);border-left-color:var(--accent-green)}.stack-entry.stack-top:hover{background:var(--accent-green-bg-stronger)}.stack-entry.return-addr-low,.stack-entry.return-addr-high{background:var(--accent-purple-bg)}.stack-entry.return-addr-low:hover,.stack-entry.return-addr-high:hover{background:var(--accent-purple-bg-strong)}.stack-entry.stack-top.return-addr-low{background:linear-gradient(90deg,var(--accent-green-bg) 0%,var(--accent-purple-bg) 100%);border-left-color:var(--accent-green)}.stack-addr{min-width:42px;color:var(--accent-purple);font-size:10px}.stack-value{min-width:28px;color:var(--text-secondary);font-size:11px}.stack-info-text{flex:1;color:var(--text-muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stack-entry.return-addr-low .stack-info-text{color:var(--accent-blue)}.stack-empty{padding:20px 8px;text-align:center;color:var(--text-muted);font-size:10px;font-style:italic;opacity:.7}.tape-player{display:flex;flex-direction:column;height:100%;min-height:0}.tape-filename-banner{display:flex;align-items:center;gap:6px;padding:5px 8px;margin-bottom:6px;background:linear-gradient(135deg,var(--accent-blue-bg-strong) 0%,var(--accent-purple-bg-strong) 100%);border:1px solid var(--accent-blue-border-light);border-radius:4px}.tape-filename-banner.hidden{display:none}.tape-filename-banner.error{background:linear-gradient(135deg,var(--accent-red-bg) 0%,var(--accent-orange-bg-strong) 100%);border-color:var(--accent-red-border)}.tape-format-badge{font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.05em;padding:2px 5px;border-radius:3px;flex-shrink:0;text-align:center;min-width:28px}.tape-format-badge.tap{background:var(--accent-green-bg-strong);border:1px solid var(--accent-green-border-light);color:var(--accent-green)}.tape-format-badge.tzx{background:var(--accent-purple-bg-strong);border:1px solid var(--accent-purple-bg-strong);color:var(--accent-purple)}.tape-format-badge.error{background:var(--accent-red-bg);border:1px solid var(--accent-red-border);color:var(--accent-red)}.tape-filename-text{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;cursor:default}.tape-filename-input{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-primary);background:var(--input-bg, var(--bg-secondary));border:1px solid var(--accent-blue-border);border-radius:3px;padding:0 4px;outline:none;width:100%;letter-spacing:.02em;box-sizing:border-box}.tape-filename-banner.error .tape-filename-text{color:var(--accent-red);font-weight:500;font-size:10px}.tape-cassette-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-muted);-webkit-user-select:none;user-select:none;transition:color .15s}.tape-cassette-toggle:hover{color:var(--text-secondary)}.tape-cassette-chevron{transition:transform .2s ease;flex-shrink:0}.tape-cassette-toggle.open .tape-cassette-chevron{transform:rotate(90deg)}.tape-cassette-vis{position:relative;margin-bottom:6px;border-radius:4px;overflow:hidden;background:var(--input-bg-dark);border:1px solid var(--glass-border-subtle)}.tape-cassette-vis.hidden{display:none}.tape-cassette-img{display:block;width:100%;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none}.tape-empty-deck{position:relative}.tape-empty-deck+.tape-cassette-img{position:absolute;top:0;left:0;width:100%;height:100%}.tape-cassette-label{position:absolute;left:16.5%;top:15.1%;width:73.5%;height:14.3%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:clamp(6px,2.5vw,12px);font-weight:700;color:#333;text-align:center;letter-spacing:.05em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4%;pointer-events:none}#deck-spindle-left,#spindle-left-filled,#spindle-left-outline{transform-origin:828px 757px}#deck-spindle-right,#spindle-right-filled,#spindle-right-outline{transform-origin:1785px 757px}#deck-spindle-left.spinning,#deck-spindle-right.spinning,#spindle-left-filled.spinning,#spindle-left-outline.spinning,#spindle-right-filled.spinning,#spindle-right-outline.spinning{animation:tape-spindle-rotate 3s linear infinite}#deck-spindle-left.spinning.paused,#deck-spindle-right.spinning.paused,#spindle-left-filled.spinning.paused,#spindle-left-outline.spinning.paused,#spindle-right-filled.spinning.paused,#spindle-right-outline.spinning.paused{animation-play-state:paused}@keyframes tape-spindle-rotate{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes tape-spindle-rewind{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#deck-spindle-left.rewinding,#deck-spindle-right.rewinding,#spindle-left-filled.rewinding,#spindle-left-outline.rewinding,#spindle-right-filled.rewinding,#spindle-right-outline.rewinding{animation:tape-spindle-rewind .4s linear infinite}#deck-spindle-left.fast-forwarding,#deck-spindle-right.fast-forwarding,#spindle-left-filled.fast-forwarding,#spindle-left-outline.fast-forwarding,#spindle-right-filled.fast-forwarding,#spindle-right-outline.fast-forwarding{animation:tape-spindle-rotate .4s linear infinite}.tape-block-list{flex:1;overflow-y:auto;background:var(--input-bg-dark);border:1px solid var(--glass-border-subtle);border-radius:4px;padding:2px 0;margin-bottom:6px;min-height:80px}.tape-block-item{display:flex;align-items:center;gap:6px;padding:4px 8px;font-family:var(--font-mono);font-size:10px;cursor:default;border-left:2px solid transparent;transition:background .08s;position:relative;overflow:hidden}.tape-block-item:hover{background:var(--overlay-subtle)}.tape-block-item.active{background:var(--overlay-subtle);border-left-color:var(--accent-green)}.tape-block-item.recording{border-left-color:var(--accent-red)}.tape-block-progress{position:absolute;top:0;left:0;height:100%;width:0%;background:var(--accent-blue-bg);pointer-events:none;z-index:0}.tape-block-item>*:not(.tape-block-progress){position:relative;z-index:1}.tape-block-index{color:var(--text-muted);min-width:18px;text-align:right;font-size:9px}.tape-block-badge{font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:38px;text-align:center}.tape-block-badge.header{background:var(--accent-green-bg-strong);border:1px solid var(--accent-green-border-light);color:var(--accent-green)}.tape-block-badge.data{background:var(--accent-orange-bg-strong);border:1px solid var(--accent-orange-border-light);color:var(--accent-orange)}.tape-block-name{color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tape-block-size{color:var(--text-muted);font-size:9px;flex-shrink:0}.tape-empty-state{padding:20px 8px;text-align:center;color:var(--text-muted);font-size:10px;font-style:italic;opacity:.7}.tape-info-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-muted);-webkit-user-select:none;user-select:none;transition:color .15s}.tape-info-toggle:hover{color:var(--text-secondary)}.tape-info-chevron{transition:transform .2s ease;flex-shrink:0}.tape-info-toggle.open .tape-info-chevron{transform:rotate(90deg)}.tape-info-panel{border-top:1px solid var(--glass-border-subtle);overflow:hidden;display:flex;flex-direction:column}.tape-info-panel.hidden{display:none}.tape-info-resize-handle{height:4px;cursor:ns-resize;background:transparent;position:relative;flex-shrink:0}.tape-info-resize-handle:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:2px;border-radius:1px;background:var(--glass-border);transition:background .15s}.tape-info-resize-handle:hover:after{background:var(--text-muted)}.tape-info-content{padding:6px 8px;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.tape-info-content::-webkit-scrollbar{width:4px}.tape-info-content::-webkit-scrollbar-track{background:transparent}.tape-info-content::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:2px}.tape-info-stats{display:flex;flex-wrap:wrap;gap:4px}.tape-info-pill{font-family:var(--font-mono);font-size:9px;font-weight:500;padding:2px 6px;border-radius:3px;background:var(--overlay-subtle);color:var(--text-secondary);white-space:nowrap}.tape-info-pill.format{background:var(--accent-blue-bg-strong);color:var(--accent-blue);font-weight:700;letter-spacing:.03em}.tape-info-archive{padding:5px 6px;background:var(--accent-purple-bg);border:1px solid var(--accent-purple-bg-strong);border-radius:4px}.tape-info-title{font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--text-primary);margin-bottom:3px}.tape-info-grid{display:grid;grid-template-columns:auto 1fr;gap:1px 8px}.tape-info-grid-label{font-family:var(--font-sans);font-size:9px;color:var(--text-muted);white-space:nowrap}.tape-info-grid-value{font-family:var(--font-mono);font-size:9px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tape-info-comment{font-family:var(--font-sans);font-size:9px;font-style:italic;color:var(--text-muted);margin-top:2px}.tape-info-headers{display:flex;flex-direction:column;gap:2px}.tape-info-header-entry{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:9px}.tape-info-type-badge{font-size:8px;font-weight:700;padding:1px 4px;border-radius:3px;background:var(--accent-green-bg-strong);border:1px solid var(--accent-green-border-light);color:var(--accent-green);letter-spacing:.03em;flex-shrink:0;min-width:32px;text-align:center}.tape-info-header-detail{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tape-info-detail-dim{color:var(--text-muted)}.tape-transport{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 0;border-top:1px solid var(--separator-bg);margin-bottom:6px}.tape-transport-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--control-border);background:var(--glass-bg-header);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.tape-transport-btn:hover{background:var(--glass-border);color:var(--text-primary)}.tape-transport-btn:active{transform:scale(.95)}.tape-transport-btn:disabled{opacity:.3;cursor:not-allowed}.tape-transport-btn:disabled:hover{background:transparent;color:var(--text-muted)}.tape-transport-btn:disabled:active{transform:none}.tape-transport-btn.play{width:38px;height:38px}.tape-transport-btn.play.playing{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border);color:var(--accent-green)}.tape-transport-btn.record{color:var(--text-muted)}.tape-transport-btn.record.recording{background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red);animation:tape-record-blink 1s ease-in-out infinite}@keyframes tape-record-blink{0%,to{opacity:1}50%{opacity:.5}}.tape-transport-btn svg{width:14px;height:14px}.tape-transport-btn.play svg{width:16px;height:16px}.tape-controls-bar{display:flex;align-items:center;gap:4px;padding:0 0 6px}.tape-load-container{display:flex;flex:1}.tape-load-btn,.tape-save-btn,.tape-eject-btn{padding:4px 10px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:var(--glass-bg-header);border:1px solid var(--control-border);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.tape-load-btn{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none;flex:1}.tape-load-btn:hover{background:var(--glass-border);color:var(--text-primary)}.tape-save-btn,.tape-eject-btn{border-radius:var(--radius-sm)}.tape-speed-switch{display:flex;align-items:center;gap:5px;margin-left:auto}.tape-speed-switch.disabled{opacity:.4;pointer-events:none}.tape-speed-label{display:flex;align-items:center;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;transition:color .15s}.tape-speed-icon{display:block}.tape-speed-switch:not(.disabled):not(.instant) .tape-speed-label-normal{color:var(--accent-green)}.tape-speed-switch:not(.disabled).instant .tape-speed-label-instant{color:var(--accent-green)}.tape-toggle{position:relative;display:inline-block;width:28px;height:14px;flex-shrink:0}.tape-toggle input{opacity:0;width:0;height:0;position:absolute}.tape-toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-green-bg-strong);border:1px solid var(--accent-green-border-light);border-radius:7px;cursor:pointer;transition:all .2s}.tape-toggle-track:before{content:"";position:absolute;height:10px;width:10px;left:1px;top:1px;background:var(--accent-green);border-radius:50%;transition:all .2s}.tape-toggle input:checked+.tape-toggle-track{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border-light)}.tape-toggle input:checked+.tape-toggle-track:before{transform:translate(14px);background:var(--accent-green)}.tape-save-btn:hover:not(:disabled){background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.tape-save-btn:disabled{opacity:.4;cursor:not-allowed}.tape-eject-btn:hover:not(:disabled){background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red)}.tape-eject-btn:disabled{opacity:.4;cursor:not-allowed}.tape-recent-container{position:relative;display:flex}.tape-recent-btn{padding:4px 6px;background:var(--glass-bg-header);border:1px solid var(--control-border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.tape-recent-btn:hover{background:var(--glass-border);color:var(--text-primary)}.tape-recent-dropdown{display:none;position:fixed;min-width:220px;max-width:300px;max-height:320px;overflow-y:auto;background:var(--glass-bg-solid);border:1px solid var(--glass-border);border-radius:var(--radius-sm);box-shadow:0 -4px 16px #0006;z-index:10000}.tape-recent-dropdown.open{display:block}.tape-dropdown-label{padding:4px 10px 2px;font-family:var(--font-sans);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);cursor:default}.tape-dropdown-item{padding:5px 10px;font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s}.tape-dropdown-item:hover:not(.empty){background:var(--overlay-hover);color:var(--text-primary)}.tape-dropdown-item.empty{color:var(--text-muted);font-style:italic;cursor:default}.tape-dropdown-item.clear{color:var(--text-muted);text-align:center;font-family:var(--font-sans)}.tape-dropdown-item.clear:hover{color:var(--accent-red);background:var(--accent-red-bg)}.tape-dropdown-item.blank{font-family:var(--font-sans);font-weight:500;color:var(--text-secondary);text-align:center}.tape-dropdown-item.blank:hover{color:var(--accent-blue);background:var(--accent-blue-bg)}.tape-dropdown-separator{height:1px;background:var(--glass-border);margin:3px 0}.tape-recent-dropdown::-webkit-scrollbar{width:6px}.tape-recent-dropdown::-webkit-scrollbar-track{background:transparent}.tape-recent-dropdown::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.tap-editor{display:flex;flex-direction:column;height:100%;min-height:0;font-family:var(--font-sans)}.tap-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border-bottom:1px solid var(--glass-border-subtle)}.tap-toolbar-group{display:flex;gap:2px;align-items:center}.tap-toolbar-group+.tap-toolbar-group{margin-left:4px;padding-left:8px;border-left:1px solid var(--glass-border-subtle)}.tap-toolbar-btn{display:flex;align-items:center;justify-content:center;gap:3px;padding:3px 8px;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-secondary);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:all .12s}.tap-toolbar-btn:hover{color:var(--text-primary);background:var(--glass-border);border-color:var(--accent-blue-border)}.tap-toolbar-btn:active{transform:scale(.97)}.tap-toolbar-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.tap-toolbar-btn svg{width:12px;height:12px;flex-shrink:0}.tap-toolbar-btn.save.dirty{border-color:var(--accent-orange-border);color:var(--accent-orange)}.tap-filename-banner{display:flex;align-items:center;gap:6px;padding:5px 8px;background:linear-gradient(135deg,var(--accent-blue-bg-strong) 0%,var(--accent-purple-bg-strong) 100%);border-bottom:1px solid var(--accent-blue-border-light)}.tap-filename-banner.hidden{display:none}.tap-filename-text{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tap-dirty-indicator{font-size:9px;color:var(--accent-orange);font-weight:700}.tap-block-list-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.tap-block-list{flex:1;overflow-y:auto;background:var(--input-bg-dark);border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);margin:0 8px;padding:2px 0;min-height:80px}.tap-block-row{display:flex;align-items:center;gap:6px;padding:4px 8px;font-family:var(--font-mono);font-size:10px;cursor:pointer;border-left:3px solid transparent;transition:background .08s;-webkit-user-select:none;user-select:none}.tap-block-row:hover{background:var(--overlay-subtle)}.tap-block-row.selected{background:var(--accent-blue-bg);border-left-color:var(--accent-blue)}.tap-block-row.pair-start,.tap-block-row.pair-end{border-left-color:var(--accent-blue-border);border-left-style:solid}.tap-block-row.pair-start.selected,.tap-block-row.pair-end.selected{border-left-color:var(--accent-blue)}.tap-block-index{color:var(--text-muted);min-width:18px;text-align:right;font-size:9px}.tap-block-badge{font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:36px;text-align:center}.tap-block-badge.header{background:var(--accent-green-bg-strong);border:1px solid var(--accent-green-border-light);color:var(--accent-green)}.tap-block-badge.data{background:var(--accent-orange-bg-strong);border:1px solid var(--accent-orange-border-light);color:var(--accent-orange)}.tap-block-name{color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tap-block-size{color:var(--text-muted);font-size:9px;flex-shrink:0}.tap-block-checksum{flex-shrink:0;font-size:10px;line-height:1}.tap-block-checksum.valid{color:var(--accent-green)}.tap-block-checksum.invalid{color:var(--accent-red)}.tap-block-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .12s}.tap-block-row:hover .tap-block-actions,.tap-block-row.selected .tap-block-actions{opacity:1}.tap-block-action-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .1s}.tap-block-action-btn:hover{background:var(--control-bg);color:var(--text-primary)}.tap-block-action-btn.delete:hover{color:var(--accent-red)}.tap-block-action-btn svg{width:12px;height:12px}.tap-block-drag-handle{cursor:grab;color:var(--text-muted);flex-shrink:0;opacity:0;transition:opacity .12s}.tap-block-row:hover .tap-block-drag-handle{opacity:.6}.tap-block-drag-handle:hover{opacity:1!important;color:var(--text-secondary)}.tap-block-drag-handle svg{width:10px;height:14px;display:block}.tap-block-row.dragging{opacity:.3}.tap-drop-indicator{height:2px;background:var(--accent-blue);margin:0 8px;border-radius:1px;pointer-events:none}.tap-add-bar{display:flex;gap:4px;padding:6px 8px}.tap-add-btn{display:flex;align-items:center;gap:3px;padding:3px 8px;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-muted);background:transparent;border:1px dashed var(--control-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}.tap-add-btn:hover{color:var(--text-primary);border-color:var(--accent-blue-border);background:var(--accent-blue-bg)}.tap-add-btn svg{width:10px;height:10px}.tap-add-form{padding:8px;margin:0 8px 6px;background:var(--glass-bg);border:1px solid var(--accent-blue-border);border-radius:var(--radius-sm)}.tap-add-form.hidden{display:none}.tap-add-form-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.tap-add-form-row:last-child{margin-bottom:0}.tap-add-form-label{font-size:10px;font-weight:500;color:var(--text-secondary);min-width:60px;font-family:var(--font-sans)}.tap-add-form-input{flex:1;font-family:var(--font-mono);font-size:10px;padding:3px 6px;background:var(--input-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.tap-add-form-input:focus{border-color:var(--accent-blue-border)}.tap-add-form-select{flex:1;font-family:var(--font-sans);font-size:10px;padding:3px 6px;background:var(--input-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none}.tap-add-form-actions{display:flex;gap:4px;justify-content:flex-end}.tap-add-form-btn{padding:3px 10px;font-family:var(--font-sans);font-size:10px;font-weight:500;border-radius:3px;cursor:pointer;border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-secondary);transition:all .1s}.tap-add-form-btn:hover{color:var(--text-primary)}.tap-add-form-btn.primary{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border);color:var(--accent-blue)}.tap-add-form-btn.primary:hover{background:var(--accent-blue-bg-stronger)}.tap-detail-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-muted);-webkit-user-select:none;user-select:none;transition:color .15s}.tap-detail-toggle:hover{color:var(--text-secondary)}.tap-detail-chevron{transition:transform .2s ease;flex-shrink:0}.tap-detail-toggle.open .tap-detail-chevron{transform:rotate(90deg)}.tap-detail-panel{border-top:1px solid var(--glass-border-subtle);overflow:hidden;display:flex;flex-direction:column}.tap-detail-panel.hidden{display:none}.tap-detail-resize-handle{height:4px;cursor:ns-resize;background:transparent;position:relative;flex-shrink:0}.tap-detail-resize-handle:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:2px;border-radius:1px;background:var(--glass-border-subtle)}.tap-detail-tabs{display:flex;gap:0;padding:0 8px;border-bottom:1px solid var(--glass-border-subtle)}.tap-detail-tab{padding:4px 12px;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .12s}.tap-detail-tab:hover{color:var(--text-secondary)}.tap-detail-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.tap-detail-content{flex:1;overflow-y:auto;padding:8px;min-height:80px}.tap-header-form{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center}.tap-header-label{font-size:10px;font-weight:500;color:var(--text-secondary);font-family:var(--font-sans);text-align:right}.tap-header-input{font-family:var(--font-mono);font-size:10px;padding:3px 6px;background:var(--input-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none;width:100%;box-sizing:border-box}.tap-header-input:focus{border-color:var(--accent-blue-border)}.tap-header-select{font-family:var(--font-sans);font-size:10px;padding:3px 6px;background:var(--input-bg);border:1px solid var(--control-border);border-radius:3px;color:var(--text-primary);outline:none;width:100%;box-sizing:border-box}.tap-header-readonly{font-family:var(--font-mono);font-size:10px;padding:3px 6px;color:var(--text-muted)}.tap-header-checksum-row{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding-top:4px;margin-top:4px;border-top:1px solid var(--glass-border-subtle)}.tap-header-checksum-status{font-size:10px;font-family:var(--font-mono)}.tap-header-checksum-status.valid{color:var(--accent-green)}.tap-header-checksum-status.invalid{color:var(--accent-red)}.tap-hex-container{font-family:var(--font-mono);font-size:10px;line-height:1.6;overflow-y:auto;position:relative}.tap-hex-row{display:flex;gap:0;white-space:nowrap;padding:0 4px}.tap-hex-row:hover{background:var(--overlay-subtle)}.tap-hex-offset{color:var(--text-muted);min-width:48px;text-align:right;padding-right:8px;-webkit-user-select:none;user-select:none}.tap-hex-bytes{display:flex;gap:0;flex-shrink:0}.tap-hex-byte{width:22px;text-align:center;color:var(--text-primary);cursor:text;border-radius:2px;transition:background .08s}.tap-hex-byte:hover{background:var(--accent-blue-bg)}.tap-hex-byte.modified{color:var(--accent-green);background:var(--accent-green-bg)}.tap-hex-byte.editing{background:var(--accent-blue-bg-strong);outline:1px solid var(--accent-blue-border);color:var(--text-primary)}.tap-hex-spacer{width:8px}.tap-hex-ascii{color:var(--text-secondary);padding-left:8px;border-left:1px solid var(--glass-border-subtle);letter-spacing:.5px;-webkit-user-select:none;user-select:none}.tap-hex-ascii-char{display:inline}.tap-hex-ascii-char.non-printable{color:var(--text-muted)}.tap-hex-spacer-top,.tap-hex-spacer-bottom{flex-shrink:0}.tap-empty-state{padding:30px 20px;text-align:center;color:var(--text-muted);font-size:11px;font-style:italic;opacity:.7}.tap-empty-state-hint{margin-top:8px;font-size:10px;font-style:normal;color:var(--text-muted);opacity:.6}.tap-delete-confirm{display:flex;align-items:center;gap:4px;padding:4px 8px;margin:2px 8px;background:var(--accent-red-bg);border:1px solid var(--accent-red-border);border-radius:var(--radius-sm);font-size:10px;color:var(--text-primary)}.tap-delete-confirm.hidden{display:none}.tap-delete-confirm-text{flex:1;font-family:var(--font-sans)}.tap-delete-confirm-btn{padding:2px 8px;font-family:var(--font-sans);font-size:9px;font-weight:500;border-radius:3px;cursor:pointer;border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-secondary);transition:all .1s}.tap-delete-confirm-btn:hover{color:var(--text-primary)}.tap-delete-confirm-btn.danger{border-color:var(--accent-red-border);color:var(--accent-red)}.tap-toast{position:absolute;bottom:8px;left:50%;transform:translate(-50%);padding:4px 12px;background:var(--glass-bg-header);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:10px;color:var(--text-primary);opacity:0;transition:opacity .2s;pointer-events:none;z-index:10;white-space:nowrap}.tap-toast.visible{opacity:1}.tap-detail-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:10px;font-style:italic}#disk-window.debug-window{overflow:visible}#disk-window.debug-window .debug-window-content{overflow:visible;flex-shrink:0}.drive-tab-group{display:flex;gap:2px;background:var(--input-bg);border-radius:var(--radius-sm);padding:2px}.drive-tab{padding:3px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s}.drive-tab:hover{color:var(--text-primary);background:var(--overlay-hover)}.drive-tab.active{color:var(--accent-green);background:var(--accent-green-bg);border-color:var(--accent-green-border-light)}.drive-interface-badge{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent-blue);background:var(--accent-blue-bg);padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}select.drive-opus-rom-select{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent-blue);background:var(--accent-blue-bg);padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border:1px solid var(--accent-blue-border);cursor:pointer;outline:none}select.drive-opus-rom-select option{background:var(--bg-primary);color:var(--text-primary)}.drive-toolbar-spacer{flex:1}.disk-drives-toolbar{display:flex;gap:12px;padding:var(--space-sm) var(--space-md);margin-bottom:8px;border-bottom:1px solid var(--glass-border-subtle);align-items:center}.drive-toolbar-btn{display:flex;align-items:center;gap:5px;padding:3px 10px;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.6875rem;font-weight:500;opacity:.7;transition:opacity .15s,color .15s,background .15s,border-color .15s}.drive-toolbar-btn:hover{opacity:1;color:var(--text-primary);background:var(--overlay-hover);border-color:var(--overlay-white-10)}.drive-toolbar-btn.active{opacity:1;color:var(--accent-green);background:var(--accent-green-bg);border-color:var(--accent-green-border-light)}.drive-toolbar-btn.active:hover{background:var(--accent-green-bg-strong);border-color:var(--accent-green-border)}.drive-toolbar-btn svg{flex-shrink:0}.disk-drives-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-md);width:100%;padding:var(--space-md)}.disk-drive{flex:1 1 250px;display:flex;flex-direction:column;gap:var(--space-md);min-width:0;box-sizing:border-box}.drive-image-container{width:100%;position:relative}.disk-surface{display:block;width:100%;height:auto;aspect-ratio:280 / 240;border-radius:var(--radius-sm)}.drive-label{position:absolute;top:6px;left:8px;font-family:var(--font-mono);font-size:.875rem;font-weight:700;color:var(--text-muted);pointer-events:none;z-index:1;opacity:.5}.hide-graphics .drive-image-container{display:none}.drive-info{display:flex;align-items:center;padding:5px 8px;min-width:0;background:var(--input-bg);border-radius:var(--radius-sm);overflow:hidden;margin-top:4px}.disk-name{font-size:.6875rem;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;width:100%;min-width:0}.disk-name.scrolling{animation:disk-name-scroll var(--scroll-duration, 4s) ease-in-out infinite alternate}@keyframes disk-name-scroll{0%,15%{transform:translate(0)}85%,to{transform:translate(var(--scroll-distance, 0px))}}.disk-track-bar-container{width:100%;height:12px;border-radius:var(--radius-sm);overflow:hidden;background:var(--input-bg);margin-top:4px;margin-bottom:8px}.disk-track-bar{display:block;width:100%;height:12px;border-radius:var(--radius-sm)}.drive-controls{display:flex;gap:6px}.drive-controls-secondary{margin-top:4px}.disk-insert,.disk-blank,.disk-eject,.disk-recent,.disk-save{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:0 12px;background:var(--control-bg-solid);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .1s}.disk-insert:hover,.disk-save:hover:not(:disabled){background:var(--control-bg-hover);color:var(--text-primary)}.disk-blank:hover{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border);color:var(--accent-blue)}.disk-eject:hover:not(:disabled){background:var(--accent-orange-bg-strong);border-color:var(--accent-orange-border-stronger);color:var(--accent-orange)}.disk-eject:disabled,.disk-save:disabled{opacity:.4;cursor:not-allowed}.disk-wp-row{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.disk-wp-text{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);-webkit-user-select:none;user-select:none}.disk-wp-toggle{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0;cursor:pointer}.disk-wp-toggle input{opacity:0;width:0;height:0}.disk-wp-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--input-bg-deeper);border-radius:18px;transition:all .2s}.disk-wp-slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:all .2s}.disk-wp-toggle input:checked+.disk-wp-slider{background:var(--accent-red-bg)}.disk-wp-toggle input:checked+.disk-wp-slider:before{transform:translate(14px);background:var(--accent-red)}.recent-container{position:relative;display:flex;flex:1}.disk-recent:hover{background:var(--control-bg-hover);border-color:var(--accent-green-border);color:var(--accent-green)}.recent-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;right:0;min-width:300px;max-height:320px;overflow-y:auto;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:1000;padding:4px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .15s,transform .15s,visibility .15s}.recent-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.recent-item{display:flex;align-items:center;padding:8px 12px;font-family:var(--font-sans);font-size:.8125rem;color:var(--text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.recent-item:hover:not(.empty):not(.recent-clear){background:var(--overlay-hover)}.recent-item.empty{color:var(--text-muted);font-style:italic;cursor:default;justify-content:center}.recent-separator{height:1px;background:var(--glass-border);margin:4px 0}.recent-item.recent-clear{color:var(--text-muted);font-size:.75rem;justify-content:center}.recent-item.recent-clear:hover{color:var(--accent-red);background:var(--overlay-hover)}.recent-dropdown::-webkit-scrollbar{width:6px}.recent-dropdown::-webkit-scrollbar-track{background:transparent}.recent-dropdown::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.recent-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.drive-detail-panel{display:none}.dd-chip-label{font-family:var(--font-mono);font-size:.5625rem;font-weight:600;color:var(--accent-blue);background:var(--accent-blue-bg);border:1px solid var(--accent-blue-border);border-radius:3px;padding:0 5px;margin-left:6px;vertical-align:middle;letter-spacing:.03em}.show-details .drive-detail-panel{display:block;border-top:1px solid var(--glass-border-subtle);padding-top:12px;margin-top:12px}.drive-detail-table{width:100%;table-layout:fixed;border-collapse:collapse;padding:6px 10px;background:var(--input-bg);border-radius:var(--radius-sm);font-size:.6875rem;font-family:var(--font-mono)}.drive-detail-table td{padding:2px 5px}.drive-detail-table .dd-label{width:20%}.drive-detail-table .dd-val{width:30%}.dd-table-3col .dd-label{width:13%}.dd-table-3col .dd-val{width:20%}.dd-label{color:var(--text-muted);font-weight:500;white-space:nowrap}.dd-val{color:var(--text-secondary);font-weight:500;text-align:right}.dd-val.on{color:var(--accent-green)}.dd-val.write{color:var(--accent-orange)}.dd-section-label{font-family:var(--font-sans);font-size:.5625rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 2px 2px}.dd-section-label:first-child{padding-top:0}#disk-explorer .debug-window-content{overflow:hidden}.dex-content{display:flex;flex-direction:column;height:100%;gap:0;-webkit-user-select:none;user-select:none;position:relative}.dex-toolbar{display:flex;gap:8px;padding:8px 12px;align-items:center;border-bottom:1px solid var(--glass-border-subtle);flex-shrink:0}.dex-body{display:flex;flex:1;min-height:0;overflow:hidden}.dex-left{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;padding:8px}.dex-legend{display:flex;flex-wrap:wrap;gap:2px 8px;padding:4px 2px 0;justify-content:center}.dex-legend-item{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:.5625rem;color:var(--text-muted);white-space:nowrap}.dex-legend-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;border:1px solid rgba(255,255,255,.15)}.dex-right{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--glass-border-subtle)}.dex-tab-group{display:flex;gap:2px;background:var(--input-bg);border-radius:var(--radius-sm);padding:2px}.dex-tab{padding:3px 10px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:.6875rem;font-weight:600;cursor:pointer;transition:all .15s}.dex-tab:hover{color:var(--text-primary);background:var(--overlay-hover)}.dex-tab.active{color:var(--accent-green);background:var(--accent-green-bg);border-color:var(--accent-green-border-light)}.dex-toolbar-spacer{flex:1}.dex-refresh-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s}.dex-refresh-btn:hover{color:var(--text-primary);background:var(--overlay-hover);border-color:var(--overlay-white-10)}.dex-disk-label{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dex-disk-geometry{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-muted);margin-left:auto;white-space:nowrap;flex-shrink:0}.dex-badges{display:flex;gap:4px;flex-wrap:wrap}.dex-badge{font-family:var(--font-mono);font-size:.5625rem;font-weight:600;padding:1px 6px;border-radius:3px;white-space:nowrap;letter-spacing:.02em}.dex-badge-weak{color:var(--accent-purple);background:var(--accent-purple-bg);border:1px solid var(--accent-purple-border)}.dex-badge-crc{color:var(--accent-red);background:var(--accent-red-bg);border:1px solid var(--accent-red-border)}.dex-badge-deleted{color:var(--accent-orange);background:var(--accent-orange-bg);border:1px solid var(--accent-orange-border)}.dex-badge-size{color:var(--accent-green);background:var(--accent-green-bg);border:1px solid var(--accent-green-border)}.dex-badge-scheme{color:var(--text-primary);background:var(--overlay-active);border:1px solid var(--glass-border);font-weight:700;letter-spacing:.03em}.dex-badge-clean{color:var(--accent-blue);background:var(--accent-blue-bg);border:1px solid var(--accent-blue-border)}.dex-map-container{position:relative;aspect-ratio:1;height:100%;overflow:hidden;cursor:default}.dex-reset-zoom-btn{position:absolute;bottom:6px;left:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;opacity:.6;transition:opacity .15s;padding:0}.dex-reset-zoom-btn:hover{opacity:1;color:var(--text-primary)}.dex-radial-map{display:block;width:100%;height:100%;cursor:crosshair}.dex-map-tooltip{position:fixed;padding:3px 8px;font-family:var(--font-mono);font-size:.625rem;color:var(--text-primary);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity .1s;z-index:100000;white-space:nowrap}.dex-map-tooltip.visible{opacity:1}.dex-sector-strip-container{display:flex;gap:2px;padding:6px 10px;border-bottom:1px solid var(--glass-border-subtle);flex-shrink:0;align-items:center;min-height:28px;flex-wrap:wrap}.dex-sector-strip-label{font-family:var(--font-mono);font-size:.625rem;color:var(--text-muted);margin-right:4px;white-space:nowrap;flex-shrink:0}.dex-sector-box{display:flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 4px;font-family:var(--font-mono);font-size:.5625rem;font-weight:600;border-radius:2px;cursor:pointer;transition:all .1s;border:1px solid transparent}.dex-sector-normal{color:var(--accent-blue);background:var(--accent-blue-bg)}.dex-sector-weak{color:var(--accent-purple);background:var(--accent-purple-bg);box-shadow:0 0 4px var(--accent-purple-bg-stronger)}.dex-sector-crc{color:var(--accent-red);background:var(--accent-red-bg);box-shadow:0 0 4px var(--accent-red-bg-stronger)}.dex-sector-deleted{color:var(--accent-orange);background:var(--accent-orange-bg)}.dex-sector-sizevar{color:var(--accent-green);background:var(--accent-green-bg)}.dex-sector-box:hover{filter:brightness(1.3)}.dex-sector-box.selected{border-color:var(--text-primary);filter:brightness(1.4)}.dex-sector-info{display:none;padding:6px 12px;border-top:1px solid var(--glass-border-subtle);flex-shrink:0}.dex-sector-info.visible{display:block}.dex-sector-info-table{width:100%;table-layout:fixed;border-collapse:collapse;font-family:var(--font-mono);font-size:.6875rem;background:var(--input-bg);border-radius:var(--radius-sm)}.dex-sector-info-table td{padding:2px 6px}.dex-sector-info-table .dex-si-label{color:var(--text-muted);font-weight:500;width:18%}.dex-sector-info-table .dex-si-val{color:var(--text-secondary);font-weight:500;text-align:right;width:32%}.dex-sector-flags{display:flex;gap:4px;padding:4px 0 0}.dex-hex-container{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-top:1px solid var(--glass-border-subtle)}.dex-hex-header{display:flex;align-items:center;padding:4px 12px;flex-shrink:0}.dex-hex-header-label{font-family:var(--font-mono);font-size:.5625rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dex-hex-dump{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 12px 8px;font-family:var(--font-mono);font-size:.625rem;line-height:1.5;background:var(--input-bg-deep);margin:0 8px 8px;border-radius:var(--radius-sm)}.dex-hex-row{white-space:pre}.dex-hex-offset{color:var(--text-muted)}.dex-hex-byte{color:var(--text-secondary)}.dex-hex-byte-zero{color:var(--text-muted);opacity:.4}.dex-hex-byte-filler{color:var(--text-muted);opacity:.3}.dex-hex-byte-ff{color:var(--accent-orange);opacity:.6}.dex-hex-byte-copy0{color:var(--accent-blue)}.dex-hex-byte-copy1{color:var(--accent-purple)}.dex-hex-byte-copy2{color:var(--accent-green)}.dex-hex-byte-copy3{color:var(--accent-orange)}.dex-hex-byte-copy4{color:var(--accent-red)}.dex-hex-ascii-copy0{color:var(--accent-blue);opacity:.6}.dex-hex-ascii-copy1{color:var(--accent-purple);opacity:.6}.dex-hex-ascii-copy2{color:var(--accent-green);opacity:.6}.dex-hex-ascii-copy3{color:var(--accent-orange);opacity:.6}.dex-hex-ascii-copy4{color:var(--accent-red);opacity:.6}.dex-hex-copy-label{font-size:.5625rem;color:var(--text-muted);opacity:.6}.dex-hex-byte-crc{color:var(--accent-red)}.dex-hex-gap{color:transparent}.dex-hex-ascii{color:var(--text-muted)}.dex-hex-ascii-print{color:var(--text-secondary)}.dex-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;font-style:italic;padding:40px}.dex-hex-dump::-webkit-scrollbar{width:6px}.dex-hex-dump::-webkit-scrollbar-track{background:transparent}.dex-hex-dump::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.dex-hex-dump::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#disk-analysis .debug-window-content{overflow:hidden}.dex-info-scroll{height:100%;overflow-y:auto;padding:16px 20px}.dex-info-section{margin-bottom:16px}.dex-info-section p{font-family:var(--font-sans);font-size:.75rem;line-height:1.6;color:var(--text-secondary);margin:0 0 8px}.dex-info-section p strong{color:var(--text-primary);font-weight:600}.dex-info-section p em{color:var(--accent-blue);font-style:normal}.dex-info-heading{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid var(--glass-border-subtle)}.dex-info-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.6875rem;margin:8px 0;background:var(--input-bg);border-radius:var(--radius-sm)}.dex-info-table td{padding:3px 8px;color:var(--text-secondary)}.dex-info-key{color:var(--text-muted)!important;font-weight:500;white-space:nowrap}.dex-info-detail-label{font-family:var(--font-mono);font-size:.625rem;color:var(--text-muted);margin:8px 0 4px}.dex-info-legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:8px 0}.dex-info-legend-row{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.625rem;color:var(--text-secondary)}.dex-info-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;flex-shrink:0}.dex-refresh-btn.active{color:var(--accent-blue);background:var(--accent-blue-bg);border-color:var(--accent-blue-border)}.dex-info-scroll::-webkit-scrollbar{width:6px}.dex-info-scroll::-webkit-scrollbar-track{background:transparent}.dex-info-scroll::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.dex-info-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#basic-program .debug-window-content{padding:0;overflow:hidden;display:flex;flex-direction:column}.bas-toolbar{display:flex;gap:2px;padding:4px 6px;border-bottom:1px solid var(--glass-border);background:var(--glass-bg-header);flex-shrink:0;flex-wrap:wrap;align-items:center}.bas-toolbar-group{display:flex;gap:2px;align-items:center}.bas-toolbar-separator{width:1px;height:18px;background:var(--separator-bg);margin:0 4px;flex-shrink:0}.bas-toolbar-btn{display:flex;align-items:center;justify-content:center;padding:3px 8px;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-secondary);font-family:var(--font-sans);font-size:11px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.bas-toolbar-btn:hover{background:var(--overlay-hover);color:var(--text-primary);border-color:var(--glass-border)}.bas-toolbar-btn:active{background:var(--overlay-active)}.bas-toolbar-btn.disabled,.bas-toolbar-btn:disabled{opacity:.3;pointer-events:none;cursor:default}.bas-toolbar-btn.run{color:var(--accent-green);border-color:var(--accent-green-border-light)}.bas-toolbar-btn.run:hover{background:var(--accent-green-bg);color:var(--accent-green)}.bas-toolbar-btn.pause{color:var(--accent-orange);border-color:var(--accent-orange-border-light)}.bas-toolbar-btn.pause:hover{background:var(--accent-orange-bg)}.bas-toolbar-btn.step{color:var(--accent-blue);border-color:var(--accent-blue-border-light)}.bas-toolbar-btn.step:hover{background:var(--accent-blue-bg)}.bas-toolbar-btn.continue{color:var(--accent-green);border-color:var(--accent-green-border-light)}.bas-toolbar-btn.continue:hover{background:var(--accent-green-bg);color:var(--accent-green)}.bas-toolbar-btn.stop{color:var(--accent-red);border-color:var(--accent-red-border)}.bas-toolbar-btn.stop:hover{background:var(--accent-red-bg);color:var(--accent-red)}.bas-trace-toggle{display:flex;align-items:center;gap:5px;padding:2px 4px;cursor:pointer;font-family:var(--font-sans);font-size:11px;color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:color .15s}.bas-trace-toggle:hover{color:var(--text-primary)}.bas-trace-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:14px;border:1px solid var(--glass-border);border-radius:7px;background:var(--control-bg);cursor:pointer;position:relative;flex-shrink:0;transition:background .2s,border-color .2s}.bas-trace-checkbox:after{content:"";position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--text-muted);transition:transform .2s,background .2s}.bas-trace-checkbox:checked{background:var(--accent-blue-bg-stronger);border-color:var(--accent-blue)}.bas-trace-checkbox:checked:after{transform:translate(12px);background:var(--accent-blue)}.bas-trace-checkbox:hover{border-color:var(--accent-blue)}.bas-editor-area{display:flex;flex:1;min-height:0;overflow:hidden}.bas-editor-with-gutter{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}.bas-gutter{width:44px;flex-shrink:0;background:var(--overlay-faint);border-right:1px solid var(--glass-border-subtle);-webkit-user-select:none;user-select:none;overflow:hidden;padding:8px 0}.bas-gutter-line{height:18px;display:flex;align-items:center;justify-content:flex-end;padding:0 4px 0 0;font-family:var(--font-mono);font-size:12px;line-height:18px;color:var(--text-muted);cursor:pointer;position:relative}.bas-gutter-line[data-basic-line]:hover{background:var(--overlay-hover)}.bas-gutter-line.breakpoint:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--accent-red)}.bas-gutter-line.breakpoint{padding-left:14px}.bas-gutter-line.current-line{background:var(--accent-blue-bg)}.bas-editor-container{position:relative;flex:1;min-width:0;min-height:0}.bas-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:8px;margin:0;font-family:var(--font-mono);font-size:12px;line-height:18px;white-space:pre;pointer-events:none;-moz-tab-size:4;tab-size:4;overflow:hidden;z-index:0}.bas-textarea{position:absolute;top:0;left:0;width:100%;height:100%;padding:8px;margin:0;border:none;outline:none;resize:none;background:transparent;color:transparent;font-family:var(--font-mono);font-size:12px;line-height:18px;white-space:pre;-moz-tab-size:4;tab-size:4;caret-color:var(--accent-blue);z-index:1;overflow:auto}.bas-textarea::selection{background:var(--accent-blue-bg-stronger)}.bas-kw-flow{color:var(--accent-red);font-weight:600}.bas-kw-loop{color:var(--accent-purple);font-weight:600}.bas-kw-io{color:var(--accent-blue);font-weight:600}.bas-kw-graphics{color:var(--accent-green);font-weight:600}.bas-kw-memory{color:var(--accent-orange);font-weight:600}.bas-kw-func{color:var(--accent-blue)}.bas-kw-misc{color:var(--text-muted);font-weight:600}.bas-number{color:var(--accent-orange)}.bas-string{color:var(--accent-green)}.bas-rem{color:var(--text-muted);font-style:italic}.bas-linenum{color:var(--text-secondary)}.bas-highlight-line{background:var(--accent-blue-bg);display:inline-block;width:100%}.bas-stmt-underline{border-bottom:2px solid var(--accent-red)}.bas-error-line{display:inline-block;width:100%;background:var(--accent-red-bg);position:relative}.bas-error-msg{position:absolute;right:8px;top:0;color:var(--accent-red);font-weight:600;font-size:11px;line-height:18px;pointer-events:none;white-space:nowrap}.bas-gutter-line.has-error{background:var(--accent-red-bg)}.bas-gutter-line.has-error:after{content:"!";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:var(--accent-red);color:var(--bg-primary);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.bas-debug-status{color:var(--accent-green);font-weight:600}.bas-debug-status:empty{display:none}.bas-sidebar{width:180px;flex-shrink:0;border-left:1px solid var(--glass-border);background:var(--overlay-faint);overflow:hidden;display:flex;flex-direction:column;min-height:0}.bas-sidebar.hidden{display:none}.bas-sidebar-header{padding:4px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--glass-border-subtle);background:var(--glass-bg-header);flex-shrink:0}.bas-sidebar-content{flex:1;overflow-y:auto;padding:4px}.bas-vars-empty{padding:12px 8px;color:var(--text-muted);font-size:11px;text-align:center;font-style:italic}.bas-var-section-header{padding:3px 6px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--glass-border-subtle);position:sticky;top:0;z-index:2}.bas-vars-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:11px}.bas-vars-table thead th{padding:2px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--glass-border-subtle);background:var(--glass-bg-header)}.bas-vars-table tbody tr:hover{background:var(--overlay-hover)}.bas-vars-table td{padding:1px 6px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bas-vars-table td.bas-var-name{color:var(--accent-blue)}.bas-vars-table td.bas-var-type{color:var(--text-muted);font-size:10px}.bas-vars-table td.bas-var-value{color:var(--accent-green)}.bas-vars-table td.bas-var-array-cell{padding:2px 4px;overflow-x:auto;max-width:0}.bas-array-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:10px;margin:2px 0}.bas-array-table thead th{padding:1px 4px;font-size:9px;font-weight:600;color:var(--text-muted);text-align:center;border-bottom:1px solid var(--glass-border-subtle)}.bas-array-table td{padding:1px 4px;line-height:14px;text-align:center;border:1px solid var(--glass-border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.bas-array-table td.bas-array-idx{color:var(--text-muted);font-size:9px;border:none;text-align:right;padding-right:6px}.bas-array-table td.bas-var-value{color:var(--accent-green);max-width:none}.bas-array-table tbody tr:hover{background:var(--overlay-hover)}.bas-vars-table tbody tr.bas-var-changed .bas-var-value,.bas-arr-val.bas-var-changed{animation:reg-flash .6s ease-out}.bas-sidebar-resize{width:4px;flex-shrink:0;cursor:col-resize;background:transparent;position:relative;z-index:2}.bas-sidebar-resize:hover,.bas-sidebar-resize.active{background:var(--accent-blue-bg)}.bas-bp-panel{display:flex;flex-direction:column;border-top:1px solid var(--glass-border);max-height:120px;flex-shrink:0;overflow:hidden}.bas-bp-panel.hidden{display:none}.bas-bp-panel-header{display:flex;align-items:center;padding:4px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--glass-border-subtle);background:var(--glass-bg-header);flex-shrink:0}.bas-bp-panel-header-label{flex:1}.bas-bp-panel-actions{display:flex;gap:4px}.bas-bp-panel-btn{cursor:pointer;color:var(--text-muted);border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--control-bg);font-size:10px;font-family:var(--font-sans);padding:1px 6px;transition:background .15s,color .15s}.bas-bp-panel-btn:hover{background:var(--overlay-hover);color:var(--text-primary)}.bas-bp-panel-list{flex:1;overflow-y:auto;min-height:0}.bas-bp-item{display:flex;align-items:center;gap:6px;padding:2px 8px;font-family:var(--font-mono);font-size:11px;line-height:20px;color:var(--text-secondary);cursor:default}.bas-bp-item:hover{background:var(--overlay-hover)}.bas-bp-item.disabled{opacity:.4}.bas-bp-item input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid var(--glass-border);border-radius:2px;background:var(--control-bg);cursor:pointer;flex-shrink:0;position:relative}.bas-bp-item input[type=checkbox]:checked{background:var(--accent-blue-bg-stronger);border-color:var(--accent-blue)}.bas-bp-item input[type=checkbox]:checked:after{content:"";position:absolute;left:2px;top:0;width:5px;height:8px;border:solid var(--accent-blue);border-width:0 2px 2px 0;transform:rotate(45deg)}.bas-bp-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-red);flex-shrink:0}.bas-bp-diamond{width:8px;height:8px;background:var(--accent-purple);transform:rotate(45deg);flex-shrink:0}.bas-bp-label{color:var(--text-primary);white-space:nowrap;cursor:pointer}.bas-bp-condition{color:var(--text-muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bas-bp-spacer{flex:1}.bas-bp-action-btn{cursor:pointer;color:var(--text-muted);border:none;background:none;font-size:11px;font-family:var(--font-mono);padding:0 2px;line-height:1;opacity:0;transition:opacity .15s,color .15s}.bas-bp-item:hover .bas-bp-action-btn{opacity:1}.bas-bp-action-btn:hover{color:var(--text-primary)}.bas-bp-action-btn.danger:hover{color:var(--accent-red)}.bas-bp-empty{padding:8px;color:var(--text-muted);font-size:11px;text-align:center;font-style:italic}.bas-bp-item.fired{animation:bas-bp-fire 1s ease-in-out infinite}@keyframes bas-bp-fire{0%,to{background:transparent}50%{background:var(--accent-red-bg-stronger)}}.bas-statusbar{display:flex;align-items:center;gap:12px;padding:2px 8px;border-top:1px solid var(--glass-border);background:var(--glass-bg-header);font-size:10px;color:var(--text-muted);flex-shrink:0}.bas-status-item{white-space:nowrap}.bas-status-right{margin-left:auto;display:flex;gap:8px}.bas-sidebar-toggle{cursor:pointer;color:var(--text-muted);border:none;background:none;font-size:10px;font-family:var(--font-sans);padding:0 2px}.bas-sidebar-toggle:hover{color:var(--text-primary)}#memory-map .debug-window-content{padding:0;overflow:hidden}.memmap-machine{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--separator-bg);font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.memmap-machine-name{color:var(--text-primary);font-size:11px}.memmap-slots{display:flex;flex-direction:column;gap:3px;padding:6px 8px}.memmap-slot{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;border:1px solid var(--glass-border-subtle);border-left:3px solid transparent;font-family:var(--font-mono);font-size:11px;line-height:1.4;background:var(--input-bg)}.memmap-slot-rom{border-color:var(--accent-purple-bg-strong);border-left-color:var(--accent-purple)}.memmap-slot-ram{border-color:var(--accent-blue-border-light);border-left-color:var(--accent-blue)}.memmap-slot-switchable{border-style:dashed;border-left-style:solid;border-color:var(--accent-orange-border);border-left-color:var(--accent-orange)}.memmap-addr{flex:0 0 90px;color:var(--text-muted);font-size:10px;white-space:nowrap}.memmap-label{flex:1;font-weight:600;color:var(--text-primary)}.memmap-badges{display:flex;gap:4px;flex-shrink:0;min-height:18px}.memmap-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;font-size:9px;font-weight:700;line-height:1;border:1px solid transparent}.memmap-badge-contended{background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red)}.memmap-badge-screen{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green)}.memmap-badge-locked{background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red)}.memmap-badge-locked svg{display:block}.memmap-badge-sp{width:auto;padding:0 4px;background:var(--accent-orange-bg);border-color:var(--accent-orange-border);color:var(--accent-orange)}.memmap-legend{display:flex;flex-wrap:wrap;gap:10px;padding:4px 8px 10px;border-top:1px solid var(--separator-bg);font-family:var(--font-mono);font-size:9px;color:var(--text-muted)}.memmap-legend-item{display:flex;align-items:center;gap:4px}.memmap-legend-swatch{width:10px;height:10px;border-radius:2px;border:1px solid var(--glass-border-subtle);border-left:3px solid transparent;background:var(--input-bg)}.memmap-legend-rom{border-left-color:var(--accent-purple)}.memmap-legend-ram{border-left-color:var(--accent-blue)}.memmap-legend-switchable{border-style:dashed;border-left-style:solid;border-color:var(--accent-orange-border);border-left-color:var(--accent-orange)}.kbd-toggles-group{display:flex;align-items:center;margin-left:auto}.kbd-highlight-wrap{display:flex;align-items:center;gap:5px;margin-right:8px}.kbd-highlight-label{font-family:var(--font-sans);font-size:.6875rem;color:var(--text-muted);line-height:1;white-space:nowrap}.kbd-highlight-toggle{position:relative;display:inline-block;width:28px;height:14px;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbd-highlight-toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.kbd-toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--overlay-active);border-radius:14px;transition:.2s}.kbd-toggle-slider:before{position:absolute;content:"";height:10px;width:10px;left:2px;bottom:2px;background-color:#fff;border-radius:50%;transition:.2s}.kbd-highlight-toggle input:checked+.kbd-toggle-slider{background-color:#4da8a8}.kbd-highlight-toggle input:checked+.kbd-toggle-slider:before{transform:translate(14px)}.kbd-container.kbd-inactive{opacity:.35;pointer-events:none;transition:opacity .3s ease}#keyboard .debug-window-content{padding:0;overflow:hidden;position:relative;z-index:0}.kbd-container{background:#000;padding:6px 50px 8px 10px;display:flex;flex-direction:column;gap:0;user-select:none;-webkit-user-select:none;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;transform-origin:top left}html[data-theme=light] .kbd-container{background:#000}.kbd-label-row{display:flex;gap:4px;padding:0;min-height:16px}.kbd-label-cell{text-align:left;white-space:nowrap;overflow:visible;line-height:16px;min-height:16px;font-size:11px;display:flex;align-items:center;justify-content:flex-start;gap:2px}.kbd-above-text{color:var(--accent-green);font-size:11px;font-weight:500;padding-left:4px}.kbd-section-0 .kbd-above-text{color:#fff}.kbd-arrow{display:inline-flex;align-items:center}.kbd-arrow-svg{width:11px;height:14px}.kbd-label-below .kbd-below-text{color:#f45830;font-size:11px;font-weight:500;padding-left:4px}.kbd-color-name{font-size:10px;font-weight:700;text-transform:uppercase;padding-left:4px}.kbd-clr-blue{color:#00f}.kbd-clr-red{color:red}.kbd-clr-magenta{color:#f0f}.kbd-clr-green{color:#0f0}.kbd-clr-cyan{color:#0ff}.kbd-clr-yellow{color:#ff0}.kbd-clr-white{color:#fff}.kbd-clr-black{color:#000;background:#fff;padding:0 3px;border-radius:0;font-size:10px;margin-left:4px}html[data-theme=light] .kbd-clr-blue{color:#0000cd}html[data-theme=light] .kbd-clr-red{color:#f45830}html[data-theme=light] .kbd-clr-magenta{color:#cd00cd}html[data-theme=light] .kbd-clr-green{color:#00cd00}html[data-theme=light] .kbd-clr-cyan{color:#00cdcd}html[data-theme=light] .kbd-clr-yellow{color:#8b8b00}html[data-theme=light] .kbd-clr-white{color:#999}.kbd-section{margin-bottom:4px}.kbd-section:last-child{margin-bottom:0}.kbd-section-0{margin-left:0}.kbd-section-1{margin-left:24px;margin-right:-24px}.kbd-section-2{margin-left:40px;margin-right:-40px}.kbd-section-3{margin-left:8px;margin-right:-40px}.kbd-row{display:flex;gap:4px;padding:2px 0}.kbd-key{display:flex;flex-direction:column;align-items:stretch;height:44px;border-radius:5px;background:#5a8691;border:1px solid #6a969f;cursor:pointer;padding:2px 5px;position:relative;transition:background .08s,border-color .08s;overflow:hidden}html[data-theme=light] .kbd-key{background:#5a8691;border-color:#6a969f}.kbd-key:hover,html[data-theme=light] .kbd-key:hover{background:#6a969f}.kbd-key:active,.kbd-key.pressed{background:var(--accent-blue-bg-strong);border-color:var(--accent-blue-border)}.kbd-key.shift-active{background:var(--accent-red-bg-strong);border-color:var(--accent-red-border)}.kbd-top{display:flex;justify-content:space-between;align-items:flex-start;flex:1}.kbd-section-0 .kbd-top{align-items:stretch}.kbd-main{color:#fff;font-size:26px;font-weight:700;line-height:28px;text-align:center;text-transform:lowercase;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.kbd-container[data-shift-mode=keyword] .kbd-main,.kbd-container[data-shift-mode=keyword-caps] .kbd-main,.kbd-container[data-shift-mode=caps-shift] .kbd-main{text-transform:none}.kbd-main-small{font-size:10px;font-weight:700;line-height:12px;text-align:center}.kbd-key[data-shift=symbol] .kbd-main,html[data-theme=light] .kbd-key[data-shift=symbol] .kbd-main{color:#ff6e5a}.kbd-key-center{justify-content:center;align-items:center}.kbd-key-center .kbd-top{flex:none;align-items:center;justify-content:center;width:100%}.kbd-main-center{text-align:center;font-size:16px;line-height:18px}.kbd-key-space{justify-content:center;align-items:center}.kbd-space-break{color:#fff;font-size:9px;font-weight:500;text-align:center;line-height:12px}.kbd-space-label{color:#fff;font-size:16px;font-weight:700;text-align:center;line-height:18px}.kbd-right-col{display:flex;flex-direction:column;align-items:center;gap:0;margin-left:auto;margin-right:4px;align-self:stretch}.kbd-graphic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:14px;height:14px;min-width:14px;min-height:14px;border:1px solid #FFFFFF;gap:0;flex-shrink:0}.kbd-gfx-cell{display:block}.kbd-gfx-cell.filled{background:#fff}.kbd-sym-char{color:#ff6e5a;font-size:14px;font-weight:600;line-height:20px;text-align:right;white-space:nowrap;overflow:hidden}html[data-theme=light] .kbd-sym-char{color:#ff6e5a}.kbd-sym-word{font-size:10px}.kbd-right-col .kbd-sym-char{line-height:14px;text-align:center;margin-top:auto}.kbd-section-0 .kbd-sym-char{margin-top:auto}.kbd-section-0 .kbd-key .kbd-top>.kbd-sym-char{text-align:center;align-self:flex-end;margin-bottom:-2px;margin-right:8px}.kbd-keyword{color:#fff;font-size:9px;font-weight:500;line-height:11px;text-align:right;white-space:nowrap;overflow:hidden;min-height:11px}.kbd-w1{flex:1;min-width:0}.kbd-w075{flex:.75;min-width:0}.kbd-w1_5{flex:1.5;min-width:0}.kbd-container:not([data-shift-mode]) .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container:not([data-shift-mode]) .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container:not([data-shift-mode]) .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{text-transform:uppercase;position:absolute;top:2px;left:4px;transform:none;font-size:22px;line-height:24px}.kbd-container:not([data-shift-mode]) .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-sym-char,.kbd-container:not([data-shift-mode]) .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-sym-char,.kbd-container:not([data-shift-mode]) .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-sym-char{position:absolute;top:2px;right:4px;z-index:1}.kbd-container:not([data-shift-mode]) .kbd-section-0 .kbd-main{position:absolute;top:2px;left:4px;transform:none;font-size:22px;line-height:24px}.kbd-container:not([data-shift-mode]) .kbd-section-0 .kbd-right-col{position:static;margin:0}.kbd-container:not([data-shift-mode]) .kbd-section-0 .kbd-graphic{position:absolute;top:2px;right:4px}.kbd-container:not([data-shift-mode]) .kbd-section-0 .kbd-sym-char,.kbd-container:not([data-shift-mode]) .kbd-section-0 .kbd-right-col .kbd-sym-char{position:absolute;bottom:2px;right:4px;left:auto;top:auto;margin-top:0;z-index:1;text-align:right}.kbd-container:not([data-shift-mode]) .kbd-keyword{font-size:11px;line-height:13px}.kbd-container .kbd-above-text,.kbd-container .kbd-sym-char,.kbd-container .kbd-below-text,.kbd-container .kbd-keyword,.kbd-container .kbd-color-name,.kbd-container .kbd-main,.kbd-container .kbd-graphic,.kbd-container .kbd-arrow-svg,.kbd-container .kbd-space-break,.kbd-container .kbd-space-label{transition:opacity .15s ease}.kbd-container .kbd-key[data-shift] .kbd-main,.kbd-container .kbd-key-center .kbd-main,.kbd-container .kbd-key-space .kbd-space-break,.kbd-container .kbd-key-space .kbd-space-label{opacity:1!important}.kbd-key[data-shift] .kbd-main,.kbd-key-center .kbd-main{position:static;top:auto;left:auto;transform:none;text-transform:none}.kbd-container[data-shift-mode=keyword] .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=keyword] .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=keyword] .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=keyword-caps] .kbd-section-1 .kbd-main,.kbd-container[data-shift-mode=keyword-caps] .kbd-section-2 .kbd-main,.kbd-container[data-shift-mode=keyword-caps] .kbd-section-3 .kbd-main{opacity:0}.kbd-container[data-shift-mode=keyword] .kbd-keyword,.kbd-container[data-shift-mode=keyword-caps] .kbd-keyword{opacity:1;font-size:16px;line-height:1.2;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;text-align:center}.kbd-container[data-shift-mode=keyword] .kbd-sym-char,.kbd-container[data-shift-mode=keyword] .kbd-graphic,.kbd-container[data-shift-mode=keyword-caps] .kbd-sym-char,.kbd-container[data-shift-mode=keyword-caps] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=keyword-caps] .kbd-section-0 .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=keyword] .kbd-above-text,.kbd-container[data-shift-mode=keyword] .kbd-color-name,.kbd-container[data-shift-mode=keyword] .kbd-below-text,.kbd-container[data-shift-mode=keyword] .kbd-arrow-svg,.kbd-container[data-shift-mode=keyword] .kbd-space-break,.kbd-container[data-shift-mode=keyword] .kbd-space-label,.kbd-container[data-shift-mode=keyword-caps] .kbd-section-1 .kbd-above-text,.kbd-container[data-shift-mode=keyword-caps] .kbd-section-2 .kbd-above-text,.kbd-container[data-shift-mode=keyword-caps] .kbd-section-3 .kbd-above-text,.kbd-container[data-shift-mode=keyword-caps] .kbd-color-name,.kbd-container[data-shift-mode=keyword-caps] .kbd-below-text,.kbd-container[data-shift-mode=keyword-caps] .kbd-space-break,.kbd-container[data-shift-mode=keyword-caps] .kbd-space-label{opacity:.35}.kbd-container[data-shift-mode=caps-shift] .kbd-sym-char,.kbd-container[data-shift-mode=caps-shift] .kbd-keyword,.kbd-container[data-shift-mode=caps-shift] .kbd-graphic,.kbd-container[data-shift-mode=caps-shift] .kbd-section-0 .kbd-main{opacity:0}.kbd-container[data-shift-mode=caps-shift] .kbd-below-text,.kbd-container[data-shift-mode=caps-shift] .kbd-color-name,.kbd-container[data-shift-mode=caps-shift] .kbd-section-1 .kbd-above-text,.kbd-container[data-shift-mode=caps-shift] .kbd-section-2 .kbd-above-text,.kbd-container[data-shift-mode=caps-shift] .kbd-section-3 .kbd-above-text,.kbd-container[data-shift-mode=caps-shift] .kbd-space-break{opacity:.35}.kbd-container[data-shift-mode=symbol] .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=symbol] .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=symbol] .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=symbol] .kbd-section-0 .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=symbol] .kbd-sym-char{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;line-height:1.2;z-index:2;text-align:center}.kbd-container[data-shift-mode=symbol] .kbd-sym-word{font-size:16px}.kbd-container[data-shift-mode=symbol] .kbd-keyword,.kbd-container[data-shift-mode=symbol] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=symbol] .kbd-above-text,.kbd-container[data-shift-mode=symbol] .kbd-color-name,.kbd-container[data-shift-mode=symbol] .kbd-below-text,.kbd-container[data-shift-mode=symbol] .kbd-arrow-svg,.kbd-container[data-shift-mode=symbol] .kbd-space-break,.kbd-container[data-shift-mode=symbol] .kbd-space-label{opacity:.35}.kbd-ext-above,.kbd-ext-below{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;font-weight:600;line-height:1.2;z-index:2;text-align:center;white-space:nowrap}.kbd-ext-above{color:#0f0}html[data-theme=light] .kbd-ext-above{color:#00cd00}.kbd-ext-below{color:#ff6e5a}.kbd-ext-color{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:600;line-height:1.2;z-index:2;text-align:center;white-space:nowrap}.kbd-container[data-shift-mode=extended] .kbd-sym-char,.kbd-container[data-shift-mode=extended] .kbd-keyword,.kbd-container[data-shift-mode=extended] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=extended] .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended] .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended] .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended] .kbd-section-1 .kbd-ext-above,.kbd-container[data-shift-mode=extended] .kbd-section-2 .kbd-ext-above,.kbd-container[data-shift-mode=extended] .kbd-section-3 .kbd-ext-above{display:block}.kbd-container[data-shift-mode=extended] .kbd-section-0 .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended] .kbd-section-0 .kbd-ext-color{display:block}.kbd-container[data-shift-mode=extended] .kbd-above-text,.kbd-container[data-shift-mode=extended] .kbd-color-name,.kbd-container[data-shift-mode=extended] .kbd-below-text,.kbd-container[data-shift-mode=extended] .kbd-arrow-svg,.kbd-container[data-shift-mode=extended] .kbd-space-break,.kbd-container[data-shift-mode=extended] .kbd-space-label{opacity:.35}.kbd-container[data-shift-mode=extended-caps] .kbd-sym-char,.kbd-container[data-shift-mode=extended-caps] .kbd-keyword,.kbd-container[data-shift-mode=extended-caps] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=extended-caps] .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended-caps] .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended-caps] .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended-caps] .kbd-section-1 .kbd-ext-below,.kbd-container[data-shift-mode=extended-caps] .kbd-section-2 .kbd-ext-below,.kbd-container[data-shift-mode=extended-caps] .kbd-section-3 .kbd-ext-below{display:block}.kbd-container[data-shift-mode=extended-caps] .kbd-section-0 .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended-caps] .kbd-section-0 .kbd-ext-color{display:block}.kbd-container[data-shift-mode=extended-caps] .kbd-above-text,.kbd-container[data-shift-mode=extended-caps] .kbd-color-name,.kbd-container[data-shift-mode=extended-caps] .kbd-below-text,.kbd-container[data-shift-mode=extended-caps] .kbd-arrow-svg,.kbd-container[data-shift-mode=extended-caps] .kbd-space-break,.kbd-container[data-shift-mode=extended-caps] .kbd-space-label{opacity:.35}.kbd-container[data-shift-mode=extended-symbol] .kbd-sym-char,.kbd-container[data-shift-mode=extended-symbol] .kbd-keyword,.kbd-container[data-shift-mode=extended-symbol] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=extended-symbol] .kbd-section-1 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended-symbol] .kbd-section-2 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main,.kbd-container[data-shift-mode=extended-symbol] .kbd-section-3 .kbd-key:not(.kbd-key-center):not([data-shift]) .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended-symbol] .kbd-section-1 .kbd-ext-below,.kbd-container[data-shift-mode=extended-symbol] .kbd-section-2 .kbd-ext-below,.kbd-container[data-shift-mode=extended-symbol] .kbd-section-3 .kbd-ext-below{display:block}.kbd-container[data-shift-mode=extended-symbol] .kbd-section-0 .kbd-main{opacity:.5;position:absolute;top:2px;left:4px;transform:none;font-size:11px;line-height:13px;z-index:1}.kbd-container[data-shift-mode=extended-symbol] .kbd-section-0 .kbd-ext-below{display:block;font-size:11px}.kbd-container[data-shift-mode=extended-symbol] .kbd-above-text,.kbd-container[data-shift-mode=extended-symbol] .kbd-color-name,.kbd-container[data-shift-mode=extended-symbol] .kbd-below-text,.kbd-container[data-shift-mode=extended-symbol] .kbd-arrow-svg,.kbd-container[data-shift-mode=extended-symbol] .kbd-space-break,.kbd-container[data-shift-mode=extended-symbol] .kbd-space-label{opacity:.35}.kbd-container[data-shift-mode=letter] .kbd-sym-char,.kbd-container[data-shift-mode=letter] .kbd-keyword,.kbd-container[data-shift-mode=letter] .kbd-graphic{opacity:0}.kbd-container[data-shift-mode=letter] .kbd-above-text,.kbd-container[data-shift-mode=letter] .kbd-color-name,.kbd-container[data-shift-mode=letter] .kbd-below-text,.kbd-container[data-shift-mode=letter] .kbd-arrow-svg,.kbd-container[data-shift-mode=letter] .kbd-space-break{opacity:.35}.kbd-container[data-shift-mode=graphics] .kbd-main,.kbd-container[data-shift-mode=graphics] .kbd-sym-char,.kbd-container[data-shift-mode=graphics] .kbd-keyword{opacity:0}.kbd-container[data-shift-mode=graphics] .kbd-above-text,.kbd-container[data-shift-mode=graphics] .kbd-color-name,.kbd-container[data-shift-mode=graphics] .kbd-below-text{opacity:.35}.kbd-udg{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);image-rendering:pixelated;width:24px;height:24px;pointer-events:none}.kbd-container[data-shift-mode=graphics] .kbd-key.udg-active .kbd-udg{display:block;z-index:2}.kbd-container[data-shift-mode=graphics] .kbd-key[data-udg]:not(.udg-active) .kbd-main{opacity:1}.kbd-font-char{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);image-rendering:pixelated;width:24px;height:24px;pointer-events:none}.kbd-container.kbd-custom-font.kbd-has-custom-font:not([data-shift-mode]) .kbd-key.font-active .kbd-font-char.active{display:block;z-index:2}.kbd-container.kbd-custom-font.kbd-has-custom-font:not([data-shift-mode]) .kbd-key.font-active .kbd-main{opacity:0}.kbd-container.kbd-custom-font.kbd-has-custom-font[data-shift-mode=letter] .kbd-key:not(.kbd-key-center).font-active .kbd-font-char.active{display:block;z-index:2}.kbd-container.kbd-custom-font.kbd-has-custom-font[data-shift-mode=letter] .kbd-key:not(.kbd-key-center).font-active .kbd-main{opacity:0}.kbd-container.kbd-custom-font.kbd-has-custom-font[data-shift-mode=caps-shift] :not(.kbd-section-0)>.kbd-row>.kbd-key:not(.kbd-key-center).font-active .kbd-font-char.active{display:block;z-index:2}.kbd-container.kbd-custom-font.kbd-has-custom-font[data-shift-mode=caps-shift] :not(.kbd-section-0)>.kbd-row>.kbd-key:not(.kbd-key-center).font-active .kbd-main{opacity:0}#settings .debug-window-content{overflow:hidden}.settings-content{display:flex;flex-direction:column;gap:16px;padding:12px;-webkit-user-select:none;user-select:none}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding-bottom:4px;border-bottom:1px solid var(--separator-bg)}.settings-row{display:flex;align-items:center;gap:8px}.settings-row-end{justify-content:flex-end}.settings-label{font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;width:80px}.settings-label-wide{width:auto;flex:1}.settings-chips{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:22px;min-width:0}.settings-chips.editing{background:var(--input-bg);border:1px solid var(--accent-blue-border);border-radius:4px;padding:3px 6px}.settings-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-family:SF Mono,Cascadia Code,Fira Code,monospace;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--control-border);border-radius:3px;white-space:nowrap}.settings-chip-editable{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.settings-chip-x{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;margin:0 -2px 0 1px;font-size:13px;line-height:1;color:var(--text-muted);background:none;border:none;border-radius:2px;cursor:pointer;transition:all .1s}.settings-chip-x:hover{color:var(--accent-red);background:var(--accent-red-bg)}.settings-chip-hint{font-size:11px;color:var(--text-muted);font-style:italic}.settings-btn{padding:3px 10px;font-size:11px;font-family:inherit;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--control-border);border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.settings-btn:hover{background:var(--overlay-hover);color:var(--text-primary)}.settings-btn-save{background:var(--accent-green-bg);color:var(--accent-green);border-color:var(--accent-green-border)}.settings-btn-save:hover{background:var(--accent-green-bg);color:var(--accent-green)}.settings-btn-danger{color:var(--accent-red);border-color:var(--accent-red-border)}.settings-btn-danger:hover{background:var(--accent-red-bg)}.udg-editor{display:flex;flex-direction:column;height:100%;min-height:0;gap:6px;font-family:var(--font-sans);padding:6px}.udg-letter-bar{display:flex;flex-wrap:wrap;gap:2px;padding:2px 0}.udg-letter-btn{width:24px;height:24px;padding:0;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--glass-bg-header);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.udg-letter-btn canvas{width:14px;height:14px;image-rendering:pixelated}.udg-letter-btn:hover{background:var(--glass-border);border-color:var(--accent-blue-border)}.udg-letter-btn.selected{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);box-shadow:0 0 6px var(--accent-blue-bg-stronger)}.udg-editor-body{display:flex;gap:8px;align-items:center;flex-shrink:0}.udg-pixel-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;background:var(--glass-border);border:1px solid var(--glass-border);border-radius:var(--radius-sm);flex-shrink:0;width:168px;height:168px}.udg-pixel-cell{background:var(--bg-secondary);cursor:crosshair;transition:background .05s}.udg-pixel-cell.filled{background:var(--text-primary)}.udg-pixel-cell:hover{opacity:.8}.udg-byte-display{display:flex;flex-direction:column;height:168px;flex-shrink:0}.udg-byte-row{flex:1;display:flex;align-items:center;font-family:var(--font-mono);font-size:10px;color:var(--text-muted);white-space:pre}.udg-toolbars{display:flex;flex-wrap:wrap;gap:6px;padding:5px 0;border-top:1px solid var(--separator-bg);border-bottom:1px solid var(--separator-bg)}.udg-toolbar-group{display:flex;align-items:center;gap:2px;padding:2px 4px;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--glass-bg-header)}.udg-group-label{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-right:3px;-webkit-user-select:none;user-select:none}.udg-toolbar-group button{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.udg-toolbar-group button:hover{background:var(--glass-border);border-color:var(--control-border);color:var(--text-primary)}.udg-toolbar-group button.btn-flash{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green);transition:all .05s}.udg-toolbar-group button.has-clipboard{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.udg-live-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:color .15s;padding:0 2px}.udg-live-toggle:hover{color:var(--text-primary)}.udg-live-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:14px;border:1px solid var(--glass-border);border-radius:7px;background:var(--control-bg);cursor:pointer;position:relative;flex-shrink:0;transition:background .2s,border-color .2s}.udg-live-checkbox:after{content:"";position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--text-muted);transition:transform .2s,background .2s}.udg-live-checkbox:checked{background:var(--accent-red-bg-stronger);border-color:var(--accent-red)}.udg-live-checkbox:checked:after{transform:translate(12px);background:var(--accent-red)}.udg-live-checkbox:hover{border-color:var(--accent-red)}.udg-sync-indicator{font-size:10px;color:var(--accent-orange);padding:0;display:none;flex-shrink:0}.udg-sync-indicator.visible{display:block}.udg-basic-panel{display:flex;flex-direction:column;flex:1;min-height:0}.udg-basic-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:3px;flex-shrink:0}.udg-basic-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.udg-basic-actions{display:flex;gap:6px}.udg-basic-actions button{padding:2px 8px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:var(--glass-bg-header);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.udg-basic-actions button:hover{background:var(--glass-border);color:var(--text-primary)}.udg-basic-actions .btn-write{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green)}.udg-basic-actions .btn-write:hover{background:var(--accent-green-bg-stronger)}.udg-basic-editor-container{position:relative;flex:1;min-height:0;overflow:hidden;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--input-bg)}.udg-basic-textarea,.udg-basic-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:6px 8px;font-family:var(--font-mono);font-size:11px;line-height:18px;white-space:pre;overflow:auto;margin:0;border:none;box-sizing:border-box}.udg-basic-textarea{background:transparent;color:transparent;caret-color:var(--text-primary);z-index:2;resize:none;outline:none}.udg-basic-highlight{z-index:1;color:var(--text-primary);pointer-events:none}.font-editor{display:flex;flex-direction:column;height:100%;min-height:0;gap:6px;font-family:var(--font-sans);padding:6px}.fe-char-bar{display:flex;flex-wrap:wrap;gap:2px;padding:2px 0;max-height:110px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent}.fe-char-bar::-webkit-scrollbar{width:4px}.fe-char-bar::-webkit-scrollbar-track{background:transparent}.fe-char-bar::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:2px}.fe-char-btn{width:24px;height:24px;padding:0;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--glass-bg-header);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.fe-char-btn canvas{width:14px;height:14px;image-rendering:pixelated}.fe-char-btn:hover{background:var(--glass-border);border-color:var(--accent-blue-border)}.fe-char-btn.selected{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);box-shadow:0 0 6px var(--accent-blue-bg-stronger)}.fe-editor-body{display:flex;gap:8px;align-items:center;flex-shrink:0}.fe-pixel-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;background:var(--glass-border);border:1px solid var(--glass-border);border-radius:var(--radius-sm);flex-shrink:0;width:168px;height:168px}.fe-pixel-cell{background:var(--bg-secondary);cursor:crosshair;transition:background .05s}.fe-pixel-cell.filled{background:var(--text-primary)}.fe-pixel-cell:hover{opacity:.8}.fe-byte-display{display:flex;flex-direction:column;height:168px;flex-shrink:0}.fe-byte-row{flex:1;display:flex;align-items:center;font-family:var(--font-mono);font-size:10px;color:var(--text-muted);white-space:pre}.fe-toolbars{display:flex;flex-wrap:wrap;gap:6px;padding:5px 0;border-top:1px solid var(--separator-bg);border-bottom:1px solid var(--separator-bg)}.fe-toolbar-group{display:flex;align-items:center;gap:2px;padding:2px 4px;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--glass-bg-header)}.fe-group-label{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-right:3px;-webkit-user-select:none;user-select:none}.fe-toolbar-group button{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.fe-toolbar-group button:hover{background:var(--glass-border);border-color:var(--control-border);color:var(--text-primary)}.fe-toolbar-group button.btn-flash{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green);transition:all .05s}@keyframes fe-btn-flash{0%{background:var(--accent-green-bg-stronger)}to{background:transparent}}.fe-toolbar-group button.has-clipboard{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.fe-address-input{width:60px;padding:2px 4px;font-family:var(--font-mono);font-size:10px;background:var(--input-bg);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center}.fe-address-input:focus{outline:none;border-color:var(--accent-blue-border);box-shadow:0 0 4px var(--accent-blue-bg-stronger)}.fe-live-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;transition:color .15s;padding:0 2px}.fe-live-toggle:hover{color:var(--text-primary)}.fe-live-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:14px;border:1px solid var(--glass-border);border-radius:7px;background:var(--control-bg);cursor:pointer;position:relative;flex-shrink:0;transition:background .2s,border-color .2s}.fe-live-checkbox:after{content:"";position:absolute;left:2px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--text-muted);transition:transform .2s,background .2s}.fe-live-checkbox:checked{background:var(--accent-red-bg-stronger);border-color:var(--accent-red)}.fe-live-checkbox:checked:after{transform:translate(12px);background:var(--accent-red)}.fe-live-checkbox:hover{border-color:var(--accent-red)}.fe-basic-panel{display:flex;flex-direction:column;flex:1;min-height:0}.fe-basic-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:3px;flex-shrink:0}.fe-basic-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.fe-basic-actions{display:flex;gap:6px}.fe-basic-actions button{padding:2px 8px;font-family:var(--font-sans);font-size:10px;font-weight:500;background:var(--glass-bg-header);border:1px solid var(--control-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.fe-basic-actions button:hover{background:var(--glass-border);color:var(--text-primary)}.fe-basic-actions .btn-write{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green)}.fe-basic-actions .btn-write:hover{background:var(--accent-green-bg-stronger)}.fe-basic-editor-container{position:relative;flex:1;min-height:0;overflow:hidden;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-sm);background:var(--input-bg)}.fe-basic-textarea,.fe-basic-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:6px 8px;font-family:var(--font-mono);font-size:11px;line-height:18px;white-space:pre;overflow:auto;margin:0;border:none;box-sizing:border-box}.fe-basic-textarea{background:transparent;color:transparent;caret-color:var(--text-primary);z-index:2;resize:none;outline:none}.fe-basic-highlight{z-index:1;color:var(--text-primary);pointer-events:none}.fe-sync-indicator{font-size:10px;color:var(--accent-orange);padding:0;display:none;flex-shrink:0}.fe-sync-indicator.visible{display:block}.spectranet-header-leds{display:flex;gap:4px;margin-left:auto;margin-right:6px}.spectranet-led{font-family:var(--font-mono, monospace);font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;color:var(--text-tertiary);background:var(--bg-tertiary);border:1px solid var(--glass-border);transition:color .05s,background .05s,border-color .05s}.spectranet-led-on#snet-tx-led{color:var(--accent-red);background:var(--accent-red-bg, var(--bg-tertiary));border-color:var(--accent-red-border, var(--accent-red))}.spectranet-led-on#snet-rx-led{color:var(--accent-green);background:var(--accent-green-bg, var(--bg-tertiary));border-color:var(--accent-green-border, var(--accent-green))}#spectranet-window .debug-window-content{overflow:hidden}.spectranet-content{padding:8px;display:flex;flex-direction:column;gap:10px;font-size:12px;height:100%;min-height:0}.spectranet-section{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:6px;padding:8px;flex-shrink:0}.spectranet-section-title{font-size:11px;font-weight:600;color:var(--accent-blue);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.spectranet-registers{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.spectranet-reg-row{display:flex;justify-content:space-between;padding:2px 0}.spectranet-reg-name{color:var(--text-secondary);font-size:11px}.spectranet-reg-value{font-family:var(--font-mono, monospace);color:var(--accent-green);font-size:11px;font-weight:600}.spectranet-sockets{display:grid;grid-template-columns:1fr 1fr;gap:4px}.spectranet-socket{display:flex;align-items:center;gap:6px;padding:4px 6px;background:var(--bg-tertiary);border-radius:4px;border:1px solid var(--glass-border)}.spectranet-socket-num{font-family:var(--font-mono, monospace);color:var(--text-secondary);font-size:10px;font-weight:700;min-width:10px}.spectranet-socket-status{font-family:var(--font-mono, monospace);font-size:10px;color:var(--text-tertiary)}.spectranet-socket-status.spectranet-socket-active{color:var(--accent-green)}.spectranet-config{display:flex;flex-direction:column;gap:6px}.spectranet-config-row{display:flex;flex-direction:column;gap:2px}.spectranet-apply-btn{align-self:flex-start;background:var(--bg-tertiary);border:1px solid var(--accent-blue-border);border-radius:4px;padding:4px 12px;color:var(--accent-blue);font-size:11px;font-weight:600;cursor:pointer}.spectranet-apply-btn:hover{background:var(--accent-blue-bg)}.spectranet-apply-btn:active{transform:scale(.95)}.spectranet-apply-btn-success{color:var(--accent-green);border-color:var(--accent-green)}.spectranet-config-label{color:var(--text-secondary);font-size:11px}.spectranet-config-input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:4px;padding:4px 6px;color:var(--text-primary);font-size:11px;font-family:var(--font-mono, monospace);outline:none}.spectranet-config-input:focus{border-color:var(--accent-blue-border)}.spectranet-config-input::placeholder{color:var(--text-tertiary)}.spectranet-config-input:disabled{opacity:.4;cursor:not-allowed}.spectranet-content>.spectranet-section:last-child{flex:1 1 0;min-height:80px;display:flex;flex-direction:column;overflow:hidden}.spectranet-flash-storage{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}.spectranet-flash-save-row{display:flex;gap:4px;align-items:center;flex-shrink:0}.spectranet-flash-name-input{flex:1;min-width:0}.spectranet-flash-list{display:flex;flex-direction:column;gap:3px;flex:1;min-height:0;overflow-y:auto}.spectranet-flash-empty{color:var(--text-tertiary);font-size:11px;font-style:italic;padding:4px 0}.spectranet-flash-item{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;background:var(--bg-tertiary);border-radius:4px;border:1px solid var(--glass-border);gap:6px}.spectranet-flash-item.spectranet-flash-active{border-color:var(--accent-green)}.spectranet-flash-active .spectranet-flash-item-name{color:var(--accent-green)}.spectranet-flash-item-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.spectranet-flash-item-name{font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spectranet-flash-item-date{font-size:9px;color:var(--text-tertiary)}.spectranet-flash-item-actions{display:flex;gap:3px;flex-shrink:0}.spectranet-flash-action-btn{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:3px;padding:2px 5px;color:var(--text-secondary);font-size:9px;cursor:pointer}.spectranet-flash-action-btn:hover{color:var(--accent-blue);border-color:var(--accent-blue-border)}.spectranet-flash-action-btn:active{transform:scale(.95)}.spectranet-flash-rename-input{font-size:11px;font-weight:600;padding:1px 4px;width:100%;min-width:0}.spectranet-flash-tooltip{position:fixed;z-index:100000;pointer-events:none;background:var(--bg-secondary);border:1px solid var(--accent-blue-border);border-radius:6px;padding:8px 10px;font-size:11px;min-width:180px;opacity:0;transition:opacity .15s;box-shadow:var(--shadow-lg, 0 4px 12px rgba(0, 0, 0, .3))}.spectranet-flash-tooltip-visible{opacity:1}.spectranet-tooltip-row{display:flex;justify-content:space-between;gap:12px;padding:1px 0}.spectranet-tooltip-label{color:var(--text-secondary);font-size:10px;white-space:nowrap}.spectranet-tooltip-value{font-family:var(--font-mono, monospace);color:var(--accent-green);font-size:10px;font-weight:600;white-space:nowrap}.spectranet-tooltip-heading{font-size:9px;font-weight:700;color:var(--accent-blue);text-transform:uppercase;letter-spacing:.5px;padding:4px 0 2px;border-top:1px solid var(--glass-border);margin-top:2px}.spectranet-tooltip-heading:first-child{border-top:none;margin-top:0;padding-top:0}#tnfs-browser-window .debug-window-content{overflow:hidden}.tnfs-container{display:flex;flex-direction:column;height:100%;min-height:0;font-size:12px}.tnfs-connect-bar{display:flex;gap:6px;padding:8px 8px 6px;border-bottom:1px solid var(--glass-border)}.tnfs-server-input{flex:1;background:var(--input-bg);color:var(--text-primary);border:1px solid var(--input-border);border-radius:4px;padding:5px 8px;font-size:12px;font-family:var(--font-mono, monospace);outline:none}.tnfs-server-input:focus{border-color:var(--accent-blue)}.tnfs-connect-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:4px;padding:5px 12px;font-size:11px;cursor:pointer;white-space:nowrap}.tnfs-connect-btn:hover{background:var(--accent-blue-bg);border-color:var(--accent-blue-border);color:var(--accent-blue)}.tnfs-path-bar{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--glass-border);background:var(--bg-secondary);min-height:28px}.tnfs-up-btn{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:3px;padding:2px 4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.tnfs-up-btn:hover:not(:disabled){color:var(--accent-blue);border-color:var(--accent-blue-border)}.tnfs-up-btn:disabled{opacity:.4;cursor:default}.tnfs-path{font-family:var(--font-mono, monospace);font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tnfs-file-list{flex:1;min-height:0;overflow-y:auto;padding:4px}.tnfs-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:default;border:1px solid transparent;-webkit-user-select:none;user-select:none}.tnfs-item-dir{cursor:pointer}.tnfs-item-dir:hover{background:var(--accent-blue-bg);border-color:var(--accent-blue-border)}.tnfs-item-loadable{cursor:pointer}.tnfs-item-loadable:hover{background:var(--accent-green-bg);border-color:var(--accent-green-border)}.tnfs-item:not(.tnfs-item-dir):not(.tnfs-item-loadable){opacity:.5}.tnfs-downloading{background:var(--accent-orange-bg, var(--bg-tertiary));border-color:var(--accent-orange-border, var(--accent-orange))}.tnfs-item-icon{width:14px;height:14px;flex-shrink:0;font-family:var(--font-mono, monospace);font-size:10px;font-weight:700;text-align:center;line-height:14px}.tnfs-icon-dir:before{content:"D";color:var(--accent-blue)}.tnfs-icon-file:before{content:"-";color:var(--text-tertiary)}.tnfs-icon-file-loadable:before{content:">";color:var(--accent-green)}.tnfs-item-name{flex:1;font-family:var(--font-mono, monospace);font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tnfs-item-dir .tnfs-item-name{color:var(--accent-blue)}.tnfs-item-loadable .tnfs-item-name{color:var(--accent-green)}.tnfs-item-size{font-family:var(--font-mono, monospace);font-size:10px;color:var(--text-tertiary);white-space:nowrap}.tnfs-status-bar{padding:4px 8px;border-top:1px solid var(--glass-border);background:var(--bg-secondary);font-size:10px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tnfs-empty,.tnfs-loading,.tnfs-error{padding:24px 16px;text-align:center;color:var(--text-tertiary);font-size:12px}.tnfs-error{color:var(--accent-red)}.tnfs-loading{display:flex;align-items:center;justify-content:center;gap:8px}.tnfs-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--glass-border);border-top-color:var(--accent-blue);border-radius:50%;animation:tnfs-spin .8s linear infinite}@keyframes tnfs-spin{to{transform:rotate(360deg)}}.assembler-window{display:flex;flex-direction:column;height:100%;overflow:hidden;font-family:Menlo,Consolas,Courier New,monospace;font-size:12px}.asm-toolbar{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--glass-border);flex-shrink:0;background:var(--bg-secondary)}.asm-toolbar button{padding:3px 10px;font-size:11px;cursor:pointer;background:var(--control-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:3px;white-space:nowrap}.asm-toolbar button:hover{background:var(--control-hover)}.asm-toolbar button.asm-assemble-btn{background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--text-primary);font-weight:700}.asm-toolbar button.asm-assemble-btn:hover{background:var(--accent-green-bg-stronger)}.asm-toolbar .asm-org-group{display:flex;align-items:center;gap:4px;margin-left:auto}.asm-toolbar .asm-org-label{color:var(--text-secondary);font-size:11px}.asm-toolbar .asm-org-input{width:50px;padding:2px 4px;font-family:Menlo,Consolas,Courier New,monospace;font-size:11px;background:var(--input-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:3px;text-align:center}.asm-split{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.asm-editor-pane{flex:1;display:flex;flex-direction:column;min-height:80px;overflow:hidden}.asm-editor-wrapper{flex:1;display:flex;overflow:hidden;position:relative}.asm-line-numbers{padding:4px 6px 4px 4px;background:var(--bg-tertiary);color:var(--text-tertiary);font-size:11px;line-height:16px;text-align:right;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:pre;border-right:1px solid var(--glass-border);min-width:30px}.asm-source-editor{flex:1;resize:none;padding:4px 8px;font-family:Menlo,Consolas,Courier New,monospace;font-size:12px;line-height:16px;background:var(--bg-primary);color:var(--text-primary);border:none;outline:none;overflow-y:auto;overflow-x:auto;white-space:pre;tab-size:8;-moz-tab-size:8}.asm-splitter{height:4px;background:var(--glass-border);cursor:ns-resize;flex-shrink:0}.asm-splitter:hover{background:var(--accent-blue)}.asm-output-pane{display:flex;flex-direction:column;min-height:60px;overflow:hidden}.asm-output-tabs{display:flex;gap:0;border-bottom:1px solid var(--glass-border);background:var(--bg-secondary);flex-shrink:0}.asm-output-tab{padding:3px 12px;font-size:11px;cursor:pointer;background:transparent;color:var(--text-secondary);border:none;border-bottom:2px solid transparent}.asm-output-tab.active{color:var(--accent-green);border-bottom-color:var(--accent-green)}.asm-output-tab:hover:not(.active){color:var(--text-primary)}.asm-output-content{flex:1;overflow:auto;padding:4px 8px;font-size:11px;line-height:16px;background:var(--bg-primary);white-space:pre}.asm-listing-line{display:flex;gap:8px}.asm-listing-addr{color:var(--accent-blue);min-width:40px}.asm-listing-bytes{color:var(--accent-green);min-width:100px}.asm-listing-source{color:var(--text-secondary)}.asm-error-line{color:var(--accent-red)}.asm-error-line .asm-error-linenum{color:var(--accent-orange);margin-right:4px}.asm-status{display:flex;align-items:center;justify-content:space-between;padding:2px 8px;font-size:10px;color:var(--text-tertiary);background:var(--bg-secondary);border-top:1px solid var(--glass-border);flex-shrink:0}.asm-status-success{color:var(--accent-green)}.asm-status-error{color:var(--accent-red)}.cpu-trace{display:flex;flex-direction:column;height:100%;font-family:Berkeley Mono,JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--text-primary);background:var(--bg-primary);-webkit-user-select:text;user-select:text}.cpu-trace-toolbar{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--glass-border);flex-shrink:0}.cpu-trace-btn{background:var(--control-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:4px;padding:2px 8px;font-size:11px;cursor:pointer;font-family:inherit}.cpu-trace-btn:hover{background:var(--control-bg-hover, var(--glass-bg-hover))}.cpu-trace-btn.active{background:var(--accent-blue);color:var(--bg-primary);border-color:var(--accent-blue)}.cpu-trace-status{font-size:10px;color:var(--text-secondary);margin-left:auto}.cpu-trace-header{display:flex;padding:2px 8px;border-bottom:1px solid var(--glass-border);font-size:10px;color:var(--text-secondary);flex-shrink:0;gap:0}.cpu-trace-header span{flex-shrink:0}.cpu-trace-col-num{width:44px;text-align:right;padding-right:6px}.cpu-trace-col-addr{width:40px}.cpu-trace-col-bytes{width:80px}.cpu-trace-col-mnemonic{width:120px}.cpu-trace-col-af,.cpu-trace-col-bc,.cpu-trace-col-de,.cpu-trace-col-hl,.cpu-trace-col-sp,.cpu-trace-col-ix,.cpu-trace-col-iy{width:40px}.cpu-trace-col-flags{width:52px}.cpu-trace-list{flex:1;overflow-y:auto;overflow-x:auto;position:relative}.cpu-trace-spacer{position:relative;width:100%}.cpu-trace-viewport{position:absolute;top:0;left:0;width:100%}.cpu-trace-row{display:flex;padding:0 8px;line-height:16px;height:16px;gap:0;white-space:nowrap}.cpu-trace-row:hover{background:var(--overlay-hover, rgba(255, 255, 255, .05))!important}.cpu-trace-row span{flex-shrink:0;overflow:hidden}.cpu-trace-row .cpu-trace-col-num{color:var(--text-tertiary, var(--text-secondary))}.cpu-trace-row .cpu-trace-col-addr{color:var(--accent-blue)}.cpu-trace-row .cpu-trace-col-bytes{color:var(--text-secondary)}.cpu-trace-row .cpu-trace-col-mnemonic{color:var(--accent-green)}.cpu-trace-row .cpu-trace-col-flags{color:var(--accent-purple);letter-spacing:1px}.cpu-trace-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:12px}.memory-heatmap-content{display:flex;flex-direction:column;height:100%;overflow:hidden;-webkit-user-select:none;user-select:none}.mhm-mode-tabs{display:flex;gap:1px;background:var(--separator-bg);border-radius:4px;overflow:hidden;flex-shrink:0}.mhm-mode-tab{padding:3px 8px;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;background:var(--bg-secondary);color:var(--text-muted);border:none;cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap}.mhm-mode-tab:hover{color:var(--text-secondary);background:var(--overlay-hover)}.mhm-mode-tab.selected[data-mode=bits]{color:var(--accent-green);background:var(--accent-green-bg)}.mhm-mode-tab.selected[data-mode=activity]{color:var(--accent-orange);background:var(--accent-orange-bg)}.memory-heatmap-toolbar{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--separator-bg);background:var(--bg-secondary);flex-shrink:0;font-size:11px;color:var(--text-secondary)}.memory-heatmap-toolbar label{color:var(--text-secondary);font-size:11px}.memory-heatmap-width-input,.memory-heatmap-fade-input{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--control-border);border-radius:3px;padding:2px 4px;font-size:11px;font-family:SF Mono,Cascadia Code,Fira Code,monospace;width:42px;text-align:center}.memory-heatmap-width-input:focus,.memory-heatmap-fade-input:focus{outline:none;border-color:var(--accent-blue-border)}.memory-heatmap-width-input::-webkit-inner-spin-button,.memory-heatmap-width-input::-webkit-outer-spin-button,.memory-heatmap-fade-input::-webkit-inner-spin-button,.memory-heatmap-fade-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.memory-heatmap-width-input,.memory-heatmap-fade-input{-moz-appearance:textfield}.mhm-toggle{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0;cursor:pointer}.mhm-toggle input{opacity:0;width:0;height:0}.mhm-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--input-bg-deeper);border-radius:18px;transition:all .2s}.mhm-toggle-slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:all .2s}.mhm-toggle input:checked+.mhm-toggle-slider{background:var(--accent-green-bg)}.mhm-toggle input:checked+.mhm-toggle-slider:before{transform:translate(14px);background:var(--accent-green)}.memory-heatmap-fade-input:disabled{opacity:.4;pointer-events:none}.memory-heatmap-zoom-info{margin-left:auto;color:var(--text-secondary);font-size:10px;font-family:SF Mono,Cascadia Code,Fira Code,monospace}.memory-heatmap-canvas-container{flex:1;position:relative;overflow:hidden;cursor:crosshair}.memory-heatmap-canvas-container.panning{cursor:grab}.memory-heatmap-canvas-container.panning:active{cursor:grabbing}.memory-heatmap-canvas{position:absolute;top:0;left:0;width:100%;height:100%;image-rendering:pixelated}.mhm-minimap{position:absolute;bottom:6px;right:6px;border:1px solid var(--accent-blue-border);border-radius:3px;background:var(--glass-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:var(--shadow-md);opacity:0;transition:opacity .25s;pointer-events:none;padding:2px}.mhm-minimap.visible{opacity:1}.mhm-minimap canvas{display:block;image-rendering:pixelated}.memory-heatmap-tooltip{position:absolute;pointer-events:none;background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--accent-blue-border);border-radius:4px;padding:4px 8px;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:11px;color:var(--text-primary);white-space:nowrap;z-index:10;display:none}.memory-heatmap-tooltip.visible{display:block}.memory-heatmap-statusbar{display:flex;align-items:center;gap:12px;padding:3px 8px;border-top:1px solid var(--separator-bg);background:var(--bg-secondary);flex-shrink:0;font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:10px;color:var(--text-secondary)}.memory-heatmap-legend{display:flex;align-items:center;gap:8px;margin-left:auto}.memory-heatmap-legend-item{display:flex;align-items:center;gap:3px}.memory-heatmap-legend-swatch{display:inline-block;width:8px;height:8px;border-radius:2px}.memory-heatmap-legend-sep{display:inline-block;width:1px;height:10px;background:var(--text-muted);opacity:.4;margin:0 2px}.retro-debugger-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000;display:none;background:#000}.retro-debugger-overlay.visible{display:block}.retro-debugger-overlay canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.release-notes-content{padding:0;overflow-y:auto;overflow-x:hidden;font-family:var(--font-mono, monospace);font-size:12px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary)}.release-notes-inner{padding:16px 20px 24px}.rn-week{margin-bottom:24px}.rn-week:last-child{margin-bottom:0}.rn-week-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--glass-border)}.rn-week-date{font-size:13px;font-weight:700;color:var(--accent-blue);white-space:nowrap;letter-spacing:.5px}.rn-week-line{flex:1;height:1px;background:var(--glass-border)}.rn-category{margin-bottom:10px}.rn-category:last-child{margin-bottom:0}.rn-category-label{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:3px;margin-bottom:6px}.rn-category-label.features{color:var(--bg-primary);background:var(--accent-green)}.rn-category-label.fixes{color:var(--bg-primary);background:var(--accent-red)}.rn-category-label.improvements{color:var(--bg-primary);background:var(--accent-orange)}.rn-entries{list-style:none;margin:0;padding:0 0 0 6px}.rn-entry{display:flex;align-items:baseline;gap:8px;padding:2px 0}.rn-entry-dot{flex-shrink:0;width:4px;height:4px;border-radius:50%;margin-top:6px;background:var(--text-muted)}.rn-entry.feature .rn-entry-dot{background:var(--accent-green)}.rn-entry.fix .rn-entry-dot{background:var(--accent-red)}.rn-entry.improvement .rn-entry-dot{background:var(--accent-orange)}.rn-entry-text{color:var(--text-secondary);font-size:11.5px}.rn-entry-hash{color:var(--text-muted);font-size:10px;opacity:.6;flex-shrink:0}.rn-version-banner{text-align:center;padding:14px 16px 18px;margin-bottom:4px;border-bottom:1px solid var(--glass-border)}.rn-version-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.rn-version-title .rn-logo-r{color:var(--accent-red)}.rn-version-title .rn-logo-g{color:var(--accent-green)}.rn-version-title .rn-logo-c{color:var(--accent-blue)}.rn-version-title .rn-logo-y{color:var(--accent-orange)}.rn-version-title .rn-logo-p{color:var(--accent-purple)}.rn-version-sub{font-size:11px;color:var(--text-muted)}.rn-week-count{font-size:10px;color:var(--text-muted);opacity:.7;white-space:nowrap}#joystick .debug-window-content{overflow:hidden}.joystick-content{display:flex;flex-direction:column;gap:14px;padding:12px;-webkit-user-select:none;user-select:none}.joystick-section{display:flex;flex-direction:column;gap:8px}.joystick-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding-bottom:4px;border-bottom:1px solid var(--separator-bg)}.joystick-select{width:100%;padding:4px 8px;font-size:11px;font-family:inherit;background:var(--input-bg);color:var(--text-primary);border:1px solid var(--control-border);border-radius:4px;outline:none;cursor:pointer}.joystick-select:focus{border-color:var(--accent-blue-border)}.joystick-no-gamepad{font-size:11px;color:var(--text-muted);font-style:italic;padding:4px 0}.joystick-radio-group{display:flex;flex-direction:column;gap:2px}.joystick-radio-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;cursor:pointer;transition:background .1s}.joystick-radio-item:hover{background:var(--overlay-hover)}.joystick-radio-item input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1.5px solid var(--control-border);border-radius:50%;background:var(--input-bg);margin:0;cursor:pointer;flex-shrink:0;position:relative}.joystick-radio-item input[type=radio]:checked{border-color:var(--accent-green);background:var(--accent-green-bg)}.joystick-radio-item input[type=radio]:checked:after{content:"";position:absolute;top:2px;left:2px;width:4px;height:4px;border-radius:50%;background:var(--accent-green)}.joystick-radio-label{font-size:11px;color:var(--text-primary);flex-shrink:0;min-width:70px}.joystick-radio-desc{font-size:10px;color:var(--text-muted)}.joystick-visual{display:flex;align-items:center;justify-content:center;gap:32px;padding:8px 0}.joystick-dpad{display:grid;grid-template-columns:28px 28px 28px;grid-template-rows:28px 28px 28px;gap:2px}.joystick-dpad-btn{border-radius:3px;background:var(--bg-secondary);border:1px solid var(--control-border);display:flex;align-items:center;justify-content:center;transition:all .08s}.joystick-dpad-btn svg{width:10px;height:10px;fill:var(--text-muted);transition:fill .08s}.joystick-dpad-btn.active{background:var(--accent-green-bg);border-color:var(--accent-green-border)}.joystick-dpad-btn.active svg{fill:var(--accent-green)}.joystick-dpad-center{border-radius:3px;background:var(--bg-tertiary);border:1px solid var(--control-border)}.joystick-fire-group{display:flex;flex-direction:column;align-items:center;gap:6px}.joystick-fire-btn{width:48px;height:48px;border-radius:50%;background:var(--bg-secondary);border:2px solid var(--control-border);display:flex;align-items:center;justify-content:center;transition:all .08s}.joystick-fire-btn.active{background:var(--accent-red-bg);border-color:var(--accent-red-border)}.joystick-fire-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);transition:color .08s}.joystick-fire-btn.active+.joystick-fire-label{color:var(--accent-red)}.joystick-mapped-value{text-align:center;font-size:10px;color:var(--text-muted);font-family:SF Mono,Cascadia Code,Fira Code,monospace;min-height:14px}.joystick-axes{display:flex;gap:12px;align-items:center;justify-content:center}.joystick-axis{display:flex;align-items:center;gap:4px}.joystick-axis-label{font-size:9px;font-weight:600;color:var(--text-muted);width:10px}.joystick-axis-track{width:80px;height:6px;background:var(--bg-secondary);border:1px solid var(--control-border);border-radius:3px;position:relative;overflow:hidden}.joystick-axis-fill{position:absolute;top:0;height:100%;background:var(--accent-blue);opacity:.6;transition:left .03s,width .03s}.joystick-slider-row{display:flex;align-items:center;gap:8px}.joystick-slider-label{font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;width:60px}.joystick-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-secondary);border:1px solid var(--control-border);border-radius:2px;outline:none;cursor:pointer}.joystick-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-secondary);border:1px solid var(--control-border);cursor:pointer}.joystick-slider-value{font-size:10px;font-family:SF Mono,Cascadia Code,Fira Code,monospace;color:var(--text-muted);width:28px;text-align:right}.save-states-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.save-states-slots{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:4px 0}.save-slot{display:flex;align-items:center;gap:8px;padding:8px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--radius-sm);transition:background .15s,border-color .15s}.save-slot:hover{background:var(--control-bg-hover);border-color:var(--control-border-hover)}.save-slot .slot-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--accent-blue-bg);color:var(--accent-blue);font-family:var(--font-mono);font-size:12px;font-weight:600;flex-shrink:0}.slot-thumbnail{width:70px;height:48px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--control-bg-solid);border:1px solid var(--glass-border-subtle);display:flex;align-items:center;justify-content:center}.slot-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.slot-thumbnail .slot-empty-icon{color:var(--text-muted);font-size:16px;opacity:.4}.slot-thumbnail-preview{position:fixed;width:280px;height:192px;pointer-events:none;z-index:10000;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg-solid);box-shadow:var(--shadow-lg);overflow:hidden;opacity:0;transition:opacity .12s ease}.slot-thumbnail-preview.visible{opacity:1}.slot-thumbnail-preview img{width:100%;height:100%;object-fit:cover;display:block;image-rendering:pixelated}.slot-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.slot-name{font-family:var(--font-sans);font-size:11px;font-weight:500;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:1px 4px;width:100%;min-width:0;outline:none;transition:border-color .15s,background .15s}.slot-name:not(:disabled):hover{border-color:var(--control-border)}.slot-name:not(:disabled):focus{border-color:var(--accent-blue);background:var(--control-bg)}.slot-name:disabled{color:var(--text-muted);cursor:default}.slot-timestamp{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.slot-actions{display:flex;gap:4px;flex-shrink:0}.slot-btn{padding:4px 8px;border:1px solid var(--separator-bg);border-radius:var(--radius-sm);background:var(--glass-bg-header);color:var(--text-secondary);font-family:var(--font-sans);font-size:10px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.slot-btn:hover:not(:disabled){background:var(--control-bg-active);color:var(--text-primary)}.slot-btn:disabled{opacity:.35;cursor:default}.slot-btn.save-btn:hover:not(:disabled){border-color:var(--accent-green-border);color:var(--accent-green)}.slot-btn.load-btn:hover:not(:disabled){border-color:var(--accent-blue-border);color:var(--accent-blue)}.slot-btn.clear-btn:hover:not(:disabled){border-color:var(--accent-red-border);color:var(--accent-red)}.slot-btn.download-btn:hover:not(:disabled){border-color:var(--accent-purple-bg-strong);color:var(--accent-purple)}.save-states-toolbar{display:flex;align-items:center;gap:8px;padding:8px;border-top:1px solid var(--control-border);flex-shrink:0}.save-states-toolbar .slot-btn{font-size:11px;padding:5px 12px}.save-states-toolbar .slot-btn:hover:not(:disabled){border-color:var(--accent-blue-border);color:var(--accent-blue)}.save-slot .slot-number.auto{background:var(--accent-green-bg);color:var(--accent-green)}.save-states-divider{height:1px;background:var(--control-border);margin:2px 0}.time-travel-container{display:flex;align-items:center;gap:8px;height:100%;padding:0 4px;-webkit-user-select:none;user-select:none}.tt-record-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.tt-record-btn:hover{background:var(--control-bg-hover);border-color:var(--control-border-hover)}.tt-record-btn.active{background:var(--accent-red-bg);border-color:var(--accent-red-border);color:var(--accent-red)}.tt-record-btn .tt-record-dot{width:10px;height:10px;border-radius:50%;background:currentColor}.tt-record-btn.active .tt-record-dot{animation:tt-pulse 1.5s ease-in-out infinite}@keyframes tt-pulse{0%,to{opacity:1}50%{opacity:.4}}.tt-status{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:nowrap;width:68px;flex-shrink:0}.tt-timeline{flex:1;display:flex;flex-direction:column;gap:2px;min-width:100px}.tt-track-row{display:flex;align-items:center;gap:6px}.tt-track{flex:1;height:16px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;position:relative;cursor:pointer}.tt-track.disabled{opacity:.4;pointer-events:none}.tt-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent-green-bg);border-radius:8px;transition:width .15s;pointer-events:none}.tt-track.scrubbing .tt-fill{background:var(--accent-blue-bg);transition:none}.tt-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--accent-green);border:2px solid var(--bg-primary);transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 4px var(--accent-green-bg-stronger);transition:left .15s}.tt-track.disabled .tt-thumb{display:none}.tt-track.scrubbing .tt-thumb{background:var(--accent-blue);box-shadow:0 0 6px var(--accent-blue-bg-stronger);transition:none}.tt-time{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);white-space:nowrap;width:40px;text-align:right;flex-shrink:0}.tt-depth{font-family:var(--font-mono);font-size:10px;padding:2px 4px;border-radius:var(--radius-sm);border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-secondary);cursor:pointer;flex-shrink:0}.tt-play-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--control-border);background:var(--control-bg);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.tt-play-btn:hover:not(:disabled){background:var(--accent-green-bg);border-color:var(--accent-green-border);color:var(--accent-green)}.tt-play-btn:disabled{opacity:.3;cursor:default}.tt-play-btn svg{width:12px;height:12px}.tt-live-btn{display:flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:transparent;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.5px;cursor:default;flex-shrink:0;transition:background .15s,border-color .15s,color .15s;pointer-events:none}.tt-live-btn.visible{border-color:var(--accent-green-border);background:var(--accent-green-bg);color:var(--accent-green);cursor:pointer;pointer-events:auto}.tt-live-btn.visible:hover{background:var(--accent-green-bg-strong)}
