:root{--color-bg-primary: #f8fafc;--color-bg-secondary: #e2e8f0;--color-bg-card: rgba(255, 255, 255, .9);--color-bg-overlay: rgba(248, 250, 252, .95);--color-accent-1: #667eea;--color-accent-2: #764ba2;--color-accent-3: #f093fb;--color-accent-4: #4facfe;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-border: rgba(100, 116, 139, .2);--color-glass-bg: rgba(255, 255, 255, .8);--color-glass-border: rgba(100, 116, 139, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .16);--shadow-glow: 0 0 20px rgba(102, 126, 234, .2);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs: 1.125rem;--font-size-sm: 1.3125rem;--font-size-base: 1.5rem;--font-size-lg: 1.6875rem;--font-size-xl: 2.25rem;--font-size-2xl: 3rem;--font-size-3xl: 3.75rem;--transition-fast: .15s ease-out;--transition-base: .25s ease-out;--transition-slow: .35s ease-out;--radius-sm: .5rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;position:relative}.gradient-bg{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;background:radial-gradient(circle at 20% 30%,rgba(102,126,234,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(118,75,162,.1) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(79,172,254,.08) 0%,transparent 60%);animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.container{max-width:1400px;margin:0 auto;padding:var(--spacing-lg)}.app-header{text-align:center;margin-bottom:var(--spacing-xl);animation:fadeInDown .6s ease-out}.app-title{font-size:var(--font-size-3xl);font-weight:700;background:linear-gradient(135deg,var(--color-accent-1),var(--color-accent-3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-xs);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.title-icon{font-size:var(--font-size-3xl);animation:pulse 2s ease-in-out infinite}.app-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:300}.preview-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);animation:fadeIn .8s ease-out .2s backwards}@media(max-width:900px){.preview-container{grid-template-columns:1fr}}.preview-card{background:var(--color-glass-bg);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);padding:var(--spacing-md);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}.preview-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.card-title{font-size:var(--font-size-xl);font-weight:600;display:flex;align-items:center;gap:var(--spacing-xs)}.card-title-center{justify-content:center;width:100%}.card-header{justify-content:center}.icon{font-size:var(--font-size-xl)}.status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--color-success);color:#fff;animation:statusPulse 2s ease-in-out infinite}.status-waiting{background:var(--color-text-muted);animation:none}.status-processing{background:var(--color-info)}.status-error{background:var(--color-error)}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.7}}.preview-wrapper{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-secondary);box-shadow:var(--shadow-md)}#cameraPreview,#captureCanvas,#processedImage{width:100%;height:100%;object-fit:cover;display:block}#captureCanvas{display:none}#processedImage{opacity:0;transition:opacity var(--transition-slow)}#processedImage.visible{opacity:1}.preview-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.preview-overlay.active{opacity:1;pointer-events:auto}.overlay-content{text-align:center;padding:var(--spacing-lg)}.camera-icon,.result-icon{font-size:4rem;margin-bottom:var(--spacing-sm);animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.overlay-content p{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.loading-overlay.active{opacity:1;pointer-events:auto}.loading-spinner{width:60px;height:60px;border:4px solid var(--color-glass-border);border-top-color:var(--color-accent-1);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-xs);background:linear-gradient(135deg,var(--color-accent-4),var(--color-accent-1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-subtext{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.progress-container{width:80%;max-width:300px;height:8px;background:var(--color-glass-border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--spacing-md)}.progress-bar{height:100%;width:0%;background:linear-gradient(135deg,var(--color-accent-4),var(--color-accent-1));border-radius:var(--radius-sm);transition:width .3s ease-out}.controls{display:flex;gap:var(--spacing-md);justify-content:center;margin-bottom:var(--spacing-lg);animation:fadeIn 1s ease-out .4s backwards}#actionButtons{display:flex;gap:var(--spacing-md);justify-content:center}.btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg);font-weight:600;font-family:var(--font-family);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width var(--transition-slow),height var(--transition-slow)}.btn:hover:before{width:300px;height:300px}.btn-primary{background:linear-gradient(135deg,var(--color-accent-1),var(--color-accent-2));color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:var(--color-text-muted);cursor:not-allowed;opacity:.5}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 20px #ef44444d}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--color-glass-bg);border:1px solid var(--color-glass-border);color:var(--color-text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.btn-icon{font-size:var(--font-size-xl)}.error-message{background:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm);animation:shake .5s ease-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-icon{font-size:var(--font-size-xl)}.error-text{color:var(--color-text-primary);flex:1}.info-section{animation:fadeIn 1.2s ease-out .6s backwards}.info-card{background:var(--color-glass-bg);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-md)}.info-card h3{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-xs)}.info-card ol{padding-left:var(--spacing-lg);color:var(--color-text-secondary)}.info-card li{margin-bottom:var(--spacing-sm);line-height:1.8}.info-card li:last-child{margin-bottom:0}.app-footer{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);color:var(--color-text-muted);font-size:var(--font-size-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media(max-width:768px){:root{--font-size-3xl: 2rem;--font-size-2xl: 1.5rem;--font-size-xl: 1.25rem}.container{padding:var(--spacing-md)}.preview-container{grid-template-columns:1fr;gap:var(--spacing-md)}.controls{flex-direction:column;gap:var(--spacing-sm)}#actionButtons{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);width:100%}.btn{width:100%;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base)}}@media(max-width:480px){.app-title{font-size:var(--font-size-2xl);flex-direction:column;gap:var(--spacing-xs)}#actionButtons{gap:var(--spacing-xs)}.btn{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-sm)}}
