*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-body:#f5f6f7;--bg-surface:#fff;--bg-input:#fff;--bg-navbar:#fff;--bg-file-info:#f0f4fb;--bg-upload-hover:#f0f4fb;--bg-select:#fff;--bg-progress:#e8eaed;--text-primary:#1a3250;--text-body:#2c3e50;--text-secondary:#7f8c8d;--text-muted:#95a5a6;--text-placeholder:#b0b8c1;--border-color:#dcdfe6;--border-light:#e8eaed;--accent:#4472c4;--accent-hover:#3a65b0;--accent-light:#a0b4d0;--green:#388e3c;--red:#c0392b}[data-theme=dark]{--bg-body:#1a1b1e;--bg-surface:#25262b;--bg-input:#2c2d32;--bg-navbar:#1e1f24;--bg-file-info:#2a2d35;--bg-upload-hover:#2a2d35;--bg-select:#2c2d32;--bg-progress:#3a3b40;--text-primary:#e0e0e0;--text-body:#c8ccd0;--text-secondary:#90959a;--text-muted:#6c7178;--text-placeholder:#585d64;--border-color:#3a3b40;--border-light:#333438;--accent:#5b8dd9;--accent-hover:#4a7cc7;--accent-light:#3a4a60;--green:#4caf50;--red:#e06c75}body{background:var(--bg-body);color:var(--text-body);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6;transition:background .3s,color .3s}.navbar{background:var(--bg-navbar);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 40px;display:flex}.logo{color:var(--text-primary);letter-spacing:.5px;font-size:18px;font-weight:700}.logo span{color:var(--accent)}.nav-right{align-items:center;gap:12px;display:flex}.btn-theme{border:1.5px solid var(--border-color);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex}.btn-theme:hover{border-color:var(--accent);color:var(--accent)}.btn-login{border:1.5px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:8px 24px;font-size:14px}.btn-login:hover{background:var(--accent);color:#fff}.main{max-width:900px;margin:0 auto;padding:60px 20px}.hero{text-align:center;margin-bottom:48px}.hero h1{color:var(--text-primary);margin-bottom:8px;font-size:28px;font-weight:700}.hero p{color:var(--text-secondary);font-size:15px}.cards{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border-light);cursor:pointer;border-radius:10px;padding:32px 24px;transition:border-color .2s,box-shadow .2s}.card:hover{border-color:var(--accent);box-shadow:0 2px 12px #4472c414}.card.active{border-color:var(--accent);box-shadow:0 2px 12px #4472c41f}.card-icon{border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:16px;font-size:20px;display:flex}.card h3{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:600}.card p{color:var(--text-muted);font-size:13px;line-height:1.5}.input-area{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:10px;padding:32px}.input-area label{color:var(--text-primary);margin-bottom:12px;font-size:14px;font-weight:600;display:block}.input-row{gap:12px;margin-bottom:16px;display:flex}.input-row input{border:1px solid var(--border-color);color:var(--text-body);background:var(--bg-input);border-radius:6px;outline:none;flex:1;padding:12px 16px;font-size:14px;transition:border-color .2s}.input-row input:focus{border-color:var(--accent)}.input-row input::placeholder{color:var(--text-placeholder)}.input-row select{border:1px solid var(--border-color);color:var(--text-body);background:var(--bg-select);cursor:pointer;border-radius:6px;outline:none;min-width:140px;padding:12px 16px;font-size:14px}.upload-zone{border:2px dashed var(--border-color);text-align:center;cursor:pointer;border-radius:10px;margin-bottom:16px;padding:36px 24px;transition:border-color .2s,background .2s}.upload-zone:hover{border-color:var(--accent);background:var(--bg-upload-hover)}.upload-icon{margin-bottom:10px;font-size:32px}.upload-text{color:var(--text-secondary);font-size:14px}.upload-hint{color:var(--text-placeholder);margin-top:6px;font-size:12px}.file-info{background:var(--bg-file-info);color:var(--text-body);border-radius:6px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.file-info .file-name{flex:1;font-weight:500}.file-info .file-remove{cursor:pointer;color:var(--red);padding:0 4px;font-size:18px;font-weight:700}.btn-generate{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:13px 0;font-size:15px;font-weight:600;transition:background .2s}.btn-generate:hover{background:var(--accent-hover)}.btn-generate:disabled{background:var(--accent-light);cursor:not-allowed}.output-area{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:10px;margin-top:24px;padding:24px 28px}.output-header{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.btn-stop{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:6px 16px;font-size:13px}.btn-stop:hover{border-color:var(--red);color:var(--red)}.output-error{background:var(--bg-file-info);border-left:3px solid var(--red);color:var(--red);border-radius:4px;margin-bottom:12px;padding:12px 16px;font-size:14px}.output-text{color:var(--text-body);white-space:pre-wrap;word-break:break-word;max-height:60vh;font-family:SF Mono,Consolas,Microsoft YaHei,monospace;font-size:14px;line-height:1.7;overflow-y:auto}.mode-hint{color:var(--text-placeholder);margin-top:12px;font-size:12px}.polish-progress{background:var(--bg-file-info);border-left:3px solid var(--accent);color:var(--text-secondary);border-radius:4px;margin-bottom:12px;padding:10px 14px;font-size:13px}.progress-log{background:var(--bg-file-info);color:var(--text-secondary);border-radius:6px;max-height:200px;margin-bottom:16px;padding:12px 16px;font-size:13px;overflow-y:auto}.progress-log .step{padding:2px 0}.progress-log .step.done{color:var(--green)}.download-link{background:var(--green);color:#fff;border-radius:6px;margin-top:12px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.download-link:hover{opacity:.9}.footer{text-align:center;color:var(--text-placeholder);padding:32px;font-size:12px}.loading{text-align:center;color:var(--text-secondary);padding:60px 0}.auth-card{background:var(--bg-surface);border:1px solid var(--border-light);text-align:center;border-radius:12px;max-width:380px;margin:40px auto;padding:36px 32px}.auth-card h2{color:var(--text-primary);margin-bottom:6px;font-size:20px;font-weight:700}.auth-sub{color:var(--text-muted);margin-bottom:24px;font-size:13px}.auth-card input{border:1px solid var(--border-color);width:100%;color:var(--text-body);background:var(--bg-input);border-radius:6px;outline:none;margin-bottom:12px;padding:12px 16px;font-size:14px;transition:border-color .2s}.auth-card input:focus{border-color:var(--accent)}.auth-card .output-error{text-align:left}.auth-card .btn-generate{margin-top:4px}.auth-toggle{color:var(--text-secondary);margin-top:16px;font-size:13px}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:13px}.btn-link:hover{text-decoration:underline}.user-email{color:var(--text-secondary);font-size:13px}.quota-badge{color:var(--accent);background:var(--bg-file-info);border:1px solid var(--border-light);border-radius:999px;padding:4px 12px;font-size:12px}.history-panel{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:10px;margin-top:24px;padding:24px 28px}.history-panel h3{color:var(--text-primary);margin-bottom:16px;font-size:15px;font-weight:600}.history-list{flex-direction:column;gap:8px;display:flex}.history-item{border:1px solid var(--border-light);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.history-main{flex:1;min-width:0}.history-title{color:var(--text-body);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.history-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.history-dl{border:1px solid var(--accent);color:var(--accent);border-radius:6px;flex-shrink:0;padding:6px 16px;font-size:13px;text-decoration:none}.history-dl:hover{background:var(--accent);color:#fff}.history-none{color:var(--text-placeholder);flex-shrink:0;font-size:13px}@media (max-width:640px){.navbar{padding:14px 20px}.main{padding:40px 16px}.cards{grid-template-columns:1fr}.input-row{flex-direction:column}}
