@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700;800&display=swap";:root{--bg-main:#0d0d0d;--bg-gradient:radial-gradient(ellipse at center, #3a3a3a 0%, #1a1a1a 45%, #0a0a0a 100%);--bg-card:#1a1a1a;--bg-card-hover:#222;--bg-input:#0000004d;--border-color:#4a4a4a;--border-color-hover:#8f8f8f;--primary-rgb:226, 232, 240;--primary:rgb(var(--primary-rgb));--primary-hover:#cbd5e1;--primary-glow:rgba(var(--primary-rgb), .15);--border-focus:rgba(var(--primary-rgb), .5);--brand-green:#00ff41;--success:#10b981;--success-glow:#10b98126;--danger:#ef4444;--danger-glow:#ef444426;--text-main:#f3f4f6;--text-muted:#9ca3af;--text-dimmed:#6b7280;--font-sans:"JetBrains Mono", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-lg:12px;--radius-md:8px;--radius-sm:4px;--transition:all .25s cubic-bezier(.4, 0, .2, 1);--bg-dark:var(--bg-main);--bg:var(--bg-main);--text-dim:var(--text-muted);--accent-color:var(--primary);--accent:var(--primary);--accent2:var(--primary-hover);--card-border:var(--border-color);--card-border-hover:var(--border-color-hover);--pixel-font:"Press Start 2P", monospace;--accent-primary:var(--primary);--accent-primary-hover:var(--primary-hover);--text-primary:var(--text-main);--text-secondary:var(--text-muted);--bg-card-border:var(--border-color);--color-text-main:var(--text-main);--color-text-muted:var(--text-muted);--color-text-dark:var(--text-dimmed)}html,body,#root{min-height:100%}body{background-color:var(--bg-main);background-image:var(--bg-gradient);color:var(--text-main);font-family:var(--font-sans);background-attachment:fixed;overflow-x:hidden}::selection{background:var(--primary-glow)}a{color:var(--primary);text-decoration:none}.btn{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-main);font-family:var(--font-sans);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--primary);background:var(--bg-card-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#0f172a;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 4px 15px var(--primary-glow)}.btn-secondary{background:#ffffff08}.btn-danger{background:var(--danger-glow);color:var(--danger);border-color:#ef444466}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px}input,textarea,select{font-family:var(--font-sans);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition);background:#0000004d;outline:none;padding:10px 12px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-glow)}select option{color:var(--text-main);background:#1a1a1a}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--text-muted);font-size:13px}.spinner,.btn-spinner{border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite devapps-spin;display:inline-block}@keyframes devapps-spin{to{transform:rotate(360deg)}}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:12px;font-size:12px}td{border-bottom:1px solid var(--border-color);color:var(--text-main);padding:12px;font-size:14px}.toast{background:var(--bg-card);border:1px solid var(--primary);color:var(--text-main);box-shadow:0 10px 25px var(--primary-glow);z-index:10000;border-radius:30px;padding:12px 24px;font-size:13px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-main);font-family:var(--font-sans);min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-container{background:var(--bg-gradient);flex-direction:column;height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#121212cc;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.logo-section{align-items:center;gap:12px;display:flex}.logo-icon{justify-content:center;align-items:center;width:56px;height:56px;transition:transform .3s;display:flex}.logo-icon:hover{transform:scale(1.1)}.logo-icon img{width:56px;height:56px}.logo-section h1{letter-spacing:-.5px;background:linear-gradient(90deg,#fff,#d1d5db);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.brand-by{color:var(--text-muted);align-items:center;margin-top:2px;font-size:.75rem;font-weight:500;display:inline-flex}.brand-devapps{font-family:var(--font-mono);color:#fff;letter-spacing:.5px;margin-left:4px;font-weight:700}.brand-accent{color:#00ff41;font-weight:800}.main-workspace{flex:1;display:flex;position:relative;overflow:hidden}.upload-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;max-width:900px;margin:0 auto;padding:40px;display:flex}.upload-area{border-radius:var(--radius-lg);background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);cursor:pointer;width:100%;transition:var(--transition);border:2px dashed #ffffff26;flex-direction:column;align-items:center;gap:20px;padding:60px 40px;display:flex}.upload-area:hover,.upload-area.drag-over{border-color:var(--primary);background:var(--bg-card-hover);box-shadow:0 0 30px var(--primary-glow)}.upload-icon-container{border:1px solid var(--border-color);width:80px;height:80px;transition:var(--transition);background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;display:flex}.upload-area:hover .upload-icon-container{background:rgba(var(--primary-rgb), .08);border-color:rgba(var(--primary-rgb), .3);transform:scale(1.05)}.upload-icon-container svg{width:36px;height:36px;color:var(--text-muted)}.upload-area:hover .upload-icon-container svg{color:var(--primary)}.upload-text h3{margin-bottom:8px;font-size:1.25rem;font-weight:600}.upload-text p{color:var(--text-muted);font-size:.875rem}.supported-formats{color:var(--text-dimmed);font-size:.75rem}.editor-layout{flex:1;width:100%;height:100%;display:flex;overflow:hidden}.viewer-section{background:var(--bg-main);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.viewer-toolbar{border-bottom:1px solid var(--border-color);z-index:5;background:#1c1c1c80;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.view-modes{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#ffffff0d;padding:4px;display:flex}.view-mode-btn{color:var(--text-muted);cursor:pointer;transition:var(--transition);font-size:.875rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;border-radius:6px;padding:6px 12px}.view-mode-btn.active{background:var(--primary);color:#0f172a;box-shadow:0 2px 8px var(--primary-glow)}.toolbar-btn{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:.825rem;font-weight:500;font-family:var(--font-sans);background:#ffffff0d;align-items:center;gap:6px;padding:6px 12px;display:flex}.toolbar-btn:hover{background:#ffffff1a;border-color:#fff3}.toolbar-btn.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}.ascii-output-container{flex:1;display:flex;position:relative;overflow:hidden}.ascii-pane{border-right:1px solid var(--border-color);flex-direction:column;flex:1;display:flex;position:relative;overflow:auto}.ascii-pane:last-child{border-right:none}.pane-label{border:1px solid var(--border-color);color:var(--text-muted);z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#121212d9;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600;position:absolute;top:16px;left:16px}.ascii-output{font-family:var(--font-mono);white-space:pre;background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-size:20px 20px;flex:1;padding:48px 24px 24px;font-size:6px;line-height:1;overflow:auto}.ascii-output-large{font-size:10px}.ascii-output-colored{background:#111}.image-preview-pane{background-image:linear-gradient(90deg,#ffffff05 1px,#0000 1px),linear-gradient(#ffffff05 1px,#0000 1px);background-size:20px 20px;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.image-preview-pane img{object-fit:contain;border:1px dashed #ffffff26;max-width:90%;max-height:90%}.controls-sidebar{border-left:1px solid var(--border-color);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121212f2;flex-direction:column;width:340px;height:100%;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--border-color);padding:12px 20px}.sidebar-section.collapsible{padding:0}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;min-height:36px;padding:10px 20px;transition:background .15s;display:flex}.collapsible-header:hover{background:#ffffff05}.collapsible-chevron{width:14px;height:14px;color:var(--text-muted);flex-shrink:0;transition:transform .2s}.collapsible-chevron.open{transform:rotate(90deg)}.collapsible-content{padding:8px 20px 20px}.sidebar-section h2{letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px;font-size:.8rem;font-weight:700;line-height:1}.collapsible-header h2{margin:0;padding:0;position:relative;top:2px}.param-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.param-group:last-child{margin-bottom:0}.param-header{justify-content:space-between;font-size:.8125rem;font-weight:500;display:flex}.param-label{color:var(--text-main)}.param-value{color:var(--primary);font-family:var(--font-mono);font-weight:600}.param-slider{-webkit-appearance:none;width:100%;height:6px;transition:var(--transition);background:#ffffff1a;border-radius:3px;outline:none}.param-slider::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;width:16px;height:16px;box-shadow:0 0 8px var(--primary-glow);transition:var(--transition);border-radius:50%}.param-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.toggle-switch{justify-content:space-between;align-items:center;padding:8px 0;display:flex}.editor-field{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);width:100%;font-size:.875rem;font-family:var(--font-sans);transition:var(--transition);background:#0003;outline:none;padding:10px 12px}.editor-field:focus{border-color:var(--primary);box-shadow:0 0 10px var(--primary-glow)}.editor-field option{color:#fff;background:#1a1a1a}.text-input-area{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:80px;color:var(--text-main);font-family:var(--font-mono);resize:vertical;transition:var(--transition);background:#0000004d;outline:none;padding:12px;font-size:.875rem}.text-input-area:focus{border-color:var(--primary);box-shadow:0 0 10px var(--primary-glow)}.presets-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.preset-card{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);text-align:left;background:#ffffff08;padding:12px}.preset-card:hover{background:#ffffff0f;border-color:#ffffff26}.preset-card.active{background:var(--bg-card-hover);border-color:var(--card-border-hover);box-shadow:0 0 15px #0000004d}.preset-card h4{color:#fff;margin-bottom:4px;font-size:.875rem;font-weight:600}.preset-card p{color:var(--text-dimmed);font-size:.75rem;line-height:1.3}.export-actions{flex-direction:column;gap:12px;display:flex}.btn-primary{background:var(--primary);color:#0f172a;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);box-shadow:0 4px 12px var(--primary-glow);font-size:.95rem;font-weight:600;font-family:var(--font-sans);border:none;justify-content:center;align-items:center;gap:8px;padding:14px;display:flex}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 6px 20px rgba(var(--primary-rgb), .3)}.btn-secondary{border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);font-size:.9rem;font-weight:600;font-family:var(--font-sans);background:#ffffff0d;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.btn-secondary:hover{background:#ffffff14;border-color:#ffffff26}.btn-small{border-radius:var(--radius-sm);padding:8px 14px;font-size:.825rem}.mode-tabs{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#ffffff08;margin-bottom:16px;padding:4px;display:flex}.mode-tab-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:.875rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px;display:flex}.mode-tab-btn.active{color:var(--text-main);background:#ffffff0d;border:1px solid #ffffff14}.checkbox-row{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.checkbox-row label{color:var(--text-main);cursor:pointer;align-items:center;gap:8px;font-size:.825rem;display:flex}.toggle-track{cursor:pointer;width:36px;height:20px;transition:var(--transition);background:#ffffff1a;border:none;border-radius:10px;padding:0;position:relative}.toggle-track.active{background:var(--primary)}.toggle-thumb{width:16px;height:16px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle-track.active .toggle-thumb{left:18px}.loading-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#121212d9;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.spinner{border:4px solid rgba(var(--primary-rgb), .1);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:var(--text-main);font-size:1rem;font-weight:600}.toast{background:var(--bg-card);border:1px solid var(--success);box-shadow:0 4px 20px var(--success-glow);z-index:1000;color:var(--text-main);border-radius:30px;align-items:center;gap:8px;padding:12px 24px;font-weight:600;animation:.3s ease-out fadeInUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%,15px)}to{opacity:1;transform:translate(-50%)}}.workspace-stats{border:1px solid var(--border-color);border-radius:var(--radius-md);z-index:10;pointer-events:auto;color:var(--text-muted);white-space:nowrap;background:#121212e6;align-items:center;gap:14px;padding:8px 16px;font-size:.72rem;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.stat-divider{background:#ffffff1f;width:1px;height:12px}.stat-val-highlight{color:var(--primary);margin-left:4px;font-weight:600}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99999;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:380px;padding:28px;display:flex;box-shadow:0 20px 40px #00000080}input[type=color]{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:4px;width:32px;height:32px;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:1px solid var(--border-color);border-radius:4px}input[type=color]::-moz-color-swatch{border:1px solid var(--border-color);border-radius:4px}
