.km-app{--km-bg:#fff;--km-panel:#fff;--km-band:#f1f0ec;--km-line:#e2e1db;--km-line-strong:#c8c7bf;--km-fill:#f1f0ec;--km-fill-hover:#e7e6e0;--km-fill-active:#d6d4cb;--km-ink:#1b1b18;--km-ink-soft:#6f6e67;--km-ink-faint:#9b9a92;--km-term-bg:#161613;--km-term-ink:#d9d8d0;--km-term-soft:#7e7d72;--km-term-line:#2a2a25;--km-ring:#1b1b188c;--km-radius:7px;--km-radius-sm:5px;background:var(--km-bg);color:var(--km-ink);-webkit-font-smoothing:antialiased;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.km-app[data-bs-theme=dark]{--km-bg:#0f0f0d;--km-panel:#0f0f0d;--km-band:#1b1b17;--km-line:#2c2b26;--km-line-strong:#45443c;--km-fill:#26251f;--km-fill-hover:#2f2e26;--km-fill-active:#403e33;--km-ink:#ecebe3;--km-ink-soft:#a3a298;--km-ink-faint:#6f6e64;--km-term-bg:#080807;--km-term-ink:#d9d8d0;--km-term-soft:#6f6e64;--km-term-line:#232220;--km-ring:#ecebe380}.km-app *{box-sizing:border-box}.km-pixel{letter-spacing:.02em;text-transform:uppercase;font-family:Silkscreen,JetBrains Mono,monospace}.km-app .km-mut{color:var(--km-ink-soft)}.km-app .km-faint{color:var(--km-ink-faint)}.km-panel-title{letter-spacing:.03em;color:var(--km-ink);font-family:Silkscreen,monospace;font-size:11px}.km-theme{visibility:hidden;border:1px solid var(--km-line-strong);border-radius:var(--km-radius-sm);display:inline-flex;overflow:hidden}.km-theme button{background:var(--km-panel);color:var(--km-ink-soft);cursor:pointer;border:0;padding:5px 9px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1}.km-theme button+button{border-left:1px solid var(--km-line-strong)}.km-theme button.active{background:var(--km-fill-active);color:var(--km-ink)}.km-toolbar{grid-template-columns:1fr auto 1fr;align-items:start;gap:18px;padding:16px 18px 6px;display:grid}.km-tool-col{align-items:center;gap:8px;min-width:0;display:flex}.km-tool-col.right{justify-content:flex-end}.km-tool-col.center{flex-direction:column;justify-content:center;gap:8px}.km-btn{color:var(--km-ink);background:var(--km-fill);border:1px solid var(--km-line-strong);border-radius:var(--km-radius);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:8px 14px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;line-height:1;transition:background .12s,border-color .12s,transform 40ms;display:inline-flex}.km-btn:hover{background:var(--km-fill-hover)}.km-btn:active{background:var(--km-fill-active);transform:translateY(1px)}.km-btn .km-ico{opacity:.8;font-size:13px;line-height:1}.km-btn.km-btn-wide{justify-content:center;min-width:104px}.km-select-wrap{min-width:280px;position:relative}.km-select-label{letter-spacing:.16em;text-transform:uppercase;color:var(--km-ink-faint);text-align:center;margin-bottom:4px;font-size:9.5px}.km-select{width:100%;color:var(--km-ink);background:var(--km-panel);border:1px solid var(--km-line-strong);border-radius:var(--km-radius);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%236f6e67' stroke-width='1.4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:9px 34px 9px 14px;font-family:JetBrains Mono,monospace;font-size:13px}.km-conn-row{align-items:center;gap:8px;display:flex}.km-conn-select{color:var(--km-ink);background:var(--km-panel);border:1px solid var(--km-line-strong);border-radius:var(--km-radius-sm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%236f6e67' stroke-width='1.4'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding:5px 26px 5px 10px;font-family:JetBrains Mono,monospace;font-size:11.5px}.km-conn-status{letter-spacing:.02em;border:1px solid var(--km-line-strong);white-space:nowrap;border-radius:10px;padding:4px 9px;font-family:JetBrains Mono,monospace;font-size:10.5px}.km-conn-status.on{background:color-mix(in srgb, #4f9a52 22%, var(--km-fill));border-color:color-mix(in srgb, #4f9a52 50%, var(--km-line-strong))}.km-conn-status.off{background:var(--km-fill);color:var(--km-ink-soft)}.km-alert-zone{flex:none;justify-content:center;height:46px;padding:6px 18px 0;display:flex}.km-alert-zone .alert{border-radius:var(--km-radius);white-space:nowrap;border-width:1px;align-items:center;gap:8px;width:max-content;max-width:33%;margin-bottom:0;padding:8px 14px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex;overflow:hidden}.km-alert-zone .alert .km-amsg{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.km-alert-zone .alert .btn-close{flex:none}.km-alert-zone .alert .km-tag{letter-spacing:.04em;text-transform:uppercase;background:#0000000f;border-radius:3px;flex:none;padding:2px 5px;font-family:Silkscreen,monospace;font-size:9px}.km-top{justify-content:center;align-items:center;min-height:max(320px,50vh);padding:20px 32px;display:flex;position:relative}.km-levels{z-index:5;flex-direction:column;align-items:stretch;gap:7px;display:flex;position:absolute;top:40%;left:20%;transform:translate(-100%,-50%)}.km-levels-title{color:var(--km-ink);letter-spacing:.02em;margin-bottom:4px;padding-left:2px;font-family:Silkscreen,monospace;font-size:9px}.km-level-row{cursor:pointer;align-items:center;gap:9px;display:flex}.km-level{border-radius:var(--km-radius-sm);border:1px solid var(--km-line-strong);background:var(--km-fill);width:38px;height:38px;color:var(--km-ink);cursor:pointer;flex:none;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:flex;position:relative}.km-level-row:hover .km-level{background:var(--km-fill-hover)}.km-level.active{background:var(--km-fill-active);border-color:var(--km-ink-soft)}.km-level.active:before{content:"";background:var(--km-ink);border-radius:2px;width:3px;height:16px;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.km-level-name{color:var(--km-ink-soft);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11.5px}.km-level-name.active{color:var(--km-ink);font-weight:600}.km-board-wrap{max-width:100%;padding:6px;overflow-x:auto}.km-board{justify-content:center;align-items:flex-start;gap:36px;min-width:max-content;margin:0 auto;padding:10px;display:flex}.km-half{gap:7px;padding:4px;display:grid}.km-half-abs{flex:none;padding:6px;position:relative}.km-key{border-radius:var(--km-radius);transform-origin:50%;border:1px solid var(--km-line-strong);background:var(--km-fill);width:52px;height:52px;color:var(--km-ink);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;justify-content:center;align-items:center;padding:2px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;line-height:1.05;transition:background .1s,border-color .1s,box-shadow .1s;display:flex;position:relative}.km-key small{font-size:10px}.km-key:hover{background:var(--km-fill-hover)}.km-key.selected{background:var(--km-fill-active);border-color:var(--km-ink-soft);box-shadow:0 0 0 2px var(--km-ring)}.km-key.km-trns{color:var(--km-ink-faint)}.km-key.km-dragover{border-color:var(--km-ink);box-shadow:0 0 0 2px var(--km-ring);background:var(--km-fill-hover)}.km-key.km-flash{animation:.45s kmFlash}@keyframes kmFlash{0%{background:var(--km-fill-active)}to{background:var(--km-fill)}}.km-board-name{text-align:center;letter-spacing:.06em;color:var(--km-ink-soft);text-transform:uppercase;margin-top:18px;font-family:Silkscreen,monospace;font-size:12px}.km-board-empty{color:var(--km-ink-faint);text-align:center;padding:64px 20px;font-family:JetBrains Mono,monospace;font-size:12.5px}.km-bottom{background:var(--km-band);border-top:1px solid var(--km-line);flex-direction:column;padding:16px 18px 18px;display:flex}.km-bottom-inner{align-items:stretch;gap:16px;height:clamp(260px,34vh,380px);display:flex}.km-keys{flex-direction:column;flex:1 1 0;min-width:0;height:100%;min-height:0;display:flex}.km-keys-head{flex:none;align-items:center;gap:16px;margin-bottom:8px;display:flex}.km-keys-head .km-panel-title{flex:none}.km-tabs{flex-wrap:wrap;gap:4px;display:flex}.km-tab{color:var(--km-ink-soft);cursor:pointer;border-radius:var(--km-radius-sm);background:0 0;border:1px solid #0000;padding:5px 11px;font-family:JetBrains Mono,monospace;font-size:11.5px}.km-tab:hover{color:var(--km-ink);background:var(--km-panel)}.km-tab.active{color:var(--km-ink);background:var(--km-panel);border-color:var(--km-line-strong)}.km-palette-body{background:var(--km-panel);border:1px solid var(--km-line);border-radius:var(--km-radius);flex-wrap:wrap;flex:auto;align-content:flex-start;gap:7px;min-height:0;padding:12px;display:flex;overflow-y:auto}.km-palette-body.km-palette-panel{display:block}.km-palette-body.km-grouped{flex-flow:column;gap:14px}.km-cat-title{letter-spacing:.08em;text-transform:uppercase;color:var(--km-ink-faint);margin-bottom:7px;font-family:Silkscreen,monospace;font-size:9px}.km-cat-chips{flex-wrap:wrap;gap:7px;display:flex}.km-chip{border-radius:var(--km-radius);border:1px solid var(--km-line-strong);background:var(--km-fill);min-width:42px;height:42px;color:var(--km-ink);cursor:grab;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:0 9px;font-family:JetBrains Mono,monospace;font-size:12px;transition:background .1s;display:inline-flex}.km-chip:hover{background:var(--km-fill-hover)}.km-chip:active{cursor:grabbing}.km-chip.km-dragging{opacity:.45}.km-chip.km-chip-wide{min-width:64px}.km-chip.km-chip-param{cursor:pointer;border-style:dashed}.km-form{flex-direction:column;gap:10px;display:flex}.km-form.km-form-2col{grid-template-columns:1fr 1fr;align-items:center;gap:10px 28px;display:grid}.km-side-cols{grid-template-columns:1fr 1fr;align-items:start;gap:16px 28px;display:grid}.km-side-col{flex-direction:column;gap:10px;display:flex}.km-side-title{letter-spacing:.1em;text-transform:uppercase;color:var(--km-ink-soft);border-bottom:1px solid var(--km-line);padding-bottom:6px;font-family:Silkscreen,monospace;font-size:10px}.km-col-inactive{opacity:.42}.km-half-inactive{opacity:.4;transition:opacity .15s}.km-form-row{align-items:center;gap:12px;transition:opacity .12s;display:flex}.km-form-row.km-inactive{opacity:.38}.km-form-row.km-active .km-form-label:after{content:" •";color:var(--km-ink-soft)}.km-rgb-effect-desc{color:var(--km-ink-soft);margin:2px 0 6px;font-size:11px;line-height:1.5}.km-form-label{color:var(--km-ink-soft);min-width:96px;font-size:11px}.km-form-val{color:var(--km-ink-soft);text-align:right;min-width:30px;font-size:11px}.km-range{accent-color:var(--km-ink-soft);flex:auto;height:4px}.km-range-wrap{flex-direction:column;flex:auto;gap:3px;display:flex}.km-range-wrap .km-range{flex:none;width:100%}.km-range-ticks-bar{justify-content:space-between;padding:0 7px;display:flex}.km-range-ticks-bar i{background:var(--km-line-strong);width:1px;height:5px;display:block}.km-switch{color:var(--km-ink);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:inline-flex}.km-switch.km-switch-sm{font-size:11px}.km-switch input{accent-color:var(--km-ink-soft)}.km-mini-select{color:var(--km-ink);background:var(--km-panel);border:1px solid var(--km-line-strong);border-radius:var(--km-radius-sm);padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:12px}.km-flags{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 18px;margin-top:4px;display:flex}.km-flags .km-form-label{min-width:100%;margin-bottom:2px}.km-form~.km-btn-wide{margin-top:12px}.km-macro-note{color:var(--km-ink-soft);max-width:60ch;font-size:12px;line-height:1.7}.km-term{background:var(--km-term-bg);border:1px solid var(--km-term-line);border-radius:var(--km-radius);flex-direction:column;flex:0 0 33.333%;max-width:33.333%;display:flex;overflow:hidden}.km-term-head{border-bottom:1px solid var(--km-term-line);justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.km-term-head .km-panel-title{color:var(--km-term-ink);align-items:center;display:inline-flex}.km-term-dots{gap:5px;margin-right:8px;display:inline-flex}.km-term-dots i{background:var(--km-term-line);border-radius:50%;width:9px;height:9px;display:inline-block}.km-term-meta{letter-spacing:.04em;color:var(--km-term-soft);font-size:10px}.km-term-body{color:var(--km-term-ink);flex:auto;min-height:0;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.65;overflow-y:auto}.km-term-line{white-space:pre-wrap;word-break:break-word}.km-term-line .t,.km-term-line .p{color:var(--km-term-soft)}.km-term-line.ok .m{color:#cfeacb}.km-term-line.err .m{color:#f0c9c4}.km-term-line.warn .m{color:#efe3bd}.km-term-body::-webkit-scrollbar{width:9px}.km-term-body::-webkit-scrollbar-thumb{background:var(--km-term-line);border-radius:5px}.km-dialog-overlay{z-index:1080;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.km-dialog{color:#1b1b18;background:#fff;border:1px solid #c8c7bf;border-radius:16px;min-width:320px;max-width:92vw;padding:20px 22px;box-shadow:0 24px 60px #00000073}.km-dialog-title{color:#1b1b18;margin-bottom:14px;font-size:12px}.km-dialog-form{flex-direction:column;gap:12px;display:flex}.km-dialog-row{flex-direction:column;gap:5px;display:flex}.km-dialog-row .km-form-label{color:#6f6e67}.km-dialog-input,.km-dialog .km-mini-select{color:#1b1b18;background:#f6f6f2;border:1px solid #c8c7bf;border-radius:9px;padding:7px 10px;font-family:JetBrains Mono,monospace;font-size:13px}.km-dialog-input:focus,.km-dialog .km-mini-select:focus{border-color:#6f6e67;outline:none}.km-dialog .km-btn{color:#1b1b18;background:#f6f6f2;border:1px solid #c8c7bf;border-radius:9px}.km-dialog .km-btn:hover{background:#ecece6}.km-dialog-btns{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.km-dialog-err{color:#c0564c;margin-top:12px;font-size:11px}.km-busy-overlay{z-index:1090;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.km-busy{color:#1b1b18;background:#fff;border:1px solid #c8c7bf;border-radius:16px;flex-direction:column;align-items:center;gap:14px;min-width:260px;max-width:92vw;padding:24px 28px;display:flex;box-shadow:0 24px 60px #00000073}.km-spinner{border:3px solid #e2e1db;border-top-color:#1b1b18;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite km-spin}@keyframes km-spin{to{transform:rotate(360deg)}}.km-busy-label{color:#1b1b18;text-align:center;font-size:12px}.km-busy-bar{background:#e2e1db;border-radius:4px;width:100%;height:6px;overflow:hidden}.km-busy-bar i{background:#1b1b18;width:0;height:100%;transition:width .1s linear;display:block}.km-busy-pct{color:#6f6e67;font-family:JetBrains Mono,monospace;font-size:11px}.km-fw-overlay{z-index:1095;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.km-fw{color:#1b1b18;background:#fff;border:1px solid #c8c7bf;border-radius:16px;flex-direction:column;gap:12px;min-width:320px;max-width:92vw;padding:22px 24px;display:flex;box-shadow:0 24px 60px #00000073}.km-fw-title{color:#1b1b18;font-size:12px}.km-fw-ver{color:#1b1b18;letter-spacing:.02em;font-family:JetBrains Mono,monospace;font-size:14px}.km-fw-ver:empty{display:none}.km-fw-changelog{color:#6f6e67;width:max-content;font-size:11px;text-decoration:none}.km-fw-changelog:hover{color:#1b1b18;text-decoration:underline}.km-fw-msg{color:#6f6e67;font-size:12px;line-height:1.45}.km-fw-bar{background:#e2e1db;border-radius:4px;width:100%;height:6px;overflow:hidden}.km-fw-bar i{background:#1b1b18;width:0;height:100%;transition:width .15s linear;display:block}.km-fw-btns{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.km-fw .km-btn{color:#1b1b18;background:#f6f6f2;border:1px solid #c8c7bf;border-radius:9px}.km-fw .km-btn:hover{background:#ecece6}.km-fw .km-fw-primary{color:#f6f6f2;background:#1b1b18;border-color:#1b1b18}.km-fw .km-fw-primary:hover{background:#000}@media (width<=720px){.km-top{flex-direction:column;gap:16px;padding:16px}.km-levels{flex-flow:wrap;justify-content:center;position:static;left:auto;transform:none}.km-levels-title{text-align:center;width:100%}.km-bottom-inner{flex-direction:column;height:auto}.km-keys{min-height:240px}.km-term{flex:none;width:100%;max-width:100%;height:200px}.km-toolbar{grid-template-columns:1fr;gap:10px}.km-tool-col,.km-tool-col.right,.km-tool-col.center{justify-content:center}.km-select-wrap{width:100%;min-width:0}.km-form.km-form-2col{grid-template-columns:1fr}.km-alert-zone .alert{max-width:90%}}
