/* CalcCon Pro website: the "Questions?" chat (site/assist.js). Same family as the page: graphite, one safety-yellow
   key, Barlow. Bottom right on computers; a sheet from the bottom on phones. */
.cca-launch { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: inline-flex; align-items: center; gap: 9px; padding: 13px 18px 13px 15px;
  border: 0; border-radius: 999px; background: var(--graphite, #2e2d2a); color: #f1efe9; font: 700 18px/1 var(--cond, 'Barlow Semi Condensed', system-ui, sans-serif);
  letter-spacing: .01em; cursor: pointer; box-shadow: 0 2px 0 rgba(0, 0, 0, .25), 0 14px 30px -8px rgba(20, 17, 12, .5); }
.cca-launch svg { width: 22px; height: 22px; color: var(--key, #f5b700); flex: none; }
.cca-launch:hover { background: #3c3a36; }
.cca-launch:focus-visible { outline: 3px solid var(--focus, #1d4fa3); outline-offset: 3px; }
.cca-launch.on span { display: none; }
.cca-launch.on { padding: 13px; }
.cca-panel { position: fixed; right: 18px; bottom: 84px; z-index: 61; width: min(390px, calc(100vw - 36px)); height: min(600px, calc(100vh - 110px));
  display: flex; flex-direction: column; background: #fbfaf8; color: var(--ink, #26251f); border-radius: 14px; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(30, 26, 20, .12), 0 30px 60px -18px rgba(20, 17, 12, .55); font: 400 16px/1.45 var(--sans, 'Barlow', system-ui, sans-serif); }
.cca-panel[hidden] { display: none; }
.cca-head { display: flex; align-items: center; gap: 10px; padding: 14px 12px 14px 18px; background: var(--graphite, #2e2d2a); color: #f1efe9; }
.cca-head div { flex: 1; display: grid; gap: 2px; }
.cca-head b { font: 700 19px/1.1 var(--cond, sans-serif); }
.cca-head span { font-size: 14px; color: #cfcabf; }
.cca-x { width: 38px; height: 38px; border: 0; border-radius: 8px; background: transparent; color: #f1efe9; font: 400 28px/1 sans-serif; cursor: pointer; }
.cca-x:hover { background: rgba(255, 255, 255, .1); }
.cca-x:focus-visible, .cca-chip:focus-visible, .cca-act:focus-visible, .cca-go:focus-visible, .cca-send:focus-visible, .cca-send2:focus-visible { outline: 3px solid var(--focus, #1d4fa3); outline-offset: 2px; }
.cca-log { flex: 1; overflow-y: auto; padding: 16px 14px 8px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; }
.cca-msg { max-width: 88%; padding: 10px 13px; border-radius: 12px; overflow-wrap: anywhere; }
.cca-msg.bot { align-self: flex-start; background: #fff; box-shadow: 0 0 0 1px #e3dfd8; border-bottom-left-radius: 4px; }
.cca-msg.me { align-self: flex-end; background: var(--graphite, #2e2d2a); color: #f1efe9; border-bottom-right-radius: 4px; }
.cca-msg b { font-weight: 600; }
.cca-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.cca-chip, .cca-go { font: 600 15px/1.2 var(--cond, sans-serif); letter-spacing: .01em; padding: 7px 11px; border-radius: 999px; cursor: pointer; text-decoration: none; }
.cca-chip { border: 1.5px solid #bdb6aa; background: #fbfaf8; color: var(--ink, #26251f); }
.cca-chip:hover { border-color: var(--graphite, #2e2d2a); }
.cca-go { background: var(--key, #f5b700); color: var(--ink, #26251f); border: 1.5px solid var(--key-edge, #c99700); }
.cca-human { display: grid; gap: 7px; margin-top: 10px; }
.cca-act { display: block; text-align: left; width: 100%; padding: 10px 12px; border-radius: 9px; border: 1.5px solid #bdb6aa; background: #fbfaf8; color: var(--ink, #26251f);
  font: 400 15.5px/1.3 var(--sans, sans-serif); text-decoration: none; cursor: pointer; overflow-wrap: anywhere; }
.cca-act b { font: 700 16px/1.2 var(--cond, sans-serif); margin-right: 4px; }
.cca-act:hover { border-color: var(--graphite, #2e2d2a); background: #fff; }
.cca-form { display: grid; gap: 9px; margin-top: 10px; }
.cca-form label { display: grid; gap: 4px; font: 600 15px/1.2 var(--cond, sans-serif); }
.cca-form input, .cca-form textarea { font: 400 16px/1.35 var(--sans, sans-serif); color: var(--ink, #26251f); background: #fbfaf8; border: 1.5px solid #bdb6aa; border-radius: 7px; padding: 9px 10px; width: 100%; box-sizing: border-box; }
.cca-form input:focus, .cca-form textarea:focus { outline: 2px solid var(--focus, #1d4fa3); border-color: var(--focus, #1d4fa3); }
.cca-hp { display: none; }
.cca-send2 { justify-self: start; padding: 10px 16px; border-radius: 7px; border: 1.5px solid var(--key-edge, #c99700); background: var(--key, #f5b700); color: var(--ink, #26251f); font: 700 17px/1 var(--cond, sans-serif); cursor: pointer; }
.cca-send2:disabled { opacity: .6; cursor: default; }
.cca-ask { display: flex; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid #e3dfd8; background: #f4f2ee; }
.cca-ask input { flex: 1; min-width: 0; font: 400 16px/1.3 var(--sans, sans-serif); padding: 11px 12px; border: 1.5px solid #bdb6aa; border-radius: 9px; background: #fff; color: var(--ink, #26251f); }
.cca-ask input:focus { outline: 2px solid var(--focus, #1d4fa3); border-color: var(--focus, #1d4fa3); }
.cca-send { flex: none; width: 46px; border: 0; border-radius: 9px; background: var(--graphite, #2e2d2a); color: var(--key, #f5b700); font-size: 18px; cursor: pointer; }
.cca-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
  .cca-launch { right: 12px; bottom: 12px; padding: 12px 15px 12px 13px; font-size: 17px; }
  .cca-panel { right: 0; left: 0; bottom: 0; width: 100%; height: min(88vh, 100%); height: min(88dvh, 100%); border-radius: 14px 14px 0 0; }
  html.cca-open .cca-launch { display: none; }
}
@media print { .cca-launch, .cca-panel { display: none !important; } }
