:root{--bg-dark:#202124;--bg-card:#28292c;--text-main:#e8eaed;--text-muted:#9aa0a6;--accent:#c6ff33;--accent-hover:#b3e620;--border:#3c4043}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);flex-direction:column;align-items:center;min-height:100vh;padding:2rem;font-family:Roboto,Inter,system-ui,-apple-system,sans-serif;display:flex}.app-container{flex-direction:column;align-items:center;gap:2rem;width:100%;display:flex}.header{text-align:center;padding-bottom:.5rem}.header h1{color:var(--accent);margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.header p{color:var(--text-muted);font-size:.9rem}.controls-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2rem;width:100%;max-width:800px;padding:2rem;display:flex}.settings-row{grid-template-columns:1fr 1fr auto;align-items:start;gap:2rem;display:grid}@media (width<=768px){.settings-row{grid-template-columns:1fr;align-items:start;gap:1.5rem}}.file-upload-wrapper{width:100%;position:relative}.file-upload-label{background:var(--bg-dark);border:2px dashed var(--border);cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2rem;transition:all .2s;display:flex}.file-upload-label:hover{border-color:var(--accent)}.file-upload-label.drag-active{border-color:var(--accent);background:#c6ff330d;transform:scale(1.02)}.webcam-btn{background:var(--bg-dark);border:1px solid var(--border);width:100%;color:var(--text-main);cursor:pointer;border-radius:6px;margin-top:1rem;padding:.8rem;font-weight:500;transition:all .2s}.webcam-btn:hover{border-color:var(--accent);color:var(--accent)}.webcam-btn.active{color:#f44;background:#ff32321a;border-color:#f44}.file-upload-input{opacity:0;width:0;height:0;position:absolute}.upload-text{color:var(--text-main);margin-bottom:.5rem;font-size:1rem;font-weight:500}.upload-hint{color:var(--text-muted);font-size:.85rem}.setting-group{flex-direction:column;gap:.5rem;display:flex}.setting-header{color:var(--text-main);justify-content:space-between;font-size:.9rem;font-weight:500;display:flex}.setting-value{color:var(--text-muted)}input[type=range]{-webkit-appearance:none;background:0 0;width:100%;height:38px;margin:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;margin-top:-6px}input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-hover)}input[type=range]::-webkit-slider-runnable-track{cursor:pointer;background:var(--border);border-radius:2px;width:100%;height:4px}select{background:var(--bg-dark);color:var(--text-main);border:1px solid var(--border);border-radius:4px;outline:none;height:38px;padding:0 .5rem;font-size:.9rem}select:focus{border-color:var(--accent)}.checkbox-group{color:var(--text-main);cursor:pointer;align-items:center;gap:.5rem;height:38px;font-size:.9rem;display:flex}.checkbox-group input{accent-color:var(--accent);cursor:pointer}.ascii-wrapper{width:fit-content;max-width:100%;position:relative}.copy-btn{background:var(--bg-dark);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;z-index:10;border-radius:4px;padding:.4rem .8rem;font-size:.8rem;font-weight:500;transition:all .2s;position:absolute;top:1rem;right:1rem;box-shadow:0 2px 4px #0003}.copy-btn:hover{color:var(--bg-dark);background:var(--accent);border-color:var(--accent)}.ascii-output-container{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:200px;padding:2rem;display:flex;overflow:auto}.ascii-pre{letter-spacing:0;white-space:pre;color:var(--text-main);text-align:center;font-family:Courier New,Courier,monospace;font-size:8px;line-height:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.footer{text-align:center;color:var(--text-muted);margin-top:2rem;padding-bottom:1rem;font-size:.9rem}.footer a{color:var(--accent);font-weight:500;text-decoration:none;transition:color .2s}.footer a:hover{color:var(--accent-hover);text-decoration:underline}
