.sonia-shell{--sonia-bg:#f2f6ff;--sonia-surface:#fff;--sonia-text:#2f3c64;--sonia-muted:#7f8796;--sonia-border:#d7deef;--sonia-accent:#4a8ff0;position:fixed;right:14px;bottom:14px;z-index:2147482000;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--sonia-text)}.sonia-shell *{box-sizing:border-box}.sonia-trigger{display:flex;align-items:center;gap:8px;width:116px;height:48px;padding:4px 10px 4px 4px;border:1px solid var(--sonia-border);border-radius:999px;background:var(--sonia-bg);color:var(--sonia-text);box-shadow:0 10px 28px rgba(42,61,108,.18);font:600 14px/1 inherit;cursor:pointer}.sonia-trigger img{width:40px;height:40px;border-radius:50%;object-fit:cover}.sonia-panel{position:absolute;right:0;bottom:56px;width:min(352px,calc(100vw - 16px));height:min(500px,calc(100vh - 80px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #b9c6e6;border-radius:8px;background:var(--sonia-bg);box-shadow:0 18px 42px rgba(38,55,96,.2)}.sonia-panel[hidden]{display:none!important}.sonia-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid rgba(185,198,230,.72);background:rgba(246,248,255,.96);flex:0 0 auto}.sonia-head img{width:34px;height:34px;border-radius:50%;object-fit:cover}.sonia-kicker{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sonia-muted)}.sonia-title{font-size:18px;font-weight:700;color:var(--sonia-text)}.sonia-history{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:10px 9px 8px;overscroll-behavior:contain;scrollbar-width:thin}.sonia-turn{margin:0 0 12px}.sonia-message{display:flex}.sonia-message-user{justify-content:flex-end}.sonia-bubble{max-width:96%;padding:11px 12px;border:1px solid var(--sonia-border);border-radius:14px;background:rgba(255,255,255,.88);font-size:12.5px;line-height:1.46;white-space:pre-wrap;word-break:break-word;color:var(--sonia-text);box-shadow:0 1px 0 rgba(52,72,118,.03)}.sonia-message-user .sonia-bubble{background:#fff;border-color:#d2d9e8}.sonia-time{margin-top:4px;padding:0 3px;font-size:9px;line-height:1.25;color:var(--sonia-muted)}.sonia-turn-user .sonia-time{text-align:right}.sonia-turn-assistant .sonia-time{text-align:left}.sonia-starters{display:grid;gap:7px;margin:3px 0 12px}.sonia-starters button{min-height:38px;padding:9px 11px;border:1px solid var(--sonia-border);border-radius:12px;background:rgba(255,255,255,.88);color:var(--sonia-text);font:500 12px/1.3 inherit;text-align:left;cursor:pointer}.sonia-starters button:hover{background:#fff;border-color:#bac7e6}.sonia-footer{flex:0 0 auto;border-top:1px solid rgba(185,198,230,.72);background:var(--sonia-bg)}.sonia-composer{display:flex;align-items:center;gap:7px;padding:9px 8px 6px}.sonia-composer input{flex:1;min-width:0;min-height:40px;padding:9px 12px;border:1px solid #b7c7ee;border-radius:18px;background:#fff;color:var(--sonia-text);font:13px/1.3 inherit;outline:none}.sonia-composer input:focus{border-color:#7ca9ff;box-shadow:0 0 0 2px rgba(124,169,255,.12)}.sonia-composer button{display:flex;align-items:center;justify-content:center;width:42px;min-width:42px;height:40px;padding:0;border:0;border-radius:50%;background:#fff;color:#4a8ff0;cursor:pointer}.sonia-composer button:hover{background:#f8fbff}.sonia-send-label{font-size:0}.sonia-send-icon{font-size:22px;line-height:1;transform:translateX(1px) rotate(-8deg)}.sonia-composer button:disabled{opacity:.45}.sonia-disclaimer{padding:1px 10px 9px;text-align:center;font-size:8.5px;line-height:1.28;color:#4f5969}.sonia-history+.sonia-footer{margin-top:auto}@media(max-width:640px){.sonia-shell{right:6px;bottom:6px}.sonia-panel{right:-2px;bottom:52px;width:calc(100vw - 8px);height:min(500px,calc(100vh - 62px))}.sonia-trigger{width:108px;height:44px}.sonia-history{padding:9px 7px 7px}.sonia-bubble{font-size:12px}.sonia-composer{padding:8px 6px 5px}.sonia-disclaimer{font-size:8px;padding-bottom:7px}}
.sonia-handoff-gate{flex:0 0 auto;padding:8px 10px 9px;border-bottom:1px solid rgba(185,198,230,.72);background:rgba(255,255,255,.56)}
.sonia-handoff-gate[hidden]{display:none!important}
.sonia-handoff-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sonia-muted);margin-bottom:5px}
.sonia-handoff-list{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;margin-bottom:7px}
.sonia-handoff-item{display:flex;align-items:flex-start;gap:5px;min-width:0;font-size:9.5px;line-height:1.25;color:var(--sonia-muted)}
.sonia-handoff-item.is-complete{color:var(--sonia-text);font-weight:600}
.sonia-handoff-dot{flex:0 0 auto;width:12px;text-align:center}
.sonia-handoff-button{width:100%;min-height:34px;border:1px solid var(--sonia-accent);border-radius:10px;background:var(--sonia-accent);color:#fff;font:600 11px/1.2 inherit;cursor:pointer}
.sonia-handoff-button:disabled{border-color:var(--sonia-border);background:rgba(255,255,255,.72);color:var(--sonia-muted);cursor:not-allowed;opacity:.72}
@media(max-width:640px){.sonia-handoff-gate{padding:7px 8px}.sonia-handoff-list{grid-template-columns:1fr 1fr;gap:3px 6px}.sonia-handoff-item{font-size:9px}.sonia-handoff-button{min-height:36px}}

.sonia-handoff-progress{display:flex;align-items:center;gap:8px;margin:0 0 7px}.sonia-handoff-progress-text{flex:0 0 34px;font-size:11px;font-weight:700;color:var(--sonia-text);text-align:right}.sonia-handoff-progress-track{position:relative;flex:1;height:6px;overflow:hidden;border-radius:999px;background:rgba(185,198,230,.55)}.sonia-handoff-progress-bar{height:100%;width:0;border-radius:999px;background:var(--sonia-accent);transition:width .22s ease}.sonia-handoff-actions{display:grid;grid-template-columns:1fr;gap:6px}.sonia-handoff-actions:has(.sonia-contract-button:not([hidden])){grid-template-columns:1fr 1fr}.sonia-contract-button{width:100%;min-height:34px;border:1px solid var(--sonia-accent);border-radius:10px;background:var(--sonia-accent);color:#fff;font:700 11px/1.2 inherit;cursor:pointer}.sonia-contract-button[hidden]{display:none!important}.sonia-contract-button:disabled{cursor:not-allowed;opacity:.6}@media(max-width:640px){.sonia-handoff-actions:has(.sonia-contract-button:not([hidden])){grid-template-columns:1fr 1fr}.sonia-contract-button{min-height:36px}}
