
:root{
  --bg:#080808; --panel:#121212; --panel2:#1a1a1a; --line:#2b2b2b;
  --text:#f7f7f7; --muted:#a6a6a6; --green:#b9ff1a; --green2:#91d800;
  --danger:#ff5a5f; --shadow:0 12px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{min-height:100vh;background:
radial-gradient(circle at 85% -10%,rgba(185,255,26,.12),transparent 35%),
linear-gradient(180deg,#0b0b0b,#050505)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
#app{max-width:720px;margin:auto;min-height:100vh;padding-bottom:88px}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:rgba(8,8,8,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:11px;align-items:center}.brand img{width:48px;height:48px;object-fit:cover;border-radius:13px;border:1px solid #333}
.brand strong{display:block;letter-spacing:.07em}.brand span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}
.icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);width:42px;height:42px;border-radius:12px}
main{padding:16px}
.hero{position:relative;overflow:hidden;border:1px solid #313131;border-radius:24px;min-height:260px;padding:24px;background:
linear-gradient(135deg,rgba(0,0,0,.12),rgba(0,0,0,.8)),url('cartel.JPG') center/cover;box-shadow:var(--shadow)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.92));pointer-events:none}
.hero-content{position:absolute;left:22px;right:22px;bottom:20px;z-index:2}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#101010;background:var(--green);padding:7px 10px;border-radius:999px;font-weight:900;font-size:.72rem;letter-spacing:.08em}
.hero h1{font-size:2.05rem;line-height:.95;margin:13px 0 9px;text-transform:uppercase;letter-spacing:-.04em}
.hero p{margin:0;color:#dedede}
.section-title{display:flex;justify-content:space-between;align-items:end;margin:26px 2px 12px}.section-title h2{font-size:1.18rem;margin:0}.section-title button,.link-btn{background:none;border:0;color:var(--green);font-weight:800}
.live-grid{display:grid;gap:10px}.match-card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:15px}
.match-top{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;margin-bottom:12px}.live-dot{color:var(--green);font-weight:900}.score-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.team:last-child{text-align:right}.team strong{display:block}.score{font-size:1.55rem;font-weight:950;letter-spacing:.04em}.score small{font-size:.8rem;color:var(--muted);font-weight:600}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick{border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);padding:18px;text-align:left}.quick b{display:block;font-size:1rem;margin-top:12px}.quick span{font-size:1.6rem}
.news-card{display:grid;grid-template-columns:86px 1fr;gap:13px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:17px;margin-bottom:10px}.news-card img{width:86px;height:86px;object-fit:cover;border-radius:12px}.news-card h3{margin:3px 0 6px;font-size:1rem}.news-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.4}
.filters{display:flex;gap:8px;overflow:auto;padding-bottom:10px}.filters button{white-space:nowrap;border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:9px 13px;border-radius:999px}.filters button.active{background:var(--green);color:#0a0a0a;border-color:var(--green);font-weight:900}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:14px}.tabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:11px 5px;border-radius:12px;font-size:.78rem}.tabs button.active{color:#111;background:var(--green);border-color:var(--green);font-weight:900}
.table-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel);margin-bottom:14px}.table-card h3{margin:0;padding:14px 16px;border-bottom:1px solid var(--line)}
table{width:100%;border-collapse:collapse;font-size:.86rem}th,td{padding:11px 9px;text-align:center;border-bottom:1px solid #242424}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-size:.72rem}
.team-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.team-tile{padding:16px;border:1px solid var(--line);border-radius:17px;background:var(--panel);min-height:100px}.team-tile strong{display:block;margin-top:16px}.team-tile span{color:var(--muted);font-size:.8rem}
.bracket{display:grid;gap:10px}.bracket .round{border-left:3px solid var(--green);padding:13px 15px;background:var(--panel);border-radius:0 16px 16px 0}.round small{color:var(--green);font-weight:900}.round p{margin:7px 0 0}
.info-card{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:18px;margin-bottom:10px}.info-card h3{margin:0 0 8px}.info-card p{margin:0;color:var(--muted);line-height:1.5}.info-card a{color:var(--green)}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:30;width:min(720px,100%);display:grid;grid-template-columns:repeat(6,1fr);padding:9px 8px calc(9px + env(safe-area-inset-bottom));background:rgba(12,12,12,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.bottom-nav button{border:0;background:none;color:#8d8d8d;font-size:.67rem}.bottom-nav button span{display:block;font-size:1.2rem;margin-bottom:4px}.bottom-nav button.active{color:var(--green);font-weight:900}
dialog{width:min(680px,96%);max-height:92vh;padding:0;border:1px solid #353535;border-radius:22px;background:#0d0d0d;color:var(--text);box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(0,0,0,.8);backdrop-filter:blur(5px)}
.dialog-shell{padding:0}.dialog-head{position:sticky;top:0;background:#0d0d0d;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:17px;border-bottom:1px solid var(--line)}.dialog-head small{color:var(--green);font-weight:900}.dialog-head h2{margin:3px 0 0}
#adminView{padding:16px;max-height:75vh;overflow:auto}.admin-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.admin-actions button{padding:16px;border-radius:15px;border:1px solid var(--line);background:var(--panel);color:var(--text);text-align:left;font-weight:800}
.form-card{margin-top:14px;padding:15px;border:1px solid var(--line);background:var(--panel);border-radius:16px}.form-card h3{margin-top:0}.field{margin-bottom:12px}.field label{display:block;color:var(--muted);font-size:.8rem;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;border:1px solid #363636;border-radius:12px;background:#090909;color:white;padding:12px}.primary{border:0;border-radius:12px;background:var(--green);color:#0a0a0a;padding:12px 15px;font-weight:950}.danger{background:transparent;border:1px solid #5b2e31;color:#ff8d91;padding:9px;border-radius:10px}.admin-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #282828}.admin-row small{display:block;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);background:var(--green);color:#111;font-weight:900;padding:11px 16px;border-radius:999px;z-index:100;box-shadow:var(--shadow)}
@media(min-width:650px){.live-grid{grid-template-columns:repeat(3,1fr)}.match-card .score-row{grid-template-columns:1fr}.match-card .team:last-child{text-align:left}.match-card .score{margin:8px 0}.quick-grid{grid-template-columns:repeat(4,1fr)}}

.score-admin{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:12px}
.score-team{background:#0b0b0b;border:1px solid var(--line);border-radius:16px;padding:14px;text-align:center}
.score-team small{color:var(--green);font-weight:900}
.score-team strong{display:block;margin:8px 0;min-height:40px}
.big-score{font-size:3.3rem;font-weight:950;line-height:1;margin:10px 0 14px}
.score-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.score-buttons button,.fouls-row button{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:10px;padding:10px;font-weight:900}
.score-buttons button:nth-child(2),.score-buttons button:nth-child(3){color:#111;background:var(--green);border-color:var(--green)}
.score-divider{font-weight:950;color:var(--muted)}
.fouls-row{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;font-size:.82rem}
.fouls-row button{padding:5px 9px}
.match-actions{display:grid;gap:9px;margin-top:14px}
@media(max-width:520px){
  .score-admin{grid-template-columns:1fr}
  .score-divider{display:none}
}

.split-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.qr-card{background:#0b0b0b;border:1px solid var(--line);border-radius:16px;padding:14px;text-align:center}
.qr-box{background:#fff;padding:10px;border-radius:12px;display:inline-block;margin:8px auto}
.qr-card input{width:100%;margin:8px 0;font-size:.72rem}
.qr-card button{width:100%;margin-top:7px}
.scorer-mode .topbar{position:static}
.scorer-mode #view{padding-bottom:20px}
.scorer-shell{max-width:850px;margin:auto}
@media(max-width:720px){.qr-grid{grid-template-columns:1fr}.split-actions{grid-template-columns:1fr}}

.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.gallery-card img{width:100%;height:210px;object-fit:cover}.gallery-card div{padding:10px}.gallery-card small{display:block;color:var(--muted);margin-top:5px}
.court-clock{font-size:4.4rem;font-weight:950;text-align:center;margin:18px 0;letter-spacing:.05em}.court-clock.last-minute{color:#ff5a5f}.clock-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.clock-actions button{padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-weight:900}
.tv-mode{background:#050505}.tv-mode #app{max-width:none;padding:0}.tv-mode main{padding:28px}.tv-header{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;border-bottom:3px solid var(--green);padding-bottom:20px}.tv-header img{width:110px;height:110px;object-fit:cover;border-radius:22px}.tv-header h1{font-size:3.5rem;margin:0}.tv-header p{font-size:1.4rem;color:var(--muted)}.tv-qr{background:white;padding:8px}
.tv-live h2,.tv-columns h2{font-size:2rem}.tv-live-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tv-live article{border:1px solid var(--line);border-radius:22px;padding:20px;text-align:center;background:var(--panel)}.tv-live article h3{font-size:1.5rem}.tv-score{font-size:4rem;font-weight:950;color:var(--green)}.tv-clock{font-size:2.2rem;font-weight:900}
.tv-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:26px;margin-top:24px}.tv-next{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;font-size:1.2rem}.tv-standings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tv-standing{background:var(--panel);border-radius:16px;padding:14px}.tv-standing div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}.clock-actions{grid-template-columns:1fr 1fr}}

.photographer-mode{background:#050505}.photographer-mode main{max-width:620px;margin:auto;padding:18px}
.photographer-header{display:flex;gap:14px;align-items:center;margin:10px 0 18px}
.photographer-header img{width:72px;height:72px;border-radius:16px;object-fit:cover}
.photographer-header h1{margin:0;font-size:1.55rem}.photographer-header p{margin:4px 0;color:var(--muted)}
.photographer-card{position:relative}.photographer-card #galleryPreview{display:none;width:100%;max-height:360px;object-fit:cover;border-radius:16px;margin:0 0 14px}
.upload-status{color:var(--muted);font-size:.82rem;margin:12px 0 0;text-align:center}

.tv-fouls{display:flex;justify-content:space-between;gap:18px;margin:12px 0;padding:9px 12px;border-radius:12px;background:#111;border:1px solid var(--line);font-size:1.05rem;font-weight:800;color:var(--muted)}

.tv-pro-mode{overflow:hidden;background:#050705}.tv-pro-mode #app{max-width:none;min-height:100vh;padding:0}.tv-pro-mode main{padding:0}.tv-screen{position:relative;height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 90% 0%,rgba(166,255,0,.10),transparent 38%),#050705;color:#fff;animation:tvFade .65s ease}.tv-pro-header{height:112px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 38px;border-bottom:2px solid rgba(166,255,0,.55);background:rgba(5,7,5,.92)}.tv-brand{display:flex;align-items:center;gap:15px}.tv-brand img{width:72px;height:72px;border-radius:16px;object-fit:cover}.tv-brand strong{display:block;font-size:1.5rem;letter-spacing:.08em}.tv-brand small{display:block;color:#a8aaa8;font-size:.88rem;margin-top:4px}.tv-pro-header h1{font-size:2.25rem;margin:0;letter-spacing:.045em}.tv-pro-header>time{justify-self:end;font-size:2rem;font-weight:900;color:#b6ff00}.tv-pro-main{flex:1;padding:28px 40px;min-height:0;overflow:hidden}.tv-pro-footer{height:106px;display:flex;justify-content:space-between;align-items:center;padding:12px 38px;border-top:1px solid #262a26;background:#090b09}.tv-pro-footer>div:first-child{display:flex;flex-direction:column;gap:6px;font-size:1.25rem}.tv-pro-footer span{color:#b6ff00;font-weight:800}.tv-footer-qr{background:#fff;padding:6px;border-radius:8px}.tv-footer-qr img,.tv-footer-qr canvas{display:block}.tv-progress{position:absolute;bottom:0;left:0;width:100%;height:5px;background:#222}.tv-progress i{display:block;height:100%;background:#b6ff00;transform-origin:left;animation:tvProgress linear forwards}.tv-pro-live-grid{height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.tv-pro-match{background:linear-gradient(145deg,#121612,#080a08);border:1px solid #333a33;border-radius:25px;padding:22px;display:flex;flex-direction:column;justify-content:center}.tv-court{text-align:center;color:#b6ff00;font-size:1.12rem;font-weight:900;letter-spacing:.13em;margin-bottom:22px}.live-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#ff3344;margin-right:7px;box-shadow:0 0 15px #ff3344}.tv-team-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid #272b27}.tv-team-row strong{font-size:1.7rem}.tv-team-row b{font-size:3.8rem}.tv-match-meta{margin-top:22px;display:flex;justify-content:space-between;align-items:center;color:#b7bbb7;font-size:1.15rem}.tv-match-meta time{font-size:2.7rem;font-weight:950;color:#b6ff00}.tv-empty{height:100%;grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#a8aaa8}.tv-empty span{font-size:5rem}.tv-empty h2{font-size:2.6rem;color:#fff;margin:15px}.tv-pro-standings{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tv-pro-standings section{background:#0d100d;border:1px solid #303630;border-radius:20px;overflow:hidden}.tv-pro-standings h2{margin:0;padding:18px;background:#b6ff00;color:#071007;text-align:center}.tv-standing-head,.tv-standing-row{display:grid;grid-template-columns:1fr 52px 64px 58px;align-items:center;gap:8px;padding:13px 16px}.tv-standing-head{font-size:.78rem;color:#8f948f;background:#121512}.tv-standing-row{border-top:1px solid #242824}.tv-standing-row>span:first-child{display:flex;gap:12px;align-items:center}.tv-standing-row b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#242824}.tv-standing-row.qualified{background:rgba(182,255,0,.07)}.tv-standing-row.qualified b{background:#b6ff00;color:#071007}.tv-standing-row strong{color:#b6ff00;font-size:1.25rem}.tv-pro-next{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tv-pro-next article{position:relative;display:grid;grid-template-columns:64px 1fr;gap:15px;background:#0d100d;border:1px solid #303630;border-radius:18px;padding:17px}.tv-next-number{font-size:2.1rem;font-weight:950;color:#b6ff00}.tv-pro-next small{color:#9aa09a}.tv-pro-next h2{font-size:1.3rem;margin:8px 0}.tv-pro-next article>div span{color:#b6ff00;font-weight:900}.tv-pro-next article>b{position:absolute;right:14px;bottom:12px;color:#777;font-size:.78rem}.tv-gallery-stage{display:grid;grid-template-columns:1.5fr .55fr;gap:20px}.tv-gallery-hero{position:relative;border-radius:24px;overflow:hidden}.tv-gallery-hero img{width:100%;height:100%;object-fit:cover;animation:kenBurns 15s ease-in-out both}.tv-gallery-hero>div{position:absolute;left:0;right:0;bottom:0;padding:65px 28px 25px;background:linear-gradient(transparent,rgba(0,0,0,.9))}.tv-gallery-hero small{color:#b6ff00;font-weight:900}.tv-gallery-strip{display:grid;grid-template-rows:repeat(5,1fr);gap:10px}.tv-gallery-strip img{width:100%;height:100%;object-fit:cover;border-radius:13px}.tv-sponsors-stage{position:relative;display:grid;grid-template-columns:1.35fr .8fr;gap:22px}.sponsor-feature,.sponsor-grid-small>div{background:#fff;border-radius:20px;padding:18px;display:grid;place-items:center;overflow:hidden}.sponsor-feature img,.sponsor-grid-small img{max-width:100%;max-height:100%;object-fit:contain}.sponsor-ion{padding:34px}.sponsor-duc{position:absolute;width:250px;height:250px;right:39%;bottom:24px;border:7px solid #050705;z-index:3}.sponsor-grid-small{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr);gap:13px}.sponsor-grid-small .dark{background:#050505}.sponsor-grid-small .wide{grid-column:1/-1}.tv-overlay{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle,rgba(182,255,0,.17),transparent 55%),#050705;color:#fff}.tv-final-result small{font-size:2rem;color:#b6ff00;font-weight:900}.tv-final-result h2{font-size:3rem;margin:20px}.tv-final-result>div{font-size:7rem;font-weight:950}.tv-final-result>div span{color:#b6ff00}.tv-champion>img{width:120px;height:120px;border-radius:24px}.tv-champion>span{font-size:7rem}.tv-champion h2{font-size:2.5rem;color:#b6ff00}.tv-champion h1{font-size:5rem;margin:10px}.confetti{position:absolute;inset:0;overflow:hidden}.confetti i{position:absolute;left:calc((var(--i)*37)%100 * 1%);top:-30px;width:12px;height:25px;background:hsl(calc(var(--i)*47),90%,55%);animation:confettiFall calc(2.8s + (var(--i)%5)*.35s) linear infinite}@keyframes tvFade{from{opacity:0;transform:scale(1.012)}to{opacity:1;transform:none}}@keyframes tvProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes kenBurns{from{transform:scale(1)}to{transform:scale(1.08) translate(-1.5%,1%)}}@keyframes confettiFall{to{transform:translateY(110vh) rotate(720deg)}}

.photo-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.photo-source-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:130px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);text-align:center;cursor:pointer}
.photo-source-button span{font-size:2rem}.photo-source-button strong{font-size:1rem}.photo-source-button small{color:var(--muted)}
.photo-source-button input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.selected-photos-summary{margin:10px 0;color:var(--muted);font-size:.9rem}
.gallery-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.gallery-preview-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.gallery-preview-item img{width:100%;height:100%;object-fit:cover}
.gallery-preview-item button{position:absolute;top:5px;right:5px;width:28px;height:28px;border:none;border-radius:50%;background:rgba(0,0,0,.75);color:#fff;font-size:1.15rem;line-height:1;cursor:pointer}
@media(max-width:600px){.photo-source-grid{grid-template-columns:1fr}.gallery-preview-grid{grid-template-columns:repeat(2,1fr)}}

.gallery-intro{margin:-4px 0 16px;color:var(--muted);font-size:.92rem}
@media(max-width:430px){
  .bottom-nav{padding-left:3px;padding-right:3px}
  .bottom-nav button{font-size:.58rem}
  .bottom-nav button span{font-size:1.05rem}
}

.gallery-folders{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.gallery-folders button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);text-align:left}
.gallery-folders button span{font-size:1.25rem}.gallery-folders button strong{font-size:.9rem}.gallery-folders button small{display:grid;place-items:center;min-width:25px;height:25px;border-radius:50%;background:var(--panel2);color:var(--muted);font-weight:800}
.gallery-folders button.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}.gallery-folders button.active small{background:var(--green);color:#071007}
.gallery-image-wrap{position:relative;background:#090909}.gallery-image-wrap img{display:block;width:100%;height:220px;object-fit:contain;background:#090909}
.gallery-category-badge{position:absolute;left:9px;top:9px;padding:6px 9px;border-radius:999px;background:rgba(0,0,0,.78);color:var(--green);font-size:.72rem;font-weight:900;backdrop-filter:blur(5px)}
.gallery-card-info{padding:10px}.gallery-card-info strong{display:block;margin-bottom:5px}.gallery-card-info small{color:var(--muted)}
.tv-gallery-collage-stage{padding:22px 34px}
.tv-gallery-collage{height:100%;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:14px}
.tv-gallery-collage figure{margin:0;min-width:0;min-height:0;display:flex;flex-direction:column;background:#0d100d;border:1px solid #303630;border-radius:17px;overflow:hidden}
.tv-gallery-image-box{flex:1;min-height:0;padding:9px;background:#050505;display:grid;place-items:center}
.tv-gallery-image-box img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;border-radius:10px}
.tv-gallery-collage figcaption{min-height:48px;padding:8px 11px;display:flex;align-items:center;gap:8px;background:#111511}
.tv-gallery-collage figcaption span{color:#b6ff00;font-size:.73rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.tv-gallery-collage figcaption strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:600px){
  .gallery-folders{grid-template-columns:repeat(2,1fr)}
  .gallery-image-wrap img{height:260px}
}

/* v2.4.5 · Patrocinadores sin solapamientos */
.tv-sponsors-stage{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(320px,.85fr);
  grid-template-rows:minmax(180px,.42fr) minmax(0,.58fr);
  grid-template-areas:
    "ion duc"
    "ion small";
  gap:20px;
  height:100%;
  align-items:stretch;
}
.tv-sponsors-stage .sponsor-ion{
  grid-area:ion;
  min-width:0;
  min-height:0;
  padding:42px;
  position:relative;
  z-index:1;
}
.tv-sponsors-stage .sponsor-ion img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.tv-sponsors-stage .sponsor-duc{
  grid-area:duc;
  position:static;
  inset:auto;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  padding:24px;
  border:none;
  z-index:1;
}
.tv-sponsors-stage .sponsor-duc img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.tv-sponsors-stage .sponsor-grid-small{
  grid-area:small;
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:12px;
}
.tv-sponsors-stage .sponsor-grid-small>div{
  min-width:0;
  min-height:0;
  padding:12px;
}
.tv-sponsors-stage .sponsor-grid-small img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.gallery-card-info{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gallery-card-text{min-width:0;display:flex;flex-direction:column;gap:4px}
.gallery-download-button{flex:0 0 auto;border:1px solid var(--green);background:transparent;color:var(--green);border-radius:10px;padding:8px 10px;font-size:.75rem;font-weight:900;cursor:pointer}
.gallery-download-button:hover,.gallery-download-button:active{background:var(--green);color:#071007}
@media(max-width:480px){
  .gallery-card-info{align-items:flex-end}
  .gallery-download-button{padding:8px;font-size:.7rem}
}

/* v2.4.11 · Logotipos completos, centrados y sin recortes */
.tv-sponsors-stage .sponsor-feature,
.tv-sponsors-stage .sponsor-grid-small > div{
  box-sizing:border-box;
  position:relative;
  overflow:hidden;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

.tv-sponsors-stage .sponsor-feature img,
.tv-sponsors-stage .sponsor-grid-small img{
  opacity:0;
  width:1px;
  height:1px;
  position:absolute;
  pointer-events:none;
}

/* Principal */
.tv-sponsors-stage .sponsor-ion{
  background-color:#fff;
  background-image:url("sponsor-ion.jpg");
  background-size:88% auto;
  background-position:center;
  padding:0;
}

/* Segundo patrocinador destacado */
.tv-sponsors-stage .sponsor-duc{
  background-color:#fff;
  background-image:url("sponsor-duc.jpg");
  background-size:auto 82%;
  background-position:center;
  padding:0;
}

/* Cuadrícula secundaria */
.tv-sponsors-stage .sponsor-grid-small > div:nth-child(1){
  background-color:#fff;
  background-image:url("sponsor-daniels.jpg");
  background-size:88% auto;
}
.tv-sponsors-stage .sponsor-grid-small > div:nth-child(2){
  background-color:#050505;
  background-image:url("sponsor-ancora.jpg");
  background-size:88% auto;
}
.tv-sponsors-stage .sponsor-grid-small > div:nth-child(3){
  background-color:#fff;
  background-image:url("sponsor-decorin.jpg");
  background-size:88% auto;
}
.tv-sponsors-stage .sponsor-grid-small > div:nth-child(4){
  background-color:#fff;
  background-image:url("sponsor-eldos.jpg");
  background-size:auto 82%;
}
.tv-sponsors-stage .sponsor-grid-small > div:nth-child(5){
  background-color:#fff;
  background-image:url("sponsor-ruralmoncofa.jpg");
  background-size:90% auto;
}

/* Más espacio útil para los patrocinadores pequeños */
.tv-sponsors-stage{
  grid-template-columns:minmax(0,1.45fr) minmax(340px,.9fr);
  grid-template-rows:minmax(190px,.38fr) minmax(0,.62fr);
}
.tv-sponsors-stage .sponsor-grid-small{
  grid-template-rows:repeat(3,minmax(92px,1fr));
}

.optimizer-summary{display:flex;gap:14px;align-items:flex-start;margin:14px 0 18px;padding:16px;border:1px solid var(--green);border-radius:16px;background:rgba(182,255,0,.06)}
.optimizer-summary .optimizer-icon{font-size:2rem;line-height:1}
.optimizer-summary small{display:block;color:var(--green);font-weight:900;letter-spacing:.06em;margin-bottom:4px}
.optimizer-summary h3{margin:0 0 7px;font-size:1.2rem}
.optimizer-summary p{margin:0 0 8px;color:var(--muted);line-height:1.45}
.optimizer-summary strong{display:block;font-size:.86rem}
.optimizer-warning{border-color:#ffb020;background:rgba(255,176,32,.08)}
.optimizer-warning small{color:#ffb020}
.optimizer-note{margin:14px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}

/* v2.4.13 · Fotos oficiales de equipo */
.team-photo-frame{
  width:100%;
  aspect-ratio:3 / 2;
  overflow:hidden;
  border-radius:14px;
  background:#080a08;
  display:flex;
  align-items:center;
  justify-content:center;
}
.team-photo-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.team-photo-frame--tile{
  margin-bottom:10px;
  border-radius:12px;
}
.team-photo-frame--detail{
  margin-bottom:15px;
  border:1px solid var(--line);
}
.team-photo-frame--admin{
  margin-bottom:10px;
  max-width:560px;
  border:1px solid var(--line);
}
.admin-team-photo-preview{
  margin:8px 0 10px;
}
.muted-photo-message{
  margin:0 0 10px;
  padding:12px;
  border:1px dashed var(--line);
  border-radius:12px;
  color:var(--muted);
}
.secondary-danger{
  width:auto;
}
.team-tile .team-photo-frame img{
  border-radius:0;
}
@media(max-width:600px){
  .team-photo-frame--detail{
    aspect-ratio:3 / 2;
  }
}

/* v2.4.14 · Administración visual de la galería */
.admin-gallery-picker{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  margin:12px 0;
  border:1px dashed var(--green);
  border-radius:15px;
  background:rgba(182,255,0,.05);
  cursor:pointer;
}
.admin-gallery-picker>span{font-size:2rem}
.admin-gallery-picker strong,
.admin-gallery-picker small{display:block}
.admin-gallery-picker small{margin-top:3px;color:var(--muted)}
.admin-gallery-picker input{display:none}
.admin-gallery-preview-grid{margin:10px 0 16px}
.admin-gallery-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.admin-gallery-heading h3{margin:0}
.admin-gallery-heading p{margin:4px 0 0;color:var(--muted);font-size:.82rem}
.admin-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.admin-gallery-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel2);
}
.admin-gallery-thumb{
  position:relative;
  aspect-ratio:4 / 3;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#050505;
}
.admin-gallery-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.admin-gallery-thumb span{
  position:absolute;
  left:7px;
  top:7px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(0,0,0,.8);
  color:var(--green);
  font-size:.65rem;
  font-weight:900;
}
.admin-gallery-card-body{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px;
}
.admin-gallery-card-body strong{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-gallery-card-body small{color:var(--muted);font-size:.7rem}
.admin-gallery-card-body .danger{
  width:100%;
  margin-top:3px;
  padding:8px;
}
.untitled-photo{color:var(--muted);font-style:italic}
.empty-admin-gallery{
  display:grid;
  place-items:center;
  min-height:150px;
  border:1px dashed var(--line);
  border-radius:14px;
  color:var(--muted);
  text-align:center;
}
.empty-admin-gallery span{font-size:2rem}
@media(max-width:720px){
  .admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  .admin-gallery-grid{grid-template-columns:1fr}
}
