:root{color-scheme:light dark;--bg-app-light: #f6f8fa;--bg-app-dark: #0d1117;--bg-app: light-dark(var(--bg-app-light), var(--bg-app-dark));--bg-panel-light: #ffffff;--bg-panel-dark: #161b22;--bg-panel: light-dark(var(--bg-panel-light), var(--bg-panel-dark));--bg-subtle-light: #f0f3f6;--bg-subtle-dark: #21262d;--bg-subtle: light-dark(var(--bg-subtle-light), var(--bg-subtle-dark));--border-light: #d0d7de;--border-dark: #30363d;--border-color: light-dark(var(--border-light), var(--border-dark));--border-subtle-light: #e1e4e8;--border-subtle-dark: #21262d;--border-subtle: light-dark(var(--border-subtle-light), var(--border-subtle-dark));--text-main-light: #1f2328;--text-main-dark: #f0f6fc;--text-main: light-dark(var(--text-main-light), var(--text-main-dark));--text-muted-light: #656d76;--text-muted-dark: #8b949e;--text-muted: light-dark(var(--text-muted-light), var(--text-muted-dark));--accent-light: #0969da;--accent-dark: #38bdf8;--accent: light-dark(var(--accent-light), var(--accent-dark));--accent-glow-light: rgba(9, 105, 218, .15);--accent-glow-dark: rgba(56, 189, 248, .2);--accent-glow: light-dark(var(--accent-glow-light), var(--accent-glow-dark));--success: #238636;--danger: #cf222e;--warning: #d29922;--keycap-bg-light: #ffffff;--keycap-bg-dark: #1f242c;--keycap-bg: light-dark(var(--keycap-bg-light), var(--keycap-bg-dark));--keycap-border-light: #c2c8d0;--keycap-border-dark: #384252;--keycap-border: light-dark(var(--keycap-border-light), var(--keycap-border-dark));--keycap-shadow-light: 0 4px 0 #b0b8c2, 0 6px 12px rgba(0,0,0,.06);--keycap-shadow-dark: 0 4px 0 #12151a, 0 8px 16px rgba(0,0,0,.4);--keycap-shadow: light-dark(var(--keycap-shadow-light), var(--keycap-shadow-dark));--oled-bezel: #0a0d12;--oled-screen: #000000;--oled-phosphor: #8ae7ff;--oled-glow: 0 0 8px rgba(138, 231, 255, .85);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--scrollbar-thumb: light-dark(#94a3b8, #475569);--scrollbar-track: transparent;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin;accent-color:var(--accent)}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}html{scrollbar-gutter:stable;overflow-y:scroll}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-main);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}.app-header{border-bottom:1px solid var(--border-color);background-color:var(--bg-panel);padding:14px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-area{display:flex;align-items:center;gap:12px}.brand-logo-badge{background:var(--bg-subtle);border:1px solid var(--border-color);padding:6px 10px;border-radius:6px;display:flex;align-items:center;font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--accent)}.brand-title{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.brand-subtitle{font-size:.8rem;color:var(--text-muted)}.header-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.os-toggle-group{display:flex;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;padding:2px;gap:2px}.os-pill-btn{background:transparent;border:none;font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .12s ease;font-family:var(--font-sans)}.os-pill-btn:hover{color:var(--text-main)}.os-pill-btn.active,.os-pill-btn.active:hover{background:var(--accent);color:#fff!important}[data-theme=dark] .os-pill-btn.active,[data-theme=dark] .os-pill-btn.active:hover{color:#0b1117!important}.status-pill{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-family:var(--font-mono);padding:5px 12px;border-radius:20px;border:1px solid var(--border-color);background:var(--bg-subtle);color:var(--text-muted)}.status-pill.connected{border-color:#238636;color:#2ea043;background:#2386361a}.status-dot{width:7px;height:7px;border-radius:50%;background-color:var(--text-muted)}.status-dot.active{background-color:#2ea043;box-shadow:0 0 8px #2ea043;animation:pulse-glow 2s infinite ease-in-out}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}button{background:var(--bg-panel);color:var(--text-main);border:1px solid var(--border-color);padding:7px 13px;border-radius:6px;font-size:.86rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .12s ease;font-family:var(--font-sans)}button:not(.primary):not(.success):not(.ghost):hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff!important}button.primary:hover:not(:disabled){opacity:.92;background:var(--accent);border-color:var(--accent);color:#fff!important}[data-theme=dark] button.primary,[data-theme=dark] button.primary:hover:not(:disabled){color:#0b1117!important}button.success{background:#238636;border-color:#2ea043;color:#fff!important}button.success:hover:not(:disabled){background:#2ea043;border-color:#2ea043;color:#fff!important}button.ghost{background:transparent;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-color)}button:disabled{opacity:.45;cursor:not-allowed}.workbench-container{max-width:1240px;margin:0 auto;padding:24px;width:100%;display:flex;flex-direction:column;gap:20px}.view-mode-segmented{display:inline-flex;align-items:center;background-color:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:3px;gap:4px}.view-mode-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:6px;border:none;background:transparent;color:var(--text-muted);font-size:.84rem;font-weight:500;cursor:pointer;transition:all .15s ease}.view-mode-btn:hover{color:var(--text-main);background-color:light-dark(rgba(0,0,0,.04),rgba(255,255,255,.04))}.view-mode-btn.active{background-color:var(--bg-panel);color:var(--text-main);font-weight:600;box-shadow:0 1px 3px #0000001a}.view-mode-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;font-size:.72rem;font-weight:700;font-family:var(--font-mono);border-radius:10px;background-color:light-dark(rgba(0,0,0,.06),rgba(255,255,255,.08));color:var(--text-muted)}.view-mode-btn.active .view-mode-badge{background-color:var(--accent-subtle);color:var(--accent)}.profiles-tabs-container{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);gap:12px;overflow-x:auto}.profile-tab-list{display:flex;gap:6px}.profile-tab-item{position:relative;padding:9px 18px;border-radius:6px 6px 0 0;border:1px solid transparent;border-bottom:none;font-size:.88rem;font-weight:500;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:8px;background:transparent;transition:all .12s ease;overflow:hidden}.profile-tab-item:hover{color:var(--text-main);background:var(--bg-subtle)}.profile-tab-item.active{background:var(--bg-panel);border-color:var(--border-color);color:var(--text-main);font-weight:600}.profile-tab-item.active:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}.tab-badge{font-size:.72rem;font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border-color);padding:1px 6px;border-radius:12px}.studio-grid{display:grid;grid-template-columns:480px minmax(0,1fr);gap:28px;align-items:start;width:100%}@media(max-width:1060px){.studio-grid{grid-template-columns:minmax(0,480px);justify-content:center}}.studio-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:16px}.studio-card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.card-heading{font-size:.96rem;font-weight:700;display:flex;align-items:center;gap:8px}.card-subtext{font-size:.78rem;color:var(--text-muted);font-family:var(--font-mono)}.matrix-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:10px 0;width:100%}.tactile-keycap{background:var(--keycap-bg);border:2px solid var(--keycap-border);border-radius:9px;box-shadow:var(--keycap-shadow);padding:14px 8px;min-height:94px;min-width:0;width:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:center;cursor:pointer;position:relative;transition:all .08s ease;-webkit-user-select:none;user-select:none;text-align:center;box-sizing:border-box}.tactile-keycap:hover{border-color:var(--accent);transform:translateY(-2px)}.tactile-keycap:active,.tactile-keycap.active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-color);background:var(--bg-subtle)}.tactile-keycap.selected{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}.keycap-idx{position:absolute;top:6px;left:8px;font-size:.65rem;font-family:var(--font-mono);color:var(--text-muted)}.keycap-label{font-size:.88rem;font-weight:700;color:var(--text-main);width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.keycap-code{font-size:.72rem;font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border-subtle);color:var(--accent);padding:2px 6px;border-radius:4px;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box}.encoder-box{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}.knob-hud-badge{background:var(--bg-subtle);border:1px solid var(--border-color);padding:3px 8px;border-radius:4px;font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent)}.encoder-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.encoder-preset-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:4px;-webkit-user-select:none;user-select:none}.encoder-preset-card:hover{background:var(--bg-subtle);border-color:var(--accent);transform:translateY(-1px)}.encoder-preset-card.active{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 1px var(--accent)}.preset-card-top{display:flex;justify-content:space-between;align-items:center}.preset-card-title{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.82rem;color:var(--text-main)}.preset-icon{color:var(--accent)}.preset-active-pill{display:inline-flex;align-items:center;gap:3px;background:var(--accent);color:light-dark(#ffffff,#0d1117);font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:10px;text-transform:uppercase}.preset-card-badge{font-family:var(--font-mono);font-size:.72rem;color:var(--accent);font-weight:600}.preset-card-desc{font-size:.69rem;color:var(--text-muted);line-height:1.25}.encoder-manual-section{border-top:1px solid var(--border-color);padding-top:12px;margin-top:4px}.encoder-manual-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;color:var(--text-main);font-size:.78rem;transition:background .15s ease}.encoder-manual-toggle:hover{background:#ffffff0d}.custom-active-tag{background:#eab3082e;color:#facc15;border:1px solid rgba(234,179,8,.35);font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:4px;text-transform:uppercase}.encoder-manual-content{margin-top:10px;padding:12px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px}.oled-bezel-frame{background:var(--oled-bezel);border:3px solid #2d333b;border-radius:12px;padding:16px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;align-items:center;gap:10px}.oled-glass{width:256px;height:128px;background-color:var(--oled-screen);border:1px solid #161b22;border-radius:4px;padding:10px 14px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--font-mono);color:var(--oled-phosphor);text-shadow:var(--oled-glow);box-sizing:border-box;position:relative;overflow:hidden}.oled-glass:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15),rgba(0,0,0,.15) 1px,transparent 1px,transparent 2px);pointer-events:none}.oled-topbar{display:flex;justify-content:space-between;font-size:13px;font-weight:700}.oled-viewfinder{border:1px dashed rgba(138,231,255,.35);border-radius:4px;height:66px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.oled-glyph{font-size:15px;font-weight:700;letter-spacing:.05em}.oled-caption{font-size:13px;color:#fff;margin-top:2px}.oled-dots-bar{display:flex;justify-content:center;gap:8px;align-items:center}.oled-dot-item{width:7px;height:7px;border:1px solid var(--oled-phosphor);border-radius:50%}.oled-dot-item.active{background-color:var(--oled-phosphor);box-shadow:0 0 6px var(--oled-phosphor)}.key-editor-grid{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8rem;font-weight:600;color:var(--text-muted)}input[type=text],select{width:100%;min-width:0;box-sizing:border-box;background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-main);padding:8px 12px;border-radius:6px;font-size:.88rem;font-family:var(--font-sans)}input[type=text]:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.modifier-switches{display:flex;gap:8px;flex-wrap:wrap}.mod-toggle-btn{background:var(--bg-subtle);border:1px solid var(--border-color);padding:6px 12px;border-radius:6px;font-size:.8rem;font-family:var(--font-mono);cursor:pointer;display:flex;align-items:center;gap:6px}.mod-toggle-btn.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent);font-weight:700}.record-keystroke-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-subtle);border:1px dashed var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);color:var(--text-main);-webkit-user-select:none;user-select:none}.record-keystroke-btn:hover{background:#ffffff0d;border-color:var(--accent);transform:translateY(-1px)}.record-keystroke-btn.recording{background:#ef44441a;border:1px solid #ef4444;box-shadow:0 0 12px #ef44444d;animation:pulse-border 1.5s infinite ease-in-out}@keyframes pulse-border{0%,to{border-color:#ef4444}50%{border-color:#f87171}}.record-btn-content{display:flex;align-items:center;gap:8px}.record-pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);display:inline-block;transition:all .2s ease}.record-pulse-dot.active{background:#ef4444;box-shadow:0 0 8px #ef4444;animation:pulse-dot 1s infinite alternate ease-in-out}@keyframes pulse-dot{0%{transform:scale(.9);opacity:.7}to{transform:scale(1.3);opacity:1}}.record-btn-text{font-size:.8rem;font-weight:600}.record-cancel-tag{font-size:.68rem;color:#f87171;border:1px solid rgba(239,68,68,.4);padding:1px 6px;border-radius:4px}.record-success-tag{font-size:.7rem;color:var(--accent);font-family:var(--font-mono);font-weight:700;background:#8ae7ff1a;border:1px solid rgba(138,231,255,.3);padding:2px 7px;border-radius:4px}.record-inline-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);font-size:.68rem;padding:2px 6px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:all .15s ease}.record-inline-btn:hover{border-color:var(--accent);color:var(--accent)}.record-inline-btn.recording{background:#ef444426;border-color:#ef4444;color:#f87171;font-weight:700;animation:pulse-border 1.5s infinite ease-in-out}.inspector-mode-tabs{display:flex;background:var(--bg-subtle);border:1px solid var(--border-color);padding:3px;border-radius:8px;gap:4px}.inspector-mode-tab{flex:1;border:none;background:transparent;padding:6px 10px;border-radius:6px;font-size:.78rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s ease;font-family:var(--font-sans);display:flex;align-items:center;justify-content:center;gap:6px}.inspector-mode-tab:hover{color:var(--text-main)}.inspector-mode-tab.active{background:var(--bg-panel);color:var(--text-main);font-weight:600;box-shadow:0 1px 3px #0000001a}.tab-active-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;box-shadow:0 0 6px var(--accent);margin-left:2px}.emoji-system-banner{display:flex;align-items:center;gap:12px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:10px 14px;cursor:pointer;transition:all .18s ease;margin-bottom:12px}.emoji-system-banner:hover{border-color:var(--accent);background:var(--accent-glow);transform:translateY(-1px)}.emoji-system-icon{width:36px;height:36px;border-radius:8px;background:var(--bg-panel);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.emoji-system-text{flex:1}.emoji-system-title{font-size:.82rem;font-weight:600;color:var(--text-main)}.emoji-system-sub{font-size:.7rem;color:var(--text-muted)}.emoji-category-pills{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.emoji-cat-btn{background:var(--bg-subtle);border:1px solid var(--border-color);color:var(--text-muted);font-size:.72rem;padding:4px 10px;border-radius:14px;cursor:pointer;transition:all .15s ease;font-family:var(--font-sans);display:inline-flex;align-items:center;gap:5px}.emoji-cat-btn:hover{color:var(--text-main);border-color:var(--accent)}.emoji-cat-btn.active,.emoji-cat-btn.active:hover{background:var(--accent);color:light-dark(#ffffff,#0d1117)!important;font-weight:700;border-color:var(--accent)}.emoji-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-height:240px;overflow-y:auto;overflow-x:hidden;padding:4px 6px;scrollbar-gutter:stable}.emoji-tile{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,transform .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none;position:relative}.emoji-tile:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--bg-subtle);z-index:2;box-shadow:0 3px 8px #00000014}.emoji-char{font-size:1.35rem;line-height:1.2;transition:transform .15s cubic-bezier(.16,1,.3,1);transform-origin:center center;display:inline-block}.emoji-tile:hover .emoji-char{transform:scale(1.22)}.emoji-name{font-size:.6rem;color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.kaomoji-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:240px;overflow-y:auto;overflow-x:hidden;padding:4px 6px;scrollbar-gutter:stable}.kaomoji-tile{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.kaomoji-tile:hover{border-color:var(--accent);background:var(--bg-subtle);transform:translateY(-1px)}.kaomoji-text{font-family:var(--font-mono);font-size:.78rem;color:var(--text-main);font-weight:600}.kaomoji-label{font-size:.68rem;color:var(--text-muted)}.serial-drawer{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.serial-drawer-header{padding:10px 16px;background:var(--bg-subtle);display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.serial-log-window{height:160px;background:#090c10;color:#38bdf8;font-family:var(--font-mono);font-size:.78rem;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.serial-entry{display:flex;gap:8px}.serial-entry .time{color:#6e7681}.serial-entry .direction{font-weight:700}.serial-entry.tx .direction{color:#58a6ff}.serial-entry.rx .direction{color:#3fb950}.serial-entry.sys .direction{color:#d29922}.serial-entry.err .direction{color:#f85149}.physical-device-wrapper{display:flex;flex-direction:column;align-items:center;width:100%}.physical-device-case{width:100%;max-width:480px;background-color:light-dark(#f2efe8,#1c222b);border:2px solid light-dark(#ded9ce,#2d3644);border-radius:28px;box-shadow:0 24px 52px #00000029,0 6px 16px #00000014,inset 0 2px 2px #ffffffb3,inset 0 -3px 6px #0000001f;padding:22px 18px 16px;position:relative;transition:all .2s ease;-webkit-user-select:none;user-select:none}.device-cable-header{display:flex;flex-direction:column;align-items:center;margin-top:-38px;margin-bottom:12px}.usb-cable-strain{width:14px;height:18px;background:#21262d;border-radius:4px 4px 0 0;box-shadow:0 -3px 6px #00000059;transition:all .25s ease}.usb-cable-strain.connected{background:#1b4725;box-shadow:0 -2px 8px #2ea04359}.usb-cable-connector{padding:3px 12px;background:#161b22;border:1px solid #30363d;border-radius:6px;box-shadow:0 2px 6px #0000004d;display:flex;align-items:center;gap:6px;transition:all .25s ease}.usb-cable-connector:hover{border-color:#8b949e}.usb-cable-connector.connected{background:#0d1a11;border-color:#2ea043;box-shadow:0 0 12px #2ea04366,0 2px 6px #0000004d}.usb-cable-connector.connected:hover{border-color:#3fb950;box-shadow:0 0 16px #3fb95080,0 2px 6px #0000004d}.usb-status-dot{width:6px;height:6px;border-radius:50%;background:#484f58;display:inline-block;transition:all .25s ease}.usb-status-dot.active{background:#2ea043;box-shadow:0 0 6px #2ea043;animation:pulse-green 2s infinite ease-in-out}@keyframes pulse-green{0%,to{transform:scale(1);opacity:1;box-shadow:0 0 6px #2ea043}50%{transform:scale(1.2);opacity:.8;box-shadow:0 0 10px #3fb950}}.usb-icon-symbol{font-size:.65rem;font-family:var(--font-mono);font-weight:700;color:#8b949e;letter-spacing:.04em;transition:color .25s ease}.usb-cable-connector.connected .usb-icon-symbol{color:#3fb950}.device-recessed-bed{background-color:light-dark(#e6e2d8,#13171f);border-radius:20px;box-shadow:inset 0 4px 10px #00000029,inset 0 1px 2px #0000001f,0 1px #fff9;padding:16px;display:flex;flex-direction:column;gap:16px}.device-top-cluster{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px;align-items:stretch}@media(max-width:480px){.device-top-cluster{grid-template-columns:1fr}}.device-oled-bay{display:flex;flex-direction:column;min-width:0}.oled-device-bezel{background:#000;border:3px solid #22272e;border-radius:8px;padding:6px;box-shadow:inset 0 2px 8px #000000e6,0 2px 4px #00000026;height:100%;display:flex;flex-direction:column;justify-content:center}.oled-glass-screen{background-color:#000;border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--font-mono);color:var(--oled-phosphor);text-shadow:var(--oled-glow);min-height:108px;position:relative;overflow:hidden}.oled-glass-screen:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18),rgba(0,0,0,.18) 1px,transparent 1px,transparent 2px);pointer-events:none}.oled-topbar{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:700;letter-spacing:.03em}.oled-profile-tag{color:var(--oled-phosphor)}.oled-hold-gauge{display:flex;gap:3px;align-items:center}.oled-gauge-dot{width:3.5px;height:3.5px;border-radius:50%;background:var(--oled-phosphor);box-shadow:0 0 4px var(--oled-phosphor)}.oled-viewfinder{border:1px dashed rgba(138,231,255,.35);border-radius:4px;padding:6px 4px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;margin:4px 0;position:relative}.oled-glyph{font-size:.82rem;font-weight:700;letter-spacing:.05em}.oled-caption{font-size:.75rem;color:#fff;margin-top:1px;text-shadow:0 0 6px rgba(255,255,255,.8);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oled-dots-bar{display:flex;justify-content:center;gap:6px;align-items:center}.oled-dot-item{width:4px;height:4px;border-radius:50%;background:#8ae7ff4d;transition:all .2s ease}.oled-dot-item.active{background:var(--oled-phosphor);box-shadow:0 0 6px var(--oled-phosphor);transform:scale(1.3)}.device-knob-bay{display:flex;flex-direction:column;min-width:0}.rotary-knob-cluster{background:light-dark(#dad5ca,#1a2028);border:1px solid light-dark(#c8c3b7,#2d3542);border-radius:12px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;transition:all .15s ease;height:100%}.rotary-knob-cluster:hover{border-color:var(--accent)}.rotary-knob-cluster.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.knob-label-header{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.knob-badge{font-size:.62rem;font-family:var(--font-mono);font-weight:700;color:var(--text-muted)}.knob-hud-text{font-size:.76rem;font-weight:700;color:var(--text-main);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knob-interactive-row{display:flex;align-items:center;justify-content:center;gap:8px}.knob-cylinder-outer{width:66px;height:66px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#b68555,#8e5a32 55%,#693c1d);border:2px solid #5a3215;box-shadow:0 6px 14px #00000059,inset 0 2px 3px #fff6,inset 0 -3px 5px #00000080;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease}.knob-cylinder-outer:hover{transform:scale(1.05)}.knob-cylinder-outer:active{transform:scale(.96);box-shadow:0 2px 6px #0006}.knob-cylinder-outer.twisting{box-shadow:0 0 20px var(--accent-glow),0 6px 14px #00000059,inset 0 2px 3px #fff6!important;border-color:var(--accent)!important}.knob-cylinder-outer.twisting.cw{animation:knob-wiggle-cw .22s ease-out}.knob-cylinder-outer.twisting.ccw{animation:knob-wiggle-ccw .22s ease-out}@keyframes knob-wiggle-cw{0%{transform:scale(1.04)}50%{transform:scale(1.08) rotate(4deg);filter:brightness(1.15)}to{transform:scale(1)}}@keyframes knob-wiggle-ccw{0%{transform:scale(1.04)}50%{transform:scale(1.08) rotate(-4deg);filter:brightness(1.15)}to{transform:scale(1)}}.knob-cylinder-outer.pressed{transform:scale(.92)!important;box-shadow:0 0 22px var(--accent-glow),0 2px 6px #0006!important;border-color:var(--accent)!important}.knob-cylinder-cap{width:50px;height:50px;border-radius:50%;background:radial-gradient(circle,#a16e42,#7d4924);position:relative;display:flex;align-items:center;justify-content:center;transition:transform .12s cubic-bezier(.34,1.56,.64,1)}.knob-knurling-ring{width:42px;height:42px;border-radius:50%;border:1px dashed rgba(255,255,255,.25)}.knob-indicator-dot{position:absolute;top:4px;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 4px #fff}.knob-quick-btn{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;padding:4px 6px;font-size:.66rem;font-family:var(--font-mono);font-weight:700;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:3px;transition:all .1s ease}.knob-quick-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--bg-subtle)}.knob-click-pill{display:flex;align-items:center;gap:4px;font-size:.68rem;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border-color);border-radius:12px;padding:2px 8px;cursor:pointer;transition:all .1s ease}.knob-click-pill:hover{border-color:var(--accent);color:var(--accent)}.device-matrix-cluster,.matrix-plate{width:100%}.matrix-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}.tactile-keycap{border-radius:8px;padding:10px 6px;min-height:84px;min-width:0;width:100%;display:flex;flex-direction:column;justify-content:space-between;align-items:center;cursor:pointer;position:relative;transition:all .08s ease;-webkit-user-select:none;user-select:none;text-align:center;box-sizing:border-box}.tactile-keycap.keycap-standard{background-color:light-dark(#faf8f5,#242b36);border:2px solid light-dark(#dcd7cc,#3a4454);box-shadow:0 4px 0 light-dark(#c7c1b5,#14181f),0 6px 12px #0000000f}.tactile-keycap.keycap-accent{background-color:light-dark(#dfe2e6,#323c4b);border:2px solid light-dark(#c3c8cf,#48556a);box-shadow:0 4px 0 light-dark(#abb2bc,#1b212a),0 6px 12px #00000014}.tactile-keycap.keycap-dark-accent{background-color:light-dark(#aab2bd,#445163);border:2px solid light-dark(#8f98a5,#5b6c84);box-shadow:0 4px 0 light-dark(#76808e,#252e3b),0 6px 12px #0000001a}.tactile-keycap:hover{border-color:var(--accent)!important;transform:translateY(-2px)}.tactile-keycap:active,.tactile-keycap.active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-color)!important}.tactile-keycap.physical-pressed{transform:translateY(5px) scale(.96)!important;border-color:var(--accent)!important;box-shadow:0 0 22px var(--accent-glow),0 1px 0 var(--border-color)!important;background-color:var(--accent-glow)!important;filter:brightness(1.2);transition:all .05s cubic-bezier(.175,.885,.32,1.275)!important}.tactile-keycap.physical-pressed .keycap-dish{filter:drop-shadow(0 0 8px var(--accent))}.tactile-keycap.physical-pressed .keycap-label{color:var(--accent)!important;text-shadow:0 0 8px var(--accent)}.tactile-keycap.selected{border-color:var(--accent)!important;outline:2px solid var(--accent);outline-offset:1px}.keycap-coord{position:absolute;top:4px;left:6px;font-size:.62rem;font-family:var(--font-mono);color:var(--text-muted)}.keycap-dish{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:10px}.keycap-label{font-size:.82rem;font-weight:700;color:var(--text-main);width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.keycap-code{font-size:.68rem;font-family:var(--font-mono);background:light-dark(rgba(0,0,0,.06),rgba(255,255,255,.08));border:1px solid var(--border-subtle);color:var(--accent);padding:1px 5px;border-radius:4px;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box}.device-case-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:.64rem;font-family:var(--font-mono);color:var(--text-muted);padding:0 4px}.device-badge-text{font-weight:700;letter-spacing:.04em}.device-badge-profile{font-weight:600}.inspector-tab-row{display:flex;gap:8px;background:var(--bg-subtle);padding:4px;border-radius:8px;border:1px solid var(--border-color);margin-bottom:14px}.inspector-tab-btn{flex:1;padding:6px 12px;border-radius:6px;font-size:.82rem;font-weight:600;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .12s ease}.inspector-tab-btn.active{background:var(--bg-panel);color:var(--text-main);box-shadow:0 1px 3px #0000001a}.studio-card.inspector-card{min-height:460px}.macro-studio-container{display:flex;flex-direction:column;gap:12px}.macro-record-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:10px 14px;transition:all .2s ease}.macro-record-banner.recording{background:#ef444414;border-color:#ef4444;box-shadow:0 0 16px #ef444433;animation:pulse-macro-banner 1.5s infinite alternate ease-in-out}@keyframes pulse-macro-banner{0%{border-color:#ef4444;box-shadow:0 0 8px #ef444433}to{border-color:#f87171;box-shadow:0 0 18px #ef444459}}.macro-record-left{display:flex;align-items:center;gap:10px}.macro-record-meta{display:flex;flex-direction:column}.macro-record-title{font-size:.82rem;font-weight:700;color:var(--text-main)}.macro-record-sub{font-size:.72rem;color:var(--text-muted)}.macro-start-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--accent);color:light-dark(#ffffff,#0b1117)!important;border:none;border-radius:6px;font-size:.76rem;font-weight:700;cursor:pointer;transition:all .15s ease}.macro-start-btn:hover{filter:brightness(1.1);transform:translateY(-1px);color:light-dark(#ffffff,#0b1117)!important}[data-theme=light] .macro-start-btn,[data-theme=light] .macro-start-btn:hover{color:#fff!important}[data-theme=dark] .macro-start-btn,[data-theme=dark] .macro-start-btn:hover{color:#0b1117!important}.macro-append-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;background:var(--bg-panel);color:var(--text-main);border:1px solid var(--border-color);border-radius:6px;font-size:.76rem;font-weight:600;cursor:pointer;transition:all .15s ease}.macro-append-btn:hover{border-color:var(--accent);color:var(--accent)}.macro-stop-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#ef4444;color:#fff!important;border:none;border-radius:6px;font-size:.76rem;font-weight:700;cursor:pointer;box-shadow:0 0 10px #ef444466;transition:all .15s ease}.macro-stop-btn:hover{background:#dc2626;transform:scale(1.02);color:#fff!important}.macro-toolbar-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:var(--bg-subtle);border:1px solid var(--border-color);padding:6px 10px;border-radius:6px}.macro-timing-modes,.macro-normalize-tools{display:flex;align-items:center;gap:5px}.macro-toolbar-label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.macro-mode-pill{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid transparent;color:var(--text-muted);padding:3px 8px;border-radius:4px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease}.macro-mode-pill:hover{color:var(--text-main);background:var(--bg-panel)}.macro-mode-pill.active{background:var(--bg-panel);border-color:var(--accent);color:var(--accent);box-shadow:0 1px 3px #00000014}.macro-tool-btn{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-muted);padding:2px 7px;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:all .15s ease}.macro-tool-btn:hover{border-color:var(--accent);color:var(--text-main)}.macro-tool-btn.danger:hover{border-color:#ef4444;color:#ef4444}.macro-timeline-box{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:12px}.macro-timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.macro-timeline-title{font-size:.78rem;font-weight:700;color:var(--text-main)}.macro-timeline-count{font-size:.7rem;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-panel);padding:1px 6px;border-radius:4px;border:1px solid var(--border-color)}.macro-empty-timeline{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;text-align:center;gap:8px}.macro-empty-text{font-size:.78rem;color:var(--text-muted);max-width:380px;margin:0}.macro-timeline-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 4px;min-height:70px}.macro-step-card{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;padding:6px 8px;min-width:82px;box-shadow:0 1px 3px #00000014;transition:all .15s ease}.macro-step-card:hover{border-color:var(--accent);transform:translateY(-1px)}.macro-step-card-top{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px}.macro-step-action-select{background:transparent;border:none;font-size:.65rem;font-weight:700;color:var(--accent);cursor:pointer;padding:0;outline:none;font-family:var(--font-mono)}.macro-step-del-btn{background:transparent;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:0 2px;line-height:1}.macro-step-del-btn:hover{color:#ef4444}.macro-step-keycap{display:flex;justify-content:center;align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:4px;padding:4px 6px;font-family:var(--font-mono);font-weight:700;font-size:.82rem;color:var(--text-main);box-shadow:inset 0 1px 2px #0000000f}.macro-step-sublabel{font-size:.65rem;color:var(--text-muted);text-align:center;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:85px}.macro-delay-node{display:flex;align-items:center;gap:2px}.macro-delay-connector{width:6px;height:2px;background:var(--border-color)}.macro-delay-badge{display:inline-flex;align-items:center;gap:3px;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;padding:3px 6px}.macro-delay-input{width:44px;background:transparent;border:none;font-family:var(--font-mono);font-size:.74rem;font-weight:700;color:var(--text-main);text-align:right;padding:0;outline:none}.macro-delay-input::-webkit-inner-spin-button,.macro-delay-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.macro-delay-unit{font-size:.65rem;color:var(--text-muted);font-family:var(--font-mono)}.macro-delay-del-btn{background:transparent;border:none;color:var(--text-muted);font-size:.68rem;cursor:pointer;padding:0 0 0 2px;line-height:1}.macro-delay-del-btn:hover{color:#ef4444}.macro-delay-arrow{color:var(--border-color);margin-left:-2px}.macro-timeline-footer{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-color)}.macro-quick-pills{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.macro-quick-pill{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-main);padding:2px 7px;border-radius:4px;font-size:.7rem;font-family:var(--font-mono);font-weight:600;cursor:pointer;transition:all .15s ease}.macro-quick-pill:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.macro-quick-pill.delay-pill{color:var(--text-muted);border-style:dashed}.macro-quick-pill.delay-pill:hover{color:var(--accent);border-style:solid}.macro-presets-section{margin-top:4px}.macro-presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:6px}.macro-preset-card{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .15s ease}.macro-preset-card:hover{background:var(--bg-panel);border-color:var(--accent);transform:translateY(-1px)}.macro-preset-card-title{font-size:.78rem;font-weight:700;color:var(--text-main);margin-bottom:2px}.macro-preset-card-desc{font-size:.68rem;color:var(--text-muted);line-height:1.3}dialog:modal{overscroll-behavior:contain}dialog::backdrop{overflow:hidden;overscroll-behavior:contain;background-color:#0000008f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fw-pill{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:999px}.fw-pill.up-to-date{background:light-dark(rgba(26,127,55,.1),rgba(63,185,80,.14));color:light-dark(#1a7f37,#3fb950);border:1px solid light-dark(rgba(26,127,55,.25),rgba(63,185,80,.35))}.fw-pill.update-available{background:light-dark(rgba(191,135,0,.14),rgba(210,153,34,.2));color:light-dark(#9a6700,#f0b429);border:1px solid light-dark(rgba(191,135,0,.45),rgba(210,153,34,.5))}.fw-update-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:10px;background:light-dark(rgba(191,135,0,.1),rgba(210,153,34,.14));border:1px solid light-dark(rgba(191,135,0,.35),rgba(210,153,34,.4));color:var(--text-main);font-size:.84rem}.fw-update-banner-text{display:flex;align-items:center;gap:8px}.fw-update-banner-text svg{color:light-dark(#9a6700,#f0b429);flex-shrink:0}.fw-update-banner-actions{display:flex;align-items:center;gap:8px}dialog.fw-modal-dialog{border:1px solid var(--border-color);border-radius:14px;padding:0;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 32px);background:var(--bg-panel);color:var(--text-main);box-shadow:0 24px 60px #00000073;margin:auto}.fw-modal-surface{display:flex;flex-direction:column;max-height:calc(100vh - 34px)}.fw-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border-color)}.fw-modal-title-group{display:flex;align-items:center;gap:10px}.fw-modal-icon{color:var(--accent);flex-shrink:0}.fw-modal-title{margin:0;font-size:1rem;font-weight:700}.fw-modal-subtitle{margin:2px 0 0;font-size:.76rem;color:var(--text-muted)}.fw-modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.fw-status-box{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;font-size:.83rem;line-height:1.45;border:1px solid var(--border-color)}.fw-status-box svg{flex-shrink:0;margin-top:2px}.fw-status-box p{margin:4px 0 0;color:var(--text-muted)}.fw-status-box.success{background:light-dark(rgba(26,127,55,.08),rgba(63,185,80,.12));border-color:light-dark(rgba(26,127,55,.3),rgba(63,185,80,.35))}.fw-status-box.success svg{color:light-dark(#1a7f37,#3fb950)}.fw-status-box.warning{background:light-dark(rgba(191,135,0,.09),rgba(210,153,34,.14));border-color:light-dark(rgba(191,135,0,.35),rgba(210,153,34,.4))}.fw-status-box.warning svg{color:light-dark(#9a6700,#f0b429)}.fw-status-box.info{background:light-dark(rgba(9,105,218,.07),rgba(56,189,248,.1));border-color:light-dark(rgba(9,105,218,.25),rgba(56,189,248,.3))}.fw-status-box.info svg{color:var(--accent)}.fw-status-box.danger{background:light-dark(rgba(207,34,46,.08),rgba(248,81,73,.14));border-color:light-dark(rgba(207,34,46,.35),rgba(248,81,73,.45))}.fw-status-box.danger svg{color:var(--danger)}.fw-status-box.neutral{background:var(--bg-subtle)}.fw-progress-card{padding:12px 14px;border-radius:10px;background:var(--bg-subtle);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.fw-progress-meta{display:flex;justify-content:space-between;font-size:.8rem}.fw-progress-track{height:8px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--border-color);overflow:hidden}.fw-progress-fill{height:100%;background:var(--accent);transition:width .15s ease}.fw-file-list-wrap{border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.fw-file-list-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.78rem;font-weight:700;background:var(--bg-subtle);border-bottom:1px solid var(--border-color)}.fw-muted-note{font-weight:500;color:var(--text-muted)}.fw-file-list{list-style:none;margin:0;padding:0;max-height:185px;overflow-y:auto}.fw-file-row{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;font-size:.8rem;border-bottom:1px solid var(--border-subtle)}.fw-file-row:last-child{border-bottom:none}.fw-file-meta{display:flex;align-items:center;gap:8px}.fw-change-tag{font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:999px}.fw-change-tag.modified{background:light-dark(rgba(191,135,0,.14),rgba(210,153,34,.22));color:light-dark(#9a6700,#f0b429)}.fw-change-tag.new{background:light-dark(rgba(9,105,218,.12),rgba(56,189,248,.2));color:var(--accent)}.fw-crc-pill{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.fw-usb-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;background:var(--bg-subtle);border:1px dashed var(--border-color)}.fw-usb-info{display:flex;align-items:flex-start;gap:10px}.fw-usb-info svg{color:var(--text-muted);flex-shrink:0;margin-top:2px}.fw-usb-title{font-size:.82rem;font-weight:700}.fw-usb-desc{font-size:.75rem;color:var(--text-muted);margin-top:2px;line-height:1.4}.fw-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid var(--border-color);background:var(--bg-subtle);border-radius:0 0 14px 14px}.fw-footer-right{display:flex;align-items:center;gap:8px}.spin{animation:fw-spin .9s linear infinite}@keyframes fw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
