.pk-launcher, .pk-panel { font-family: Vazirmatn, Tahoma, sans-serif; color: var(--ink); }
.pk-launcher { position: fixed; z-index: 100; inset-inline-end: 16px; bottom: max(16px, env(safe-area-inset-bottom)); min-height: 48px; padding: 10px 20px; border: 1px solid var(--ink); border-radius: 30px; color: var(--paper); background: var(--ink); box-shadow: var(--shadow); }
body { padding-bottom: 76px; }
body.pk-open { padding-bottom: calc(var(--pk-height, 500px) + 24px); }
html { scroll-padding-bottom: calc(var(--pk-height, 0px) + 24px); }
.pk-panel { position: fixed; z-index: 101; bottom: 0; left: 50%; transform: translateX(-50%); width: min(760px, 100%); max-height: 80dvh; overflow-y: auto; overscroll-behavior: contain; padding: 12px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: var(--paper); border: 1px solid var(--line); border-radius: 20px 20px 0 0; box-shadow: 0 -8px 35px #26364226; }
.pk-panel[hidden], .pk-launcher[hidden] { display: none; }
.pk-heading { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.pk-heading h2 { margin: 0; font-size: 1.05rem; }
.pk-panel button, [data-persian-keyboard-open] { min-height: 44px; min-width: 44px; border: 1px solid var(--line); border-radius: 9px; background: var(--cream); color: var(--ink); padding: 6px 10px; touch-action: manipulation; }
.pk-panel button:hover, [data-persian-keyboard-open]:hover { background: var(--mint); }
.pk-panel button:active, .pk-launcher:active { background: var(--sky); color: var(--ink); }
.pk-panel button:focus-visible, .pk-launcher:focus-visible, #pk-editor:focus-visible, [data-persian-keyboard-open]:focus-visible { outline: 3px solid var(--mint-deep); outline-offset: 2px; }
.pk-panel button:disabled { opacity: .45; cursor: default; }
.pk-target { display: block; margin: 4px 0; font-size: .85rem; overflow-wrap: anywhere; }
#pk-editor { display: block; width: 100%; min-height: 56px; max-height: 160px; padding: 8px 12px; font: 1.15rem/1.6 Vazirmatn, Tahoma, sans-serif; color: var(--ink); border: 1px solid var(--muted); border-radius: 8px; background: white; resize: vertical; }
#pk-hint, .pk-status { margin: 4px 0; font-size: .8rem; }
#pk-hint:empty, .pk-status:empty { display: none; }
.pk-tabs { display: flex; gap: 6px; margin-block: 8px; }
.pk-tabs button { flex: 1; font-size: .85rem; }
.pk-tabs button[aria-pressed="true"] { color: white; background: var(--ink); border-color: var(--ink); }
.pk-keys { display: grid; grid-template-columns: repeat(11, minmax(44px, 1fr)); gap: 5px; }
.pk-keys button { font-size: 1.3rem; padding: 4px; background: white; border-color: #c9beac; }
.pk-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.pk-actions button { flex: 1 1 auto; font-size: .85rem; }
.pk-actions [data-pk="space"] { flex-grow: 3; }
@media (max-width: 600px) {
  .pk-keys { grid-template-columns: repeat(6, minmax(44px, 1fr)); }
  .pk-panel { padding-top: 8px; }
  .pk-launcher { inset-inline-end: 12px; }
}
@media (max-height: 500px) {
  .pk-panel { max-height: 75dvh; }
}
