.chat-widget{bottom:var(--space-6);right:var(--space-6);z-index:9000;position:fixed}.chat-widget__fab{border-radius:var(--radius-full);background:var(--gradient-accent);min-width:56px;height:56px;color:var(--color-text-on-accent);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-md), var(--shadow-glow-accent);transition:gap .72s var(--ease-morph), padding .72s var(--ease-morph), transform .5s var(--ease-out-expo), background .5s ease, color .5s ease, box-shadow .5s var(--ease-out-expo);border:none;justify-content:center;align-items:center;gap:0;margin-left:auto;padding:0;display:flex;overflow:hidden}.chat-widget__fab-label{opacity:0;max-width:0;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;transition:max-width .72s var(--ease-morph), opacity .36s ease .2s, transform .56s var(--ease-morph) .14s;display:block;transform:translate(-6px)}.chat-widget__fab--inviting,.chat-widget:hover .chat-widget__fab:not(.chat-widget__fab--open){padding-right:var(--space-5);gap:var(--space-2)}.chat-widget__fab--inviting .chat-widget__fab-label,.chat-widget:hover .chat-widget__fab:not(.chat-widget__fab--open) .chat-widget__fab-label{opacity:1;max-width:14rem;transform:translate(0)}.chat-widget__fab-glyphs{flex-shrink:0;place-items:center;width:28px;height:28px;display:grid;position:relative}.chat-widget__fab-glyph{transition:opacity .4s ease, transform .62s var(--ease-morph);grid-area:1/1;display:inline-flex}.chat-widget__fab-glyph--close{opacity:0;transform:rotate(-90deg)scale(.5)}.chat-widget__fab--open .chat-widget__fab-glyph--spark{opacity:0;transform:rotate(90deg)scale(.5)}.chat-widget__fab--open .chat-widget__fab-glyph--close{opacity:1;transform:rotate(0)scale(1)}.chat-widget__fab--open .chat-widget__fab-label{opacity:0;max-width:0}.chat-widget__fab:hover{box-shadow:var(--shadow-lg), var(--shadow-glow-accent)}.chat-widget__fab:active{transform:scale(.95)}.chat-widget__fab-dock{transform:translate3d(var(--pull-x,0), var(--pull-y,0), 0);justify-content:flex-end;display:flex;position:relative}.chat-widget__fab-dock .chat-widget__fab{z-index:1;position:relative}.chat-widget__fab-dock:hover .chat-widget__fab{transform:scale(1.06)}.chat-widget__fab-dock:hover .chat-widget__fab-glyph--spark{transform:rotate(18deg)scale(1.12)}@property --halo-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.chat-widget__halo{border-radius:var(--radius-full);opacity:0;--halo-peak:#fffffff2;background:conic-gradient(from var(--halo-angle), transparent 0deg, rgba(var(--color-accent-rgb), .2) 30deg, var(--halo-peak) 60deg, rgba(var(--color-accent-rgb), .2) 95deg, transparent 150deg, transparent 360deg);transition:opacity .4s var(--ease-out-expo);pointer-events:none;padding:1.5px;position:absolute;inset:-7px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}[data-theme=light] .chat-widget__halo{--halo-peak:#5a4426e6}.chat-widget__fab-dock:hover .chat-widget__halo{opacity:1;animation:2.6s linear infinite haloSweep}@keyframes haloSweep{to{--halo-angle:360deg}}.chat-widget__motes{pointer-events:none;width:0;height:0;position:absolute;bottom:28px;right:28px}.chat-widget__mote{border-radius:var(--radius-full);background:var(--color-accent);opacity:0;width:4px;height:4px;box-shadow:0 0 6px rgba(var(--color-accent-rgb), .9);position:absolute}.chat-widget__fab-dock:hover .chat-widget__mote{animation:moteRise 1.8s var(--ease-out-expo) infinite}.chat-widget__mote--0{--mote-x:-22px;--mote-drift:-8px;animation-delay:0s}.chat-widget__mote--1{--mote-x:14px;--mote-drift:10px;animation-delay:.32s}.chat-widget__mote--2{--mote-x:-6px;--mote-drift:-14px;animation-delay:.64s}.chat-widget__mote--3{--mote-x:24px;--mote-drift:6px;animation-delay:.96s}.chat-widget__mote--4{--mote-x:-16px;--mote-drift:12px;animation-delay:1.28s}@keyframes moteRise{0%{opacity:0;transform:translate(var(--mote-x), 6px) scale(.6)}18%{opacity:1}to{opacity:0;transform:translate(calc(var(--mote-x) + var(--mote-drift)), -52px) scale(1.1)}}@media (prefers-reduced-motion:reduce){.chat-widget__fab-dock,.chat-widget__fab-dock:hover .chat-widget__fab,.chat-widget__fab-dock:hover .chat-widget__fab-glyph--spark{transform:none}.chat-widget__halo,.chat-widget__motes{display:none}}.chat-widget__fab--open{background:var(--color-bg-surface);color:var(--color-text-secondary);box-shadow:var(--shadow-sm)}.chat-widget__fab--open:hover{box-shadow:var(--shadow-md)}.chat-widget__mini{left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));align-items:center;gap:var(--space-2);max-width:400px;padding:var(--space-2) var(--space-3);background:rgba(var(--color-bg-deep-rgb), .94);-webkit-backdrop-filter:blur(20px)saturate(1.2);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-left:auto;display:flex;position:fixed}.chat-widget__mini-restore{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-1);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;display:flex}.chat-widget__panel{bottom:calc(56px + var(--space-4));background:rgba(var(--color-bg-deep-rgb), .92);-webkit-backdrop-filter:blur(20px)saturate(1.2);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:400px;max-height:60vh;box-shadow:var(--shadow-lg);animation:chatSlideUp .3s var(--ease-out-expo);transition:width .3s var(--ease-out-expo), max-height .3s var(--ease-out-expo);flex-direction:column;display:flex;position:absolute;right:0;overflow:hidden}.chat-widget__panel--expanded{width:600px;max-height:80vh}.chat-widget__panel--expanded .chat-widget__messages{max-height:calc(80vh - 120px)}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.chat-widget__panel{transform-origin:100% 100%}.chat-widget__intro>*{animation:chatIntroIn .4s var(--ease-out-expo) backwards}.chat-widget__intro>:nth-child(2){animation-delay:80ms}.chat-widget__intro>:nth-child(3){animation-delay:.14s}@keyframes chatIntroIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.chat-widget__panel,.chat-widget__intro>*{animation:none}}.chat-widget__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--glass-border);background:rgba(var(--color-bg-deep-rgb), .95);justify-content:space-between;align-items:center;display:flex}.chat-widget__identity{align-items:center;gap:var(--space-3);min-width:0;display:flex}.chat-widget__avatar{border-radius:var(--radius-full);background:var(--gradient-accent);width:32px;height:32px;color:var(--color-text-on-accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.chat-widget__names{flex-direction:column;min-width:0;display:flex}.chat-widget__title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);letter-spacing:var(--tracking-wide);text-transform:uppercase}.chat-widget__role{font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent-text);font-size:.6875rem}.chat-widget__disclaimer{padding:0 var(--space-5) var(--space-3);font-family:var(--font-mono);color:var(--color-text-tertiary);text-align:center;margin:0;font-size:.6875rem;line-height:1.5}.chat-widget__header-actions{align-items:center;gap:var(--space-2);display:flex}.chat-widget__close-btn,.chat-widget__clear-btn,.chat-widget__expand-btn{color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.chat-widget__close-btn:hover,.chat-widget__clear-btn:hover,.chat-widget__expand-btn:hover{color:var(--color-text-primary)}.chat-widget__messages{padding:var(--space-4) var(--space-4);gap:var(--space-3);scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;flex-direction:column;flex:1;min-height:200px;max-height:calc(60vh - 120px);display:flex;overflow-y:auto}.chat-widget__intro{gap:var(--space-4);padding:var(--space-4) var(--space-2) var(--space-2);flex-direction:column;display:flex}.chat-widget__welcome{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.chat-widget__suggestions-label{color:var(--color-accent-text);display:block}.chat-widget__suggestions{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chat-widget__suggestion{text-align:left;width:100%;padding:var(--space-3) var(--space-4);background:rgba(var(--color-accent-rgb), .06);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm);line-height:var(--leading-normal);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast) var(--ease-out-expo)}.chat-widget__suggestion:hover{background:rgba(var(--color-accent-rgb), .12);border-color:rgba(var(--color-accent-rgb), .4);transform:translate(2px)}[data-theme=light] .chat-widget__suggestion{border-color:var(--color-border-subtle)}@media (prefers-reduced-motion:reduce){.chat-widget__suggestion,.chat-widget__suggestion:hover,.chat-widget__fab,.chat-widget__fab-label{transition:none;transform:none}}.chat-widget__thinking{color:var(--color-text-tertiary);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);font-style:italic}.chat-message{font-size:var(--text-sm);line-height:var(--leading-normal);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);word-wrap:break-word;max-width:85%}.chat-message--user{background:var(--gradient-accent);color:var(--color-text-on-accent);border-bottom-right-radius:var(--radius-xs);align-self:flex-end}.chat-message--assistant{background:var(--glass-bg-light);border:1px solid var(--glass-border);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-xs);align-self:flex-start}.chat-message--error{background:rgba(var(--color-error-rgb), .1);color:var(--color-error-text);border:1px solid rgba(var(--color-error-rgb), .2);font-size:var(--text-xs);text-align:center;align-self:center}.chat-message__markdown p{margin:0 0 var(--space-2)}.chat-message__markdown p:last-child{margin-bottom:0}.chat-message__markdown strong{color:var(--color-accent);font-weight:var(--font-semibold)}.chat-message__markdown ul,.chat-message__markdown ol{margin:var(--space-2) 0;padding-left:var(--space-5)}.chat-message__markdown li{margin-bottom:var(--space-1)}.chat-message__markdown code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--glass-bg);border-radius:var(--radius-xs);padding:.1em .4em}.chat-message__markdown a{margin-top:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--gradient-cta);color:var(--color-text-on-accent);font-weight:var(--font-semibold);font-size:var(--text-xs);border-radius:var(--radius-sm);transition:box-shadow var(--transition-fast), transform var(--transition-fast);text-decoration:none;display:inline-block}.chat-message__markdown a:hover{box-shadow:var(--shadow-glow-accent);transform:translateY(-1px)}.chat-input{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--glass-border);background:rgba(var(--color-bg-deep-rgb), .95);display:flex}.chat-input__textarea{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-sm);resize:none;max-height:80px;transition:border-color var(--transition-fast);outline:none;flex:1}.chat-input__textarea::placeholder{color:var(--color-text-tertiary)}.chat-input__textarea:focus{border-color:var(--color-accent)}.chat-input__send{border-radius:var(--radius-sm);background:var(--gradient-accent);width:36px;height:36px;color:var(--color-text-on-accent);cursor:pointer;transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-input__send:hover:not(:disabled){transform:scale(1.05)}.chat-input__send:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}@media (width<=480px){.chat-widget{bottom:var(--space-4);right:var(--space-4)}.chat-widget__panel,.chat-widget__panel--expanded{border-radius:0;width:100%;height:100dvh;max-height:none;animation:none;position:fixed;inset:0;overflow:hidden}.chat-widget__panel .chat-widget__messages,.chat-widget__panel--expanded .chat-widget__messages{flex:1;min-height:0;max-height:none}.chat-input__textarea{font-size:16px}.chat-widget__expand-btn,.chat-widget__fab--open{display:none}}@media (prefers-reduced-motion:reduce){.chat-widget__panel{animation:none}.chat-widget__fab{transition:none}}
