:root{--bg:#dce0e7;--surface:#fff;--surface-2:#e9ecf2;--control-track:#d4dae4;--line:#d9dde6;--text:#16181d;--text-2:#5d6370;--text-3:#9a9fab;--ink:#0d0e11;--on-ink:#fff;--accent:#ff6a1a;--accent-soft:#fff1e8;--ok:#18b26b;--danger:#e5484d;--shadow:0 1px 2px #1018280a, 0 4px 16px #1018280f;--radius:14px;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px}[data-theme=dark]{--bg:#111317;--surface:#1a1d23;--surface-2:#22262e;--control-track:#22262e;--line:#2c313a;--text:#eef0f4;--text-2:#a4aab6;--text-3:#6b7280;--ink:#f2f3f5;--on-ink:#0d0e11;--accent-soft:#3a2416;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);margin:0;transition:background .2s}button,select,input{font:inherit;color:inherit}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 14px;font-weight:500;transition:border-color .15s,background .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--text-3)}.btn:disabled{opacity:.4;cursor:default}.btn.ink{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.btn.ink:hover:not(:disabled){opacity:.85}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.lg{border-radius:10px;height:42px;padding:0 22px;font-size:15px}.icon-btn{width:34px;height:34px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--surface);color:var(--text)}.topbar{align-items:center;gap:12px;height:56px;padding:0 20px;display:flex}.logo{letter-spacing:.06em;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.logo svg{color:var(--accent)}.spacer{flex:1}.device-pill{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;height:34px;padding:0 6px 0 12px;font-weight:500;display:flex}.conn-dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%}.tag{background:var(--surface-2);color:var(--text-2);border-radius:6px;padding:2px 7px;font-size:11px;font-weight:700}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:calc(100vh - 56px);padding:24px;display:flex}.empty-img{opacity:.95;filter:drop-shadow(0 16px 36px #0000001f);width:min(720px,90vw);height:auto;transition:opacity .25s,filter .25s,transform .25s}[data-theme=dark] .empty-img{filter:drop-shadow(0 20px 44px #00000073)}.empty h2{margin:0;font-size:22px}.empty p{color:var(--text-2);margin:0}.hint{font-size:12px;color:var(--text-3)!important}.layout{grid-template-columns:220px 1fr;gap:20px;max-width:1400px;margin:0 auto;padding:8px 20px 20px;display:grid}.sidenav{flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky;top:12px}.nav-item{height:42px;color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:0 14px;font-weight:500;display:flex}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.nav-item.active svg{color:var(--accent)}.nav-foot{color:var(--text-3);margin-top:16px;padding:12px 14px;font-size:12px;line-height:1.5}.content{flex-direction:column;gap:16px;min-width:0;display:flex}.stage{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px 16px}.stage-head{align-items:center;gap:10px;min-height:34px;margin-bottom:8px;display:flex}.stage-head h2{margin:0;font-size:18px}.sub{color:var(--text-3);font-size:13px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.card h3{margin:0 0 14px;font-size:14px;font-weight:600}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;display:grid}.savebar{background:var(--ink);color:var(--on-ink);border-radius:12px;align-items:center;gap:10px;padding:10px 12px 10px 18px;animation:.18s ease-out rise;display:flex;position:sticky;bottom:16px;box-shadow:0 10px 30px #0003}.savebar .btn{border-color:color-mix(in srgb, var(--on-ink) 30%, transparent);color:var(--on-ink);background:0 0}.btn.primary,.savebar .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}@keyframes rise{0%{transform:translateY(8px)}}.confirm-dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(480px,100vw - 32px);color:var(--text);padding:24px;box-shadow:0 20px 60px #0000004d}.confirm-dialog::backdrop{background:#00000080}.confirm-dialog h2{margin:0 0 14px;font-size:18px}.confirm-dialog p{color:var(--text-2);line-height:1.6}.popup-message{white-space:pre-line;max-height:55vh;overflow-y:auto}.confirm-dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.confirm-dialog .btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.savebar:focus{outline:2px solid var(--accent);outline-offset:3px}.kb-svg{-webkit-user-select:none;user-select:none;width:100%;display:block}.kb-key{cursor:pointer}.kb-key .kb-key-skirt{transition:stroke .1s}.kb-key:hover .kb-key-skirt,.kb-key:focus-visible .kb-key-skirt,.kb-key.changed .kb-key-skirt{stroke:var(--accent);stroke-width:1.5px}.kb-key.sel .kb-key-skirt{stroke:var(--accent);stroke-width:2px}.kb-key.changed .kb-key-skirt{stroke-dasharray:4 3}.kb-static .kb-key,.kb-static rect{cursor:default}.effect-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.effect-tile{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;display:flex;position:relative}.effect-tile svg{color:var(--text-3)}.effect-tile:hover{border-color:var(--text-3)}.effect-tile.active{border-color:var(--accent);background:var(--accent-soft)}.effect-tile.active svg{color:var(--accent)}.live{color:var(--ok);font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.control{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:14px 0;display:flex}.control:first-of-type{border-top:none;padding-top:0}.control-head{justify-content:space-between;font-weight:500;display:flex}.control-head .val{color:var(--text-3);font-variant-numeric:tabular-nums}.segmented{background:var(--surface-2);border-radius:9px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:3px;display:grid}.control>.segmented{background:var(--control-track)}.segmented button{height:30px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:7px;font-weight:500}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.segmented button:disabled{opacity:.4;cursor:default}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:2px solid var(--surface);width:34px;height:34px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border-radius:50%;padding:0;position:relative}.swatch.on{box-shadow:0 0 0 2px var(--accent)}.swatch.rainbow{background:conic-gradient(#ff3b3b,#ffd500,#3bff6b,#3bd5ff,#5b3bff,#ff3bd5,#ff3b3b)}.swatch.sm{width:26px;height:26px}.swatch .edit{background:var(--ink);width:16px;height:16px;color:var(--on-ink);opacity:0;border-radius:50%;place-items:center;transition:opacity .15s;display:grid;position:absolute;bottom:-4px;right:-4px}.swatch:hover .edit{opacity:1}.hidden-color{opacity:0;cursor:pointer;position:absolute;inset:0}.muted{color:var(--text-3)}.note{color:var(--text-3);font-size:12px;line-height:1.5}.toolrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.brush{border-radius:12px;flex-shrink:0;width:48px;height:48px;position:relative;box-shadow:inset 0 0 0 1px #0000001a}.hex{border:1px solid var(--line);background:var(--surface);text-transform:uppercase;border-radius:8px;width:92px;height:34px;padding:0 10px;font-family:ui-monospace,monospace}.divider{background:var(--line);align-self:stretch;width:1px;margin:0 4px}.mode-toggle{gap:4px;display:flex}.picker{flex-direction:column;gap:14px;display:flex}.picker-head{align-items:center;gap:12px;display:flex}.keycap{background:var(--surface-2);border:1px solid var(--line);border-bottom-width:3px;border-radius:9px;place-items:center;min-width:44px;height:44px;padding:0 10px;font-weight:600;display:grid}.arrow{color:var(--text-3)}.keycap.target{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:7px;height:30px;padding:0 11px;font-size:13px;font-weight:500}.chip:hover{border-color:var(--text-3)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.search{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;width:100%;height:36px;padding:0 12px}.search:focus,.hex:focus{outline:2px solid var(--accent);outline-offset:-1px}.key-list{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px;max-height:210px;padding:2px;display:grid;overflow:auto}.key-list .chip{padding:0 4px}.section-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.empty-pick{height:100%;min-height:220px;color:var(--text-3);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.toasts{z-index:10;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;max-width:380px;padding:10px 14px;animation:.18s ease-out rise;display:flex}.toast.error{border-color:var(--danger);color:var(--danger);cursor:pointer}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);background-size:200% 100%;min-height:200px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=960px){.layout{grid-template-columns:1fr}.sidenav{flex-direction:row;position:static;overflow-x:auto}.nav-foot{display:none}.grid-2{grid-template-columns:1fr}}.setting-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.setting-row h3{margin-bottom:4px}.setting-row .note{margin:0}.toggle{background:var(--line);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:44px;height:26px;padding:3px;transition:background .15s}.toggle span{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;display:block;box-shadow:0 1px 3px #00000040}.toggle.on{background:var(--accent)}.toggle.on span{transform:translate(18px)}.range{width:100%;max-width:420px;accent-color:var(--accent)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.warn{color:var(--danger);align-items:center;gap:6px;font-weight:500;display:inline-flex}.danger-card{border:1px solid color-mix(in srgb, var(--danger) 25%, transparent)}.chip:disabled{cursor:default}.appearance-popover-wrapper{display:inline-flex;position:relative}.icon-btn.active{background:var(--surface);color:var(--accent);border-color:var(--line)}.appearance-popover{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:100;flex-direction:column;gap:12px;width:320px;padding:16px;animation:.18s cubic-bezier(.16,1,.3,1) rise;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000029,0 2px 6px #00000014}[data-theme=dark] .appearance-popover{box-shadow:0 16px 36px #0000008c, 0 0 0 1px var(--line)}.popover-header{flex-direction:column;gap:2px;display:flex}.popover-title-row{justify-content:space-between;align-items:center;display:flex}.popover-title{color:var(--text);letter-spacing:-.01em;font-size:13.5px;font-weight:700}.popover-subtitle{color:var(--text-3);margin:0;font-size:11.5px}.pill-badge{background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}.pill-badge.factory{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.pill-badge.custom{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok);border-color:color-mix(in srgb, var(--ok) 30%, transparent)}.preset-cards-grid{grid-template-columns:1fr;gap:8px;display:grid}.preset-card{border:1.5px solid var(--line);background:var(--surface-2);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .15s,background .15s,transform .1s;display:flex}.preset-card:hover{border-color:var(--text-3);background:var(--surface)}.preset-card.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));box-shadow:0 0 0 1px var(--accent)}.preset-card-top{justify-content:space-between;align-items:center;width:100%;display:flex}.check-icon{color:var(--accent)}.preset-card-body{flex-direction:column;gap:1px;display:flex}.preset-name{color:var(--text);font-size:12.5px;font-weight:600}.preset-desc{color:var(--text-3);font-size:11px}.swatch-strip{border:1px solid var(--line);background:#0000000f;border-radius:6px;align-items:center;gap:3px;padding:2.5px;display:inline-flex}[data-theme=dark] .swatch-strip{background:#ffffff0d}.swatch-chip{border:1px solid #00000026;border-radius:3px;width:13px;height:13px;display:inline-block;box-shadow:inset 0 1px 1px #fff3}.popover-custom-toggle-wrap{border-top:1px solid var(--line);padding-top:8px}.popover-toggle-btn{width:100%;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;padding:6px 4px;font-size:12px;font-weight:600;transition:color .15s,background .15s;display:flex}.popover-toggle-btn:hover{color:var(--text);background:var(--surface-2)}.popover-toggle-btn span{text-align:left;flex:1;margin-left:8px}.popover-custom-section{flex-direction:column;gap:8px;max-height:220px;padding:4px 0 6px;display:flex;overflow-y:auto}.color-field-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.color-field-meta{flex-direction:column;min-width:0;display:flex}.color-field-label{color:var(--text);font-size:12px;font-weight:600}.color-field-desc{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.color-picker-control{flex-shrink:0;align-items:center;gap:6px;display:flex}.color-swatch-btn{cursor:pointer;border:1px solid #0003;border-radius:7px;flex-shrink:0;width:28px;height:28px;transition:transform .1s;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000001a,inset 0 0 0 1px #ffffff40}.color-swatch-btn:hover{transform:scale(1.05)}.color-native-input{opacity:0;cursor:pointer;width:200%;height:200%;position:absolute;inset:-8px}.color-hex-input{width:76px;height:28px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);text-align:center;border-radius:6px;padding:0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11.5px;font-weight:600;transition:border-color .15s}.color-hex-input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);background:var(--surface)}.popover-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:2px;padding-top:10px;display:flex}.btn.btn-sm{border-radius:6px;height:28px;padding:0 10px;font-size:11.5px}.text-btn{color:var(--text-2);background:0 0;border:1px solid #0000}.text-btn:hover{background:var(--surface-2);border-color:var(--line);color:var(--text)}.popover-hint{color:var(--text-3);font-size:11px}.appearance-card{flex-direction:column;gap:20px;display:flex}.card-header-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-subheading{color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.preset-card.lg{padding:14px 16px}.preset-card.lg .preset-name{font-size:14px}.preset-card.lg .preset-desc{margin-top:2px;font-size:12px;line-height:1.4}.custom-colors-block{border-top:1px solid var(--line);padding-top:16px}.custom-block-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.custom-actions{align-items:center;gap:8px;display:flex}.color-fields-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 24px;display:grid}.macro-container{flex-direction:column;gap:16px;width:100%;display:flex}.macro-banner{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);align-items:center;gap:12px;padding:12px 16px;font-size:13.5px;display:flex}.macro-banner.ok{border-color:color-mix(in srgb, var(--ok) 30%, transparent);background:color-mix(in srgb, var(--ok) 8%, var(--surface))}.macro-banner.warn{border-color:color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.macro-grid{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1060px){.macro-grid{grid-template-columns:1fr}}.macro-sidebar{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.macro-sidebar-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:16px 18px 12px;display:flex}.macro-sidebar-title{margin:0;font-size:15px;font-weight:700}.macro-sidebar-desc{color:var(--text-3);margin:3px 0 0;font-size:11.5px}.macro-bank-meter{background:var(--surface-2);border-bottom:1px solid var(--line);padding:12px 18px}.macro-bank-labels{color:var(--text-2);justify-content:space-between;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.macro-bank-bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.macro-bank-bar-fill{background:var(--ok);height:100%;transition:width .2s,background .2s}.macro-bank-bar-fill.warn{background:var(--accent)}.macro-bank-bar-fill.danger{background:var(--danger)}.macro-list-scroll{flex-direction:column;gap:6px;max-height:480px;padding:12px;display:flex;overflow-y:auto}.macro-list-item{background:var(--surface-2);cursor:pointer;border:1px solid #0000;border-radius:9px;flex-direction:column;gap:4px;padding:10px 12px;transition:all .15s;display:flex}.macro-list-item:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface-2));border-color:var(--line)}.macro-list-item.active{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.macro-list-item-top{justify-content:space-between;align-items:center;display:flex}.macro-slot-badge{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);text-transform:uppercase;border-radius:5px;padding:1px 6px;font-size:10.5px;font-weight:700}.macro-item-duration{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.macro-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.macro-item-meta{color:var(--text-3);align-items:center;gap:6px;font-size:11px;display:flex}.macro-sidebar-foot{border-top:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.macro-foot-actions{flex-wrap:wrap;gap:6px;display:flex}.macro-foot-note{font-size:11px;line-height:1.4}.text-ok{color:var(--ok)}.text-accent{color:var(--accent)}.text-warn{color:#d97706}.text-danger{color:var(--danger)}.macro-main{flex-direction:column;gap:16px;min-width:0;display:flex}.macro-header-card{flex-direction:column;gap:16px;display:flex}.macro-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.macro-title-group{flex-direction:column;gap:6px;display:flex}.macro-name-display{cursor:pointer;align-items:center;gap:10px;display:flex}.macro-name-display h2{margin:0;font-size:19px;font-weight:700}.macro-name-display:hover .macro-edit-hint{opacity:1}.macro-badge-slot{background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.macro-edit-hint{color:var(--text-3);opacity:0;font-size:11px;transition:opacity .15s}.macro-name-edit-form{align-items:center;gap:8px;display:flex}.macro-name-input{width:240px;height:34px;font-size:14px;font-weight:600}.macro-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.draft-tag{color:#d97706;background:#f59e0b24;border:1px solid #f59e0b40}.macro-actions-top{align-items:center;gap:8px;display:flex}.macro-error-callout{background:color-mix(in srgb, var(--danger) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.macro-repeat-row{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:12px;display:flex}.macro-repeat-count-box{align-items:center;gap:8px;margin-top:8px;display:flex}.macro-events-section{flex-direction:column;gap:14px;display:flex}.macro-section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.macro-section-header h3{margin:0;font-size:15px;font-weight:700}.macro-event-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.macro-add-dropdown{align-items:center;gap:6px;display:flex}.macro-recorder-box{background:color-mix(in srgb, var(--danger) 8%, var(--surface));border:2px dashed var(--danger);cursor:text;text-align:center;border-radius:10px;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:18px 24px;display:flex}.macro-recorder-indicator{color:var(--danger);align-items:center;gap:8px;font-size:13.5px;display:flex}.record-dot{background:var(--danger);border-radius:50%;width:10px;height:10px;animation:1s infinite alternate pulse}@keyframes pulse{0%{opacity:.3;transform:scale(.9)}to{opacity:1;transform:scale(1.15)}}.macro-recorder-sub{color:var(--text-2);font-size:11.5px}.macro-events-list{flex-direction:column;gap:8px;max-height:420px;padding-right:2px;display:flex;overflow-y:auto}.macro-event-row{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;grid-template-columns:56px 130px minmax(0,1fr) 34px;align-items:center;gap:12px;padding:8px 12px;transition:border-color .15s;display:grid}.macro-event-row:hover{border-color:var(--text-3)}.macro-event-reorder{align-items:center;gap:3px;display:flex}.event-order-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:20px;height:20px;color:var(--text-2);border-radius:4px;place-items:center;padding:0;display:grid}.event-order-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.event-order-btn:disabled{opacity:.3;cursor:default}.macro-event-index{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:700}.macro-event-delay{flex-direction:column;gap:3px;display:flex}.macro-field-label{color:var(--text-3);font-size:10.5px;font-weight:600}.macro-delay-input-wrap{align-items:center;gap:4px;display:flex}.macro-delay-input-wrap .unit{color:var(--text-3);font-size:11px}.macro-event-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.macro-event-desc{flex-direction:column;min-width:140px;display:flex}.macro-event-title{color:var(--text);font-size:13px;font-weight:600}.macro-event-subtitle{color:var(--text-3);font-size:11px}.macro-event-fields{align-items:center;gap:8px;display:flex}.macro-select{min-width:150px;height:32px;padding:0 8px;font-size:12.5px}.macro-motion-wrap{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.macro-savebar{align-items:center;gap:14px;display:flex}.macro-savebar-info{align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.macro-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0000008c;place-items:center;padding:20px;animation:.15s ease-out fadeIn;display:grid;position:fixed;inset:0}.macro-modal-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);flex-direction:column;width:min(520px,95vw);animation:.18s cubic-bezier(.16,1,.3,1) scaleUp;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000040}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.macro-modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.macro-modal-title-row{align-items:center;gap:10px;display:flex}.macro-modal-title-row h3{margin:0;font-size:16px;font-weight:700}.macro-modal-body{flex-direction:column;gap:16px;max-height:70vh;padding:20px 22px;display:flex;overflow-y:auto}.macro-modal-warning-box{background:color-mix(in srgb, #f59e0b 12%, var(--surface));color:var(--text);border:1px solid #f59e0b59;border-radius:9px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:12.5px;display:flex}.macro-modal-checklist{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;font-size:13px;display:flex}.macro-check-item{align-items:flex-start;gap:8px;display:flex}.macro-wireless-ack-box{background:color-mix(in srgb, var(--danger) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.macro-wireless-title{color:var(--danger);align-items:center;gap:6px;font-size:13px;display:flex}.macro-ack-checkbox{cursor:pointer;align-items:center;gap:8px;margin-top:4px;font-size:12.5px;font-weight:600;display:flex}.macro-modal-footer{border-top:1px solid var(--line);background:var(--surface-2);justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}
