:root{--glass-bg: rgba(250, 249, 245, .5);--glass-border: rgba(230, 223, 216, .55);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .03);--glass-blur: 20px;--panel-width: 380px;--panel-bg: rgba(250, 249, 245, .65);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--text-primary: #141413;--text-secondary: #3d3d3a;--text-tertiary: #6c6a64;--accent: #cc785c;--accent-hover: #b8664a;--accent-active: #a9583e;--danger: #ff3b30;--focus-ring: rgba(204, 120, 92, .25);--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--ease-out: cubic-bezier(.25, .1, .25, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--fast: .12s;--normal: .25s;--slow: .35s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font);font-size:14px;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(ellipse 80% 55% at 15% 20%,rgba(230,215,200,.3) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 85% 80%,rgba(240,225,210,.2) 0%,transparent 55%),radial-gradient(ellipse 40% 40% at 50% 50%,rgba(245,235,225,.12) 0%,transparent 50%),#faf9f5;background-attachment:fixed}#app{display:flex;height:100%;overflow:hidden}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.panel{position:relative;width:var(--panel-width);min-width:var(--panel-width);height:100%;display:flex;flex-direction:column;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-lg) var(--sp-xl);overflow-y:auto;background:var(--panel-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-right:1px solid rgba(230,223,216,.35);box-shadow:4px 0 32px #00000008;z-index:1}.panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(230,223,216,.3) 50%,transparent 95%)}.panel-header h1{font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.form-group{display:flex;flex-direction:column;gap:5px}.form-group>label,.drawer-toggle{font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase}.input-field{width:100%;padding:9px 12px;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;color:var(--text-primary);background:#ffffff80;backdrop-filter:blur(8px) saturate(1.2);-webkit-backdrop-filter:blur(8px) saturate(1.2);outline:none;transition:border-color var(--fast) ease,background var(--fast) ease,box-shadow var(--fast) ease}.input-field::placeholder{color:var(--text-tertiary)}.input-field:focus{border-color:var(--accent);background:#ffffffb3;box-shadow:0 0 0 3px var(--focus-ring)}.textarea-field{min-height:76px;resize:vertical;line-height:1.45}.segmented{display:flex;flex-wrap:wrap;gap:3px;padding:3px;background:#cc785c0f;border-radius:var(--radius-md);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.segmented button{flex:1;min-width:32px;padding:5px 8px;font-size:11px;font-family:inherit;font-weight:500;border:none;border-radius:9px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--fast) ease;white-space:nowrap}.segmented button:hover{color:var(--text-primary)}.segmented button.active{background:#ffffffd9;color:var(--text-primary);box-shadow:0 1px 3px #0000000f,0 0 0 .5px #ffffffe6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;font-size:13px;font-family:inherit;font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--fast) ease;user-select:none;-webkit-user-select:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 12px #0071e340}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 16px #0071e359}.btn-primary:active:not(:disabled){background:var(--accent-active);box-shadow:0 1px 6px #0071e333;transform:scale(.97)}.btn-secondary{background:#0000000a;color:var(--text-primary);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.06)}.btn-secondary:hover:not(:disabled){background:#00000012}.drawer-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 0;border:none;background:none;font-family:inherit;cursor:pointer;transition:color var(--fast) ease}.drawer-toggle:hover{color:var(--text-primary)}.drawer-toggle .chevron{font-size:9px;color:var(--text-tertiary);transition:transform var(--normal) ease}.chevron.open{transform:rotate(90deg)}.drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--normal) ease}.drawer.open{grid-template-rows:1fr}.drawer-inner{overflow:hidden;min-height:0}.model-grid{display:flex;flex-direction:column;gap:3px;padding:2px 0}.model-btn{padding:7px 10px;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-sm);background:#ffffff73;backdrop-filter:blur(8px) saturate(1.2);-webkit-backdrop-filter:blur(8px) saturate(1.2);font-size:12px;font-family:inherit;text-align:left;color:var(--text-primary);cursor:pointer;transition:all var(--fast) ease}.model-btn:hover{border-color:var(--accent);background:#0071e30a}.model-btn:active{transform:scale(.98)}.preview{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-lg);overflow:hidden;position:relative}.preview-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-md);color:var(--text-tertiary)}.preview-empty svg{width:64px;height:64px;opacity:.2}.preview-empty p{font-size:14px;font-weight:400}.preview-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 8px 48px #00000014,0 2px 8px #0000000a;opacity:0;transition:opacity var(--slow) var(--ease-out),transform var(--slow) var(--ease-out)}.preview-image.visible{opacity:1}.preview-image.scale-in{transform:scale(.92)}.preview-image.scale-in.visible{transform:scale(1)}.error-msg{color:var(--danger);font-size:12px;background:#ff3b300f;border:1px solid rgba(255,59,48,.1);padding:9px 12px;border-radius:var(--radius-sm);display:none;line-height:1.4}.error-msg.visible{display:block}.loading-skeleton{display:flex;flex-direction:column;align-items:center;gap:var(--sp-md)}.skeleton-box{width:300px;height:300px;border-radius:var(--radius-md);background:linear-gradient(110deg,#cc785c0a 30%,#cc785c14,#cc785c0a 70%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.filmstrip{position:absolute;bottom:0;left:0;right:0;display:flex;gap:8px;overflow-x:auto;padding:var(--sp-md) var(--sp-lg);background:linear-gradient(transparent,#faf9f5eb 35%)}.thumbnail{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;border:2px solid transparent;transition:border-color var(--fast) ease,transform var(--fast) ease;flex-shrink:0;box-shadow:0 2px 8px #0000000f}.thumbnail:hover{border-color:var(--accent);transform:translateY(-2px)}.thumbnail:active{transform:scale(.94)}.thumbnail.active{border-color:var(--accent);box-shadow:0 2px 12px #0071e326}.form-hint{font-size:11px;color:var(--text-tertiary)}.preview-actions{display:flex;gap:var(--sp-sm);margin-top:var(--sp-sm)}@media(max-width:768px){#app{flex-direction:column;height:auto;min-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel{width:100%;min-width:0;height:auto;max-height:none;overflow-y:visible;border-right:none;border-bottom:1px solid rgba(230,223,216,.4);box-shadow:0 4px 24px #0000000a;padding:var(--sp-md) var(--sp-md) var(--sp-lg);gap:var(--sp-sm)}.preview{width:100%;height:auto;min-height:280px;padding:var(--sp-md)}.panel-header h1{font-size:16px}.input-field{padding:11px 14px;font-size:14px}.textarea-field{min-height:90px}.segmented{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:0 0 auto;padding:8px 14px;font-size:12px;white-space:nowrap}.model-btn{padding:11px 14px;font-size:13px}.model-input-row .input-field{font-size:13px;padding:9px 12px}.btn-small{padding:7px 14px;font-size:12px}.btn-primary{padding:14px;font-size:15px;border-radius:var(--radius-md)}.btn-secondary{padding:8px 16px;font-size:13px}.form-hint{font-size:11px}.image-info{margin-top:var(--sp-sm)}.info-line{font-size:11px}.filmstrip{padding:var(--sp-sm) var(--sp-md);position:static;background:transparent;margin-top:var(--sp-sm)}.preview-empty svg{width:48px;height:48px}.lightbox-image{max-width:95vw;max-height:85vh}.lightbox-controls{bottom:20px;padding:5px 10px;gap:8px}.zoom-btn{width:36px;height:36px;font-size:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.preview-image{opacity:1}.drawer{transition:none}}@media(prefers-reduced-transparency:reduce){body{background:#faf9f5}.panel{background:#faf9f5f7;-webkit-backdrop-filter:none;backdrop-filter:none}.input-field{background:#faf9f5cc;-webkit-backdrop-filter:none;backdrop-filter:none}.model-btn{background:#faf9f5e6;-webkit-backdrop-filter:none;backdrop-filter:none}.segmented{background:#0000000f;-webkit-backdrop-filter:none;backdrop-filter:none}.btn-secondary{-webkit-backdrop-filter:none;backdrop-filter:none}}.lang-toggle{background:#0000000a;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-sm);padding:3px 10px;font-size:11px;font-weight:600;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:all var(--fast) ease;flex-shrink:0;letter-spacing:.02em}.lang-toggle:hover{background:#0071e30f;border-color:var(--accent);color:var(--accent)}.lang-toggle:active{transform:scale(.96)}.model-btn.active{border-color:var(--accent);background:#0071e314;color:var(--accent);font-weight:600}.model-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 2px;min-height:0}.model-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-family:inherit;background:#0000000a;border:1px solid rgba(0,0,0,.08);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all var(--fast) ease;white-space:nowrap}.model-chip:hover{border-color:var(--accent);background:#0071e30a}.model-chip.active{border-color:var(--accent);background:#0071e31a;color:var(--accent);font-weight:500}.model-chip-del{font-size:13px;line-height:1;color:var(--text-tertiary);cursor:pointer;padding:0 1px;transition:color var(--fast) ease}.model-chip-del:hover{color:var(--danger)}.model-input-row{display:flex;gap:6px;margin-top:8px}.model-input-row .input-field{flex:1;margin-top:0!important}.btn-small{padding:5px 12px;font-size:11px;border-radius:6px;flex-shrink:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm)}.panel-header h1{font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary);flex:1}.model-separator{height:1px;background:#0000000f;margin:4px 0}.model-btn{display:flex;align-items:center;justify-content:space-between;gap:6px}.model-btn-del{font-size:14px;line-height:1;color:var(--text-tertiary);cursor:pointer;padding:2px 3px;border-radius:3px;transition:color var(--fast) ease,background var(--fast) ease;flex-shrink:0}.model-btn-del:hover{color:var(--danger);background:#ff3b3014}.model-btn.active .model-btn-del{color:var(--accent)}.model-btn.active .model-btn-del:hover{color:var(--danger)}.image-info{margin-top:var(--sp-md);padding:var(--sp-sm) var(--sp-sm);background:#00000005;border-radius:var(--radius-sm);text-align:left}.info-line{font-size:11px;line-height:1.6;color:var(--text-primary);display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.info-label{color:var(--text-tertiary);font-weight:500;margin-right:2px;flex-shrink:0}.info-value{color:var(--text-secondary);margin-right:6px;word-break:break-all}.info-value.info-prompt{word-break:break-word}.info-sep{color:var(--text-tertiary);margin:0 3px;opacity:.4}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3);cursor:pointer;animation:lightbox-fadein .2s ease}@keyframes lightbox-fadein{0%{opacity:0}to{opacity:1}}.preview-actions{display:flex;justify-content:center}.lightbox-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1}.lightbox-image-wrap{display:flex;align-items:center;justify-content:center;transform:translate(0) scale(1);transition:transform .18s cubic-bezier(.25,.1,.25,1);cursor:grab;user-select:none;-webkit-user-select:none}.lightbox-image-wrap:active{cursor:grabbing}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 24px 80px #00000040;pointer-events:none}.lightbox-controls{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:6px 12px;background:#faf9f540;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(230,223,216,.3);border-radius:10px;box-shadow:0 4px 20px #0000001f;z-index:2;animation:lightbox-fadein .25s ease}.zoom-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:7px;background:#ffffff26;color:#fff;font-size:18px;font-family:-apple-system,system-ui,sans-serif;cursor:pointer;transition:background .12s ease,transform .12s ease}.zoom-btn:hover{background:#ffffff4d}.zoom-btn:active{transform:scale(.92)}.zoom-level{min-width:36px;text-align:center;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:#ffffffd9;letter-spacing:.02em}#main-image{cursor:pointer}
