body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.gallery-container{align-items:center;background-color:#f5f5f5;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding:1rem}.gallery-description{display:block;margin-bottom:1rem;padding-left:1.5rem;text-align:left;width:100%}.gallery-logo{height:50px;order:-1;width:50px}.gallery-header{align-items:center;display:flex;justify-content:left;width:100%}.gallery-title{color:#333;font-size:1.5rem;font-weight:700;margin:0}.tab-navigation{border-bottom:1px solid #ddd;display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;padding-bottom:5px}.tab-button{background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px 4px 0 0;cursor:pointer;font-size:14px;outline:none;padding:8px 16px;transition:all .2s ease}.tab-button.active{background-color:#4a90e2;border-color:#3a80d2;color:#fff}.tab-button:hover:not(.active){background-color:#e0e0e0}.settings-panel{margin-bottom:1.5rem;max-width:64rem;width:100%}.panel-content{background-color:#fff;border-radius:.25rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:1.5rem;padding:1rem}.setting-group{display:flex;flex-direction:column}.setting-label{color:#555;display:block;font-size:.875rem;margin-bottom:.25rem}.setting-value{font-size:.875rem;margin-left:.5rem}.range-slider{width:8rem}.select-input{border-radius:.25rem;font-size:.875rem;padding:.25rem}.setting-divider{background-color:#eee;margin:.5rem 0;width:100%}.checkbox-group{align-items:center;flex-direction:row}.checkbox-input{margin-right:.5rem}.checkbox-label{color:#555;font-size:.875rem}.color-picker{border:1px solid #ddd;border-radius:.25rem;cursor:pointer;height:2rem;width:2rem}.export-info,.sorting-info{flex:1 1;margin-left:1rem}.info-text{color:#666;font-size:.875rem;line-height:1.4;margin-bottom:.25rem}.info-text strong{color:#333}.main-controls{background-color:#f8f8f8;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:15px;margin-bottom:20px;padding:15px}.controls-section{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.file-input{display:none}.action-button{border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s}.upload-button{background-color:#3b82f6}.upload-button:hover:not(:disabled){background-color:#2563eb}.clear-button{background-color:#ef4444}.clear-button:hover:not(:disabled){background-color:#dc2626}.export-button{background-color:#10b981}.export-button:hover:not(:disabled){background-color:#059669}.config-button{background-color:#8b5cf6}.config-button:hover:not(:disabled){background-color:#7c3aed}.action-button:disabled{cursor:not-allowed;opacity:.6}.status-message{font-size:.875rem;margin-bottom:1rem}.loading-message{color:#3b82f6}.saving-message{color:#10b981}.image-gallery{border-radius:.25rem;box-shadow:0 1px 3px #0000001a;max-width:64rem;overflow:hidden;position:relative;width:100%}.empty-gallery{align-items:center;background-color:#f9fafb;border:2px dashed #ddd;border-radius:.5rem;display:flex;flex-direction:column;justify-content:center;padding:3rem;width:100%}.upload-icon{color:#ccc;height:4rem;margin-bottom:1rem;width:4rem}.empty-title{color:#555;font-size:1.125rem;margin-bottom:.5rem}.empty-description{color:#777;font-size:.875rem;margin-bottom:1rem}.empty-upload{margin-top:.5rem}.gallery-content{display:flex;flex-direction:column}.gallery-row{display:flex;flex-wrap:wrap}.image-container{overflow:hidden;position:relative}.gallery-image{border-radius:2px;height:100%;object-fit:cover;width:100%}.image-label{left:0;line-height:1.2;position:absolute;top:0;z-index:10}.image-info{background-color:#0009;bottom:0;color:#fff;font-size:.75rem;left:0;opacity:0;padding:.25rem;position:absolute;right:0;transition:opacity .2s}.image-container:hover .image-info{opacity:1}.info-dimensions,.info-filename{margin-bottom:.125rem}.info-dimensions{color:#ccc}.label-editor{align-items:center;display:flex;margin-top:.25rem}.editor-label{margin-right:.25rem}.editor-input{background-color:#0006;border:1px solid #666;color:#fff;font-size:.75rem;padding:.125rem .25rem;width:6rem}.features-info{color:#666;font-size:.875rem;margin-top:2rem;max-width:32rem}.features-title{color:#333;font-weight:700;margin-bottom:.5rem}.features-list{list-style-type:disc;padding-left:1.25rem}.features-list li{line-height:1.5;margin-bottom:.25rem}.features-list strong{color:#333}.dpi-presets{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin:15px 0}.preset-button{align-items:center;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;min-width:85px;padding:8px 12px;transition:all .2s ease}.preset-button:hover{background-color:#e0e0e0}.preset-button.active{background-color:#4a90e2;border-color:#2a70c2;color:#fff}.preset-description{font-size:10px;margin-top:4px;opacity:.8}.export-info{background-color:#f8f8f8;border-left:4px solid #4a90e2;border-radius:4px;margin-top:20px;padding:10px}.setting-item input[type=range]{margin-right:10px;width:70%}.remove-image{align-items:center;background-color:#ff0000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;opacity:0;padding:0;position:absolute;right:5px;top:5px;transition:opacity .2s ease,background-color .2s ease;width:24px;z-index:20}.image-container:hover .remove-image{opacity:1}.remove-image:hover{background-color:#ff0000e6}.remove-icon{height:16px;width:16px}.export-button-container{display:flex;justify-content:flex-start;margin-top:1rem;width:100%}.export-button-container button{background-color:#10b981;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s}.export-button-container button:hover:not(:disabled){background-color:#059669}.export-button-container button:disabled{cursor:not-allowed;opacity:.6}.packery-gallery{overflow:hidden}.packery-container{opacity:0;transition:opacity .3s ease-in-out}.packery-container.show-items{opacity:1}.gallery-item{border-radius:4px;box-shadow:0 1px 3px #0000001a;box-sizing:border-box;margin-bottom:8px;overflow:visible!important;position:relative;transition:transform .2s ease,box-shadow .2s ease;width:25%}.gallery-item:hover{box-shadow:0 4px 6px #00000026;transform:translateY(-2px);z-index:10}.gallery-item img{display:block;height:100%;object-fit:cover;width:100%}.gallery-item.is-positioning-post-drag{background:#8ec0e980;z-index:2}.gallery-item.is-dragging{cursor:move;z-index:3}.gallery-image{will-change:transform}.packery-drop-placeholder{background:#ffffff80;border:3px dashed #ccc}.drag-mode-toggle{align-items:center;background-color:#f8f8f8;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;margin-bottom:15px;padding:10px 15px;text-align:center}.drag-toggle-button{background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;min-width:150px;padding:8px 16px;transition:all .2s ease}.drag-toggle-button.active{background-color:#4a90e2;border-color:#3a80d2;color:#fff}.drag-instructions{color:#666;font-size:13px;font-style:italic;margin-top:8px}.gallery-item.draggable{cursor:move;cursor:grab}.gallery-item.draggable:active{cursor:grabbing}.gallery-item.draggable:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 24 24'%3E%3Cpath d='M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";filter:drop-shadow(0 0 2px rgba(0,0,0,.5));height:16px;position:absolute;right:5px;top:5px;width:16px;z-index:10}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{background-color:#4a90e2;box-shadow:0 2px 4px #0000001a;color:#fff;padding:15px 20px}.app-header,.logo-container{align-items:center;display:flex}.logo-container{gap:10px}.app-logo{height:40px;width:auto}.app-title{font-size:24px;font-weight:600;margin:0}.main-content{display:flex;flex:1 1;gap:20px;padding:20px}.sidebar{flex-shrink:0;width:300px}.loading-overlay{align-items:center;background-color:#fffc;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.spinner{animation:spin 1s linear infinite;border:5px solid #f3f3f3;border-radius:50%;border-top-color:#4a90e2;height:50px;width:50px}.loading-text{color:#333;font-size:16px;margin-top:15px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.packery-gallery-wrapper{display:flex;flex:1 1;flex-direction:column}.grid-sizer{height:200px;width:25%}.gutter-sizer{width:10px}.packery-container{margin:0 auto;width:100%}.gallery-item{margin-bottom:10px;width:calc(25% - 10px)}.grid-settings{background-color:#f8f8f8;border-radius:8px;margin-bottom:20px;padding:15px}.section-title{color:#333;font-size:1rem;font-weight:600}.section-title,.setting-item{margin-bottom:15px}.setting-item:last-child{margin-bottom:0}.select-input{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#333;font-size:14px;padding:8px;width:100%}.range-slider{margin:10px 0;width:100%}.setting-value{color:#666;display:inline-block;font-size:14px;margin-left:10px;min-width:45px;text-align:right}.settings-info{background-color:#f0f7ff;border-left:4px solid #4a90e2;border-radius:4px;margin-top:20px;padding:15px}.info-text{color:#333;font-size:14px;margin-bottom:10px}.tips-list{list-style-type:disc;margin:0;padding-left:20px}.tips-list li{color:#555;font-size:14px;line-height:1.4;margin-bottom:5px}.setting-divider{background-color:#ddd;height:1px;margin:20px 0}@media (max-width:1200px){.gallery-item,.grid-sizer{width:33.333%}.gallery-item{width:calc(33.333% - 10px)}}@media (max-width:768px){.gallery-item,.grid-sizer{width:50%}.gallery-item{width:calc(50% - 10px)}}@media (max-width:480px){.gallery-item,.grid-sizer{width:100%}.gallery-item{width:calc(100% - 10px)}}.input-group{align-items:center;display:flex;gap:1rem}.number-input{border:1px solid #ccc;border-radius:4px;padding:4px 8px;width:60px}.image-info,.remove-image{position:absolute;z-index:2}.packery-gallery .gallery-item:hover .image-info,.packery-gallery .gallery-item:hover .remove-image{opacity:1;visibility:visible}
/*# sourceMappingURL=main.1e069419.css.map*/