/* AI Game Buddy (2026-10-15). Left-hand launcher mirrors the ARQS AI dock on the right (PR #622) and never
   covers ROLL, TOKEN, shop, gift, play, Skip or Get Mansion Dollars. Hidden while the token picker is open. */
.jpb-launch{position:fixed;z-index:12;left:12px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 78px);width:52px;height:52px;border-radius:50%;padding:0;border:3px solid #e8c860;background:radial-gradient(circle at 35% 28%,#fff8e8,#f0e4c0 45%,#d8c090);box-shadow:0 4px 0 #8a6a18,0 8px 16px #0006;cursor:pointer;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}
.jpb-launch img{width:40px;height:40px;border-radius:50%;object-fit:cover;pointer-events:none}
.jpb-launch .jpb-tag{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);font:900 8px/1 system-ui,sans-serif;letter-spacing:.06em;color:#fff3c8;background:#145a30;border:1.5px solid #e8c860;border-radius:6px;padding:2px 4px;white-space:nowrap}
.jpb-launch .jpb-dot{position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:#e8473a;border:2px solid #fff;display:none}
.jpb-launch.has-new .jpb-dot{display:block}
.jpb-launch.off{width:auto;height:30px;padding:0 10px;border-width:2px;border-radius:999px;background:#0008;color:#ffe9a0;font:800 12px system-ui,sans-serif;box-shadow:none;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 90px)}
.jpb-panel{position:fixed;z-index:9;left:10px;right:10px;top:calc(max(10px,env(safe-area-inset-top,0px)) + 128px);bottom:calc(32% + 8px);max-width:420px;margin:0 auto;display:flex;flex-direction:column;border-radius:18px;background:linear-gradient(180deg,#0f4a2fee,#082818f2);border:2px solid #e8c860;box-shadow:0 10px 30px #0008;color:#fff3c8;font:500 14px/1.35 system-ui,-apple-system,sans-serif;overflow:hidden}
.jpb-panel[hidden]{display:none}
.jpb-head{display:flex;align-items:center;gap:8px;padding:8px 8px 6px 10px;border-bottom:1px solid #e8c86055}
.jpb-head img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#fff3;border:1.5px solid #e8c860}
.jpb-title{flex:1;min-width:0}
.jpb-title b{display:block;font:800 13px/1.15 Georgia,serif;color:#ffe9a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jpb-title small{display:block;font-size:11px;opacity:.8}
.jpb-ico{min-width:32px;font-size:15px!important;height:34px;border-radius:10px;border:1px solid #e8c86088;background:#0004;color:#ffe9a0;font:800 13px system-ui;cursor:pointer;padding:0 6px}
.jpb-switch{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 8px;border-radius:10px;border:1px solid #e8c86088;background:#0004;color:#ffe9a0;font:800 11px system-ui;cursor:pointer}
.jpb-switch i{width:26px;height:15px;border-radius:9px;background:#e8c860;position:relative;display:inline-block}
.jpb-switch i:after{content:"";position:absolute;top:2px;left:13px;width:11px;height:11px;border-radius:50%;background:#145a30}
.jpb-pick{display:flex;gap:6px;padding:8px;overflow-x:auto;border-bottom:1px solid #e8c86033;flex:0 0 auto}
.jpb-pick button{flex:0 0 auto;width:62px;border:2px solid transparent;border-radius:12px;background:#0003;color:#fff3c8;padding:4px 2px;font:700 10px/1.1 system-ui;cursor:pointer}
.jpb-pick button img{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 3px;background:#fff2}
.jpb-pick button[aria-pressed="true"]{border-color:#e8c860;background:#e8c86026}
.jpb-log{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px;overscroll-behavior:contain}
.jpb-msg{max-width:86%;padding:7px 10px;border-radius:14px;background:#fff3;word-wrap:break-word}
.jpb-msg.me{align-self:flex-end;background:#e8c860;color:#2a1a00}
.jpb-msg.bud{align-self:flex-start}
.jpb-msg.roll{align-self:center;background:#0005;border:1px dashed #e8c860aa;text-align:center;font-weight:700}
.jpb-msg .die{font-size:22px;vertical-align:middle;margin-right:4px}
.jpb-acts{display:flex;gap:6px;padding:6px 8px 0;flex:0 0 auto}
.jpb-acts button{flex:1;min-height:34px;border-radius:999px;border:1.5px solid #e8c860;background:#0004;color:#ffe9a0;font:800 12px system-ui;cursor:pointer}
.jpb-form{display:flex;gap:6px;padding:6px 8px 8px;flex:0 0 auto}
.jpb-form input{flex:1;min-width:0;height:36px;border-radius:999px;border:1.5px solid #e8c86099;background:#fff;color:#1a1a1a;padding:0 12px;font:500 16px system-ui}
.jpb-form button{height:36px;border-radius:999px;border:0;background:linear-gradient(135deg,#f7d678,#c99631);color:#2a1a00;font:900 13px system-ui;padding:0 14px;cursor:pointer}
.jpb-note{font-size:10px;opacity:.7;padding:0 10px 6px;text-align:center}
.jpb-typing{opacity:.7;font-style:italic}
html.jp-gated .jpb-launch,html.jp-gated .jpb-panel,html.jp-age-pending .jpb-launch,html.jp-age-pending .jpb-panel,
body:has(#tokenSheet.on) .jpb-launch,body:has(#tokenSheet.on) .jpb-panel{display:none}
@media (prefers-reduced-motion:no-preference){.jpb-panel:not([hidden]){animation:jpbIn .18s ease-out}@keyframes jpbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
