.munsi-keyboard{position:fixed;left:12px;top:auto;z-index:2000;width:min(780px,calc(100vw - 24px));padding:6px 8px 10px;border:1px solid var(--border,#cecece);border-radius:12px;background:var(--ide-panel,#f3f3f3);color:var(--text,#252526);box-shadow:0 10px 32px rgba(0,0,0,.28);opacity:0;transform:translateY(16px);transition:opacity 140ms ease,transform 140ms ease;touch-action:none;user-select:none;-webkit-user-select:none}
.munsi-keyboard[hidden]{display:none}
.munsi-keyboard.open{opacity:1;transform:none}
.munsi-keyboard[data-position=below]:not(.open){transform:translateY(12px)}
.munsi-keyboard[data-position=above]:not(.open){transform:translateY(-12px)}
.munsi-keyboard.dragging{transition:none;opacity:.94}
.munsi-keyboard[data-layout=numeric]{width:min(380px,calc(100vw - 24px))}
.munsi-kb-bar{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 2px 6px;cursor:grab}
.munsi-kb-grip{flex:0 0 36px;height:6px;border-radius:3px;background:var(--border,#cecece)}
.munsi-kb-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;color:var(--muted,#616161)}
.munsi-kb-keys{display:grid;gap:4px}
.munsi-kb-row{display:flex;gap:4px}
.munsi-kb-key{flex:1 1 0;min-width:0;min-height:54px;margin:0;padding:0 4px;border:1px solid var(--border,#cecece);border-radius:8px;background:var(--surface,#fff);color:var(--text,#252526);font:500 22px/1 system-ui,sans-serif;box-shadow:0 1px 0 rgba(0,0,0,.12);cursor:pointer}
.munsi-kb-special{background:var(--ide-hover,#e4e6e9);font-size:17px}
.munsi-kb-key.pressed{background:var(--accent,#007acc);border-color:var(--accent,#007acc);color:#fff}
.munsi-kb-key[data-key=space]{flex-grow:4}
.munsi-kb-key[data-key=enter]{flex-grow:1.6;background:var(--accent,#007acc);border-color:var(--accent,#007acc);color:#fff}
.munsi-kb-key[data-key=shift][aria-pressed=true]{background:var(--accent,#007acc);color:#fff}
.munsi-kb-gap{flex:1 1 0}
.munsi-kb-hide{flex:0 0 auto;min-height:36px;padding:0 14px;font-size:15px}
.munsi-keyboard-spacer{flex:none;pointer-events:none}
@media(prefers-reduced-motion:reduce){.munsi-keyboard{transition:none}}
@media print{.munsi-keyboard,.munsi-keyboard-spacer{display:none!important}}
.munsi-keyboard[data-layout=numeric] .munsi-kb-keys .munsi-kb-key{flex-grow:1}
