.sv-session-page .sv-gallery-main { max-width:1400px; }
.sv-gallery-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; padding:22px 0; border-top:1px solid #d8d0bf; border-bottom:1px solid #d8d0bf; }
.sv-gallery-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.sv-gallery-tabs button,.sv-download-full { border:1px solid #a78d66; border-radius:30px; padding:13px 20px; background:transparent; color:#332d23; font-size:12px; text-decoration:none; }
.sv-gallery-tabs button[aria-pressed=true],.sv-download-full { background:#25231e; color:#efdfbd; }
.sv-gallery-page .sv-gallery-toolbar a.sv-download-full { background:#d8c6a5; color:#191916; border-color:#a78d66; font-weight:600; transition:background .25s ease; }
.sv-gallery-page .sv-gallery-toolbar a.sv-download-full:hover { background:#ead8b7; color:#191916; }
.sv-gallery-page .sv-gallery-toolbar a.sv-download-full:focus-visible { outline:3px solid #806035; outline-offset:4px; }
#sv-favorites-count { font-size:12px; color:#7c6a50; }
.sv-favorite-download-row { display:flex; justify-content:flex-end; margin-top:16px; }
.sv-favorite-download-row button,.sv-favorite-download-panel > button { border:1px solid #a78d66; border-radius:30px; padding:13px 20px; background:#d8c6a5; color:#191916; font-size:12px; }
.sv-favorite-download-row button:disabled,.sv-favorite-download-panel > button:disabled { opacity:.45; cursor:default; }
.sv-favorite-download-panel { margin-top:20px; padding:24px; border:1px solid #c3af8e; border-radius:16px; background:#faf7ef; font-size:13px; }
.sv-favorite-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.sv-favorite-panel-heading h2 { margin:0; font-size:22px; font-weight:400; }
.sv-favorite-panel-heading button { border:0; background:transparent; min-width:44px; min-height:44px; font-size:26px; }
#sv-favorite-download-links { display:flex; flex-wrap:wrap; gap:12px; }
.sv-gallery-page #sv-favorite-download-links a { display:block; border:1px solid #a78d66; padding:12px 16px; border-radius:24px; color:#332d23; text-decoration:none; }
.sv-gallery-help { margin:24px 0; font-size:13px; color:#776f61; }
.sv-photo-grid { columns:3; column-gap:18px; }
.sv-photo-tile { position:relative; break-inside:avoid; margin:0 0 18px; border-radius:14px; overflow:hidden; animation:sv-photo-arrive .65s ease both; }
.sv-tile-view { display:block; padding:0; width:100%; border:0; background:transparent; }
.sv-tile-view img { display:block; width:100%; height:auto; transition:filter .4s ease; }
.sv-tile-view video { display:block; width:100%; height:auto; }
.sv-video-label { position:absolute; left:16px; bottom:16px; background:#25231ee8; border:1px solid #cbb589; color:#efdfbd; padding:12px 18px; border-radius:30px; font-size:12px; }
#sv-photo-dialog .sv-dialog-view video { display:block; width:auto; height:auto; max-width:calc(100% - 150px); max-height:100%; border-radius:4px; }
@media(max-width:600px) { #sv-photo-dialog .sv-dialog-view video { max-width:100%; } }
.sv-tile-view:hover img { filter:brightness(1.05); }
.sv-tile-tools { position:absolute; top:12px; right:12px; display:flex; gap:8px; }
.sv-tile-tools button,.sv-tile-tools a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #cbb589; border-radius:50%; background:#f4f1e9e8; color:#332a1a; font-size:25px; text-decoration:none; box-shadow:0 3px 12px #0002; }
.sv-tile-tools button[aria-pressed=true] { background:#25231e; color:#e2c691; }
.sv-mobile-download-help { margin-top:32px; padding:20px; border:1px solid #d8d0bf; border-radius:14px; font-size:13px; color:#70634e; line-height:1.8; }
.sv-mobile-download-help summary { cursor:pointer; color:#332d23; }
#sv-photo-dialog { width:calc(100% - 32px); max-width:1300px; max-height:94svh; padding:18px; border:1px solid #a48b62; border-radius:20px; background:#191916; color:#f4ead6; overflow:auto; }
#sv-photo-dialog::backdrop { background:#000d; backdrop-filter:blur(8px); }
.sv-dialog-header { display:flex; align-items:center; gap:20px; padding:0 6px 16px; }
.sv-dialog-header h2 { margin:0; flex:1; font-size:18px; font-weight:400; }
.sv-dialog-header span { font-size:12px; }
.sv-dialog-header button,.sv-dialog-view button { min-width:44px; min-height:44px; border:1px solid #7b6b50; background:transparent; border-radius:50%; color:#e6d2ad; font-size:24px; }
.sv-dialog-view { position:relative; display:flex; align-items:center; justify-content:center; gap:12px; }
.sv-dialog-view img { display:block; width:calc(100% - 112px); height:65svh; object-fit:contain; touch-action:pan-y pinch-zoom; }
.sv-dialog-view button:disabled { opacity:.25; }
.sv-dialog-tools { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; padding:18px 0 0; }
.sv-dialog-tools button,.sv-dialog-tools a { border:1px solid #a48b62; border-radius:30px; padding:12px 18px; color:#e6d2ad; background:transparent; font-size:12px; text-decoration:none; }
.sv-dialog-tools button[aria-pressed=true] { background:#d8c6a5; color:#191916; }
@keyframes sv-photo-arrive { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:900px) { .sv-photo-grid { columns:2; } }
@media(max-width:600px) { .sv-photo-grid { columns:1; } .sv-gallery-toolbar { align-items:stretch; } .sv-download-full { text-align:center; width:100%; } #sv-photo-dialog { width:calc(100% - 12px); padding:12px; } .sv-dialog-view img { width:100%; height:60svh; } .sv-dialog-view button { position:absolute; z-index:1; background:#191916a0; } #sv-dialog-prev { left:4px; } #sv-dialog-next { right:4px; } .sv-dialog-header { gap:10px; } .sv-dialog-tools { gap:8px; } }
@media(prefers-reduced-motion:reduce) { .sv-photo-tile { animation:none; } .sv-tile-view img { transition:none; } }

/* Visor de fotografía con controles superiores y espacio libre para cerrar. */
#sv-photo-dialog { width:100%; max-width:none; height:100svh; max-height:100svh; margin:0; padding:20px 24px; border:0; border-radius:0; background:var(--sv-paper); color:#332d23; overflow:hidden; }
#sv-photo-dialog::backdrop { background:#f4f1e9; }
#sv-photo-dialog .sv-dialog-header { height:54px; padding:0; gap:18px; }
#sv-photo-dialog .sv-dialog-header h2 { font-size:15px; }
#sv-photo-dialog .sv-dialog-header span { color:#7c6a50; }
#sv-photo-dialog .sv-dialog-tools { flex-wrap:nowrap; justify-content:flex-end; gap:10px; padding:0; }
#sv-photo-dialog .sv-dialog-tools button,#sv-photo-dialog .sv-dialog-tools a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; padding:0; border:1px solid #a78d66; border-radius:50%; background:#25231e; color:#ead8b7; }
#sv-photo-dialog .sv-dialog-tools svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#sv-photo-dialog #sv-dialog-favorite[aria-pressed=true] { background:#d8c6a5; color:#332d23; }
#sv-photo-dialog #sv-dialog-favorite[aria-pressed=true] svg { fill:currentColor; }
#sv-photo-dialog #sv-dialog-close { background:transparent; color:#796747; border-color:transparent; margin-left:8px; }
#sv-photo-dialog .sv-dialog-view { height:calc(100svh - 114px); margin-top:12px; }
#sv-photo-dialog .sv-dialog-view img { width:auto; height:auto; max-width:calc(100% - 150px); max-height:100%; object-fit:contain; border-radius:4px; }
#sv-photo-dialog .sv-dialog-view > button { position:absolute; top:50%; transform:translateY(-50%); background:#faf7ef; color:#51422c; border-color:#d8c8aa; box-shadow:0 3px 15px #332d2312; }
#sv-photo-dialog #sv-dialog-prev { left:0; }
#sv-photo-dialog #sv-dialog-next { right:0; }
#sv-photo-dialog .sv-dialog-tools button:hover,#sv-photo-dialog .sv-dialog-tools a:hover { background:#d8c6a5; color:#191916; }
@media(max-width:600px) {
 #sv-photo-dialog { padding:12px; }
 #sv-photo-dialog .sv-dialog-header { flex-wrap:wrap; height:auto; gap:8px; }
 #sv-photo-dialog .sv-dialog-header h2 { flex:1 1 65%; font-size:12px; }
 #sv-photo-dialog .sv-dialog-tools { width:100%; gap:8px; }
 #sv-photo-dialog .sv-dialog-view { height:calc(100svh - 142px); }
 #sv-photo-dialog .sv-dialog-view img { max-width:100%; }
 #sv-photo-dialog .sv-dialog-view > button { background:#f4f1e9d9; }
}
