:root{
  --bg0:#07060a;
  --bg1:#0b0a12;
  --card: rgba(255,255,255,.04);
  --card2: rgba(255,255,255,.03);
  --line: rgba(255,255,255,.10);
  --txt: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.62);
  --hot1:#ff2a2a;
  --hot2:#ff7a00;
  --hot3:#ffd36b;
  --focus: rgba(255, 122, 0, .22);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--txt);
  background:
    radial-gradient(900px 480px at 18% -10%, rgba(255,42,42,.18), transparent 55%),
    radial-gradient(780px 460px at 85% 0%, rgba(255,122,0,.14), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
}

a{color:inherit; text-decoration:none}
.wrap{max-width:1050px; margin:0 auto; padding:18px 14px 44px}
.surface{
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  border-radius:18px;
  overflow:hidden;
}

.header{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 16px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.16);
}
.logo{
  width:46px; height:46px;
  object-fit:contain;
  border-radius:14px;
  padding:8px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.brand{
  text-align:center;
  line-height:1.05;
}
.fire{
  font-weight: 950;
  letter-spacing:.6px;
  font-size: 30px;
  background: linear-gradient(180deg, var(--hot3), var(--hot2), var(--hot1));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:
    0 0 10px rgba(255,122,0,.12),
    0 0 26px rgba(255,42,42,.10);
}
.tag{
  margin-top:6px;
  font-size:12px;
  color: var(--muted);
}

.toprow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 14px;
}
.count{
  font-size:12px;
  color: var(--muted);
  white-space:nowrap;
}
.search{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  outline:none;
  background: rgba(255,255,255,.04);
  color: var(--txt);
}
.search:focus{
  border-color: rgba(255,122,0,.35);
  box-shadow: 0 0 0 4px var(--focus);
}

.grid{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding:0 14px 14px;
}

/* NO lista fea, pero tampoco miniaturas: cápsulas de texto */
.item{
  flex: 1 1 330px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background: var(--card2);
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.item:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.14);
  background: var(--card);
}

/* ✅ FIX: el lado izquierdo debe poder encogerse sin empujar el Play */
.left{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  flex: 1 1 auto;        /* CLAVE */
}

/* ✅ FIX: el contenedor del texto (el div donde vive .title y .sub) */
.left > div{
  min-width:0;           /* CLAVE */
  flex: 1 1 auto;        /* CLAVE */
}

.badge{
  width:46px; height:46px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-weight:900;
  letter-spacing:.6px;
  color: rgba(0,0,0,.90);
  background: linear-gradient(180deg, var(--hot3), var(--hot2), var(--hot1));
  box-shadow: 0 10px 26px rgba(255,42,42,.10);
  flex:0 0 auto;
}

/* ✅ FIX: título largo no empuja el botón, máximo 2 líneas */
.title{
  font-weight: 900;
  font-size: 15px;
  color: rgba(255,255,255,.95);

  white-space: normal;       /* antes nowrap */
  overflow:hidden;
  text-overflow:ellipsis;

  display: -webkit-box;
  -webkit-line-clamp: 2;     /* 2 líneas */
  -webkit-box-orient: vertical;

  word-break: break-word;
}

.sub{
  margin-top:6px;
  font-size:12px;
  color: var(--muted);
}

/* ✅ FIX: el Play nunca se encoje ni se va */
.play{
  flex:0 0 auto;
  white-space: nowrap;       /* CLAVE */
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.24);
  font-weight:900;
}
.play .tri{
  width:34px; height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color: rgba(0,0,0,.90);
  background: linear-gradient(180deg, var(--hot3), var(--hot2), var(--hot1));
}
.play:hover{border-color: rgba(255,255,255,.22)}

/* Watch */
.playerBox{
  margin-top:14px;
  padding:14px;
  border-top:1px solid rgba(255,255,255,.08);
}
.videoTitle{
  font-weight: 950;
  font-size: 18px;
  margin: 0 0 12px;
  color: rgba(255,255,255,.95);
}
.player{
  background:#000;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.player iframe, .player video{
  width:100%;
  height:56vh;
  min-height:320px;
  display:block;
  border:0;
}
.nav{
  display:flex;
  gap:10px;
  margin-top:12px;
}
.btn{
  flex:1;
  text-align:center;
  padding:12px 10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  font-weight:900;
}
.btn:active{transform:scale(.99)}
.btn.disabled{opacity:.35; pointer-events:none}
.meta{
  margin-top:10px;
  font-size:12px;
  color: var(--muted);
}

/* footer */
.footer{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:center;
  padding:14px 14px 18px;
  border-top:1px solid rgba(255,255,255,.08);
  color: var(--muted);
  font-size:12px;
}
.footer a{color: rgba(255,255,255,.70)}
.footer a:hover{color: rgba(255,255,255,.95)}

@media (max-width:540px){
  .fire{font-size:26px}
  .item{flex: 1 1 100%}
  .player iframe, .player video{height:52vh}
}
