.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1;flex:1;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{left:0;position:absolute;top:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{background-color:transparent;border:none;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.modal-overlay[data-v-1b7d3cf3]{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000b3;display:flex;justify-content:center;inset:0;position:fixed;z-index:2000}.modal-content[data-v-1b7d3cf3]{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 40px #0006;max-width:400px;overflow:hidden;width:90%}.modal-header[data-v-1b7d3cf3]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.5rem}.modal-header h3[data-v-1b7d3cf3]{font-size:1.1rem;font-weight:600;margin:0}.close-btn[data-v-1b7d3cf3]{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px}.close-btn[data-v-1b7d3cf3]:hover{background-color:var(--surface-color-hover);color:var(--text-primary)}.modal-body[data-v-1b7d3cf3]{padding:1.5rem}.modal-body label[data-v-1b7d3cf3]{color:var(--text-secondary);display:block;font-size:.85rem;margin-bottom:.5rem}.custom-input[data-v-1b7d3cf3]{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:1rem;padding:.75rem 1rem;transition:all .2s;width:100%}.custom-input[data-v-1b7d3cf3]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.modal-footer[data-v-1b7d3cf3]{background-color:var(--surface-color-hover);border-top:1px solid var(--border-color);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.modal-overlay[data-v-b3cfcd80]{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000b3;display:flex;justify-content:center;inset:0;position:fixed;z-index:2000}.modal-content[data-v-b3cfcd80]{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 40px #0006;max-width:400px;overflow:hidden;width:90%}.modal-header[data-v-b3cfcd80]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.5rem}.modal-header h3[data-v-b3cfcd80]{font-size:1.1rem;font-weight:600;margin:0}.close-btn[data-v-b3cfcd80]{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px}.close-btn[data-v-b3cfcd80]:hover{background-color:var(--surface-color-hover);color:var(--text-primary)}.modal-body[data-v-b3cfcd80]{padding:1.5rem}.modal-body .message[data-v-b3cfcd80]{color:var(--text-primary);font-size:1rem;line-height:1.5;margin:0}.modal-footer[data-v-b3cfcd80]{background-color:var(--surface-color-hover);border-top:1px solid var(--border-color);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.modal-backdrop[data-v-4d07c903]{align-items:center;background-color:#0009;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2000}.modal-content[data-v-4d07c903]{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #00000080;color:var(--text-primary);max-height:90vh;max-width:90vw;overflow-y:auto;width:400px}.modal-header[data-v-4d07c903]{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 24px}.modal-header h2[data-v-4d07c903]{font-size:1.25rem;margin:0}.close-btn[data-v-4d07c903]{background:none;border:none;color:inherit;cursor:pointer;font-size:1.5rem;line-height:1;margin:0;opacity:.7;padding:0}.close-btn[data-v-4d07c903]:hover{opacity:1}.modal-body[data-v-4d07c903]{padding:24px}.settings-section[data-v-4d07c903]{margin-bottom:24px}.settings-section h3[data-v-4d07c903]{color:var(--text-secondary);font-size:1rem;margin:0 0 12px}.settings-section[data-v-4d07c903]:last-child{margin-bottom:0}.section-header[data-v-4d07c903]{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.section-header h3[data-v-4d07c903]{margin:0}.hotkey-list[data-v-4d07c903]{display:flex;flex-direction:column;gap:8px}.hotkey-row[data-v-4d07c903]{align-items:center;background-color:var(--surface-color-hover);border-radius:4px;display:flex;justify-content:space-between;padding:8px}.hotkey-desc[data-v-4d07c903]{font-size:.9rem}.hotkey-btn[data-v-4d07c903]{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-family:monospace;min-width:80px;padding:4px 8px;text-align:center}.hotkey-btn[data-v-4d07c903]:hover{background-color:var(--scrollbar-thumb)}.hotkey-input[data-v-4d07c903]{background-color:var(--bg-color);border:1px solid var(--primary-color);border-radius:4px;color:var(--text-primary);font-family:monospace;outline:none;padding:4px 8px;width:150px}.btn-sm[data-v-4d07c903]{background-color:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:4px 8px}.btn-sm[data-v-4d07c903]:hover{background-color:var(--surface-color-hover);color:var(--text-primary)}.options-group[data-v-4d07c903]{display:flex;flex-direction:column;gap:8px}.options-group label[data-v-4d07c903]{align-items:center;cursor:pointer;display:flex;gap:8px}.setting-description[data-v-4d07c903]{color:var(--text-secondary);font-size:.85rem;margin:0;padding-left:26px}.radio-group[data-v-4d07c903]{border:none;margin-top:8px;padding:0}.radio-group legend[data-v-4d07c903]{color:var(--text-secondary);font-size:.9rem;margin:0 0 4px;padding:0}.danger-zone[data-v-4d07c903]{border-top:1px solid var(--danger-color);margin-top:32px;padding-top:24px}.danger-zone h3[data-v-4d07c903]{color:var(--danger-color)}.danger-zone p[data-v-4d07c903]{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.btn-danger[data-v-4d07c903]{background-color:transparent;border:1px solid var(--danger-color);border-radius:4px;color:var(--danger-color);cursor:pointer;font-weight:700;padding:8px 16px;transition:all .2s}.btn-danger[data-v-4d07c903]:hover{background-color:var(--danger-color);color:#fff}.drop-overlay[data-v-3113c158]{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--focus-ring);border:4px dashed var(--primary-color);color:var(--text-primary);display:flex;font-size:2rem;font-weight:700;justify-content:center;inset:0;pointer-events:none;position:absolute;text-shadow:0 2px 4px rgba(0,0,0,.5);z-index:1000}.custom-select[data-v-92af7137]{min-width:180px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-trigger[data-v-92af7137]{align-items:center;background-color:var(--surface-color-hover);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;justify-content:space-between;padding:.4rem .8rem;transition:all .2s ease}.select-trigger[data-v-92af7137]:hover{border-color:var(--primary-color)}.custom-select.open .select-trigger[data-v-92af7137]{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--focus-ring)}.chevron[data-v-92af7137]{color:var(--text-secondary);transition:transform .2s ease}.custom-select.open .chevron[data-v-92af7137]{transform:rotate(180deg)}.select-options[data-v-92af7137]{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #0003;left:0;max-height:300px;overflow-y:auto;padding:4px;position:absolute;right:0;top:calc(100% + 4px);z-index:1000}.select-option[data-v-92af7137]{align-items:center;border-radius:4px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.85rem;justify-content:space-between;padding:.6rem .8rem;transition:background .1s ease}.select-option[data-v-92af7137]:hover{background-color:var(--surface-color-hover)}.select-option.selected[data-v-92af7137]{background-color:var(--focus-ring);font-weight:500}.check[data-v-92af7137],.select-option.selected[data-v-92af7137]{color:var(--primary-color)}.recent-menu[data-v-4442e107]{display:inline-flex}.recent-menu[data-v-4442e107],.recent-trigger[data-v-4442e107]{align-items:center;position:relative}.recent-trigger[data-v-4442e107]{display:flex;justify-content:center}.recent-badge[data-v-4442e107]{background-color:var(--primary-color,#3b82f6);border-radius:9999px;color:#fff;font-size:.65rem;font-weight:700;line-height:1;min-width:14px;padding:2px 4px;position:absolute;right:-2px;text-align:center;top:-2px}.recent-dropdown[data-v-4442e107]{background-color:var(--surface-color,#1e1e1e);border:1px solid var(--border-color,hsla(0,0%,100%,.12));border-radius:8px;box-shadow:0 10px 25px -5px #00000080,0 8px 10px -6px #0006;display:flex;flex-direction:column;left:0;max-width:380px;min-width:280px;overflow:hidden;position:absolute;top:calc(100% + 6px);z-index:1000}.recent-dropdown-header[data-v-4442e107]{align-items:center;border-bottom:1px solid var(--border-color,hsla(0,0%,100%,.08));color:var(--text-color,#fff);display:flex;font-size:.85rem;font-weight:600;justify-content:space-between;padding:.6rem .8rem}.recent-dropdown-header .clear-btn[data-v-4442e107]{background:none;border:none;border-radius:4px;color:var(--text-secondary,#9ca3af);cursor:pointer;font-size:.75rem;padding:2px 6px;transition:all .15s ease}.recent-dropdown-header .clear-btn[data-v-4442e107]:hover{background-color:#ef44441a;color:#ef4444}.incognito-notice[data-v-4442e107]{align-items:center;background-color:#ffffff08;display:flex;font-size:.8rem;gap:.5rem;padding:.75rem .8rem}.incognito-notice[data-v-4442e107],.recent-empty[data-v-4442e107]{color:var(--text-secondary,#9ca3af)}.recent-empty[data-v-4442e107]{font-size:.85rem;padding:1.25rem .8rem;text-align:center}.recent-list[data-v-4442e107]{display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.recent-item[data-v-4442e107]{align-items:center;border-bottom:1px solid var(--border-color,hsla(0,0%,100%,.04));cursor:pointer;display:flex;gap:.6rem;padding:.55rem .8rem;transition:background-color .15s ease}.recent-item[data-v-4442e107]:last-child{border-bottom:none}.recent-item[data-v-4442e107]:hover{background-color:var(--surface-color-hover,hsla(0,0%,100%,.08))}.recent-item:hover .remove-item-btn[data-v-4442e107]{opacity:1}.recent-item .folder-icon[data-v-4442e107]{color:var(--primary-color,#3b82f6);flex-shrink:0}.recent-item .folder-info[data-v-4442e107]{display:flex;flex:1;flex-direction:column;min-width:0}.recent-item .folder-info .folder-name[data-v-4442e107]{color:var(--text-color,#fff);font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item .folder-info .folder-path[data-v-4442e107]{color:var(--text-secondary,#9ca3af);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item .remove-item-btn[data-v-4442e107]{background:none;border:none;border-radius:4px;color:var(--text-secondary,#9ca3af);cursor:pointer;font-size:1.1rem;line-height:1;opacity:0;padding:0 4px;transition:opacity .15s,color .15s}.recent-item .remove-item-btn[data-v-4442e107]:hover{color:#ef4444}.top-bar[data-v-0c323885]{align-items:center;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);box-sizing:border-box;display:flex;height:48px;justify-content:space-between;padding:.5rem 1rem;transition:transform .3s ease,opacity .3s ease}.top-bar.hidden[data-v-0c323885]{opacity:0;transform:translateY(-100%)}.toolbar-group[data-v-0c323885]{align-items:center;display:flex;flex:1;gap:.25rem}.toolbar-group[data-v-0c323885]:last-child{justify-content:flex-end}.toolbar-center[data-v-0c323885]{flex:2;justify-content:center}@media(max-width:768px){.btn-text[data-v-0c323885]{display:none}}.zoom-level[data-v-0c323885]{color:var(--text-secondary);font-size:.85rem;font-variant-numeric:tabular-nums;min-width:3.5rem;text-align:center}.incognito-indicator[data-v-0c323885]{align-items:center;color:var(--primary-color);display:flex;height:32px;justify-content:center;margin-right:4px;opacity:.8;width:32px}.fav-heart.active[data-v-0c323885]{color:#e05070}.delete-disk-btn[data-v-0c323885]{color:var(--text-secondary)}.delete-disk-btn[data-v-0c323885]:hover{color:#ff4d4f}.thumbnail-wrapper[data-v-d5858dec]{align-items:center;background-color:var(--bg-color);border:2px solid transparent;border-radius:6px;cursor:pointer;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;transition:all .2s ease-in-out;width:100%}.thumbnail-wrapper[data-v-d5858dec]:hover{border-color:var(--scrollbar-thumb);transform:scale(1.02)}.thumbnail-wrapper.active[data-v-d5858dec]{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--focus-ring);z-index:1}.thumbnail-wrapper.flash[data-v-d5858dec]{animation:locate-flash-d5858dec .7s ease-in-out}@keyframes locate-flash-d5858dec{0%{box-shadow:0 0 0 2px var(--focus-ring)}30%{border-color:#fff;box-shadow:0 0 0 6px var(--primary-color)}60%{box-shadow:0 0 0 3px var(--primary-color)}to{box-shadow:0 0 0 2px var(--focus-ring)}}.thumbnail-img[data-v-d5858dec]{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;pointer-events:none}.thumbnail-placeholder[data-v-d5858dec]{align-items:center;background-color:var(--bg-color);display:flex;height:100%;justify-content:center;width:100%}.loader[data-v-d5858dec]{animation:spin-d5858dec 1s linear infinite;border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:20px;width:20px}@keyframes spin-d5858dec{to{transform:rotate(1turn)}}.format-badge[data-v-d5858dec]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000a6;border:1px solid hsla(0,0%,100%,.1);border-radius:3px;color:#e0e0e0;font-size:.625rem;font-weight:600;left:4px;letter-spacing:.5px;padding:1px 4px;pointer-events:none;position:absolute;top:4px;transition:opacity .15s ease;z-index:3}.thumbnail-wrapper:hover .format-badge[data-v-d5858dec]{opacity:0}.thumbnail-meta-bar[data-v-d5858dec]{align-items:center;background:linear-gradient(0deg,rgba(0,0,0,.85) 0,rgba(0,0,0,.5) 60%,transparent);bottom:0;color:#fff;display:flex;font-size:.65rem;font-weight:500;justify-content:flex-start;left:0;opacity:0;padding:12px 6px 3px;pointer-events:none;position:absolute;right:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;z-index:3}.thumbnail-wrapper:hover .thumbnail-meta-bar[data-v-d5858dec]{opacity:1;transform:translateY(0)}.meta-text[data-v-d5858dec]{max-width:80%;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.8);white-space:nowrap}.remove-btn[data-v-d5858dec]{align-items:center;background-color:#f00c;border:none;border-radius:4px;color:#fff;cursor:pointer;display:none;height:24px;justify-content:center;position:absolute;right:4px;top:4px;transition:all .2s;width:24px;z-index:5}.remove-btn[data-v-d5858dec]:hover{background-color:red;transform:scale(1.1)}.thumbnail-wrapper:hover .remove-btn[data-v-d5858dec]{display:flex}.delete-disk-btn[data-v-d5858dec]{align-items:center;background-color:#780000cc;border:none;border-radius:4px;color:#fff;cursor:pointer;display:none;height:24px;justify-content:center;left:4px;position:absolute;top:4px;transition:all .2s;width:24px;z-index:5}.delete-disk-btn[data-v-d5858dec]:hover{background-color:#960000;transform:scale(1.1)}.thumbnail-wrapper:hover .delete-disk-btn[data-v-d5858dec]{display:flex}.reveal-btn[data-v-d5858dec]{align-items:center;background-color:#1e2837d9;border:1px solid hsla(0,0%,100%,.15);border-radius:4px;color:#fff;cursor:pointer;display:none;height:24px;justify-content:center;left:32px;position:absolute;top:4px;transition:all .2s;width:24px;z-index:5}.reveal-btn[data-v-d5858dec]:hover{background-color:#32465ff2;transform:scale(1.1)}.thumbnail-wrapper:hover .reveal-btn[data-v-d5858dec]{display:flex}.fav-indicator[data-v-d5858dec]{color:#e05070;display:flex;filter:drop-shadow(0 1px 2px rgba(0,0,0,.8));height:16px;pointer-events:none;width:16px;z-index:4}.fav-btn[data-v-d5858dec],.fav-indicator[data-v-d5858dec]{align-items:center;bottom:4px;justify-content:center;position:absolute;right:4px}.fav-btn[data-v-d5858dec]{background-color:#0009;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;display:none;height:22px;padding:0;transition:color .15s;width:22px;z-index:5}.fav-btn.active[data-v-d5858dec],.fav-btn[data-v-d5858dec]:hover{color:#e05070}.thumbnail-wrapper:hover .fav-indicator[data-v-d5858dec]{display:none}.thumbnail-wrapper:hover .fav-btn[data-v-d5858dec]{display:flex}.gallery-container[data-v-9568eefa]{background-color:var(--surface-color);box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.gallery-container.bottom[data-v-9568eefa]{border-top:1px solid var(--border-color)}.gallery-container[data-v-9568eefa]:not(.bottom){border-right:1px solid var(--border-color)}.gallery-header[data-v-9568eefa]{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.gallery-container.bottom .gallery-header[data-v-9568eefa]{align-items:center;flex-direction:row;justify-content:space-between;padding-right:8px}.gallery-container.bottom .gallery-header .gallery-tabs[data-v-9568eefa]{border-bottom:none}.gallery-container.bottom .gallery-header .gallery-search[data-v-9568eefa]{min-width:220px;padding:4px 0}.gallery-tabs[data-v-9568eefa]{border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0}.tab-btn[data-v-9568eefa]{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;flex:1;font-size:.75rem;padding:5px 6px;transition:all .15s ease;white-space:nowrap}.tab-btn[data-v-9568eefa]:hover{color:var(--text-primary)}.tab-btn.active[data-v-9568eefa]{border-bottom-color:var(--primary-color);color:var(--primary-color)}.gallery-search[data-v-9568eefa]{flex-shrink:0;padding:6px 8px}.search-input-wrapper[data-v-9568eefa]{align-items:center;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;display:flex;height:28px;padding:0 8px;position:relative;transition:border-color .15s ease,box-shadow .15s ease}.search-input-wrapper[data-v-9568eefa]:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}.search-icon[data-v-9568eefa]{color:var(--text-secondary);flex-shrink:0;margin-right:6px}.search-input[data-v-9568eefa]{background:transparent;border:none;color:var(--text-primary);flex:1;font-size:.8rem;min-width:0;outline:none;padding:0}.search-input[data-v-9568eefa]::-moz-placeholder{color:var(--text-secondary);opacity:.7}.search-input[data-v-9568eefa]::placeholder{color:var(--text-secondary);opacity:.7}.search-count-badge[data-v-9568eefa]{background-color:var(--surface-color);border-radius:4px;font-size:.7rem;padding:1px 5px;white-space:nowrap}.clear-search-btn[data-v-9568eefa],.search-count-badge[data-v-9568eefa]{color:var(--text-secondary);margin-left:4px}.clear-search-btn[data-v-9568eefa]{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:flex;justify-content:center;padding:2px}.clear-search-btn[data-v-9568eefa]:hover{background-color:#ffffff1a;color:var(--text-primary)}.scroller[data-v-9568eefa]{box-sizing:border-box;flex:1;min-height:0;padding:12px}.gallery-empty[data-v-9568eefa]{align-items:center;color:var(--text-secondary);display:flex;flex:1;flex-direction:column;font-size:.85rem;justify-content:center;padding:16px;text-align:center}.gallery-empty p[data-v-9568eefa]{margin:0}.clear-filter-link[data-v-9568eefa]{background:var(--bg-color);border:1px solid var(--border-color);border-radius:4px;color:var(--primary-color);cursor:pointer;font-size:.75rem;margin-top:8px;padding:4px 10px;transition:all .2s ease}.clear-filter-link[data-v-9568eefa]:hover{background:var(--primary-color);color:#fff}.thumbnail-item[data-v-9568eefa]{box-sizing:border-box}[data-v-9568eefa] .vue-recycle-scroller__item-wrapper{display:flex;flex-direction:inherit}[data-v-9568eefa] .vue-recycle-scroller__item-view{box-sizing:border-box}.sidebar[data-v-70574573]{background-color:var(--surface-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;position:relative;transition:all .3s ease;z-index:10}.sidebar.left[data-v-70574573]{border-right:1px solid var(--border-color)}.sidebar.bottom[data-v-70574573]{border-top:1px solid var(--border-color);width:100%}.sidebar-content[data-v-70574573]{flex:1;height:100%;overflow:hidden;width:100%}.sidebar-empty[data-v-70574573]{align-items:center;color:var(--text-secondary);display:flex;flex:1;font-size:.9rem;justify-content:center;padding:20px;text-align:center}.resize-handle[data-v-70574573]{position:absolute;transition:background-color .2s;z-index:20}.resize-handle[data-v-70574573]:active,.resize-handle[data-v-70574573]:hover{background-color:var(--primary-color);opacity:.3}.resize-handle.left[data-v-70574573]{cursor:col-resize;height:100%;right:-3px;top:0;width:6px}.resize-handle.bottom[data-v-70574573]{cursor:row-resize;height:6px;left:0;top:-3px;width:100%}.viewer-container[data-v-7b492788]{align-items:center;background-color:var(--surface-color);display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.edge-glow[data-v-7b492788]{bottom:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s ease;width:48px;z-index:20}.edge-glow.edge-glow-left[data-v-7b492788]{background:linear-gradient(90deg,rgba(59,130,246,.4),transparent);left:0}.edge-glow.edge-glow-right[data-v-7b492788]{background:linear-gradient(270deg,rgba(59,130,246,.4),transparent);right:0}.edge-glow.active[data-v-7b492788]{animation:glow-pulse-7b492788 .38s ease-out;opacity:1}.image-wrapper[data-v-7b492788]{align-items:center;display:grid;height:100%;justify-items:center;transition:transform .25s cubic-bezier(.175,.885,.32,1.275);width:100%}.image-wrapper.bounce-left[data-v-7b492788]{transform:translate(24px)!important}.image-wrapper.bounce-right[data-v-7b492788]{transform:translate(-24px)!important}@keyframes glow-pulse-7b492788{0%{opacity:0}35%{opacity:1}to{opacity:0}}.viewer-image[data-v-7b492788]{grid-area:1/1;transform-origin:center center;transition:transform .1s ease-out;will-change:transform}.viewer-thumbnail[data-v-7b492788]{filter:blur(8px);z-index:1}.main-image[data-v-7b492788]{opacity:0;transition:opacity .3s ease-in;z-index:2}.main-image.is-loaded[data-v-7b492788]{opacity:1}.fit-contain[data-v-7b492788],.fit-height[data-v-7b492788],.fit-width[data-v-7b492788]{-o-object-fit:contain;object-fit:contain}.fit-actual[data-v-7b492788]{height:auto;max-height:none;max-width:none;width:auto}.empty-state[data-v-7b492788]{align-items:center;color:var(--text-secondary);display:flex;height:100%;justify-content:center;width:100%}.empty-state .empty-state-content[data-v-7b492788]{align-items:center;background-color:var(--bg-color);border:2px dashed var(--border-color);border-radius:16px;display:flex;flex-direction:column;gap:16px;padding:48px;transition:border-color .3s}.empty-state .empty-state-content svg[data-v-7b492788]{color:var(--border-color);opacity:.7}.empty-state .empty-state-content p[data-v-7b492788]{color:var(--text-primary);font-size:1.25rem;font-weight:500;margin:0}.empty-state .empty-state-content .empty-state-hint[data-v-7b492788]{color:var(--text-secondary);font-size:.95rem}.viewer-container.drag-over .empty-state .empty-state-content[data-v-7b492788]{background-color:var(--focus-ring);border-color:var(--primary-color)}.viewer-container.drag-over .empty-state .empty-state-content svg[data-v-7b492788]{color:var(--primary-color)}.mosaic-container[data-v-20168712]{align-items:center;background-color:var(--bg-color);background-image:radial-gradient(var(--border-color) 1px,transparent 1px);background-size:20px 20px;box-sizing:border-box;display:flex;height:100%;justify-content:center;padding:16px;width:100%}.mosaic-canvas[data-v-20168712]{height:100%;position:relative;width:100%}.mosaic-cell[data-v-20168712]{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000014;box-sizing:border-box;overflow:hidden;position:absolute;transition:box-shadow .2s,transform .2s}.mosaic-cell[data-v-20168712]:after{border:2px solid transparent;border-radius:8px;content:"";inset:0;pointer-events:none;position:absolute;transition:border-color .2s;z-index:15}.mosaic-cell.active[data-v-20168712]{box-shadow:0 8px 24px #00000026;z-index:10}.mosaic-cell.active[data-v-20168712]:after{border-color:var(--primary-color)}.mosaic-cell .swap-handle[data-v-20168712]{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000a6;border:1px solid hsla(0,0%,100%,.2);border-radius:6px;color:#fff;cursor:grab;display:flex;height:26px;justify-content:center;left:8px;opacity:0;position:absolute;top:8px;transition:opacity .2s ease,transform .15s ease,background-color .2s ease;width:26px;z-index:10}.mosaic-cell .swap-handle[data-v-20168712]:hover{background-color:var(--primary-color,#3b82f6);border-color:var(--primary-color,#3b82f6);transform:scale(1.08)}.mosaic-cell .swap-handle[data-v-20168712]:active{cursor:grabbing}.mosaic-cell.active .swap-handle[data-v-20168712],.mosaic-cell:hover .swap-handle[data-v-20168712]{opacity:.85}.mosaic-cell .swap-handle[data-v-20168712]:hover{opacity:1}.mosaic-cell .move-handle+.swap-handle[data-v-20168712]{left:40px}.mosaic-cell.drag-over[data-v-20168712]{outline:2px dashed var(--primary-color,#3b82f6);outline-offset:-2px}.mosaic-cell.drag-over[data-v-20168712]:after{background-color:#3b82f626;content:"";inset:0;pointer-events:none;position:absolute;z-index:5}.mosaic-cell.is-dragging[data-v-20168712]{opacity:.45}.mosaic-cell .drag-handle[data-v-20168712]{background-color:var(--surface-color);box-shadow:0 2px 5px #0000001a;color:var(--text-secondary);display:none;opacity:.9;position:absolute;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:20}.mosaic-cell .drag-handle[data-v-20168712]:hover{background-color:var(--surface-color-hover);color:var(--primary-color)}.mosaic-cell.active .drag-handle[data-v-20168712],.mosaic-cell:hover .drag-handle[data-v-20168712]{align-items:center;display:flex;justify-content:center}.mosaic-cell .move-handle[data-v-20168712]{border:1px solid var(--border-color);border-radius:6px;cursor:move;height:28px;left:8px;top:8px;width:28px}.mosaic-cell .resize-handle[data-v-20168712]{background-color:var(--primary-color);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;height:14px;width:14px;z-index:25}.mosaic-cell .resize-handle[data-v-20168712]:hover{background-color:var(--primary-color-hover);transform:scale(1.2)}.mosaic-cell .resize-handle.top-left[data-v-20168712]{cursor:nw-resize;left:-6px;top:-6px}.mosaic-cell .resize-handle.top-right[data-v-20168712]{cursor:ne-resize;right:-6px;top:-6px}.mosaic-cell .resize-handle.bottom-left[data-v-20168712]{bottom:-6px;cursor:sw-resize;left:-6px}.mosaic-cell .resize-handle.bottom-right[data-v-20168712]{bottom:-6px;cursor:se-resize;right:-6px}.empty-mosaic[data-v-20168712]{align-items:center;background-color:var(--surface-color);color:var(--text-secondary);display:flex;height:100%;justify-content:center}.empty-mosaic .empty-mosaic-content[data-v-20168712]{align-items:center;background-color:var(--bg-color);border:2px dashed var(--border-color);border-radius:12px;display:flex;flex-direction:column;gap:12px;padding:32px}.empty-mosaic .empty-mosaic-content svg[data-v-20168712]{color:var(--border-color)}.empty-mosaic .empty-mosaic-content p[data-v-20168712]{color:var(--text-primary);font-size:1.2rem;font-weight:500;margin:0}.empty-mosaic .empty-mosaic-content .empty-hint[data-v-20168712]{color:var(--text-secondary);font-size:.9rem}.metadata-panel[data-v-0e092f44]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--surface-color,#1e1e1e);border:1px solid var(--border-color,#333);border-radius:8px;box-shadow:0 4px 12px #0000004d;color:var(--text-primary,#fff);opacity:.95;padding:16px;position:absolute;right:16px;top:16px;transition:opacity .3s ease,transform .3s ease;width:320px;z-index:100}.metadata-header[data-v-0e092f44]{align-items:center;border-bottom:1px solid var(--border-color,#333);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.metadata-header h3[data-v-0e092f44]{font-size:1rem;font-weight:500;margin:0}.copy-btn[data-v-0e092f44]{background:var(--bg-secondary,#333);border:1px solid var(--border-color,#444);border-radius:4px;color:var(--text-primary,#fff);cursor:pointer;font-size:.75rem;padding:4px 8px;transition:background .2s}.copy-btn[data-v-0e092f44]:hover{background:var(--bg-hover,#444)}.copy-gps-btn[data-v-0e092f44]{margin-left:auto}.gps-badge[data-v-0e092f44]{align-self:flex-start;background-color:#2e7d32;border-radius:12px;color:#fff;display:inline-block;font-size:.75rem;font-weight:500;margin-top:8px;padding:4px 8px;text-align:center}.metadata-content[data-v-0e092f44]{display:flex;flex-direction:column;gap:8px}.metadata-row[data-v-0e092f44]{align-items:center;display:flex;font-size:.85rem;gap:8px;overflow:hidden}.metadata-row .label[data-v-0e092f44]{color:var(--text-secondary,#aaa);max-width:120px;min-width:70px}.metadata-row .label[data-v-0e092f44],.metadata-row .value[data-v-0e092f44]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metadata-row .value[data-v-0e092f44]{flex:1}.metadata-exif[data-v-0e092f44]{border-top:1px solid var(--border-color,#333);margin-top:12px;padding-top:12px}.metadata-exif .exif-title[data-v-0e092f44]{color:var(--text-primary,#fff);font-size:.9rem;font-weight:500;margin-bottom:8px}.metadata-exif .exif-groups[data-v-0e092f44]{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow-y:auto}.metadata-exif .exif-groups[data-v-0e092f44]::-webkit-scrollbar{width:4px}.metadata-exif .exif-groups[data-v-0e092f44]::-webkit-scrollbar-thumb{background:var(--border-color,#444);border-radius:2px}.metadata-exif .exif-group[data-v-0e092f44]{background:#ffffff0d;border:1px solid var(--border-color,#333);border-radius:4px}.metadata-exif .exif-group summary[data-v-0e092f44]{align-items:center;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;outline:none;padding:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.metadata-exif .exif-group summary[data-v-0e092f44]:hover{background:#ffffff1a}.metadata-exif .exif-group .exif-group-content[data-v-0e092f44]{background:#0003;border-top:1px solid var(--border-color,#333);display:flex;flex-direction:column;gap:4px;padding:8px}.viewer-area[data-v-f4679dde]{background-color:var(--viewer-bg,var(--surface-color));display:flex;flex:1;height:100%;overflow:hidden;position:relative}.status-bar[data-v-71be82cd]{align-items:center;background-color:var(--surface-color);border-top:1px solid var(--border-color);bottom:0;color:var(--text-secondary);display:flex;font-size:.75rem;height:28px;justify-content:space-between;left:0;padding:0 .75rem;position:absolute;transition:transform .3s ease,opacity .3s ease;width:100%;z-index:50}.status-center[data-v-71be82cd],.status-left[data-v-71be82cd],.status-right[data-v-71be82cd]{align-items:center;display:flex;flex:1;gap:.5rem}.status-center[data-v-71be82cd]{justify-content:center}.status-right[data-v-71be82cd]{justify-content:flex-end}.file-name[data-v-71be82cd]{color:var(--text-primary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.separator[data-v-71be82cd]{opacity:.5}.platform-indicator[data-v-71be82cd]{align-items:center;color:var(--primary-color);display:flex;margin-left:.25rem}:root{--bg-color:#f8f9fa;--surface-color:#fff;--surface-color-hover:#e9ecef;--border-color:#dee2e6;--text-primary:#212529;--text-secondary:#6c757d;--primary-color:#0d6efd;--primary-color-hover:#0b5ed7;--danger-color:#dc3545;--scrollbar-bg:#f1f3f5;--scrollbar-thumb:#ced4da;--scrollbar-thumb-hover:#adb5bd;--focus-ring:rgba(13,110,253,.25);--font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}body.dark-theme{--bg-color:#121212;--surface-color:#1e1e1e;--surface-color-hover:#2a2a2a;--border-color:#333;--text-primary:#fff;--text-secondary:#a0a0a0;--primary-color:#007bff;--primary-color-hover:#0056b3;--danger-color:#dc3545;--scrollbar-bg:#1a1a1a;--scrollbar-thumb:#444;--scrollbar-thumb-hover:#555;--focus-ring:rgba(0,123,255,.25)}body,html{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-family);height:100vh;margin:0;overflow:hidden;padding:0;width:100vw;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-bg);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}button{font-family:inherit}.btn{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.5rem;justify-content:center;padding:.4rem .75rem;transition:all .2s ease-in-out;white-space:nowrap}.btn:hover{background-color:var(--surface-color-hover);border-color:var(--border-color)}.btn:active{background-color:var(--border-color)}.btn.active{background-color:var(--focus-ring);border-color:#007bff80;color:var(--primary-color)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn svg{flex-shrink:0}.btn.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn.btn-primary:hover{background-color:var(--primary-color-hover)}.btn.btn-danger{background-color:var(--danger-color);border-color:var(--danger-color);color:#fff}.btn.btn-danger:hover{filter:brightness(.9)}.icon-btn{height:32px;padding:.4rem;width:32px}.separator{background-color:var(--border-color);height:20px;margin:0 .5rem;width:1px}.app-layout{background-color:var(--bg-color);color:var(--text-primary);flex-direction:column;height:100vh;width:100vw}.app-layout,.main-content{display:flex;overflow:hidden;position:relative}.main-content{flex:1;flex-direction:row;padding-bottom:0;transition:padding-bottom .3s ease}.main-content.gallery-bottom{flex-direction:column-reverse}.app-layout:has(.status-bar:not(.hidden)) .main-content{padding-bottom:28px}.permission-banner{align-items:center;animation:slideDown .3s ease-out;background-color:var(--primary-color);border-radius:8px;box-shadow:0 4px 20px #0003;color:#fff;display:flex;gap:16px;left:50%;padding:12px 24px;position:absolute;top:64px;transform:translate(-50%);z-index:1000}.permission-banner p{font-size:.95rem;font-weight:500;margin:0}.permission-banner button{background-color:#fff;border:none;border-radius:6px;color:var(--primary-color);cursor:pointer;font-weight:600;padding:6px 16px;transition:background-color .2s}.permission-banner button:hover{background-color:#ffffffe6}.permission-banner button:disabled{cursor:not-allowed;opacity:.7}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}.toast-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141418e6;border:1px solid var(--border-color,hsla(0,0%,100%,.15));border-radius:9999px;bottom:48px;box-shadow:0 4px 16px #00000059;color:#fff;font-size:.875rem;font-weight:500;left:50%;padding:8px 18px;pointer-events:none;position:fixed;transform:translate(-50%);z-index:2000}.toast-enter-active,.toast-leave-active{transition:opacity .2s ease,transform .2s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,10px)}
