
:root{
  --bg:#050508;--panel:rgba(18,18,28,.85);--card:rgba(26,26,40,.9);
  --border:rgba(255,255,255,.08);--accent:#ff3d5a;--accent2:#4cc9f0;
  --accent3:#b517ff;--text:#f0f0f5;--muted:#8a8aa3;
  --glow:0 0 24px rgba(255,61,90,.35);--glass:blur(14px) saturate(1.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display',sans-serif;
  background:var(--bg);color:var(--text);overflow:hidden;
}
.bg-mesh{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 10% 20%,rgba(181,23,255,.18),transparent 55%),
    radial-gradient(ellipse 70% 50% at 90% 80%,rgba(76,201,240,.15),transparent 50%),
    radial-gradient(ellipse 60% 40% at 50% 50%,rgba(255,61,90,.08),transparent 60%);
  animation:meshShift 18s ease-in-out infinite alternate;
}
@keyframes meshShift{0%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(25deg)}}
.bg-grain{position:fixed;inset:0;z-index:0;opacity:.04;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.app{position:relative;z-index:1;height:100vh;display:flex;flex-direction:column}
header.glass{
  background:var(--panel);backdrop-filter:var(--glass);
  border-bottom:1px solid var(--border);padding:.7rem 1.2rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  animation:slideDown .5s ease;
}
@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:none;opacity:1}}
header h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}
header h1 span{
  background:linear-gradient(135deg,var(--accent),var(--accent3));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  animation:pulseGlow 3s ease-in-out infinite;
}
@keyframes pulseGlow{0%,100%{filter:drop-shadow(0 0 8px rgba(255,61,90,.4))}50%{filter:drop-shadow(0 0 16px rgba(181,23,255,.5))}}
.ticker{
  flex:1;overflow:hidden;max-width:320px;height:24px;
  background:rgba(0,0,0,.3);border-radius:12px;border:1px solid var(--border);
}
.ticker-inner{
  display:flex;gap:2rem;white-space:nowrap;
  animation:ticker 25s linear infinite;font-size:.68rem;color:var(--muted);line-height:24px;padding:0 12px;
}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.nav{display:flex;gap:.45rem;flex-wrap:wrap}
.nav button,.nav a{
  background:var(--card);border:1px solid var(--border);color:var(--text);
  padding:.4rem .85rem;border-radius:999px;font-size:.75rem;cursor:pointer;
  text-decoration:none;transition:all .25s cubic-bezier(.34,1.56,.64,1);
}
.nav button:hover,.nav a:hover{transform:translateY(-2px);box-shadow:var(--glow);border-color:var(--accent)}
.nav button.on,.nav button.active{background:linear-gradient(135deg,var(--accent),#c1121f);border-color:transparent}
.mood-bar{flex:1;display:flex;gap:.5rem;min-width:220px}
.mood-bar input{
  flex:1;background:rgba(0,0,0,.35);border:1px solid var(--border);color:var(--text);
  padding:.5rem 1rem;border-radius:999px;font-size:.85rem;transition:border .2s,box-shadow .2s;
}
.mood-bar input:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px rgba(76,201,240,.2)}
.mood-bar button{
  background:linear-gradient(135deg,var(--accent2),#2a6f97);border:none;color:#fff;
  padding:.5rem 1.1rem;border-radius:999px;cursor:pointer;font-size:.8rem;font-weight:600;
  transition:transform .2s,box-shadow .2s;
}
.mood-bar button:hover{transform:scale(1.05);box-shadow:0 4px 20px rgba(76,201,240,.4)}
.main{display:grid;grid-template-columns:1fr 360px;flex:1;min-height:0;gap:0}
.player-area{display:flex;flex-direction:column;min-height:0}
.pip-toolbar{
  display:flex;gap:.5rem;padding:.55rem 1rem;background:var(--panel);
  border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;backdrop-filter:var(--glass);
}
.pip-toolbar button{
  background:var(--card);border:1px solid var(--border);color:var(--text);
  padding:.35rem .75rem;border-radius:8px;font-size:.72rem;cursor:pointer;transition:all .2s;
}
.pip-toolbar button:hover{border-color:var(--accent2);transform:scale(1.03)}
.pip-grid{flex:1;display:grid;min-height:0;gap:3px;background:#000;position:relative}
.pip-grid.split-h{grid-template-columns:1fr 1fr}
.pane{position:relative;background:#000;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.pane::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 60px rgba(0,0,0,.5);z-index:2;
}
.pane-label{
  position:absolute;top:10px;left:12px;z-index:5;
  background:rgba(0,0,0,.75);backdrop-filter:blur(8px);
  padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:600;
  border:1px solid var(--border);animation:fadeIn .4s ease;
}
.pane-label.live::before{
  content:'';display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#2ecc71;margin-right:6px;animation:blink 1.2s infinite;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.pane video{width:100%;height:100%;object-fit:contain;background:#000;flex:1}
.sidebar{
  background:var(--panel);border-left:1px solid var(--border);
  display:flex;flex-direction:column;min-height:0;backdrop-filter:var(--glass);
  animation:slideLeft .45s ease;
}
@keyframes slideLeft{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.tabs{display:flex;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:4px}
.tabs button{
  flex:1;min-width:52px;background:transparent;border:none;color:var(--muted);
  padding:.55rem .35rem;font-size:.68rem;cursor:pointer;border-radius:8px;
  transition:all .2s;position:relative;
}
.tabs button.active{color:var(--text);background:rgba(255,61,90,.15)}
.tabs button.active::after{
  content:'';position:absolute;bottom:0;left:20%;right:20%;height:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent3));border-radius:2px;
}
.list{flex:1;overflow-y:auto;padding:.6rem;scroll-behavior:smooth}
.list::-webkit-scrollbar{width:6px}
.list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.ch{
  display:grid;grid-template-columns:72px 1fr;gap:.6rem;
  padding:.55rem;background:var(--card);border:1px solid var(--border);
  border-radius:12px;margin-bottom:.5rem;cursor:pointer;font-size:.75rem;
  transition:all .28s cubic-bezier(.34,1.56,.64,1);
  animation:cardIn .4s ease backwards;
  position:relative;overflow:hidden;
}
@keyframes cardIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.ch:hover{
  border-color:var(--accent2);transform:translateX(4px) scale(1.02);
  box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 0 1px rgba(76,201,240,.2);
}
.ch .thumb-wrap{
  width:72px;height:54px;border-radius:8px;overflow:hidden;position:relative;
  background:linear-gradient(135deg,#1a1a2e,#2d1b3d);flex-shrink:0;
}
.ch .thumb-wrap img,.ch .thumb-wrap video{width:100%;height:100%;object-fit:cover}
.ch .thumb-wrap .play-ov{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.45);opacity:0;transition:opacity .2s;font-size:1.2rem;
}
.ch:hover .thumb-wrap .play-ov{opacity:1}
.ch .info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.ch .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch .meta{color:var(--muted);font-size:.65rem;margin-top:3px}
.ch .badge{
  font-size:.58rem;background:linear-gradient(135deg,var(--accent),#c1121f);
  padding:2px 6px;border-radius:4px;margin-left:4px;vertical-align:middle;
}
.ch.locked{opacity:.45;cursor:not-allowed}
.preview-float{
  position:fixed;z-index:9999;width:280px;height:158px;
  background:#000;border:2px solid var(--accent2);border-radius:12px;
  overflow:hidden;pointer-events:none;opacity:0;transform:scale(.9);
  transition:opacity .2s,transform .2s;box-shadow:0 20px 60px rgba(0,0,0,.8);
}
.preview-float.show{opacity:1;transform:scale(1)}
.preview-float video,.preview-float img{width:100%;height:100%;object-fit:cover}
.preview-float .pf-label{
  position:absolute;bottom:0;left:0;right:0;padding:6px 10px;
  background:linear-gradient(transparent,rgba(0,0,0,.9));font-size:.7rem;
}
.mood-results{
  padding:.6rem;border-bottom:1px solid var(--border);max-height:160px;
  overflow-y:auto;font-size:.72rem;animation:fadeIn .3s ease;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.mood-results h4{color:var(--accent);margin-bottom:.35rem;font-size:.75rem}
.mood-results .item{padding:.3rem 0;cursor:pointer;color:var(--accent2);transition:padding-left .15s}
.mood-results .item:hover{padding-left:8px;text-decoration:none}
.status{
  padding:.5rem .8rem;font-size:.7rem;color:var(--muted);
  border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;
}
.status .dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;animation:blink 1.5s infinite}
.status.warn .dot{background:#f39c12}
.status.err .dot{background:var(--accent)}
@media(max-width:900px){.main{grid-template-columns:1fr}.sidebar{max-height:42vh}}
