:root,:host{--fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin: normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display, inline-block);height:1em;overflow:visible;vertical-align:-.125em;width:var(--fa-width, 1.25em)}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0em}.svg-inline--fa.fa-sm{vertical-align:-.0714285714em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin, .3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin, .3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width, 2em);inset-inline-start:calc(-1 * var(--fa-li-width, 2em));inset-block-start:.25em}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:var(--fa-width, 1.25em)}.fa-layers .svg-inline--fa{top:0;right:0;bottom:0;left:0;margin:auto;position:absolute;transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color, #ff253a);border-radius:var(--fa-counter-border-radius, 1em);box-sizing:border-box;color:var(--fa-inverse, #fff);line-height:var(--fa-counter-line-height, 1);max-width:var(--fa-counter-max-width, 5em);min-width:var(--fa-counter-min-width, 1.5em);overflow:hidden;padding:var(--fa-counter-padding, .25em .5em);right:var(--fa-right, 0);text-overflow:ellipsis;top:var(--fa-top, 0);transform:scale(var(--fa-counter-scale, .25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom, 0);right:var(--fa-right, 0);top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom, 0);left:var(--fa-left, 0);right:auto;top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top, 0);right:var(--fa-right, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left, 0);right:auto;top:var(--fa-top, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:calc((6 / 10 - .375) * 1em)}.fa-xs{font-size:.75em;line-height:calc(1 / 12 * 1em);vertical-align:.125em}.fa-sm{font-size:.875em;line-height:calc(1 / 14 * 1em);vertical-align:calc((6 / 14 - .375) * 1em)}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:calc((6 / 20 - .375) * 1em)}.fa-xl{font-size:1.5em;line-height:calc(1 / 24 * 1em);vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-width-auto{--fa-width: auto}.fa-fw,.fa-width-fixed{--fa-width: 1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin, 2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(-1 * var(--fa-li-width, 2em));position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .0625em);box-sizing:var(--fa-border-box-sizing, content-box);padding:var(--fa-border-padding, .1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin, .3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin, .3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 2s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, steps(8))}@media(prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, 0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color, currentColor);opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color, currentColor);opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse, #fff)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-inverse{color:var(--fa-inverse, #fff)}.svg-inline--fa.fa-stack-1x{--fa-width: 1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width: 2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{top:0;right:0;bottom:0;left:0;margin:auto;position:absolute;z-index:var(--fa-stack-z-index, auto)}.key-input-wrapper[data-v-d2d666b8]{position:relative}.key-input-wrapper .glass-input[data-v-d2d666b8]{padding-right:48px}.key-toggle[data-v-d2d666b8]{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:16px;cursor:pointer;padding:6px;color:var(--text-tertiary);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent}.key-toggle[data-v-d2d666b8]:hover{color:var(--text-primary)}.api-base-wrapper[data-v-d2d666b8]{position:relative;display:flex;align-items:center}.api-base-icon[data-v-d2d666b8]{position:absolute;left:14px;color:var(--accent-color);font-size:14px;z-index:1;pointer-events:none}.api-base-input[data-v-d2d666b8]{padding-left:38px!important;padding-right:42px!important}.api-base-reset[data-v-d2d666b8]{position:absolute;right:8px;background:none;border:none;font-size:14px;cursor:pointer;padding:6px;color:var(--text-tertiary);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent}.api-base-reset[data-v-d2d666b8]:hover{color:var(--accent-color)}.test-result[data-v-d2d666b8]{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-md);font-size:14px}.test-success[data-v-d2d666b8]{background:#30d1581a;border:1px solid rgba(48,209,88,.2);color:var(--success-color)}.test-error[data-v-d2d666b8]{background:#ff453a1a;border:1px solid rgba(255,69,58,.2);color:var(--error-color)}.settings-info[data-v-d2d666b8]{display:flex;flex-direction:column;gap:10px;margin-top:16px}.info-item[data-v-d2d666b8]{display:flex;align-items:flex-start;gap:14px;padding:16px}.info-icon[data-v-d2d666b8]{font-size:18px;color:var(--accent-color);flex-shrink:0;margin-top:2px}.character-library[data-v-c9b1fef0]{max-width:1200px;margin:0 auto}.library-header[data-v-c9b1fef0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.header-left[data-v-c9b1fef0]{display:flex;align-items:center;gap:16px}.page-title[data-v-c9b1fef0]{font-size:24px;font-weight:600;display:flex;align-items:center;gap:10px;color:var(--text-primary)}.page-title svg[data-v-c9b1fef0]{color:var(--accent-color)}.back-btn[data-v-c9b1fef0]{display:none}.character-grid[data-v-c9b1fef0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.character-card[data-v-c9b1fef0]{padding:24px;display:flex;flex-direction:column;gap:16px}.char-card-header[data-v-c9b1fef0]{display:flex;align-items:center;gap:14px}.char-avatar-lg[data-v-c9b1fef0]{font-size:22px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#2997ff1a;color:var(--accent-color);border-radius:var(--radius-lg);flex-shrink:0}.char-card-info[data-v-c9b1fef0]{flex:1;min-width:0}.char-card-name[data-v-c9b1fef0]{font-size:17px;font-weight:600;margin-bottom:4px}.char-card-body[data-v-c9b1fef0]{flex:1}.char-description[data-v-c9b1fef0]{font-size:14px;color:var(--text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.char-traits[data-v-c9b1fef0]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.trait-tag[data-v-c9b1fef0]{padding:3px 10px;background:#2997ff14;border:1px solid rgba(41,151,255,.15);border-radius:var(--radius-full);font-size:12px;color:var(--accent-color);display:inline-flex;align-items:center;gap:4px}.trait-tag.removable[data-v-c9b1fef0]{cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.trait-tag.removable[data-v-c9b1fef0]:hover{background:#ff453a1a;border-color:#ff453a4d;color:var(--error-color)}.trait-tag.removable svg[data-v-c9b1fef0]{font-size:10px}.char-card-actions[data-v-c9b1fef0]{display:flex;gap:8px;padding-top:14px;border-top:1px solid var(--glass-border)}.empty-library[data-v-c9b1fef0]{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-library .empty-icon[data-v-c9b1fef0]{font-size:48px;color:var(--text-tertiary);opacity:.4}.empty-library h3[data-v-c9b1fef0]{font-size:20px;color:var(--text-secondary)}.traits-input-row[data-v-c9b1fef0]{display:flex;gap:8px}.traits-input-row .glass-input[data-v-c9b1fef0]{flex:1}.traits-list[data-v-c9b1fef0]{display:flex;flex-wrap:wrap;gap:6px}@media(max-width:900px){.back-btn[data-v-c9b1fef0]{display:inline-flex}.character-grid[data-v-c9b1fef0]{grid-template-columns:1fr}.library-header[data-v-c9b1fef0]{flex-direction:column;align-items:stretch}.header-left[data-v-c9b1fef0]{justify-content:space-between}}.char-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:24px;animation:charModalFadeIn .2s ease}.char-modal-box{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-2xl, 24px);box-shadow:var(--glass-shadow-lg);width:100%;max-width:540px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}@keyframes charModalFadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:600px){.char-modal-overlay{padding:16px;align-items:flex-end}.char-modal-box{max-height:90vh;border-radius:var(--radius-2xl, 24px) var(--radius-2xl, 24px) 0 0}}.task-history[data-v-7a0bbdd1]{max-width:900px;margin:0 auto}.library-header[data-v-7a0bbdd1]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.header-left[data-v-7a0bbdd1]{display:flex;align-items:center;gap:16px}.page-title[data-v-7a0bbdd1]{font-size:24px;font-weight:600;display:flex;align-items:center;gap:10px;color:var(--text-primary)}.page-title svg[data-v-7a0bbdd1]{color:var(--accent-color)}.back-btn[data-v-7a0bbdd1]{display:none}.task-list[data-v-7a0bbdd1]{display:flex;flex-direction:column;gap:12px}.task-card[data-v-7a0bbdd1]{padding:24px;display:flex;flex-direction:column;gap:14px}.task-card-header[data-v-7a0bbdd1]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.task-meta[data-v-7a0bbdd1]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.task-model[data-v-7a0bbdd1],.task-time[data-v-7a0bbdd1]{display:flex;align-items:center;gap:4px}.task-prompt[data-v-7a0bbdd1]{font-size:15px;color:var(--text-primary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-params[data-v-7a0bbdd1]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.param-tag[data-v-7a0bbdd1]{padding:4px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);font-size:12px;color:var(--text-secondary);display:inline-flex;align-items:center;gap:4px}.param-tag svg[data-v-7a0bbdd1]{font-size:10px;opacity:.7}.task-card-actions[data-v-7a0bbdd1]{display:flex;gap:8px;padding-top:14px;border-top:1px solid var(--glass-border)}.status-badge[data-v-7a0bbdd1]{font-size:13px;padding:4px 12px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:6px}.status-success[data-v-7a0bbdd1]{background:#30d1581a;color:var(--success-color)}.status-processing[data-v-7a0bbdd1]{background:#2997ff1a;color:var(--accent-color)}.status-error[data-v-7a0bbdd1]{background:#ff453a1a;color:var(--error-color)}.status-unknown[data-v-7a0bbdd1]{background:var(--glass-bg);color:var(--text-tertiary)}.empty-history[data-v-7a0bbdd1]{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-history .empty-icon[data-v-7a0bbdd1]{font-size:48px;color:var(--text-tertiary);opacity:.4}.empty-history h3[data-v-7a0bbdd1]{font-size:20px;color:var(--text-secondary)}@media(max-width:900px){.back-btn[data-v-7a0bbdd1]{display:inline-flex}.task-card-header[data-v-7a0bbdd1]{flex-direction:column;align-items:flex-start}.library-header[data-v-7a0bbdd1]{flex-direction:column;align-items:stretch}.header-left[data-v-7a0bbdd1]{justify-content:space-between}}.app-container[data-v-9417ec5a]{min-height:100vh;position:relative}.navbar[data-v-9417ec5a]{position:fixed;top:16px;left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:1200px;height:60px;border-radius:30px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;z-index:1000;background:var(--glass-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .4s ease}.logo-wrapper[data-v-9417ec5a]{position:relative;display:inline-flex;border-radius:100px;padding:2px;overflow:hidden;cursor:pointer;transform:translateZ(0);-webkit-tap-highlight-color:transparent;flex-shrink:0}.logo-wrapper[data-v-9417ec5a]:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,#4285f4,#ea4335,#fbbc05,#34a853,#4285f4);animation:spin-border-9417ec5a 4s linear infinite;z-index:0;transform-origin:center}@keyframes spin-border-9417ec5a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logo-inner[data-v-9417ec5a]{position:relative;background:var(--bg-surface);padding:8px 18px;border-radius:100px;display:flex;align-items:center;gap:8px;z-index:1;transition:background .4s ease}.brand-text[data-v-9417ec5a]{font-size:15px;font-weight:600;letter-spacing:.5px;color:var(--text-primary);white-space:nowrap}.nav-links[data-v-9417ec5a]{display:flex;gap:8px;align-items:center}.nav-link[data-v-9417ec5a]{text-decoration:none;color:var(--text-secondary);font-size:14px;font-weight:500;padding:8px 16px;border-radius:20px;transition:all .3s ease;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}.nav-link[data-v-9417ec5a]:hover{color:var(--text-primary);background:var(--glass-bg-hover)}.nav-link.active[data-v-9417ec5a]{color:var(--accent-color);background:#2997ff1a}.nav-link svg[data-v-9417ec5a]{font-size:13px}.nav-controls[data-v-9417ec5a]{display:flex;align-items:center;gap:8px}.control-btn[data-v-9417ec5a]{cursor:pointer;color:var(--text-primary);font-size:16px;opacity:.7;transition:opacity .2s,color .2s,background .2s;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#8080801a;-webkit-tap-highlight-color:transparent}.control-btn[data-v-9417ec5a]:hover{opacity:1;color:var(--accent-color);background:#80808033}.menu-toggle[data-v-9417ec5a]{display:none;font-size:18px;color:var(--text-primary);cursor:pointer;width:36px;height:36px;border-radius:50%;background:#8080801a;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.app-main[data-v-9417ec5a]{padding:96px 16px 100px;max-width:1400px;margin:0 auto}.generator-layout[data-v-9417ec5a]{display:grid;grid-template-columns:1fr 1fr;gap:20px}.controls-panel[data-v-9417ec5a]{display:flex;flex-direction:column;gap:16px}.control-section[data-v-9417ec5a]{padding:24px}.mode-tabs[data-v-9417ec5a]{display:flex;gap:8px}.mode-tab[data-v-9417ec5a]{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;-webkit-tap-highlight-color:transparent}.mode-tab[data-v-9417ec5a]:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.mode-tab.active[data-v-9417ec5a]{background:#2997ff1a;border-color:#2997ff4d;color:var(--accent-color)}.mode-tab svg[data-v-9417ec5a]{font-size:14px}.upload-zone[data-v-9417ec5a]{border:2px dashed var(--glass-border);border-radius:var(--radius-lg);padding:32px;text-align:center;cursor:pointer;transition:all .3s ease;min-height:150px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.upload-zone[data-v-9417ec5a]:hover{border-color:var(--accent-color);background:#2997ff08}.upload-zone.has-image[data-v-9417ec5a]{padding:8px;border-style:solid}.upload-placeholder[data-v-9417ec5a]{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary)}.upload-icon[data-v-9417ec5a]{font-size:36px;color:var(--accent-color);opacity:.6;margin-bottom:4px}.preview-image[data-v-9417ec5a]{position:relative;width:100%}.preview-image img[data-v-9417ec5a]{width:100%;border-radius:var(--radius-md);max-height:200px;object-fit:cover}.remove-image[data-v-9417ec5a]{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#000000b3;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;-webkit-tap-highlight-color:transparent}.generate-btn[data-v-9417ec5a]{position:sticky;bottom:80px;z-index:10}.preview-panel[data-v-9417ec5a]{position:sticky;top:96px;height:fit-content}.preview-card[data-v-9417ec5a]{padding:24px;min-height:400px}.preview-content[data-v-9417ec5a]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center}.empty-state[data-v-9417ec5a]{color:var(--text-tertiary);gap:12px}.empty-state .empty-icon[data-v-9417ec5a]{font-size:56px;opacity:.3}.empty-state h3[data-v-9417ec5a]{font-size:20px;color:var(--text-secondary)}.empty-state-mini[data-v-9417ec5a]{text-align:center;padding:16px}.empty-state-mini p[data-v-9417ec5a]{margin-bottom:12px}.generating-state[data-v-9417ec5a]{gap:16px}.gen-animation[data-v-9417ec5a]{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.gen-ring[data-v-9417ec5a]{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid transparent;border-top-color:var(--accent-color);border-radius:50%;animation:spin 1.5s linear infinite}.gen-ring.ring-2[data-v-9417ec5a]{top:10px;right:10px;bottom:10px;left:10px;border-top-color:#2997ff80;animation-duration:2s;animation-direction:reverse}.gen-ring.ring-3[data-v-9417ec5a]{top:20px;right:20px;bottom:20px;left:20px;border-top-color:#2997ff4d;animation-duration:2.5s}.gen-center-icon[data-v-9417ec5a]{font-size:24px;color:var(--accent-color);z-index:1}.gen-progress[data-v-9417ec5a]{width:200px;height:3px;background:var(--glass-bg);border-radius:var(--radius-full);overflow:hidden;margin-top:8px}.gen-progress-bar[data-v-9417ec5a]{height:100%;background:linear-gradient(90deg,var(--accent-color),rgba(41,151,255,.4));border-radius:var(--radius-full);animation:shimmer 2s ease-in-out infinite;background-size:200% 100%}.result-video[data-v-9417ec5a],.result-image[data-v-9417ec5a]{width:100%;border-radius:var(--radius-lg);overflow:hidden}.video-player[data-v-9417ec5a]{width:100%;border-radius:var(--radius-lg);max-height:420px;background:#000}.result-image img[data-v-9417ec5a]{width:100%;border-radius:var(--radius-lg)}.result-actions[data-v-9417ec5a]{display:flex;gap:8px;justify-content:center}.character-quick-list[data-v-9417ec5a]{display:flex;flex-wrap:wrap;gap:8px}.character-quick-item[data-v-9417ec5a]{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .3s ease;-webkit-tap-highlight-color:transparent}.character-quick-item[data-v-9417ec5a]:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.character-quick-item.active[data-v-9417ec5a]{background:#2997ff1a;border-color:#2997ff4d;color:var(--accent-color)}.character-quick-item svg[data-v-9417ec5a]{font-size:12px}.bottom-nav[data-v-9417ec5a]{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--glass-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--glass-border);padding:6px 12px;padding-bottom:max(6px,env(safe-area-inset-bottom));z-index:200;transition:background .4s ease}.nav-item[data-v-9417ec5a]{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;background:none;border:none;color:var(--text-tertiary);font-size:11px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.nav-item svg[data-v-9417ec5a]{font-size:18px;margin-bottom:2px}.nav-item.active[data-v-9417ec5a]{color:var(--accent-color)}.nav-item[data-v-9417ec5a]:active{transform:scale(.9)}@media(max-width:900px){.generator-layout[data-v-9417ec5a]{grid-template-columns:1fr}.preview-panel[data-v-9417ec5a]{position:relative;top:0}.nav-links[data-v-9417ec5a]{display:none}.menu-toggle[data-v-9417ec5a],.bottom-nav[data-v-9417ec5a]{display:flex}.app-main[data-v-9417ec5a]{padding-bottom:80px}.generate-btn[data-v-9417ec5a]{bottom:70px}.navbar[data-v-9417ec5a]{width:calc(100% - 24px);padding:0 14px;height:54px}.app-main[data-v-9417ec5a]{padding-top:84px}.brand-text[data-v-9417ec5a]{font-size:14px}}@media(max-width:900px){.nav-links[data-v-9417ec5a]{position:absolute;top:66px;left:0;width:100%;background:var(--bg-surface);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-direction:column;padding:16px;gap:4px;opacity:0;pointer-events:none;transition:all .3s ease;box-shadow:var(--glass-shadow-lg);display:flex}.nav-links.active[data-v-9417ec5a]{opacity:1;pointer-events:auto}.nav-link[data-v-9417ec5a]{padding:12px 16px;font-size:15px;border-radius:var(--radius-md)}}@media(max-width:480px){.control-section[data-v-9417ec5a]{padding:16px}.option-chips[data-v-9417ec5a]{gap:6px}.option-chip[data-v-9417ec5a]{padding:6px 12px;font-size:12px}.mode-tab[data-v-9417ec5a]{padding:10px;font-size:13px}}:root{--bg-base: #000000;--bg-surface: #111113;--bg-elevated: #1c1c1e;--text-primary: #f5f5f7;--text-secondary: #a1a1a6;--text-tertiary: #6e6e73;--accent-color: #2997ff;--accent-hover: #0a84ff;--success-color: #30d158;--warning-color: #ffd60a;--error-color: #ff453a;--glass-bg: rgba(255, 255, 255, .05);--glass-bg-hover: rgba(255, 255, 255, .08);--glass-bg-active: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(255, 255, 255, .18);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4);--glass-shadow-lg: 0 16px 48px rgba(0, 0, 0, .6);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .4s ease}[data-theme=light]{--bg-base: #f5f5f7;--bg-surface: #ffffff;--bg-elevated: #ffffff;--text-primary: #1d1d1f;--text-secondary: #86868b;--text-tertiary: #aeaeb2;--accent-color: #0066cc;--accent-hover: #0055b3;--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-bg-active: rgba(255, 255, 255, .95);--glass-border: rgba(0, 0, 0, .08);--glass-border-hover: rgba(0, 0, 0, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06);--glass-shadow-lg: 0 16px 48px rgba(0, 0, 0, .1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;outline:none}html{font-size:16px}body{background-color:var(--bg-base);color:var(--text-primary);overflow-x:hidden;line-height:1.5;min-height:100vh;transition:background-color .4s ease,color .4s ease}.ambient-glow{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;background:radial-gradient(circle at 15% 20%,rgba(41,151,255,.08) 0%,transparent 40%),radial-gradient(circle at 85% 80%,rgba(48,209,88,.05) 0%,transparent 40%)}[data-theme=light] .ambient-glow{background:radial-gradient(circle at 15% 20%,rgba(0,102,204,.05) 0%,transparent 40%),radial-gradient(circle at 85% 80%,rgba(52,168,83,.03) 0%,transparent 40%)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection{background:#2997ff4d;color:var(--text-primary)}.glass-panel{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:0 4px 20px #00000008;transition:all .4s ease}[data-theme=dark] .glass-panel{background:#ffffff08;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:none}.glass-panel-hover{transition:all .4s ease}.glass-panel-hover:hover{transform:translateY(-4px);box-shadow:0 10px 30px #00000014}[data-theme=light] .glass-panel-hover:hover{box-shadow:0 10px 30px #00000014}.glass-input{width:100%;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;outline:none;transition:all var(--transition-normal)}.glass-input::placeholder{color:var(--text-tertiary)}.glass-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #2997ff26}[data-theme=light] .glass-input{background:var(--bg-base)}[data-theme=light] .glass-input:focus{background:#fff;box-shadow:0 0 0 3px #0066cc1f}.glass-textarea{width:100%;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;outline:none;resize:vertical;min-height:100px;line-height:1.6;transition:all var(--transition-normal)}.glass-textarea::placeholder{color:var(--text-tertiary)}.glass-textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #2997ff26}[data-theme=light] .glass-textarea{background:var(--bg-base)}[data-theme=light] .glass-textarea:focus{background:#fff}.glass-select{width:100%;padding:12px 40px 12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%23a1a1a6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;transition:all var(--transition-normal)}.glass-select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #2997ff26}.glass-select option{background:var(--bg-surface);color:var(--text-primary)}[data-theme=light] .glass-select{background-color:var(--bg-base);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2386868b'/%3E%3C/svg%3E")}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:30px;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;border:none;transition:transform .2s var(--ease-out-expo),background .3s ease,box-shadow .3s ease,color .3s ease;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.96)}.btn-primary{background:var(--text-primary);color:var(--bg-base);box-shadow:0 6px 16px #00000026}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0003}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.btn-secondary:hover{background:var(--glass-bg-hover)}.btn-accent{background:var(--accent-color);color:#fff;box-shadow:0 6px 16px #2997ff4d}.btn-accent:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 10px 24px #2997ff59}.btn-danger{background:#ff453a1a;color:var(--error-color);border:1px solid rgba(255,69,58,.2)}.btn-danger:hover{background:#ff453a26}.btn-sm{padding:8px 16px;font-size:13px;border-radius:20px}.btn-lg{padding:16px 36px;font-size:16px}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;font-size:16px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn svg{font-size:14px}.option-chips{display:flex;flex-wrap:wrap;gap:8px}.option-chip{padding:8px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-normal);-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}.option-chip:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.option-chip.active{background:#2997ff1f;border-color:#2997ff59;color:var(--accent-color)}[data-theme=light] .option-chip{background:#fff}[data-theme=light] .option-chip.active{background:#0066cc14;border-color:#0066cc4d;color:var(--accent-color)}.option-chip svg{font-size:12px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:500;background:#2997ff1a;color:var(--accent-color);border:1px solid rgba(41,151,255,.2)}[data-theme=light] .badge{background:#0066cc0f;color:var(--accent-color);border-color:#0066cc26}.section-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:10px}.section-title>svg,.section-title>:not(.btn) svg{color:var(--accent-color);font-size:18px}.section-title .btn svg{color:inherit}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-hint{font-size:12px;color:var(--text-tertiary);margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:5000;animation:fadeIn .2s ease;padding:20px}.modal-content{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--glass-shadow-lg);width:100%;max-width:520px;max-height:80vh;overflow-y:auto;animation:scaleIn .3s var(--ease-out-expo);transition:background .4s ease}[data-theme=dark] .modal-content{background:#1c1c1ef2;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--glass-border)}.modal-header h3{font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.modal-header h3 svg{color:var(--accent-color)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:14px;-webkit-tap-highlight-color:transparent}.modal-close:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--glass-border)}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 20px;background:var(--bg-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:14px;box-shadow:var(--glass-shadow-lg);animation:slideInRight .3s var(--ease-out-expo),fadeOut .3s ease 2.7s;max-width:360px;display:flex;align-items:center;gap:10px;pointer-events:auto}[data-theme=dark] .toast{background:#1c1c1ef2}.toast-success{border-left:3px solid var(--success-color)}.toast-error{border-left:3px solid var(--error-color)}.toast-warning{border-left:3px solid var(--warning-color)}.toast-info{border-left:3px solid var(--accent-color)}.toast svg{font-size:16px}.toast-success svg{color:var(--success-color)}.toast-error svg{color:var(--error-color)}.toast-warning svg{color:var(--warning-color)}.toast-info svg{color:var(--accent-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn .4s ease both}.animate-slide-up{animation:slideUp .5s var(--ease-out-expo) both}.animate-scale-in{animation:scaleIn .3s var(--ease-out-expo) both}.spinner{width:18px;height:18px;border:2px solid var(--glass-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:36px;height:36px;border-width:3px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.w-full{width:100%}.text-center{text-align:center}.text-accent{color:var(--accent-color)}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:14px}.text-xs{font-size:12px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}@media(max-width:768px){.toast-container{top:auto;bottom:80px;right:12px;left:12px}.toast{max-width:100%}.modal-content{max-height:90vh;margin:0 8px}}
