.text-keyboard-field{display:flex;gap:6px;align-items:center;min-width:0}.text-keyboard-field input,.text-keyboard-field textarea{flex:1;min-width:0}.text-keyboard-trigger{min-width:44px;min-height:44px;padding:6px;border:1px solid #b5c29480;border-radius:9px;background:#223b3b;color:#fff2d9;font:inherit;cursor:pointer}
.text-keyboard{position:fixed;z-index:2500;bottom:12px;left:50%;transform:translateX(-50%);display:grid;gap:7px;width:min(1120px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border:1px solid #becd8e;background:#10252cf7;border-radius:18px;box-shadow:0 -12px 70px #000b;box-sizing:border-box;color:#fff5da;font:18px system-ui,sans-serif}
.text-keyboard-active label{display:flex;align-items:center;gap:16px;font-size:16px}.text-keyboard-active input,.text-keyboard-active textarea{flex:1;min-width:0;height:48px;box-sizing:border-box;border:2px solid #e8d899;border-radius:9px;padding:9px 14px;background:#07191e;color:#fff5da;font:600 22px system-ui,sans-serif;resize:none}.text-keyboard-row{display:grid;grid-template-columns:repeat(var(--keys),minmax(0,1fr));gap:6px}.text-keyboard button{min-width:0;min-height:48px;padding:6px 2px;border:1px solid #9eae8d;border-radius:9px;background:#2b4144;color:#fff5da;font:600 22px/1 system-ui,sans-serif;touch-action:manipulation;cursor:pointer}.text-keyboard button:active{background:#6a7d4e}.text-keyboard-controls{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:7px}.text-keyboard-controls button{font-size:16px}.text-keyboard button:disabled{opacity:.4}.text-keyboard :focus-visible,.text-keyboard-trigger:focus-visible{outline:3px solid #edda94;outline-offset:2px}
@media(max-width:600px){.text-keyboard{padding:9px;gap:6px;bottom:6px;width:calc(100vw - 12px)}.text-keyboard-row{gap:3px}.text-keyboard button{font-size:17px;min-height:44px}.text-keyboard-controls{gap:3px}.text-keyboard-controls button{font-size:12px}.text-keyboard-active label{display:block;font-size:13px}.text-keyboard-active input,.text-keyboard-active textarea{display:block;width:100%;height:44px;margin:4px 0;font-size:20px}}

/* Only multiline member mirrors expand; class-name inputs keep their size. */
.text-keyboard-active textarea{height:auto;min-height:48px;max-height:min(160px,25dvh);overflow:auto;white-space:pre-wrap}
