:root{--color-primary: #6366f1;--color-primary-light: #818cf8;--color-primary-dark: #4f46e5;--color-primary-bg: rgba(99, 102, 241, .08);--color-accent: #06b6d4;--color-accent-light: #22d3ee;--color-success: #10b981;--color-success-dark: #059669;--color-success-bg: rgba(16, 185, 129, .1);--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-disabled: #cbd5e1;--color-background: #f8fafc;--color-background-alt: #f1f5f9;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*,*:before,*:after{box-sizing:border-box}body{font-family:Inter,Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-alt) 100%);color:var(--color-text-primary);margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1400px;width:100%;margin:0 auto;padding:var(--space-xl);flex-grow:1;display:flex;flex-direction:column;position:relative;min-height:calc(100vh - 80px)}.content-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);flex-grow:1;min-height:0}.app-title{text-align:center;color:var(--color-text-primary);margin-bottom:var(--space-sm);font-size:2.25rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.promo-text{text-align:center;margin-bottom:var(--space-2xl);font-size:1rem;color:var(--color-text-secondary)}.promo-link{color:var(--color-primary);text-decoration:none;font-weight:600;position:relative;transition:color var(--transition-fast)}.promo-link:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transform:scaleX(0);transition:transform var(--transition-normal)}.promo-link:hover{color:var(--color-primary-dark)}.promo-link:hover:after{transform:scaleX(1)}.github-link{position:absolute;top:var(--space-lg);right:var(--space-lg);color:var(--color-text-secondary);text-decoration:none;display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);z-index:10}.github-link:hover{color:var(--color-text-primary);border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.github-text{display:inline}.upload-section,.result-section{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;min-height:500px;height:100%;border:1px solid var(--color-border-light);transition:box-shadow var(--transition-normal)}.upload-section form{display:flex;flex-direction:column;flex:1;min-height:0}.upload-section:hover,.result-section:hover{box-shadow:var(--shadow-xl)}h2{color:var(--color-text-primary);margin:0 0 var(--space-lg);font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:var(--space-sm)}h2:before{content:"";width:4px;height:1.25em;background:linear-gradient(180deg,var(--color-primary),var(--color-accent));border-radius:2px}.file-input-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:var(--space-lg);transition:transform var(--transition-fast)}.file-input-wrapper input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-input-wrapper:hover{transform:scale(1.02)}.file-input-icon{font-family:Material Icons;font-size:3.5rem;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-md);transition:transform var(--transition-normal)}.file-input-wrapper:hover .file-input-icon{transform:translateY(-4px)}.file-input-label{color:var(--color-primary);font-size:1rem;font-weight:500;cursor:pointer}.drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2xl);text-align:center;transition:all var(--transition-normal);background:var(--color-background);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:400px;position:relative;overflow:hidden}.drop-zone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-primary-bg),transparent);opacity:0;transition:opacity var(--transition-normal)}.drop-zone:hover{border-color:var(--color-primary-light);background:var(--color-surface)}.drop-zone:hover:before{opacity:1}.drop-zone.dragging{border-color:var(--color-success);background:var(--color-success-bg);transform:scale(1.01)}.drop-zone.dragging:before{background:linear-gradient(135deg,var(--color-success-bg),transparent);opacity:1}.drop-zone-text{font-size:1.125rem;color:var(--color-text-muted);margin-bottom:var(--space-lg);line-height:1.8;position:relative;z-index:1}button{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;border:none;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:600;transition:all var(--transition-fast);box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);filter:brightness(1.05)}button:active{transform:translateY(0);box-shadow:var(--shadow-sm)}button:disabled{background:var(--color-disabled);cursor:not-allowed;transform:none;box-shadow:none}.copy-button{position:absolute;top:var(--space-md);right:var(--space-md);background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary-light);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-sm)}.copy-button:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.preview-container{position:relative;flex:1;min-height:400px;height:100%;border-radius:var(--radius-md);overflow:hidden;background:var(--color-background)}.preview-close-button{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10;background:var(--color-danger);color:#fff;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;padding:0;box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.preview-close-button:hover{background:var(--color-danger-dark);transform:scale(1.1)}.pdf-preview{width:100%;height:100%;border:none;border-radius:var(--radius-md)}.result-container{position:relative;flex-grow:1;display:flex;flex-direction:column;background:var(--color-background);border-radius:var(--radius-md);overflow:hidden}.error{color:var(--color-danger);font-weight:600;font-size:1rem;padding:var(--space-lg);background:#ef44441a;border-radius:var(--radius-md);border-left:4px solid var(--color-danger)}pre{background:linear-gradient(135deg,#1e293b,#0f172a);color:#e2e8f0;padding:var(--space-xl);padding-top:calc(var(--space-xl) + var(--space-lg));border-radius:var(--radius-md);white-space:pre-wrap;word-wrap:break-word;font-size:.875rem;font-family:JetBrains Mono,Fira Code,Monaco,monospace;overflow-y:auto;flex-grow:1;line-height:1.7;margin:0}.result-section p{color:var(--color-text-muted);text-align:center;padding:var(--space-2xl);font-size:1rem}.footer{width:100%;text-align:center;padding:var(--space-xl) var(--space-md);background:var(--color-surface);border-top:1px solid var(--color-border-light);margin-top:auto}.footer p{color:var(--color-text-muted);font-size:.875rem;margin:var(--space-xs) 0;line-height:1.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.upload-section,.result-section{animation:fadeIn .5s ease-out}button:disabled{animation:pulse 1.5s ease-in-out infinite}@media (max-width: 1024px){.content-wrapper{grid-template-columns:1fr;gap:var(--space-lg)}.container{padding:var(--space-lg)}.upload-section,.result-section{min-height:450px}}@media (max-width: 768px){.container{padding:var(--space-md);padding-top:calc(var(--space-md) + 60px)}.app-title{font-size:1.75rem}.promo-text{font-size:.875rem;margin-bottom:var(--space-xl)}.upload-section,.result-section{padding:var(--space-lg);min-height:400px;border-radius:var(--radius-lg)}.drop-zone{min-height:300px;padding:var(--space-xl)}.github-text{display:none}.github-link{top:var(--space-md);right:var(--space-md);padding:var(--space-sm)}h2{font-size:1.125rem}}@media (max-width: 480px){.app-title{font-size:1.5rem}.container{padding:var(--space-sm);padding-top:60px}.upload-section,.result-section{padding:var(--space-md)}button{width:100%;padding:var(--space-md)}.file-input-icon{font-size:2.5rem}.drop-zone-text{font-size:1rem}pre{font-size:.75rem;padding:var(--space-md);padding-top:calc(var(--space-md) + var(--space-xl))}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
