.app-main{flex-direction:column;height:100%;display:flex;overflow:hidden}header{background:var(--color-bg-header);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-secondary);flex:none;padding:8px 8px 8px 14px;transition:background-color .4s,border-color .4s,color .4s}.header-row{justify-content:space-between;align-items:center;display:flex}.header-right{justify-content:flex-end;align-items:center;gap:8px;margin-left:8px;display:flex}#logoutBtn{font-size:var(--fs-minor)}.header-right .theme-toggle-btn{width:37px;height:37px}.user-login{opacity:.8;font-size:var(--fs-label);color:var(--color-text-primary)}.user-menu{position:relative}.user-menu-trigger{border:1px solid var(--color-border-glass);height:37px;color:var(--color-text-primary);cursor:pointer;font-family:inherit;font-size:var(--fs-label);background:0 0;border-radius:6px;align-items:center;gap:4px;padding:0 10px;transition:all .3s;display:flex}.user-menu-trigger:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.user-menu-caret{opacity:.6;font-size:10px;transition:transform .2s}.user-menu.open .user-menu-caret{transform:rotate(180deg)}.user-menu-dropdown{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--color-border-glass);min-width:160px;box-shadow:0 8px 24px var(--color-shadow-card);z-index:100;border-radius:8px;padding:4px 0;animation:.15s dropdownIn;display:none;position:absolute;top:calc(100% + 4px);right:0}.user-menu.open .user-menu-dropdown{display:block}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{width:100%;color:var(--color-text-secondary);font-family:inherit;font-size:var(--fs-minor);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 14px;text-decoration:none;transition:all .15s;display:block}.user-menu-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.user-menu-separator{background:var(--color-border-glass);height:1px;margin:4px 0}.logo-link{color:inherit;outline:none;text-decoration:none}.logo-link:focus-visible{outline:1px solid var(--color-border-focus);outline-offset:4px;border-radius:2px}.logo-link h1{color:var(--color-text-primary);display:inline-block}h1{font-size:var(--fs-title);letter-spacing:2px;color:var(--color-text-primary);font-weight:400}h2{color:var(--color-text-secondary);font-weight:400;font-size:var(--fs-body);margin-bottom:8px}.workspace{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 277px;min-width:0;min-height:0;display:grid}.workspace-left{border-right:1px solid var(--color-border-subtle);flex-direction:column;min-width:0;min-height:0;padding:8px;display:flex;overflow:hidden}.workspace-right{flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;min-width:0;min-height:0;padding:8px;display:flex;overflow:hidden}.workspace section{border-bottom:none}.upload-section{text-align:center;width:100%;margin:auto 0}.upload-area{border:1px dashed var(--color-border-input);cursor:pointer;background:var(--color-bg-upload);border-radius:12px;padding:24px;transition:all .4s}.upload-area:hover,.upload-area.dragover{border-color:var(--color-border-hover);background:var(--color-bg-upload-hover);transform:translateY(-2px);box-shadow:0 0 30px #ffffff0a,inset 0 0 20px #ffffff0a}.upload-area p{color:var(--color-text-muted);font-size:var(--fs-body)}.preview-section{text-align:center;width:100%;transition:border .2s,border-radius .2s,padding .2s,background .2s,box-shadow .2s;position:relative}.preview-section.dragover{border:2px dashed var(--color-accent);background:#648cff0f;border-radius:11px;padding:10px;position:relative;box-shadow:0 0 20px #648cff14,inset 0 0 20px #648cff0a}.preview-section.dragover:after{content:"Drop here to replace the image";color:var(--color-text-primary);font-size:var(--fs-display);pointer-events:none;background:var(--color-bg-preload-dim);z-index:2;border-radius:9px;justify-content:center;align-items:center;animation:.18s dropOverlayIn;display:flex;position:absolute;inset:0}@keyframes dropOverlayIn{0%{opacity:0}to{opacity:1}}.preview-section.loading{min-height:200px;margin:auto 0}.preview-section.loading #origImg{visibility:hidden}.preview-section.loading .preview-actions{display:none}.preview-spinner{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.preview-section.loading .preview-spinner{display:flex}.preview-spinner:after{content:"";border:3px solid var(--color-border-glass);border-top-color:var(--color-text-primary);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite preview-spin}@keyframes preview-spin{to{transform:rotate(360deg)}}#origImg{border:1px solid var(--color-border-input);object-fit:contain;border-radius:8px;max-width:100%;max-height:400px;margin:0 auto 8px;transition:opacity .25s;display:block}#origImg.dim{opacity:.15;filter:blur(2px)}.preview-actions{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.checkbox-group{grid-template-columns:1fr 1fr;gap:8px;display:grid}.checkbox-group label{font-size:var(--fs-minor);cursor:pointer;background:var(--color-bg-hover-subtle);color:var(--color-text-muted);border-radius:6px;align-items:center;padding:4px 6px;transition:all .3s;display:flex}.checkbox-group label:hover{background:var(--color-bg-hover);color:var(--color-text-bright)}.checkbox-group input[type=checkbox]{width:13px;height:13px;accent-color:var(--color-accent-checkbox);margin-right:4px}.controls-section{flex-direction:column;flex:none;gap:8px;display:flex}.controls-section .bg-color-row{box-sizing:border-box;background:var(--color-bg-hover-subtle);border-radius:6px;width:100%;padding:4px 6px}.controls-section .bg-color-picker{flex:1}.output-section{contain:layout style paint;flex-direction:column;flex:1 1 0;min-height:0;padding:0;display:flex}.ascii-container{background:var(--color-bg-canvas);border:1px solid var(--color-border-input);will-change:transform;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;min-height:0;padding:8px;transition:background-color .4s,border-color .4s;display:flex;position:relative;overflow:hidden}.ascii-container img,.ascii-container svg{width:100%;height:100%;display:block}#previewCanvas{border:1px solid var(--color-border-input);max-width:100%;max-height:100%;transition:opacity 50ms,border-color .4s;display:block}.export-actions{flex:none;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:auto;display:grid}.export-actions .export-bg-toggle{box-sizing:border-box;background:var(--color-bg-hover-subtle);border-radius:6px;align-items:center;gap:4px;width:100%;padding:4px 6px;transition:all .3s;display:flex}.export-actions .export-bg-toggle:hover{background:var(--color-bg-hover);color:var(--color-text-bright)}.export-actions .export-bg-toggle input[type=checkbox]{width:13px;height:13px;accent-color:var(--color-accent-checkbox);margin-right:4px}footer{background:var(--color-bg-header);border-top:1px solid var(--color-border-subtle);text-align:center;color:var(--color-text-footer);font-size:var(--fs-minor);flex:none;padding:10px 20px;transition:background-color .4s,border-color .4s,color .4s}@media (width<=600px){h1{font-size:var(--fs-display);letter-spacing:1px}.header-row{flex-wrap:wrap;gap:6px}.header-right{width:auto}.upload-section{flex-direction:column;justify-content:center;align-items:center;min-height:0;margin:0;display:flex}.user-login{display:none}.user-menu-trigger{justify-content:center;width:37px;padding:0}.container{height:calc(100vh - 8px)}.app-main{overflow:hidden auto}.workspace{grid-template-rows:1fr auto;grid-template-columns:1fr;padding:8px 8px 0;overflow:auto}.workspace-left{display:contents}.output-section{display:contents!important}.workspace-right{display:contents}.checkbox-group{margin-top:8px}.checkbox-group label{box-sizing:border-box;min-height:40px;padding:10px 8px}.export-actions .btn-small{padding:12px 8px}.export-actions .export-bg-toggle{min-height:40px}.output-section[style*=display\:none]>*,.output-section[style*="display: none"]>*,.controls-section[style*=display\:none]>*,.controls-section[style*="display: none"]>*,.export-actions[style*=display\:none],.export-actions[style*="display: none"]{display:none!important}.ascii-container{flex:auto;order:1;min-height:60vh}#previewCanvas{max-height:65vh}.controls-section{order:2;gap:2px;width:100%;padding:8px 0 0;display:flex}.export-actions{order:3;grid-template-columns:1fr;margin-top:8px;margin-bottom:8px}.export-actions .btn-small{width:100%}.preview-section{order:4}#origImg{width:100%;max-height:100vh}footer{flex:none;padding:8px 10px}}@keyframes guidePulse{0%,to{border-color:var(--color-border-glass);color:var(--color-text-muted);box-shadow:0 0 4px #ffffff0d}50%{border-color:var(--color-accent);color:var(--color-text-primary);box-shadow:0 0 16px #fff3, 0 0 4px var(--color-accent)}}.guide-pulse{animation:1s ease-in-out 5 guidePulse}.guide-overlay{z-index:1000;opacity:0;pointer-events:none;background:#000000d9;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.guide-overlay.open{opacity:1;pointer-events:auto}.guide-modal{scroll-behavior:smooth;width:calc(100vw - 32px);max-width:600px;max-height:85vh;padding:0;position:relative;overflow-y:auto}.guide-header{border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1;justify-content:space-between;align-items:center;padding:16px 12px 16px 24px;display:flex;position:sticky;top:0}.guide-header h2{font-size:var(--fs-header);color:var(--color-text-primary);letter-spacing:1px;margin:0}.guide-close{border:1px solid var(--color-border-glass);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;transition:all .3s;display:flex}.guide-close:hover{background:var(--color-bg-canvas);color:var(--color-text-primary);border-color:var(--color-border-hover)}.guide-body{padding:0 24px 24px}.guide-section{border-bottom:1px solid var(--color-border-subtle);padding:14px 0}.guide-section:last-of-type{border-bottom:none}.guide-section h3{font-size:var(--fs-label);color:var(--color-text-primary);margin:0 0 6px;font-weight:500}.guide-section p{font-size:var(--fs-label);color:var(--color-text-secondary);background:var(--color-bg-hover-subtle);border-radius:4px;margin:0 0 4px;padding:6px 10px;line-height:1.5}.guide-section .guide-note{font-size:var(--fs-minor);color:var(--color-text-muted);background:0 0;margin-top:4px;padding:0 10px;font-style:italic}.guide-tips{background:var(--color-bg-hover);border:1px solid var(--color-border-subtle);border-radius:8px;margin-top:20px;padding:16px}.guide-tips h3{font-size:var(--fs-label);color:var(--color-text-primary);margin:0 0 10px;font-weight:500}.guide-tips ul{margin:0;padding-left:18px}.guide-tips li{font-size:var(--fs-minor);color:var(--color-text-secondary);margin-bottom:6px;line-height:1.5}@media (width<=600px){.guide-modal{max-height:90vh}.guide-header{padding:16px 16px 10px}.guide-body{padding:12px 16px 16px}.guide-tips{padding:12px}}
