.fr-asst{font-family:var(--font-body);color:var(--color-foreground)}.fr-asst-fab{position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:80;display:inline-flex;align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-3) var(--space-5);border:var(--border-width) solid var(--color-primary-hover);border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;box-shadow:var(--shadow-clay-lg);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--transition-press),box-shadow var(--transition-press),background var(--transition-fast)}.fr-asst-fab svg{width:24px;height:24px}.fr-asst-fab:hover{transform:translateY(-1px);background:var(--color-primary-hover)}.fr-asst-fab:active{transform:translateY(2px);box-shadow:var(--shadow-clay-pressed)}.fr-asst-fab.open{background:var(--color-primary-active)}@media (max-width:480px){.fr-asst-fab-label{display:none}.fr-asst-fab{padding:var(--space-3);min-width:56px;justify-content:center}}.fr-asst-panel{position:fixed;left:var(--space-4);bottom:calc(var(--space-4) + 68px);z-index:80;display:none;flex-direction:column;width:min(392px,calc(100vw - 2rem));max-height:min(640px,calc(100dvh - 110px));background:var(--color-card);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-clay-lg);overflow:hidden}.fr-asst-panel.open{display:flex}@media (max-width:480px){.fr-asst-panel{right:var(--space-2);left:var(--space-2);width:auto;bottom:calc(var(--space-2) + 64px);max-height:calc(100dvh - 96px);border-radius:var(--radius-lg)}}.fr-asst-head{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-muted);border-bottom:var(--border-width) solid var(--color-border)}.fr-asst-head-text{flex:1;min-width:0}.fr-asst-title{font-family:var(--font-heading);font-weight:600;font-size:var(--text-lg);line-height:var(--leading-tight)}.fr-asst-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-card);color:var(--color-primary-hover);border:2px solid var(--color-border);box-shadow:var(--shadow-clay-sm);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-press)}.fr-asst-icon-btn svg{width:20px;height:20px}.fr-asst-icon-btn:hover{background:var(--color-primary-soft)}.fr-asst-icon-btn:active{transform:translateY(1px)}.fr-asst-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4) 0}.fr-asst-chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:2px solid var(--color-border);background:var(--color-primary-soft);color:var(--color-primary-hover);font-size:var(--text-xs);font-weight:800;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-press)}.fr-asst-chip:hover{background:var(--color-border)}.fr-asst-chip:active{transform:translateY(1px)}.fr-asst-msgs{flex:1;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);-webkit-overflow-scrolling:touch}.fr-asst-msg{max-width:88%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;border:2px solid var(--color-border)}.fr-asst-msg--bot{align-self:flex-start;background:var(--color-muted);color:var(--color-card-foreground);border-bottom-left-radius:var(--radius-sm)}.fr-asst-msg--user{align-self:flex-end;background:var(--color-primary);border-color:var(--color-primary-hover);color:var(--color-on-primary);border-bottom-right-radius:var(--radius-sm)}.fr-asst-msg--typing{color:var(--color-muted-foreground);font-weight:700}.fr-asst-card{align-self:stretch;background:var(--color-card);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-clay-sm);padding:var(--space-3)}.fr-asst-card-title{font-family:var(--font-heading);font-weight:600;font-size:var(--text-base);color:var(--color-accent-strong);margin-bottom:var(--space-1)}.fr-asst-card-line{font-size:var(--text-sm);color:var(--color-foreground)}.fr-asst-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.fr-asst-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-2)}.fr-asst-grid-link{display:block;padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-muted);color:var(--color-primary-hover);font-size:var(--text-sm);font-weight:700;text-decoration:none}.fr-asst-grid-link:hover{background:var(--color-primary-soft);color:var(--color-primary-hover)}.fr-asst-files{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0 var(--space-4) var(--space-2)}.fr-asst-file-chip{display:inline-flex;align-items:center;gap:var(--space-1);max-width:100%;padding:2px var(--space-1) 2px var(--space-3);border-radius:var(--radius-full);border:2px solid var(--color-accent);background:var(--color-accent-soft);font-size:var(--text-xs);font-weight:800}.fr-asst-file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.fr-asst-file-remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);color:var(--color-accent-strong);cursor:pointer}.fr-asst-file-remove svg{width:12px;height:12px}.fr-asst-clear-files{font-size:var(--text-xs);font-weight:800;color:var(--color-destructive);cursor:pointer;padding:var(--space-1)}.fr-asst-progress{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4) var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--color-primary-hover)}.fr-asst-spinner{width:16px;height:16px;border-width:2px}.fr-asst-composer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);border-top:var(--border-width) solid var(--color-border);background:var(--color-card)}.fr-asst-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.fr-asst-input{flex:1;min-width:0;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-card);color:var(--color-foreground);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:inset 0 2px 5px rgba(124,58,237,.07);font-size:var(--text-base)}.fr-asst-input::placeholder{color:var(--color-muted-foreground);opacity:1}.fr-asst-input:focus{border-color:var(--color-primary)}.fr-asst-send{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-primary);border:var(--border-width) solid var(--color-primary-hover);color:var(--color-on-primary);box-shadow:var(--shadow-clay-sm);cursor:pointer;transition:transform var(--transition-press),background var(--transition-fast)}.fr-asst-send svg{width:20px;height:20px}.fr-asst-send:hover{background:var(--color-primary-hover)}.fr-asst-send:active{transform:translateY(1px)}.fr-asst-send:disabled{opacity:.55;pointer-events:none}.fr-asst .hidden{display:none!important}@media (prefers-reduced-motion:reduce){.fr-asst-chip,.fr-asst-fab,.fr-asst-icon-btn,.fr-asst-send{transition:none!important}.fr-asst-chip:active,.fr-asst-fab:active,.fr-asst-fab:hover,.fr-asst-icon-btn:active,.fr-asst-send:active{transform:none}.fr-asst-spinner{animation-duration:2s}}