.room-gallery-open { display: block; width: 100%; padding: 0; border: 0; text-align: left; cursor: pointer; font: inherit; }
.room-bottom .gallery-link { background: #edf5f2; color: #24594c; font-size: 12px; padding: 9px 10px; }
.gallery-dialog { box-sizing: border-box; width: min(1000px,94vw); max-height: 90vh; padding: 26px; border: 0; border-radius: 22px; color: #193e35; font-family: inherit; }
.gallery-dialog::backdrop { background: #0b241db0; backdrop-filter: blur(3px); }
.gallery-dialog h2 { margin: 0; font-size: 22px; } .gallery-note { color: #6c7f79; font-size: 13px; line-height: 1.7; }
.gallery-toolbar { display:flex; gap:12px; align-items:center; margin:18px 0; flex-wrap:wrap; }
.gallery-upload { display:inline-block; padding:10px 16px; border-radius:10px; background:#216a55; color:white; cursor:pointer; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.gallery-card { border:1px solid #dfe9e4; border-radius:14px; overflow:hidden; background:#fff; }
.gallery-thumb { display:block; width:100%; padding:0; border:0; background:#edf3ef; cursor:pointer; }
.gallery-thumb img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.gallery-card-body { padding:12px; } .gallery-card-body strong { display:block; overflow-wrap:anywhere; font-size:14px; }
.gallery-badges { display:flex; gap:5px; margin:8px 0; min-height:20px; flex-wrap:wrap; }
.gallery-badges span { background:#e6f3ed; color:#286349; border-radius:6px; padding:3px 7px; font-size:11px; }
.gallery-actions { display:flex; gap:6px; flex-wrap:wrap; } .gallery-actions button { font:inherit; font-size:12px; border:1px solid #cdded5; border-radius:8px; padding:7px; background:#f5f9f6; cursor:pointer; color:#245b48; } .gallery-actions .gallery-delete { color:#a83e3e; }
.gallery-error { color:#ae3535; font-size:13px; } .gallery-status { font-size:13px; color:#28705a; }
.gallery-viewer { text-align:center; } #gallery-large-image { display:block; max-width:100%; max-height:65vh; margin:16px auto; object-fit:contain; border-radius:10px; }
.crop-dialog { width:min(850px,94vw); } .crop-stage { background:#182d28; border-radius:12px; text-align:center; overflow:hidden; padding:12px; }
#room-crop-canvas { display:block; max-width:100%; max-height:45vh; width:auto; height:auto; margin:auto; touch-action:none; cursor:grab; }
.crop-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0; }
.crop-controls label { display:flex; flex-direction:column; gap:7px; font-size:13px; }.crop-controls select { padding:10px; border:1px solid #ccdcd3; border-radius:8px; font:inherit; }
.gallery-dialog [hidden] { display:none !important; } .gallery-dialog button:disabled { opacity:.5; cursor:wait; }
@media(max-width:650px) { .gallery-dialog { padding:18px; } .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .crop-controls { grid-template-columns:1fr; gap:8px; } }
