.pattalium-controller-active :focus { outline: 3px solid #dcc4ff !important; outline-offset: 4px !important; }
.ptl-pad-hint, .ptl-pad-help, .ptl-pad-keyboard { color-scheme: dark; font: 400 14px/1.5 system-ui,sans-serif; color: #f1ecfa; background: #21182c; border: 1px solid #8a739f; box-shadow: 0 8px 32px #0008; }
.ptl-pad-hint { position: fixed; z-index: 2147483000; bottom: max(14px, env(safe-area-inset-bottom)); right: max(14px, env(safe-area-inset-right)); max-width: min(340px,calc(100vw - 28px)); padding: 10px 14px; min-height: 44px; border-radius: 8px; cursor: pointer; }
.ptl-pad-hint[hidden] { display: none; }
.ptl-pad-cursor { pointer-events:none; position:fixed; z-index:2147483003; width:20px; height:20px; border:2px solid #fff; outline:2px solid #533773; border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 18px #a877d4; }
.ptl-pad-help { z-index: 2147483001; width: min(440px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow: auto; padding: 28px; border-radius: 14px; }
.ptl-pad-help::backdrop { background: #08050ccd; }
.ptl-pad-help h2 { margin: 0 0 20px; color: inherit; font: 600 23px/1.2 system-ui,sans-serif; }
.ptl-pad-help dl { display: grid; grid-template-columns: 1fr 1.35fr; gap: 12px; }
.ptl-pad-help dt { color: #dcc4ff; font-weight: 600; }
.ptl-pad-help dd { margin: 0; }
.ptl-pad-help p { color: #c9bbd8; margin: 20px 0; }
.ptl-pad-help button, .ptl-pad-keyboard button { font: inherit; color: #fff; background: #3e2f50; border: 1px solid #8a739f; border-radius: 5px; min-height: 44px; padding: 8px 12px; cursor: pointer; }
.ptl-pad-help button:hover, .ptl-pad-keyboard button:hover { background: #5b436f; }
.ptl-pad-keyboard { position: fixed; z-index: 2147483002; bottom: max(10px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); width: min(650px,calc(100vw - 20px)); padding: 14px; border-radius: 12px; }
.ptl-pad-keyboard p { margin: 0 0 12px; }
.ptl-pad-key-row { display: flex; gap: 5px; justify-content: center; margin-block: 5px; }
.ptl-pad-key-row button { flex: 1 1 0; min-width: 0; padding: 6px 2px; }
@media (max-width:420px) { .ptl-pad-keyboard { padding: 9px; } .ptl-pad-key-row { gap: 3px; } }

/* PATTALIUM LEGAL START */
/* Shared local privacy controls. Scoped so each experience keeps its own design. */
.ptl-legal{box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;width:100%;min-width:0;padding:12px 0;font:400 12px/1.5 system-ui,sans-serif;letter-spacing:normal;text-transform:none;color:inherit}
.ptl-legal>span{white-space:nowrap}.ptl-legal nav{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px}.ptl-legal a{display:inline-flex;align-items:center;min-height:32px;padding:2px 0;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px}.ptl-legal a:focus-visible{outline:2px solid currentColor;outline-offset:4px}.ptl-legal--standalone{padding:16px 24px;flex:none}.ptl-legal--compact{width:auto;gap:4px 14px;padding:4px 0}.ptl-legal--compact a{min-height:32px}
.ptl-privacy-dialog{box-sizing:border-box;position:fixed;inset:0;z-index:2147483000;width:min(580px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);height:auto;margin:auto;padding:24px;overflow:auto;overscroll-behavior:contain;border:1px solid #9b90a8;border-radius:4px;background:#f8f5fa;color:#251c30;font:400 15px/1.6 system-ui,sans-serif;letter-spacing:normal;text-transform:none;text-align:left;color-scheme:light;isolation:isolate}
.ptl-privacy-dialog::backdrop{background:rgb(12 8 18 / .7)}.ptl-privacy-dialog *{box-sizing:border-box}.ptl-privacy-dialog .ptl-privacy-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.ptl-privacy-dialog h2{margin:0;font:600 23px/1.3 system-ui,sans-serif;color:inherit;letter-spacing:-.025em}.ptl-privacy-dialog h3{margin:0 0 6px;font:600 16px/1.4 system-ui,sans-serif;color:inherit}.ptl-privacy-dialog p{margin:12px 0;max-width:none;font:inherit;color:inherit}.ptl-privacy-dialog .ptl-privacy-essential{padding:16px 0;border-block:1px solid #d6cedd;margin:16px 0}.ptl-privacy-essential p{margin:0}.ptl-privacy-dialog button{appearance:none;display:inline-flex;align-items:center;justify-content:center;position:static;width:auto;min-height:44px;margin:0;padding:9px 14px;border:1px solid #92839f;border-radius:4px;background:#eee7f3;color:#251c30;font:600 14px/1.4 system-ui,sans-serif;letter-spacing:normal;text-transform:none;cursor:pointer;transform:none;box-shadow:none}.ptl-privacy-dialog button:hover{background:#e1d6e9}.ptl-privacy-dialog button:focus-visible,.ptl-privacy-dialog a:focus-visible,.ptl-privacy-dialog input:focus-visible{outline:3px solid #684886;outline-offset:3px}.ptl-privacy-dialog .ptl-privacy-close{background:transparent;flex:none}.ptl-privacy-dialog .ptl-privacy-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}.ptl-privacy-dialog .ptl-privacy-actions button{flex:1 1 auto}.ptl-privacy-dialog .ptl-privacy-links{display:flex;flex-wrap:wrap;gap:0 18px;border-top:1px solid #d6cedd;padding-top:12px;margin-top:16px}.ptl-privacy-dialog a{display:inline-flex;align-items:center;min-height:40px;color:#50356c;font:500 14px/1.5 system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px}.ptl-privacy-dialog small{display:block;margin-top:12px;font:400 12px/1.5 system-ui,sans-serif}.ptl-privacy-dialog .ptl-privacy-option{display:flex;align-items:start;gap:12px;margin:16px 0;cursor:pointer}.ptl-privacy-option input{appearance:auto;flex:none;width:22px;height:22px;margin:2px 0;accent-color:#684886}.ptl-privacy-option span{display:block}.ptl-privacy-dialog .ptl-privacy-status:empty{display:none}
@media(max-width:420px){.ptl-privacy-dialog{padding:18px}.ptl-privacy-dialog .ptl-privacy-heading{gap:10px}.ptl-privacy-dialog h2{font-size:21px}.ptl-privacy-dialog .ptl-privacy-actions{flex-direction:column}}
@media(forced-colors:active){.ptl-privacy-dialog,.ptl-privacy-dialog button{border:1px solid CanvasText;background:Canvas;color:CanvasText}}

/* PATTALIUM LEGAL END */

/* Keep legal actions above the controller connection hint. */
body:has(.ptl-pad-hint:not([hidden])) .ptl-legal{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
