: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;--app-zoom:.7;--app-viewport-width:calc(100vw / var(--app-zoom));--app-viewport-height:calc(100vh / var(--app-zoom));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{width:var(--app-viewport-width);min-height:var(--app-viewport-height);zoom:var(--app-zoom)}@supports not (zoom:1){#root{min-height:var(--app-viewport-height);transform:scale(var(--app-zoom));transform-origin:0 0}}a{color:inherit}.app-shell{height:var(--app-viewport-height);color:var(--text-primary);overflow:hidden}.auth-shell{min-height:var(--app-viewport-height);grid-template-columns:minmax(320px,460px) minmax(320px,420px);justify-content:center;align-items:center;gap:24px;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:24px}.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}.user-menu{position:relative}.user-avatar-button{background:var(--surface-soft);place-items:center;width:36px;height:36px;display:grid;border-radius:50%!important;padding:0!important}.user-avatar-button.is-active,.user-avatar-button[aria-expanded=true]{background:var(--navy-strong);color:#fff}.user-menu-popover{z-index:30;background:#fff;border:1px solid #dbe2edf2;border-radius:14px;gap:6px;width:220px;padding:10px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 44px #13253f29}.user-menu-profile{border-bottom:1px solid #dbe2edcc;gap:4px;padding:8px 10px 10px;display:grid}.user-menu-profile strong{color:var(--text-primary)}.user-menu-profile span{color:var(--text-muted);font-size:var(--font-caption)}.user-menu-popover button{text-align:left;background:0 0;border-radius:10px;width:100%}.user-menu-popover button:hover{background:var(--surface-soft)}.user-menu-popover button.danger{color:#c64230}.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{height:calc(var(--app-viewport-height) - 54px);grid-template-columns:minmax(450px,480px) minmax(0,1fr);align-items:start;gap:14px;padding:12px 14px 14px;display:grid;overflow:hidden}.backoffice-workspace{grid-template-columns:minmax(0,1fr)}.backoffice-panel{width:100%}.image-editor-backdrop{z-index:80;background:#080e1cad;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-editor-modal{width:min(1040px,100%);max-height:min(calc(var(--app-viewport-height) * .92), 820px);background:#fff;border:1px solid #94a3b847;border-radius:14px;flex-direction:column;gap:14px;padding:18px;display:flex;box-shadow:0 24px 80px #0f172a57}.image-editor-header,.image-editor-footer,.image-editor-toolbar{align-items:center;gap:12px;display:flex}.image-editor-header{justify-content:space-between}.image-editor-header div{min-width:0}.image-editor-header strong,.image-editor-header span{display:block}.image-editor-header span{color:var(--text-secondary);font-size:var(--font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.image-editor-toolbar{background:#f6f8fb;border-radius:10px;flex-wrap:wrap;padding:10px}.image-editor-tools{background:#fff;border:1px solid #94a3b857;border-radius:999px;display:inline-flex;overflow:hidden}.image-editor-tools button{min-width:64px;color:var(--text-secondary);font-size:var(--font-caption);background:0 0;border:none;border-right:1px solid #94a3b83d;padding:8px 12px;font-weight:800}.image-editor-tools button:last-child{border-right:none}.image-editor-tools button.is-active{color:#fff;background:#132544}.image-editor-toolbar label{color:var(--text-secondary);font-size:var(--font-caption);align-items:center;gap:8px;font-weight:800;display:inline-flex}.image-editor-toolbar input[type=color]{background:0 0;border:none;width:34px;height:30px;padding:0}.image-editor-toolbar select{min-width:82px;color:var(--text-primary);font-size:var(--font-caption);background:#fff;border:1px solid #94a3b857;border-radius:999px;padding:7px 10px;font-weight:800}.image-editor-toolbar input[type=range]{width:140px}.image-editor-stage{background:#f8fafc;border:1px solid #94a3b83d;border-radius:12px;flex:1;justify-content:center;align-items:center;min-height:280px;display:flex;position:relative;overflow:auto}.image-editor-stage canvas{touch-action:none;cursor:crosshair;max-width:100%;height:auto;display:block}.image-editor-stage canvas.is-paint-tool{cursor:none}.image-editor-stage canvas.is-loading{opacity:0}.image-editor-stage>span{color:var(--text-secondary);font-weight:800;position:absolute}.image-editor-error{background:var(--danger-soft);color:var(--danger-strong);font-size:var(--font-caption);border-radius:10px;padding:10px 12px;font-weight:800}.image-editor-footer{justify-content:flex-end}@media (width<=720px){.image-editor-backdrop{padding:10px}.image-editor-modal{max-height:calc(var(--app-viewport-height) * .96);padding:12px}.image-editor-toolbar input[type=range]{width:100px}}.floating-announcement{z-index:24;width:min(420px, calc(var(--app-viewport-width) - 32px));background:linear-gradient(135deg,#ffecb5f5,#fffffffa),radial-gradient(circle at 100% 0,#ff9d573d,#0000 40%);border:1px solid #ffb24a57;border-radius:20px;gap:12px;padding:16px;display:grid;position:fixed;top:68px;right:18px;box-shadow:0 20px 48px #1b263d2e}.floating-announcement-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.floating-announcement h2{margin:2px 0 0;font-size:18px;line-height:1.25}.floating-announcement-close{width:30px;height:30px;color:var(--navy-strong);cursor:pointer;background:#1325441a;border:none;border-radius:999px;font-size:20px;line-height:1}.floating-announcement-body{max-height:min(42vh,300px);color:var(--text-secondary);word-break:break-word;gap:6px;line-height:1.6;display:grid;overflow:auto}.floating-announcement-body p{margin:0}.floating-announcement-actions{justify-content:flex-end;display:flex}.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}.control-panel .form-card>*{flex-shrink:0}.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}.toggle-row{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.toggle-row input{width:16px;height:16px}.share-user-list{border-radius:var(--radius-sm);background:#fff;border:1px solid #12233d1f;gap:6px;max-height:148px;padding:6px;display:grid;overflow-y:auto}.share-user-option{min-height:30px;color:var(--text-primary);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:600;display:flex}.share-user-option:hover{background:#f6f8fb}.share-user-option input{width:15px;height:15px}.share-user-empty{color:var(--text-muted);font-size:var(--font-caption);padding:8px}.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}.collapsible-control.model-select-section,.collapsible-control.batch-preset-section,.collapsible-control.batch-sharing-panel{padding:0;display:block;overflow:hidden}.collapsible-summary{width:100%;min-height:52px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;list-style:none;display:flex}.collapsible-summary::-webkit-details-marker{display:none}.collapsible-title{gap:2px;min-width:0;display:grid}.collapsible-title strong{color:var(--text-primary);font-size:14px;line-height:1.25}.collapsible-title small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.collapsible-hint{color:var(--text-secondary);background:#13254414;border-radius:999px;flex:none;padding:5px 9px;font-size:12px;font-weight:700}.collapsible-hint:before{content:"展开"}.collapsible-control.is-open .collapsible-hint:before,.collapsible-control[open] .collapsible-hint:before{content:"收起"}.collapsible-body{border-top:1px solid #dbe2edb8;gap:10px;padding:0 12px 12px;display:grid}.collapsible-control:not(.is-open):not([open]) .collapsible-body{display:none}.collapsible-body .field-stack{padding-top:10px}.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-drop-replace{background:#edf6ff;box-shadow:0 0 0 2px #007affb8,0 12px 22px #007aff2e}.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-load-fallback,.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}.image-load-fallback{color:var(--text-secondary);text-align:center;border:1px dashed #94a3b859;justify-content:center;align-items:center;padding:12px;font-size:12px;line-height:1.4;display:flex}.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}.reference-edit-badge{z-index:4;color:#fff;opacity:0;pointer-events:none;cursor:pointer;background:#141d2dd1;border:1px solid #ffffffb8;border-radius:999px;min-width:34px;height:24px;padding:0 8px;font-size:11px;line-height:22px;transition:opacity .16s,background .16s,transform .16s;position:absolute;top:8px;left:8px;box-shadow:0 8px 18px #0f172a38}.reference-card:hover .reference-edit-badge,.reference-card:focus-within .reference-edit-badge,.batch-ref-cell:hover .batch-ref-edit-badge,.batch-ref-cell:focus-within .batch-ref-edit-badge{opacity:1;pointer-events:auto}.reference-edit-badge:hover,.reference-edit-badge:focus-visible{background:#007afff0;outline:none;transform:translateY(-1px)}.batch-ref-edit-badge{top:10px;left:10px}.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}.form-card textarea.auto-resize-textarea,.batch-prompt-input.auto-resize-textarea{box-sizing:border-box;resize:none}.batch-prompt-input.auto-resize-textarea[readonly]{overscroll-behavior:none;overflow-y:hidden!important}.prompt-control-surface textarea{min-height:280px}.batch-control-panel .prompt-control-surface textarea{min-height:250px}.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}.batch-run-actions{gap:8px;display:grid}.primary-button:disabled{opacity:.75;cursor:progress}.agent-token-create-actions .primary-button:disabled{cursor:not-allowed}.agent-token-create-actions .primary-button.is-pending:disabled{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}.admin-page-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 4px 8px;display:flex}.admin-page-header>div{min-width:0}.admin-page-header .primary-button{flex:none;margin-top:6px}.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}.agent-badge{color:#7c3aed;background:#8b5cf624;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}.admin-create-inline{max-width:520px}.prompt-insights-panel{flex-direction:column;gap:12px;display:flex}.ledger-panel{flex-direction:column;gap:14px;display:flex}.ledger-page-head,.ledger-section-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ledger-page-head>div:first-child,.ledger-section-head>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.ledger-page-head strong,.ledger-section-head strong{color:var(--text-primary);font-size:16px}.ledger-page-head span,.ledger-section-head span{color:var(--text-muted);font-size:12px;line-height:1.5}.ledger-filter-bar{background:#fff;border:1px solid #dbe2ede6;border-radius:8px;grid-template-columns:repeat(7,minmax(120px,1fr)) auto auto;align-items:end;gap:10px;padding:12px;display:grid}.ledger-filter-bar label{min-width:0;color:var(--text-muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.ledger-filter-bar input,.ledger-filter-bar select{width:100%;min-width:0;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:8px;padding:8px 10px}.ledger-query-button{min-width:76px;min-height:38px}.ledger-summary-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.ledger-summary-grid div,.ledger-analysis-card{background:#fff;border:1px solid #dbe2ede6;border-radius:8px}.ledger-summary-grid div{padding:12px}.ledger-summary-grid span,.ledger-analysis-card th{color:var(--text-muted);font-size:12px}.ledger-summary-grid strong{color:var(--text-primary);margin-top:6px;font-size:20px;display:block}.ledger-analysis-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px;display:grid}.ledger-analysis-grid.is-primary{grid-template-columns:repeat(3,minmax(0,1fr))}.ledger-analysis-card{padding:12px;overflow-x:auto}.ledger-analysis-card>strong{margin-bottom:10px;display:block}.ledger-analysis-card table{border-collapse:collapse;width:100%;min-width:520px}.ledger-analysis-card th,.ledger-analysis-card td{text-align:left;border-bottom:1px solid #dbe2edb3;padding:8px;font-size:12px}.ledger-prompt-card table{min-width:900px}.ledger-prompt-cell{text-overflow:ellipsis;white-space:nowrap;max-width:620px;overflow:hidden}.ledger-records-section{flex-direction:column;gap:10px;margin-top:4px;display:flex}.prompt-insights-list{gap:8px;max-height:400px;padding-right:4px;display:grid;overflow-y:auto}.task-record-toolbar,.task-record-pagination{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-record-toolbar label,.task-record-pagination label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.task-record-toolbar select,.task-record-pagination select{color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:999px;padding:7px 10px}.task-record-table-shell{background:#fff;border:1px solid #dbe2ede6;border-radius:8px;max-height:460px;overflow:auto}.task-record-table{border-collapse:collapse;width:100%;min-width:2360px}.task-record-table th,.task-record-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dbe2edb3;padding:12px}.task-record-table th{z-index:1;color:var(--text-muted);background:#f6f8fb;font-size:12px;font-weight:700;position:sticky;top:0}.task-record-table td{color:var(--text-primary);font-size:12px}.task-record-table td strong,.task-record-table td span,.task-record-table td small{display:block}.task-record-table td span,.task-record-table td small{color:var(--text-muted);margin-top:4px}.task-record-prompt{max-width:420px;line-height:1.5}.task-record-prompt strong{-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;display:-webkit-box!important}.task-record-id,.task-record-list{overflow-wrap:anywhere;max-width:240px;line-height:1.5}.source-pill{border-radius:999px;width:fit-content;padding:4px 8px;font-weight:700;display:inline-flex!important}.source-pill.is-agent{color:#9a5a00;background:#ffb24a2e}.source-pill.is-user{color:#1f63d0;background:#3a87ff1f}.task-record-pagination{justify-content:flex-end}.task-record-pagination>span{color:var(--text-muted);margin-right:auto;font-size:12px}.task-record-pagination .ghost-button.is-active{color:#fff;background:#132544}.insight-subtitle{color:var(--text-primary);font-size:13px}.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-users-row-token{grid-template-columns:1fr 1.5fr .6fr .6fr .6fr .7fr .7fr .7fr 1fr auto}.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}.agent-account-summary{gap:10px;display:grid}.agent-account-summary span{color:var(--text-secondary);background:#f5f7fbeb;border-radius:14px;padding:10px 12px;font-size:13px;line-height:1.5}.agent-token-create-card{background:#f5f7fbeb;border:1px solid #12233d14;border-radius:18px;gap:14px;padding:16px;display:grid}.agent-token-create-actions{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.agent-token-create-actions small{color:var(--text-muted);flex:220px;line-height:1.6}.agent-token-plain-box{background:linear-gradient(135deg,#ffd36d38,#ff99662e);border:1px solid #ffb1564d;border-radius:16px;gap:8px;padding:12px;display:grid}.agent-token-plain-box code{word-break:break-all;background:#12233d14;border-radius:10px;padding:6px 8px;font-size:12px;display:inline-block}.agent-token-plain-box small{color:var(--text-muted);line-height:1.5}.announcement-editor{background:#f5f7fbeb;border:1px solid #12233d14;border-radius:18px;gap:14px;padding:16px;display:grid}.announcement-editor textarea{resize:vertical;width:100%;min-height:150px;color:var(--text-primary);font:inherit;background:#fff;border:1px solid #12233d1f;border-radius:14px;padding:12px 14px;line-height:1.55}.announcement-editor-actions{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.announcement-editor-actions small{color:var(--text-muted);flex:260px;line-height:1.6}.announcement-list{gap:10px;display:grid}.announcement-list-item{background:#f6f8fb;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px;display:grid}.announcement-list-item.is-history{background:#fff}.announcement-list-item strong,.announcement-list-item span,.announcement-list-item p{display:block}.announcement-list-item strong{color:var(--text-primary)}.announcement-list-item span{color:var(--text-muted);margin-top:4px;font-size:12px}.announcement-list-item p{color:var(--text-secondary);white-space:pre-wrap;max-height:180px;margin:8px 0 0;line-height:1.55;overflow:auto}.announcement-history-panel{gap:10px;display:grid}.announcement-history-toggle{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #12233d14;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.announcement-history-toggle span{font-weight:700}.announcement-history-toggle small{color:var(--text-muted)}.announcement-history-toggle strong{color:#1f63d0;font-size:12px}.announcement-history-list{max-height:360px;padding-right:4px;overflow-y:auto}.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(430px,510px) minmax(0,1fr)}.batch-project-panel{gap:14px}.batch-sidebar-tabs{background:#f5f8fc;border:1px solid #12233d14;border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.batch-sidebar-tab{min-height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;font-size:13px}.batch-sidebar-tab.is-active{color:var(--text-primary);background:#fff;box-shadow:0 8px 20px #12233d14}.batch-agent-panel{gap:14px;display:grid}.agent-tool-list{gap:8px;display:grid}.agent-tool-item{width:100%;min-height:40px;color:var(--text-primary);font:inherit;cursor:pointer;background:#fff;border:1px solid #12233d1a;border-radius:10px;justify-content:space-between;align-items:center;padding:0 12px;font-size:13px;display:flex}.agent-tool-item.is-active{background:#fff8eb;border-color:#ffb24aa6}.agent-prompt-writer textarea{min-height:220px}.prompt-library-tabs{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.prompt-library-tab{min-height:32px;color:var(--text-secondary);font:inherit;cursor:pointer;background:#fff;border:1px solid #12233d1a;border-radius:8px;font-size:12px}.prompt-library-tab.is-active{color:var(--text-primary);background:#fff8eb;border-color:#ffb24aa6}.prompt-document-actions{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.prompt-document-actions .ghost-button,.prompt-document-actions .primary-button{flex:auto}.prompt-content-head{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;margin:8px 0 6px;font-size:12px;display:flex}.prompt-content-head .ghost-button{flex:none;min-height:30px;padding:0 12px}.prompt-import-button{cursor:pointer;justify-content:center;position:relative}.prompt-import-button input{opacity:0;pointer-events:none;position:absolute;inset:0}.agent-checkbox-row{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:flex}.agent-checkbox-row input{width:16px;height:16px;accent-color:var(--accent)}.agent-reference-section .section-head{align-items:flex-start}.agent-reference-title{gap:3px;display:grid}.agent-reference-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.agent-reference-head-actions .ghost-button{min-height:30px;padding:0 12px}.agent-reference-options{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.agent-reference-option{width:72px;min-height:56px;color:var(--text-primary);font:inherit;cursor:pointer;background:#fff;border:1px solid #12233d1a;border-radius:10px;grid-template-rows:auto auto;align-content:center;justify-items:center;gap:3px;padding:8px 6px;transition:border-color .16s,background .16s,box-shadow .16s;display:grid}.agent-reference-option strong{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:700}.agent-reference-option span{max-width:100%;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.agent-reference-option.is-selected{background:#fff8eb;border-color:#ffb24abf;box-shadow:0 8px 18px #ffb24a29}.agent-reference-option.is-selected strong{color:#8a5200}.agent-reference-option:disabled{cursor:not-allowed;opacity:.58}.agent-helper-text{color:var(--text-muted);margin:8px 0 0;font-size:12px;line-height:1.55}.agent-error-text{color:#c2410c;margin:8px 0 0;font-size:12px;line-height:1.5}.agent-progress-card{background:#f8fbff;border:1px solid #12233d1a;border-radius:12px;gap:8px;padding:12px;display:grid}.agent-progress-card strong{color:var(--text-primary);font-size:13px;line-height:1.45}.agent-progress-card span,.agent-run-log small{color:var(--text-secondary);font-size:12px;line-height:1.45}.agent-run-log{gap:4px;max-height:120px;display:grid;overflow:auto}.agent-task-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}.agent-task-actions .primary-button,.agent-task-actions .ghost-button{min-height:36px;padding:8px 10px}.agent-task-status{color:#2d3a66;background:#edf2ff;border-radius:999px;align-items:center;width:fit-content;margin-left:4px;padding:2px 8px;font-weight:700;display:inline-flex}.agent-task-status.is-running,.agent-task-status.is-claimed{color:#925f00;background:#fff4d8}.agent-task-status.is-paused{color:#0369a1;background:#e0f2fe}.agent-task-status.is-completed{color:#15803d;background:#dcfce7}.agent-task-status.is-failed{color:#b91c1c;background:#fee2e2}.agent-task-status.is-cancelled{color:#4b5563;background:#e5e7eb}.prompt-editor-backdrop{z-index:90;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080e1c9e;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.prompt-editor-modal{width:min(1680px, calc(var(--app-viewport-width) - 24px));height:calc(var(--app-viewport-height) - 24px);background:#fff;border:1px solid #94a3b847;border-radius:12px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;min-height:0;padding:22px;display:grid;box-shadow:0 24px 80px #0f172a57}.prompt-editor-header,.prompt-editor-actions{align-items:center;gap:12px;display:flex}.prompt-editor-header{justify-content:space-between}.prompt-editor-header-actions{align-items:center;gap:10px;display:flex}.prompt-editor-header strong{color:var(--text-primary);font-size:16px}.prompt-editor-mode-toggle{background:#f5f8fc;border:1px solid #12233d14;border-radius:10px;grid-template-columns:repeat(2,minmax(72px,1fr));gap:4px;padding:4px;display:grid}.prompt-editor-mode-toggle button{min-height:32px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:13px}.prompt-editor-mode-toggle button.is-active{color:var(--text-primary);background:#fff;box-shadow:0 6px 16px #12233d14}.prompt-editor-content{height:100%;min-height:0;display:flex}.prompt-editor-modal .prompt-editor-large-textarea{box-sizing:border-box;resize:none;flex:1;width:100%;height:100%;min-height:0;max-height:none;font-size:14px;line-height:1.7}.prompt-editor-actions{justify-content:flex-end}.prompt-editor-actions .ghost-button,.prompt-editor-actions .primary-button{min-width:120px}.prompt-editor-preview{background:#fbfdff;border:1px solid #12233d1f;border-radius:10px;flex:1;height:100%;min-height:0;padding:22px 26px;overflow:auto}.markdown-preview{max-width:980px;color:var(--text-primary);font-size:14px;line-height:1.72}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4{color:var(--text-primary);margin:0 0 12px;line-height:1.25}.markdown-preview h1{font-size:24px}.markdown-preview h2{border-bottom:1px solid #12233d1a;margin-top:22px;padding-bottom:8px;font-size:20px}.markdown-preview h3{margin-top:18px;font-size:17px}.markdown-preview h4{margin-top:16px;font-size:15px}.markdown-preview p{margin:0 0 12px}.markdown-preview ul,.markdown-preview ol{margin:0 0 14px;padding-left:22px}.markdown-preview li{margin:4px 0}.markdown-preview code{color:#0f172a;background:#12233d14;border-radius:5px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.markdown-code-block{color:#e5e7eb;background:#101827;border:1px solid #12233d1a;border-radius:10px;margin:0 0 16px;overflow:auto}.markdown-code-block span{color:#cbd5e1;border-bottom:1px solid #ffffff1a;padding:8px 12px;font-size:12px;display:block}.markdown-code-block code{color:inherit;white-space:pre;background:0 0;padding:14px;display:block}.markdown-table-scroll{border:1px solid #12233d1a;border-radius:10px;max-width:100%;margin:0 0 16px;overflow:auto}.markdown-preview table{border-collapse:collapse;background:#fff;width:100%}.markdown-preview th,.markdown-preview td{text-align:left;vertical-align:top;border-bottom:1px solid #12233d14;border-left:1px solid #12233d14;padding:10px 12px}.markdown-preview th:first-child,.markdown-preview td:first-child{border-left:0}.markdown-preview th{background:#f5f8fc;font-weight:700}.markdown-preview blockquote{color:var(--text-primary);background:#fff8eb;border-left:4px solid #ffb24abf;margin:0 0 14px;padding:10px 14px}.markdown-preview a{color:#0f5ab8;text-decoration:underline}.markdown-empty{color:var(--text-secondary)}@media (width<=760px){.prompt-editor-backdrop{padding:8px}.prompt-editor-modal{width:calc(var(--app-viewport-width) - 16px);height:calc(var(--app-viewport-height) - 16px);min-height:0;padding:16px}.prompt-editor-header,.prompt-editor-header-actions{flex-direction:column;align-items:stretch}.prompt-editor-mode-toggle{width:100%}.prompt-editor-preview{padding:16px}}.batch-project-actions,.batch-table-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.batch-title-row h2{margin:0}.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(440px, 560px) 190px 92px 92px 70px 92px repeat(2, 118px) repeat(4, 118px);align-items:stretch;display:grid}.batch-grid-row>*{min-height:var(--batch-row-height,264px);background:#fff;border-bottom:1px solid #dbe2edcc;border-right:1px solid #dbe2edcc;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-ref-head,.batch-field-head{cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky}.batch-ref-head.is-selected,.batch-field-head.is-selected,.batch-filter-head.is-selected{color:var(--text-primary);background:#ffb24a24;box-shadow:inset 0 0 0 2px #ffb24a}.batch-filter-head{flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:sticky}.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;position:relative}.batch-row-index strong{font-size:18px}.batch-row-index.is-selected{background:#ffb24a24;box-shadow:inset 0 0 0 2px #ffb24a}.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-standalone_generating,.batch-row-status.is-queued{color:#1f63d0;background:#3a87ff24}.batch-row-status.is-paused{color:#9a5f00;background:#ffb24a2e}.batch-row-status.is-completed{color:#15834d;background:#25b46e24}.batch-row-status.is-failed,.batch-row-status.is-partial_failed,.batch-row-status.is-cancelled{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{width:100%;height:clamp(72px, calc(var(--batch-row-height,264px) - 58px), 180px);cursor:zoom-in;background:0 0;border:none;padding:0;display:block}.batch-ref-cell.is-range-selected{background:#ffb24a14;box-shadow:inset 0 0 0 1px #ffb24aa6}.batch-ref-cell.is-column-selected,.batch-field-cell.is-column-selected,.batch-generate-cell.is-column-selected,.batch-selected-cell.is-column-selected,.batch-output-cell.is-column-selected{background:#ffb24a14;box-shadow:inset 0 0 0 1px #ffb24a7a}.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-ref-cell .image-load-fallback,.batch-output-button img,.batch-output-button .image-load-fallback,.batch-output-loading{object-fit:contain;background:#f8fafc;border-radius:10px;width:100%;height:100%}.batch-stop-button{color:#c64230;background:#e256441a;border-radius:18px;width:100%;padding:15px}.batch-run-actions .batch-stop-button:not(.danger){color:#1f63d0;background:#3a87ff1a}.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:calc(var(--batch-row-height,264px) - 16px);font-size:var(--font-body);padding:11px 12px;line-height:1.55}.batch-column-resize-handle,.batch-row-resize-handle{z-index:8;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;position:absolute}.batch-column-resize-handle{cursor:col-resize;width:8px;height:100%;top:0;right:-4px}.batch-row-resize-handle{cursor:row-resize;height:8px;bottom:-4px;left:0;right:0}.batch-column-resize-handle:after,.batch-row-resize-handle:after{content:"";opacity:0;transition:opacity .12s;position:absolute}.batch-column-resize-handle:after{background:#ffb24a;width:2px;top:8px;bottom:8px;right:3px}.batch-row-resize-handle:after{background:#ffb24a;height:2px;bottom:3px;left:8px;right:8px}.batch-column-resize-handle:hover:after,.batch-column-resize-handle:focus-visible:after,.batch-row-resize-handle:hover:after,.batch-row-resize-handle:focus-visible:after{opacity:1}.is-batch-resizing{-webkit-user-select:none;user-select:none}.is-batch-column-resizing{cursor:col-resize}.is-batch-row-resizing{cursor:row-resize}.batch-column-resize-guide,.batch-row-resize-guide-overlay{z-index:9999;pointer-events:none;background:#ffb24a;display:none;position:fixed;box-shadow:0 0 0 1px #ffffffe6,0 0 10px #ffb24a73}.batch-column-resize-guide{width:2px;top:0;bottom:0;left:0}.batch-row-resize-guide-overlay{height:2px;top:0;left:0;right:0}.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-grid-row.is-row-selected .batch-ref-cell,.batch-grid-row.is-row-selected .batch-field-cell{background:#ffb24a14}.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-generate.is-stop{background:var(--danger-soft);color:var(--danger-strong)}.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%;height:clamp(72px, calc(var(--batch-row-height,264px) - 58px), 180px);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{width:100%;height:clamp(72px, calc(var(--batch-row-height,264px) - 58px), 180px);cursor:pointer;background:0 0;border:none;padding:0}.batch-selected-preview{width:100%;height:clamp(64px, calc(var(--batch-row-height,264px) - 126px), 140px);cursor:zoom-in;background:0 0;border:none;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,.batch-selected-media .image-load-fallback{object-fit:contain;background:#fffdf5;border-radius:10px;width:100%;height: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:152px;padding:6px;position:fixed;box-shadow:0 18px 42px #13253f2e}.batch-context-menu-divider{background:#dbe2ede6;height:1px;margin:6px 4px}.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-image.image-load-fallback{color:#ffffffe0;background:#0f172aad;border-color:#ffffff24;min-width:min(360px,92vw - 150px);min-height:min(240px,60vh)}.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,.lightbox-filmstrip .image-load-fallback{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{width:min(1760px, calc(var(--app-viewport-width) - 48px));height:min(900px, calc(var(--app-viewport-height) - 48px));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;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-main-image.image-load-fallback{background:#f8fafc}.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,.compare-filmstrip-list .image-load-fallback{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:not(.is-stop):hover,.batch-row-timer button:hover,.batch-output-select:hover{background:var(--navy-strong-hover);box-shadow:0 12px 20px #13254438}.batch-row-generate.is-stop:hover{background:#e2564429;box-shadow:0 12px 20px #c642301f}.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{height:auto;max-height:calc(var(--app-viewport-height) - 32px);grid-template-columns:1fr 1fr;grid-template-areas:"reference generated""info filmstrip";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}.floating-announcement{width:auto;top:88px;left:12px;right:12px}.announcement-list-item{grid-template-columns:1fr}.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(var(--app-viewport-height) - 170px)}.upload-box{grid-template-columns:1fr}.compare-overlay{padding:12px}.compare-modal{width:100%;height:auto;max-height:calc(var(--app-viewport-height) - 24px);grid-template-columns:1fr;grid-template-areas:"reference""generated""info""filmstrip";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}}
