@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Fira+Code:wght@400;500&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}:root{--ease-soft:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.16, 1, .3, 1);--ease-emphasized:cubic-bezier(.2, 0, 0, 1)}.enhance-fade-in{animation:enhanceFadeIn .3s var(--ease-soft) both}.enhance-slide-up{animation:enhanceSlideUp .4s var(--ease-spring) both}.enhance-scale-in{animation:enhanceScaleIn .3s var(--ease-bounce) both}.enhance-shimmer{background:linear-gradient(90deg, var(--bg-elevated) 0%, #ffffff0a 50%, var(--bg-elevated) 100%);background-size:200% 100%;animation:1.5s infinite enhanceShimmer}@keyframes enhanceFadeIn{0%{opacity:0}to{opacity:1}}@keyframes enhanceSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes enhanceScaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes enhanceShimmer{to{background-position:-200% 0}}.enhance-hoverable{transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast)}.enhance-hoverable:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.enhance-glow-on-hover{transition:box-shadow var(--transition-normal)}.enhance-glow-on-hover:hover{box-shadow:0 0 0 1px var(--accent), 0 0 20px var(--accent-glow)}.enhance-focus-ring:focus-visible{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--accent);transition:box-shadow var(--transition-fast);outline:none}.enhance-focus-ring-subtle:focus-visible{box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.enhance-text-gradient{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.enhance-truncate-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.enhance-truncate-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.enhance-glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px)saturate(180%);border:1px solid var(--glass-border)}.enhance-glass-strong{-webkit-backdrop-filter:blur(20px)saturate(200%);border:1px solid var(--glass-border);background:#141417d9}.enhance-elevate-1{box-shadow:0 1px 2px #0000004d}.enhance-elevate-2{box-shadow:0 2px 8px #0000004d}.enhance-elevate-3{box-shadow:0 4px 16px #0006}.enhance-elevate-4{box-shadow:0 10px 30px #00000080}.enhance-elevate-5{box-shadow:0 20px 50px #0009}.enhance-skeleton{background:linear-gradient(90deg, var(--bg-elevated) 0%, #7c5cff0f 50%, var(--bg-elevated) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite enhanceSkeletonMove}@keyframes enhanceSkeletonMove{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes enhanceBounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.enhance-bounce-in{animation:enhanceBounceIn .5s var(--ease-bounce)}@keyframes enhanceRotateIn{0%{opacity:0;transform:rotate(-180deg)}to{opacity:1;transform:rotate(0)}}.enhance-rotate-in{animation:enhanceRotateIn .6s var(--ease-spring)}.enhance-label{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:.72rem;font-weight:var(--font-medium);color:var(--text-secondary);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.enhance-label--accent{background:var(--accent-subtle);color:var(--accent);border-color:#7c5cff4d}.enhance-label--success{background:var(--success-subtle);color:var(--success);border-color:#34d3994d}.enhance-label--warning{background:var(--warning-subtle);color:var(--warning);border-color:#fbbf244d}.enhance-label--error{background:var(--error-subtle);color:var(--error);border-color:#f871714d}.enhance-stack>*+*{margin-top:1rem}.enhance-stack-sm>*+*{margin-top:.5rem}.enhance-stack-lg>*+*{margin-top:1.5rem}.enhance-cluster{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.enhance-no-scrollbar::-webkit-scrollbar{display:none}.enhance-no-scrollbar{scrollbar-width:none}.enhance-tap-highlight{-webkit-tap-highlight-color:transparent}.enhance-user-select-none{-webkit-user-select:none;user-select:none}.enhance-touch-target{min-width:44px;min-height:44px}.enhance-aspect-square{aspect-ratio:1}.enhance-aspect-video{aspect-ratio:16/9}.enhance-truncate-fade{position:relative;overflow:hidden}.enhance-truncate-fade:after{content:"";background:linear-gradient(to right, transparent, var(--bg-secondary));pointer-events:none;width:50px;position:absolute;top:0;bottom:0;right:0}.enhance-sticky-top{z-index:var(--z-sticky);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--bg-secondary);position:sticky;top:0}@media (prefers-reduced-motion:reduce){.enhance-fade-in,.enhance-slide-up,.enhance-scale-in,.enhance-shimmer,.enhance-bounce-in,.enhance-rotate-in,.enhance-skeleton{animation:none!important}.enhance-hoverable:hover{transform:none}}.app-layout{background:var(--bg-primary);width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.sidebar{transition:width var(--transition-normal);flex-direction:column;display:flex;position:relative}.sidebar__item{transition:all var(--transition-fast);position:relative}.sidebar__item:before{content:"";background:var(--accent);width:3px;height:70%;transition:transform var(--transition-fast);border-radius:0 3px 3px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)scaleY(0)}.sidebar__item:hover:before,.sidebar__item--active:before{transform:translateY(-50%)scaleY(1)}.sidebar__item--active{background:linear-gradient(90deg, var(--accent-subtle), transparent)}.chat-header{z-index:var(--z-sticky);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#0a0a0cd9;position:sticky;top:0}.chat-header__icon-btn{transition:background var(--transition-fast), transform var(--transition-fast)}.chat-header__icon-btn:hover{background:var(--bg-hover)}.chat-message{position:relative}.chat-message__bubble{position:relative;overflow:hidden}.chat-message--user .chat-message__bubble{background:linear-gradient(135deg, var(--accent), #5a3aee);box-shadow:0 2px 12px var(--accent-glow)}.chat-message--assistant .chat-message__bubble{background:var(--bg-secondary);border:1px solid var(--border-subtle);transition:border-color var(--transition-fast)}.chat-message--assistant .chat-message__bubble:hover{border-color:var(--border)}.chat-message__avatar{position:relative;overflow:visible}.chat-message__avatar-pulse{border:2px solid var(--accent);border-radius:50%;animation:1.5s ease-in-out infinite messagePulse;position:absolute;inset:-3px}@keyframes messagePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:0;transform:scale(1.15)}}.chat-input-wrapper{background:linear-gradient(to top, var(--bg-primary), transparent);padding-top:1rem;position:relative}.chat-input{transition:border-color var(--transition-fast), box-shadow var(--transition-fast);position:relative}.chat-input__mic--active{animation:1s ease-in-out infinite micPulse}@keyframes micPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.settings-modal{position:relative;overflow:hidden}.settings-modal:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.settings-modal__provider-btn{transition:all var(--transition-fast);position:relative;overflow:hidden}.settings-modal__provider-btn:before{content:"";background:linear-gradient(135deg, var(--accent-subtle), transparent);opacity:0;transition:opacity var(--transition-fast);position:absolute;inset:0}.settings-modal__provider-btn:hover:before{opacity:1}.settings-modal__provider-btn--active{background:var(--accent-subtle);border-color:var(--accent)}.settings-modal__slider{appearance:none;background:0 0}.settings-modal__slider::-webkit-slider-runnable-track{background:var(--bg-elevated);border-radius:var(--radius-full);height:4px}.settings-modal__slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;width:16px;height:16px;-webkit-transition:transform var(--transition-fast);transition:transform var(--transition-fast);box-shadow:0 0 0 0 var(--accent);border-radius:50%;margin-top:-6px}.settings-modal__slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 6px var(--accent-subtle);transform:scale(1.15)}.settings-modal__slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.toast{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:hidden}.toast:before{content:"";background:currentColor;width:3px;position:absolute;top:0;bottom:0;left:0}.toast--success:before{background:var(--success)}.toast--error:before{background:var(--error)}.toast--warning:before{background:var(--warning)}.toast--info:before{background:var(--info)}.empty-state{isolation:isolate;position:relative}.empty-state:before{content:"";background:radial-gradient(circle at center, var(--accent-subtle), transparent 60%);z-index:-1;animation:30s linear infinite emptyStateRotate;position:absolute;inset:-50%}@keyframes emptyStateRotate{to{transform:rotate(360deg)}}.empty-state__icon{z-index:1;position:relative}.code-block{position:relative;overflow:hidden}.code-block:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.4;height:1px;position:absolute;top:0;left:0;right:0}.code-block pre{scrollbar-width:thin}.code-block pre::-webkit-scrollbar{height:4px}.provider-switcher__trigger{transition:background var(--transition-fast), border-color var(--transition-fast)}.provider-switcher__trigger:hover{background:var(--bg-hover)}.provider-switcher__dropdown{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.provider-switcher__model-item{transition:background var(--transition-fast);position:relative}.provider-switcher__model-item:after{content:"";transform-origin:0;background:var(--accent);width:6px;height:6px;transition:transform var(--transition-fast);border-radius:50%;position:absolute;top:50%;right:8px;transform:translateY(-50%)scaleX(0)}.provider-switcher__model-item--active:after{transform:translateY(-50%)scaleX(1)}.chat-message__action-btn{transition:all var(--transition-fast)}.chat-message__action-btn:hover{transform:translateY(-1px)}.chat-message__action-btn:active{transform:translateY(0)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.chat-message__content{scroll-margin-top:100px}.skip-link:focus{z-index:9999;background:var(--accent);color:#fff;border-radius:var(--radius-md);font-weight:var(--font-medium);box-shadow:var(--shadow-lg);padding:8px 14px;text-decoration:none;position:fixed;top:10px;left:10px}@media print{.sidebar,.chat-input-wrapper,.chat-header,.chat-message__actions{display:none!important}.app-main{overflow:visible!important}}@media (width<=360px){.app-main{font-size:.85rem}.chat-message__bubble{max-width:95%}.chat-input__footer{flex-wrap:wrap;font-size:.65rem}.chat-header{padding:0 .5rem}}@media (width<=640px){.sidebar{width:100%!important;max-width:100%!important}.chat-header__brand h1{font-size:1rem}.provider-switcher__label{display:none}.chat-message__avatar{width:28px!important;height:28px!important}.empty-state__icon{width:60px!important;height:60px!important}.settings-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;max-width:100%!important;max-height:90vh!important}.modal-overlay{align-items:flex-end!important;padding:0!important}}@media (width>=641px) and (width<=1024px){.sidebar{width:240px}.chat-message{max-width:90%}.empty-state__suggestions{grid-template-columns:1fr 1fr}}@media (width>=1025px) and (width<=1440px){.app-layout{max-width:100%}}@media (width>=1441px){.app-main{max-width:1600px;margin:0 auto}}@media (height<=500px) and (orientation:landscape){.chat-header{min-height:48px}.chat-input-wrapper{padding-top:.5rem}.empty-state{padding:1rem}}@media (aspect-ratio<=1) and (width<=900px){.sidebar{width:220px}}@media (resolution>=192dpi){.chat-message__avatar{image-rendering:-webkit-optimize-contrast}}@media print{.sidebar,.chat-input-wrapper,.chat-header__actions,.chat-message__actions{display:none!important}.app-layout{height:auto!important;display:block!important}.app-main{overflow:visible!important}.chat-message{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}body{color:#000!important;background:#fff!important}.chat-message__bubble{color:#000!important;background:#fff!important;border:1px solid #ccc!important}}@media (hover:none) and (pointer:coarse){.chat-message__action-btn{min-width:36px;min-height:36px}.chat-input__send{min-width:40px;min-height:40px}.sidebar__item{min-height:52px}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,a:focus-visible{outline-offset:3px}input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--accent);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#141414;--bg-elevated:#1a1a1a;--text-primary:#fff;--text-secondary:#e0e0e0;--text-tertiary:#b0b0b0;--border:#4a4a4a;--border-subtle:#ffffff26;--accent:#9d7fff}.chat-message--user .chat-message__bubble{background:var(--accent)!important;color:#000!important}}@media (forced-colors:active){.chat-message__avatar,.chat-input__send,.provider-switcher__trigger,.chat-message__bubble{border:1px solid canvastext}.sidebar__item--active{outline-offset:-2px;outline:2px solid highlight}}button,a,input[type=checkbox],input[type=radio],.touch-target{min-width:32px;min-height:32px}.sr-announce{width:1px;height:1px;position:absolute;top:0;left:-9999px;overflow:hidden}.skip-link{background:var(--accent);color:#fff;border-radius:var(--radius-sm);z-index:9999;padding:8px 12px;text-decoration:none;transition:top .2s;position:absolute;top:-40px;left:6px}[aria-invalid=true]{box-shadow:0 0 0 2px var(--error-subtle);border-color:var(--error)!important}[aria-invalid=true]:focus-visible{outline-color:var(--error);box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--error)}[aria-disabled=true],[disabled]{cursor:not-allowed;opacity:var(--opacity-disabled)}[aria-required=true]:after{content:" *";color:var(--error)}.contrast-warning{position:relative}.contrast-warning:before{content:"";pointer-events:none;border:2px dashed var(--warning);border-radius:inherit;position:absolute;inset:0}@keyframes gentlePulse{0%,to{opacity:1}50%{opacity:.85}}.gentle-pulse{animation:2s ease-in-out infinite gentlePulse}.chat-message__content{font-feature-settings:"liga", "kern", "calt";line-height:1.65}.chat-message__content code{border-radius:var(--radius-sm);background:#ffffff14;padding:1px 6px;font-family:Fira Code,monospace;font-size:.92em}.chat-message__content pre{background:var(--bg-primary);border:1px solid var(--border-subtle)}.chat-message__content blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);padding-left:1rem;font-style:italic}.chat-message__content table{border-collapse:collapse;margin:1em 0}.chat-message__content th,.chat-message__content td{border:1px solid var(--border-subtle);padding:.5em .75em}.chat-message__content th{background:var(--bg-tertiary);font-weight:var(--font-semibold)}.chat-message__content li{margin:.25em 0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@media (resolution>=1x){body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}}.animating{will-change:transform, opacity}[data-loading=true]{pointer-events:none;position:relative}[data-loading=true]:after{content:"";-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:1;background:#0a0a0c80;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.justify-between{justify-content:space-between}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--bg-primary:#0a0a0c;--bg-secondary:#141417;--bg-tertiary:#1a1a1f;--bg-elevated:#1e1e24;--bg-hover:#ffffff0a;--bg-active:#ffffff14;--surface:var(--bg-secondary);--surface-hover:var(--bg-hover);--surface-active:var(--bg-active);--accent:#7c5cff;--accent-hover:#8e72ff;--accent-subtle:#7c5cff1f;--accent-glow:#7c5cff66;--success:#34d399;--success-subtle:#34d3991f;--warning:#fbbf24;--warning-subtle:#fbbf241f;--error:#f87171;--error-subtle:#f871711f;--info:#60a5fa;--info-subtle:#60a5fa1f;--text-primary:#f3f3f5;--text-secondary:#8b8b93;--text-tertiary:#5a5a63;--text-inverse:#0a0a0c;--border:#2a2a33;--border-subtle:#ffffff0f;--border-strong:#3a3a45;--glass-bg:#14141799;--glass-border:#ffffff14;--space-2xs:.125rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--space-4xl:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--text-2xs:.65rem;--text-xs:.75rem;--text-sm:.85rem;--text-base:.95rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 10px 30px #00000080;--shadow-xl:0 20px 50px #0009;--shadow-glow:0 0 20px #7c5cff33;--shadow-glow-strong:0 0 40px #7c5cff59;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--z-base:1;--z-dropdown:10;--z-sticky:20;--z-overlay:50;--z-modal:100;--z-toast:200;--z-tooltip:300;--max-width-chat:820px;--max-width-app:1400px;--max-width-modal:440px;--sidebar-width:280px;--header-height:60px;--input-area-min:80px;--duration-instant:.1s;--duration-fast:.2s;--duration-normal:.3s;--duration-slow:.5s;--duration-slower:.8s;--opacity-disabled:.45;--opacity-hover:.8;--opacity-muted:.6;--gradient-accent:linear-gradient(135deg, #7c5cff, #5a3aee);--gradient-accent-soft:linear-gradient(135deg, #7c5cff33, #5a3aee1a);--gradient-surface:linear-gradient(135deg, var(--bg-secondary), var(--bg-tertiary));--gradient-glow:radial-gradient(circle at 50% 50%, #7c5cff26, transparent 70%);color:var(--text-primary);background-color:var(--bg-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11"}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--bg-primary);background-image:radial-gradient(at 0 0,#7c5cff1f 0,#0000 55%),radial-gradient(at 100% 100%,#5a3aee0f 0,#0000 55%),radial-gradient(#7c5cff08 0,#0000 70%);background-attachment:fixed;min-width:320px;min-height:100dvh;overflow:hidden}#root{width:100%;height:100dvh}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word;margin:0}a{color:var(--accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}img,picture,video,canvas,svg{max-width:100%;display:block}button{cursor:pointer;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}::selection{color:var(--text-primary);background:#7c5cff59}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full);-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.flex-center{justify-content:center;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){:root{--border:#4a4a55;--border-subtle:#ffffff26;--text-secondary:#b0b0b5;--text-tertiary:#8a8a93}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip{z-index:var(--z-tooltip);padding:var(--space-xs) var(--space-sm);background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md);position:absolute}.tooltip--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip--left{top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.tooltip--right{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.provider-switcher{position:relative}.provider-switcher__trigger{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;max-width:280px;padding:5px 10px 5px 8px;display:flex}.provider-switcher__trigger:hover{border-color:var(--border-strong);background:var(--bg-elevated);color:var(--text-primary)}.provider-switcher__trigger--open{border-color:var(--accent);background:var(--accent-subtle);color:var(--text-primary);box-shadow:0 0 0 3px #7c5cff1f}.provider-switcher__icon{flex-shrink:0;align-items:center;display:flex}.provider-switcher__label{font-weight:var(--font-semibold);flex-shrink:0}.provider-switcher__model-pill{font-size:10px;font-weight:var(--font-normal);color:var(--text-tertiary);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);text-overflow:ellipsis;white-space:nowrap;max-width:160px;padding:1px 7px;overflow:hidden}.provider-switcher__trigger--open .provider-switcher__model-pill{background:#ffffff0a}.provider-switcher__paid-badge{color:#fbbf24;opacity:.85;flex-shrink:0;align-items:center;display:flex}.provider-switcher__chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0;margin-left:auto}.provider-switcher__chevron--open{transform:rotate(180deg)}.provider-switcher__dropdown{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);min-width:260px;box-shadow:var(--shadow-xl), 0 0 0 1px #ffffff08;z-index:var(--z-dropdown);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:absolute;top:calc(100% + 8px);left:0;overflow:hidden}.provider-switcher__section-label{font-size:10px;font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:5px;padding:10px 14px 6px;display:flex}.provider-switcher__section-label--model{border-top:1px solid var(--border-subtle);margin-top:4px}.provider-switcher__provider-row{gap:6px;padding:2px 14px 10px;display:flex}.provider-switcher__provider-chip{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;display:flex}.provider-switcher__provider-chip:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-hover)}.provider-switcher__provider-chip--active{background:var(--accent-subtle);font-weight:var(--font-semibold)}.provider-switcher__chip-dollar{color:#d97706;opacity:.8}.provider-switcher__reload-btn{border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:auto;padding:3px;display:flex}.provider-switcher__reload-btn:hover:not(:disabled){color:var(--accent);background:var(--accent-subtle)}.provider-switcher__reload-btn:disabled{opacity:.5;cursor:not-allowed}.provider-switcher__models{max-height:220px;padding:2px 6px 8px;overflow-y:auto}.provider-switcher__model-item{border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.provider-switcher__model-item:hover{background:var(--bg-hover)}.provider-switcher__model-item--active{background:var(--accent-subtle)}.provider-switcher__model-name{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-family:Fira Code,monospace;overflow:hidden}.provider-switcher__model-item--active .provider-switcher__model-name{color:var(--accent);font-weight:var(--font-semibold)}.provider-switcher__model-check{color:var(--accent);flex-shrink:0}.provider-switcher__models-loading{color:var(--text-tertiary);font-size:var(--text-xs);align-items:center;gap:8px;padding:12px 10px;display:flex}.provider-switcher__models-empty{color:var(--text-tertiary);font-size:var(--text-xs);flex-direction:column;align-items:flex-start;gap:6px;padding:10px;display:flex}.provider-switcher__models-empty-reload{color:var(--accent);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #7c5cff66;text-decoration:underline #7c5cff66}.provider-switcher__models-empty-reload:hover{color:var(--accent-hover)}.provider-switcher__spin{animation:.9s linear infinite ps-spin}@keyframes ps-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.provider-switcher__section-spin{color:var(--accent);margin-left:2px}@media (width<=640px){.provider-switcher__label,.provider-switcher__model-pill{display:none}.provider-switcher__trigger{padding:6px 8px}.provider-switcher__dropdown{min-width:240px;left:auto;right:0}}.chat-header{padding:0 var(--space-lg);height:var(--header-height);background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);z-index:var(--z-sticky);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.chat-header:after{content:"";background:linear-gradient(90deg, transparent, var(--accent) 20%, #7c5cff4d 50%, var(--accent) 80%, transparent);opacity:.5;height:1px;position:absolute;bottom:-1px;left:0;right:0}.chat-header__left{align-items:center;gap:var(--space-md);display:flex}.chat-header__brand{align-items:center;gap:var(--space-sm);display:flex}.chat-header__logo{border-radius:var(--radius-md);background:var(--gradient-accent);color:#fff;width:34px;height:34px;box-shadow:var(--shadow-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-header__title{font-size:var(--text-md);font-weight:var(--font-semibold);letter-spacing:-.02em;background:linear-gradient(135deg, var(--text-primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.chat-header__status{align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em;display:flex}.chat-header__status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.chat-header__status--online .chat-header__status-dot{background:var(--success);box-shadow:0 0 6px var(--success);animation:2s ease-in-out infinite status-pulse}.chat-header__status--online{color:var(--success)}.chat-header__status--offline .chat-header__status-dot{background:var(--error);box-shadow:0 0 6px var(--error)}.chat-header__status--offline{color:var(--error)}.chat-header__status--checking .chat-header__status-dot{background:var(--warning);animation:1s ease-in-out infinite status-blink}.chat-header__status--checking{color:var(--warning)}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.2}}.chat-header__actions{align-items:center;gap:var(--space-xs);display:flex}.chat-header__icon-btn{padding:var(--space-sm);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;min-width:36px;min-height:36px;display:flex;position:relative;overflow:hidden}.chat-header__icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px)}.chat-header__icon-btn:active{transform:translateY(0)}.chat-header__icon-btn--danger:hover{color:var(--error);background:var(--error-subtle)}@media (width<=640px){.chat-header{padding:0 var(--space-md)}.chat-header__title{font-size:var(--text-sm)}.chat-header__status-text{display:none}}.sidebar-overlay{display:none}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);height:100%;z-index:var(--z-overlay);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar__header{border-bottom:1px solid var(--border-subtle);min-height:var(--header-height);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sidebar__brand{align-items:center;gap:10px;display:flex}.sidebar__brand-icon{background:var(--gradient-accent);color:#fff;width:28px;height:28px;box-shadow:0 2px 8px var(--accent-glow);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__brand-name{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--text-primary);letter-spacing:-.02em}.sidebar__close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:none}.sidebar__close:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar__nav{border-bottom:1px solid var(--border-subtle);padding:10px 12px}.sidebar__nav-track{background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;gap:0;padding:4px;display:flex;position:relative}.sidebar__nav-pill{background:var(--gradient-accent);width:calc(50% - 4px);box-shadow:0 2px 8px var(--accent-glow);pointer-events:none;z-index:0;border-radius:7px;position:absolute;top:4px;bottom:4px}.sidebar__nav-item{z-index:1;color:var(--text-tertiary);font-size:.82rem;font-weight:var(--font-semibold);cursor:pointer;transition:color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 10px;display:flex;position:relative}.sidebar__nav-item:hover{color:var(--text-secondary)}.sidebar__nav-item--active{color:#fff}.sidebar__content{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.sidebar__panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar__section-header{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.sidebar__section-header--tight{padding-top:10px}.sidebar__section-label{font-size:.7rem;font-weight:var(--font-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.sidebar__section-action{border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);align-items:center;padding:4px;display:flex}.sidebar__section-action:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar__badge{font-size:.68rem;font-weight:var(--font-bold);color:var(--text-tertiary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-full);padding:1px 7px;line-height:1.6}.sidebar__new-btn{border-radius:var(--radius-md);border:1px dashed var(--border);color:var(--text-tertiary);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-normal);align-items:center;gap:8px;min-height:38px;margin:8px 12px;padding:9px 14px;display:flex}.sidebar__new-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle);border-style:solid;transform:translateY(-1px)}.sidebar__search{margin:0 12px 4px;position:relative}.sidebar__search-icon{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.sidebar__search-input{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;min-height:34px;padding:8px 32px}.sidebar__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.sidebar__search-input::placeholder{color:var(--text-tertiary)}.sidebar__search-clear{border-radius:var(--radius-sm);color:var(--text-tertiary);transition:color var(--transition-fast);align-items:center;padding:3px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sidebar__search-clear:hover{color:var(--text-primary)}.sidebar__list{flex:1;padding:2px 8px 8px;overflow-y:auto}.sidebar__empty{text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);line-height:var(--leading-relaxed);padding:32px 16px}.sidebar__item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:10px;min-height:48px;margin-bottom:1px;padding:9px 10px;display:flex;position:relative}.sidebar__item:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.sidebar__item--active{background:var(--accent-subtle);border-color:#7c5cff33}.sidebar__item--active .sidebar__item-icon{color:var(--accent)}.sidebar__item-icon{color:var(--text-tertiary);flex-shrink:0}.sidebar__item-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sidebar__item-title{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium)}.sidebar__item-meta{color:var(--text-tertiary);font-size:.7rem}.sidebar__item-edit{background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:var(--text-sm);outline:none;padding:3px 6px}.sidebar__item-actions{flex-shrink:0;gap:2px;display:flex}.sidebar__item-action{border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;padding:5px;display:flex}.sidebar__item-action:hover{color:var(--text-primary);background:var(--bg-active)}.sidebar__item-action--danger:hover{color:var(--error);background:var(--error-subtle)}.sidebar__tools-hero{background:var(--gradient-accent-soft);border-radius:var(--radius-lg);border:1px solid #7c5cff33;align-items:center;gap:12px;margin:16px 14px 12px;padding:14px;display:flex}.sidebar__tools-hero-icon{background:var(--gradient-accent);color:#fff;width:38px;height:38px;box-shadow:0 4px 12px var(--accent-glow);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__tools-hero-title{font-size:.88rem;font-weight:var(--font-bold);color:var(--text-primary);line-height:1.3}.sidebar__tools-hero-sub{color:var(--text-tertiary);margin-top:2px;font-size:.72rem}.sidebar__tools-list{flex-direction:column;gap:4px;padding:0 10px;display:flex}.sidebar__tool-item{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-tertiary);cursor:default;transition:all var(--transition-normal);align-items:center;gap:12px;padding:11px 12px;display:flex;position:relative;overflow:hidden}.sidebar__tool-item:before{content:"";background:var(--gradient-accent-soft);opacity:0;transition:opacity var(--transition-normal);position:absolute;inset:0}.sidebar__tool-item:hover{border-color:#7c5cff4d;transform:translate(2px)}.sidebar__tool-item:hover:before{opacity:1}.sidebar__tool-icon{z-index:1;background:var(--bg-elevated);border:1px solid var(--border);width:34px;height:34px;color:var(--accent);transition:all var(--transition-fast);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.sidebar__tool-item:hover .sidebar__tool-icon{background:var(--accent-subtle);border-color:#7c5cff4d}.sidebar__tool-content{z-index:1;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex;position:relative}.sidebar__tool-label{font-size:.82rem;font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.3}.sidebar__tool-desc{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.4;overflow:hidden}.sidebar__tool-arrow{z-index:1;color:var(--text-tertiary);transition:transform var(--transition-fast), color var(--transition-fast);flex-shrink:0;position:relative}.sidebar__tool-item:hover .sidebar__tool-arrow{color:var(--accent);transform:translate(2px)}.sidebar__tools-tip{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-tertiary);text-align:center;margin:12px 12px 0;padding:10px 12px;font-size:.72rem;line-height:1.5}.sidebar__footer{border-top:1px solid var(--border-subtle);flex-shrink:0;padding:12px 16px}.sidebar__footer-text{color:var(--text-tertiary);letter-spacing:.02em;font-size:.7rem}@media (width<=768px){.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:calc(var(--z-overlay) - 1);background:#0000008c;display:block;position:fixed;inset:0}.sidebar{box-shadow:var(--shadow-xl);position:fixed;top:0;bottom:0;left:0}.sidebar__close{display:flex}}.code-block{border-radius:var(--radius-lg);border:1px solid var(--border);margin:var(--space-md) 0;background:var(--bg-primary);overflow:hidden}.code-block__header{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:#ffffff08;justify-content:space-between;align-items:center;min-height:36px;display:flex}.code-block__lang{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-tertiary);text-transform:lowercase;letter-spacing:.02em}.code-block__actions{gap:var(--space-xs);display:flex}.code-block__btn{align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-tertiary);transition:all var(--transition-fast);display:flex}.code-block__btn:hover{color:var(--text-primary);background:var(--bg-hover)}.code-block__btn--copied{color:var(--success)}.code-block__content{transition:max-height var(--transition-slow);overflow-x:auto}.code-block__content--collapsed{max-height:0;overflow:hidden}.code-block__content pre{padding:var(--space-lg);background:0 0;border:none;border-radius:0;margin:0}.code-block__content code{font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-primary);tab-size:2;background:0 0;padding:0}.code-block__collapsed-hint{padding:var(--space-sm) var(--space-lg);font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;cursor:pointer;border-top:1px solid var(--border-subtle);transition:color var(--transition-fast)}.code-block__collapsed-hint:hover{color:var(--text-secondary)}.safe-image{background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border-color,#ffffff14);border-radius:10px;flex-direction:column;max-width:100%;margin:.75rem 0;transition:box-shadow .2s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000040}.safe-image:hover{box-shadow:0 6px 28px #00000059}.safe-image--blocked,.safe-image--error{text-align:center;min-height:80px;color:var(--text-muted,#888);border:1px dashed var(--border-color,#ffffff1a);background:#ef44440d;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;margin:.5rem 0;padding:1.25rem 1.5rem;font-size:.8rem;display:flex}.safe-image--blocked{border-color:#ef444440}.safe-image__block-icon{color:#ef4444;flex-shrink:0}.safe-image__block-msg{color:#ef4444d9;max-width:280px;margin:0;font-size:.78rem;line-height:1.4}.safe-image--error{border-color:#ffffff14;gap:.4rem}.safe-image__error-msg{color:var(--text-muted,#888);font-size:.78rem}.safe-image__link{color:var(--accent,#6c63ff);align-items:center;gap:4px;margin-top:.25rem;font-size:.72rem;text-decoration:none;display:inline-flex}.safe-image__link:hover{text-decoration:underline}.safe-image__img{-o-object-fit:contain;object-fit:contain;border-radius:10px 10px 0 0;width:100%;max-width:100%;height:auto;transition:filter .3s;display:block}.safe-image__img--blurred{filter:blur(18px)brightness(.6);pointer-events:none;transform:scale(1.02)}.safe-image--loading .safe-image__img{background:var(--bg-secondary,#1a1a2e);min-height:120px}.safe-image__shimmer{background:linear-gradient(90deg,#fff0 0%,#ffffff0a 50%,#fff0 100%) 0 0/200% 100%;border-radius:10px;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.safe-image__overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#ffc864e6;background:#0f0f1ed1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.8rem;font-weight:500;display:flex;position:absolute;inset:0}.safe-image__reveal-btn,.safe-image__hide-btn{color:#ffc864e6;cursor:pointer;background:#ffc8641a;border:1px solid #ffc86466;border-radius:6px;align-items:center;gap:4px;margin-top:.25rem;padding:4px 12px;font-size:.74rem;transition:background .15s,border-color .15s;display:inline-flex}.safe-image__reveal-btn:hover,.safe-image__hide-btn:hover{background:#ffc86433;border-color:#ffc864b3}.safe-image__caption{border-top:1px solid var(--border-color,#ffffff12);border-radius:0 0 10px 10px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:4px 10px 5px;font-size:.7rem;display:flex}.safe-image__caption--trusted{color:#22c55ebf;background:#22c55e12}.safe-image__caption--warn{color:#eab308cc;background:#eab30812}.safe-image__domain{white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.safe-image__ext-link{color:inherit;opacity:.6;align-items:center;margin-left:auto;text-decoration:none;transition:opacity .15s;display:inline-flex}.safe-image__ext-link:hover{opacity:1}.safe-image--unverified{border-color:#eab30833}.mcp-tool-call{font-family:var(--font-mono);margin:12px 0;font-size:.85rem}.mcp-tool-call__header{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-secondary);background:#0000000a;border-radius:20px;align-items:center;padding:6px 12px;transition:all .2s;display:inline-flex}[data-theme=dark] .mcp-tool-call__header{background:#ffffff0d}.mcp-tool-call--completed .mcp-tool-call__header{opacity:.8;border:1px solid var(--border-color);background:0 0}.mcp-tool-call__header:hover{background:#00000014}[data-theme=dark] .mcp-tool-call__header:hover{background:#ffffff14}.mcp-tool-call__icon-wrapper{justify-content:center;align-items:center;margin-right:8px;display:flex}.mcp-tool-call__spinner{color:var(--text-tertiary);animation:2s linear infinite spin}.mcp-tool-call__icon-check{color:#10b981}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mcp-tool-call__title{align-items:center;gap:8px;margin-right:8px;display:flex}.mcp-tool-call__title span{font-weight:500}.mcp-tool-call__chevron{color:var(--text-tertiary);align-items:center;display:flex}.mcp-tool-call__content{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);max-width:fit-content;margin-top:8px;padding:12px}.mcp-tool-call__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mcp-tool-call__list-item{color:var(--text-secondary);align-items:center;gap:8px;display:flex}.mcp-tool-call__list-icon{color:var(--text-tertiary)}.chat-message{gap:var(--space-md);max-width:var(--max-width-chat);width:100%;padding:var(--space-sm) 0;transition:background var(--transition-fast);border-radius:var(--radius-lg);align-items:flex-start;margin:0 auto;display:flex}.chat-message:hover{background:var(--bg-hover)}.chat-message--user{flex-direction:row-reverse}.chat-message__avatar{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:relative}.chat-message__avatar--user{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary)}.chat-message__avatar--assistant{background:var(--gradient-accent);color:#fff;box-shadow:0 2px 8px #7c5cff40}.chat-message__avatar-pulse{border-radius:var(--radius-full);border:2px solid var(--accent);opacity:0;animation:2s ease-in-out infinite avatar-pulse;position:absolute;inset:-3px}@keyframes avatar-pulse{0%{opacity:.6;transform:scale(1)}50%{opacity:0;transform:scale(1.3)}to{opacity:0;transform:scale(1.3)}}.chat-message__body{flex:1;min-width:0;max-width:82%}.chat-message--user .chat-message__body{flex-direction:column;align-items:flex-end;display:flex}.chat-message__bubble{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-xl);line-height:var(--leading-relaxed);font-size:var(--text-base);word-break:break-word;position:relative}.chat-message--user .chat-message__bubble{background:var(--bg-secondary);border:1px solid var(--border);border-bottom-right-radius:var(--space-xs)}.chat-message--assistant .chat-message__bubble{border-bottom-left-radius:var(--space-xs);background:linear-gradient(135deg,#7c5cff14,#5a3aee0a);border:1px solid #7c5cff26}.chat-message--error .chat-message__bubble{background:linear-gradient(135deg,#f8717114,#f8717108);border-color:#f871714d}.chat-message__content p{margin-bottom:var(--space-md)}.chat-message__content p:last-child{margin-bottom:0}.chat-message__content a{color:var(--accent);text-underline-offset:2px;transition:text-decoration-color var(--transition-fast);-webkit-text-decoration:underline #7c5cff4d;text-decoration:underline #7c5cff4d}.chat-message__content a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.chat-message__content code{border-radius:var(--radius-sm);background:#7c5cff1a;border:1px solid #7c5cff26;padding:.15em .4em;font-family:Fira Code,monospace;font-size:.85em}.chat-message__content ul,.chat-message__content ol{margin:var(--space-sm) 0;padding-left:var(--space-xl)}.chat-message__content ul{list-style:outside}.chat-message__content ol{list-style:decimal}.chat-message__content li{margin-bottom:var(--space-xs);line-height:var(--leading-relaxed)}.chat-message__content li::marker{color:var(--accent)}.chat-message__content blockquote{margin:var(--space-md) 0;padding:var(--space-md) var(--space-lg);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);background:#7c5cff0d;font-style:italic}.chat-message__content h1,.chat-message__content h2,.chat-message__content h3,.chat-message__content h4{margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.chat-message__content h1{font-size:var(--text-xl)}.chat-message__content h2{font-size:var(--text-lg)}.chat-message__content h3{font-size:var(--text-md)}.chat-message__content h4{font-size:var(--text-base)}.chat-message__content hr{background:linear-gradient(90deg, transparent, var(--border), transparent);height:1px;margin:var(--space-lg) 0;border:none}.chat-message__content table{border-collapse:collapse;width:100%;margin:var(--space-md) 0;font-size:var(--text-sm)}.chat-message__content th,.chat-message__content td{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);text-align:left}.chat-message__content th{background:var(--bg-tertiary);font-weight:var(--font-semibold);color:var(--text-primary)}.chat-message__content tr:nth-child(2n) td{background:#ffffff05}.chat-message__content strong{font-weight:var(--font-semibold);color:var(--text-primary)}.chat-message__content em{color:var(--text-secondary)}.chat-message__typing{padding:var(--space-xs) 0;align-items:center;gap:5px;display:inline-flex}.chat-message__typing span{background:var(--accent);opacity:.4;border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite msg-typing}.chat-message__typing span:nth-child(2){animation-delay:.2s}.chat-message__typing span:nth-child(3){animation-delay:.4s}@keyframes msg-typing{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}.chat-message__cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:1.1em;margin-left:2px;animation:.8s ease-in-out infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.chat-message__meta{align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);padding:0 var(--space-xs);min-height:24px;display:flex}.chat-message__time{font-size:var(--text-2xs);color:var(--text-tertiary);flex-shrink:0}.chat-message__actions{gap:var(--space-2xs);opacity:0;transition:opacity var(--transition-fast);display:flex}.chat-message:hover .chat-message__actions{opacity:1}.chat-message__action-btn{padding:var(--space-xs);border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.chat-message__action-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.chat-message__action-btn--success{color:var(--success)!important}.chat-message__action-btn--favorite{color:var(--warning)!important}@media (width<=640px){.chat-message__body{max-width:90%}.chat-message__avatar{width:28px;height:28px}.chat-message__avatar svg{width:14px;height:14px}.chat-message__bubble{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.chat-message__actions{opacity:1}}.chat-message__thought{background-color:var(--bg-hover);border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:.75rem;overflow:hidden}.chat-message__thought-summary{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--bg);transition:background-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;font-weight:500;display:flex}.chat-message__thought-summary:hover{background-color:var(--bg-hover);color:var(--text)}.chat-message__thought-content{color:var(--text-muted);border-top:1px solid var(--border);max-height:300px;padding:.75rem;font-size:.9rem;font-style:italic;overflow-y:auto}.chat-message__thought-content p{margin-bottom:.5rem}.chat-message__thought-content p:last-child{margin-bottom:0}.chat-message__bubble img{border-radius:var(--radius-md);max-width:100%;height:auto;margin:var(--space-md) 0;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.chat-message__interrupted{flex-direction:column;gap:12px;display:flex}.chat-message__interrupted-alert{border-radius:var(--radius-md);color:#fca5a5;font-size:var(--text-sm);background:#ef44441a;border:1px solid #ef444433;flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.chat-message__interrupted-btn{border-radius:var(--radius-sm);color:#fecaca;font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);background:#ef444433;border:1px solid #ef44444d;align-items:center;gap:6px;padding:6px 12px;display:flex}.chat-message__interrupted-btn:hover{color:#fff;background:#ef44444d}.scroll-to-bottom{bottom:var(--space-xl);z-index:var(--z-dropdown);border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border);width:40px;height:40px;color:var(--text-secondary);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-to-bottom:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-glow);transform:translate(-50%)translateY(-2px)}.message-list{scroll-behavior:smooth;contain:content;flex:1;position:relative;overflow-y:auto}.message-list__inner{gap:var(--space-sm);padding:var(--space-xl) var(--space-xl) var(--space-3xl);max-width:calc(var(--max-width-chat) + var(--space-2xl) * 2);flex-direction:column;width:100%;min-height:100%;margin:0 auto;display:flex}@media (width<=640px){.message-list__inner{padding:var(--space-md) var(--space-md) var(--space-2xl)}}.chat-input-wrapper{padding:var(--space-md) var(--space-xl) var(--space-lg);max-width:calc(var(--max-width-chat) + var(--space-2xl) * 2);flex-shrink:0;width:100%;margin:0 auto}.chat-input{align-items:flex-end;gap:var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-md);transition:all var(--transition-normal);display:flex;position:relative}.chat-input:before{content:"";border-radius:var(--radius-xl);-webkit-mask-composite:xor;opacity:0;transition:opacity var(--transition-normal);pointer-events:none;background:linear-gradient(135deg,#0000,#7c5cff33,#0000);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.chat-input:focus-within{border-color:var(--accent);box-shadow:var(--shadow-md), 0 0 0 3px #7c5cff1a}.chat-input:focus-within:before{opacity:1}.chat-input--disabled{opacity:var(--opacity-disabled)}.chat-input__textarea{color:var(--text-primary);font-family:inherit;font-size:var(--text-base);resize:none;max-height:200px;padding:var(--space-sm);line-height:var(--leading-normal);background:0 0;border:none;outline:none;flex:1;transition:height .1s ease-out;overflow-y:hidden}.chat-input__textarea::placeholder{color:var(--text-tertiary);transition:color .3s}.chat-input__textarea:disabled{cursor:not-allowed}.chat-input__mic{border-radius:var(--radius-lg);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-input__mic:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.chat-input__mic--active{color:#ef4444;animation:1.5s infinite pulse-mic}@keyframes pulse-mic{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.chat-input--listening{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.chat-input__send{border-radius:var(--radius-lg);background:var(--gradient-accent);color:#fff;width:40px;height:40px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #7c5cff4d}.chat-input__send:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 4px 12px #7c5cff66}.chat-input__send:active:not(:disabled){transform:translateY(0)}.chat-input__send:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.chat-input__send--stop{background:var(--error);animation:1.5s ease-in-out infinite stop-pulse;box-shadow:0 2px 8px #f871714d}.chat-input__send--stop:hover:not(:disabled){background:#ef5350}@keyframes stop-pulse{0%,to{box-shadow:0 2px 8px #f871714d}50%{box-shadow:0 2px 16px #f8717180}}.chat-input__footer{align-items:center;gap:var(--space-md);margin-top:var(--space-sm);padding:0 var(--space-xs);display:flex}.chat-input__model{font-size:var(--text-2xs);color:var(--accent);font-weight:var(--font-medium);background:var(--accent-subtle);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-full);letter-spacing:.02em}.chat-input__counter{font-size:var(--text-2xs);color:var(--text-tertiary)}.chat-input__hint{font-size:var(--text-2xs);color:var(--text-tertiary);margin-left:auto}@media (width<=640px){.chat-input-wrapper{padding:var(--space-sm) var(--space-md) var(--space-md)}.chat-input__hint{display:none}.chat-input__send{width:44px;height:44px}}.empty-state{padding:var(--space-2xl);text-align:center;justify-content:center;align-items:center;gap:var(--space-3xl);flex-direction:column;flex:1;display:flex;overflow-y:auto}.empty-state__hero{align-items:center;gap:var(--space-lg);flex-direction:column;display:flex}.empty-state__icon-wrapper{justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.empty-state__icon-glow{border-radius:var(--radius-full);filter:blur(10px);background:radial-gradient(circle,#7c5cff4d,#0000 70%);position:absolute;inset:-10px}.empty-state__icon{border-radius:var(--radius-2xl);background:var(--gradient-accent);color:#fff;width:72px;height:72px;box-shadow:var(--shadow-glow-strong);z-index:1;justify-content:center;align-items:center;display:flex;position:relative}.empty-state__title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);letter-spacing:-.03em}.empty-state__subtitle{font-size:var(--text-sm);color:var(--text-secondary);max-width:400px;line-height:var(--leading-relaxed)}.empty-state__suggestions{gap:var(--space-md);grid-template-columns:repeat(2,1fr);width:100%;max-width:560px;display:grid}.empty-state__suggestion{align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:left;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);transition:all var(--transition-normal);min-height:70px;display:flex}.empty-state__suggestion:hover{border-color:var(--border-strong);background:var(--bg-tertiary);color:var(--text-primary);box-shadow:var(--shadow-md)}.empty-state__suggestion svg{flex-shrink:0;margin-top:2px}@media (width<=640px){.empty-state{padding:var(--space-xl);gap:var(--space-2xl)}.empty-state__suggestions{grid-template-columns:1fr}.empty-state__title{font-size:var(--text-xl)}}.settings-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);padding:var(--space-lg);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-2xl);width:100%;max-width:var(--max-width-modal);max-height:90vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow-y:auto}.settings-modal__header{padding:var(--space-xl) var(--space-xl) var(--space-sm);justify-content:space-between;align-items:center;display:flex}.settings-modal__title{font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:-.02em}.settings-modal__close{padding:var(--space-sm);border-radius:var(--radius-md);color:var(--text-tertiary);transition:all var(--transition-fast)}.settings-modal__close:hover{color:var(--text-primary);background:var(--bg-hover)}.settings-modal__hint{font-size:var(--text-xs);color:var(--text-tertiary);padding:0 var(--space-xl) var(--space-lg);line-height:var(--leading-relaxed)}.settings-modal__hint code{background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.9em}.settings-modal__body{padding:0 var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.settings-modal__section{gap:var(--space-sm);flex-direction:column;display:flex}.settings-modal__section-header{align-items:center;gap:var(--space-sm);display:flex}.settings-modal__section-icon{color:var(--accent);flex-shrink:0}.settings-modal__label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);flex:1}.settings-modal__label strong{color:var(--text-primary);font-weight:var(--font-semibold)}.settings-modal__input,.settings-modal__select,.settings-modal__textarea{background:var(--bg-primary);border:1px solid var(--border);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);color:var(--text-primary);transition:border-color var(--transition-fast);font-size:var(--text-sm);outline:none;width:100%}.settings-modal__input:focus,.settings-modal__select:focus,.settings-modal__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c5cff1a}.settings-modal__select-wrapper{position:relative}.settings-modal__select-wrapper:after{content:"▾";right:var(--space-lg);color:var(--text-tertiary);pointer-events:none;font-size:var(--text-sm);position:absolute;top:50%;transform:translateY(-50%)}.settings-modal__select{appearance:none;padding-right:var(--space-2xl)}.settings-modal__textarea{resize:vertical;min-height:80px;max-height:160px;line-height:var(--leading-normal);font-family:inherit}.settings-modal__textarea::placeholder{color:var(--text-tertiary)}.settings-modal__slider{appearance:none;background:var(--bg-tertiary);border-radius:var(--radius-full);outline:none;width:100%;height:6px}.settings-modal__slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;width:20px;height:20px;-webkit-transition:transform var(--transition-fast);transition:transform var(--transition-fast);border-radius:50%;box-shadow:0 2px 6px #7c5cff66}.settings-modal__slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.settings-modal__slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 6px #7c5cff66}.settings-modal__slider-labels{font-size:var(--text-2xs);color:var(--text-tertiary);justify-content:space-between;display:flex}.settings-modal__refresh{align-items:center;gap:var(--space-xs);font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);margin-left:auto;display:flex}.settings-modal__refresh:hover:not(:disabled){color:var(--accent);background:var(--accent-subtle)}.settings-modal__refresh:disabled{opacity:.5}.spin{animation:1s linear infinite spin}.settings-modal__provider-grid{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.settings-modal__provider-btn{align-items:center;gap:var(--space-2xs);padding:var(--space-md) var(--space-sm);border-radius:var(--radius-lg);background:var(--bg-primary);border:2px solid var(--border);cursor:pointer;transition:all var(--transition-normal);text-align:center;flex-direction:column;display:flex}.settings-modal__provider-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.settings-modal__provider-btn--active{border-color:var(--accent);background:var(--accent-subtle)}.settings-modal__provider-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.settings-modal__provider-desc{font-size:var(--text-2xs);color:var(--text-tertiary)}.settings-modal__alert{align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg);font-size:var(--text-xs);color:#d97706;background:#fbbf241a;border:1px solid #fbbf244d;display:flex}.settings-modal__alert svg{flex-shrink:0;margin-top:1px}.settings-modal__toggle-row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-top:1px solid var(--border-subtle);display:flex}.settings-modal__toggle-label{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);display:flex}.settings-modal__toggle-label svg{color:var(--accent)}.settings-modal__toggle{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border);width:44px;height:24px;transition:all var(--transition-normal);cursor:pointer;flex-shrink:0;position:relative}.settings-modal__toggle--active{background:var(--accent);border-color:var(--accent)}.settings-modal__toggle-thumb{width:18px;height:18px;transition:transform var(--transition-normal);box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.settings-modal__toggle--active .settings-modal__toggle-thumb{transform:translate(20px)}.settings-modal__footer{gap:var(--space-md);padding:var(--space-xl);border-top:1px solid var(--border-subtle);margin-top:var(--space-lg);display:flex}.settings-modal__btn{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:all var(--transition-normal);justify-content:center;align-items:center;gap:var(--space-sm);flex:1;min-height:44px;display:flex}.settings-modal__btn--primary{background:var(--gradient-accent);color:#fff;box-shadow:0 2px 8px #7c5cff4d}.settings-modal__btn--primary:hover{filter:brightness(1.1);box-shadow:0 4px 12px #7c5cff66}.settings-modal__btn--secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.settings-modal__btn--secondary:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}@media (width<=640px){.settings-modal{border-radius:0;height:100%;max-height:100vh}.settings-overlay{padding:0}}.confirm-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);padding:var(--space-lg);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:var(--space-2xl);width:100%;max-width:380px;box-shadow:var(--shadow-xl);text-align:center;position:relative}.confirm-dialog__close{top:var(--space-lg);right:var(--space-lg);padding:var(--space-xs);border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);position:absolute}.confirm-dialog__close:hover{color:var(--text-primary);background:var(--bg-hover)}.confirm-dialog__icon{border-radius:var(--radius-full);width:52px;height:52px;margin:0 auto var(--space-lg);justify-content:center;align-items:center;display:flex}.confirm-dialog__icon--default{background:var(--accent-subtle);color:var(--accent)}.confirm-dialog__icon--danger{background:var(--error-subtle);color:var(--error)}.confirm-dialog__icon--warning{background:var(--warning-subtle);color:var(--warning)}.confirm-dialog__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-sm)}.confirm-dialog__message{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-xl)}.confirm-dialog__actions{gap:var(--space-md);display:flex}.confirm-dialog__btn{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:all var(--transition-normal);flex:1;min-height:44px}.confirm-dialog__btn--cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.confirm-dialog__btn--cancel:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.confirm-dialog__btn--confirm{color:#fff}.confirm-dialog__btn--default{background:var(--gradient-accent)}.confirm-dialog__btn--default:hover{filter:brightness(1.1)}.confirm-dialog__btn--danger{background:var(--error)}.confirm-dialog__btn--danger:hover{background:#ef5350}.confirm-dialog__btn--warning{background:var(--warning);color:var(--text-inverse)}.confirm-dialog__btn--warning:hover{background:#f59e0b}.shortcuts-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);padding:var(--space-lg);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.shortcuts-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl)}.shortcuts-modal__header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.shortcuts-modal__header h2{font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:-.02em}.shortcuts-modal__close{padding:var(--space-sm);border-radius:var(--radius-md);color:var(--text-tertiary);transition:all var(--transition-fast)}.shortcuts-modal__close:hover{color:var(--text-primary);background:var(--bg-hover)}.shortcuts-modal__list{gap:var(--space-sm);flex-direction:column;display:flex}.shortcuts-modal__item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.shortcuts-modal__item:hover{background:var(--bg-hover)}.shortcuts-modal__desc{font-size:var(--text-sm);color:var(--text-secondary)}.shortcuts-modal__keys{align-items:center;gap:var(--space-2xs);display:flex}.shortcuts-modal__kbd{min-width:28px;height:26px;padding:0 var(--space-sm);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-primary);box-shadow:0 1px 0 var(--border);justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.shortcuts-modal__plus{font-size:var(--text-xs);color:var(--text-tertiary);margin:0 1px}.loading-screen{z-index:9999;background:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-screen__content{align-items:center;gap:var(--space-xl);flex-direction:column;display:flex}.loading-screen__icon{border-radius:var(--radius-2xl);background:var(--gradient-accent);color:#fff;width:80px;height:80px;box-shadow:var(--shadow-glow-strong);justify-content:center;align-items:center;display:flex}.loading-screen__bar-track{border-radius:var(--radius-full);background:var(--bg-tertiary);width:180px;height:3px;overflow:hidden}.loading-screen__bar-fill{border-radius:var(--radius-full);background:var(--gradient-accent);height:100%}.loading-screen__text{font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:.05em}.toast-container{top:var(--space-xl);right:var(--space-xl);z-index:var(--z-toast);gap:var(--space-sm);pointer-events:none;flex-direction:column;width:100%;max-width:380px;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:all;min-height:44px;display:flex}.toast--success{background:linear-gradient(135deg, var(--bg-elevated), #34d3990f);border-color:#34d3994d}.toast--success .toast__icon{color:var(--success)}.toast--error{background:linear-gradient(135deg, var(--bg-elevated), #f871710f);border-color:#f871714d}.toast--error .toast__icon{color:var(--error)}.toast--info{background:linear-gradient(135deg, var(--bg-elevated), #60a5fa0f);border-color:#60a5fa4d}.toast--info .toast__icon{color:var(--info)}.toast--warning{background:linear-gradient(135deg, var(--bg-elevated), #fbbf240f);border-color:#fbbf244d}.toast--warning .toast__icon{color:var(--warning)}.toast__icon{flex-shrink:0}.toast__message{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-normal);flex:1}.toast__close{padding:var(--space-xs);border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast__close:hover{color:var(--text-primary);background:var(--bg-hover)}@media (width<=640px){.toast-container{top:var(--space-md);right:var(--space-md);left:var(--space-md);max-width:none}}.project-modal{flex-direction:column;width:95%;max-width:500px;display:flex}.project-modal__header{border-bottom:1px solid var(--border);padding:16px 20px}.project-modal__icon{color:var(--accent)}.project-modal__body{padding:20px;overflow-y:auto}.project-modal__help{color:var(--text-muted);background:var(--surface-hover);border-left:3px solid var(--accent);border-radius:8px;margin-bottom:20px;padding:12px;font-size:.9rem}.project-modal__help strong{color:var(--text)}.project-modal__input,.project-modal__textarea{background:var(--surface-hover);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:8px;padding:10px 14px;font-family:inherit;font-size:.95rem;transition:all .2s}.project-modal__input:focus,.project-modal__textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 1px var(--accent);outline:none}.project-modal__footer{border-top:1px solid var(--border);background:var(--surface-hover);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.project-modal__actions{gap:12px;margin-left:auto;display:flex}.project-modal__btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.project-modal__btn--cancel{color:var(--text);background:0 0}.project-modal__btn--cancel:hover{background:var(--surface-active)}.project-modal__btn--save{background:var(--accent);color:#fff}.project-modal__btn--save:hover:not(:disabled){filter:brightness(1.1)}.project-modal__btn--save:disabled{opacity:.5;cursor:not-allowed}.project-modal__btn--danger{color:#ef4444;background:0 0;padding:8px 12px}.project-modal__btn--danger:hover{background:#ef44441a}.app-layout{width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;position:relative;overflow:hidden}.app-content{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.app-layout:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 20% 20%,#7c5cff14,#0000),radial-gradient(60% 40% at 80% 80%,#5a3aee0d,#0000),radial-gradient(circle,#7c5cff05,#0000 70%);animation:30s ease-in-out infinite alternate bg-shift;position:fixed;inset:0}@keyframes bg-shift{0%{background-position:0 0,100% 100%,50%}50%{background-position:30% 20%,70% 80%,60% 40%}to{background-position:10% 30%,90% 70%,40% 60%}}.skip-link{z-index:10000;background:var(--accent);color:#fff;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font-weight:var(--font-semibold);transition:top var(--transition-fast);text-decoration:none;position:fixed;top:-100%;left:50%;transform:translate(-50%)}.skip-link:focus{top:var(--space-md)}@media (width<=768px){.app-layout{flex-direction:column}}
