/* Estimate assistant: a chat window with a "Listening…" line. The only controls are the chat button and the close mark. */
.asst-launcher{position:fixed;bottom:24px;right:84px;z-index:1000;display:flex;align-items:center;gap:6px;border:0;border-radius:999px;background:#244d68;color:#fff;font:650 15px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;padding:14px 18px;box-shadow:0 6px 20px #0003;cursor:pointer}
.asst-launcher:focus-visible,.asst-panel button:focus-visible,.asst-panel input:focus-visible{outline:3px solid #427abe;outline-offset:2px}
.asst-panel{position:fixed;right:20px;bottom:20px;z-index:1001;width:400px;max-width:calc(100vw - 24px);height:min(680px,calc(100vh - 40px));display:flex;flex-direction:column;background:#fff;border:1px solid #dce3e8;border-radius:16px;box-shadow:0 12px 40px #0004;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#1b2f40}
.asst-panel[hidden],.asst-launcher[hidden]{display:none}
.asst-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#244d68;color:#fff}.asst-head strong{font-size:15px}
.asst-icon{border:0;background:transparent;color:inherit;font-size:18px;line-height:1;width:38px;height:38px;border-radius:8px;cursor:pointer}.asst-icon:hover{background:#ffffff26}
.asst-preview{margin:0;padding:8px 14px;background:#fdecc8;color:#6b4a00;font-size:12px;font-weight:700}
.asst-log{flex:1;overflow-y:auto;padding:14px;background:#f5f7f8;display:flex;flex-direction:column;gap:10px}
.asst-msg{max-width:88%;padding:9px 12px;border-radius:14px}.asst-msg p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.asst-who{display:block;font-size:11px;font-weight:700;letter-spacing:.4px;color:#607080;margin-bottom:2px}
.asst-assistant{align-self:flex-start;background:#fff;border:1px solid #dce3e8}.asst-user{align-self:flex-end;background:#244d68;color:#fff}.asst-user .asst-who{color:#cfe0ea}
.asst-error{background:#f8d9d6;border-color:#e3a8a2;color:#7a1f18}.asst-typing p{letter-spacing:3px;color:#607080}
.asst-estimate,.asst-lead{background:#fff;border:1px solid #c9d8e0;border-radius:12px;padding:12px 14px}
.asst-estimate h3,.asst-lead h3{font-size:15px;margin:0 0 6px;color:#244d68}.asst-estimate dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:6px 0}.asst-estimate dt{color:#607080;font-size:13px}.asst-estimate dd{margin:0;text-align:right;font-size:13px}
.asst-total{display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 2px;padding-top:8px;border-top:1px solid #dce3e8}.asst-total strong{font-size:20px;color:#244d68}
.asst-fine{font-size:12px;color:#607080;margin:4px 0 0}.asst-foot{padding:6px 14px 10px;text-align:center;margin:0;background:#fff}
.asst-field{display:block;margin:8px 0}.asst-field span{display:block;font-size:12px;font-weight:650;margin-bottom:3px}
.asst-panel input[type=text],.asst-panel input[type=email],.asst-panel input[type=tel]{width:100%;font:inherit;border:1px solid #bfccd4;border-radius:8px;padding:9px 10px;background:#fff}
.asst-check{display:flex;gap:9px;align-items:flex-start;margin:8px 0;font-size:13px}.asst-check input{margin-top:3px;width:17px;height:17px;flex:none}.asst-consent{background:#eaf2f6;border-radius:8px;padding:8px}
.asst-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.asst-turnstile{margin:8px 0;min-height:0}.asst-status{font-size:13px;margin:6px 0;min-height:1em}.asst-status.asst-error{background:none;color:#9d2d24}
.asst-btn{border:0;border-radius:9px;background:#244d68;color:#fff;font:650 14px/1 inherit;padding:12px 16px;cursor:pointer;width:100%}.asst-btn:disabled{opacity:.55;cursor:not-allowed}
.asst-compose{padding:8px 10px;border-top:1px solid #dce3e8;background:#fff}.asst-compose .asst-input{width:100%;border-radius:999px;padding:8px 14px;font-size:14px}
.asst-listen{display:flex;align-items:center;gap:10px;padding:6px 14px;background:#eaf2f6;color:#244d68;min-height:30px}
.asst-voice-status{margin:0;font-size:13px;font-weight:650;flex:1}
.asst-meter{display:flex;align-items:center;gap:8px;flex:1}.asst-meter[hidden]{display:none}
.asst-meter-dot{width:10px;height:10px;border-radius:50%;background:#c0392b;animation:asstpulse 1.2s ease-in-out infinite;flex:none}
.asst-meter-bar{flex:1;height:6px;border-radius:3px;background:#d3dfe6;overflow:hidden}.asst-meter-bar i{display:block;height:100%;width:0;background:#26704c;transition:width .08s linear}
@keyframes asstpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}
.asst-hint{padding:4px 14px;margin:0;background:#fff;color:#244d68}.asst-hint[hidden]{display:none}
.asst-debug{margin:0;padding:4px 14px;background:#1b2f40;color:#cfe0ea;font:11px/1.35 ui-monospace,Menlo,monospace;overflow-wrap:anywhere}
.asst-scroll{overflow-x:auto;margin:6px -4px}.asst-compare{border-collapse:collapse;width:100%;table-layout:auto;font-size:12px}
.asst-compare th,.asst-compare td{padding:5px 5px;text-align:right;border-bottom:1px solid #e3e9ed;vertical-align:top;white-space:nowrap}.asst-compare td:not(:first-child),.asst-compare thead th:not(:first-child){min-width:74px}.asst-compare th[scope=row],.asst-compare thead th:first-child{text-align:left;white-space:normal;color:#607080;font-weight:600}
.asst-compare thead th{color:#244d68;font-size:12px;white-space:nowrap}.asst-badge{display:block;font-style:normal;font-size:10px;font-weight:700;color:#26704c;background:#e1f3e8;border-radius:4px;padding:1px 5px;margin-top:2px}.asst-badge.asst-rec{background:#eef2f5;color:#51606b}
.asst-total-row th,.asst-total-row td{border-bottom:0;padding-top:9px}.asst-total-row strong{font-size:13px;color:#244d68}.asst-multi{padding-left:10px;padding-right:10px}
.asst-pick{width:100%;font:inherit;border:1px solid #bfccd4;border-radius:8px;padding:8px;background:#fff}
.asst-notice{padding:0 14px 10px;text-align:center;margin:0;background:#fff;color:#7a8896}.asst-notice[hidden]{display:none}
@media(max-width:640px){.asst-panel{right:0;bottom:0;left:0;width:100%;max-width:100%;height:100dvh;border-radius:0}.asst-launcher{right:78px;bottom:18px;padding:12px 16px}}
@media(prefers-reduced-motion:no-preference){.asst-panel{animation:asstIn .18s ease-out}@keyframes asstIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.asst-meter-dot{animation:none}}
.asst-soft{opacity:.92}
