/* Jack is scoped; existing site/booking/navigation styles remain untouched. */
#jack-launcher{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;border:1px solid #ffffff55;border-radius:50%;background:#171717;color:#fff;box-shadow:0 2px 12px #0003;font:400 22px/1 Exo,Arial,sans-serif;z-index:80;padding:0;cursor:pointer}
#jack-launcher[hidden]{display:none!important}
#jack-panel{box-sizing:border-box;width:min(370px,calc(100vw - 24px));max-width:370px;max-height:calc(100dvh - 106px);margin:auto 16px 76px auto;border:1px solid #ddd;border-radius:6px;padding:22px;background:#fff;color:#171717;overflow:auto;overscroll-behavior:contain;font:400 14px/1.55 Exo,Arial,sans-serif;box-shadow:0 16px 60px #0004}
#jack-panel::backdrop{background:#0005}
#jack-panel header{display:flex;justify-content:space-between;align-items:center;position:static;padding:0;margin:0 0 12px;background:#fff;color:#171717;height:auto}
#jack-panel h2{font:400 32px/1.1 League,Arial,sans-serif;margin:0;padding:0;letter-spacing:0}
#jack-panel header button{display:grid;place-items:center;min-width:44px;height:44px;padding:0;border:0;background:transparent;color:#171717;font:300 26px/1 Arial;cursor:pointer}
#jack-panel .jack-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#jack-panel .jack-choices button{min-height:44px;text-align:left;font:inherit;padding:9px 10px;border:1px solid #ddd;border-radius:3px;background:#fff;color:#171717;cursor:pointer}
#jack-panel #jack-response{margin:16px 0}
#jack-panel p{font:inherit;margin:0 0 12px;color:inherit;max-width:none}
#jack-panel a{color:#a62621;text-decoration:underline;text-underline-offset:3px}
#jack-panel label{display:block;font:inherit;color:#171717}
#jack-panel input{display:block;width:100%;box-sizing:border-box;margin:8px 0;padding:10px;min-height:44px;border:1px solid #aaa;border-radius:3px;font:16px Exo,Arial,sans-serif;background:#fff;color:#171717}
#jack-panel form>button{min-height:44px;padding:10px 16px;background:#a62621;color:#fff;border:0;border-radius:3px;font:inherit;cursor:pointer}
#jack-panel :focus-visible,#jack-launcher:focus-visible{outline:2px solid #171717;outline-offset:3px}
html[data-d4w-input="pointer"] #jack-panel button:focus,#jack-launcher[data-d4w-pointer-focus]{outline:none}
@media(max-width:600px){#jack-panel{margin:auto auto max(74px,calc(env(safe-area-inset-bottom) + 58px));padding:16px;max-height:calc(100dvh - 100px)}}

#jack-panel .jack-riddle-reveal{font:inherit;border:1px solid #ddd;border-radius:3px;background:#fff;color:#171717;min-height:44px;padding:8px 10px;margin:8px 8px 0 0;cursor:pointer}
.jack-consent{box-sizing:border-box;width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid #ddd;border-radius:6px;background:#fff;color:#171717;padding:22px;overflow:auto;font:400 14px/1.55 Exo,Arial,sans-serif}
.jack-consent::backdrop{background:#0006}.jack-consent h2{font:400 32px/1.1 League,Arial,sans-serif;margin:0 0 16px}.jack-consent p{font:inherit;color:inherit;margin:0 0 10px}.jack-consent label{display:flex;align-items:flex-start;gap:8px;margin:16px 0}.jack-consent label input{width:20px;height:20px;flex:none}.jack-consent a{color:#a62621}.jack-consent button{min-height:44px;font:inherit;border:1px solid #ddd;background:#fff;color:#171717;border-radius:3px;padding:10px 12px;margin:8px 8px 0 0}.jack-consent button:last-child{background:#a62621;color:#fff;border:0}.jack-consent button:disabled{opacity:.5}.jack-consent :focus-visible{outline:2px solid #171717;outline-offset:3px}

#jack-panel{display:flex;flex-direction:column;overflow:hidden;max-height:min(640px,calc(100dvh - 106px))}
#jack-panel:not([open]){display:none}
#jack-panel header,#jack-panel form,#jack-panel .jack-choices{flex-shrink:0}
#jack-panel #jack-response{overflow:auto;min-height:72px;max-height:340px;overscroll-behavior:contain;padding-right:4px}
#jack-panel .jack-message{padding:10px 12px;margin:0 0 10px;border-radius:4px;background:#f5f3f0}
#jack-panel .jack-user{margin-left:20px;background:#eee9e4}
#jack-panel .jack-speaker{display:block;font-size:12px;margin:0 0 4px}
#jack-panel .jack-message p{margin:0 0 6px;white-space:pre-wrap;overflow-wrap:anywhere}
#jack-panel .jack-message p:last-child{margin-bottom:0}
#jack-panel .jack-suggestions{display:flex;flex-wrap:wrap;gap:6px}
#jack-panel .jack-suggestions button,#jack-panel .jack-handoff{font:inherit;min-height:44px;border:1px solid #ccc;border-radius:3px;background:#fff;color:#171717;padding:8px 10px;text-align:left;cursor:pointer}
#jack-panel .jack-handoff{background:#a62621;color:#fff;border-color:#a62621}
#jack-panel .jack-reset{align-self:flex-end;flex-shrink:0;font:inherit;font-size:12px;color:#555;background:transparent;border:0;padding:6px;min-height:32px;text-decoration:underline;cursor:pointer}
@media(max-width:600px){#jack-panel{max-height:calc(100dvh - 100px)}#jack-panel #jack-response{max-height:calc(100dvh - 370px)}}

#jack-panel .jack-header-actions{display:flex;gap:4px}#jack-panel.jack-expanded{width:min(860px,calc(100vw - 24px));max-width:860px;height:calc(var(--jack-viewport-height,100dvh) - 24px);max-height:calc(var(--jack-viewport-height,100dvh) - 24px);margin:auto;padding:22px}#jack-panel.jack-expanded #jack-response{flex:1;max-height:none;min-height:0}#jack-panel .jack-puzzle-board{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:6px;max-width:240px;margin:12px 0}#jack-panel .jack-puzzle-board button{min-height:54px;font:inherit;font-size:20px;border:1px solid #aaa;border-radius:3px;background:#fff;color:#171717}#jack-panel .jack-puzzle-board button:disabled{opacity:.55}#jack-panel .jack-puzzle-board button[aria-label="Freie Stelle"]{background:transparent;border-style:dashed}#jack-panel .jack-puzzle{overflow-wrap:anywhere}
@media(max-width:600px){#jack-panel.jack-expanded{width:100%;max-width:100%;height:var(--jack-viewport-height,100dvh);max-height:var(--jack-viewport-height,100dvh);margin:0;border-radius:0;padding: max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}#jack-panel.jack-expanded h2{font-size:28px}}

@media(max-height:500px){#jack-panel,#jack-panel.jack-expanded{max-height:calc(var(--jack-viewport-height,100dvh) - 12px);overflow:auto}#jack-panel #jack-response{overflow:visible;max-height:none;flex:none;min-height:72px}#jack-panel form{position:sticky;bottom:0;background:#fff;padding:6px 0}#jack-panel header{position:sticky;top:0;background:#fff;z-index:1}}
