:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-primary:#172033;--text-secondary:#4d5f79;--text-muted:#7f8ba3;--border-soft:#dae1ece0;--surface-card:#ffffffeb;--surface-soft:#f4f7fb;--surface-highlight:linear-gradient(180deg, #fffffffa, #f7fafeeb);--navy-strong:#132544;--navy-strong-hover:#193154;--amber-strong:#ffb24a;--amber-soft:#ffb24a24;--danger-strong:#c64230;--danger-soft:#e256441a;--radius-sm:12px;--radius-md:16px;--radius-lg:22px;--font-caption:12px;--font-body:14px;--font-subtitle:18px;--font-title:28px;background:radial-gradient(circle at 0 0,#ffde9185,#0000 28%),radial-gradient(circle at 100% 0,#85c4ff4d,#0000 24%),linear-gradient(#f3f6fb 0%,#edf2f9 100%);font-family:Avenir Next,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}button{outline:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:0 0 0 3px #2756992e}#root{min-height:100vh}a{color:inherit}.app-shell{height:100vh;color:var(--text-primary);overflow:hidden}.auth-shell{grid-template-columns:minmax(320px,460px) minmax(320px,420px);justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:28px;display:grid}.auth-hero,.auth-card,.panel-card,.batch-row,.empty-state{border-radius:var(--radius-lg);background:var(--surface-card);border:1px solid #dbe2ede6;box-shadow:0 14px 34px #13253f14}.auth-hero,.auth-card{padding:28px}.auth-hero{background:linear-gradient(135deg,#ffd77857,#fffffff0),#fffffffa}.auth-hero-mark,.brand-mark{color:#1e1608;background:linear-gradient(135deg,#ffce52,#ff9254);place-items:center;font-weight:700;display:grid;box-shadow:0 12px 28px #ffa34938}.auth-hero-mark{border-radius:22px;width:68px;height:68px;margin-bottom:18px;font-size:34px}.auth-hero h1,.auth-card h1,.topbar h1,.result-header h2{font-size:var(--font-title);margin:6px 0 0;line-height:1.08}.auth-hero p,.auth-loading-card p,.panel-copy,.empty-state p{color:var(--text-secondary);line-height:1.7}.auth-loading-card{text-align:center;max-width:560px;margin:0 auto}.auth-mode-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.auth-tab,.batch-actions button,.ghost-button,.choice-pill,.compare-close,.compare-nav,.compare-filmstrip-list button,.history-ref-item,.lightbox-close,.lightbox-filmstrip button,.lightbox-nav,.lightbox-toolbar button,.user-panel button,.tile-action-button,.mini-copy-button,.pagination-pages button,.pagination-jump button{cursor:pointer;border:none;transition:transform .2s,box-shadow .2s,background .2s,color .2s,opacity .2s}.auth-tab{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:999px;padding:10px 14px;font-weight:700}.auth-tab.is-active{background:var(--navy-strong);color:#fff;box-shadow:0 10px 20px #13254433}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form label,.compact-grid label{flex-direction:column;gap:8px;display:flex}.auth-form span,.compact-grid span,.section-head span,.batch-compact-info span,.batch-prompt label,.history-ref-block label,.user-meta small,.pagination-size span,.pagination-jump span{font-size:var(--font-caption);color:var(--text-muted)}.auth-form input,.form-card textarea,.form-card select,.pagination-jump input,.pagination-size select{width:100%;color:var(--text-primary);font:inherit;background:#fdfefe;border:1px solid #12233d1f;border-radius:14px}.auth-form input,.form-card select,.pagination-jump input,.pagination-size select{padding:12px 14px}.auth-error,.failure-box,.empty-box{color:var(--text-secondary);background:#f6f8fb;border-radius:14px;padding:14px 16px}.auth-error,.failure-box{background:#e2564414}.auth-error,.failure-box strong,.slot-failure strong{color:#c64230}.topbar{border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:linear-gradient(135deg,#ffffffe6,#f7f9fff5),radial-gradient(circle at 0 0,#ffd25633,#0000 40%);align-items:center;gap:8px;padding:4px 12px;display:grid;position:sticky;top:0}.simple-topbar{grid-template-columns:minmax(0,1fr) auto auto}.brand-block{align-items:center;gap:0;display:flex}.brand-mark{letter-spacing:0;border-radius:12px;width:58px;height:38px;font-size:14px}.section-tag{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin:0;font-size:11px}.user-panel{justify-content:flex-end;align-items:center;gap:10px;display:flex}.view-switcher{gap:8px;margin-right:4px;display:flex}.view-switcher button{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:999px;padding:8px 12px;font-weight:700}.view-switcher button.is-active{background:var(--navy-strong);color:#fff;box-shadow:0 10px 20px #1325442e}.user-panel button{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:999px;padding:8px 12px;font-weight:700}.user-name{color:var(--text-primary);font-weight:700}.stats-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.compact-stats div{white-space:nowrap;background:#ffffffb8;border:1px solid #dbe2edd6;border-radius:12px;justify-content:center;align-items:center;gap:4px;min-width:76px;padding:7px 10px;display:flex}.compact-stats strong{font-size:16px}.compact-stats span{font-size:11px}.workspace{grid-template-columns:420px minmax(0,1fr);align-items:start;gap:14px;height:calc(100vh - 54px);padding:12px 14px 14px;display:grid;overflow:hidden}.control-panel{align-self:stretch;height:100%;min-height:0;overflow:hidden}.control-panel .form-card{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;padding-right:12px;overflow-y:auto}.panel-card{padding:16px}.form-card{flex-direction:column;gap:14px;display:flex}.panel-brief{flex-direction:column;gap:4px;display:flex}.panel-brief .panel-copy{margin:0}.form-section{flex-direction:column;gap:10px;display:flex}.control-surface{border-radius:var(--radius-md);background:var(--surface-highlight);border:1px solid #dbe2eddb;padding:14px;box-shadow:inset 0 1px #fffc}.project-selector-section,.model-select-section,.batch-preset-section{gap:12px}.project-selector-section.compact-grid,.model-select-section.compact-grid{grid-template-columns:1fr}.project-select-label,.field-stack{flex-direction:column;gap:8px;min-width:0;display:flex}.project-select-label>span,.model-select-section .field-stack>span{display:none}.reference-upload-zone{border-radius:18px;margin:0;padding:0}.reference-upload-zone.is-active{background:#ffb24a14;box-shadow:0 0 0 2px #ffb24a52}.model-select-section{border-radius:var(--radius-md);background:var(--surface-highlight);border:1px solid #dbe2eddb;padding:10px 12px}.project-select,.model-select-section select{border-radius:var(--radius-sm);width:100%;min-height:40px;font-size:var(--font-body);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#fff,#f7f9fc);padding:9px 34px 9px 12px;font-weight:600}.batch-preset-section{border-radius:var(--radius-md);background:var(--surface-highlight);border:1px solid #dbe2eddb;padding:12px}.batch-preset-row,.batch-preset-actions{gap:8px;display:flex}.batch-preset-row{align-items:center}.batch-preset-row select{flex:1}.batch-preset-actions{flex-wrap:wrap}.section-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.section-head h3,.empty-state h3{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.section-head span{color:var(--text-muted);font-size:11px;font-weight:600}.upload-box{background:#fff;border:1px dashed #234a7d3d;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:150px;padding:18px 16px;display:flex}.upload-box.is-compact{border-radius:14px;gap:6px;min-height:0;padding:8px}.upload-surface{text-align:center;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;min-height:112px;display:flex}.upload-box.is-compact .upload-surface{min-height:42px}.upload-surface.is-active{border-radius:14px;box-shadow:0 0 0 3px #ffc54c29}.upload-surface>strong,.upload-surface>span{display:none}.visually-hidden-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload-select-panel{border-radius:var(--radius-sm);color:#355176;cursor:pointer;width:min(100%,220px);min-height:64px;font:inherit;box-shadow:none;background:linear-gradient(135deg,#e9f0fb,#dce7f6);border:1px solid #7491bf3d;padding:10px 14px}.upload-box.is-compact .upload-select-panel{width:100%;min-height:40px;padding:8px 12px}.upload-hint-inline{text-align:center;color:var(--text-muted);font-size:12px;line-height:1.5;display:block}.upload-box.is-compact .upload-hint-inline{display:none}.paste-drop-strip{width:100%;min-height:34px;color:var(--text-muted);cursor:text;font:inherit;background:linear-gradient(#f8fbffeb,#f1f6fcd1);border:1px dashed #7491bf52;border-radius:12px;font-size:12px}.paste-drop-strip:hover,.paste-drop-strip:focus-visible{color:var(--text-secondary);border-color:#ffb24ab8;outline:none;box-shadow:0 0 0 3px #ffb24a24}.reference-grid{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;gap:8px;display:grid}.reference-card{cursor:grab;background:#f6f8fb;border-radius:12px;flex-direction:column;padding:5px;transition:box-shadow .18s,opacity .18s,transform .18s;display:flex;position:relative;overflow:hidden}.reference-card:active{cursor:grabbing}.reference-card.is-dragging{opacity:.46;transform:scale(.96)}.reference-card.is-drop-swap{box-shadow:0 0 0 2px #ffb24ad6,0 12px 22px #ffb24a33}.reference-card.is-insert-before:before,.reference-card.is-insert-after:after{content:"";z-index:3;background:#ff9d57;border-radius:999px;width:4px;position:absolute;top:9px;bottom:9px;box-shadow:0 0 0 3px #ff9d5733}.reference-card.is-insert-before:before{left:2px}.reference-card.is-insert-after:after{right:2px}.reference-order-badge{z-index:2;color:#fff;pointer-events:none;background:#132544d1;border-radius:999px;padding:4px 7px;font-size:11px;line-height:1;position:absolute;top:9px;left:9px}.reference-preview-button,.image-preview-button{cursor:pointer;background:0 0;border:none;padding:0}.reference-card img,.history-ref-item img,.image-preview-button img,.loading-skeleton{aspect-ratio:1;border-radius:12px;width:100%}.reference-card img,.history-ref-item img{object-fit:contain;background:#fff}.image-preview-button img,.loading-skeleton{object-fit:contain;background:#f8fafc}.reference-actions{opacity:0;pointer-events:none;justify-content:flex-end;display:flex;position:absolute;top:10px;right:10px;transform:scale(.92)}.reference-card:hover .reference-actions,.reference-card:focus-within .reference-actions{opacity:1;pointer-events:auto;transform:scale(1)}.reference-actions .ghost-button:first-child{display:none}.reference-delete-button,.reference-actions .ghost-button.danger{color:#fff;background:#e03a3af5;border-radius:999px;width:22px;min-width:22px;height:22px;padding:0;font-size:0;box-shadow:0 8px 18px #e03a3a38}.reference-delete-button:before,.reference-actions .ghost-button.danger:before{content:"×";text-align:center;font-size:15px;line-height:22px;display:block}.ghost-button{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:999px;padding:8px 12px;font-weight:700}.ghost-button.danger{background:var(--danger-soft);color:var(--danger-strong)}.form-card textarea{resize:vertical;min-height:180px;max-height:620px;font-size:var(--font-body);padding:12px 14px;line-height:1.55}.compact-grid,.choice-row{gap:10px;display:grid}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-grid>.section-head{grid-column:1/-1}.choice-row{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-pill{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:14px;padding:10px 0;font-weight:700}.choice-pill.is-active{background:var(--amber-soft);color:#8a5300;box-shadow:inset 0 0 0 1px #ffb24a85}.primary-button{color:#1f1a10;font:inherit;cursor:pointer;background:linear-gradient(135deg,#ffc54c,#ff9d57);border:none;border-radius:18px;margin-top:auto;padding:15px;font-weight:700;box-shadow:0 12px 22px #ffa05138}.generate-sticky-action{z-index:4;flex:none;margin-top:2px;position:sticky;bottom:0}.primary-button:disabled{opacity:.75;cursor:progress}.result-panel{flex-direction:column;gap:12px;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.simple-result-header{padding:2px 4px 0}.batch-list{flex-direction:column;flex:1;gap:14px;min-height:0;padding-right:6px;display:flex;overflow-y:auto}.batch-row,.empty-state{padding:12px 14px}.batch-meta,.batch-title,.batch-actions,.batch-compact-info,.inline-label-row,.pagination-bar,.pagination-size,.pagination-pages,.pagination-jump{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.batch-meta{justify-content:space-between;margin-bottom:6px}.batch-title strong{font-size:15px}.status-dot{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-generating{color:#1f63d0;background:#3a87ff24}.status-completed{color:#15834d;background:#25b46e24}.status-partial_failed,.status-failed{color:#c64230;background:#e2564424}.batch-actions button{color:var(--text-primary);background:#eef3f9;border-radius:12px;padding:7px 11px}.batch-compact-info{margin-bottom:8px}.compact-prompt{margin-bottom:10px}.admin-form-label{flex-direction:column;gap:8px;display:flex}.admin-form-label input{width:100%;color:var(--text-primary);font:inherit;background:#fdfefe;border:1px solid #12233d1f;border-radius:14px;padding:12px 14px}.admin-form-label small{color:var(--text-muted);font-size:12px;line-height:1.45}.admin-checkbox{color:var(--text-secondary);align-items:center;gap:10px;display:flex}.admin-checkbox input{width:16px;height:16px}.admin-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.admin-summary-card{background:#f6f8fb;border-radius:16px;flex-direction:column;gap:6px;padding:14px;display:flex}.admin-summary-card span{color:var(--text-muted);font-size:12px}.admin-summary-card strong{font-size:24px}.admin-users-panel{flex-direction:column;gap:14px;display:flex}.prompt-insights-panel{flex-direction:column;gap:12px;display:flex}.prompt-insights-list{gap:8px;display:grid}.prompt-insight-item{background:#f6f8fb;border-radius:14px;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px;display:grid}.prompt-insight-rank{color:#fff;background:#132544;border-radius:999px;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.prompt-insight-main{min-width:0}.prompt-insight-main strong{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.5;display:-webkit-box;overflow:hidden}.prompt-insight-main span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.prompt-insight-main span,.prompt-insight-metrics span{color:var(--text-muted);font-size:12px}.prompt-insight-metrics{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-users-header strong{color:var(--text-primary);font-size:16px;font-weight:700}.admin-users-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-users-table{flex-direction:column;gap:8px;display:flex}.admin-users-row{color:var(--text-secondary);background:#f6f8fb;border-radius:14px;grid-template-columns:1.25fr .75fr .7fr .65fr .75fr .8fr 1.3fr .65fr .8fr .8fr 1fr auto;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:grid}.admin-users-row-head{color:var(--text-muted);background:0 0;padding:0 4px;font-size:12px}.admin-user-name{color:var(--text-primary);font-weight:700}.admin-limit-field{flex-direction:column;gap:4px;display:flex}.admin-limit-field small{color:var(--text-muted);font-size:11px}.admin-limit-input{width:100%;min-width:0;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:10px;padding:8px 10px}.admin-row-actions{flex-direction:column;gap:8px;display:flex}.admin-row-action{white-space:nowrap;padding:7px 10px}.dialog-backdrop{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c121d8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog-card{background:#fffffff5;border:1px solid #dbe2ede6;border-radius:18px;width:min(420px,100%);padding:22px;box-shadow:0 24px 64px #0f172a33}.dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.dialog-header h2{margin:4px 0 0;font-size:22px;line-height:1.2}.password-dialog .auth-submit{margin-top:2px}.admin-empty-state{margin-top:8px}.prompt-inline-row{align-items:center;gap:8px;min-height:28px;display:flex}.prompt-inline-label{color:var(--text-muted);flex:none;font-size:13px}.prompt-inline-text{color:var(--text-secondary);word-break:break-word;flex:auto;min-width:0;line-height:1.5}.mini-copy-button{background:var(--surface-soft);color:var(--text-secondary);font-size:var(--font-caption);border-radius:999px;padding:8px 12px;font-weight:700}.prompt-copy-button{flex:none;min-width:38px;padding:5px 9px}.compact-ref-block{margin-bottom:10px}.history-ref-list{grid-template-columns:repeat(auto-fit,minmax(84px,92px));gap:8px;margin-top:6px;display:grid}.history-ref-item{text-align:left;background:#f6f8fb;border-radius:14px;padding:6px}.history-ref-item span{color:var(--text-muted);margin-top:6px;font-size:11px;display:block}.history-ref-list-compact{grid-template-columns:repeat(auto-fit,minmax(68px,74px))}.history-ref-list-compact .history-ref-item{padding:5px}.history-ref-list-compact .history-ref-item img{border-radius:10px}.history-ref-list-compact .history-ref-item span{margin-top:4px;font-size:10px}.output-grid{justify-content:flex-start;gap:12px;display:grid}.output-grid-1,.output-grid-2,.output-grid-3,.output-grid-4{grid-template-columns:repeat(4,minmax(0,188px))}.image-tile{background:#f6f8fb;border-radius:18px;flex-direction:column;gap:8px;min-height:212px;padding:8px;display:flex}.image-tile span{color:var(--text-secondary);font-size:12px}.image-tile.is-loading{justify-content:space-between}.image-tile.is-failed{background:linear-gradient(#fff8f7,#fffdfd);border:1px solid #c6423038;justify-content:center}.image-tile-media{flex-direction:column;gap:7px;display:flex}.image-preview-frame{position:relative}.image-tile-badges{flex-wrap:wrap;gap:4px;display:flex}.image-tile-badges span{color:var(--text-secondary);background:#edf3f8;border-radius:999px;padding:4px 6px;font-size:10px;line-height:1}.image-preview-button{width:100%;display:block}.tile-download-bar{opacity:0;pointer-events:none;flex-wrap:nowrap;justify-content:center;gap:3px;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:8px;left:6px;right:6px;transform:translateY(6px)}.image-tile:hover .tile-download-bar,.image-tile:focus-within .tile-download-bar{opacity:1;pointer-events:auto;transform:translateY(0)}.tile-action-button{color:#fff;white-space:nowrap;background:#132544db;border-radius:999px;min-width:0;padding:6px;font-size:10px;line-height:1;box-shadow:0 10px 18px #1325443d}.loading-skeleton{background:linear-gradient(90deg,#e6ebf2,#f7f9fb,#e6ebf2) 0 0/200% 100%;animation:1.2s linear infinite shimmer}.slot-failure{flex-direction:column;flex:1;justify-content:center;gap:8px;padding:10px;display:flex}.slot-failure p{color:var(--text-secondary);word-break:break-word;margin:0;font-size:12px;line-height:1.55}.batch-workspace{grid-template-columns:minmax(340px,430px) minmax(0,1fr)}.batch-project-panel{gap:14px}.batch-project-actions,.batch-table-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-project-actions .ghost-button{flex:auto}.batch-running-summary{background:#fff5e1b8;border:1px solid #ffb24a47;border-radius:14px;gap:8px;padding:12px;display:grid}.batch-running-summary strong{color:var(--text-primary);font-size:13px}.batch-running-summary div{flex-wrap:wrap;gap:6px;display:flex}.batch-running-summary span{max-width:100%;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:999px;padding:5px 8px;font-size:12px;overflow:hidden}.batch-result-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.history-project-filter{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.history-project-filter select{min-width:170px;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:12px;padding:8px 10px}.batch-table-tools>span{color:var(--text-secondary);background:#eef3f9;border-radius:999px;padding:5px 9px;font-size:12px}.batch-tool-group{align-items:center;gap:8px;display:inline-flex}.batch-tool-group span{color:var(--text-muted);font-size:12px}.batch-tool-group select{min-width:128px;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:10px;padding:7px 10px}.batch-table-shell{background:#ffffffeb;border:1px solid #dbe2ede6;border-radius:18px;flex:1;min-height:0;overflow:auto}.batch-grid-table{min-width:max-content}.batch-grid-row{grid-template-columns:96px repeat(var(--batch-ref-columns,1), 132px) minmax(260px, 360px) 190px 92px 92px 70px 92px repeat(2, 118px) repeat(4, 118px);align-items:stretch;display:grid}.batch-grid-row>*{background:#fff;border-bottom:1px solid #dbe2edcc;border-right:1px solid #dbe2edcc;min-height:104px;padding:8px}.batch-grid-head>*{z-index:2;min-height:66px;color:var(--text-secondary);background:#f6f8fb;font-size:12px;font-weight:700;position:sticky;top:0}.batch-sticky-cell{z-index:3;background:#f8fafc;position:sticky;left:0}.batch-grid-head .batch-sticky-cell{z-index:4}.batch-ref-head{flex-direction:column;gap:6px;display:flex}.batch-filter-head{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.batch-filter-head strong{color:var(--text-primary);font-size:13px}.batch-filter-head .mini-copy-button{text-align:center;width:100%;padding-inline:9px}.batch-head-actions{flex-wrap:wrap;gap:6px;display:flex}.batch-ref-head strong{color:var(--text-primary);font-size:13px}.batch-row-index{flex-direction:column;justify-content:center;gap:8px;display:flex}.batch-row-index strong{font-size:18px}.batch-row-switch{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.batch-row-switch input{width:16px;height:16px}.batch-row-status{width:fit-content;color:var(--text-secondary);background:#eef3f9;border-radius:999px;padding:4px 7px;font-size:11px;display:inline-flex}.batch-row-status.is-generating,.batch-row-status.is-queued{color:#1f63d0;background:#3a87ff24}.batch-row-status.is-completed{color:#15834d;background:#25b46e24}.batch-row-status.is-failed,.batch-row-status.is-partial_failed{color:#c64230;background:#e2564424}.batch-ref-cell{cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;flex-direction:column;gap:6px;display:flex;position:relative}.batch-ref-preview{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.batch-ref-cell.is-range-selected{background:#ffb24a14;box-shadow:inset 0 0 0 1px #ffb24aa6}.batch-ref-cell.is-selected{background:#ffb24a1f;box-shadow:inset 0 0 0 2px #ffb24a}.batch-ref-cell.is-fill-preview{background:#3a87ff14;box-shadow:inset 0 0 0 1px #3a87ff8c}.batch-ref-cell.is-drop-target{background:#ffb24a14;box-shadow:inset 0 0 0 2px #ffb24a,0 12px 24px #ffb24a29}.batch-ref-cell:focus-visible{box-shadow:inset 0 0 0 2px #1325446b}.batch-ref-media{z-index:1;pointer-events:none;position:absolute;top:12px;right:12px}.batch-ref-drag-handle{pointer-events:auto;color:#fff;cursor:grab;background:#132544d6;border:none;border-radius:999px;padding:4px 8px;font-size:11px}.batch-ref-drag-handle:active{cursor:grabbing}.batch-ref-cell img,.batch-output-button img,.batch-output-loading{aspect-ratio:1;object-fit:contain;background:#f8fafc;border-radius:10px;width:100%}.batch-stop-button{color:#c64230;background:#e256441a;border-radius:18px;width:100%;padding:15px}.batch-ref-cell span{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:11px;overflow:hidden}.batch-empty-cell,.batch-empty-row{color:var(--text-muted);place-items:center;display:grid}.batch-prompt-input,.batch-grid-row select,.batch-grid-row input{width:100%;color:var(--text-primary);font:inherit;background:#fdfefe;border:1px solid #12233d1f;border-radius:10px}.batch-prompt-input{resize:vertical;min-height:86px;font-size:var(--font-body);padding:11px 12px;line-height:1.55}.batch-prompt-input[readonly]{cursor:cell;-webkit-user-select:none;user-select:none}.batch-field-cell{background:#fff;border-radius:12px;align-items:stretch;transition:box-shadow .18s,background .18s;display:flex;position:relative}.batch-field-cell.is-editing .batch-prompt-input{cursor:text;-webkit-user-select:text;user-select:text}.batch-field-cell.is-range-selected{background:#ffb24a14;box-shadow:inset 0 0 0 1px #ffb24aa6}.batch-field-cell.is-selected{background:#ffb24a1f;box-shadow:inset 0 0 0 2px #ffb24a}.batch-field-cell.is-fill-preview{background:#3a87ff14;box-shadow:inset 0 0 0 1px #3a87ff8c}.batch-field-cell .batch-field-input{flex:1}.batch-fill-handle{cursor:crosshair;z-index:3;background:#ffb24a;border:none;border-radius:2px;width:10px;height:10px;position:absolute;bottom:-4px;right:-4px;box-shadow:0 0 0 1px #fff}.batch-fill-handle:hover{background:#ff9e1a}.batch-grid-row select,.batch-grid-row input{align-self:start;padding:9px 10px}.batch-row-generate{border-radius:var(--radius-sm);background:var(--navy-strong);color:#fff;cursor:pointer;font-size:var(--font-caption);border:none;align-self:center;padding:10px 12px;font-weight:700}.batch-row-generate:disabled{opacity:.7;cursor:progress}.batch-row-timer{color:var(--text-secondary);background:#eef3f9;border-radius:10px;gap:5px;padding:7px;font-size:11px;display:grid}.batch-row-timer span{color:var(--text-primary);font-weight:700}.batch-row-timer small{color:var(--text-muted);font:inherit}.batch-row-timer.is-slow{color:#9a5a00;background:#ffb24a29}.batch-row-timer.is-stuck{color:#c64230;background:#e256441f}.batch-row-timer button{background:var(--navy-strong);color:#fff;cursor:pointer;font-size:var(--font-caption);border:none;border-radius:9px;padding:7px;font-weight:700}.batch-generate-cell{flex-direction:column;justify-content:center;gap:8px;display:flex}.batch-version-nav{color:var(--text-muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;font-size:11px;display:grid}.batch-version-nav button{color:var(--text-secondary);cursor:pointer;background:#eef3f9;border:none;border-radius:999px;padding:5px 6px}.batch-version-nav button:disabled{opacity:.45;cursor:not-allowed}.batch-output-cell{place-items:center;display:grid}.batch-output-generating{width:100%;color:var(--text-muted);text-align:center;gap:6px;font-size:11px;display:grid}.batch-grid-row.is-row-disabled>*{background:#f8fafc}.batch-grid-row.is-row-disabled .batch-row-index{opacity:.78}.batch-output-button{cursor:pointer;background:0 0;border:none;width:100%;padding:0}.batch-selected-preview{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.batch-output-media,.batch-selected-media{width:100%;position:relative}.batch-output-select,.batch-selected-remove{cursor:pointer;opacity:0;pointer-events:none;border:none;transition:opacity .18s,transform .18s;position:absolute}.batch-output-select{color:#fff;background:#132544e0;border-radius:999px;padding:7px 8px;font-size:12px;bottom:8px;left:8px;right:8px}.batch-output-media:hover .batch-output-select,.batch-selected-media:hover .batch-selected-remove{opacity:1;pointer-events:auto;transform:translateY(0)}.batch-selected-cell{place-items:center;display:grid}.batch-selected-media{gap:8px;width:100%;display:grid}.batch-selected-visual{position:relative}.batch-selected-meta{gap:6px;display:grid}.batch-selected-label{font-size:var(--font-caption);color:var(--text-secondary);font-weight:700}.batch-selected-media img{aspect-ratio:1;object-fit:contain;background:#fffdf5;border-radius:10px;width:100%;box-shadow:inset 0 0 0 2px #ffb24a57}.batch-selected-remove{color:#fff;background:#d83f31;border-radius:999px;width:22px;height:22px;font-size:16px;line-height:1;top:6px;right:6px}.batch-selected-note{width:100%;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:10px;padding:7px 9px;font-size:12px}.batch-selected-download{width:100%;color:var(--navy-strong);opacity:1;pointer-events:auto;box-shadow:none;background:#1325441a;border:none;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:700;position:static;bottom:auto;left:auto;right:auto;transform:none}.mini-copy-button.danger{color:#c64230;background:#e256441a}.batch-output-error{color:#c64230;font-size:12px;line-height:1.4}.batch-empty-row{min-height:120px;padding:18px}.batch-context-menu{z-index:30;background:#fff;border:1px solid #12233d1f;border-radius:12px;min-width:126px;padding:6px;position:fixed;box-shadow:0 18px 42px #13253f2e}.batch-context-menu button{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;padding:9px 10px;display:block}.batch-context-menu button:hover{background:#f6f8fb}.batch-context-menu button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.55}.pagination-bar{justify-content:space-between;margin-top:4px;padding:8px 6px 4px}.pagination-size select{width:110px}.pagination-pages button,.pagination-jump button{min-width:38px;color:var(--text-primary);background:#eef3f9;border-radius:12px;padding:9px 12px}.pagination-pages button.is-active{color:#fff;background:#132544}.pagination-pages button:disabled{opacity:.45;cursor:not-allowed}.pagination-jump input{width:78px}.lightbox{z-index:20;overscroll-behavior:contain;background:#0c121dc7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lightbox-close{color:#fff;background:#ffffff2e;border-radius:50%;width:42px;height:42px;font-size:24px;position:absolute;top:20px;right:20px}.lightbox-toolbar{color:#fff;background:#111827ad;border-radius:999px;align-items:center;gap:8px;padding:8px;display:flex;position:absolute;top:20px;left:20px}.lightbox-toolbar button{color:#fff;background:#ffffff29;border-radius:999px;padding:8px 12px}.lightbox-stage{cursor:default;justify-content:center;align-items:center;width:auto;max-width:calc(92vw - 150px);height:auto;max-height:90vh;display:flex;position:relative}.lightbox-stage.is-draggable{cursor:grab}.lightbox-viewport{border-radius:0;max-width:none;max-height:none;display:block;overflow:visible}.lightbox-image{-webkit-user-select:none;user-select:none;transform-origin:50%;width:auto;max-width:calc(92vw - 150px);height:auto;max-height:90vh;transition:transform 80ms linear;display:block;box-shadow:0 18px 36px #00000038}.lightbox-nav{z-index:2;color:#fff;background:#111827ad;border-radius:50%;place-items:center;width:48px;height:48px;font-size:36px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav-prev{left:-64px}.lightbox-nav-next{right:-64px}.lightbox-filmstrip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11182785;border-radius:14px;flex-direction:column;gap:10px;width:116px;padding:10px;display:flex;position:absolute;top:82px;bottom:24px;right:20px}.lightbox-filmstrip-count{color:#fff;text-align:center;font-size:12px}.lightbox-filmstrip-list{gap:10px;padding-right:2px;display:grid;overflow-y:auto}.lightbox-filmstrip button{aspect-ratio:1;background:#ffffff24;border:2px solid #0000;border-radius:10px;width:92px;padding:0;overflow:hidden}.lightbox-filmstrip button.is-active{border-color:#ffb24a;box-shadow:0 0 0 3px #ffb24a3d}.lightbox-filmstrip img{object-fit:cover;width:100%;height:100%;display:block}.compare-overlay{z-index:19;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c121db3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.compare-modal{background:linear-gradient(#fffffff5,#f6f9fdf0);border-radius:24px;grid-template-columns:minmax(280px,1.05fr) minmax(320px,1.05fr) minmax(260px,.78fr) 118px;gap:12px;width:min(1760px,100vw - 48px);height:min(900px,100vh - 48px);padding:18px;display:grid;position:relative;box-shadow:0 22px 60px #07112147}.compare-close{z-index:2;color:#fff;cursor:pointer;background:#132544e0;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;line-height:1;position:absolute;top:14px;right:14px}.compare-panel{background:#fff;border:1px solid #dbe2edeb;border-radius:18px;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:14px;display:flex}.compare-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.compare-panel-head strong{font-size:16px;display:block}.compare-image-frame{background:#f5f7fb;border-radius:16px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.compare-image-button{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0}.compare-main-image{object-fit:contain;width:100%;height:100%;display:block}.compare-nav{z-index:1;color:#fff;cursor:pointer;background:#132544d1;border:none;border-radius:50%;width:42px;height:42px;font-size:30px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.compare-nav-prev{left:12px}.compare-nav-next{right:12px}.compare-empty{color:var(--text-muted);text-align:center;background:#f5f7fb;border-radius:16px;flex:1;place-items:center;padding:24px;font-size:14px;display:grid}.compare-info-panel{background:linear-gradient(#ecf5ffe6,#f8fbfffa)}.compare-info-list{gap:10px;margin:0;display:grid}.compare-info-list div{background:#ffffffd6;border-radius:14px;padding:10px 12px}.compare-info-list dt{color:var(--text-muted);margin-bottom:4px;font-size:12px}.compare-info-list dd{color:var(--text-primary);word-break:break-word;margin:0;line-height:1.5}.compare-prompt-block{flex-direction:column;gap:8px;min-height:0;display:flex}.compare-prompt-block span{color:var(--text-muted);font-size:12px}.compare-prompt-block p{color:var(--text-primary);word-break:break-word;background:#ffffffd6;border-radius:14px;flex:1;min-height:120px;margin:0;padding:12px;line-height:1.7;overflow:auto}.compare-action-row{flex-wrap:wrap;gap:8px;display:flex}.compare-filmstrip{padding:12px 10px}.compare-filmstrip-head strong{font-size:13px}.compare-filmstrip-list{gap:10px;padding-right:2px;display:grid;overflow-y:auto}.compare-filmstrip-list button{cursor:pointer;background:#f6f8fb;border:1px solid #0000;border-radius:14px;gap:6px;padding:6px;display:grid}.compare-filmstrip-list button.is-active{border-color:#ffb24a;box-shadow:0 0 0 3px #ffb24a33}.compare-filmstrip-list img{aspect-ratio:1;object-fit:cover;border-radius:10px;width:100%;display:block}.compare-filmstrip-list span{color:var(--text-secondary);text-align:center;font-size:11px}.auth-tab:hover,.batch-actions button:hover,.ghost-button:hover,.choice-pill:hover,.history-ref-item:hover,.lightbox-close:hover,.lightbox-toolbar button:hover,.user-panel button:hover,.primary-button:hover,.tile-action-button:hover,.lightbox-filmstrip button:hover,.mini-copy-button:hover,.pagination-pages button:hover,.pagination-jump button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #12233d1f}.auth-tab.is-active:hover,.view-switcher button.is-active:hover,.batch-row-generate:hover,.batch-row-timer button:hover,.batch-output-select:hover{background:var(--navy-strong-hover);box-shadow:0 12px 20px #13254438}.batch-selected-download:hover{color:var(--navy-strong-hover);box-shadow:none;background:#13254424}.lightbox-nav:hover{background:#111827d6}.compare-close:hover,.compare-nav:hover,.compare-filmstrip-list button:hover{transform:translateY(-1px)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1240px){.simple-topbar{grid-template-columns:1fr;justify-items:start}.stats-bar,.user-panel{justify-content:flex-start}.workspace{grid-template-columns:1fr;height:auto;overflow:visible}.control-panel .form-card,.result-panel{height:auto;position:static;overflow:visible}}@media (width<=960px){.auth-shell{grid-template-columns:1fr}.output-grid-1,.output-grid-2,.output-grid-3,.output-grid-4{grid-template-columns:repeat(2,minmax(0,188px))}.pagination-bar{flex-direction:column;align-items:flex-start}.admin-summary-grid,.admin-users-row,.view-switcher{grid-template-columns:1fr}.admin-users-row{gap:6px}.lightbox-stage,.lightbox-image{max-width:88vw}.lightbox-filmstrip{width:auto;max-height:104px;inset:auto 16px 16px}.lightbox-filmstrip-list{display:flex;overflow:auto hidden}.lightbox-filmstrip button{flex:none;width:72px}.lightbox-nav-prev{left:12px}.lightbox-nav-next{right:12px}.compare-modal{grid-template-columns:1fr 1fr;grid-template-areas:"reference generated""info filmstrip";height:auto;max-height:calc(100vh - 32px);overflow:auto}.compare-reference-panel{grid-area:reference;min-height:320px}.compare-generated-panel{grid-area:generated;min-height:320px}.compare-info-panel{grid-area:info}.compare-filmstrip{grid-area:filmstrip}}@media (width<=720px){.auth-shell,.topbar,.workspace{padding:16px}.auth-hero,.auth-card,.panel-card,.batch-row,.empty-state{border-radius:20px;padding:16px}.compact-grid,.choice-row,.reference-grid,.output-grid-1,.output-grid-2,.output-grid-3,.output-grid-4{grid-template-columns:1fr}.batch-meta{flex-direction:column;align-items:flex-start}.user-panel{flex-wrap:wrap;justify-content:flex-start}.view-switcher{width:100%}.lightbox-stage{width:100%;height:calc(100vh - 170px)}.upload-box{grid-template-columns:1fr}.compare-overlay{padding:12px}.compare-modal{grid-template-columns:1fr;grid-template-areas:"reference""generated""info""filmstrip";width:100%;height:auto;max-height:calc(100vh - 24px);padding:14px}.compare-panel{padding:12px}.compare-reference-panel,.compare-generated-panel{min-height:260px}.compare-filmstrip-list{padding-bottom:2px;display:flex;overflow:auto hidden}.compare-filmstrip-list button{flex:none;width:88px}}
