/* Optional, scoped overlay. No changes to the underlying page's geometry. */
.summary-helper { position:fixed; right:max(16px, env(safe-area-inset-right)); bottom:max(12px, env(safe-area-inset-bottom)); z-index:40; font:14px/1.5 Arial, sans-serif; color:#172735; }
.summary-helper [hidden], .summary-helper[hidden] { display:none !important; }
.summary-launcher { display:flex; align-items:center; gap:4px; border:0; border-radius:24px; padding:4px; background:transparent; color:#173f51; box-shadow:none; }
.summary-launcher:hover { background:transparent; color:#173f51; }
.summary-bubble { background:linear-gradient(145deg, #f4fff9, #ddf8f3); border:1px solid #b3e1d9; border-radius:28px; padding:12px 16px; max-width:158px; text-align:left; font-size:14px; line-height:1.4; font-weight:600; color:#102e47; box-shadow:0 6px 18px #173f5114, inset 0 1px #fff; }
.summary-robot { display:block; width:78px; height:90px; flex:none; }
.summary-avatar { display:block; width:44px; height:51px; flex:none; }
.summary-panel { position:absolute; right:0; bottom:110px; width:370px; max-width:calc(100vw - 32px - env(safe-area-inset-right)); max-height:min(540px, calc(100dvh - 142px - env(safe-area-inset-bottom))); overflow:auto; overscroll-behavior:contain; padding:18px; border:1px solid #d2e2e5; border-radius:20px; background:#fff; box-shadow:0 14px 40px #17273524, 0 2px 6px #17273508; overflow-wrap:anywhere; scrollbar-width:thin; scrollbar-color:#b4cecf transparent; }
.summary-panel-header { display:flex; align-items:center; gap:10px; position:sticky; top:-18px; z-index:1; background:#fff; padding:8px 0 12px; }
.summary-panel h2 { font-size:16px; line-height:1.3; margin:0; flex:1; min-width:0; letter-spacing:normal; color:#102536; }
.summary-panel h3 { font-size:17px; margin:16px 0 8px; }
.summary-panel h4 { font-size:15px; margin:0 0 6px; }
.summary-panel p { margin:10px 0; }
.summary-panel .summary-close { flex:none; width:44px; height:44px; padding:0; margin:0; background:#f0f8f7; color:#173f51; font-size:26px; line-height:1; border:1px solid #c7dedd; border-radius:11px; }
.summary-panel .summary-close:hover { background:#e2f3f0; }
.summary-information { padding:12px; margin:4px 0 16px; border-radius:12px; background:#f0f5ff; color:#465b72; }
.summary-information p { margin:8px 0 0; }
.summary-information #summary-intro { display:flex; align-items:flex-start; gap:8px; margin:0; color:#183959; font-weight:600; font-size:13px; }
.summary-info-icon { display:inline-flex; align-items:center; justify-content:center; flex:none; width:18px; height:18px; margin-top:1px; border:1.5px solid #2863c6; border-radius:50%; color:#2863c6; font:700 12px/1 Georgia,serif; }
.summary-panel label { display:block; font-weight:700; margin:14px 0 6px; }
.summary-panel input[type=text] { width:100%; min-height:46px; padding:11px; border:1px solid #a5b8c7; border-radius:9px; font:16px Arial,sans-serif; background:#fff; color:#172735; box-shadow:inset 0 1px 2px #17273505; }
.summary-panel button[type=submit] { width:100%; min-height:46px; margin-top:12px; background:linear-gradient(110deg, #246578, #1c5266); color:#fff; border:1px solid #245e70; border-radius:9px; padding:11px; font-weight:700; }
.summary-panel button[aria-disabled=true] { opacity:.65; cursor:wait; }
.summary-helper .summary-policy { color:#526273; font-size:12px; }
.summary-helper .summary-score { font-size:24px; font-weight:700; color:#205c70; }
.summary-categories { padding-left:20px; }
.summary-categories li { margin-bottom:7px; }
.summary-finding { border-top:1px solid #d6dfe8; padding-top:12px; margin-top:12px; }
.summary-helper a { display:inline-block; min-height:44px; padding:10px 0; color:#19498f; text-decoration:underline; }
.summary-helper :focus-visible { outline:3px solid #245cb4; outline-offset:3px; }
@media(max-width:480px) {
    .summary-helper { right:max(10px, env(safe-area-inset-right)); bottom:max(8px, env(safe-area-inset-bottom)); }
    .summary-robot { width:62px; height:72px; }
    .summary-bubble { max-width:142px; font-size:13px; padding:10px 13px; }
    .summary-panel { bottom:90px; width:350px; max-width:calc(100vw - 20px - env(safe-area-inset-right)); max-height:min(500px, calc(100dvh - 118px - env(safe-area-inset-bottom))); padding:14px; border-radius:18px; }
    .summary-panel-header { top:-14px; gap:8px; }
}
@media(prefers-reduced-motion:reduce) { .summary-helper, .summary-helper * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print { .summary-helper { display:none !important; } }
/* Keep the launcher in the layout, but hide it while its panel is open. */
.summary-helper:has(.summary-panel:not([hidden])) .summary-launcher {
    visibility: hidden;
    pointer-events: none;
}

/* Reserve mobile scroll clearance for the fixed floating trigger. */
@media screen and (max-width: 480px) {
    body:has(.summary-helper:not([hidden])) {
        padding-bottom: calc(112px + env(safe-area-inset-bottom));
    }
}