/* Institutional keyboard: one consistent light theme, with an explicit dark variant. */
.advanced-keyboard-container{--keyboard-primary:#123f39;--keyboard-secondary:#16314a;--keyboard-light:#f5f6f1;--keyboard-border:#cad8ce;--keyboard-text:#18382b;--keyboard-hover:#e4eee6;--keyboard-shadow:0 8px 24px #0b302c24;--key-surface:#fff;--key-secondary:#eaf0e9;--key-accent:#f3e8ce;--key-accent-text:#73531c;display:none;position:fixed;z-index:9999;flex-direction:column;width:720px;max-width:calc(100vw - 24px);padding:10px;gap:10px;border:1px solid var(--keyboard-border);border-top:3px solid #c8963e;border-radius:10px;background:var(--keyboard-light);color:var(--keyboard-text);box-shadow:var(--keyboard-shadow);font-family:Tajawal,'Segoe UI',sans-serif;opacity:0;transition:opacity 160ms ease;box-sizing:border-box}
.advanced-keyboard-container[dir=rtl]{direction:rtl}.advanced-keyboard-container[dir=ltr]{direction:ltr}.advanced-keyboard-container.keyboard-show{opacity:1}.advanced-keyboard-container *, .key-variant-popup *{box-sizing:border-box}
.keyboard-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 4px 10px;border-bottom:1px solid var(--keyboard-border);user-select:none;touch-action:none}.keyboard-title{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:8px;align-items:center;min-width:0}.keyboard-title>i{grid-row:1/3;color:#9a6c20;font-size:18px}.keyboard-title-text{font-weight:800;font-size:15px;white-space:nowrap}#keyboard-active-field{font-size:12px;color:var(--keyboard-text);opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.keyboard-controls{display:flex;align-items:center;gap:4px;flex-shrink:0;direction:ltr}.lang-btn,.theme-btn,.keyboard-close-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:44px;padding:0 9px;border:1px solid var(--keyboard-border);border-radius:5px;background:var(--key-surface);color:var(--keyboard-text);font:inherit;font-size:14px;font-weight:700;cursor:pointer;touch-action:manipulation}.lang-btn.active{background:var(--keyboard-primary);border-color:var(--keyboard-primary);color:#fff}.lang-btn:hover,.theme-btn:hover,.keyboard-close-btn:hover{background:var(--keyboard-hover);color:var(--keyboard-text)}.lang-btn.active:hover{background:#20594e;color:#fff}.keyboard-close-btn{color:#9c3e38}.keyboard-close-btn:hover{background:#f7e7e4;color:#8b312c}
.keyboard-content,.keyboard-letters-container{display:flex;flex-direction:column;gap:7px;min-width:0}.keyboard-row{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}.numbers-row,.symbols-row{gap:5px}.symbols-container{display:flex;align-items:center;gap:5px;min-width:0}.symbols-row{flex:1;min-width:0}.control-row{padding-top:5px;border-top:1px solid var(--keyboard-border);margin-top:3px}.keyboard-key{flex:1 1 0;min-width:0;height:46px;max-width:62px;padding:0 3px;border:1px solid var(--keyboard-border);border-bottom:2px solid var(--keyboard-border);border-radius:5px;background:var(--key-surface);color:var(--keyboard-text);font:inherit;font-size:25px;font-weight:700;line-height:1;cursor:pointer;user-select:none;touch-action:none;transition:background-color 160ms ease,border-color 160ms ease,transform 160ms ease}.keyboard-key:hover,.keyboard-key.hover{background:var(--keyboard-hover);border-color:#91ad99}.keyboard-key:active,.keyboard-key.active{background:var(--keyboard-hover);border-color:var(--keyboard-primary);transform:translateY(1px)}.key-number,.key-symbol{font-size:20px;background:var(--key-secondary)}.key-caps,.key-shift,.key-backspace,.key-enter,.key-space{max-width:none;font-size:15px;background:var(--key-secondary);font-weight:700}.key-space{flex:3 1 0}.key-caps,.key-shift{flex:1.3 1 0}.key-backspace,.key-enter{flex:1.6 1 0}.key-enter{background:var(--keyboard-primary);color:#fff;border-color:var(--keyboard-primary)}.key-enter:hover,.key-enter:active{background:#20594e;color:#fff}.key-caps.active-caps,.key-shift.active-shift{background:var(--key-accent);color:var(--key-accent-text);border-color:#c8963e}.hidden-key{visibility:hidden;pointer-events:none}.symbol-nav-btn{display:inline-flex;justify-content:center;align-items:center;flex:0 0 36px;width:36px;height:44px;border:1px solid var(--keyboard-border);border-radius:5px;background:var(--key-secondary);color:var(--keyboard-text);font-size:16px;cursor:pointer}.symbol-nav-btn:hover{background:var(--keyboard-hover)}
.keyboard-resize-handle{align-self:flex-end;color:#688271;font-size:14px;cursor:nwse-resize;padding:2px 4px;touch-action:none}.keyboard-minimized .keyboard-content,.keyboard-minimized .keyboard-resize-handle{display:none}.keyboard-minimized .keyboard-header{border-bottom:0;padding-bottom:3px}.advanced-keyboard-container.top-position{bottom:auto}.advanced-keyboard-container.fullscreen-mode{inset:12px!important;width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px);overflow:auto}.keyboard-vibrate{outline:1px solid #c8963e}
.keyboard-icon-mini{position:absolute;inset-inline-end:7px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;background:#edf3ee;color:#285747;font-size:17px;cursor:pointer;z-index:2}.keyboard-icon-mini:hover{background:#dde9df}.keyboard-field-wrapper{position:relative;min-width:0}.keyboard-field-wrapper input,.keyboard-field-wrapper textarea{padding-inline-end:44px!important}.keyboard-field-wrapper.has-content input,.keyboard-field-wrapper.has-content textarea{border-color:#91ad99}.keyboard-input-active{outline:1px solid #c8963e;outline-offset:1px}
.key-variant-popup{position:fixed;display:flex;gap:5px;padding:7px;border:1px solid #cad8ce;border-top:2px solid #c8963e;border-radius:6px;background:#f5f6f1;box-shadow:0 5px 15px #0b302c20;z-index:10002;max-width:calc(100vw - 16px)}.key-variant-option{width:42px;height:44px;min-width:0;border:1px solid #cad8ce;border-radius:4px;background:#fff;color:#18382b;font:700 24px Tajawal,'Segoe UI',sans-serif;cursor:pointer;touch-action:none}.key-variant-option:hover,.key-variant-option:active{background:#e4eee6}.key-variant-popup.dark-theme{background:#17342e;border-color:#557365}.key-variant-popup.dark-theme .key-variant-option{background:#23483c;border-color:#557365;color:#f5faf6}
.advanced-keyboard-container.dark-theme{--keyboard-primary:#2b6651;--keyboard-secondary:#c6dfe9;--keyboard-light:#17342e;--keyboard-border:#4e6b5c;--keyboard-text:#f0f7f1;--keyboard-hover:#345947;--key-surface:#23483c;--key-secondary:#294e41;--key-accent:#655537;--key-accent-text:#fff0c9}.dark-theme .keyboard-title>i{color:#f2cf8e}.dark-theme .keyboard-close-btn{color:#ffb8b0}.dark-theme .keyboard-resize-handle{color:#d2e2d6}
.advanced-keyboard-container button:focus-visible,.key-variant-option:focus-visible,.keyboard-icon-mini:focus-visible{outline:3px solid #c8963e;outline-offset:2px}
@media(max-width:768px){body.virtual-keyboard-open{padding-bottom:350px}.advanced-keyboard-container{width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px);left:6px!important;right:auto!important;top:auto!important;bottom:calc(6px + env(safe-area-inset-bottom,0px))!important;transform:none!important;padding:6px;gap:6px;max-height:70vh;overflow:auto;border-radius:8px}.keyboard-header{flex-wrap:wrap;gap:5px;padding:2px 2px 6px}.keyboard-title{display:flex;gap:6px;width:100%;justify-content:space-between}.keyboard-title>i{font-size:15px}.keyboard-title-text{font-size:13px;margin-inline-end:auto}#keyboard-active-field{max-width:140px;font-size:11px}.keyboard-controls{width:100%;justify-content:space-between;gap:4px}.lang-btn,.theme-btn,.keyboard-close-btn{min-width:36px;height:40px;flex:1;padding:0 7px;font-size:13px}.keyboard-content,.keyboard-letters-container{gap:4px}.keyboard-row,.numbers-row,.symbols-row{gap:2px}.keyboard-key{height:40px;font-size:22px;padding:0 1px;border-radius:4px;max-width:none}.key-number,.key-symbol{font-size:18px}.key-space,.key-caps,.key-shift,.key-backspace,.key-enter{font-size:13px}.symbol-nav-btn{flex-basis:26px;width:26px;height:40px;font-size:14px}.symbols-container{gap:3px}.control-row{padding-top:4px}.keyboard-resize-handle{display:none}.key-variant-popup{gap:3px;padding:5px}.key-variant-option{width:36px;height:40px;font-size:22px}}
@media(max-width:360px){.keyboard-key{font-size:20px;height:38px}.key-number,.key-symbol{font-size:17px}.key-space,.key-caps,.key-shift,.key-backspace,.key-enter{font-size:12px}.symbol-nav-btn{height:38px;flex-basis:24px;width:24px}.key-variant-option{width:32px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.advanced-keyboard-container,.keyboard-key{transition:none}.keyboard-key:active,.keyboard-key.active{transform:none}}@media print{.advanced-keyboard-container,.key-variant-popup,.keyboard-icon-mini{display:none!important}}