:root{--accent:#b42fff;--background:#10071f;--name-color:#fff;--subtitle-color:#f8d77b;--font-text:'Inter',sans-serif;--font-name:'Allura',cursive;--font-subtitle:Georgia,serif;--font-buttons:Inter,sans-serif;--font-player:Georgia,serif;--font-sections:Inter,sans-serif;--font-footer:'Allura',cursive;--name-size:1;--subtitle-size:1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#fff;font-family:var(--font-text);background:var(--background)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.site{background:radial-gradient(ellipse 80% 40% at 50% 0%,#38133c 0%,transparent 80%),var(--background)}.site-wrap{width:min(920px,calc(100% - 32px));margin:0 auto;padding:26px 0 0}.hero{aspect-ratio:16/7;height:auto;border:1px solid #c976de;border-radius:9px;position:relative;overflow:hidden;background-position:center;background-size:cover;background-color:#291239;box-shadow:0 10px 32px #0006}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,#12051d9c 0%,transparent 62%),linear-gradient(90deg,#100a2070,transparent 70%)}.hero-brand{position:absolute;bottom:var(--logo-inset,18px);display:flex;align-items:center;gap:16px;transform:scale(var(--logo-scale,1));transform-origin:bottom left;max-width:calc(100% - 38px)}.hero-brand.align-left{left:var(--logo-inset,18px)}.hero-brand.align-center{left:50%;transform:translateX(-50%) scale(var(--logo-scale,1));transform-origin:bottom center}.hero-brand.align-right{right:var(--logo-inset,18px);transform-origin:bottom right}.avatar{width:124px;height:124px;flex:0 0 124px;border-radius:50%;border:3px solid #d955ff;object-fit:cover;box-shadow:0 4px 20px #0008}.brand-words{min-width:0;text-shadow:0 3px 9px #000e}.artist-name{font-family:var(--font-name);font-size:calc(clamp(40px,6vw,74px) * var(--name-size));line-height:.96;white-space:nowrap;color:var(--name-color);font-weight:400}.artist-subtitle{color:var(--subtitle-color);font-family:var(--font-subtitle);font-size:calc(clamp(12px,1.9vw,20px) * var(--subtitle-size));white-space:nowrap;text-align:center;margin-top:4px}.platforms{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px;margin:22px 0 22px}.platform{border:1px solid #b35bd4;border-radius:8px;min-height:104px;background:linear-gradient(180deg,#170a29 0%,#10091d 100%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;text-align:center;padding:11px 4px;box-shadow:inset 0 0 20px #8d30c310;transition:transform .18s,border-color .18s,box-shadow .18s;font-family:var(--font-buttons);font-size:12px;font-weight:600}.platform:hover:not(.inactive){transform:translateY(-3px);border-color:#ed8bff;box-shadow:0 0 20px #ad2cff50}.platform.inactive{opacity:.78;cursor:default}.platform-icon{width:42px;height:42px;display:block}.platform-icon svg{width:100%;height:100%;display:block}.music-player{border:1px solid #ff70c7;border-radius:12px;padding:20px 20px 13px;background:radial-gradient(ellipse 70% 85% at 60% 80%,#420a60a8,transparent),linear-gradient(120deg,#1d0a35,#150727 65%,#31082b);box-shadow:0 0 14px #e633e18a,inset 0 0 25px #9b1df633;margin-bottom:17px}.player-top{display:flex;gap:19px;min-height:143px}.song-art{width:145px;height:145px;object-fit:cover;border:1px solid #ec97f4;border-radius:9px;flex-shrink:0}.player-main{flex:1;min-width:0}.player-badge{display:inline-block;color:#fff;border:1px solid #e552fa;box-shadow:0 0 10px #e830ff;font-size:12px;letter-spacing:.07em;padding:4px 12px;border-radius:30px}.player-main h1{font:700 clamp(23px,3.4vw,36px) var(--font-player);margin:8px 0 2px}.player-main p{margin:0;color:#e9d8ec;font-size:16px}.player-extra{display:flex;align-items:flex-start}.heart-btn{border:0;background:none;color:#fff;font-size:39px;line-height:1}.heart-btn.liked{color:#f83fb1}#visualizer{width:100%;height:74px;display:block;margin-top:3px}.seek-row{display:flex;align-items:center;gap:14px;font-size:12px}.seek-row input{flex:1}.player-controls{display:flex;align-items:center;justify-content:space-around;gap:12px;margin-top:10px}.small-control{border:0;background:transparent;color:white;font-size:29px;min-width:38px}.play-main{height:55px;width:55px;flex:0 0 55px;border:2px solid #ffc0f8;border-radius:50%;color:#fff;background:#300a48;font-size:25px;box-shadow:0 0 9px #f750f8,0 0 18px #ff40bf,inset 0 0 12px #b90cdb}.volume-wrap{display:flex;gap:10px;align-items:center;width:185px}.volume-wrap input{width:115px}.audio-note{margin:9px 0 0;color:#bfa8cb;font-size:12px;text-align:center}input[type=range]{accent-color:#e032fa;cursor:pointer}.embed-card{border:1px solid #633c99;border-radius:10px;background:linear-gradient(120deg,#0b1626,#110b22);padding:15px;margin-bottom:16px}.embed-heading{display:flex;gap:10px;align-items:center;margin:0 0 11px}.embed-heading h2{font-family:var(--font-sections);font-size:20px;margin:0}.spotify-dot{background:#1ed760;border-radius:50%;color:#051d0b;font-size:26px;width:33px;height:33px;display:grid;place-items:center}.youtube-dot{background:#f03;color:white;border-radius:6px;padding:4px 9px;font-size:17px}.embed-holder iframe{border:0;width:100%;display:block;border-radius:8px}.spotify-iframe{height:152px}.youtube-iframe{aspect-ratio:16/9;min-height:240px}.embed-placeholder{border:1px solid #534565;background:#1a1329;border-radius:8px;min-height:110px;padding:22px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:8px}.embed-placeholder strong{font-size:16px}.embed-placeholder p{font-size:13px;color:#c2b5d1;margin:0}.footer-banner{height:230px;width:100%;background-position:center;background-size:cover;background-repeat:no-repeat;background-color:#280a3c;margin-top:16px;position:relative}.footer-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-shadow:0 2px 6px #000}.footer-overlay strong{font-family:var(--font-footer);font-size:54px;font-weight:400}.footer-overlay small{font-size:13px;letter-spacing:.25em}
/* ADMIN */
.admin{background:#0e0919;color:#f9f4ff;font-family:Inter,sans-serif}.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;padding:28px 17px;background:linear-gradient(180deg,#170b2d,#0e0919);border-right:1px solid #42265a;display:flex;flex-direction:column;gap:18px}.sidebar-logo{font:32px Allura,Georgia,serif}.sidebar-logo span{display:block;font:700 10px Inter,sans-serif;letter-spacing:.22em;color:#d5a1ec;margin-top:3px}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.sidebar-nav a{padding:12px;border-radius:8px;font-size:13px;color:#d6c6e3}.sidebar-nav a:hover,.sidebar-nav a:focus{background:#53217e;color:#fff}.view-site{font-size:13px;padding:10px 12px;color:#e5a4ff;margin-top:auto}.admin-main{width:min(1050px,100%);padding:34px 28px 60px;margin:auto}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.admin-head h1,.login-card h1{font:700 clamp(27px,3vw,38px) Georgia,serif;margin:0 0 6px}.admin-head p,.login-card p{font-size:13px;color:#d3c2dd;margin:0}.editor-card{background:#1c122b;border:1px solid #3c2950;border-radius:12px;padding:23px;margin:14px 0;box-shadow:0 5px 18px #0002}.editor-card h2{font-size:18px;margin:0 0 12px}.hint{font-size:12px;color:#bfb1cb;margin:4px 0 16px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.editor-card label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#e2d6ed;font-weight:600}.editor-card input:not([type=checkbox]):not([type=range]),.editor-card select,.login-card input{width:100%;background:#100a1d;border:1px solid #614276;color:#fff;border-radius:7px;padding:11px 12px;outline:none;min-width:0}.editor-card input:focus,.editor-card select:focus,.login-card input:focus{border-color:#d35aff;box-shadow:0 0 0 2px #d35aff30}.editor-card input[type=color]{height:42px;width:100%;border:1px solid #614276;border-radius:7px;background:#100a1d;padding:4px}.editor-card input[type=range]{width:100%}.editor-card input[type=file]{font-size:12px;max-width:100%;padding:10px 0}.image-preview{display:block;object-fit:cover;border-radius:8px;border:1px solid #634478;margin:12px 0 18px}.cover-preview{width:100%;height:210px;object-position:center}.avatar-preview{width:115px;height:115px;border-radius:50%}.song-preview{width:125px;height:125px}.footer-preview{width:100%;height:155px;object-fit:cover}.primary,.outline{border-radius:7px;padding:11px 19px;font-weight:700;font-size:13px;border:1px solid #b345d7;color:white}.primary{background:linear-gradient(110deg,#9d2cd4,#c437bf);box-shadow:0 5px 15px #ab27d035}.primary:hover{filter:brightness(1.15)}.outline{background:#2b153e}.outline:hover{border-color:#e881ff}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-heading .check{display:flex;flex-direction:row;align-items:center;gap:7px}.status{font-size:13px;min-height:22px;color:#a8efc1;margin:10px 0}.status.error{color:#ff9db4}.bottom-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:15px 0}.bottom-actions a{font-size:13px;color:#e3a3ff}.link-row{display:grid;grid-template-columns:35px 125px 145px minmax(180px,1fr) 72px 98px;gap:8px;align-items:center;margin:8px 0;padding:9px;border-radius:8px;background:#130b22}.link-icon svg{width:32px;height:32px}.link-row input,.link-row select{padding:9px!important;font-size:12px!important}.link-row .mini-check{flex-direction:row;align-items:center;gap:5px}.link-actions{display:flex;gap:3px}.mini-btn{background:#2a1742;border:1px solid #684180;color:#fff;border-radius:5px;min-width:27px;height:32px}.mini-btn.danger{color:#ff94a8}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#49215c,transparent 60%),#0e0919}.login-card{width:min(520px,100%);padding:42px;background:#23132f;border:1px solid #724187;border-radius:15px;box-shadow:0 15px 65px #0007}.login-symbol{height:64px;width:64px;display:grid;place-items:center;border:2px solid #e5a8fc;border-radius:50%;font:700 25px Georgia,serif;margin-bottom:20px}.login-card form{margin-top:26px;display:flex;flex-direction:column;gap:20px}.login-card label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:8px}.login-card .primary{align-self:flex-start}
@media(max-width:1100px){.link-row{grid-template-columns:35px 125px minmax(110px,1fr) minmax(160px,1.5fr);}.link-row .mini-check,.link-row .link-actions{grid-column:auto}}@media(max-width:800px){.admin-layout{display:block}.sidebar{position:relative;height:auto;gap:10px;padding:16px}.sidebar-nav{flex-direction:row;overflow-x:auto}.sidebar-nav a{white-space:nowrap}.sidebar .view-site,.sidebar #logout{align-self:flex-start}.admin-main{padding:24px 14px}.link-row{grid-template-columns:35px 1fr 1fr}.link-row input[type=url]{grid-column:2/4}.link-actions{justify-content:flex-end}.site-wrap{width:min(920px,calc(100% - 22px));padding-top:12px}.platforms{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.platform{min-height:90px}.hero{aspect-ratio:16/7;height:auto!important}.avatar{width:84px;height:84px;flex-basis:84px}.artist-name{font-size:calc(clamp(32px,7vw,55px) * var(--name-size))}.artist-subtitle{font-size:calc(clamp(10px,2.3vw,16px) * var(--subtitle-size))}.music-player{padding:13px}.song-art{width:105px;height:105px}.player-top{gap:10px}.player-main h1{font-size:23px}.player-main p{font-size:12px}.volume-wrap{width:115px}.volume-wrap input{width:75px}.footer-banner{height:180px}}@media(max-width:480px){.hero{aspect-ratio:16/7;height:auto!important}.hero-brand{gap:9px}.avatar{width:65px;height:65px;flex-basis:65px}.artist-name{font-size:calc(clamp(29px,8vw,43px) * var(--name-size))}.artist-subtitle{font-size:calc(10px * var(--subtitle-size))}.platform-icon{width:35px;height:35px}.platform{font-size:10px;min-height:79px}.song-art{width:82px;height:82px}.player-main h1{font-size:20px}.player-badge{font-size:9px;padding:4px 7px}.heart-btn{font-size:27px}.volume-wrap{width:86px;gap:4px}.volume-wrap input{width:55px}.small-control{font-size:22px;min-width:22px}.play-main{width:45px;height:45px;flex-basis:45px}.form-grid{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}.link-row{grid-template-columns:35px 1fr 1fr}.link-row .link-type{grid-column:2/4}.link-row input:not([type=url]){grid-column:1/4}.link-row input[type=url]{grid-column:1/4}.footer-banner{height:130px}}

/* Ajustes visuales para una página editorial más pulida */
.site-wrap{width:min(960px,calc(100% - 32px))}.hero{border-color:#e6b4da;border-radius:11px}.platform{border-color:#8c477e;background:linear-gradient(150deg,#15091f,#0d0818);border-radius:10px}.music-player{border-color:#e24da4;box-shadow:0 0 24px #cc188a55,inset 0 0 24px #8625c32a}.embed-card{border-color:#674574;box-shadow:0 10px 26px #0003}.footer-banner{height:clamp(180px,26vw,360px);background-position:center center}.cover-preview{aspect-ratio:16/7;height:auto}.footer-preview{height:auto;aspect-ratio:16/4;object-fit:cover}.editor-card{scroll-margin-top:20px}.editor-card h2{letter-spacing:-.02em}
@media(max-width:600px){.hero-brand{max-width:calc(100% - 18px)}.hero-brand.align-left{left:10px}.hero-brand.align-right{right:10px}.artist-name{white-space:normal;line-height:.85}.artist-subtitle{white-space:normal;text-align:left}.avatar{width:clamp(48px,14vw,80px);height:clamp(48px,14vw,80px);flex-basis:clamp(48px,14vw,80px)}.footer-banner{height:clamp(140px,30vw,220px)}}

/* Reproductor horizontal compacto — SOLO MP3. Spotify y YouTube no cambian. */
.music-player-compact{position:relative;isolation:isolate;overflow:hidden;padding:14px 17px;min-height:142px;background:linear-gradient(110deg,#1d0a35,#180925 68%,#2a0a32)}
.player-background-viz{position:absolute!important;inset:0;width:100%!important;height:100%!important;margin:0!important;z-index:-1;pointer-events:none;opacity:.92}
.music-player-compact:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(15,5,30,.82),rgba(14,4,30,.52) 48%,rgba(13,5,28,.68));}
.player-layout{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,1fr) 30px;gap:16px;align-items:center;position:relative}
.player-identity{display:flex;align-items:center;gap:14px;min-width:0}
.music-player-compact .song-art{width:112px;height:112px;flex:0 0 112px;box-shadow:0 4px 18px #0008}
.music-player-compact .player-main{min-width:0}
.music-player-compact .player-main h1{font-size:clamp(20px,2.7vw,29px);line-height:1.1;margin:8px 0 4px}
.music-player-compact .player-main p{font-size:12px;line-height:1.4}
.music-player-compact .player-badge{font-size:10px;padding:4px 9px;letter-spacing:.02em}
.music-player-compact .player-right{min-width:0}
.music-player-compact .seek-row{gap:9px;font-size:11px}
.music-player-compact .player-controls{margin-top:15px;gap:9px;justify-content:space-between}
.music-player-compact .small-control{font-size:21px;min-width:25px}
.music-player-compact .play-main{height:43px;width:43px;flex-basis:43px;font-size:19px}
.music-player-compact .volume-wrap{width:103px;gap:6px;font-size:13px}
.music-player-compact .volume-wrap input{width:75px;min-width:0}
.music-player-compact .heart-btn{font-size:28px;align-self:start;padding:0}
.music-player-compact .audio-note{position:relative}
@media(max-width:680px){
 .music-player-compact{padding:13px;min-height:0}
 .player-layout{grid-template-columns:minmax(0,1fr) 26px;gap:10px}
 .player-identity{grid-column:1;grid-row:1;gap:12px}
 .music-player-compact .song-art{width:83px;height:83px;flex-basis:83px}
 .music-player-compact .player-main h1{font-size:23px}
 .music-player-compact .player-badge{font-size:9px}
 .music-player-compact .heart-btn{grid-column:2;grid-row:1}
 .music-player-compact .player-right{grid-column:1 / -1;grid-row:2}
 .music-player-compact .player-controls{justify-content:space-around;margin-top:7px}
 .music-player-compact .volume-wrap{width:100px}
}
@media(max-width:380px){.music-player-compact .song-art{width:72px;height:72px;flex-basis:72px}.music-player-compact .player-main h1{font-size:20px}.music-player-compact .volume-wrap{width:75px}.music-player-compact .volume-wrap input{width:48px}}

/* Ajustes exclusivos del encabezado Spotify; no afectan al iframe oficial. */
#spotify-section .embed-heading {gap:9px}
#spotify-section .spotify-dot {width:var(--spotify-icon-size,25px);height:var(--spotify-icon-size,25px);background:transparent;color:inherit;border-radius:0;display:block;flex:0 0 auto;font-size:0}
#spotify-section .spotify-dot svg {display:block;width:100%;height:100%}
#spotify-section .embed-heading h2 {font-size:var(--spotify-title-size,16px);line-height:1.25}

/* Transición suave al paisaje del pie de página: sin borde o corte visible.
   La imagen y las letras siguen siendo editables desde el panel. */
.footer-banner { margin-top:0; isolation:isolate; }
.footer-banner::before {
  content:"";position:absolute;top:0;left:0;right:0;
  height:min(150px,55%);z-index:0;pointer-events:none;
  background:linear-gradient(to bottom,
    var(--background) 0%,
    color-mix(in srgb,var(--background) 85%,transparent) 20%,
    color-mix(in srgb,var(--background) 45%,transparent) 60%,
    transparent 100%);
}
.footer-banner .footer-overlay {z-index:1;}
@media(max-width:600px){.footer-banner::before{height:min(95px,55%);}}

/* Controles independientes para alinear nombre y subtítulo en la portada. */
.brand-words{display:flex;flex-direction:column;align-items:stretch;max-width:100%;}
.artist-name,.artist-subtitle{width:100%;}


/* Bordes finos y elegantes: solo la página pública.
   Conserva colores, distribución, reproductor y panel de administración. */
.site .hero {
  border-width: .7px;
  box-shadow: 0 8px 24px #0005;
}
.site .platform {
  border-width: .7px;
  box-shadow: inset 0 0 12px #8d30c308;
}
.site .platform:hover:not(.inactive) {
  box-shadow: 0 0 11px #ad2cff36;
}
.site .music-player,
.site .music-player-compact {
  border-width: .7px;
  box-shadow: 0 0 11px #cc188a40, inset 0 0 14px #8625c31b;
}
.site .embed-card {
  border-width: .7px;
  box-shadow: 0 7px 18px #0002;
}
.site .song-art,
.site .embed-placeholder {
  border-width: .7px;
}
.site .avatar {
  border-width: 2px;
  box-shadow: 0 3px 13px #0007;
}

/* Color de contornos configurable desde Perfil y estilo, sin afectar al panel. */
.site .hero,
.site .platform,
.site .music-player,
.site .music-player-compact,
.site .embed-card,
.site .song-art,
.site .embed-placeholder,
.site .avatar {
  border-color: var(--border-color, #b66aca);
}

/* Muestras de tonos oscuros solo dentro del panel de administración */
.border-preset-area{grid-column:1/-1;display:flex;flex-direction:column;gap:9px;padding:12px 14px;border:1px solid #70438a70;border-radius:12px;background:#150d25a8}
.border-preset-title{font-weight:700;font-size:13px;color:#f0dcff}
.border-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.border-preset{display:flex;align-items:center;gap:8px;padding:8px 10px;min-height:40px;border:1px solid #8c689b80;border-radius:9px;background:#221331;color:#f7eafa;font-size:12px;cursor:pointer;text-align:left}
.border-preset:hover{border-color:#d3a0ef;background:#302040}
.border-preset.selected{outline:2px solid #e9b3ff;outline-offset:1px}
.preset-dot{width:22px;height:22px;flex:0 0 22px;border-radius:7px;border:1px solid #ffffff65;background:var(--swatch)}
.border-preset-area small{font-size:11px;color:#d3c0e1}

/* Galería de fotos bajo Spotify: respeta el estilo existente y el color de los bordes */
.site .gallery-section{border-width:.7px;border-color:var(--border-color,#b66aca);padding:17px 18px 20px}
.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}
.gallery-heading h2{font-family:var(--font-sections,Inter,sans-serif);font-size:19px;margin:0 0 4px;color:#f5e9ff}
.gallery-heading p{font-size:12px;color:#bfb1d5;margin:0}
.gallery-camera{font-size:25px;color:#c798ed}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-tile{padding:0;border:1px solid var(--border-color,#b66aca);border-radius:10px;overflow:hidden;background:#130b27;display:block;position:relative;aspect-ratio:4/5;box-shadow:0 3px 12px #0004;transition:transform .2s,box-shadow .2s}
.gallery-tile:hover,.gallery-tile:focus-visible{transform:translateY(-2px);box-shadow:0 6px 20px #0008}
.gallery-tile img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-tile span{position:absolute;bottom:0;left:0;right:0;text-align:left;padding:24px 10px 10px;font-size:12px;color:#fff;background:linear-gradient(transparent,#10091cdb)}
.gallery-open{overflow:hidden}
.gallery-lightbox{position:fixed;inset:0;z-index:9999;background:#05020bf0;display:flex;align-items:center;justify-content:center;padding:54px 65px 45px}
.gallery-lightbox figure{margin:0;max-width:min(100%,900px);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px}
.gallery-lightbox figure img{max-width:100%;max-height:calc(100dvh - 130px);object-fit:contain;border-radius:8px}
.gallery-lightbox figcaption{font-size:13px;color:#f1e4ff;text-align:center}
.gallery-close,.gallery-arrow{position:absolute;color:#fff;background:#241437c9;border:1px solid #ffffff55;border-radius:50%;display:grid;place-items:center}
.gallery-close{right:22px;top:18px;width:39px;height:39px;font-size:27px}
.gallery-arrow{top:50%;transform:translateY(-50%);width:39px;height:39px;font-size:32px}
.gallery-prev{left:12px}.gallery-next{right:12px}
.gallery-admin-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:14px 0}
.gallery-upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:9px;padding:10px 16px;font-size:13px}
.gallery-upload-label input{display:none}
.gallery-admin-list{display:grid;gap:10px}
.gallery-admin-item{display:grid;grid-template-columns:85px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid #88649d77;border-radius:10px;background:#1c102f88}
.gallery-admin-thumb{width:85px;height:85px;object-fit:cover;border-radius:7px}
.gallery-caption-input{min-width:0}
.gallery-admin-controls{display:flex;gap:5px;flex-wrap:wrap}
@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-section{padding:13px}.gallery-admin-item{grid-template-columns:65px 1fr}.gallery-admin-thumb{width:65px;height:65px}.gallery-admin-controls{grid-column:1/-1}.gallery-lightbox{padding:55px 46px}}
@media(max-width:380px){.gallery-grid{grid-template-columns:1fr 1fr}.gallery-heading h2{font-size:16px}}


/* Galería bajo Spotify; conserva los bordes configurables de Gaby Records. */
.site .gallery-section{border-width:.7px;border-color:var(--border-color,#b66aca);padding:17px 18px 20px}
.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}
.gallery-heading h2{font-family:var(--font-sections,Inter,sans-serif);font-size:19px;margin:0 0 4px;color:#f5e9ff}
.gallery-heading p{font-size:12px;color:#bfb1d5;margin:0}
.gallery-camera{font-size:25px;color:#c798ed}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-tile{padding:0;border:1px solid var(--border-color,#b66aca);border-radius:10px;overflow:hidden;background:#130b27;display:block;position:relative;aspect-ratio:4/5;box-shadow:0 3px 12px #0004;transition:transform .2s,box-shadow .2s;cursor:pointer}
.gallery-tile:hover,.gallery-tile:focus-visible{transform:translateY(-2px);box-shadow:0 6px 20px #0008}
.gallery-tile img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-tile span{position:absolute;bottom:0;left:0;right:0;text-align:left;padding:24px 10px 10px;font-size:12px;color:#fff;background:linear-gradient(transparent,#10091cdb)}
.gallery-open{overflow:hidden}
.gallery-lightbox:not([hidden]){position:fixed;inset:0;z-index:9999;background:#05020bf0;display:flex;align-items:center;justify-content:center;padding:54px 65px 45px}
.gallery-lightbox figure{margin:0;max-width:min(100%,900px);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:10px}
.gallery-lightbox figure img{max-width:100%;max-height:calc(100dvh - 130px);object-fit:contain;border-radius:8px}
.gallery-lightbox figcaption{font-size:13px;color:#f1e4ff;text-align:center}
.gallery-close,.gallery-arrow{position:absolute;color:#fff;background:#241437c9;border:1px solid #ffffff55;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.gallery-close{right:22px;top:18px;width:39px;height:39px;font-size:27px}
.gallery-arrow{top:50%;transform:translateY(-50%);width:39px;height:39px;font-size:32px}
.gallery-prev{left:12px}.gallery-next{right:12px}
.gallery-admin-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:14px 0}
.gallery-upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:9px;padding:10px 16px;font-size:13px}
.gallery-upload-label input{display:none}
.gallery-admin-list{display:grid;gap:10px}
.gallery-admin-item{display:grid;grid-template-columns:85px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid #88649d77;border-radius:10px;background:#1c102f88}
.gallery-admin-thumb{width:85px;height:85px;object-fit:cover;border-radius:7px}
.gallery-caption-input{min-width:0}
.gallery-admin-controls{display:flex;gap:5px;flex-wrap:wrap}
@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-section{padding:13px}.gallery-admin-item{grid-template-columns:65px 1fr}.gallery-admin-thumb{width:65px;height:65px}.gallery-admin-controls{grid-column:1/-1}.gallery-lightbox:not([hidden]){padding:55px 46px}}

.gallery-section[hidden],.gallery-lightbox[hidden]{display:none!important}


/* Galería compacta: miniaturas pequeñas; clic para ver la foto completa. */
.site .gallery-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.site .gallery-tile{
  aspect-ratio:1 / 1;
  border-radius:8px;
}
.site .gallery-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:760px){
  .site .gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
}
@media(max-width:480px){
  .site .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
}


/* Corrección real para botones de plataformas en pantallas pequeñas. */
@media(max-width:600px){
  nav.platforms{gap:7px;margin:15px 0 17px}
  nav.platforms .platform{min-height:66px;padding:8px 3px;gap:5px;font-size:10px;line-height:1.2;border-radius:9px}
  nav.platforms .platform-icon{width:25px;height:25px;flex:0 0 25px}
  nav.platforms .platform-icon svg{width:100%;height:100%}
}
@media(max-width:380px){
  nav.platforms .platform{min-height:62px;padding:7px 2px;font-size:9px}
  nav.platforms .platform-icon{width:23px;height:23px;flex-basis:23px}
}

/* Selector editable en el panel: iconos de plataformas solo para celular. */
.platform-mobile-size-control{margin:12px 0 4px}
@media(max-width:600px){
  body.site nav.platforms .platform-icon{
    width:var(--mobile-platform-icon-size,25px);
    height:var(--mobile-platform-icon-size,25px);
    flex:0 0 var(--mobile-platform-icon-size,25px);
  }
  body.site nav.platforms .platform-icon svg{width:100%;height:100%}
}
@media(max-width:380px){
  body.site nav.platforms .platform-icon{
    width:var(--mobile-platform-icon-size,25px);
    height:var(--mobile-platform-icon-size,25px);
    flex-basis:var(--mobile-platform-icon-size,25px);
  }
}


/* Gaby Records: iconos Y tarjetas sincronizados con la misma selección del panel.
   La anchura/altura de cada tarjeta se reducen cuando el icono es pequeño.
   Se aplica únicamente a la página pública en teléfonos. */
@media (max-width:600px){
  body.site nav.platforms{
    grid-template-columns:repeat(4,minmax(0,1fr));
    justify-items:center;
    column-gap:7px;
    row-gap:9px;
  }
  body.site nav.platforms .platform{
    box-sizing:border-box;
    width:min(100%,calc(55px + var(--mobile-platform-icon-size,25px)));
    height:calc(39px + var(--mobile-platform-icon-size,25px));
    min-height:0;
    padding:5px 2px;
    gap:4px;
    font-size:10px;
    line-height:1.15;
    border-radius:8px;
    align-self:center;
    justify-self:center;
  }
  body.site nav.platforms .platform-icon{
    flex:0 0 var(--mobile-platform-icon-size,25px);
  }
}
@media (max-width:380px){
  body.site nav.platforms .platform{
    min-height:0;
    padding:4px 2px;
    font-size:9px;
  }
}


/* Compactación real: la cuadrícula se estrecha JUNTO con cada tarjeta.
   El ancho del grupo depende del tamaño elegido, y queda centrado.
   Se conserva una separación constante de 7px entre recuadros. */
@media (max-width:600px){
  body.site nav.platforms{
    box-sizing:border-box;
    width:min(100%,calc(4 * (55px + var(--mobile-platform-icon-size,25px)) + 21px));
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:7px;
    justify-items:stretch;
    margin:15px auto 17px;
  }
  body.site nav.platforms .platform{
    width:100%;
    height:auto;
    min-height:calc(41px + var(--mobile-platform-icon-size,25px));
    padding:5px 2px;
    gap:4px;
    justify-self:stretch;
    font-size:10px;
    line-height:1.15;
  }
}
@media (max-width:380px){
  body.site nav.platforms .platform{min-height:calc(40px + var(--mobile-platform-icon-size,25px));font-size:9px}
}


/* Gaby Records: distribución fluida real en celulares.
   Cada botón ocupa solamente el ancho que le corresponde y los siguientes
   llenan la fila disponible; las filas incompletas quedan centradas. */
@media (max-width:600px){
  body.site nav.platforms{
    display:flex;
    flex-flow:row wrap;
    align-items:stretch;
    align-content:flex-start;
    justify-content:center;
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    gap:7px 6px;
    margin:15px auto 17px;
  }
  body.site nav.platforms .platform{
    flex:0 0 calc(40px + var(--mobile-platform-icon-size,25px));
    box-sizing:border-box;
    width:calc(40px + var(--mobile-platform-icon-size,25px));
    min-width:0;
    max-width:100%;
    min-height:calc(43px + var(--mobile-platform-icon-size,25px));
    height:auto;
    padding:6px 2px;
    gap:4px;
    font-size:10px;
    line-height:1.15;
    overflow-wrap:normal;
    word-break:normal;
    text-align:center;
  }
  body.site nav.platforms .platform > span:last-child{
    display:block;
    max-width:100%;
    overflow-wrap:break-word;
  }
}
@media (max-width:380px){
  body.site nav.platforms .platform{font-size:9px}
}

.unique-stat{display:flex;flex-direction:column;gap:8px;padding:22px;margin:18px 0;background:#170d29;border:1px solid #744199;border-radius:12px}.unique-stat strong{font-size:48px;color:#e3b6ff;line-height:1.2}.unique-stat span:last-child{font-size:13px;opacity:.8}
