/* Keep the legacy fallback; JS reserves a stable end-of-page parking space. */
body:has(.shcj-assistant-dock):not(:has(.shcj-assistant-slot)){padding-bottom:100px}
.shcj-assistant-slot{box-sizing:border-box;display:flex;justify-content:flex-end;align-items:flex-start;height:var(--shcj-assistant-reserve,86px);padding:16px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.shcj-assistant-dock{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:90;max-width:calc(100vw - 32px)}
.shcj-assistant-dock.is-parked{position:static}
.shcj-assistant-dock.is-covered{visibility:hidden;pointer-events:none}
.shcj-assistant-launch{background:#0966c3;color:#fff;border:1px solid #0966c3;border-radius:16px;padding:12px 18px;min-height:54px;font:700 15px/1.5 system-ui;box-shadow:0 4px 18px #17324d20;cursor:pointer}
/* Category names belong inside the dialog; keep the launcher compact as categories grow. */
.shcj-assistant-launch span{display:none}
#shcj-key-assistant{position:fixed;inset:auto 16px 16px auto;margin:0;padding:0;width:min(392px,calc(100vw - 32px));height:min(780px,calc(100dvh - 32px));max-width:none;max-height:none;border:1px solid #d2e2f0;border-radius:20px;background:#fff;color:#17324d;box-shadow:0 12px 50px #17324d35;overflow:hidden;font-family:system-ui}
#shcj-key-assistant.is-result{height:min(680px,calc(100dvh - 32px))}
#shcj-key-assistant[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
#shcj-key-assistant::backdrop{background:#17324d35}
#shcj-key-assistant header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #dce7f0;gap:8px}
#shcj-key-assistant header strong{font-size:16px}#shcj-key-assistant small{display:block;font-size:11px}
#shcj-key-assistant button{font:600 13px/1.5 system-ui;min-height:44px;border:1px solid #d2e2f0;border-radius:10px;background:#fff;color:#0966c3;padding:8px 12px;cursor:pointer}
#shcj-key-assistant .shcj-assistant-frame{min-height:0}#shcj-key-assistant iframe{display:block;width:100%;height:100%;border:0;background:#fff}
#shcj-key-assistant footer{padding:6px 12px;border-top:1px solid #dce7f0;background:#f7fbff}
#shcj-key-assistant footer button{min-height:44px;font-size:12px;padding:4px 8px}#shcj-key-assistant footer p{font-size:11px;line-height:1.5;margin:4px 0;color:#51667a}
#shcj-key-assistant .shcj-assistant-chooser{padding:20px;overflow:auto}#shcj-key-assistant .shcj-assistant-chooser[hidden],#shcj-key-assistant footer button[hidden]{display:none}
#shcj-key-assistant .shcj-assistant-chooser h2{font-size:21px;line-height:1.4;margin:0 0 8px}#shcj-key-assistant .shcj-assistant-chooser p{font-size:14px;margin:0 0 18px}
#shcj-key-assistant .shcj-assistant-categories{display:grid;gap:10px}#shcj-key-assistant .shcj-assistant-categories button{font-size:16px;text-align:left;min-height:58px;background:#f2f9ff;border-color:#c9dff1;color:#17324d}
#shcj-key-assistant :focus-visible,.shcj-assistant-launch:focus-visible{outline:3px solid #17324d;outline-offset:2px}
@media(max-width:600px){#shcj-key-assistant,#shcj-key-assistant.is-result{inset:0;width:100%;height:100dvh;border-radius:0;border:0}#shcj-key-assistant footer{padding-bottom:max(6px,env(safe-area-inset-bottom))}}

/* Approved shared assistant shell; collision detection and parking above stay intact. */
.shcj-assistant-launch{width:210px;min-height:56px;padding:14px 16px;border-radius:12px;background:#1769d2;border-color:#1769d2;font:700 16px/24px "Noto Sans JP",system-ui,sans-serif}
.shcj-assistant-launch:hover{background:#1055b0}
#shcj-key-assistant{box-sizing:border-box;border-color:#dde6ee;border-radius:16px;color:#142f46;font-family:"Noto Sans JP",system-ui,sans-serif}
#shcj-key-assistant.is-result{height:min(850px,calc(100dvh - 32px))}
#shcj-key-assistant::backdrop{background:#142f461f}
#shcj-key-assistant header{padding:20px 16px;gap:12px;min-height:102px;align-items:flex-start}
#shcj-key-assistant header>div{flex:1;min-width:0}
#shcj-key-assistant header strong{font-size:20px;line-height:30px}
#shcj-key-assistant header small{font-size:16px;line-height:28px;margin-top:12px}
#shcj-key-assistant button,#shcj-key-assistant .shcj-assistant-detail{box-sizing:border-box;min-height:56px;padding:14px 16px;border-color:#dde6ee;border-radius:12px;color:#1769d2;font:700 16px/24px "Noto Sans JP",system-ui,sans-serif}
#shcj-key-assistant [data-assistant-close]{width:88px;flex:0 0 88px;padding:14px 8px;white-space:nowrap}
#shcj-key-assistant .shcj-assistant-frame:has(iframe){overflow:hidden}
#shcj-key-assistant .shcj-assistant-frame:empty{display:none}
#shcj-key-assistant .shcj-assistant-chooser{padding:20px}
#shcj-key-assistant .shcj-assistant-chooser h2{font-size:20px;line-height:30px}
#shcj-key-assistant .shcj-assistant-chooser p{font-size:16px;line-height:28px;color:#52677b;margin:12px 0}
#shcj-key-assistant .shcj-assistant-categories{gap:12px}
#shcj-key-assistant .shcj-assistant-categories button{min-height:62px;background:white;font-weight:400;color:#142f46}
#shcj-key-assistant .shcj-assistant-categories button:before{content:'○';color:#1769d2;margin-right:16px}
#shcj-key-assistant footer{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px;background:white;border-color:#dde6ee}
#shcj-key-assistant footer :is(button,a){flex:1;min-width:0;text-align:center}
#shcj-key-assistant footer p{flex-basis:100%;margin:0;font-size:14px;line-height:23px;color:#52677b}
#shcj-key-assistant .shcj-assistant-detail,#shcj-key-assistant .shcj-assistant-detail:visited{display:flex;align-items:center;justify-content:center;background:#1769d2;color:white;text-decoration:none}
#shcj-key-assistant .shcj-assistant-detail:hover{background:#1055b0;color:white}
#shcj-key-assistant :is(button,a)[hidden]{display:none}
#shcj-key-assistant button:hover{background:#edf5fd}
@media(max-width:600px){#shcj-key-assistant,#shcj-key-assistant.is-result{height:100dvh;border-radius:0}#shcj-key-assistant footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
