.version-trigger[data-v-6ec3a245]{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:0 8px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-muted);font:600 11px/1 var(--font-mono);white-space:nowrap;transition:color .16s,border-color .16s,background .16s}.version-trigger[data-v-6ec3a245]:hover,.version-trigger[data-v-6ec3a245]:focus-visible{border-color:var(--border);background:var(--bg-hover);color:var(--text-primary)}.version-trigger i[data-v-6ec3a245]{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:999px;background:var(--success)}.version-dialog-backdrop[data-v-6ec3a245]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:24px;background:#050506b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.version-dialog[data-v-6ec3a245]{display:flex;flex-direction:column;width:min(720px,100%);max-height:min(780px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);box-shadow:0 18px 60px #00000047;outline:none}.version-dialog-header[data-v-6ec3a245]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 22px 0}.version-dialog-kicker[data-v-6ec3a245]{margin:0 0 7px;color:var(--accent);font:600 10px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.version-dialog-header h2[data-v-6ec3a245]{margin:0;color:var(--text-primary);font-family:var(--font-display);font-size:22px}.version-dialog-header span[data-v-6ec3a245]{display:block;margin-top:6px;color:var(--text-muted);font-size:12px}.version-dialog-header>button[data-v-6ec3a245]{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;padding:0;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);transition:color .16s,border-color .16s,background .16s}.version-dialog-header>button[data-v-6ec3a245]:hover,.version-dialog-header>button[data-v-6ec3a245]:focus-visible{border-color:var(--border-accent);background:var(--bg-hover);color:var(--text-primary)}.version-summary-grid[data-v-6ec3a245]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px 22px 0}.version-summary-card[data-v-6ec3a245]{min-width:0;padding:12px 13px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated)}.version-summary-card small[data-v-6ec3a245]{color:var(--text-muted);font-size:11px}.version-summary-card strong[data-v-6ec3a245]{display:block;margin-top:5px;overflow:hidden;color:var(--text-primary);font:700 15px/1.3 var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.version-latest-label[data-v-6ec3a245]{display:flex;align-items:center;justify-content:space-between;gap:10px}.version-latest-label button[data-v-6ec3a245]{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--text-muted);font-size:10px}.version-latest-label button[data-v-6ec3a245]:hover:not(:disabled),.version-latest-label button[data-v-6ec3a245]:focus-visible{color:var(--accent)}.version-check-result[data-v-6ec3a245]{display:flex;align-items:center;gap:7px;min-height:34px;margin:10px 22px 0;padding:8px 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);color:var(--text-secondary);font-size:11px}.version-check-result>span[data-v-6ec3a245]{min-width:0;flex:1}.version-check-result.is-update[data-v-6ec3a245],.version-check-result.is-current[data-v-6ec3a245]{border-color:#4a8f6638;background:var(--success-soft);color:var(--success)}.version-check-result.is-error[data-v-6ec3a245]{border-color:#b4484833;background:var(--error-soft);color:var(--error)}.version-check-result a[data-v-6ec3a245]{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;color:inherit;font-weight:700}.version-check-result a[data-v-6ec3a245]:hover,.version-check-result a[data-v-6ec3a245]:focus-visible{text-decoration:underline;text-underline-offset:2px}.version-notes-warning[data-v-6ec3a245],.version-check-note[data-v-6ec3a245]{margin:9px 22px 0;color:var(--text-muted);font-size:11px;line-height:1.55}.version-notes-warning[data-v-6ec3a245]{color:var(--accent-strong)}.version-timeline[data-v-6ec3a245]{min-height:120px;flex:1 1 auto;margin-top:15px;padding:0 22px 8px 34px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.version-release[data-v-6ec3a245]{position:relative;padding:0 0 22px 18px;border-left:1px solid var(--border)}.version-release[data-v-6ec3a245]:last-child{padding-bottom:4px}.version-timeline-dot[data-v-6ec3a245]{position:absolute;top:5px;left:-5px;width:9px;height:9px;border:2px solid var(--bg-surface);border-radius:999px;background:var(--text-muted);box-shadow:0 0 0 1px var(--border)}.version-release:first-child .version-timeline-dot[data-v-6ec3a245]{background:var(--accent)}.version-release>header[data-v-6ec3a245]{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.version-release>header strong[data-v-6ec3a245]{color:var(--text-primary);font:700 13px/1.4 var(--font-mono)}.version-release time[data-v-6ec3a245]{color:var(--text-muted);font-size:11px}.version-badge[data-v-6ec3a245]{padding:2px 5px;border-radius:3px;background:var(--bg-hover);color:var(--text-muted);font-size:9px;font-weight:700}.version-badge.is-latest[data-v-6ec3a245]{background:var(--success-soft);color:var(--success)}.version-release ul[data-v-6ec3a245]{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.version-release li[data-v-6ec3a245]{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px}.version-release li p[data-v-6ec3a245]{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.6}.release-type[data-v-6ec3a245]{min-width:30px;padding:2px 5px;border-radius:3px;background:var(--bg-hover);color:var(--text-muted);font-size:9px;font-weight:700;text-align:center}.release-type.is-added[data-v-6ec3a245]{background:var(--success-soft);color:var(--success)}.release-type.is-fixed[data-v-6ec3a245]{background:var(--error-soft);color:var(--error)}.release-type.is-changed[data-v-6ec3a245]{background:var(--accent-soft);color:var(--accent)}.release-type.is-security[data-v-6ec3a245]{background:#a070521f;color:#b87543}.release-type.is-documentation[data-v-6ec3a245]{background:#7469971f;color:#8174a7}.version-dialog-footer[data-v-6ec3a245]{display:flex;justify-content:flex-end;gap:14px;padding:12px 22px;border-top:1px solid var(--border)}.version-dialog-footer a[data-v-6ec3a245]{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:11px;text-decoration:none}.version-dialog-footer a[data-v-6ec3a245]:hover,.version-dialog-footer a[data-v-6ec3a245]:focus-visible{color:var(--accent)}.spinning[data-v-6ec3a245]{animation:version-spin-6ec3a245 .8s linear infinite}@keyframes version-spin-6ec3a245{to{transform:rotate(360deg)}}.version-dialog-enter-active[data-v-6ec3a245],.version-dialog-leave-active[data-v-6ec3a245]{transition:opacity .16s cubic-bezier(.25,.46,.45,.94)}.version-dialog-enter-active .version-dialog[data-v-6ec3a245],.version-dialog-leave-active .version-dialog[data-v-6ec3a245]{transition:transform .16s cubic-bezier(.25,.46,.45,.94)}.version-dialog-enter-from[data-v-6ec3a245],.version-dialog-leave-to[data-v-6ec3a245]{opacity:0}.version-dialog-enter-from .version-dialog[data-v-6ec3a245],.version-dialog-leave-to .version-dialog[data-v-6ec3a245]{transform:translateY(6px)}@media(max-width:620px){.version-trigger[data-v-6ec3a245]{min-height:28px;padding-inline:6px;font-size:10px}.version-dialog-backdrop[data-v-6ec3a245]{align-items:end;padding:0}.version-dialog[data-v-6ec3a245]{width:100%;max-height:88vh;border-right:0;border-bottom:0;border-left:0;border-radius:6px 6px 0 0}.version-dialog-header[data-v-6ec3a245]{padding:18px 16px 0}.version-summary-grid[data-v-6ec3a245]{padding:16px 16px 0}.version-check-result[data-v-6ec3a245],.version-notes-warning[data-v-6ec3a245],.version-check-note[data-v-6ec3a245]{margin-inline:16px}.version-timeline[data-v-6ec3a245]{padding-right:16px;padding-left:27px}.version-dialog-footer[data-v-6ec3a245]{padding-inline:16px}}@media(max-width:390px){.version-summary-grid[data-v-6ec3a245]{grid-template-columns:1fr}.version-dialog-header h2[data-v-6ec3a245]{font-size:20px}.version-check-result[data-v-6ec3a245]{align-items:flex-start;flex-wrap:wrap}.version-check-result a[data-v-6ec3a245]{width:100%;padding-left:22px}}@media(prefers-reduced-motion:reduce){.version-trigger[data-v-6ec3a245],.version-dialog-header>button[data-v-6ec3a245],.version-dialog-enter-active[data-v-6ec3a245],.version-dialog-leave-active[data-v-6ec3a245],.version-dialog-enter-active .version-dialog[data-v-6ec3a245],.version-dialog-leave-active .version-dialog[data-v-6ec3a245]{transition:none}.spinning[data-v-6ec3a245]{animation:none}}.brand[data-v-675341bd]{display:flex;align-items:center;gap:10px;min-width:0}.brand-logo[data-v-675341bd]{width:48px;height:48px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(196,149,54,.16))}.theme-toggle[data-v-675341bd]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s,background .2s,border-color .2s;margin-left:4px}.theme-toggle[data-v-675341bd]:hover{color:var(--accent);border-color:var(--border-accent);background:var(--accent-glow)}.nav-credits[data-v-675341bd]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-sm);background:var(--accent-glow);border:1px solid var(--border-accent);color:var(--accent);font-weight:600;font-size:.85rem;text-decoration:none;transition:background .2s}.nav-credits[data-v-675341bd]:hover{background:var(--accent);color:var(--bg)}.header-primary-nav[data-v-675341bd]{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.primary-nav-link[data-v-675341bd]{padding:6px 14px;border-radius:var(--radius-sm, 6px);font-size:.9rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:color .2s,background .2s}.primary-nav-link[data-v-675341bd]:hover{color:var(--text);background:var(--accent-glow)}.primary-nav-link.active[data-v-675341bd]{color:var(--accent);background:var(--accent-glow);font-weight:600}.header-nav[data-v-675341bd]{flex-wrap:wrap}.header-nav[data-v-675341bd]>*,.primary-nav-link[data-v-675341bd]{white-space:nowrap}@media(max-width:600px){.site-header[data-v-675341bd]{align-items:center;column-gap:10px}.brand[data-v-675341bd]{flex:1 1 auto}.brand-logo[data-v-675341bd]{width:42px;height:42px}.brand-title[data-v-675341bd]{font-size:20px}.primary-nav-link[data-v-675341bd]{padding:6px 8px}.header-primary-nav[data-v-675341bd]{order:3;width:100%;gap:2px;flex-wrap:nowrap;overflow-x:auto;padding-top:10px;border-top:1px solid var(--border-subtle);scrollbar-width:none}.header-primary-nav[data-v-675341bd]::-webkit-scrollbar{display:none}.header-nav[data-v-675341bd]{margin-left:auto;gap:10px}.nav-user[data-v-675341bd]{max-width:78px;overflow:hidden;text-overflow:ellipsis}.theme-toggle[data-v-675341bd]{flex-shrink:0}}.announcement-stack[data-v-39ffd51b]{position:relative;z-index:1;display:grid;gap:8px;max-width:1200px;margin:12px auto 0;padding:0 24px}.announcement-banner[data-v-39ffd51b]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:44px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);box-shadow:var(--shadow-sm)}.announcement-info[data-v-39ffd51b]{border-color:var(--border-accent);color:var(--accent)}.announcement-warning[data-v-39ffd51b]{border-color:var(--border-accent);background:var(--accent-glow);color:var(--accent)}.announcement-critical[data-v-39ffd51b]{border-color:color-mix(in srgb,var(--error) 34%,transparent);background:var(--error-soft);color:var(--error)}.announcement-copy[data-v-39ffd51b]{display:flex;align-items:baseline;gap:10px;min-width:0}.announcement-copy strong[data-v-39ffd51b]{flex:0 0 auto;color:var(--text-primary);font-size:13px}.announcement-copy span[data-v-39ffd51b]{min-width:0;color:var(--text-secondary);font-size:12px;line-height:1.55}.announcement-action[data-v-39ffd51b]{display:inline-flex;align-items:center;gap:4px;color:currentColor;font-size:12px;font-weight:700;white-space:nowrap;transition:opacity .16s}.announcement-action[data-v-39ffd51b]:hover{opacity:.72}@media(max-width:720px){.announcement-stack[data-v-39ffd51b]{padding:0 16px}.announcement-banner[data-v-39ffd51b]{grid-template-columns:auto minmax(0,1fr);align-items:start}.announcement-copy[data-v-39ffd51b]{display:grid;gap:3px}.announcement-action[data-v-39ffd51b]{grid-column:2}}@media(prefers-reduced-motion:reduce){.announcement-action[data-v-39ffd51b]{transition:none}}.generation-stats-slot[data-v-371341f0]{position:relative;z-index:1;display:flex;justify-content:center;min-height:52px;padding:9px 16px 3px}.generation-stats[data-v-371341f0]{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--bg-surface) 94%,var(--accent) 6%);color:var(--text-secondary);font-size:12px;line-height:22px;box-shadow:var(--shadow-sm);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.generation-stats[data-v-371341f0]:hover{border-color:var(--border-accent);background:var(--bg-surface);box-shadow:var(--shadow-md)}.generation-stats[data-v-371341f0]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stats-icon[data-v-371341f0]{flex-shrink:0;color:var(--accent-strong)}.stats-viewport[data-v-371341f0]{position:relative;width:min(260px,calc(100vw - 116px));height:22px;overflow:hidden}.stats-message[data-v-371341f0]{position:absolute;top:0;right:0;bottom:0;left:0;white-space:nowrap}.stats-message strong[data-v-371341f0]{margin:0 3px;color:var(--accent-strong);font-weight:600;font-variant-numeric:tabular-nums}.stats-dots[data-v-371341f0]{display:flex;gap:4px;flex-shrink:0}.stats-dots span[data-v-371341f0]{width:4px;height:4px;border-radius:50%;background:var(--border-accent)}.stats-dots .active[data-v-371341f0]{background:var(--accent-strong)}.stats-roll-enter-active[data-v-371341f0],.stats-roll-leave-active[data-v-371341f0]{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1)}.stats-roll-enter-from[data-v-371341f0]{transform:translateY(100%);opacity:0}.stats-roll-leave-to[data-v-371341f0]{transform:translateY(-100%);opacity:0}@media(prefers-reduced-motion:reduce){.stats-roll-enter-active[data-v-371341f0],.stats-roll-leave-active[data-v-371341f0]{transition:none}}.page-content--canvas[data-v-f0b86f1b]{max-width:none;padding:16px 24px}@media(max-width:700px){.page-content--canvas[data-v-f0b86f1b]{padding:10px}}:root{--font-display: "LXGW WenKai", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-body: "LXGW WenKai", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--bg-deep: #f8f5ee;--bg-surface: #ffffff;--bg-elevated: #f3f0e8;--bg-hover: #ece8de;--bg-input: #faf8f3;--border: rgba(0, 0, 0, .08);--border-subtle: rgba(0, 0, 0, .04);--border-accent: rgba(196, 149, 54, .3);--text-primary: #2c2518;--text-secondary: #6b5d4a;--text-muted: #9c8e7a;--text-inverse: #ffffff;--accent: #c49536;--accent-soft: rgba(196, 149, 54, .1);--accent-glow: rgba(196, 149, 54, .05);--accent-strong: #a87d28;--error: #b44848;--error-soft: rgba(180, 72, 72, .1);--success: #4a8f66;--success-soft: rgba(74, 143, 102, .1);--shadow-sm: 0 2px 8px rgba(80, 60, 30, .06);--shadow-md: 0 8px 32px rgba(80, 60, 30, .1);--shadow-lg: 0 24px 64px rgba(80, 60, 30, .14);--shadow-accent: 0 4px 24px rgba(196, 149, 54, .12);font-family:var(--font-body);color:var(--text-primary);text-rendering:optimizeLegibility;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--bg-deep: #0c0c0e;--bg-surface: #161618;--bg-elevated: #1e1e22;--bg-hover: #26262b;--bg-input: #1a1a1e;--border: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .03);--border-accent: rgba(212, 168, 83, .25);--text-primary: #f0ece4;--text-secondary: #a09888;--text-muted: #6b6358;--text-inverse: #0c0c0e;--accent: #d4a853;--accent-soft: rgba(212, 168, 83, .12);--accent-glow: rgba(212, 168, 83, .06);--accent-strong: #c49536;--error: #c45c5c;--error-soft: rgba(196, 92, 92, .12);--success: #5caa7a;--success-soft: rgba(92, 170, 122, .12);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .5);--shadow-accent: 0 4px 24px rgba(212, 168, 83, .15)}*{box-sizing:border-box}html{scroll-behavior:smooth;transition:background-color .35s ease,color .35s ease}body{margin:0;min-width:320px;background:var(--bg-deep);transition:background-color .35s ease}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#app{min-height:100vh}.page-shell{position:relative;min-height:100vh}.page-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(196,149,54,.04),transparent),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(196,149,54,.03),transparent);pointer-events:none;z-index:0;transition:background .35s ease}[data-theme=dark] .page-shell:before{background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(212,168,83,.04),transparent),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(212,168,83,.03),transparent)}.page-content,.site-header{position:relative;z-index:1}.site-header{max-width:1200px;margin:0 auto;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand-title{margin:0;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-primary);text-decoration:none;letter-spacing:.02em;transition:color .2s}.brand-title:hover{color:var(--accent)}.page-content{max-width:1200px;margin:0 auto;padding:32px 24px 80px}.page-content--admin{max-width:none;margin:0;padding:0;width:100%}.section-label{margin:0 0 10px;color:var(--accent);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.generate-panel,.current-job{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.generate-panel{width:100%;padding:28px}.section-heading,.modal-meta{display:flex;justify-content:space-between;gap:16px}.prompt-stack{display:grid;gap:10px}.panel-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-topline .section-label{margin:0}.prompt-input-shell{position:relative;width:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-input);overflow:hidden;transition:border-color .16s,box-shadow .16s,background .16s}.prompt-input-shell:focus-within{border-color:#d4a85366;box-shadow:0 0 0 3px #d4a85314}.prompt-input-shell.dragging{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-accent)}.prompt-textarea{display:block;width:100%;min-height:156px;margin:0;padding:18px 20px 12px;resize:vertical;border:0;background:transparent;color:var(--text-primary);line-height:1.8;outline:none}.prompt-textarea::placeholder{color:var(--text-muted)}.prompt-toolbar{display:flex;align-items:center;gap:8px;padding:0 14px 12px}.prompt-tool-button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);transition:color .16s,border-color .16s,background .16s}.prompt-tool-button:hover:not(:disabled){color:var(--accent);border-color:var(--border-accent);background:var(--accent-soft)}.prompt-tool-button:disabled{cursor:not-allowed;opacity:.5}.reference-chip{display:flex;align-items:center;gap:10px;width:fit-content;max-width:calc(100% - 28px);min-height:46px;margin:0 14px 10px;padding:4px 6px 4px 4px;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface)}.reference-chip.uploading{border-color:var(--border-accent);background:var(--accent-glow)}.reference-chip img,.reference-chip-placeholder{width:38px;height:38px;border-radius:var(--radius-sm);flex:0 0 auto}.reference-chip img{object-fit:cover}.reference-chip-placeholder{display:grid;place-items:center;background:var(--bg-elevated);color:var(--text-muted)}.reference-chip-name{min-width:0;flex:1;overflow:hidden;color:var(--text-secondary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.reference-chip button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-muted);transition:color .16s,background .16s}.reference-chip button:hover{color:var(--error);background:var(--error-soft)}.reference-error{margin:0 16px 10px;color:var(--error);font-size:12px}.reference-chip-spinner,.reference-drawer-loading svg,.reference-drawer-placeholder svg,.reference-drawer-pending svg,.reference-drawer-delete:disabled svg{animation:reference-spin .9s linear infinite}@keyframes reference-spin{to{transform:rotate(360deg)}}.reference-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.reference-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000007a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.reference-drawer-panel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(420px,92vw);height:100%;border-left:1px solid var(--border);background:var(--bg-deep);box-shadow:-8px 0 32px #0000002e;transition:transform .16s cubic-bezier(.25,.46,.45,.94)}.reference-drawer-enter-active,.reference-drawer-leave-active{transition:opacity .16s ease-out}.reference-drawer-enter-from,.reference-drawer-leave-to{opacity:0}.reference-drawer-enter-from .reference-drawer-panel,.reference-drawer-leave-to .reference-drawer-panel{transform:translate(100%)}.reference-drawer-header{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 18px;border-bottom:1px solid var(--border);background:var(--bg-surface)}.reference-drawer-title{margin:0;color:var(--text-primary);font-family:var(--font-display);font-size:17px}.reference-drawer-body{flex:1;overflow-y:auto;padding:16px}.reference-drawer-hint{margin:0 0 12px;color:var(--text-muted);font-size:12px;line-height:1.6}.reference-drawer-loading,.reference-drawer-empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:180px;margin:0;color:var(--text-muted);font-size:13px;text-align:center}.reference-drawer-error{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(180,72,72,.2);border-radius:var(--radius-sm);background:var(--error-soft);color:var(--error);font-size:12px}.reference-drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reference-drawer-item{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);outline:none;cursor:pointer;transition:border-color .16s,filter .16s,box-shadow .16s}.reference-drawer-item:hover,.reference-drawer-item:focus-visible,.reference-drawer-item.selected{border-color:var(--border-accent);box-shadow:0 0 0 2px var(--accent-soft);filter:brightness(1.03)}.reference-drawer-item.pending{cursor:wait}.reference-drawer-item>img,.reference-drawer-placeholder{width:100%;height:100%}.reference-drawer-item>img{display:block;object-fit:cover}.reference-drawer-placeholder{display:grid;place-items:center;color:var(--text-muted)}.reference-drawer-badge,.reference-drawer-pending{position:absolute;left:6px;bottom:6px;display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:4px;background:#0c0c0ec7;color:#fff;font-size:11px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reference-drawer-delete{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#0c0c0ebd;color:#fff;opacity:0;transition:opacity .16s,background .16s}.reference-drawer-item:hover .reference-drawer-delete,.reference-drawer-delete:focus-visible,.reference-drawer-delete:disabled{opacity:1}.reference-drawer-delete:hover:not(:disabled){background:#b44848e6}.reference-drawer-delete:disabled{cursor:wait}.field-label{display:grid;gap:8px;color:var(--text-secondary);font-size:13px;font-weight:700}.panel-actions{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(240px,1fr) minmax(170px,.75fr) auto;align-items:end;gap:16px;margin-top:4px}.billing-estimate{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,auto)) minmax(220px,1fr);align-items:center;gap:12px 24px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:12px}.billing-estimate>div{display:grid;gap:2px}.billing-estimate span{color:var(--text-muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.billing-estimate strong{color:var(--text-primary);font:600 13px/1.4 var(--font-mono)}.billing-estimate p{justify-self:end;margin:0;color:var(--text-muted);text-align:right}.billing-estimate.insufficient{border-color:color-mix(in srgb,var(--error) 35%,var(--border));background:var(--error-soft)}.billing-estimate.insufficient p,.billing-estimate.insufficient strong{color:var(--error)}.model-select{width:100%;min-width:0;padding:12px 36px 12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);outline:none;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b6358' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.model-select:focus{border-color:#d4a85366}.model-select option{background:var(--bg-elevated);color:var(--text-primary)}.size-picker-trigger{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:48px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);text-align:left;transition:border-color .16s,background .16s}.size-picker-trigger:hover,.size-picker-trigger:focus-visible{border-color:var(--border-accent);background:var(--bg-hover)}.size-picker-trigger>svg{flex:0 0 auto;margin-left:auto;color:var(--text-muted)}.size-trigger-preview{display:block;width:30px;max-height:27px;border:1px solid var(--accent);border-radius:2px;background:var(--accent-soft);flex:0 0 auto}.size-trigger-preview.is-auto{border-style:dashed}.size-trigger-copy{display:grid;min-width:0}.size-trigger-copy strong{color:var(--text-primary);font-size:13px}.size-trigger-copy small{overflow:hidden;color:var(--text-muted);font:500 10px/1.35 var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.size-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:24px;background:#050506c2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.size-picker-dialog{width:min(880px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;padding:24px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-lg);outline:none}.size-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.size-picker-header .section-label{margin-bottom:7px}.size-picker-header h2{margin:0;color:var(--text-primary);font-family:var(--font-display);font-size:24px}.size-picker-header span{display:block;margin-top:6px;color:var(--text-muted);font-size:13px}.size-picker-header>button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);transition:color .16s,border-color .16s,background .16s}.size-picker-header>button:hover{border-color:var(--border-accent);background:var(--bg-hover);color:var(--text-primary)}.size-picker-warning{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:11px 12px;border:1px solid rgba(212,168,83,.2);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text-secondary);font-size:12px;line-height:1.55}.size-picker-warning svg{flex:0 0 auto;margin-top:1px;color:var(--accent)}.size-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.size-option-card{position:relative;display:grid;justify-items:center;gap:9px;min-width:0;min-height:142px;padding:13px 10px 11px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-secondary);text-align:center;transition:border-color .16s,background .16s,color .16s}.size-option-card:hover:not(:disabled),.size-option-card:focus-visible:not(:disabled){border-color:var(--border-accent);background:var(--bg-hover)}.size-option-card.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.size-option-card:disabled{cursor:not-allowed;opacity:.4}.size-option-visual{display:grid;place-items:center;width:80px;height:56px}.size-option-shape{display:grid;place-items:center;width:min(76px,calc(54px * var(--image-ratio)));height:min(54px,calc(76px / var(--image-ratio)));border:1px solid currentColor;border-radius:3px;background:linear-gradient(135deg,currentColor 0 1px,transparent 1px) 0 0 / 8px 8px,var(--bg-surface);box-shadow:inset 0 0 0 1px #ffffff05}.size-option-card.is-auto .size-option-shape{border-style:dashed;background:var(--bg-surface)}.size-option-shape small{font:600 8px/1 var(--font-mono);letter-spacing:.08em}.size-option-copy{display:grid;gap:3px;min-width:0}.size-option-copy strong{color:var(--text-primary);font-size:13px}.size-option-copy small,.size-option-copy em{font:500 10px/1.35 var(--font-mono)}.size-option-copy small{color:var(--text-muted)}.size-option-copy em{color:var(--error);font-style:normal}.size-option-check{position:absolute;top:8px;right:8px;color:var(--accent)}.batch-segmented{display:grid;grid-template-columns:repeat(3,1fr);min-height:48px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input)}.batch-segmented button{border:0;border-right:1px solid var(--border);background:transparent;color:var(--text-muted);font-weight:700;transition:color .2s,background .2s}.batch-segmented button:last-child{border-right:0}.batch-segmented button.active{background:var(--accent-soft);color:var(--accent)}.batch-segmented button:hover:not(.active){color:var(--text-secondary);background:var(--bg-hover)}.primary-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-md);padding:0 32px;min-height:48px;min-width:132px;background:var(--accent);color:var(--text-inverse);font-weight:700;font-size:15px;letter-spacing:.02em;box-shadow:var(--shadow-accent);transition:background .2s,transform .1s,box-shadow .2s}.primary-button:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px);box-shadow:0 8px 32px #d4a85340}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{opacity:.5;cursor:progress}.char-count{margin:0;color:var(--text-muted);font-size:13px;font-variant-numeric:tabular-nums}.char-count.over{color:var(--error)}.feedback-banner,.loading-state{margin:24px 0 0;padding:16px 20px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);font-size:14px}.current-jobs-stack{display:grid;gap:16px;margin-top:28px}.current-job{padding:28px;display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.current-job-copy{display:flex;flex-direction:column;justify-content:center}.status-line{display:flex;align-items:center;gap:10px;font-size:26px;color:var(--text-primary);font-family:var(--font-display)}.current-job--failed{border-color:#c45c5c4d}.current-job--failed .status-line{color:var(--error)}.current-job--failed .image-placeholder{color:var(--error);background:radial-gradient(circle at top,rgba(196,92,92,.1),transparent 44%),var(--bg-elevated)}.status-dot{width:10px;height:10px;border-radius:999px;background:var(--accent);box-shadow:0 0 12px #d4a85366;animation:pulse 1.6s infinite}@keyframes pulse{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}}.job-prompt,.job-hint,.job-error,.modal-prompt,.modal-revised{margin:12px 0 0;color:var(--text-secondary);line-height:1.8;font-size:15px}.job-hint{color:var(--accent-strong)}.job-error{color:var(--error)}.job-billing-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.job-billing-meta span,.job-billing-meta strong{padding:4px 7px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);color:var(--text-muted);font:600 11px/1.3 var(--font-mono)}.job-billing-meta .billing-reserved{color:var(--accent);border-color:var(--border-accent)}.job-billing-meta .billing-settled{color:var(--success)}.job-billing-meta .billing-refunded{color:var(--success);border-color:color-mix(in srgb,var(--success) 34%,var(--border))}.job-refund-note{margin:10px 0 0;padding:9px 11px;border-left:2px solid var(--success);background:color-mix(in srgb,var(--success) 6%,var(--bg-surface));color:var(--success);font-size:12px;line-height:1.6}.current-job-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.secondary-button,.ghost-button{min-height:40px;padding:0 16px;border-radius:var(--radius-sm);font-weight:700;font-size:14px;transition:all .2s}.secondary-button{border:0;background:var(--accent);color:var(--text-inverse)}.secondary-button:hover{background:var(--accent-strong)}.ghost-button{border:1px solid var(--border);background:transparent;color:var(--text-muted)}.ghost-button:hover{border-color:var(--text-muted);color:var(--text-secondary);background:var(--bg-hover)}.current-job-result-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block}.current-job-result-image.is-previewable{cursor:zoom-in}.current-job-result-image.is-previewable:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.current-job-preview-source{display:none}.gallery-card img,.modal-image{display:block;width:100%}.current-job-visual{position:relative;align-self:center;width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-elevated)}.image-placeholder{display:grid;place-items:center;height:100%;color:var(--text-muted);background:radial-gradient(circle at top,rgba(212,168,83,.05),transparent 44%),var(--bg-elevated);font-size:15px}.result-image-skeleton,.gallery-card-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:linear-gradient(135deg,rgba(212,168,83,.045),transparent 54%),var(--bg-elevated)}.result-image-skeleton:after,.gallery-card-skeleton:after{position:absolute;top:0;right:0;bottom:0;left:0;width:42%;transform:translate(-160%) skew(-12deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:image-skeleton-scan 1.8s ease-in-out infinite;content:""}.result-image-skeleton{z-index:1;display:grid;place-content:center;gap:6px;border:1px solid var(--border);color:var(--text-secondary);text-align:center}.result-image-skeleton span,.result-image-skeleton small{position:relative;z-index:1}.result-image-skeleton span{font-size:13px;font-weight:700}.result-image-skeleton small{color:var(--text-muted);font:500 11px/1.4 var(--font-mono)}.image-retry-button{position:relative;z-index:1;justify-self:center;min-height:30px;margin-top:4px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:12px;font-weight:700;transition:border-color .16s cubic-bezier(.25,.46,.45,.94),background .16s cubic-bezier(.25,.46,.45,.94),color .16s cubic-bezier(.25,.46,.45,.94)}.image-retry-button:hover,.image-retry-button:focus-visible{border-color:var(--border-accent);background:var(--bg-hover);color:var(--accent)}.result-image-skeleton.is-error,.gallery-card-skeleton.is-error{color:var(--error);background:var(--error-soft)}.result-image-skeleton.is-error:after,.gallery-card-skeleton.is-error:after{animation:none}@keyframes image-skeleton-scan{0%{transform:translate(-160%) skew(-12deg)}58%,to{transform:translate(340%) skew(-12deg)}}.loading-ritual-panel{--ritual-grid-line: rgba(44, 37, 24, .045);--ritual-panel-bg: linear-gradient(160deg, #fffef2 0%, #f3f0e8 52%, #f8f5ee 100%);--ritual-panel-border: rgba(196, 149, 54, .22);--ritual-panel-inset: rgba(196, 149, 54, .07);--ritual-scan-color: rgba(196, 149, 54, .09);--ritual-log-border: rgba(44, 37, 24, .07);--ritual-log-bg: rgba(255, 255, 255, .62);--ritual-track-bg: rgba(44, 37, 24, .08);--ritual-progress-glow: rgba(196, 149, 54, .22);position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:20px;color:var(--text-primary);background:linear-gradient(var(--ritual-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--ritual-grid-line) 1px,transparent 1px),var(--ritual-panel-bg);background-size:24px 24px,24px 24px,auto}[data-theme=dark] .loading-ritual-panel{--ritual-grid-line: rgba(255, 255, 255, .02);--ritual-panel-bg: linear-gradient(160deg, #0e0e10 0%, #141416 50%, #0e100e 100%);--ritual-panel-border: rgba(212, 168, 83, .1);--ritual-panel-inset: rgba(212, 168, 83, .04);--ritual-scan-color: rgba(212, 168, 83, .08);--ritual-log-border: rgba(255, 255, 255, .04);--ritual-log-bg: rgba(0, 0, 0, .3);--ritual-track-bg: rgba(255, 255, 255, .04);--ritual-progress-glow: rgba(212, 168, 83, .3)}.current-job-visual.is-landscape .ritual-stage{margin-top:12px}.current-job-visual.is-landscape .ritual-main{min-height:48px;font-size:20px}.current-job-visual.is-landscape .ritual-log-list{display:none}.loading-ritual-panel:before,.loading-ritual-panel:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:""}.loading-ritual-panel:before{border:1px solid var(--ritual-panel-border);box-shadow:inset 0 0 42px var(--ritual-panel-inset)}.loading-ritual-panel:after{transform:translate(-72%);background:linear-gradient(90deg,transparent,var(--ritual-scan-color),transparent);animation:ritual-scan 5.8s ease-in-out infinite}.ritual-topline,.ritual-stage,.ritual-main,.ritual-log-list,.ritual-progress-track,.ritual-footer{position:relative;z-index:1}.ritual-topline,.ritual-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.ritual-kicker,.ritual-percent,.ritual-footer,.ritual-log-list span{font-family:var(--font-mono)}.ritual-kicker{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(212,168,83,.25);border-radius:999px;color:var(--accent);background:#d4a85314;font-size:11px;font-weight:700;letter-spacing:.04em}.ritual-percent{color:var(--accent);font-size:18px;font-variant-numeric:tabular-nums;font-weight:800}.ritual-stage{margin:22px 0 8px;color:var(--accent);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ritual-main{display:flex;align-items:center;min-height:82px;margin:0;color:var(--text-primary);font-size:24px;font-weight:800;line-height:1.35;word-break:break-word;font-family:var(--font-display)}.type-caret{flex:0 0 auto;width:2px;height:1.2em;margin-left:5px;background:var(--accent);animation:caret-blink 1s steps(1) infinite}.ritual-log-list{display:grid;gap:6px;margin-top:auto}.ritual-log-list span{display:block;overflow:hidden;min-height:28px;padding:6px 9px;border:1px solid var(--ritual-log-border);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--ritual-log-bg);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;transform:translateY(calc(var(--line-index) * 1px));animation:log-float 4.2s ease-in-out infinite;animation-delay:calc(var(--line-index) * -.72s)}.ritual-progress-track{height:6px;margin-top:16px;overflow:hidden;border-radius:999px;background:var(--ritual-track-bg)}.ritual-progress-track span{display:block;width:8%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong));box-shadow:0 0 18px var(--ritual-progress-glow);transition:width .7s ease}.ritual-footer{margin-top:10px;color:var(--text-muted);font-size:11px}@keyframes ritual-scan{0%,36%{transform:translate(-72%)}68%,to{transform:translate(72%)}}@keyframes caret-blink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes log-float{0%,to{opacity:.5}50%{opacity:.8}}.gallery-section{margin-top:48px}.section-heading{align-items:end;margin-bottom:20px}.section-heading h2,.site-footer h2{font-size:clamp(26px,3vw,40px);color:var(--text-primary);font-family:var(--font-display)}.gallery-grid{display:flex;gap:16px}.gallery-column{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.gallery-card{position:relative;display:block;overflow:hidden;width:100%;margin:0;border:1px solid var(--border);padding:0;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.gallery-card-skeleton{z-index:0;display:grid;place-items:center;color:var(--text-muted)}.gallery-card-skeleton small{position:relative;z-index:1;font-size:12px}.gallery-card img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .16s cubic-bezier(.25,.46,.45,.94),transform .4s ease}.gallery-card img.is-loaded{opacity:1}.gallery-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-accent)}.gallery-card:hover img{transform:scale(1.03)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;padding:32px 16px;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center}.modal-panel{width:min(960px,100%);max-height:calc(100vh - 64px);overflow:auto;border-radius:var(--radius-xl);padding:24px;background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.modal-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-bottom:16px}.modal-toolbar--owner{justify-content:space-between}.modal-toolbar-left,.modal-toolbar-right{display:flex;gap:8px}.icon-button,.copy-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;color:var(--text-secondary);background:var(--bg-elevated);transition:color .2s,background .2s}.icon-button.active{color:var(--accent)}.icon-button{width:42px;height:42px}.icon-button:hover{color:var(--text-primary);background:var(--bg-hover)}.modal-image-frame{display:grid;place-items:center;border-radius:var(--radius-lg);background:var(--bg-deep);overflow:hidden}.modal-image{max-height:min(72vh,760px);object-fit:contain}.modal-copy{margin-top:20px;display:grid;gap:12px}.prompt-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.prompt-heading .section-label{margin:0}.copy-button{min-height:36px;padding:0 14px;color:var(--accent);font-size:13px;font-weight:700}.copy-button:hover{background:var(--accent-soft)}.modal-meta{margin-top:8px;color:var(--text-muted);font-size:13px}.header-nav{display:flex;align-items:center;gap:20px}.nav-user{font-size:14px;color:var(--text-secondary);font-weight:700}.nav-link{font-size:14px;color:var(--text-muted);text-decoration:none;background:none;border:none;cursor:pointer;font-family:inherit;padding:0;transition:color .2s}.nav-link:hover{color:var(--text-primary)}.nav-admin{color:var(--accent)}.nav-admin:hover{color:var(--accent-strong)}.nav-logout{color:var(--text-muted)}.auth-page{display:flex;justify-content:center;padding-top:64px}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:40px 36px;width:100%;max-width:400px}.auth-title{margin:0 0 28px;font-family:var(--font-display);font-size:26px;text-align:center;color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--text-secondary);font-weight:700}.auth-input{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:15px;background:var(--bg-input);color:var(--text-primary);font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{border-color:#d4a85366;box-shadow:0 0 0 3px #d4a85314}.auth-error{margin:0;color:var(--error);font-size:14px;text-align:center}.auth-submit{padding:12px 24px;border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--text-inverse);font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .2s,transform .1s;margin-top:4px}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-submit:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.gallery-tabs{display:flex;align-items:center;gap:6px;margin:32px 0 18px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:6px;width:fit-content;box-shadow:var(--shadow-sm)}.gallery-tab{min-width:112px;min-height:40px;padding:0 22px;border:none;border-radius:var(--radius-md);background:transparent;font-size:14px;line-height:1;font-family:inherit;cursor:pointer;color:var(--text-muted);font-weight:700;white-space:nowrap;transition:all .2s}.gallery-tab.active{background:var(--accent-soft);color:var(--accent)}.gallery-tab:hover:not(.active){color:var(--text-secondary)}.gallery-heading{margin:12px 0 20px;font-family:var(--font-display);font-size:22px;color:var(--text-primary);font-weight:700}.gallery-card-wrap{position:relative}.gallery-card-username{position:absolute;bottom:8px;left:8px;padding:3px 10px;border-radius:var(--radius-sm);background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:12px;font-weight:700;pointer-events:none;z-index:2}.gallery-card-delete{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:16px;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;display:flex;align-items:center;justify-content:center}.gallery-card-wrap:hover .gallery-card-delete{opacity:1}.gallery-card-delete:hover{background:var(--error)}.gallery-header-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:32px 0 18px}.gallery-header-row .gallery-tabs{margin:0}.gallery-header-row .gallery-heading{margin:0;flex:1}.gallery-heading-copy{margin:6px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.6}.gallery-visibility-note{display:grid;gap:5px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--border-accent);border-radius:var(--radius-md);background:var(--accent-glow)}.gallery-visibility-note strong{color:var(--text-primary);font-size:13px}.gallery-visibility-note p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.65}.gallery-visibility-note.compact{margin-top:-4px}.public-gallery-heading-row{justify-content:space-between}.gallery-sort-toggle{display:flex;align-items:center;gap:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px}.sort-btn{min-width:56px;min-height:32px;padding:0 14px;border:none;border-radius:var(--radius-md);background:transparent;font-size:13px;font-family:inherit;font-weight:700;cursor:pointer;color:var(--text-muted);transition:all .2s}.sort-btn.active{background:var(--accent-soft);color:var(--accent)}.sort-btn:hover:not(.active){color:var(--text-secondary)}.gallery-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.gallery-search-input{flex:1;min-width:200px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .2s,box-shadow .2s}.gallery-search-input::placeholder{color:var(--text-muted)}.gallery-search-input:focus{border-color:#d4a85366;box-shadow:0 0 0 3px #d4a85314}.gallery-date-input{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:.85rem;outline:none;transition:border-color .2s}.gallery-date-input:focus{border-color:#d4a85366}.gallery-date-sep{color:var(--text-muted);font-size:.85rem}.gallery-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;font-size:.9rem;color:var(--text-secondary)}.gallery-page-info{font-variant-numeric:tabular-nums;min-width:60px;text-align:center}.scroll-sentinel{text-align:center;padding:24px 0;color:var(--text-muted);font-size:.85rem}.gallery-card-owner-actions{position:absolute;top:8px;left:8px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.gallery-card-wrap:hover .gallery-card-owner-actions{opacity:1}.gallery-action-btn{width:30px;height:30px;border-radius:50%;border:none;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.gallery-action-btn:hover{background:#000c}.gallery-action-btn.active{color:var(--accent)}.gallery-card-like-bar{position:absolute;bottom:8px;right:8px;opacity:0;transition:opacity .2s}.gallery-card-wrap:hover .gallery-card-like-bar{opacity:1}.gallery-like-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-sm);border:none;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .2s,color .2s}.gallery-like-btn:hover{background:#000c}.gallery-like-btn.liked{color:#e53935}.public-gallery-page{min-height:40vh}.gallery-error{text-align:center;padding:64px 24px;color:var(--text-muted)}.gallery-error p{margin:0 0 20px;font-size:16px;color:var(--text-secondary)}.back-link{color:var(--accent);text-decoration:none;font-weight:700;transition:color .2s}.back-link:hover{color:var(--accent-strong)}.admin-page{min-height:100vh;background:var(--bg-deep)}.admin-auth-wrap{display:grid;place-items:center;min-height:100vh;padding:24px}.admin-auth-card{width:min(420px,100%)}.admin-layout{display:grid;grid-template-columns:224px minmax(0,1fr);grid-template-rows:56px 1fr;grid-template-areas:"topbar topbar" "sidebar main";min-height:100vh}.admin-topbar{grid-area:topbar;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:0 20px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.admin-topbar-copy{display:flex;align-items:baseline;gap:10px;min-width:0}.admin-topbar-copy span{color:var(--text-muted);font-size:12px}.admin-topbar-copy strong{overflow:hidden;color:var(--text-primary);font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.admin-logout-btn{margin-left:auto}.admin-hamburger{display:none}.admin-sidebar{grid-area:sidebar;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;background:var(--bg-surface);border-right:1px solid var(--border);padding:14px 10px}.admin-sidebar-brand{padding:8px 12px 18px;color:var(--text-muted);font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:color .16s,background .16s}.admin-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-nav-item.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--border-accent)}.admin-sidebar-backdrop{display:none;padding:0;border:0}.admin-main{grid-area:main;min-width:0;padding:28px 30px 72px;overflow-x:hidden}.admin-section-view{width:100%;max-width:1440px;margin:0 auto}.section-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-header>div{min-width:0}.section-header h1{margin:0;color:var(--text-primary);font-size:22px;font-weight:600;letter-spacing:-.02em}.section-header>div>span{display:block;margin-top:5px;color:var(--text-muted);font-size:13px}.section-kicker{margin:0 0 6px;color:var(--accent);font:600 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.admin-form-modal{width:min(560px,calc(100vw - 32px))}@media(max-width:1024px){.panel-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.current-job{grid-template-columns:1fr}}@media(max-width:768px){.admin-layout{grid-template-columns:1fr;grid-template-areas:"topbar" "main"}.admin-hamburger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s,background .2s}.admin-hamburger:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-sidebar{position:fixed;top:0;left:0;z-index:30;width:260px;height:100vh;transform:translate(-100%);transition:transform .16s cubic-bezier(.25,.46,.45,.94);padding-top:68px}.admin-sidebar.open{transform:translate(0)}.admin-sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-main{padding:20px 16px 80px}.section-header{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.site-header{flex-wrap:wrap;gap:12px}.header-nav{gap:14px}.page-content{padding-inline:16px}.panel-topline{align-items:flex-start;flex-direction:column;gap:6px}.panel-actions{grid-template-columns:1fr}.billing-estimate{grid-template-columns:1fr 1fr}.billing-estimate p{grid-column:1 / -1;justify-self:start;text-align:left}.reference-drawer-panel{width:100%}.reference-drawer-delete{opacity:1}.primary-button{width:100%}.size-picker-backdrop{align-items:end;padding:0}.size-picker-dialog{width:100%;max-height:88vh;padding:20px 16px 24px;border-right:0;border-bottom:0;border-left:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.size-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-tabs{width:100%}.gallery-tab{flex:1;min-width:0}.gallery-header-row{flex-direction:column;align-items:flex-start;gap:12px}.gallery-sort-toggle{align-self:flex-end}.gallery-card-owner-actions,.gallery-card-like-bar{opacity:1}.ritual-main{min-height:72px;font-size:20px}.ritual-log-list span{white-space:normal}}.profile-page{max-width:720px;margin:0 auto;padding:40px 20px 80px}.profile-title{font-family:var(--font-display);font-size:1.6rem;margin-bottom:28px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.profile-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.card-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.credits-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.credits-value{font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--accent);line-height:1.1;margin-bottom:8px}.credits-hint{font-size:.82rem;color:var(--text-muted)}.redeem-row{display:flex;gap:8px}.redeem-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:.9rem}.redeem-input::placeholder{color:var(--text-muted)}.redeem-feedback{margin-top:8px;font-size:.85rem;color:var(--error)}.redeem-feedback.success{color:var(--success)}.profile-edit-card,.email-card{grid-column:1 / -1}.email-card .email-binding-panel,.email-card .email-binding-panel.verified{margin:0;padding:0;border:0;background:transparent}.profile-edit-card .field-label{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.profile-edit-card .field-label span{font-size:.82rem;color:var(--text-secondary)}.field-input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .16s,box-shadow .16s,background .16s}.field-input::placeholder{color:var(--text-muted)}.field-input:disabled{cursor:not-allowed;color:var(--text-muted);background:var(--bg-elevated)}.field-input:focus{border-color:var(--border-accent);box-shadow:0 0 0 3px var(--accent-soft)}.email-binding-panel{display:grid;gap:12px;margin:4px 0 18px;padding:16px;border:1px solid var(--border-accent);border-radius:6px;background:var(--accent-glow)}.email-binding-panel.verified{border-color:color-mix(in srgb,var(--success) 28%,var(--border));background:color-mix(in srgb,var(--success) 6%,var(--bg-surface))}.email-binding-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.email-binding-heading>div{display:grid;gap:3px}.email-binding-heading strong{color:var(--text-primary);font-size:14px;line-height:1.4}.email-binding-label{color:var(--text-muted);font:700 10px/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.email-status-tag{flex:0 0 auto;padding:3px 7px;border:1px solid currentColor;border-radius:4px;color:var(--accent);font:700 11px/1.3 var(--font-mono)}.verified .email-status-tag{color:var(--success)}.verified-email{width:fit-content;max-width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;overflow-wrap:anywhere}.email-binding-hint{margin:0;color:var(--text-tertiary);font-size:12px;line-height:1.6}.email-card .email-binding-field{margin:0}.email-field-row{display:grid;grid-template-columns:minmax(0,1fr) 126px;gap:8px}.email-code-button,.email-bind-button{min-height:38px;padding:0 12px;border-radius:4px;font-family:inherit;font-size:12px;font-weight:700;white-space:nowrap}.email-code-button{border:1px solid var(--border-accent);background:var(--accent-soft);color:var(--accent);transition:border-color .16s,background .16s,color .16s}.email-code-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-glow);color:var(--accent-strong)}.email-code-button:disabled,.email-bind-button:disabled{cursor:not-allowed;opacity:.55}.email-code-input{font-family:var(--font-mono);letter-spacing:.16em}.email-binding-feedback{margin:0;color:var(--error);font-size:12px;line-height:1.5}.email-binding-feedback.success{color:var(--success)}.field-checkbox{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--text-secondary);cursor:pointer;margin-bottom:12px}.field-checkbox input{accent-color:var(--accent)}.field-hint{font-size:.82rem;color:var(--text-tertiary);margin:-4px 0 12px;line-height:1.5}.gallery-link-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.gallery-link-url{font-size:.82rem;color:var(--text-secondary);background:var(--bg-secondary);padding:4px 8px;border-radius:4px;word-break:break-all;flex:1;min-width:0}.profile-actions{display:flex;align-items:center;gap:12px}.profile-feedback{font-size:.85rem;color:var(--success)}.history-card{grid-column:1 / -1;overflow-x:auto}.history-loading,.history-empty{padding:24px 0;text-align:center;color:var(--text-muted);font-size:.9rem}.history-table{width:100%;min-width:650px;border-collapse:collapse;font-size:.88rem}.history-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.history-table td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.txn-positive{color:var(--success);font-weight:600}.txn-negative{color:var(--error);font-weight:600}.txn-type{color:var(--text-secondary);font-size:12px}.txn-model{display:block;color:var(--text-secondary);font-size:12px}.txn-billing-status{display:inline-block;margin-top:3px;padding:2px 5px;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font:600 10px/1.3 var(--font-mono)}.txn-billing-status.is-refunded,.txn-billing-status.is-settled{color:var(--success)}.history-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;font-size:.85rem;color:var(--text-muted)}@media(max-width:640px){.profile-grid{grid-template-columns:minmax(0,1fr)}.profile-page{padding-inline:16px}.profile-card,.redeem-input,.field-input,.email-field-row{min-width:0}.redeem-row{display:grid;grid-template-columns:minmax(0,1fr)}.email-field-row{grid-template-columns:1fr}.email-code-button,.email-bind-button{width:100%}}@media(prefers-reduced-motion:reduce){.loading-ritual-panel:after,.type-caret,.ritual-log-list span{animation:none}.ritual-progress-track span,.gallery-card,.gallery-card img,.current-job-result-image{transition:none}.result-image-skeleton:after,.gallery-card-skeleton:after{animation:none}.size-picker-trigger,.size-picker-header>button,.size-option-card{transition:none}.reference-chip-spinner,.reference-drawer-loading svg,.reference-drawer-placeholder svg,.reference-drawer-pending svg,.reference-drawer-delete:disabled svg{animation:none}.reference-drawer,.reference-drawer-panel,.admin-sidebar,.field-input,.email-code-button{transition:none}}.reference-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 10px}.reference-chips .reference-chip{margin:0;max-width:100%}.reference-count{margin:0 16px 10px;color:var(--text-muted);font-size:12px}.reference-count.reference-error{color:var(--error)}.reference-drawer-item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.reference-drawer-item[data-selection-full=true]>img{opacity:.5}.current-job-batch{padding:24px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);min-width:0}.batch-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.batch-heading>span:last-child{color:var(--text-muted);font-size:14px}.job-prompt-details{min-width:0;margin:12px 0}.job-prompt-details summary{cursor:pointer}.job-prompt-details:not([open]) summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-prompt-details summary:before{content:"展开提示词 · ";color:var(--text-muted);font-size:12px}.job-prompt-details[open] summary{font-size:0}.job-prompt-details[open] summary:before{content:"收起提示词"}.job-prompt,.job-prompt-full{overflow-wrap:anywhere}.job-prompt-full{white-space:pre-wrap;max-height:240px;overflow-y:auto;line-height:1.7}.batch-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.batch-job-item{min-width:0;padding:12px;border-radius:var(--radius-lg);background:var(--bg-elevated)}.batch-job-number{color:var(--text-muted);font-size:12px}.current-job.current-job--compact{padding:8px 0 0;grid-template-columns:minmax(0,1fr);gap:12px;border:0;box-shadow:none;background:transparent}.current-job--compact .status-line{font-size:18px}.current-job--compact .current-job-visual{grid-row:1;max-height:360px}.current-job--compact .current-job-actions{flex-wrap:wrap}@media(max-width:600px){.current-job-batch{padding:16px}.batch-job-grid{grid-template-columns:minmax(0,1fr)}}.current-job.current-job--loading-only{padding:0;margin:16px 0;display:block;border:0;box-shadow:none;background:transparent}.current-job--loading-only .loading-ritual-panel{min-height:260px}
