:root{--gen-bg: #0e1014;--gen-bg-soft: #161a22;--gen-bg-muted: #1c2230;--gen-card: #141820;--gen-border: #262c3a;--gen-border-strong: #3a4358;--gen-text: #e8eaef;--gen-text-secondary: #9aa3b5;--gen-text-tertiary: #6d7689;--gen-accent: #6ea8ff;--gen-accent-soft: #3d6db5;--gen-accent-fg: #0b1220;--gen-success: #3ecf8e;--gen-success-bg: rgba(62, 207, 142, .12);--gen-danger: #ff6b6b;--gen-danger-bg: rgba(255, 107, 107, .12);--gen-warn: #f0b429;--gen-warn-bg: rgba(240, 180, 41, .12);--gen-radius: 14px;--gen-radius-sm: 10px;--gen-font: "Inter", "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--gen-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--gen-max: 760px}html,body,#root{background:var(--gen-bg)!important;color:var(--gen-text)!important}body{font-size:15px!important}::selection{background:#0d0d0d1f;color:var(--gen-text)}*,*:before,*:after{box-sizing:border-box}.gen-page{min-height:100%;max-width:var(--gen-max);margin:0 auto;padding:32px 24px 80px;background:var(--gen-bg);color:var(--gen-text);font-family:var(--gen-font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.gen-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.gen-brand{font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:var(--gen-text)}.gen-topbar .gen-btn.ghost{width:auto;margin:0;padding:6px 12px;font-size:.8125rem;font-weight:500}.gen-hero{margin-bottom:36px}.gen-hero h1{font-size:1.75rem;font-weight:600;margin:0 0 8px;letter-spacing:-.03em;line-height:1.2;color:var(--gen-text);background:none;-webkit-background-clip:unset;background-clip:unset}.gen-page .sub{color:var(--gen-text-secondary);font-size:.9375rem;margin:0 0 20px;line-height:1.5;font-weight:400;letter-spacing:-.01em}.gen-showcase{display:flex;flex-direction:column;gap:10px;margin-top:4px}.gen-showcase-clip{position:relative;width:100%;aspect-ratio:16 / 9;height:auto;overflow:hidden;background:#0a0c10;min-height:0;border-radius:var(--gen-radius);border:1px solid var(--gen-border)}.gen-showcase-clip video,.gen-showcase-clip img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92) contrast(.98)}.gen-showcase-fade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,transparent 50%,rgba(14,16,20,.72) 100%)}.gen-showcase-caption{margin:0;font-size:.875rem;line-height:1.5;color:var(--gen-text-secondary);letter-spacing:-.01em;font-weight:400}.gen-section-title{display:flex;align-items:center;gap:10px;font-size:.8125rem;font-weight:600;letter-spacing:-.01em;text-transform:none;color:var(--gen-text);margin:0 0 14px}.gen-section-title:before{content:none}.gen-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;border:1px solid var(--gen-border-strong);background:var(--gen-bg);color:var(--gen-text-secondary);font-size:.6875rem;font-weight:600;flex-shrink:0}.gen-card{background:var(--gen-card);border:1px solid var(--gen-border);border-radius:var(--gen-radius);padding:20px 20px 18px;margin-bottom:12px;box-shadow:none;transition:border-color .15s ease}.gen-card:hover{border-color:var(--gen-border-strong)}.gen-card label{display:block;font-size:.8125rem;font-weight:500;color:var(--gen-text-secondary);margin-bottom:6px;letter-spacing:-.01em}.gen-card textarea,.gen-card input[type=password],.gen-card input[type=number],.gen-card select{width:100%;background:var(--gen-bg);border:1px solid var(--gen-border);border-radius:var(--gen-radius-sm);color:var(--gen-text);padding:10px 12px;font-size:.9375rem;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease;-moz-appearance:none;appearance:none;-webkit-appearance:none}.gen-card select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239aa3b5' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer;background-color:var(--gen-bg)}.gen-card textarea{min-height:120px;resize:vertical;line-height:1.55}.gen-card textarea:focus,.gen-card input:focus,.gen-card select:focus{border-color:var(--gen-accent);box-shadow:0 0 0 1px var(--gen-accent)}.gen-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:1px solid transparent;border-radius:999px;padding:11px 18px;font-size:.9375rem;font-weight:600;font-family:inherit;letter-spacing:-.01em;cursor:pointer;background:var(--gen-accent);color:var(--gen-accent-fg);box-shadow:none;transition:background .15s ease,opacity .15s ease,border-color .15s ease,color .15s ease,filter .15s ease}.gen-btn:hover:not(:disabled){filter:brightness(1.08);transform:none;box-shadow:none}.gen-btn:active:not(:disabled){filter:brightness(.95)}.gen-btn:disabled{opacity:.35;cursor:not-allowed}.gen-btn.ghost{background:transparent;border:1px solid var(--gen-border);color:var(--gen-text-secondary);margin-top:10px}.gen-btn.ghost:hover:not(:disabled){border-color:var(--gen-border-strong);color:var(--gen-text);background:var(--gen-bg-soft)}.gen-btn.secondary{background:var(--gen-bg);border:1px solid var(--gen-border);color:var(--gen-text);margin-top:0}.gen-btn.secondary:hover:not(:disabled){background:var(--gen-bg-soft);border-color:var(--gen-border-strong)}.gen-btn.pro{background:var(--gen-accent);margin-top:4px}.gen-btn-row{display:flex;gap:8px;flex-wrap:wrap}.gen-btn-row .gen-btn{flex:1;min-width:120px}.gen-photo{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 0}.gen-photo img,.gen-photo-ph{width:112px;height:112px;border-radius:var(--gen-radius);border:1px solid var(--gen-border)}.gen-photo img{object-fit:cover;box-shadow:none}.gen-photo-ph{background:var(--gen-bg-soft);border-style:dashed;border-color:var(--gen-border-strong)}.gen-photo .pick{font-size:.8125rem;font-weight:500;color:var(--gen-text);cursor:pointer;padding:6px 14px;border-radius:999px;border:1px solid var(--gen-border);background:var(--gen-bg);transition:background .15s ease,border-color .15s ease}.gen-photo .pick:hover{background:var(--gen-bg-soft);border-color:var(--gen-border-strong)}.gen-row{display:flex;gap:12px;flex-wrap:wrap}.gen-row>*{flex:1;min-width:120px}.gen-err{background:var(--gen-danger-bg);color:var(--gen-danger);border:1px solid #f0d0cc;border-radius:var(--gen-radius-sm);padding:10px 12px;font-size:.8125rem;margin-bottom:12px;line-height:1.45}.gen-ok{background:var(--gen-success-bg);color:var(--gen-success);border:1px solid #cfe8d6;border-radius:var(--gen-radius-sm);padding:10px 12px;font-size:.8125rem;margin-bottom:12px}.gen-status{text-align:center;padding:10px;color:var(--gen-text-secondary);font-size:.875rem}.gen-video{width:100%;border-radius:var(--gen-radius-sm);background:#111;margin-top:10px;max-height:70vh;border:1px solid var(--gen-border)}.gen-hint{font-size:.75rem;color:var(--gen-text-tertiary);margin-top:10px;line-height:1.5}.gen-hint.center{text-align:center}.gen-hint.emphasis{color:var(--gen-text-secondary)}.gen-before-after{margin-top:14px;padding:14px;border-radius:var(--gen-radius-sm);border:1px solid var(--gen-border);background:var(--gen-bg-soft)}.gen-ba-label{font-size:.8125rem;font-weight:600;color:var(--gen-text);margin-bottom:10px;letter-spacing:-.01em}.gen-rewritten{min-height:180px!important;font-family:var(--gen-mono)!important;font-size:.8125rem!important;line-height:1.55!important;border-color:var(--gen-border)!important;background:#fff!important}.gen-field-gap{margin-top:14px}.gen-specs-note{margin-top:12px;padding:0;border:none;background:none;font-size:.75rem;color:var(--gen-text-tertiary);line-height:1.5}.gen-h3-preview{border:1px solid var(--gen-border-strong);box-shadow:none;background:var(--gen-bg-soft)}.gen-h3-preview .gen-ba-label{color:var(--gen-text);font-weight:600;font-size:.8125rem}.gen-rewritten-lg{min-height:200px!important;font-size:.8125rem!important;line-height:1.55!important}.gen-warn{background:var(--gen-warn-bg);color:var(--gen-warn);border:1px solid #f0e0b0;border-radius:var(--gen-radius-sm);padding:10px 12px;font-size:.8125rem;margin:0 0 10px;line-height:1.45}.gen-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.gen-mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:14px;border-radius:var(--gen-radius-sm);border:1px solid var(--gen-border);background:var(--gen-bg);color:var(--gen-text);cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}.gen-mode-card strong{font-size:.875rem;font-weight:600;letter-spacing:-.01em}.gen-mode-card span{font-size:.75rem;line-height:1.45;color:var(--gen-text-secondary)}.gen-mode-card.replicate,.gen-mode-card.breakdown{border-color:var(--gen-border)}.gen-mode-card.replicate:hover:not(:disabled),.gen-mode-card.breakdown:hover:not(:disabled){border-color:var(--gen-text);box-shadow:none;transform:none;background:var(--gen-bg-soft)}.gen-mode-card:disabled{opacity:.4;cursor:not-allowed}.gen-login-wrap{max-width:400px;margin:48px auto 0}.gen-submit-wrap{margin-top:8px}a{color:var(--gen-text);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--gen-accent-soft)}@media(max-width:520px){.gen-page{padding:20px 16px 64px}.gen-hero h1{font-size:1.5rem}.gen-showcase-clip{aspect-ratio:16 / 9}.gen-showcase-caption{font-size:.8125rem}.gen-mode-grid{grid-template-columns:1fr}.gen-row>*{min-width:100%}}.gen-auth-tabs{display:inline-flex;gap:4px;padding:3px;margin-bottom:16px;border:1px solid var(--gen-border);border-radius:999px;background:var(--gen-bg-soft)}.gen-auth-tabs button{border:none;background:transparent;padding:7px 16px;border-radius:999px;font-size:.8125rem;font-weight:500;font-family:inherit;color:var(--gen-text-secondary);cursor:pointer}.gen-auth-tabs button.on{background:var(--gen-text);color:#fff}.gen-topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gen-user-chip{font-size:.75rem;color:var(--gen-text-secondary);max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gen-btn.gen-link-btn{text-decoration:none;width:auto;display:inline-flex}.gen-download-link{display:block;text-align:center;margin-top:18px;font-size:.875rem;color:var(--gen-text-secondary);text-decoration:none;border-bottom:1px solid var(--gen-border);width:fit-content;margin-left:auto;margin-right:auto;padding-bottom:2px}.gen-download-link:hover{color:var(--gen-text);border-color:var(--gen-text)}.gen-card input[type=text]{width:100%;background:var(--gen-bg);border:1px solid var(--gen-border);border-radius:var(--gen-radius-sm);color:var(--gen-text);padding:10px 12px;font-size:.9375rem;font-family:inherit;outline:none}.gen-card input[type=text]:focus{border-color:var(--gen-text);box-shadow:0 0 0 1px var(--gen-text)}.gen-desktop-cta{margin-top:12px;padding:12px 14px;border:1px dashed var(--gen-border);border-radius:var(--gen-radius-sm);background:var(--gen-bg-soft);display:flex;flex-direction:column;gap:10px;align-items:stretch}.gen-desktop-cta p{margin:0;font-size:.8125rem;color:var(--gen-text-secondary);line-height:1.45}.gen-desktop-cta strong{color:var(--gen-text);font-weight:600}.gen-pay-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#00000073;display:flex;align-items:flex-end;justify-content:center;padding:16px}.gen-pay-sheet{width:100%;max-width:420px;background:var(--gen-bg);border:1px solid var(--gen-border);border-radius:16px 16px 12px 12px;padding:20px 18px 22px;box-shadow:0 12px 40px #0000002e}.gen-pay-sheet h2{margin:0 0 8px;font-size:1.125rem;letter-spacing:-.02em}.gen-pay-lead{margin:0 0 14px;font-size:.875rem;color:var(--gen-text-secondary);line-height:1.5}.gen-pay-divider{margin:16px 0 12px;text-align:center;font-size:.75rem;color:var(--gen-text-secondary);position:relative}.gen-pay-qr{display:block;width:200px;height:200px;margin:8px auto;border-radius:8px;background:#fff}.gen-pay-hint{margin:8px 0 0;font-size:.8125rem;color:var(--gen-text-secondary);text-align:center;line-height:1.45}@media(min-width:640px){.gen-pay-mask{align-items:center}.gen-pay-sheet{border-radius:16px}}.gen-brand{display:inline-flex;align-items:center;gap:8px}.gen-brand-badge{font-size:.6875rem;font-weight:600;letter-spacing:.02em;padding:3px 8px;border-radius:999px;background:#6ea8ff24;color:var(--gen-accent);border:1px solid rgba(110,168,255,.28)}.gen-console-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(min-width:640px){.gen-console-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.gen-toggle-row{display:flex;flex-direction:column;gap:8px;margin-top:14px}.gen-toggle{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;border-radius:var(--gen-radius-sm);border:1px solid var(--gen-border);background:var(--gen-bg-soft);color:var(--gen-text);cursor:pointer;font-family:inherit}.gen-toggle.on{border-color:#6ea8ff73;background:#6ea8ff14}.gen-toggle:disabled{opacity:.45;cursor:not-allowed}.gen-toggle-track{width:40px;height:22px;border-radius:999px;background:#2a3142;position:relative;flex-shrink:0;transition:background .15s ease}.gen-toggle.on .gen-toggle-track{background:var(--gen-accent)}.gen-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s ease}.gen-toggle.on .gen-toggle-track:after{transform:translate(18px)}.gen-toggle-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.gen-toggle-meta strong{font-size:.875rem;font-weight:600}.gen-toggle-meta em{font-style:normal;font-size:.75rem;color:var(--gen-text-tertiary)}.gen-progress{height:6px;border-radius:999px;background:var(--gen-bg-muted);overflow:hidden;margin:10px 0 4px}.gen-progress-bar{height:100%;background:linear-gradient(90deg,var(--gen-accent-soft),var(--gen-accent));border-radius:inherit;transition:width .25s ease}.gen-jobs .gen-section-title{justify-content:flex-start}.gen-btn.gen-mini{width:auto;margin-left:auto;padding:4px 10px;font-size:.75rem}.gen-job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.gen-job-item{border:1px solid var(--gen-border);border-radius:var(--gen-radius-sm);background:var(--gen-bg-soft);overflow:hidden}.gen-job-item.st-success{border-color:#3ecf8e59}.gen-job-item.st-failed{border-color:#ff6b6b59}.gen-job-hit{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.gen-job-id{font-family:var(--gen-mono);font-size:.8125rem;color:var(--gen-accent);flex-shrink:0}.gen-job-meta{flex:1;min-width:0;font-size:.8125rem;color:var(--gen-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gen-job-preview{font-size:.75rem;color:var(--gen-success);flex-shrink:0}.gen-user-chip{background:var(--gen-bg-muted);border:1px solid var(--gen-border);color:var(--gen-text-secondary)}.gen-ok{background:var(--gen-success-bg);color:var(--gen-success);border:1px solid rgba(62,207,142,.25)}.gen-err{background:var(--gen-danger-bg);color:var(--gen-danger);border:1px solid rgba(255,107,107,.25)}.gen-mode-card{background:var(--gen-bg-soft);border-color:var(--gen-border)}.gen-mode-card:hover:not(:disabled){border-color:var(--gen-accent)}.gen-pay-mask{background:#06080cb8}.gen-pay-sheet{background:var(--gen-card);border:1px solid var(--gen-border);color:var(--gen-text)}.gen-video{background:#000;border:1px solid var(--gen-border)}.gen-credits-chip{font-variant-numeric:tabular-nums;font-weight:600;color:#0f766e;background:#0f766e1a;border-color:#0f766e40}

/* 2026-10-26: WeChat face-photo tap — dashed box clickable; avoid input[hidden] */
.gen-photo-ph{cursor:pointer}
.gen-photo img{cursor:pointer}
.gen-file-input{position:fixed;left:-100vw;top:0;width:1px;height:1px;opacity:0.01;overflow:hidden}
