@import"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap";:root{--font-family: "Roboto", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-family-icons: "Material Symbols Outlined", "Roboto", sans-serif;--font-family-mono: "Roboto Mono", "Consolas", "Monaco", monospace;--primary-color: #4a86e8;--primary-hover: #5c96f5;--secondary-color: #6b5b95;--background-color: #1e1e1e;--header-bg: #252525;--text-color: #eaeaea;--input-bg: #333333;--input-border: #444444;--button-hover: #5c96f5;--option-panel-bg: #2a2a2a;--error-color: #ff5252;--success-color: #33cc66;--warning-color: #ff9800;--dark-bg: #1a1a1a;--muted-text: #aaa;--tag-bg: rgba(50, 50, 50, .8);--control-bg: rgba(0, 0, 0, .5);--control-hover-bg: rgba(50, 50, 50, .8);--overlay-bg: rgba(0, 0, 0, .7);--header-height: 64px;--button-size: 40px;--button-radius: 50%;--standard-radius: 4px;--standard-transition: .3s ease;--favorite-color: #ff3366;--favorite-hover: #ff6699}@media (max-width: 767px){:root{--header-height: 54px}}*{box-sizing:border-box;margin:0;padding:0}*{scrollbar-width:thin;scrollbar-color:var(--input-border) var(--background-color)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--background-color);border-radius:4px}*::-webkit-scrollbar-thumb{background:var(--input-border);border-radius:4px;border:1px solid var(--background-color)}*::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}*::-webkit-scrollbar-corner{background:var(--background-color)}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}html,body{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden;-webkit-overflow-scrolling:touch;overflow:hidden;position:fixed}@supports (-webkit-touch-callout: none){html,body{overflow:hidden!important;overscroll-behavior:none;-webkit-overflow-scrolling:auto}*{scrollbar-width:none!important;-ms-overflow-style:none!important}*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}}body{background-color:var(--background-color);color:var(--text-color);font-family:Roboto,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;width:100%}#root{width:100%;height:100%;margin:0;padding:0}a{font-weight:500;color:var(--primary-color);text-decoration:inherit}a:hover{color:var(--button-hover);text-decoration:underline}h1{color:var(--primary-color);font-size:1.5rem;margin:0;margin-right:1rem}.app-container{min-height:100vh;display:flex;flex-direction:column;width:100%}.error-message{background-color:#ff52521a;color:var(--error-color);padding:1rem;border-radius:var(--standard-radius);margin-bottom:1rem;border-left:4px solid var(--error-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes pulse-success{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes pulse-error{0%,to{transform:scale(1)}20%,60%{transform:scale(1.1);background-color:var(--error-color);opacity:.8}40%,80%{transform:scale(1);background-color:var(--error-color)}}.button{border-radius:var(--standard-radius);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:var(--font-family);background-color:var(--input-bg);color:var(--text-color);cursor:pointer;transition:background-color var(--standard-transition)}.button:hover:not(:disabled){background-color:var(--button-hover)}.button:focus,.button:focus-visible{outline:4px auto -webkit-focus-ring-color}.button:disabled{opacity:.6;cursor:not-allowed}.button-primary{background-color:var(--primary-color);font-weight:600}.button-secondary{background-color:var(--secondary-color)}.button-small{padding:.4em .8em;font-size:.9em}.button-icon{display:flex;align-items:center;justify-content:center;width:var(--button-size);height:var(--button-size);padding:0;font-size:1.2rem;font-family:var(--font-family-icons);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.button-circle{border-radius:var(--button-radius)}.gallery-nav-btn{background:var(--control-bg);color:var(--text-color);border:none;width:var(--button-size);height:var(--button-size);font-size:20px;font-family:var(--font-family-icons);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;display:flex;align-items:center;justify-content:center;margin:0 10px;cursor:pointer;transition:background-color .2s;border-radius:var(--button-radius)}.gallery-nav-btn:hover{background-color:var(--control-hover-bg)}.gallery-like-btn.save-status-saved,.gallery-slideshow-btn.active{background-color:var(--success-color);animation:pulse-success 1s}.gallery-slideshow-btn{background-color:var(--primary-color);color:var(--text-color);font-weight:600}.gallery-slideshow-btn:hover{background-color:var(--primary-hover)}.gallery-hate-btn.hate-status-saved{background-color:var(--success-color);animation:pulse-success 1s}.gallery-hate-btn.hate-status-error,.gallery-like-btn.save-status-error{background-color:var(--error-color);animation:pulse-error 1s}.gallery-delete-btn{background-color:var(--error-color)}.gallery-delete-btn:hover{background-color:var(--error-color);opacity:.8}.gallery-slideshow-btn.active{background-color:var(--error-color);animation:pulse 2s infinite}.options-button{width:40px;display:flex;justify-content:center;align-items:center;background-color:var(--secondary-color);font-size:1.2rem;font-weight:700;font-family:var(--font-family-icons);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;padding:0;border-radius:var(--standard-radius)}.search-button{background-color:var(--primary-color);min-width:110px;font-weight:600;font-family:var(--font-family);padding:0 1.2em}.logout-button{background-color:var(--secondary-color);min-width:80px;font-weight:600;font-family:var(--font-family)}.logout-button:hover{background-color:var(--button-hover)}.gallery-like-btn.is-favorite{color:var(--favorite-color);background-color:var(--control-bg)}.gallery-like-btn:hover:not(:disabled){background-color:var(--control-hover-bg)}.gallery-like-btn.save-status-saved,.gallery-like-btn.save-status-error{color:#fff}.delete-button{background:none;border:none;color:var(--error-color);cursor:pointer;padding:.25rem;border-radius:var(--standard-radius);font-size:1rem;font-family:var(--font-family-icons);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;transition:background-color var(--standard-transition)}.delete-button:hover{background-color:#ff44441a}.add-button{background:var(--success-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--standard-radius);cursor:pointer;font-size:18px;font-weight:700;font-family:var(--font-family-icons);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;transition:background-color var(--standard-transition);height:40px;width:40px}.add-button:hover:not(:disabled){background:var(--success-hover)}.add-button:disabled{background:var(--secondary-color);cursor:not-allowed}@media (max-width: 767px){.search-button{padding:0 8px;white-space:nowrap;min-width:70px;font-size:.85rem}.options-button{width:30px;font-size:1rem}.header-title{display:none!important}}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-color);font-family:var(--font-family)}.form-group input{width:100%;padding:.75rem;border-radius:var(--standard-radius);border:1px solid var(--input-border);background-color:var(--input-bg);color:var(--text-color);font-size:1rem;font-family:var(--font-family)}input[type=text],input[type=password],input[type=number],select{height:2.5rem;padding:0 .75rem;border-radius:var(--standard-radius);border:1px solid var(--input-border);background-color:var(--input-bg);color:var(--text-color);font-size:.9rem;font-family:var(--font-family);transition:border-color .2s ease}input[type=text]:focus,input[type=password]:focus,input[type=number]:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4a86e833}input[type=number]{width:100%;padding:.5rem}.slider-container{display:flex;align-items:center;gap:.75rem}input[type=range]{flex-grow:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:5px;background-color:var(--input-border);border-radius:5px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:15px;height:15px;background-color:var(--primary-color);border-radius:50%;cursor:pointer}.slider-container span{width:40px;font-size:.9rem;text-align:right}.search-form{position:relative;width:100%;overflow:visible}.search-row{display:flex;width:100%;align-items:center}.search-group{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}.search-group select{width:100px}.tag-input-container{position:relative;flex-grow:1;min-width:80px;max-width:500px}.tag-input{width:100%;position:relative}@media (orientation: portrait){.search-group{flex-wrap:nowrap;overflow-x:auto}.search-group select{width:70px}.tag-input{min-width:60px}}@media (max-width: 767px) and (orientation: portrait){.search-row{flex-direction:column;align-items:stretch}.header-title{width:100%;margin-bottom:.5rem;justify-content:center}.search-group{gap:.4rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--overlay-bg);display:flex;justify-content:center;align-items:center;z-index:1000;font-family:var(--font-family)}.login-modal,.password-modal,.confirm-modal{background-color:var(--header-bg);border-radius:8px;padding:2rem;width:90%;max-width:400px;box-shadow:0 4px 20px #0000004d}.login-modal h2,.password-modal h2,.confirm-modal h2{color:var(--primary-color);margin-bottom:.5rem}.login-modal p,.password-modal p,.confirm-modal p{margin-bottom:1.5rem;color:var(--text-color)}.confirm-buttons{display:flex;justify-content:flex-end;gap:1rem}.button-group{display:flex;justify-content:space-between;margin-top:1.5rem;gap:1rem}.cancel-button,.confirm-button{padding:.75rem 1.5rem;border-radius:var(--standard-radius);border:none;font-weight:600;cursor:pointer;transition:background-color .2s}.confirm-button{background-color:var(--error-color);color:var(--text-color)}.cancel-button:hover{background-color:var(--button-hover)}.confirm-button:hover{background-color:var(--error-color);opacity:.8}.password-modal .cancel-button{background-color:var(--secondary-color);border:none;color:var(--text-color);padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .2s;flex:1}.password-modal .login-button{flex:1;margin-top:0;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;font-weight:700;transition:background-color .2s}.login-button{width:100%;padding:.75rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}.login-button:hover{background-color:var(--button-hover)}.login-error{background-color:#ff52521a;color:var(--error-color);padding:.75rem;border-radius:var(--standard-radius);margin-bottom:1rem;border-left:4px solid var(--error-color)}.personal-settings-modal{width:90%;max-width:1000px;max-height:90vh;overflow-y:auto;background-color:var(--header-bg);border:1px solid var(--border-color);border-radius:8px;padding:2rem;position:relative;color:var(--text-color)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.modal-header h2{margin:0;color:var(--primary-color)}.modal-close{background:none;border:none;color:var(--text-color);font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.modal-close:hover{background-color:var(--button-hover)}.personal-settings-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem}.tfidf-section h3{margin-bottom:1rem;color:var(--primary-color);border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:1rem}.section-header h3{margin-bottom:0;border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.info-tooltip-container{position:relative;display:inline-block}.info-button{background:none;border:none;cursor:pointer;font-size:16px;padding:2px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.info-button:hover{opacity:1;background-color:var(--button-hover)}.info-tooltip{position:absolute;top:30px;left:50%;transform:translate(-50%);background:var(--header-bg);border:1px solid var(--border-color);border-radius:6px;padding:12px;width:300px;z-index:1000;box-shadow:0 4px 12px #0000004d;font-size:14px;line-height:1.4;color:var(--text-color);max-width:calc(100vw - 40px)}.section-header .info-tooltip{left:0;transform:none;margin-left:0}.weight-with-info .info-tooltip{right:0;left:auto;transform:none;width:280px;margin-right:0}@media (max-width: 1200px){.info-tooltip{width:250px;left:50%;transform:translate(-50%)}.section-header .info-tooltip{left:0;transform:none;width:280px}.weight-with-info .info-tooltip{right:0;left:auto;transform:none;width:220px}}@media (max-width: 800px){.personal-settings-modal{padding:1rem;margin:1rem}.info-tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:300px;z-index:1001}.section-header .info-tooltip,.weight-with-info .info-tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:300px;right:auto;margin:0}}@media (max-width: 400px){.info-tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:320px;z-index:1001}.section-header .info-tooltip,.weight-with-info .info-tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:320px;right:auto;margin:0}}.tfidf-list{max-height:400px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--standard-radius);padding:.5rem;scrollbar-width:thin;scrollbar-color:var(--input-border) var(--input-bg)}.tfidf-list::-webkit-scrollbar{width:8px}.tfidf-list::-webkit-scrollbar-track{background:var(--input-bg);border-radius:4px}.tfidf-list::-webkit-scrollbar-thumb{background:var(--input-border);border-radius:4px}.tfidf-list::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.tfidf-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border-bottom:1px solid var(--border-color);background:var(--input-bg);margin-bottom:.25rem;border-radius:var(--standard-radius)}.tfidf-item:last-child{margin-bottom:0}.tfidf-rank{font-weight:700;color:var(--primary-color);min-width:30px}.tfidf-tag{flex:1;margin:0 .5rem;color:var(--text-color)}.tfidf-value{font-family:monospace;color:var(--success-color);font-weight:700}.lovetags-section h3{margin-bottom:1rem;color:var(--primary-color);border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.lovetags-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--standard-radius);padding:.5rem;margin-bottom:1rem;scrollbar-width:thin;scrollbar-color:var(--input-border) var(--input-bg)}.lovetags-list::-webkit-scrollbar{width:8px}.lovetags-list::-webkit-scrollbar-track{background:var(--input-bg);border-radius:4px}.lovetags-list::-webkit-scrollbar-thumb{background:var(--input-border);border-radius:4px}.lovetags-list::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.lovetag-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border-bottom:1px solid var(--border-color);background:var(--input-bg);margin-bottom:.25rem;border-radius:var(--standard-radius)}.lovetag-item:last-child{margin-bottom:0}.lovetag-name{flex:1;color:var(--text-color)}.lovetag-weight{color:var(--success-color);font-family:monospace;margin-right:.5rem}.add-lovetag-section{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:end}.new-tag-input-container{position:relative}.new-tag-input{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--standard-radius);background:var(--input-bg);color:var(--text-color);font-size:14px;font-family:var(--font-family)}.new-tag-input:focus{outline:none;border-color:var(--primary-color)}.weight-input-container{display:flex;flex-direction:column;gap:.25rem}.weight-with-info{display:flex;align-items:center;gap:8px}.weight-input-container label{font-size:12px;color:var(--text-secondary)}.weight-input{width:80px;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--standard-radius);background:var(--input-bg);color:var(--text-color);font-size:14px;font-family:var(--font-family)}.weight-input:focus{outline:none;border-color:var(--primary-color)}.loading-message{text-align:center;color:var(--text-secondary);padding:2rem;font-style:italic}.error-message{background-color:#ff44441a;border:1px solid var(--error-color);color:var(--error-color);padding:1rem;border-radius:var(--standard-radius);margin-bottom:1rem;text-align:center}@media (max-width: 768px){.personal-settings-content{grid-template-columns:1fr;gap:1rem}.add-lovetag-section{grid-template-columns:1fr;gap:.5rem}.weight-input-container{flex-direction:row;align-items:center;gap:.5rem}.weight-input{width:100px}.info-tooltip{width:280px;left:50%;transform:translate(-50%)}}.toggle-switch-container{display:flex;align-items:center;height:2.5rem}.toggle-switch{position:relative;display:inline-block;width:50px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--input-border);border-radius:24px;transition:var(--standard-transition)}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:var(--standard-transition)}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-color)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(26px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 1px var(--primary-color)}.tag-suggestions-container{position:absolute;top:100%;left:0;right:0;z-index:1001;background-color:var(--header-bg);border-radius:0 0 var(--standard-radius) var(--standard-radius);box-shadow:0 4px 8px #0003;max-height:300px;overflow-y:auto;border:1px solid var(--input-border)}.tag-suggestions{width:100%}.tag-suggestion-item{padding:8px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--input-border);transition:background-color .2s}.tag-suggestion-item:hover{background-color:var(--option-panel-bg)}.tag-suggestion-item:last-child{border-bottom:none}.tag-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-count{font-size:.85rem;color:var(--muted-text);margin-left:8px}.upload-modal{background-color:var(--header-bg);border-radius:8px;padding:2rem;width:90%;max-width:500px;box-shadow:0 4px 20px #0000004d}.upload-modal h2{color:var(--primary-color);margin-bottom:1.5rem;text-align:center}.drop-area{border:2px dashed var(--input-border);border-radius:var(--standard-radius);padding:2rem;margin-bottom:1.5rem;text-align:center;transition:all .3s ease;background-color:var(--input-bg);min-height:200px;display:flex;flex-direction:column;justify-content:center}.drop-area.dragover{border-color:var(--primary-color);background-color:#4a86e80d}.drop-message{display:flex;flex-direction:column;align-items:center;gap:10px}.select-files-btn{background-color:var(--primary-color);color:#fff;border:none;padding:10px 20px;border-radius:var(--standard-radius);cursor:pointer;font-weight:600;transition:background-color .2s}.select-files-btn:hover{background-color:var(--button-hover)}.file-types{font-size:.85rem;color:var(--muted-text);margin-top:10px}.selected-files{margin-top:20px;text-align:left;max-height:150px;overflow-y:auto;background:var(--background-color);border-radius:var(--standard-radius);padding:10px}.selected-files h3{margin-bottom:10px;font-size:1rem}.selected-files ul{list-style:none;padding:0;margin:0}.selected-files li{padding:5px 0;border-bottom:1px solid var(--input-border);font-size:.9rem}.modal-buttons{display:flex;justify-content:flex-end;gap:15px;margin-top:20px}.cancel-button,.upload-button,.done-button{padding:10px 20px;border-radius:var(--standard-radius);border:none;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:var(--secondary-color);color:var(--text-color)}.upload-button,.done-button{background-color:var(--primary-color);color:#fff}.upload-button:disabled,.cancel-button:disabled,.done-button:disabled{opacity:.5;cursor:not-allowed}.upload-progress{background-color:var(--input-bg);border-radius:var(--standard-radius);padding:1.5rem;margin-bottom:1.5rem;max-height:300px;overflow-y:auto}.upload-progress h3{margin-bottom:15px;font-size:1rem}.upload-status-list{list-style:none;padding:0;margin:0}.upload-item{display:flex;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--input-border);font-size:.9rem}.filename{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-right:10px}.upload-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.8rem;font-weight:600;white-space:nowrap}.status-uploading .upload-status{background-color:var(--secondary-color)}.status-success .upload-status{background-color:var(--success-color)}.status-error .upload-status{background-color:var(--error-color)}.header{background-color:var(--header-bg);padding:.75rem;box-shadow:0 2px 10px #0003;position:sticky;top:0;z-index:999;width:100%;isolation:isolate;overflow:visible}.header-content{width:100%;margin:0 auto;padding:0 1rem}.header-title{white-space:nowrap;display:flex;align-items:center;min-width:max-content}.shared-gallery-header{display:flex;flex-direction:column;gap:.5rem}.shared-gallery-header .header-title{display:flex;align-items:center;gap:.5rem}.gallery-owner{font-size:.8em;color:var(--text-muted, #666);font-weight:400}.gallery-stats{display:flex;gap:1rem;align-items:center;font-size:.9rem}.stat-item{color:var(--text-muted, #666)}.stat-item.filtered{color:var(--primary-color, #007bff);font-weight:500}.stat-item.shuffle{color:var(--success-color, #28a745);font-weight:500}.search-container{width:100%;max-width:100vw;position:relative;z-index:1000;overflow:visible}@media (max-width: 767px) and (orientation: portrait){.header{padding:.5rem}.header-content{padding:0 .5rem}h1{font-size:1.3rem;margin-right:0}}@media (max-width: 767px) and (orientation: landscape){.header{padding:.4rem}h1{font-size:1.2rem}}.gallery-container{position:relative;width:100%;height:calc(100vh - var(--header-height));overflow:hidden;background-color:var(--dark-bg);color:var(--text-color);touch-action:pan-x pan-y;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.app-container.fullscreen-mode .gallery-container{height:100vh!important}.gallery-container.slideshow-active .gallery-controls{transform:translateY(100%);opacity:0}.gallery-container.slideshow-active .gallery-controls.show-controls{transform:translateY(0);opacity:1}.gallery-background{position:absolute;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:center;filter:blur(20px) brightness(.6);z-index:0}.gallery-background-previous{z-index:0}.gallery-background-current{z-index:1}.gallery-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;z-index:10}.control-zone{cursor:default;background:transparent;position:absolute;bottom:0;left:0;width:100%;height:80px;z-index:5}.gallery-controls{display:flex;justify-content:center;align-items:center;width:100%;padding:15px;background-color:var(--control-bg);transition:opacity .3s ease,transform .3s ease;transform:translateY(0);position:relative;z-index:10}.gallery-controls:not(.show-controls){opacity:0;pointer-events:none;transform:translateY(100%)}.gallery-controls.outside-content{position:absolute;bottom:0;left:0;right:0;opacity:0;transform:translateY(100%);z-index:10}.gallery-fullscreen{flex:1;display:flex;align-items:center;justify-content:center;width:100%;height:calc(100% - 60px);overflow:hidden;position:relative}.gallery-fullscreen.expanded{height:100vh!important;padding-bottom:0;transition:height .3s ease}.gallery-image,.gallery-video{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s ease;display:block}.media-container{position:relative;width:100%;height:100%;overflow:hidden}.media-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-wrapper:not(.transition-previous){position:relative}.slide-out-left{animation:slideOutLeft .3s ease-in-out forwards}.slide-out-right{animation:slideOutRight .3s ease-in-out forwards}.slide-in-left{animation:slideInLeft .3s ease-in-out forwards}.slide-in-right{animation:slideInRight .3s ease-in-out forwards}.crossfade-out{animation:crossfadeOut .4s ease-in-out forwards}.crossfade-in{animation:crossfadeIn .4s ease-in-out forwards}@keyframes slideOutLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-100%);opacity:0}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes crossfadeOut{0%{opacity:1}to{opacity:0}}@keyframes crossfadeIn{0%{opacity:0}to{opacity:1}}.gallery-image,.gallery-video{min-width:0;min-height:0}.react-transform-component img{object-fit:contain;width:auto;height:auto;max-width:100%;max-height:100%}.react-transform-wrapper{width:100%!important;height:100%!important;position:relative!important}.react-transform-component{width:100%!important;height:100%!important}.gallery-video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:100%;max-height:100%;object-fit:contain}.gallery-video.transition-previous{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}.media-wrapper.crossfade-out,.media-wrapper.slide-out-left,.media-wrapper.slide-out-right{pointer-events:none}.media-wrapper.transition-previous{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.media-wrapper.transition-previous.crossfade-out{display:flex;align-items:center;justify-content:center}.media-wrapper:not(.transition-previous){position:relative;z-index:2}.media-wrapper,.gallery-video,.gallery-image{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden}@media (max-width: 768px){.slide-out-left,.slide-out-right,.slide-in-left,.slide-in-right{animation-duration:.25s}.crossfade-out,.crossfade-in{animation-duration:.4s}}.gallery-image.full-image{cursor:grab;pointer-events:auto}.gallery-image.full-image:active{cursor:grabbing}.gallery-image,.gallery-video{-webkit-touch-callout:default;-webkit-user-select:auto;-khtml-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.react-transform-component img,.react-transform-component video{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important}.gallery-preview{opacity:1;transition:opacity .3s ease}.full-image.loading{display:none}.full-image.loaded{display:block;animation:fadeIn .3s ease-in-out}.gallery-counter{margin:0 15px;font-size:14px}.gallery-details{position:absolute;bottom:70px;left:0;right:0;background-color:var(--overlay-bg);padding:15px;max-height:30%;overflow-y:auto;z-index:20}.gallery-tags{display:flex;flex-wrap:wrap;gap:10px;font-size:12px}.tag-category{margin-bottom:10px}.tag-category h4{margin:0 0 5px;color:var(--muted-text);font-size:14px}.tags-list{display:flex;flex-wrap:wrap;gap:5px}.tag{background-color:var(--tag-bg);padding:3px 8px;border-radius:12px;font-size:11px}.gallery-meta{margin-top:10px;font-size:12px;color:var(--muted-text)}.gallery-score{display:flex;gap:15px}.gallery-source{margin-top:8px}.gallery-loading,.gallery-error,.gallery-empty,.gallery-no-post,.gallery-incompatible{display:flex;align-items:center;justify-content:center;height:100%;width:100%;font-size:16px;color:var(--muted-text)}.gallery-incompatible{flex-direction:column;text-align:center;padding:20px}.gallery-incompatible h3{margin-bottom:10px;color:var(--error-color)}.gallery-main{width:100%;height:100%}.gallery-main.fullscreen{background-color:var(--background-color)}:fullscreen .gallery-container,:-webkit-full-screen .gallery-container,:-ms-fullscreen .gallery-container{height:100vh;max-height:100vh}.gallery-image-error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--overlay-bg);color:var(--text-color);padding:20px;text-align:center;z-index:5}.error-content{background-color:var(--dark-bg);border-radius:var(--standard-radius);padding:20px;max-width:80%}.error-content h3{color:var(--error-color);margin-bottom:10px}.error-content a{display:inline-block;margin-top:15px;color:var(--primary-color);text-decoration:underline}.update-link-btn{margin-top:15px;padding:10px 20px;background-color:var(--primary-color);color:var(--text-color);border:none;border-radius:var(--standard-radius);cursor:pointer;font-size:14px;transition:all .3s ease;display:inline-flex;align-items:center;gap:5px}.update-link-btn:hover:not(:disabled){background-color:var(--primary-hover);transform:scale(1.05)}.update-link-btn:disabled{opacity:.6;cursor:not-allowed}.update-link-btn.status-updating{background-color:var(--warning-color);animation:pulse 1.5s ease-in-out infinite}.update-link-btn.status-success{background-color:var(--success-color)}.update-link-btn.status-error{background-color:var(--error-color)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.unified-media-container{position:relative;width:100%;height:100%;overflow:hidden}.media-panels{display:flex;width:300vw;height:100%;transform:translate(-100vw);will-change:transform}.media-panel{width:100vw;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.media-panel.previous,.media-panel.current,.media-panel.next{transform:translate(0)}.adjacent-image,.adjacent-video{max-width:90%;max-height:90%;object-fit:contain;opacity:.8;pointer-events:none}.current-video{max-width:100%;max-height:100%;object-fit:contain}.media-wrapper{position:relative;z-index:1;transition:transform .3s cubic-bezier(.4,0,.2,1)}.unified-media-container .react-transform-wrapper{width:100%;height:100%}.unified-media-container .react-transform-component{width:100%;height:100%;display:flex!important;align-items:center!important;justify-content:center!important}.main-content{flex:1;padding:0;overflow:hidden;width:100%;max-width:100%;position:relative;font-family:var(--font-family)}.results-container{overflow-x:auto;width:100%;margin-top:1rem;border-radius:var(--standard-radius);max-width:100%;scrollbar-width:thin;scrollbar-color:var(--input-border) var(--background-color)}.results-container::-webkit-scrollbar{width:8px;height:8px}.results-container::-webkit-scrollbar-track{background:var(--background-color);border-radius:4px}.results-container::-webkit-scrollbar-thumb{background:var(--input-border);border-radius:4px}.results-container::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.results-json{padding:1.5rem;background-color:var(--header-bg);border:1px solid var(--input-border);border-radius:var(--standard-radius);font-family:var(--font-family-mono);font-size:.85rem;overflow-wrap:break-word;white-space:pre-wrap;width:100%;max-width:100%}.loading-message{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.2rem;color:var(--text-muted, #666)}.error-message h2{color:var(--error-color);margin-bottom:1rem}.error-message p{margin-bottom:1rem}.error-help{background-color:var(--option-panel-bg, #f5f5f5);padding:1rem;border-radius:var(--standard-radius);margin-top:1rem;text-align:left}.error-help ul{margin:.5rem 0;padding-left:1.5rem}.error-help li{margin:.25rem 0}.no-results-message{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.1rem;color:var(--text-muted, #666);text-align:center}.options-panel-overlay{position:absolute;top:100%;left:0;right:0;z-index:9999;pointer-events:auto}.options-panel{background-color:var(--option-panel-bg);border-radius:var(--standard-radius);box-shadow:0 4px 12px #00000026;margin-top:8px;padding:16px;width:100%;max-width:900px;animation:slideDown .3s ease;position:relative;z-index:10000}.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.option-group{display:flex;flex-direction:column;gap:.5rem}.option-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.option-group input[type=checkbox]{height:1rem;width:1rem}.mobile-divider{height:1px;background-color:var(--input-border);margin:10px 0;width:100%}.mobile-section-title{font-size:.9rem;color:var(--muted-text);margin-bottom:8px}.logout-option{display:none}.logout-option button{width:100%;padding:.5rem;background-color:var(--secondary-color);color:var(--text-color);border:none;border-radius:var(--standard-radius);cursor:pointer;transition:background-color .2s;font-weight:600}.logout-option button:hover{background-color:var(--button-hover)}.account-section{margin-top:1rem}.account-buttons{display:flex;gap:10px;margin-top:.5rem}.logout-option,.new-password-option,.personal-settings-option{flex:1}.logout-option button,.new-password-option button,.personal-settings-option button{width:100%;padding:.5rem;background-color:var(--secondary-color);color:var(--text-color);border:none;border-radius:var(--standard-radius);cursor:pointer;transition:background-color .2s;font-weight:600}.logout-option button:hover,.new-password-option button:hover,.personal-settings-option button:hover{background-color:var(--button-hover)}.new-password-option button{background-color:var(--primary-color)}.new-password-option button:hover{background-color:var(--button-hover)}.personal-settings-option button{background-color:var(--primary-color)}.personal-settings-option button:hover{background-color:var(--button-hover)}.gallery-manage-section{margin-top:1rem}.gallery-buttons{display:flex;gap:10px;margin-top:.5rem}.upload-pictures,.download-gallery{flex:1}.upload-pictures button,.download-gallery button{width:100%;padding:.5rem;background-color:var(--primary-color);color:var(--text-color);border:none;border-radius:var(--standard-radius);cursor:pointer;transition:background-color .2s;font-weight:600;display:flex;align-items:center;justify-content:center;height:auto}.upload-pictures button:hover,.download-gallery button:hover{background-color:var(--button-hover)}.download-gallery button:disabled{background-color:var(--secondary-color);cursor:not-allowed;opacity:.7}.download-gallery button:disabled:hover{background-color:var(--secondary-color)}.download-gallery button:disabled:after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gallery-sharing-section{margin-top:1rem}.gallery-sharing-content{margin-top:.5rem}.gallery-token-info{display:flex;flex-direction:column;gap:1rem}.token-field,.url-field{display:flex;flex-direction:column;gap:.5rem}.token-field label,.url-field label{font-size:.9rem;font-weight:500;color:var(--text-color)}.token-input-group{display:flex;gap:.5rem;align-items:stretch}.token-input{flex:1;padding:.5rem;border:1px solid var(--border-color, #ccc);border-radius:var(--standard-radius);background-color:var(--input-bg, #f9f9f9);color:var(--text-color);font-size:.8rem;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-button{padding:.5rem 1rem;background-color:var(--primary-color, #007bff);color:#fff;border:none;border-radius:var(--standard-radius);cursor:pointer;font-size:.8rem;white-space:nowrap;transition:background-color .2s ease}.copy-button:hover{background-color:var(--primary-color-hover, #0056b3)}.copy-button:active{transform:scale(.98)}.revoke-token-button{padding:.5rem 1rem;background-color:var(--danger-color, #dc3545);color:#fff;border:none;border-radius:var(--standard-radius);cursor:pointer;font-size:.9rem;transition:background-color .2s ease}.revoke-token-button:hover{background-color:var(--danger-color-hover, #c82333)}.revoke-token-button:disabled{background-color:var(--disabled-color, #6c757d);cursor:not-allowed}.no-token-info{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.no-token-info p{margin:0;font-size:.9rem;color:var(--text-muted, #666)}.create-token-button{padding:.5rem 1rem;background-color:var(--success-color, #28a745);color:#fff;border:none;border-radius:var(--standard-radius);cursor:pointer;font-size:.9rem;transition:background-color .2s ease}.create-token-button:hover{background-color:var(--success-color-hover, #218838)}.create-token-button:disabled{background-color:var(--disabled-color, #6c757d);cursor:not-allowed}@media (max-width: 767px){.options-panel .options-grid{display:flex;flex-direction:column;gap:.75rem}.options-panel .logout-option{display:flex}.gallery-buttons{flex-direction:column}}@media (orientation: portrait),(orientation: landscape){.logout-button{display:none}.options-panel .logout-option{display:flex}}
