*,:after,:before{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#1a1a25;--bg-card-hover:#222233;--border-subtle:rgba(255,255,255,0.06);--border-accent:rgba(99,102,241,0.3);--text-primary:#f0f0f5;--text-secondary:#9898aa;--text-muted:#5a5a70;--accent-primary:#6366f1;--accent-secondary:#818cf8;--accent-glow:rgba(99,102,241,0.15);--success:#22c55e;--success-bg:rgba(34,197,94,0.1);--error:#ef4444;--error-bg:rgba(239,68,68,0.1);--warning:#f59e0b;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 8px 32px rgba(0,0,0,0.5);--shadow-glow:0 0 20px rgba(99,102,241,0.2);--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms ease}html{font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(99,102,241,.08),transparent 60%),var(--bg-primary)}.container,body{min-height:100dvh;display:flex;flex-direction:column}.container{width:100%;max-width:640px;margin:0 auto;padding:24px 16px}.header{text-align:center;padding:24px 0 32px}.logo{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}.logo-icon{font-size:32px;filter:drop-shadow(0 0 8px rgba(99,102,241,.4))}.logo-text{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.tagline{font-size:14px;color:var(--text-secondary);font-weight:400;line-height:1.5}.upload-zone{position:relative;border:2px dashed var(--border-subtle);border-radius:var(--radius-lg);padding:40px 24px;text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-secondary);overflow:hidden}.upload-zone:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,var(--accent-glow),transparent 70%);opacity:0;transition:opacity var(--transition-normal)}.upload-zone.drag-over,.upload-zone:hover{border-color:var(--accent-primary);background:var(--bg-card)}.upload-zone.drag-over:before,.upload-zone:hover:before{opacity:1}.upload-zone.has-files{padding:20px;cursor:default}.upload-icon{font-size:48px;margin-bottom:16px;filter:grayscale(.3)}.upload-title{font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.upload-subtitle{font-size:13px;color:var(--text-muted)}.upload-input{display:none}.previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:10px;gap:10px;margin-bottom:12px;position:relative;z-index:1}.preview-item{position:relative;aspect-ratio:3/4;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-primary);border:1px solid var(--border-subtle)}.preview-item img{width:100%;height:100%;object-fit:cover}.preview-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.7);color:white;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast);line-height:1}.preview-item:hover .preview-remove{opacity:1}@media (hover:none){.preview-remove{opacity:1}}.add-more{aspect-ratio:3/4;border-radius:var(--radius-sm);border:2px dashed var(--border-subtle);background:transparent;color:var(--text-muted);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.add-more:hover{border-color:var(--accent-primary);color:var(--accent-secondary)}.file-count{font-size:12px;color:var(--text-muted);text-align:center;position:relative;z-index:1}.convert-btn{width:100%;padding:16px;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-normal);margin-top:20px;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--accent-primary),#4f46e5);color:white;box-shadow:var(--shadow-md),var(--shadow-glow)}.convert-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-lg),0 0 30px rgba(99,102,241,.3)}.convert-btn:active:not(:disabled){transform:translateY(0)}.convert-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.convert-btn.processing{background:var(--bg-card);color:var(--text-secondary);cursor:wait}.progress-section{margin-top:20px;padding:20px;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.progress-step{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:14px;color:var(--text-muted);transition:color var(--transition-fast)}.progress-step.active{color:var(--accent-secondary)}.progress-step.done{color:var(--success)}.progress-step.error{color:var(--error)}.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0;transition:all var(--transition-fast)}.progress-step.active .progress-dot{background:var(--accent-secondary);box-shadow:0 0 8px var(--accent-secondary);animation:pulse 1.5s ease-in-out infinite}.progress-step.done .progress-dot{background:var(--success)}.progress-step.error .progress-dot{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.result-section{margin-top:20px;text-align:center}.result-card{padding:24px;background:var(--success-bg);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-md);margin-bottom:16px}.result-icon{font-size:36px;margin-bottom:8px}.result-title{font-size:16px;font-weight:600;color:var(--success);margin-bottom:4px}.result-subtitle{font-size:13px;color:var(--text-secondary)}.download-btn{width:100%;padding:16px;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;background:var(--success);color:white;transition:all var(--transition-normal);box-shadow:var(--shadow-md)}.download-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg),0 0 20px rgba(34,197,94,.2)}.reset-btn{width:100%;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all var(--transition-fast);margin-top:10px}.reset-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.error-card{padding:20px;background:var(--error-bg);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);margin-top:20px}.error-title{font-size:14px;font-weight:600;color:var(--error);margin-bottom:6px}.error-message{font-size:13px;color:var(--text-secondary);line-height:1.5}.error-retry{margin-top:12px;padding:10px 20px;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;background:transparent;color:var(--error);transition:all var(--transition-fast)}.error-retry:hover{background:var(--error-bg)}.preview-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;z-index:100;animation:fadeIn .2s ease}.preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.preview-modal-title{font-size:15px;font-weight:600}.preview-modal-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-primary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.preview-modal-body{flex:1 1;overflow:auto;padding:20px}.preview-modal-body .markdown-preview{max-width:700px;margin:0 auto;background:white;color:#1a1a1a;padding:32px 24px;border-radius:var(--radius-md);font-size:15px;line-height:1.7}.preview-modal-body .markdown-preview h1{font-size:24px;font-weight:700;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #e0e0e0}.preview-modal-body .markdown-preview h2{font-size:20px;font-weight:600;margin-top:24px;margin-bottom:12px}.preview-modal-body .markdown-preview h3{font-size:17px;font-weight:600;margin-top:20px;margin-bottom:8px}.preview-modal-body .markdown-preview p{margin-bottom:12px}.preview-modal-body .markdown-preview ol,.preview-modal-body .markdown-preview ul{margin-bottom:12px;padding-left:24px}.preview-modal-body .markdown-preview li{margin-bottom:4px}.preview-modal-body .markdown-preview table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.preview-modal-body .markdown-preview td,.preview-modal-body .markdown-preview th{border:1px solid #ddd;padding:8px 12px;text-align:left}.preview-modal-body .markdown-preview th{background:#f5f5f5;font-weight:600}.preview-modal-footer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--border-subtle)}.preview-modal-footer button{flex:1 1;padding:14px;border-radius:var(--radius-md);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}.preview-download-btn{background:var(--success);color:white;border:none}.preview-download-btn:hover{opacity:.9}.preview-close-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border-subtle)}.preview-close-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.footer{margin-top:auto;padding:24px 0 16px;text-align:center;font-size:12px;color:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal) ease}.slide-up{animation:slideUp var(--transition-slow) ease}@media (min-width:768px){.container{padding:40px 24px}.header{padding:32px 0 40px}.logo-icon{font-size:40px}.logo-text{font-size:28px}.upload-zone{padding:56px 32px}.previews{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}}