.logout-button[data-v-46ccf92b]{background:none;border:none;padding:0;cursor:pointer}.slideshow[data-v-d3c14259]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:1000;display:flex;align-items:center;justify-content:center}.slideshow-content[data-v-d3c14259]{position:relative;width:95%;height:95%;max-width:1600px}.slide-container[data-v-d3c14259]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.slide-image[data-v-d3c14259]{max-height:100%;max-width:100%;object-fit:contain}.nav-btn[data-v-d3c14259]{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:none;font-size:3rem;padding:1rem;cursor:pointer;z-index:10}.nav-btn.prev[data-v-d3c14259]{left:1rem}.nav-btn.next[data-v-d3c14259]{right:1rem}.close-btn[data-v-d3c14259]{position:absolute;top:1rem;right:0rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;z-index:10}.slide-info[data-v-d3c14259]{position:absolute;bottom:0rem;left:0;right:0;text-align:center;color:#fff;padding:0rem;background:#00000080}.no-photo[data-v-d3c14259],.no-photos[data-v-d3c14259]{color:#fff;font-size:1.5rem;text-align:center;width:100%}html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}h1{font-size:2em;margin:.67em 0}dl dl,dl ol,dl ul,ol dl,ul dl,ol ol,ol ul,ul ol,ul ul{margin:0}hr{box-sizing:content-box;color:inherit;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}table{border-color:inherit;text-indent:0}button,input,select{margin:0}button{overflow:visible;text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}fieldset{padding:.35em .75em .625em}input{overflow:visible}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;white-space:normal}progress{display:inline-block;vertical-align:baseline}select{text-transform:none}textarea{margin:0;overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}details{display:block}dialog{background-color:#fff;border:solid;color:#000;display:block;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}dialog:not([open]){display:none}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}:root{--message-red: #dc3545;--message-green: #198754;--message-blue: #0d6efd;--message-yellow: #ffc107;--message-orange: #ff7107}.app{max-width:2000px;margin:0 auto;padding:2rem;position:relative}body{font-family:Arial,sans-serif;margin:0;padding:0;line-height:1.6;background-color:#fff;color:#000}.navbar{position:absolute;top:0;right:0;padding:1rem}.navbar a{margin-left:1rem;text-decoration:none;color:inherit}.navbar a:hover{text-decoration:underline}h2{margin-top:0}.hide{width:32xp;height:32px;opacity:0}.hide:hover{opacity:1}.icon{width:20xp;height:20px}.logo{width:250px;padding:1.5em;will-change:filter;transition:filter .3s;display:block;margin:-30px auto 0}.button-bar{width:100%;height:40pt}.button{background-color:#eee;color:#333;border:1px solid #ddd;border-radius:5pt;padding:10pt;margin-right:10pt;cursor:pointer}.button:hover{background-color:#ddd;color:#333}a.button{text-decoration:none;color:#333}.delete-button{background-color:#dc3545!important;color:#fff!important;border:none!important;font-weight:700;padding:10pt!important;margin-right:10pt!important;cursor:pointer!important;border-radius:5pt!important;box-shadow:0 2px 4px #0000001a;transition:all .2s ease}.delete-button:hover{background-color:#c82333!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.delete-button:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.gallery-grid{columns:400px 3;column-gap:16px;padding:16px;max-width:1600px;margin:0 auto}@media (max-width: 900px){.gallery-grid{columns:250px 2}}@media (max-width: 600px){.gallery-grid{columns:1}}.gallery-grid .photo-item{break-inside:avoid;margin-bottom:16px}.gallery-grid .photo-item img{width:100%;height:auto;border-radius:4px;display:block}.photo-item{cursor:pointer;position:relative;overflow:hidden;transition:transform .2s,filter .3s}.photo-item .photo-info{position:absolute;bottom:0;left:0;right:0;padding:8px;background:#0009;color:#fff;font-size:12px;display:flex;justify-content:space-between}body.signed-in .photo-item{cursor:grab}body.signed-in .photo-item:active{cursor:grabbing}.photo-item:hover{transform:scale(1.01)}.photo-item:hover img{filter:grayscale(0%)}.photo-item img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;filter:grayscale(100%);transition:inherit}.sortable-ghost{opacity:.5;background:#c8ebfb}.gallery-actions{width:1600px;margin:auto;display:flex;justify-content:flex-end;padding:0;margin-bottom:1rem}.slideshow-btn{width:20px;display:inline-flex;align-items:center;gap:0rem;padding:0rem;background:var(--primary-color);color:#fff;border-radius:4px;text-decoration:none;transition:background .2s}.slideshow-btn:hover{background:var(--primary-dark)}.slideshow-btn .icon{width:20px;height:20px}.animate-this{opacity:0;visibility:hidden}.no-js .animate-this,.no-cssanimations .animate-this{opacity:1;visibility:visible}.animated{animation-duration:2s;animation-fill-mode:both;animation-name:fadeInUp}@keyframes fadeInUp{0%{opacity:0;visibility:hidden;transform:translate3d(0,100%,0)}to{opacity:1;visibility:visible;transform:translateZ(0)}}.admin{max-width:600px;margin:0 auto;padding:2rem}.admin form div{margin-bottom:1rem}.admin label{display:block;margin-bottom:.5rem}.admin input[type=text],.admin textarea{width:100%;padding:.5rem}.admin .preview-container{margin-top:1rem}.admin .preview-image{max-width:100%;max-height:300px;border-radius:4px;border:1px solid #ddd}.drop-area{border:2px dashed #ccc;border-radius:8px;padding:.1rem;text-align:center;cursor:pointer;transition:all .2s ease;margin:1rem 0;min-height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center}.drop-area.dragging{border-color:#42b983;background-color:#42b9830d;transform:scale(1.01);box-shadow:0 0 0 2px #42b98333}.drop-area p{margin:1rem 0 0;color:#666;font-size:.9rem;max-width:80%}.drop-area input[type=file]{display:none}.photo-detail{position:fixed;inset:0;background:#fff;z-index:100;display:flex;flex-direction:column;padding:2rem;overflow-y:auto}.photo-detail .action-buttons{position:fixed;top:1.5rem;right:1.5rem;display:flex;gap:.5rem;z-index:101;background:#fffc;padding:0rem;border-radius:50px}.photo-detail .edit-button{transition:opacity .2s;opacity:.8;background:none;border:none;cursor:pointer;padding:.5rem}.photo-detail .edit-button:hover{opacity:1}.photo-detail .edit-button img{width:30px;height:30px;transition:transform .2s,filter .2s;margin-top:8px}.photo-detail .close-button{transition:opacity .2s;opacity:.8;background:none;border:none;cursor:pointer;padding:.5rem}.photo-detail .close-button:hover{opacity:1}.photo-detail .close-button img{width:48px;height:48px;transition:transform .2s,filter .2s}.photo-detail .close-button:hover img{transform:scale(1.1)}.photo-detail .photo-container{display:flex;flex-direction:column;height:100%;gap:0rem;margin-top:0rem;padding:0rem}.photo-detail .photo-wrapper{flex:1;min-height:50vh;display:flex;align-items:center;justify-content:center;padding:0rem}.photo-detail .photo-wrapper img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:4px;box-shadow:0 4px 8px #0000001a}@media (max-width: 768px){.photo-detail .photo-wrapper img{max-height:60vh}}.photo-detail .photo-info{padding-top:.5rem;max-width:800px;margin:0 auto;text-align:center;font-size:1.2rem;font-weight:700}.photo-detail .photo-info .tags-container{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}.photo-detail .photo-info .tags-container .tag-item{padding:4px 12px;background:#0000001a;border-radius:20px;border:1px solid rgba(0,0,0,.2);font-size:.9rem;font-weight:400}@media (max-width: 768px){.photo-detail .photo-info{padding:1.5rem;font-size:1rem}}.camera-info{padding:0rem;max-width:800px;margin:0 auto;text-align:center;font-size:1rem}@media (max-width: 768px){.camera-info{padding:1.5rem;font-size:1rem}}.photo-year,.photo-tag{font-size:1rem;font-weight:400}.edit-photo-detail .form-container{max-width:1200px}.edit-photo-detail .form-container .drop-area{margin:1rem 0}.edit-photo-detail .form-container .preview-image{max-width:100%;max-height:300px;margin-top:1rem}.edit-photo-detail .form-container textarea{width:calc(100% - 1.5rem);min-height:50px;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;margin:0;font-family:inherit}.signin-detail,.edit-photo-detail{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#fff}.signin-detail .action-buttons,.edit-photo-detail .action-buttons{position:absolute;top:1.5rem;right:1.5rem}.signin-detail .close-button,.edit-photo-detail .close-button{background:none;border:none;cursor:pointer;padding:.5rem}.signin-detail .close-button img,.edit-photo-detail .close-button img{width:36px;height:36px;transition:transform .2s}.signin-detail .close-button:hover img,.edit-photo-detail .close-button:hover img{transform:scale(1.1)}.signin-detail .form-container,.edit-photo-detail .form-container{width:100%;max-width:800px;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a}.signin-detail .form-container form div,.edit-photo-detail .form-container form div{margin-bottom:1.5rem}.signin-detail .form-container label,.edit-photo-detail .form-container label{display:block;margin-bottom:.5rem;font-size:1.1rem}.signin-detail .form-container input[type=text],.edit-photo-detail .form-container input[type=text],.signin-detail .form-container input[type=textarea],.edit-photo-detail .form-container input[type=textarea],.signin-detail .form-container input[type=email],.edit-photo-detail .form-container input[type=email],.signin-detail .form-container input[type=password],.edit-photo-detail .form-container input[type=password]{width:calc(100% - 1.5rem);padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;margin:0}.signin-detail .form-container input[type=text].error,.edit-photo-detail .form-container input[type=text].error,.signin-detail .form-container input[type=textarea].error,.edit-photo-detail .form-container input[type=textarea].error,.signin-detail .form-container input[type=email].error,.edit-photo-detail .form-container input[type=email].error,.signin-detail .form-container input[type=password].error,.edit-photo-detail .form-container input[type=password].error{border-color:var(--message-red)}.signin-detail .form-container .error-message,.edit-photo-detail .form-container .error-message{color:var(--message-red);font-size:.8rem;display:block;margin-top:.25rem}.signin-detail .form-container button,.edit-photo-detail .form-container button{padding:.75rem 1.5rem;background-color:#42b983;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s;width:100%}.signin-detail .form-container button:hover,.edit-photo-detail .form-container button:hover{background-color:#3aa876}.signin-detail .form-container button:disabled,.edit-photo-detail .form-container button:disabled{background-color:#ccc;cursor:not-allowed}.signin-detail .form-container .error,.edit-photo-detail .form-container .error{color:#dc3545;margin-top:1rem;padding:.5rem;background-color:#dc35451a;border-radius:4px}.confirm-dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.confirm-dialog{background:#fff;padding:20px;border-radius:8px;max-width:400px;width:100%;box-shadow:0 2px 10px #0000001a}.confirm-dialog h3{margin-top:0}.confirm-dialog-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.confirm-button{background-color:var(--message-red)!important;color:#fff!important;border:none!important;padding:8px 16px!important;border-radius:4px!important;cursor:pointer!important;font-weight:700;transition:all .2s ease}.confirm-button:hover{filter:brightness(90%)}.confirm-button:active{transform:translateY(0);filter:brightness(80%)}.cancel-button{background-color:#3085d6!important;color:#fff!important;border:none!important;padding:8px 16px!important;border-radius:4px!important;cursor:pointer!important;transition:all .2s ease}.cancel-button:hover{filter:brightness(90%)}.cancel-button:active{filter:brightness(80%)}
