:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--bg-card: rgba(26, 26, 37, .8);--bg-hover: rgba(255, 255, 255, .05);--text-primary: #ffffff;--text-secondary: #a0a0b0;--text-muted: #6b6b7b;--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--border-color: rgba(255, 255, 255, .08);--border-focus: rgba(99, 102, 241, .5);--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 40px rgba(99, 102, 241, .15);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% 20%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.08) 0%,transparent 50%);pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.95rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-md),0 0 20px #6366f14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #6366f166}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}input,select,textarea{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);font-size:.95rem;transition:all var(--transition-base);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f133}input::placeholder{color:var(--text-muted)}label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;display:grid;grid-template-columns:320px 1fr 300px;gap:var(--spacing-lg);padding:var(--spacing-lg);max-width:1800px;margin:0 auto;width:100%}@media(max-width:1200px){.main-content{grid-template-columns:1fr}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.header-logo{display:flex;align-items:center;gap:var(--spacing-md)}.header-logo h1{font-size:1.25rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-logo .icon{font-size:1.5rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-xl)}.login-card{width:100%;max-width:400px;padding:var(--spacing-2xl)}.login-card h1{text-align:center;margin-bottom:var(--spacing-xs)}.login-card .subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--error);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;transition:all var(--transition-base);cursor:pointer}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent-primary);background:#6366f10d}.upload-zone .icon{font-size:3rem;margin-bottom:var(--spacing-md);color:var(--accent-primary)}.upload-zone p{color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.upload-zone .formats{font-size:.75rem;color:var(--text-muted)}.settings-panel{padding:var(--spacing-lg)}.settings-panel h2{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.setting-group{margin-bottom:var(--spacing-lg)}.setting-group h3{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.setting-row{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.setting-row input{flex:1}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.875rem;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{width:auto;accent-color:var(--accent-primary)}.viewer-container{display:flex;flex-direction:column;height:100%}.viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.viewer-controls{display:flex;gap:var(--spacing-sm)}.viewer-canvas-container{flex:1;position:relative;overflow:hidden;background:var(--bg-primary);border-radius:var(--radius-md);margin:var(--spacing-md);min-height:300px}.viewer-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.viewer-stats{display:flex;gap:var(--spacing-lg);padding:var(--spacing-md);border-top:1px solid var(--border-color);background:var(--bg-tertiary);font-size:.875rem}.stat-item{display:flex;flex-direction:column}.stat-label{color:var(--text-muted);font-size:.75rem}.stat-value{color:var(--text-primary);font-weight:600}.export-panel{padding:var(--spacing-lg)}.export-panel h2{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.export-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm)}.export-btn{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.export-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.export-btn .format{font-weight:600;color:var(--text-primary)}.export-btn .desc{font-size:.75rem;color:var(--text-muted)}.color-list{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.color-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.color-swatch{width:20px;height:20px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}.color-name{flex:1;font-size:.875rem}input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--bg-primary);border:none;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--bg-secondary)}.animation-controls{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.animation-controls button{background:none;border:none;color:var(--text-primary);font-size:1.25rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.animation-controls button:hover{background:var(--bg-hover);color:var(--accent-primary)}.progress-bar{flex:1;height:4px;background:var(--bg-primary);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent-gradient);transition:width 50ms linear}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-2xl);text-align:center;color:var(--text-muted)}.empty-state .icon{font-size:4rem;margin-bottom:var(--spacing-md);opacity:.3}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideIn .3s ease;z-index:1000}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--error)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}
