.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 6px #00000012;padding:16px;margin-bottom:16px}.upload-area{border:2px dashed var(--border);border-radius:14px;padding:64px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--card-alt)}.upload-area:hover,.upload-area.drag-over{border-color:var(--primary);background:var(--primary-muted)}.upload-icon{font-size:56px;margin-bottom:14px;color:var(--sub)}.upload-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px}.upload-sub{font-size:13px;color:var(--sub)}.editor-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}.left-panel{padding:14px 16px}.panel-label{font-size:11px;font-weight:700;color:var(--sub);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.panel-label.mt{margin-top:14px}.file-list{display:flex;flex-direction:column;gap:4px;margin-bottom:6px;max-height:180px;overflow-y:auto}.file-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;border:1.5px solid transparent;transition:all .15s}.file-item:hover{background:var(--card-alt)}.file-item.active{border-color:var(--primary);background:var(--primary-muted)}.file-thumb{width:32px;height:32px;border-radius:5px;object-fit:cover;flex-shrink:0}.file-name{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.file-count{font-size:11px;color:var(--sub);margin-bottom:10px}.slider-row{display:flex;align-items:center;gap:8px}.slider-row input[type=range]{flex:1;accent-color:var(--primary)}.slider-hint{font-size:11px;color:var(--sub);white-space:nowrap}.slider-val-row{font-size:12px;font-weight:700;color:var(--primary);margin-top:4px}.dim{font-size:11px;font-weight:400;color:var(--sub);margin-left:6px}.charset-opts{display:flex;flex-direction:column;gap:6px}.radio-opt{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer}.radio-opt input[type=radio]{accent-color:var(--primary)}.custom-input{width:100%;margin-top:8px;border:2px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;font-family:monospace;outline:none;background:var(--card);color:var(--text);transition:border-color .2s}.custom-input:focus{border-color:var(--primary)}.hint-text{font-size:11px;color:var(--sub);margin-top:4px}.mode-row{display:flex;gap:6px}.mode-btn{flex:1;padding:7px 6px;border-radius:8px;border:2px solid var(--border);background:transparent;font-size:12px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .15s}.mode-btn:hover{border-color:var(--primary);color:var(--primary)}.mode-btn.active{border-color:var(--primary);background:var(--primary-muted);color:var(--primary)}.toggle-row{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.toggle-row input[type=checkbox]{display:none}.toggle-switch{width:36px;height:20px;border-radius:10px;background:var(--border);position:relative;transition:background .2s;flex-shrink:0}.toggle-switch:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px #0003}.toggle-row input:checked~.toggle-switch{background:var(--primary)}.toggle-row input:checked~.toggle-switch:after{left:19px}.toggle-label{font-size:13px;color:var(--text)}.actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.btn-primary{width:100%;background:linear-gradient(135deg,var(--primary),var(--primary-end));color:#fff;border:none;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:filter .15s}.btn-primary:hover{filter:brightness(1.08)}.btn-row2{display:flex;gap:6px}.btn-ghost{flex:1;background:transparent;color:var(--sub);border:1.5px solid var(--border);border-radius:10px;padding:9px 8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-zip{width:100%;background:transparent;border:1.5px solid var(--primary);border-radius:10px;color:var(--primary);padding:9px 8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-zip:hover{background:var(--primary-muted)}.btn-reset{width:100%;background:transparent;color:var(--sub);border:1.5px solid var(--border);border-radius:10px;padding:9px 8px;font-size:13px;cursor:pointer;transition:all .15s}.btn-reset:hover{border-color:var(--sub);color:var(--text)}.output-card{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:480px}.output-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.output-size{font-size:11px;color:var(--sub)}.output-wrap{flex:1;overflow:auto;display:flex;min-height:400px}.ascii-output{font-family:Courier New,Courier,monospace;font-size:var(--ascii-fs, 8px);line-height:1;white-space:pre;padding:16px;margin:0;flex:1;user-select:text}.ascii-output.dark-mode{background:#000;color:#fff}.ascii-output.light-mode{background:#fff;color:#000}.toast{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#1e1a40eb;color:#fff;padding:8px 18px;border-radius:8px;font-size:13px;pointer-events:none;opacity:0;transition:opacity .3s;white-space:nowrap;z-index:10}.toast.show{opacity:1}.output-card{position:relative}.add-more-btn{display:inline-block;margin-bottom:8px;background:transparent;color:var(--primary);border:1.5px dashed var(--primary);border-radius:10px;padding:8px 20px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.add-more-btn:hover{background:var(--primary-muted)}@media(max-width:760px){.editor-layout{grid-template-columns:1fr}.output-card{min-height:320px}.output-wrap{min-height:280px}}@media(max-width:600px){input[type=range]{touch-action:none}.btn-primary,.btn-ghost,.btn-zip,.btn-reset{min-height:44px}}.header-right{display:flex;align-items:center;gap:8px}.view-mode-btn{font-size:11px;font-weight:700;color:var(--sub);background:var(--card-alt);border:1.5px solid var(--border);border-radius:6px;padding:3px 8px;cursor:pointer;transition:all .15s;white-space:nowrap}.view-mode-btn:hover{border-color:var(--primary);color:var(--primary)}.view-mode-btn.active{border-color:var(--primary);background:var(--primary-muted);color:var(--primary)}[data-theme=dark] .ascii-output.light-mode{background:#f5f5f5}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ascii-output.light-mode{background:#f5f5f5}}
