:root{--photo-grid-min-height:180px;--photo-grid-max-height:220px;--photo-grid-mobile-min-height:160px;--photo-grid-mobile-max-height:200px;--photo-aspect-ratio:3/2;--animation-duration:0.3s;--overlay-background:rgba(0,0,0,.4);--fullscreen-background:rgba(0,0,0,.95);--controls-background:rgba(0,0,0,.5)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,191,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,191,0,0)}to{box-shadow:0 0 0 0 rgba(255,191,0,0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.rt-Grid{display:grid;width:100%;margin:0 auto;justify-content:center;align-items:start}.photo-grid-item{position:relative;aspect-ratio:var(--photo-aspect-ratio);min-height:var(--photo-grid-min-height);max-height:var(--photo-grid-max-height);border-radius:var(--radius-3);overflow:hidden;cursor:zoom-in;transition:transform var(--animation-duration) ease,box-shadow var(--animation-duration) ease;animation:scaleIn var(--animation-duration) ease-out;margin:0 auto;width:100%;max-width:400px}.photo-grid-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}.photo-hover-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--overlay-background);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity var(--animation-duration) cubic-bezier(.4,0,.2,1)}.photo-grid-item:hover .photo-hover-overlay{opacity:1}.dropzone{padding:24px;border:2px dashed var(--gray-6);border-radius:var(--radius-3);background:var(--gray-1);cursor:pointer;transition:all var(--animation-duration) ease;margin-bottom:24px}.dropzone-active{border-color:var(--accent-9);background:var(--accent-2);transform:scale(1.02)}.fullscreen-photo-container{position:fixed;inset:0;z-index:1000;background-color:var(--fullscreen-background);padding:2rem;animation:fadeIn var(--animation-duration) ease-out}.fullscreen-photo,.fullscreen-photo-container{display:flex;align-items:center;justify-content:center}.fullscreen-photo{position:relative;width:100%;height:100%;animation:scaleIn var(--animation-duration) ease-out;cursor:pointer}.fullscreen-photo img{max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;-o-object-fit:contain!important;object-fit:contain!important;border-radius:var(--radius-4)}.fullscreen-controls{position:fixed;top:0;left:0;right:0;padding:1rem 2rem;background:linear-gradient(180deg,rgba(0,0,0,.8),transparent);opacity:0;transition:opacity var(--animation-duration) ease;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;pointer-events:none;z-index:1001}.fullscreen-controls.visible{opacity:1;pointer-events:auto}.fullscreen-controls-text{font-size:var(--font-size-1);line-height:1.4;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.fullscreen-close-button{padding:8px;border-radius:var(--radius-2);background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all var(--animation-duration) ease;border:1px solid hsla(0,0%,100%,.1)}.fullscreen-close-button:hover{background:rgba(0,0,0,.7);color:#fff;transform:scale(1.05)}.next-button,.previous-button{position:absolute;top:50%;transform:translateY(-50%);padding:12px;border-radius:50%;background:rgba(0,0,0,.5)!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all var(--animation-duration) ease;border:1px solid hsla(0,0%,100%,.1)!important;color:#fff!important}.next-button:hover,.previous-button:hover{background:rgba(0,0,0,.7)!important;transform:translateY(-50%) scale(1.1)}.previous-button{left:16px}.next-button{right:16px}.photo-loading{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--gray-2);border-radius:var(--radius-4);overflow:hidden}.photo-loading:after{content:"";position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);animation:loading 1.5s infinite}.upload-progress{height:4px;margin-top:8px;background:var(--accent-3);border-radius:2px;overflow:hidden}.upload-progress-bar{height:100%;background:var(--accent-9);transition:width var(--animation-duration) ease}.photo-description-input{width:100%;padding:8px 12px;background-color:var(--color-background);color:var(--color-foreground);border:1px solid var(--gray-6);border-radius:var(--radius-2);font-size:var(--font-size-1)}.photo-description-input::-moz-placeholder{color:var(--gray-9)}.photo-description-input::placeholder{color:var(--gray-9)}.upload-error{animation:shake .4s ease-in-out}.photo-delete-button{position:absolute;top:12px;right:12px;z-index:20}.photo-grid-item .photo-delete-button{pointer-events:auto}@media (max-width:767px){.photo-grid-item{min-height:var(--photo-grid-mobile-min-height);max-height:var(--photo-grid-mobile-max-height)}.dropzone{padding:20px}.fullscreen-controls{padding:.75rem}.fullscreen-controls-text{font-size:calc(var(--font-size-1) * .9)}}.reservation-photos-dialog-content{max-height:70vh;overflow-y:auto;padding:1rem}.reservation-photos-dialog-content::-webkit-scrollbar{width:8px}.reservation-photos-dialog-content::-webkit-scrollbar-track{background:var(--gray-3);border-radius:4px}.reservation-photos-dialog-content::-webkit-scrollbar-thumb{background:var(--gray-6);border-radius:4px}.reservation-photos-dialog-content::-webkit-scrollbar-thumb:hover{background:var(--gray-7)}