.morse-key-dock>.morse-simulate-btn{top:50%;left:calc(max(1rem, env(safe-area-inset-left)) + 1.5rem);z-index:20;position:absolute;transform:translateY(-50%)}.morse-simulate-btn{box-sizing:border-box;aspect-ratio:1;cursor:pointer;width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;color:var(--foreground);box-shadow:none;-webkit-backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background-color:#ffffffb3;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;transition:background-color .15s,transform .1s;display:inline-flex;overflow:visible}.dark .morse-simulate-btn{box-shadow:none;background-color:#ffffff6b}.morse-simulate-btn:hover:not(:disabled){background-color:#ffffffd1}.dark .morse-simulate-btn:hover:not(:disabled){background-color:#ffffff94}.morse-key-dock>.morse-simulate-btn:active:not(:disabled){transform:translateY(-50%)scale(.95)}.morse-simulate-btn:disabled{pointer-events:none;opacity:.5;cursor:default}
.morse-text-sheet{z-index:50;position:fixed;inset:0}.morse-text-sheet__overlay{z-index:0;cursor:default;pointer-events:auto;opacity:0;touch-action:manipulation;background-color:#00000080;border:none;margin:0;padding:0;transition:opacity .32s;position:fixed;inset:0}.morse-text-sheet__overlay.is-visible{opacity:1}.morse-text-sheet__panel{z-index:1;pointer-events:auto;box-sizing:border-box;padding:1rem 1rem max(1rem, env(safe-area-inset-bottom,0px));background-color:var(--background);color:var(--foreground);border-radius:1rem 1rem 0 0;flex-direction:column;gap:.75rem;transition:transform .32s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.morse-text-sheet__panel.is-visible{transform:translate(0,0)}.morse-text-sheet__input{box-sizing:border-box;resize:vertical;border:1px solid var(--border);background-color:var(--muted);width:100%;min-height:5.5rem;font:inherit;color:var(--foreground);border-radius:.5rem;outline:none;padding:.625rem .75rem;font-size:1rem;line-height:1.4}.morse-text-sheet__input:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in oklab, var(--ring) 35%, transparent)}.morse-text-sheet__input:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.morse-text-sheet__overlay,.morse-text-sheet__panel{transition:none}.morse-text-sheet__panel{transform:translate(0,0)}}
