/* Brightstone AI is loaded after dashboard.css so its visual contract stays
   stable across dashboard styles and cached base assets. */
.bsr-ai,.bsr-ai *{box-sizing:border-box}
.bsr-ai .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bsr-ai [hidden]{display:none!important}
.bsr-ai{position:fixed;inset:0;z-index:1099;width:auto;height:auto;pointer-events:none;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#10264a}
.bsr-ai-backdrop{position:fixed;inset:0;z-index:0;pointer-events:auto;background:radial-gradient(120% 90% at 50% 30%,rgba(13,45,120,.16),rgba(9,24,68,.42));backdrop-filter:blur(3px) saturate(1.05);-webkit-backdrop-filter:blur(3px) saturate(1.05);animation:bsr-ai-scrim-in .18s ease both}
body.bsr-ai-scrimmed>.bsr-app{pointer-events:none}
html.bsr-ai-page-locked,html.bsr-ai-page-locked body{overscroll-behavior:none}
@keyframes bsr-ai-scrim-in{from{opacity:0}to{opacity:1}}
.bsr-ai-launch{position:fixed;z-index:2;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));display:grid;place-items:center;width:112px;height:124px;padding:0;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:16px;background:transparent;color:#fff;box-shadow:none;cursor:pointer;isolation:isolate;appearance:none;-webkit-appearance:none}
.bsr-ai-mascot{position:relative;display:block;width:100%;height:100%;pointer-events:none}
.bsr-ai-mascot img,.bsr-ai-mascot canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.bsr-ai-mascot canvas{opacity:0;visibility:hidden;background:transparent;transition:none}
.bsr-ai-launch.has-webgl .bsr-ai-mascot canvas{opacity:1;visibility:visible}
.bsr-ai-launch.has-webgl .bsr-ai-mascot img{opacity:0}
.bsr-ai-launch:not(.has-webgl) .bsr-ai-mascot{animation:bsr-mascot-float 11s ease-in-out infinite}
@keyframes bsr-mascot-float{0%,18%,52%,100%{transform:translateY(0) rotate(0)}34%{transform:translateY(-4px) rotate(-.8deg)}72%{transform:translateY(-2px) rotate(.5deg)}}
.bsr-ai-launch.is-greeting:not(.has-webgl) .bsr-ai-mascot{animation:bsr-mascot-greet .9s ease-in-out both;filter:brightness(1.14)}
@keyframes bsr-mascot-greet{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-5px) rotate(-4deg)}70%{transform:translateY(-2px) rotate(3deg)}}
/* Suppress the removed label even with an older dashboard base stylesheet. */
.bsr-ai .bsr-ai-launch::after{content:none!important;display:none!important}
.bsr-ai-launch:focus-visible{outline:3px solid #60a5fa;outline-offset:-4px}
.bsr-ai-launch::before{content:"";position:absolute;z-index:-1;left:23%;right:23%;bottom:4px;height:8px;border-radius:50%;background:rgba(27,103,235,.3);filter:blur(6px);pointer-events:none}
html[data-style="glass"] .bsr-ai .bsr-ai-launch{border:0;border-radius:16px;background:transparent;box-shadow:none}
/* Never translate the fixed launcher during scrolling, including legacy dashboard hover rules. */
.bsr-ai-launch:hover,.bsr-ai-launch:active,.bsr-ai-launch:focus:not(:focus-visible){transform:none;background:transparent;box-shadow:none;outline:none}
@media(hover:hover) and (pointer:fine){.bsr-ai-launch:hover{background:transparent;box-shadow:none}.bsr-ai-launch:not(.has-webgl):hover .bsr-ai-mascot{filter:brightness(1.1)}}


.bsr-ai-panel{position:fixed;z-index:2;right:20px;bottom:calc(150px + env(safe-area-inset-bottom));pointer-events:auto;width:min(420px,calc(100vw - 24px));height:min(600px,calc(100dvh - 172px - env(safe-area-inset-bottom)));max-height:min(600px,calc(100dvh - 172px - env(safe-area-inset-bottom)));min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #d9e7fb;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(21,52,94,.14),0 4px 14px rgba(21,52,94,.06);color:#10264a;animation:bsr-ai-open .18s cubic-bezier(.2,.75,.2,1) both}
.bsr-ai-panel::before{content:"";position:absolute;z-index:2;top:0;left:0;right:0;height:3px;border-radius:18px 18px 0 0;background:linear-gradient(90deg,#1769ff 0%,#448eff 55%,#75a9ff 100%);pointer-events:none}
@keyframes bsr-ai-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.bsr-ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;min-height:72px;padding:18px 18px 16px;border-bottom:1px solid #e5edf8;background:#fff}
.bsr-ai-head-main{display:flex;align-items:center;gap:12px;min-width:0}
.bsr-ai-brand{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;overflow:hidden;border:1px solid #e2ebfa;border-radius:11px;background:#fff;box-shadow:0 4px 12px rgba(23,105,255,.11)}
.bsr-ai-brand img{display:block;width:100%;height:100%;object-fit:cover}
.bsr-ai-heading{min-width:0}
.bsr-ai-heading h2{margin:0;color:#10264a;font-size:16px;font-weight:700;line-height:1.22;letter-spacing:-.02em}
.bsr-ai-heading p{margin:3px 0 0;color:#7183a3;font-size:12px;font-weight:500;line-height:1.25}
.bsr-ai-close{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:9px;background:transparent;color:#697b99;cursor:pointer;transition:background .16s ease,color .16s ease}
.bsr-ai-close svg{width:18px;height:18px}
.bsr-ai-close:hover{background:#f3f7fd;color:#173a6b}
.bsr-ai-support-status{flex:0 0 auto;padding:9px 16px;border-bottom:1px solid #bfddff;background:#eaf4ff;color:#174b88;font-size:11px;font-weight:700;line-height:1.4}
.bsr-ai-session-actions{display:flex;justify-content:flex-end;gap:12px;flex:0 0 auto;padding:5px 16px;border-bottom:1px solid #e8eff9;background:#fbfdff}.bsr-ai-session-actions button{padding:3px 0;border:0;background:transparent;color:#215da8;font-size:11px;font-weight:700;cursor:pointer}
.bsr-ai-chat-list{display:grid;gap:5px;flex:0 0 auto;max-height:160px;overflow:auto;padding:9px 12px;border-bottom:1px solid #e8eff9;background:#f8fbff;overscroll-behavior:contain}.bsr-ai-chat-choice{display:grid;gap:3px;width:100%;padding:8px 10px;border:1px solid #dce8f7;border-radius:9px;background:#fff;color:#18375f;text-align:left;cursor:pointer}.bsr-ai-chat-choice:hover,.bsr-ai-chat-choice.is-active{border-color:#9fc4fa;background:#edf5ff}.bsr-ai-chat-choice strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.bsr-ai-chat-choice small{color:#68809f;font-size:10px}
.bsr-ai-panel.is-support .bsr-ai-message.is-assistant .bsr-ai-message-body{padding:9px 12px;border:1px solid #dce8fb;border-radius:13px 13px 13px 3px;background:#f5f9ff}

.bsr-ai-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:20px 18px 18px;scrollbar-color:#cbd9ef transparent;scrollbar-width:thin}
.bsr-ai-welcome{padding:0}
.bsr-ai-continue{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0 0 15px;padding:11px 13px;border:1px solid #a9c8fb;border-radius:12px;background:#eef5ff;color:#1253ad;text-align:left;font:700 13px/1.3 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer}.bsr-ai-continue span{font-size:11px;font-weight:550;color:#59789f}
.bsr-ai-intro{display:flex;align-items:center;gap:10px;margin:-3px 0 17px}
.bsr-ai-intro-figure{position:relative;display:block;flex:0 0 82px;width:82px;height:91px;overflow:visible}
.bsr-ai-intro-figure img,.bsr-ai-intro-figure canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.bsr-ai-intro-figure canvas{opacity:0;visibility:hidden;background:transparent;transition:none}
.bsr-ai.has-intro-webgl .bsr-ai-intro-figure canvas{opacity:1;visibility:visible}
.bsr-ai.has-intro-webgl .bsr-ai-intro-figure img{opacity:0}
.bsr-ai:not(.has-intro-webgl) .bsr-ai-intro.is-waving .bsr-ai-intro-figure img{animation:bsr-ai-intro-wave 1.2s cubic-bezier(.2,.7,.2,1) both;transform-origin:50% 85%}
@keyframes bsr-ai-intro-wave{0%,100%{transform:translateY(0) rotate(0)}20%{transform:translateY(-6px) rotate(-8deg)}45%{transform:translateY(-9px) rotate(7deg)}68%{transform:translateY(-5px) rotate(-6deg)}85%{transform:translateY(-2px) rotate(3deg)}}
.bsr-ai-intro-copy{min-width:0;flex:1;padding:12px 14px;border:1px solid #dce8fb;border-radius:14px 14px 14px 4px;background:linear-gradient(135deg,#f8fbff,#eef5ff)}
.bsr-ai-intro h3{margin:0;color:#10264a;font-size:15px;line-height:1.3;font-weight:750;letter-spacing:-.02em}
.bsr-ai-intro p{margin:4px 0 0;color:#5d7291;font-size:12px;line-height:1.4}
.bsr-ai-prompt-heading{margin:0 0 9px;color:#5273a2;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.bsr-ai-prompts{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
.bsr-ai-prompt{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:10px;min-height:56px;padding:7px 11px;border:1px solid #dce8f7;border-radius:11px;background:#fbfdff;color:#12294d;text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.bsr-ai-prompt:hover{transform:translateY(-1px);border-color:#abc9f7;background:#f7faff}
.bsr-ai-prompt:disabled{opacity:.55;cursor:wait;transform:none}
.bsr-ai-prompt-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:9px}
.bsr-ai-prompt-icon svg{width:18px;height:18px}
.bsr-ai-prompt.is-revenue .bsr-ai-prompt-icon{background:#eaf3ff;color:#1769ff}
.bsr-ai-prompt.is-summary .bsr-ai-prompt-icon{background:#e5f8f4;color:#009b88}
.bsr-ai-prompt.is-change .bsr-ai-prompt-icon{background:#eeeaff;color:#5946e8}
.bsr-ai-prompt.is-target .bsr-ai-prompt-icon{background:#fff3d9;color:#b66a00}
.bsr-ai-prompt-copy{display:block;min-width:0}
.bsr-ai-prompt-copy strong{display:block;color:#12294d;font-size:13px;font-weight:700;line-height:1.25}
.bsr-ai-prompt-copy>span{display:block;margin-top:3px;color:#7587a5;font-size:11.5px;font-weight:400;line-height:1.3}
.bsr-ai-prompt-chevron{width:16px;height:16px;color:#607493}

.bsr-ai-messages{display:flex;flex-direction:column;gap:20px}
.bsr-ai-message{display:flex;gap:9px;min-width:0;max-width:100%}
.bsr-ai-message-main{min-width:0;flex:1}
.bsr-ai-message-label{display:block;margin-bottom:5px;color:#627894;font-size:11px;font-weight:750;letter-spacing:.01em}
.bsr-ai-message-body{overflow-wrap:anywhere;white-space:normal;font-size:15px;line-height:1.57}
.bsr-ai-message.is-user{align-self:flex-end;max-width:88%}
.bsr-ai-message.is-user .bsr-ai-message-label{text-align:right}
.bsr-ai-message.is-user .bsr-ai-message-body{padding:9px 12px;border-radius:13px 13px 3px 13px;background:#eaf2ff;color:#143e7d}
.bsr-ai-message.is-assistant{align-self:stretch}
.bsr-ai-avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;margin-top:1px;overflow:hidden;border:1px solid #c7dcff;border-radius:10px;background:#eaf2ff;color:#0759e8}
.bsr-ai-avatar img{display:block;width:31px;height:34px;object-fit:contain}
.bsr-ai-message.is-assistant .bsr-ai-message-body{padding:0;border:0;border-radius:0;background:transparent;color:#17304f}
.bsr-ai-message.is-error .bsr-ai-message-body{padding:10px 12px;border:1px solid #ffd9d3;border-radius:10px;background:#fff7f5;color:#873a32}
.bsr-ai-result>*:first-child{margin-top:0}
.bsr-ai-result p{margin:0 0 12px}
.bsr-ai-result strong{font-weight:750}
.bsr-ai-result-title{margin:0 0 10px;color:#102443;font-size:18px;line-height:1.3;letter-spacing:-.02em}
.bsr-ai-section-title{margin:17px 0 8px;color:#143a70;font-size:13px;font-weight:800;letter-spacing:.035em}
.bsr-ai-lead{font-size:15.5px;font-weight:570;line-height:1.55}
.bsr-ai-result ul,.bsr-ai-result ol{margin:0 0 13px;padding-left:20px}
.bsr-ai-result li{padding-left:2px;margin:3px 0}
.bsr-ai-result li::marker{color:#4884e9}
.bsr-ai-divider{height:1px;margin:14px 0;border:0;background:#e7edf8}
.bsr-ai-metric-list{display:grid;gap:1px;overflow:hidden;margin:7px 0 14px;border:1px solid #e1eaf8;border-radius:12px;background:#e1eaf8}
.bsr-ai-metric-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:1px;align-items:center;padding:9px 11px;background:#f9fbff;font-variant-numeric:tabular-nums}
.bsr-ai-metric-label{grid-column:1;color:#375170;font-size:12px;font-weight:760}
.bsr-ai-metric-value{grid-column:1;color:#102443;font-size:16px;line-height:1.25}
.bsr-ai-change{grid-column:2;grid-row:1 / span 2;align-self:center;padding:4px 7px;border-radius:7px;font-size:12px;font-weight:800;white-space:nowrap}
.bsr-ai-change.is-up{background:#e8f6ee;color:#176846}
.bsr-ai-change.is-down{background:#fff0e9;color:#ae4b27}
.bsr-ai-change.is-flat{background:#edf1f6;color:#617184}
.bsr-ai-metric-prior{grid-column:1 / -1;color:#71839c;font-size:11px}
.bsr-ai-followups{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.bsr-ai-followups button{min-height:34px;padding:6px 10px;border:1px solid #bfd8ff;border-radius:999px;background:#f5f9ff;color:#1553a6;font-size:11.5px;font-weight:750;cursor:pointer}
.bsr-ai-followups button:hover{border-color:#88b4f7;background:#eaf3ff}
.bsr-ai-message.is-loading .bsr-ai-message-body{display:flex;align-items:center;gap:7px;color:#527099}
.bsr-ai-thinking-dots{display:inline-block;width:19px;height:1em;vertical-align:baseline;overflow:hidden}
.bsr-ai-thinking-dots::after{content:'...';display:block;width:0;overflow:hidden;white-space:nowrap;animation:bsr-ai-dot-run 1.25s steps(4,end) infinite}
@keyframes bsr-ai-dot-run{to{width:19px}}
.bsr-ai-retry{display:inline;padding:0;border:0;background:none;color:#0756e8;font-weight:800;text-decoration:underline;text-underline-offset:2px;cursor:pointer}

.bsr-ai-form{flex:0 0 auto;padding:0 18px 18px;background:#fff}
.bsr-ai-composer{display:flex;align-items:center;gap:8px;min-height:52px;padding:5px 5px 5px 13px;border:1px solid #bfd3f2;border-radius:14px;background:#fff;box-shadow:0 0 0 3px rgba(23,105,255,.05);transition:border-color .16s ease,box-shadow .16s ease}
.bsr-ai-composer:focus-within{border-color:#1769ff;box-shadow:0 0 0 3px rgba(23,105,255,.10)}
.bsr-ai-composer textarea{display:block;flex:1;min-width:0;max-height:112px;min-height:38px;resize:none;overflow-y:auto;padding:9px 0 7px;border:0;outline:0;background:transparent;color:#10264a;font:400 13px/1.45 Inter,ui-sans-serif,system-ui,sans-serif}
.bsr-ai-composer textarea::placeholder{color:#8a9ab4}
.bsr-ai-composer button{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:0;border-radius:11px;background:linear-gradient(145deg,#1769ff,#0759e8);color:#fff;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}
.bsr-ai-composer button svg{width:18px;height:18px}
.bsr-ai-composer button:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(23,105,255,.22)}
.bsr-ai-composer button:disabled{opacity:.45;transform:none;box-shadow:none;cursor:wait}

.bsr-ai-panel.has-conversation{height:min(600px,calc(100dvh - 172px - env(safe-area-inset-bottom)))}
.bsr-ai-panel.has-conversation .bsr-ai-content{flex:1 1 auto;padding-top:18px}
.bsr-ai-panel.has-conversation .bsr-ai-form{padding-top:12px}
.bsr-ai button:focus-visible,.bsr-ai textarea:focus-visible{outline:3px solid #83b2ff;outline-offset:2px}
.bsr-ai-composer textarea:focus-visible{outline:0}

@media(max-width:700px){
  .bsr-ai.has-install-toast{--bsr-ai-toast-offset:92px}
  .bsr-ai.has-install-toast .bsr-ai-launch[aria-expanded="false"]{visibility:hidden}
  .bsr-ai-launch{right:8px;bottom:calc(max(8px,env(safe-area-inset-bottom)) + var(--bsr-ai-keyboard-inset,0px) + var(--bsr-ai-toast-offset,0px));width:74px;height:82px;border-radius:12px}
  .bsr-ai.is-open .bsr-ai-launch{visibility:hidden}
  .bsr-ai-panel{left:8px;right:8px;top:auto;bottom:calc(var(--bsr-ai-keyboard-inset,0px) + max(8px,env(safe-area-inset-bottom)));width:auto;height:min(520px,calc(var(--bsr-ai-visual-height,100dvh) - 28px));max-height:min(520px,calc(var(--bsr-ai-visual-height,100dvh) - 28px));border-radius:18px}
  .bsr-ai-panel.has-conversation{height:min(520px,calc(var(--bsr-ai-visual-height,100dvh) - 28px));max-height:min(520px,calc(var(--bsr-ai-visual-height,100dvh) - 28px))}
  .bsr-ai-head{min-height:66px;padding:14px 14px 12px}
  .bsr-ai-brand{flex-basis:38px;width:38px;height:38px}
  .bsr-ai-heading h2{font-size:15px}
  .bsr-ai-content,.bsr-ai-panel.has-conversation .bsr-ai-content{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 14px 14px}
  .bsr-ai.is-keyboard-open .bsr-ai-intro{display:none}
  .bsr-ai.is-keyboard-open .bsr-ai-panel{max-height:min(420px,calc(var(--bsr-ai-visual-height,100dvh) - 12px))}
  .bsr-ai-intro{gap:7px;margin-bottom:13px}
  .bsr-ai-intro-figure{flex-basis:68px;width:68px;height:76px}
  .bsr-ai-intro-copy{padding:10px 11px}
  .bsr-ai-intro h3{font-size:14px}
  .bsr-ai-prompts{gap:6px}
  .bsr-ai-prompt{grid-template-columns:32px minmax(0,1fr) 14px;gap:8px;min-height:52px;padding:6px 9px}
  .bsr-ai-prompt-icon{width:32px;height:32px;border-radius:9px}
  .bsr-ai-prompt-icon svg{width:18px;height:18px}
  .bsr-ai-prompt-copy strong{font-size:12.5px}
  .bsr-ai-prompt-copy>span{font-size:11px}
  .bsr-ai-prompt-chevron{width:14px;height:14px}
  .bsr-ai-form{padding:0 14px max(14px,env(safe-area-inset-bottom))}
  .bsr-ai-composer textarea{font-size:16px}
}
@media(max-width:370px){
  .bsr-ai-prompt{min-height:50px}
  .bsr-ai-prompt-copy>span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .bsr-ai-panel{animation:none}
  .bsr-ai-backdrop{animation:none}
  .bsr-ai-launch,.bsr-ai-prompt,.bsr-ai-close,.bsr-ai-composer,.bsr-ai-composer button{transition:none}
  .bsr-ai-launch:not(.has-webgl) .bsr-ai-mascot{animation:none}
  .bsr-ai-launch.is-greeting:not(.has-webgl) .bsr-ai-mascot{animation:none;filter:none}
  .bsr-ai-mascot canvas{transition:none}
  .bsr-ai-intro-figure canvas{transition:none}
  .bsr-ai:not(.has-intro-webgl) .bsr-ai-intro.is-waving .bsr-ai-intro-figure img{animation:none}
  .bsr-ai-thinking-dots::after{width:19px;animation:none}
}
.bsr-ai-stream-text{white-space:pre-wrap;overflow-wrap:anywhere}
.bsr-ai-interrupted{display:inline-block;margin-top:8px;color:var(--bsr-ai-muted,#64748b);font-size:12px}

@media(min-width:861px) and (pointer:fine){
 .bsr-ai-launch{right:14px;bottom:env(safe-area-inset-bottom,0px);translate:var(--bsr-mascot-walk-x,0px) 0}
 .bsr-ai-launch:not(.has-webgl) .bsr-ai-mascot{animation:none}
 .bsr-ai-launch::before{bottom:1px;height:4px;filter:blur(3px)}
}
