:root{--bg: #f5f6fa;--card-bg: #fff;--text: #2c3e50;--text-secondary: #888;--text-muted: #b0b0b0;--border: #ebeef2;--border-subtle: #e8e8e8;--input-bg: #fafbfc;--result-bg: #fafbfc;--result-border: #ebeef2;--result-text: #3a3f47;--tab-bg: #f5f6fa;--shadow: 0 1px 6px rgba(0,0,0,.04);--shadow-lg: 0 2px 12px rgba(0,0,0,.04);--header-gradient: linear-gradient(135deg, #d42a2a 0%, #9b1b1b 100%);--accent: #d42a2a;--accent-light: #fef5f5;--accent-border: #fcd5d5;--success: #52c41a;--success-light: #f6ffed;--success-border: #b7eb8f;--export-bg: #1a7a1a;--toast-bg: #333;--toast-text: #fff}[data-theme=dark]{--bg: #1a1a2e;--card-bg: #16213e;--text: #e0e0e0;--text-secondary: #999;--text-muted: #777;--border: #2a2a4a;--border-subtle: #2a2a4a;--input-bg: #1e2a3a;--result-bg: #1e2a3a;--result-border: #2a2a4a;--result-text: #c8cdd4;--tab-bg: #1a1a2e;--shadow: 0 1px 6px rgba(0,0,0,.2);--shadow-lg: 0 2px 12px rgba(0,0,0,.3);--header-gradient: linear-gradient(135deg, #8b1a1a 0%, #5c0e0e 100%);--accent: #e05555;--accent-light: #2a1a1a;--accent-border: #5c1a1a;--success: #4caf50;--success-light: #1a2a1a;--success-border: #2a5a2a;--export-bg: #2a7a2a;--toast-bg: #e0e0e0;--toast-text: #1a1a2e}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;transition:background .3s,color .3s}.app{max-width:1020px;margin:0 auto;padding:24px 20px 60px}.header{padding:24px 32px;background:var(--header-gradient);color:#fff;border-radius:16px;margin-bottom:24px;box-shadow:0 4px 20px #d42a2a40}.header-main{display:flex;align-items:center;justify-content:space-between;gap:20px}.header-text h1{font-size:24px;font-weight:800;letter-spacing:2px}.subtitle{margin-top:4px;opacity:.8;font-size:13px}.header-right{display:flex;align-items:center;gap:12px}.header-contact{display:flex;align-items:center;gap:10px;background:#ffffff1f;padding:8px 14px;border-radius:12px;cursor:pointer;transition:background .2s}.header-contact:hover{background:#fff3}.header-qrcode{width:44px;height:44px;border-radius:8px;border:2px solid rgba(255,255,255,.4);object-fit:contain}.header-wechat{font-size:13px;font-weight:600;color:#fff;white-space:nowrap}.theme-toggle{width:40px;height:40px;border-radius:12px;border:2px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.theme-toggle:hover{background:#fff3;border-color:#ffffff80}.api-section{background:var(--card-bg);border-radius:14px;margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden;font-size:13px;transition:background .3s}.api-header{display:flex;align-items:center;gap:8px;padding:10px 22px;font-weight:600;color:var(--text-muted);-webkit-user-select:none;user-select:none}.api-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.api-panel{padding:4px 22px 14px}.api-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.api-row label{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:50px}.api-row input,.api-row select{padding:7px 10px;border:1px solid var(--border-subtle);border-radius:8px;font-size:12px;background:var(--input-bg);color:var(--text);flex:1;min-width:130px;font-family:inherit}.api-row input:focus,.api-row select:focus{outline:none;border-color:var(--accent);background:var(--card-bg)}.btn-api-sm{padding:7px 14px;border:1px solid var(--border-subtle);background:var(--input-bg);color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap}.btn-api-sm:hover:not(:disabled){background:var(--border)}.btn-api-sm.test{border-color:var(--success);color:var(--success);background:var(--success-light)}.btn-api-sm.test.ok{background:var(--success);color:#fff;border-color:var(--success)}.btn-api-sm:disabled{opacity:.5;cursor:wait}.form-section{background:var(--card-bg);border-radius:16px;padding:28px;margin-bottom:24px;box-shadow:var(--shadow);transition:background .3s}.input-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:10px}.input-actions{display:flex;gap:8px}.btn-placeholder,.btn-clear{padding:6px 16px;border:1px solid var(--border-subtle);background:var(--card-bg);color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.btn-placeholder:hover,.btn-clear:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.section-title{font-size:18px;font-weight:700;color:var(--text);padding-left:12px;border-left:3px solid var(--accent)}.input-hint{font-size:13px;color:var(--text-muted);margin-bottom:14px}.main-input{width:100%;padding:16px 16px 48px;border:2px solid var(--border);border-radius:10px;font-size:14px;font-family:SF Mono,Consolas,Menlo,PingFang SC,monospace;line-height:1.7;resize:vertical;background:var(--input-bg);color:var(--text);transition:border-color .2s,box-shadow .2s}.main-input:focus{outline:none;border-color:var(--accent);background:var(--card-bg);box-shadow:0 0 0 3px #d42a2a0f}.main-input::placeholder{color:var(--text-muted)}.input-area-wrap{position:relative}.btn-voice{position:absolute;bottom:12px;right:12px;padding:8px 18px;background:var(--card-bg);border:1px solid var(--border-subtle);border-radius:20px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text-secondary);transition:all .2s;box-shadow:0 2px 8px #0000000f}.btn-voice:hover{border-color:var(--accent);color:var(--accent)}.btn-voice.listening{background:var(--accent);color:#fff;border-color:var(--accent);animation:voicePulse 1.5s ease-in-out infinite}@keyframes voicePulse{0%,to{box-shadow:0 0 #d42a2a66}50%{box-shadow:0 0 0 14px #d42a2a00}}.generate-bar{text-align:center;padding-top:24px}.custom-req-wrap{margin-bottom:18px}.custom-req-input{width:100%;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:10px;font-size:13px;font-family:inherit;resize:vertical;background:var(--input-bg);color:var(--text);transition:border-color .2s}.custom-req-input:focus{outline:none;border-color:var(--accent);background:var(--card-bg);box-shadow:0 0 0 3px #d42a2a0f}.custom-req-input::placeholder{color:var(--text-muted)}.btn-generate{padding:18px 72px;background:linear-gradient(135deg,#d42a2a,#b01e1e);color:#fff;border:none;border-radius:12px;font-size:22px;font-weight:800;cursor:pointer;letter-spacing:6px;transition:all .3s;box-shadow:0 6px 24px #d42a2a59}.btn-generate:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 32px #d42a2a73}.btn-generate:active:not(:disabled){transform:translateY(0)}.btn-generate:disabled{opacity:.45;cursor:not-allowed;transform:none}.gen-mode{display:inline-block;margin-left:14px;font-size:12px;color:var(--success);font-weight:600;background:var(--success-light);padding:3px 12px;border-radius:12px;border:1px solid var(--success-border)}.result-section{background:var(--card-bg);border-radius:16px;padding:28px;box-shadow:var(--shadow-lg);transition:background .3s}.result-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.parsed-badge{font-size:13px;color:var(--accent);background:var(--accent-light);padding:4px 14px;border-radius:20px;border:1px solid var(--accent-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.api-badge{font-size:12px;color:var(--success);background:var(--success-light);padding:4px 12px;border-radius:20px;border:1px solid var(--success-border)}.generating-spinner{font-size:13px;color:var(--accent);font-weight:600;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.export-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.btn-export-excel{padding:8px 18px;background:var(--export-bg);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;transition:all .15s}.btn-export-excel:hover{opacity:.85}.btn-export-ppt{padding:8px 18px;background:#d4571e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;transition:all .15s}.btn-export-ppt:hover{opacity:.85}.btn-export-all{padding:8px 18px;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;transition:all .15s}.btn-export-all:hover{opacity:.85}.btn-export-one{padding:8px 18px;background:var(--card-bg);border:1px solid var(--accent);color:var(--accent);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s}.btn-export-one:hover{background:var(--accent);color:#fff}.tabs{display:flex;gap:0;margin-bottom:0;flex-wrap:wrap;background:var(--tab-bg);border-radius:10px;padding:4px}.tab{padding:10px 18px;border:none;background:transparent;color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s;white-space:nowrap;position:relative}.tab:hover{color:var(--accent);background:var(--accent-light)}.tab.active{background:var(--card-bg);color:var(--accent);box-shadow:0 1px 4px #0000000f}.tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-left:5px;vertical-align:middle}.btn-copy{margin-left:auto;padding:8px 20px;background:var(--card-bg);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;align-self:center}.btn-copy:hover{border-color:var(--accent);color:var(--accent)}.result-content{margin-top:16px;background:var(--result-bg);border:1px solid var(--result-border);border-radius:10px;padding:28px 32px;font-size:13.5px;line-height:1.8;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto;font-family:SF Mono,Menlo,Consolas,PingFang SC,monospace;color:var(--result-text);transition:background .3s,color .3s}.result-content::selection{background:#d42a2a33}.qr-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.qr-modal{background:#fff;border-radius:20px;padding:36px 40px 28px;text-align:center;box-shadow:0 20px 60px #0000004d;animation:scaleIn .25s ease}.qr-modal-img{width:240px;height:240px;border-radius:14px;border:1px solid #eee;object-fit:contain;display:block;margin:0 auto 18px}.qr-modal-text{font-size:14px;color:#888;margin-bottom:4px}.qr-modal-wechat{font-size:22px;font-weight:800;color:#d42a2a;margin-bottom:22px;letter-spacing:3px}.qr-modal-close{padding:9px 36px;background:#d42a2a;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s}.qr-modal-close:hover{background:#b01e1e}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:var(--toast-bg);color:var(--toast-text);padding:10px 28px;border-radius:10px;font-size:14px;z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s;font-weight:600;box-shadow:0 6px 20px #00000040}.toast.show{opacity:1}.feedback-btn{position:fixed;right:0;top:50%;transform:translateY(-50%);width:44px;height:90px;background:var(--accent);color:#fff;border:none;border-radius:10px 0 0 10px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;z-index:9998;box-shadow:-2px 0 12px #00000026;transition:all .2s}.feedback-btn:hover{width:50px;box-shadow:-4px 0 20px #d42a2a4d}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:10001;display:flex;justify-content:flex-end;animation:fadeIn .2s ease}.feedback-panel{width:380px;height:100%;background:var(--card-bg);box-shadow:-4px 0 24px #00000026;display:flex;flex-direction:column;animation:slideInRight .3s ease}.feedback-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--accent);color:#fff;font-size:17px;font-weight:700}.feedback-close{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;font-size:22px;cursor:pointer;border-radius:8px;line-height:1;transition:background .2s}.feedback-close:hover{background:#ffffff4d}.feedback-body{padding:20px 22px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.feedback-body label{font-size:13px;font-weight:600;color:var(--text)}.feedback-body select,.feedback-body input,.feedback-body textarea{width:100%;padding:9px 12px;border:1px solid var(--border-subtle);border-radius:8px;font-size:13px;font-family:inherit;background:var(--input-bg);color:var(--text);transition:border-color .2s}.feedback-body select:focus,.feedback-body input:focus,.feedback-body textarea:focus{outline:none;border-color:var(--accent);background:var(--card-bg)}.feedback-body textarea{resize:vertical}.feedback-qr-body{align-items:center;text-align:center;padding:36px 22px}.feedback-qr{width:200px;height:200px;border-radius:14px;border:1px solid var(--border);object-fit:contain;margin-bottom:18px}.feedback-qr-text{font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px}.feedback-qr-id{font-size:20px;font-weight:800;color:var(--accent);letter-spacing:3px;margin-bottom:12px}.feedback-qr-desc{font-size:13px;color:var(--text-muted)}.feedback-submit{margin-top:8px;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .2s}.feedback-submit:hover{opacity:.85}.feedback-hint{font-size:12px;color:var(--text-muted);text-align:center;margin:0}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@media (max-width: 768px){.app{padding:12px}.header{padding:18px 20px}.header h1{font-size:17px}.header-main{flex-direction:column}.header-right{align-self:flex-end}.tab{padding:8px 12px;font-size:12px}.btn-copy{margin-left:0}.result-header{flex-direction:column;align-items:flex-start}.export-actions{margin-left:0}.btn-generate{padding:15px 48px;font-size:18px;letter-spacing:4px}.result-content{padding:18px 20px}.qr-modal{padding:24px}.qr-modal-img{width:180px;height:180px}.feedback-panel{width:100%}}
