*{margin:0;padding:0;box-sizing:border-box}:root{--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--transition-fast: .15s cubic-bezier(.25, .46, .45, .94);--transition-base: .25s cubic-bezier(.25, .46, .45, .94);--blur-light: 8px;--blur-medium: 12px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,SF Pro Display,Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(135deg,var(--tg-theme-bg-color, #f8f9fa) 0%,rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.5) 100%);color:var(--tg-theme-text-color, #000000);min-height:100vh;padding:16px;line-height:1.6;font-size:16px;font-weight:400;letter-spacing:-.01em;overflow-x:clip;overflow-y:scroll;position:relative}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% 80%,rgba(120,119,198,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(120,219,226,.1) 0%,transparent 50%);pointer-events:none;z-index:-1}.header{text-align:center;margin-bottom:28px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(var(--blur-light));-webkit-backdrop-filter:blur(var(--blur-light));padding:24px 20px;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);position:relative;overflow:hidden;transition:all var(--transition-base)}.logo{font-size:36px;font-weight:700;margin-bottom:12px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 4s ease-in-out infinite;letter-spacing:-.02em}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.header>div:nth-child(2){font-size:15px;font-weight:500;color:var(--tg-theme-subtitle-text-color, #666666);opacity:.8}.version{position:absolute;top:8px;right:12px;font-size:10px;font-weight:400;color:var(--tg-theme-hint-color, #8E8E93);opacity:.4;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;z-index:10}.balance{background:linear-gradient(135deg,var(--tg-theme-button-color, #007AFF) 0%,#0056CC 70%,#764ba2 100%);color:var(--tg-theme-button-text-color, #ffffff);padding:24px 20px;border-radius:var(--radius-xl);margin-bottom:28px;text-align:center;font-weight:600;font-size:19px;box-shadow:var(--shadow-lg),inset 0 1px #fff3;border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(var(--blur-light));-webkit-backdrop-filter:blur(var(--blur-light));position:relative;overflow:hidden;transition:all var(--transition-base);letter-spacing:-.01em;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:block}.balance:hover{transform:translateY(-2px);box-shadow:0 12px 40px #007aff66,0 4px 16px #00000026,inset 0 1px #ffffff4d}.balance:active{transform:translateY(-1px);box-shadow:0 6px 24px #007aff59,0 2px 8px #00000026,inset 0 1px #ffffff40}.balance:focus{outline:none;box-shadow:0 8px 32px #007aff4d,0 2px 8px #0000001a,inset 0 1px #fff3,0 0 0 3px #007aff4d}.tabs{display:flex;margin-bottom:28px;background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);backdrop-filter:blur(var(--blur-light));-webkit-backdrop-filter:blur(var(--blur-light));padding:4px;border-radius:var(--radius-lg);position:relative;box-shadow:var(--shadow-sm);border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.8)}.tab{flex:1;padding:12px 18px;min-width:0;border:none;border-radius:12px;background:transparent;color:var(--tg-theme-text-color, #000000);cursor:pointer;font-weight:500;font-size:15px;transition:all .3s cubic-bezier(.25,.46,.45,.94);position:relative;z-index:1;text-align:center;letter-spacing:-.01em;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tab:first-line{font-size:24px}.tab.active{background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.95);color:var(--tg-theme-text-color, #000000);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f,inset 0 1px #ffffff4d;transform:none;font-weight:600}.tab:not(.active):hover{background:rgba(var(--tg-theme-button-color, 0, 122, 255),.08);transform:translateY(-1px);box-shadow:0 2px 8px #0000000d}.tab:active{transform:translateY(0);transition-duration:.1s}.content{display:none;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:28px 24px;border-radius:20px;box-shadow:0 8px 32px #00000014,0 2px 8px #0000000a,inset 0 1px #fff3;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);animation:contentFadeIn .4s cubic-bezier(.25,.46,.45,.94);position:relative}.content.active{display:block}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(16px) scale(.98);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.form-group{margin-bottom:28px;position:relative}.floating-label{position:relative;margin-bottom:24px}.floating-label .input,.floating-label .textarea{width:100%;padding:18px 18px 10px;border:2px solid rgba(var(--tg-theme-secondary-bg-color, 232, 232, 232),.8);border-radius:16px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--tg-theme-text-color, #000000);font-size:16px;font-weight:400;letter-spacing:-.01em;transition:all .4s cubic-bezier(.25,.46,.45,.94);box-shadow:0 2px 8px #0000000a,inset 0 1px #ffffff1a;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.floating-label .label{position:absolute;left:18px;top:18px;font-size:16px;font-weight:400;color:var(--tg-theme-hint-color, #666666);pointer-events:none;transition:all .4s cubic-bezier(.25,.46,.45,.94);background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.95);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:0 6px;z-index:2;letter-spacing:-.01em}.floating-label .input:focus,.floating-label .textarea:focus,.floating-label .input:not(:placeholder-shown),.floating-label .textarea:not(:placeholder-shown){border-color:var(--tg-theme-button-color, #007AFF);box-shadow:0 0 0 4px #007aff1f,0 4px 16px #007aff14,inset 0 1px #fff3;transform:translateY(-1px)}.floating-label .input:focus+.label,.floating-label .textarea:focus+.label,.floating-label .input:not(:placeholder-shown)+.label,.floating-label .textarea:not(:placeholder-shown)+.label{top:-10px;font-size:12px;color:var(--tg-theme-button-color, #007AFF);font-weight:600;transform:scale(.95);box-shadow:0 2px 8px #fffc}.form-group.valid .input,.form-group.valid .textarea,.floating-label.valid .input,.floating-label.valid .textarea{border-color:#34c759;box-shadow:0 0 0 4px #34c7591f,0 2px 8px #34c75914,inset 0 1px #fff3;background:#34c75905}.form-group.valid .label,.floating-label.valid .label{color:#34c759}.form-group.invalid .input,.form-group.invalid .textarea,.floating-label.invalid .input,.floating-label.invalid .textarea{border-color:#ff3b30;box-shadow:0 0 0 4px #ff3b301f,0 2px 8px #ff3b3014,inset 0 1px #fff3;background:#ff3b3005;animation:inputShake .4s ease-in-out}@keyframes inputShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.form-group.invalid .label,.floating-label.invalid .label{color:#ff3b30}.validation-message{font-size:12px;font-weight:500;margin-top:8px;padding:6px 12px;border-radius:8px;transition:all .4s cubic-bezier(.25,.46,.45,.94);opacity:0;transform:translateY(-8px) scale(.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.validation-message:empty{display:none}.validation-message.show{opacity:1;transform:translateY(0) scale(1)}.validation-message.error{color:#ff3b30;background:#ff3b3014;border:1px solid rgba(255,59,48,.2)}.validation-message.success{color:#34c759;background:#34c75914;border:1px solid rgba(52,199,89,.2)}.label{display:block;margin-bottom:8px;font-weight:500;color:var(--tg-theme-hint-color, #666666);font-size:14px}.input{width:100%;padding:14px 16px;border:2px solid var(--tg-theme-secondary-bg-color, #e8e8e8);border-radius:12px;background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000);font-size:16px;transition:all .3s cubic-bezier(.2,0,0,1);box-shadow:0 1px 3px #0000000d}.input:focus{outline:none;border-color:var(--tg-theme-button-color, #007AFF);box-shadow:0 0 0 3px #007aff1a}.textarea{min-height:60px;max-height:200px;resize:none;font-family:inherit;overflow-y:auto;transition:height .2s ease}.select-container{position:relative}.select{width:100%;padding:14px 44px 14px 16px;border:2px solid rgba(120,119,198,.3);border-radius:12px;background:linear-gradient(135deg,#7877c614,#ff77c614);color:var(--tg-theme-text-color, #000000);font-size:16px;transition:all .3s cubic-bezier(.2,0,0,1);box-shadow:0 1px 3px #7877c61a;appearance:none;cursor:pointer}.select:focus{outline:none;border-color:#7877c699;box-shadow:0 0 0 3px #7877c626;background:linear-gradient(135deg,#7877c61f,#ff77c61f)}.select-container:after{content:"";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(120,119,198,.7);pointer-events:none;transition:all .3s ease}.select-container:has(.select:focus):after,.select-container:hover:after{border-top-color:#7877c6;transform:translateY(-50%) rotate(180deg)}.checkbox-wrapper{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;cursor:pointer}.checkbox-wrapper label{padding-top:1px}.checkbox{appearance:none;width:20px;height:20px;border:2px solid rgba(120,119,198,.3);border-radius:6px;background:linear-gradient(135deg,#7877c614,#ff77c614);cursor:pointer;transition:all .2s ease;position:relative}.checkbox:checked{background:linear-gradient(135deg,#7877c6,#ff77c6);border-color:#7877c6cc}.checkbox:checked:after{content:"";position:absolute;left:4px;top:1px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox:focus{outline:none;box-shadow:0 0 0 3px #007aff1a}.button{width:100%;padding:18px 20px;border:none;border-radius:16px;background:linear-gradient(135deg,var(--tg-theme-button-color, #007AFF) 0%,#0056CC 70%,#764ba2 100%);color:var(--tg-theme-button-text-color, #ffffff);font-size:16px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);margin-top:20px;box-shadow:0 8px 24px #007aff4d,0 2px 8px #0000001a,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.15);position:relative;overflow:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.button:hover:before{left:100%}.button:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 12px 32px #007aff66,0 4px 16px #00000026,inset 0 1px #ffffff4d}.button:active{transform:translateY(-1px) scale(.99);box-shadow:0 6px 24px #007aff4d,0 2px 8px #0000001a,inset 0 1px #fff3;transition-duration:.1s}.button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:0 2px 8px #0000001a}.button:disabled:before{display:none}.cost-info{background:linear-gradient(135deg,#007aff0d,#34c7590d);border:2px solid rgba(0,122,255,.2);padding:16px 20px;border-radius:12px;margin-bottom:20px;text-align:center;font-weight:600;font-size:16px;color:var(--tg-theme-text-color, #333333);box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.cost-info:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#007aff,#34c759,#ff9500,#007aff);background-size:200% 100%;animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%,to{background-position:200% 0}50%{background-position:-200% 0}}.generation-item{background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:20px;padding:24px;margin-bottom:20px;box-shadow:0 8px 32px #0000000f,0 2px 8px #0000000a,inset 0 1px #fff3;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);transition:all .4s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden}.generation-item:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 16px 48px #0000001a,0 4px 16px #0000000f,inset 0 1px #ffffff4d}.generation-status{font-weight:600;margin-bottom:8px}.status-pending{color:#ff9500}.status-processing{color:#007aff}.status-completed{color:#34c759}.status-failed{color:#ff3b30}.loading{display:none;position:fixed;z-index:999;inset:0;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.95);gap:20px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:loadingFadeIn .3s ease-out}@keyframes loadingFadeIn{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}}#history-loading{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;min-height:120px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.spinner{display:inline-block;width:40px;height:40px;border:4px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.3);border-radius:50%;border-top-color:var(--tg-theme-button-color, #007AFF);border-right-color:#764ba2;animation:spinEnhanced 1.2s cubic-bezier(.25,.46,.45,.94) infinite;position:relative}.spinner:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid transparent;border-top-color:rgba(var(--tg-theme-button-color, 0, 122, 255),.3);animation:spinEnhanced 2s linear infinite reverse}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinEnhanced{0%{transform:rotate(0);border-width:4px}50%{transform:rotate(180deg);border-width:2px}to{transform:rotate(360deg);border-width:4px}}.error{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;padding:18px 22px;border-radius:16px;display:none;box-shadow:0 8px 24px #ff3b304d,0 2px 8px #0000001a,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.15);font-weight:500;letter-spacing:-.01em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:messageSlideIn .4s cubic-bezier(.25,.46,.45,.94);position:fixed;top:20px;left:16px;right:16px;z-index:9999;overflow:hidden}.success{background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;padding:18px 22px;border-radius:16px;display:none;box-shadow:0 8px 24px #34c7594d,0 2px 8px #0000001a,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.15);font-weight:500;letter-spacing:-.01em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:messageSlideIn .4s cubic-bezier(.25,.46,.45,.94);position:fixed;top:20px;left:16px;right:16px;z-index:9999;overflow:hidden}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.file-input-wrapper{position:relative;display:inline-block;width:100%}.file-input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;z-index:2}.file-input-display{display:flex;align-items:center;gap:14px;padding:18px 20px;border:2px dashed rgba(120,119,198,.3);border-radius:16px;background:linear-gradient(135deg,#7877c614,#ff77c614);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--tg-theme-text-color, #000000);transition:all .4s cubic-bezier(.25,.46,.45,.94);cursor:pointer;position:relative;overflow:hidden;font-weight:500;letter-spacing:-.01em}.file-input-display:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(120,119,198,.1),transparent);transition:left .6s ease}.file-input-wrapper:hover .file-input-display,.file-input-wrapper:active .file-input-display{border-color:#7877c699;background:linear-gradient(135deg,#7877c61f,#ff77c61f);transform:translateY(-1px);box-shadow:0 4px 16px #7877c626}.file-input-wrapper:hover .file-input-display:before{left:100%}.file-input-icon{font-size:20px}.clear-files-btn{position:absolute;top:8px;right:8px;width:24px;height:24px;border:none;border-radius:50%;background:linear-gradient(135deg,#ff6b6b,#ff8e8e);color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:all .3s ease}.clear-files-btn:hover{background:linear-gradient(135deg,#ff5252,#ff7a7a);transform:scale(1.1)}.image-preview-container{display:flex;gap:12px;margin-top:12px;overflow-x:auto;overflow-y:hidden;padding:4px 0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(120,119,198,.3) transparent}.image-preview-container::-webkit-scrollbar{height:6px}.image-preview-container::-webkit-scrollbar-track{background:#7877c61a;border-radius:3px}.image-preview-container::-webkit-scrollbar-thumb{background:#7877c64d;border-radius:3px;transition:background .3s ease}.image-preview-container::-webkit-scrollbar-thumb:hover{background:#7877c680}.preview-item{position:relative;flex-shrink:0;width:120px;background:linear-gradient(135deg,#7877c614,#ff77c614);border:2px solid rgba(120,119,198,.2);border-radius:12px;overflow:hidden;scroll-snap-align:start;transition:all .3s cubic-bezier(.25,.46,.45,.94);animation:preview-slide-in .3s ease-out}@keyframes preview-slide-in{0%{opacity:0;transform:translate(-10px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.preview-item:hover{border-color:#7877c666;transform:translateY(-2px);box-shadow:0 4px 12px #7877c633}.preview-image{width:100%;height:80px;object-fit:cover;display:block}.preview-info{padding:6px 8px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.preview-filename{font-size:11px;font-weight:500;color:var(--tg-theme-text-color, #000000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.preview-filesize{font-size:10px;color:var(--tg-theme-hint-color, #666666)}.preview-remove-btn{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;background:linear-gradient(135deg,#ff3b30f2,#ff6b6bf2);color:#fff;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease;box-shadow:0 2px 6px #0003;opacity:0}.preview-item:hover .preview-remove-btn{opacity:1}.preview-remove-btn:hover{background:linear-gradient(135deg,#ff3b30,#ff5252);transform:scale(1.15);box-shadow:0 3px 8px #ff3b3066}.preview-remove-btn:active{transform:scale(.95)}@media(hover:none){.preview-remove-btn{opacity:1}}.form-hint{color:var(--tg-theme-hint-color, #666);font-size:12px;margin-top:6px;line-height:1.4;display:flex;justify-content:space-between;align-items:center}.char-counter{font-weight:500;color:var(--tg-theme-text-color, #000000);opacity:.7;transition:color .3s ease}.char-counter.warning{color:#ff8c00}.char-counter.danger{color:#ff4757}@media(max-width:480px){body{padding:12px 8px;font-size:15px}.header{padding:20px 16px;margin-bottom:20px}.logo{font-size:32px;margin-bottom:10px}.balance{padding:20px 16px;margin-bottom:20px;font-size:17px}.tabs{margin-bottom:20px;padding:3px}.tab{padding:10px 14px;font-size:14px;border-radius:10px}.content{padding:20px 16px}.floating-label .input,.floating-label .textarea{padding:16px;font-size:16px}.floating-label .label{left:16px;top:16px}.floating-label .input:focus+.label,.floating-label .textarea:focus+.label,.floating-label .input:not(:placeholder-shown)+.label,.floating-label .textarea:not(:placeholder-shown)+.label{top:-8px}.button{padding:16px 18px;font-size:15px}.generation-item{padding:18px;margin-bottom:16px}.file-input-display{padding:16px 18px}.tab,.button,.file-input-display{min-height:44px}}@media(max-width:768px)and (orientation:landscape){body{padding:8px}.header,.balance{padding:16px;margin-bottom:16px}.tabs{margin-bottom:16px}.content{padding:20px}}@media(min-width:768px){body{max-width:480px;margin:0 auto;padding:20px}.header{padding:28px 24px}.balance{padding:28px 24px;font-size:20px}.content{padding:32px 28px}.chat-input-container{margin:0 -28px}.generation-item{padding:28px}}html{scroll-behavior:smooth}*:focus-visible{outline:3px solid var(--tg-theme-button-color, #007AFF);outline-offset:3px;border-radius:var(--radius-sm)}.button.loading{color:transparent;position:relative;pointer-events:none}.button.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fffc;animation:spin 1s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,var(--tg-theme-secondary-bg-color, #f0f0f0) 25%,rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.5) 50%,var(--tg-theme-secondary-bg-color, #f0f0f0) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{width:100%;padding:24px;margin-bottom:20px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(var(--blur-light));-webkit-backdrop-filter:blur(var(--blur-light));border-radius:var(--radius-xl);border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);box-shadow:var(--shadow-sm)}.skeleton-line{height:16px;margin-bottom:12px;border-radius:var(--radius-sm)}.content{transition:all .3s cubic-bezier(.2,0,0,1)}.form-group{transition:all .2s ease}.floating-label .input:focus,.floating-label .textarea:focus{transform:translateY(-1px)}.loading{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.generation-item{position:relative;overflow:hidden}.generation-item:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(var(--tg-theme-button-color, 0, 122, 255),.05),transparent);transition:left .6s}.generation-item:hover:before{left:100%}.cost-info{position:relative;transition:all .3s ease}.cost-info:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000014}@media(prefers-color-scheme:dark){body:before{background:radial-gradient(circle at 20% 80%,rgba(120,119,198,.15) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.15) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(120,219,226,.15) 0%,transparent 50%)}.floating-label .label{background:rgba(var(--tg-theme-bg-color, 28, 28, 30),.95)}.file-input-display{border-style:solid;border-color:rgba(var(--tg-theme-secondary-bg-color, 44, 44, 46),.8);background:rgba(var(--tg-theme-bg-color, 28, 28, 30),.8)}.cost-info{background:linear-gradient(135deg,#007aff26,#34c75926)}.header,.content,.generation-item{background:rgba(var(--tg-theme-bg-color, 28, 28, 30),.9);border-color:rgba(var(--tg-theme-secondary-bg-color, 44, 44, 46),.6)}.tabs{background:rgba(var(--tg-theme-secondary-bg-color, 44, 44, 46),.6)}.tab.active{background:rgba(var(--tg-theme-bg-color, 28, 28, 30),.95)}.floating-label .input,.floating-label .textarea,.input,.textarea,.select{background:rgba(var(--tg-theme-bg-color, 28, 28, 30),.9);border-color:rgba(var(--tg-theme-secondary-bg-color, 44, 44, 46),.8)}}.spinner{will-change:transform}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tab,.button,.generation-item,.floating-label .input,.floating-label .textarea,.file-input-display,.header,.balance,.content{transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner{animation:none;border:4px solid var(--tg-theme-secondary-bg-color, #f0f0f0);border-top-color:var(--tg-theme-button-color, #007AFF)}}.generation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.generation-title{font-size:16px}.generation-prompt{margin:12px 0;font-size:14px;line-height:1.4;color:var(--tg-theme-text-color, #000000)}.generation-meta{font-size:12px;color:var(--tg-theme-hint-color, #666);margin-bottom:12px}.generation-actions{margin-top:12px}.download-link{color:var(--tg-theme-link-color, #007AFF);text-decoration:none;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border-radius:8px;background:#007aff1a;transition:all .2s ease;width:100%;box-sizing:border-box}.download-link:hover{background:#007aff26;transform:translateY(-1px)}.content-preview{margin:12px 0;display:flex;justify-content:center}.image-thumbnail{width:100%;max-width:200px;height:120px;border-radius:12px;overflow:hidden;background:var(--tg-theme-secondary-bg-color, #f0f0f0);position:relative}.image-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.image-thumbnail:hover img{transform:scale(1.05)}.image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;color:var(--tg-theme-hint-color, #666);background:var(--tg-theme-secondary-bg-color, #f0f0f0)}.video-thumbnail{width:100%;max-width:200px;height:120px;border-radius:12px;background:linear-gradient(135deg,#007aff,#0056cc);position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.video-thumbnail:hover{transform:translateY(-2px);box-shadow:0 8px 24px #007aff4d}.video-play-overlay{position:absolute;width:40px;height:40px;background:#ffffffe6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:#007aff;z-index:2;transition:all .2s ease}.video-thumbnail:hover .video-play-overlay{background:#fff;transform:scale(1.1)}.video-placeholder{font-size:32px;color:#ffffffb3}.generation-progress{margin:12px 0}.progress-bar{width:100%;height:6px;background:var(--tg-theme-secondary-bg-color, #e8e8e8);border-radius:3px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.progress-fill.pending{width:25%;background:linear-gradient(90deg,#ff9500,#ffb340);animation:pulse 2s ease-in-out infinite}.progress-fill.processing{width:75%;background:linear-gradient(90deg,#007aff,#40a9ff,#007aff);background-size:200% 100%;animation:progress-shimmer 1.5s ease-in-out infinite}.progress-text{font-size:12px;color:var(--tg-theme-hint-color, #666);text-align:center;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes progress-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(max-width:480px){.image-thumbnail,.video-thumbnail{max-width:150px;height:90px}.video-play-overlay{width:32px;height:32px;font-size:14px}.video-placeholder,.image-placeholder{font-size:24px}}.floating-action-button{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--tg-theme-button-color, #007AFF) 0%,#0056CC 100%);color:var(--tg-theme-button-text-color, #ffffff);font-size:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #007aff66;border:2px solid rgba(255,255,255,.1);transition:all .3s cubic-bezier(.2,0,0,1);z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-user-select:none;user-select:none;outline:none}.floating-action-button:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 8px 24px #007aff80}.floating-action-button:active{transform:translateY(0) scale(.95)}.bottom-sheet-overlay{position:fixed;inset:0;background:#00000080;z-index:998;opacity:0;transition:opacity .3s ease;display:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--tg-theme-bg-color, #ffffff);border-radius:20px 20px 0 0;z-index:999;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,0,0,1);max-height:80vh;overflow:hidden;display:none;box-shadow:0 -4px 24px #0000001a}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-content{padding:0 20px 20px;overflow-y:auto;max-height:80vh}.bottom-sheet-header{text-align:center;padding:12px 0 20px;position:sticky;top:0;background:var(--tg-theme-bg-color, #ffffff);z-index:1}.bottom-sheet-handle{width:36px;height:4px;background:var(--tg-theme-hint-color, #c6c6c8);border-radius:2px;margin:0 auto 16px}.bottom-sheet-header h3{margin:0;font-size:18px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.bottom-sheet-header h4{margin:24px 0 12px;font-size:16px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.quick-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.quick-action-btn{padding:16px 12px;border:none;border-radius:12px;background:linear-gradient(135deg,#7877c61a,#ff77c61a);color:var(--tg-theme-text-color, #000000);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center;display:flex;align-items:center;justify-content:center;min-height:60px;outline:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.quick-action-btn:hover{background:linear-gradient(135deg,#7877c626,#ff77c626);transform:translateY(-1px);box-shadow:0 4px 12px #7877c626}.quick-action-btn:active{transform:translateY(0) scale(.98);background:linear-gradient(135deg,#7877c633,#ff77c633)}.quick-action-btn:focus{outline:none}.recent-prompts-section,.prompt-templates-section{margin-bottom:24px}.recent-prompts-list,.template-list{display:flex;flex-direction:column;gap:8px}.recent-prompt-btn,.template-btn{padding:12px 16px;border:none;border-radius:10px;background:linear-gradient(135deg,#7877c614,#ff77c614);color:var(--tg-theme-text-color, #000000);cursor:pointer;transition:all .2s ease;text-align:left;display:flex;align-items:center;gap:12px;width:100%;justify-content:flex-start;outline:none;-webkit-tap-highlight-color:transparent}.recent-prompt-btn:hover,.template-btn:hover{background:linear-gradient(135deg,#7877c61f,#ff77c61f);transform:translateY(-1px);box-shadow:0 2px 8px #7877c61a}.recent-prompt-btn:active,.template-btn:active{transform:translateY(0) scale(.98);background:linear-gradient(135deg,#7877c626,#ff77c626)}.prompt-type{font-size:18px;flex-shrink:0}.prompt-text{flex:1;font-size:14px;line-height:1.3;color:var(--tg-theme-text-color, #000000)}.template-btn{font-size:14px;font-weight:500;justify-content:flex-start}.template-section{margin-bottom:20px}.template-section h5{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--tg-theme-subtitle-text-color, #666666);text-transform:uppercase;letter-spacing:.5px}.no-recent-prompts{text-align:center;color:var(--tg-theme-hint-color, #666);font-size:14px;padding:20px;font-style:italic}@media(max-width:480px){.floating-action-button{bottom:16px;right:16px;width:52px;height:52px;font-size:22px}.bottom-sheet{max-height:85vh}.bottom-sheet-content{padding:0 16px 16px}.quick-actions-grid{gap:8px}.quick-action-btn{padding:12px 8px;font-size:13px;min-height:56px}.clear-files-btn{width:20px;height:20px;font-size:10px;right:8px}}.header-controls{display:flex;gap:12px;margin-bottom:28px}.header-controls .balance{flex:1;margin-bottom:0}.history-btn{background:linear-gradient(135deg,rgba(var(--tg-theme-button-color, 102, 126, 234),.9),#764ba2cc);color:var(--tg-theme-button-text-color, #ffffff);padding:24px 28px;border-radius:20px;border:1px solid rgba(255,255,255,.15);font-size:24px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);box-shadow:0 8px 32px #667eea4d,0 2px 8px #0000001a;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.history-btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px #667eea66,0 4px 16px #00000026}.history-btn:active{transform:translateY(-1px)}.history-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:flex-end;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-content{position:relative;width:100%;max-height:80vh;background:var(--tg-theme-bg-color, #ffffff);border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.25,.46,.45,.94)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 20px;border-bottom:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6)}.modal-header h2{font-size:20px;font-weight:600;margin:0}.modal-close{background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);border:none;width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.9);transform:rotate(90deg)}.history-filters{display:flex;flex-shrink:0;gap:8px;padding:16px 20px;border-bottom:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.4);overflow-x:auto}.filter-btn{padding:8px 16px;border-radius:12px;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);background:transparent;color:var(--tg-theme-text-color, #000000);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap}.filter-btn:hover{background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.3)}.filter-btn.active{background:var(--tg-theme-button-color, #007AFF);color:var(--tg-theme-button-text-color, #ffffff);border-color:var(--tg-theme-button-color, #007AFF)}.modal-body{flex:1;overflow-y:auto;padding:16px 20px 32px;min-height:30vh}.text-response{margin-bottom:28px;padding:24px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 8px 32px #00000014,0 1px 2px #00000005;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6)}.response-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.response-model{font-size:14px;font-weight:600;color:var(--tg-theme-hint-color, #8E8E93)}.response-actions{display:flex;gap:8px}.action-btn{padding:8px 14px;background:rgba(var(--tg-theme-button-color, 0, 122, 255),.1);border:1px solid rgba(var(--tg-theme-button-color, 0, 122, 255),.3);border-radius:12px;color:var(--tg-theme-button-color, #007AFF);font-size:13px;font-weight:500;cursor:pointer;transition:all .3s ease}.action-btn:hover{background:rgba(var(--tg-theme-button-color, 0, 122, 255),.2)}.action-btn:active{transform:scale(.95)}.response-content{font-size:15px;line-height:1.6;color:var(--tg-theme-text-color, #000000);padding:16px;background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.3);border-radius:12px;margin-bottom:16px;white-space:pre-wrap;word-wrap:break-word}.response-content p{margin-bottom:12px}.response-content p:last-child{margin-bottom:0}.response-content code{background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);padding:2px 6px;border-radius:4px;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:13px}.response-content pre{background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);padding:12px;border-radius:8px;overflow-x:auto;margin:12px 0}.response-content pre code{background:none;padding:0}.response-meta{display:flex;gap:16px;font-size:13px;color:var(--tg-theme-hint-color, #8E8E93)}.chat-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 4px 16px #0000000f;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6)}.chat-header .form-group{flex:1;margin:0}.chat-messages{flex:1;padding:16px;margin-bottom:16px;min-height:300px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.5);border-radius:16px;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.6);display:flex;flex-direction:column;gap:12px}.chat-message{max-width:80%;padding:12px 16px;border-radius:16px;word-wrap:break-word;white-space:pre-wrap;line-height:1.5;font-size:15px;animation:messageSlideIn .2s ease}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end;background:var(--tg-theme-button-color, #007AFF);color:var(--tg-theme-button-text-color, #FFFFFF);border-bottom-right-radius:4px}.chat-message.assistant{align-self:flex-start;background:rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.8);color:var(--tg-theme-text-color, #000000);border-bottom-left-radius:4px}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;height:100%;opacity:.7}.chat-empty-state .empty-icon{font-size:48px;margin-bottom:8px}.chat-empty-state .empty-title{font-size:18px;font-weight:600;color:var(--tg-theme-text-color, #000000)}.chat-empty-state .empty-hint{font-size:14px;color:var(--tg-theme-hint-color, #8E8E93)}.chat-input-container{position:sticky;margin:0 -24px;bottom:0;background:var(--tg-theme-bg-color, #ffffff);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 16px;border-radius:20px;box-shadow:0 -4px 20px #0000001f,0 -1px 4px #0000000f;border:1px solid rgba(var(--tg-theme-secondary-bg-color, 240, 240, 240),.8)}.chat-input-wrapper{display:flex;align-items:flex-end;gap:12px}.chat-input{flex:1;min-height:40px;max-height:120px;padding:10px 14px;font-size:15px;line-height:1.5;border:1px solid rgba(var(--tg-theme-hint-color, 142, 142, 147),.3);border-radius:16px;background:rgba(var(--tg-theme-bg-color, 255, 255, 255),.9);color:var(--tg-theme-text-color, #000000);resize:none;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,SF Pro Display,Roboto,Helvetica,Arial,sans-serif;transition:all .2s ease}.chat-input:focus{outline:none;border-color:var(--tg-theme-button-color, #007AFF);box-shadow:0 0 0 3px rgba(var(--tg-theme-button-color, 0, 122, 255),.1)}.chat-input::placeholder{color:var(--tg-theme-hint-color, #8E8E93)}.chat-send-btn{min-width:40px;height:40px;padding:0;background:var(--tg-theme-button-color, #007AFF);border:none;border-radius:50%;color:var(--tg-theme-button-text-color, #FFFFFF);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.chat-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(var(--tg-theme-button-color, 0, 122, 255),.3)}.chat-send-btn:active{transform:scale(.95)}.chat-send-btn .send-icon{display:inline-block;transform:translate(1px)}.chat-input-hint{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:0 4px;font-size:12px;color:var(--tg-theme-hint-color, #8E8E93)}@media(max-width:768px){.header-controls{gap:8px;margin-bottom:20px}.history-btn{padding:20px 24px;font-size:20px}.modal-content{max-height:90vh}.response-header{flex-direction:column;align-items:flex-start}.response-actions{width:100%;justify-content:flex-start}}
