:root{--bg-primary: #0a0a0a;--bg-secondary: #111;--bg-tertiary: #1a1a1a;--bg-panel: #151515;--text-primary: #ffffff;--text-secondary: #999;--text-muted: #666;--accent: #00ff00;--accent-dim: #00aa00;--border: #2a2a2a;--shadow: 0 2px 8px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}#app{width:100%;height:100%}.app-layout{display:flex;width:100%;height:100%}.sidebar{width:320px;min-width:320px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.logo{font-size:1.3rem;font-weight:700;color:var(--accent);margin:0}.sidebar-content{flex:1;overflow-y:auto;padding:12px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.panel-title{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.upload-area{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:var(--bg-tertiary);border:2px dashed var(--border);border-radius:8px;cursor:pointer;transition:all .2s;color:var(--text-secondary);font-size:.9rem}.upload-area:hover{border-color:var(--accent);color:var(--accent)}.upload-area.drag-over{border-color:var(--accent);background:#00ff000d}.upload-icon{font-size:1.4rem}.image-preview{margin-top:10px;display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg-tertiary);border-radius:6px}.image-preview img{width:50px;height:50px;object-fit:cover;border-radius:4px}.image-info{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.control-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.control-row label{font-size:.85rem;color:var(--text-secondary)}.control-row select,.control-row input[type=text]{width:140px}select,input[type=text]{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:6px 10px;border-radius:4px;font-size:.85rem}select:focus,input[type=text]:focus{outline:none;border-color:var(--accent)}.full-width{width:100%;margin-bottom:8px}.slider-row{margin-bottom:8px}.slider-row label{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-secondary);margin-bottom:4px}.slider-row span{color:var(--accent);font-weight:600}input[type=range]{width:100%;height:4px;border-radius:2px;background:var(--bg-tertiary);outline:none;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 6px var(--accent)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.custom-resolution{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.custom-resolution.hidden{display:none}.checkbox-row{display:flex;gap:12px;margin-top:8px}.checkbox-inline{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.85rem;color:var(--text-secondary)}.checkbox-inline input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.preset-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:8px;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s}.preset-btn:hover{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.output-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.toolbar-left{display:flex;align-items:center;gap:12px}.output-title{font-size:.9rem;font-weight:600;color:var(--text-secondary)}.toolbar-right{display:flex;gap:6px}.tool-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.tool-btn:hover:not(:disabled){background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.tool-btn.share-btn{background:var(--accent-dim);border-color:var(--accent);color:var(--bg-primary);font-weight:600}.tool-btn.share-btn:hover:not(:disabled){background:var(--accent)}.ascii-container{flex:1;overflow:auto;padding:20px;background:#000;font-family:Courier New,monospace;font-size:8px;line-height:.7;color:var(--accent);white-space:pre}.ascii-container .placeholder{color:var(--text-muted);font-family:inherit;font-size:1rem;line-height:1.5;text-align:center;padding:100px 20px}.ascii-container .placeholder.error{color:#f44}.sidebar-content::-webkit-scrollbar,.ascii-container::-webkit-scrollbar{width:8px}.sidebar-content::-webkit-scrollbar-track,.ascii-container::-webkit-scrollbar-track{background:var(--bg-tertiary)}.sidebar-content::-webkit-scrollbar-thumb,.ascii-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-content::-webkit-scrollbar-thumb:hover,.ascii-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.toast{position:fixed;bottom:20px;right:20px;background:var(--bg-secondary);color:var(--text-primary);padding:12px 20px;border-radius:6px;border:1px solid var(--border);box-shadow:var(--shadow);z-index:9999;font-size:.9rem}.toast.success{border-left:3px solid var(--accent)}.toast.error{border-left:3px solid #ff4444}.toast.info{border-left:3px solid #00aaff}.hidden{display:none!important}@media (max-width: 900px){.app-layout{flex-direction:column}.sidebar{width:100%;min-width:100%;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}.main-content{min-height:50vh}.toolbar-right{flex-wrap:wrap}}@media (max-width: 480px){.sidebar{max-height:40vh}.preset-grid{grid-template-columns:repeat(3,1fr)}.tool-btn{padding:6px 8px;font-size:.75rem}}
