@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/vendor/fonts/inter-400.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/vendor/fonts/inter-700.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/vendor/fonts/inter-800.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/vendor/fonts/inter-900.woff2") format("woff2");
}

* {
  margin:0; padding:0; box-sizing:border-box;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
*::-webkit-scrollbar { display:none; width:0; height:0; }
html, body { width:100%; height:100%; background:#0b0b0c; overflow:hidden; }
body {
  font-family: "Inter", Arial, "Helvetica Neue", Helvetica, sans-serif;
  color:#f2f2f2;
}
#app { width:100%; height:100%; display:flex; flex-direction:column; }

/* HEADER */
#header {
  display:flex; align-items:center; justify-content:space-between;
  padding: 28px 60px; background:#0b0b0c; border-bottom:2px solid #1c1c1e;
  flex-shrink:0;
}
.logo { font-size:36px; font-weight:900; letter-spacing:2px; color:#53fc18; }
#nav { display:flex; }
.nav-item { margin-left:16px; }
.nav-item:first-child { margin-left:0; }
.nav-item {
  font-family:inherit; font-size:20px; font-weight:700; color:#9a9a9a;
  background:transparent; border:2px solid transparent; padding:10px 26px;
  border-radius:6px; cursor:pointer;
}
.nav-item.active { color:#0b0b0c; background:#53fc18; }
.nav-item:focus { outline:none; border-color:#f2f2f2; }

/* MAIN / SCREENS */
#main { flex:1; position:relative; overflow:hidden; width:100%; }
.screen {
  position:absolute; top:0; left:0; width:100%; height:100%;
  padding: 36px 60px; overflow-y:auto; display:none;
  box-sizing:border-box;
}
.screen.active { display:block; }

.section-title {
  font-size:22px; font-weight:700; color:#f2f2f2; margin-bottom:22px;
  text-transform:uppercase; letter-spacing:1px;
}

#shelves-home { width:100%; }
.shelf { width:100%; margin-bottom:38px; }
.shelf:last-child { margin-bottom:0; }

.shelf-row {
  display:flex; flex-wrap:nowrap; width:100%;
  overflow-x:auto; overflow-y:hidden;
  scroll-behavior:smooth;
  padding-bottom:4px;
}
.shelf-row::-webkit-scrollbar { display:none; }

.grid { display:flex; flex-wrap:wrap; width:100%; }

/* CARD - live stream (fileira horizontal, tamanho fixo) */
.card {
  flex:0 0 auto; width:280px; background:#151517; border-radius:8px; overflow:hidden;
  border:3px solid transparent; cursor:pointer;
  margin:0 20px 0 0;
}
@media (min-width:900px) {
  .card { width:320px; }
}
.card:focus { outline:none; border-color:#53fc18; }
.card-thumb-wrap { position:relative; width:100%; height:0; padding-top:56.25%; background:#1c1c1e; }
.card-thumb {
  position:absolute; top:0; left:0; width:100%; height:100%; background-color:#42474d;
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.live-badge {
  position:absolute; top:10px; left:10px; background:#53fc18; color:#0b0b0c;
  font-size:12px; font-weight:900; padding:4px 10px; border-radius:20px;
  letter-spacing:0.5px;
}
.viewer-badge {
  position:absolute; bottom:10px; left:10px; background:rgba(0,0,0,0.75); color:#fff;
  font-size:13px; font-weight:700; padding:5px 10px; border-radius:20px;
}
.card-body { padding:14px 16px; }
.card-header-row { display:flex; align-items:flex-start; }
.card-avatar {
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background-color:#2a2a2d; background-size:cover; background-position:center;
  margin-right:12px;
}
.card-header-text { min-width:0; flex:1; }
.card-user { font-size:17px; font-weight:800; color:#f2f2f2; }
.card-title {
  font-size:14px; color:#9a9a9a; margin-top:2px; height:34px;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.card-tags { display:flex; margin-top:12px; flex-wrap:wrap; }
.lazy-bg { transition: opacity 0.35s ease; }
.lazy-bg:not(.lazy-bg-loaded) { opacity: 0.55; }
.lazy-bg-loaded { opacity: 1; }
.tag-pill {
  background:#232326; color:#c7c7c7; font-size:12px; font-weight:700;
  padding:5px 12px; border-radius:20px;
  margin:0 8px 8px 0;
}

/* SKELETON LOADING */
.skeleton-card {
  flex:0 0 auto; width:280px; border-radius:8px; overflow:hidden; margin:0 20px 0 0;
}
@media (min-width:900px) {
  .skeleton-card { width:320px; }
}
.skeleton-thumb { width:100%; height:0; padding-top:56.25%; background:#42474d; }
.skeleton-line { height:16px; background:#42474d; border-radius:4px; margin-top:14px; }
.skeleton-line.w60 { width:60%; }
.skeleton-line.w90 { width:90%; }
.skeleton-line.w40 { width:40%; margin-top:10px; }
.skeleton-cat-card {
  width:calc(33.333% - 18px); border-radius:8px; overflow:hidden; margin:0 26px 26px 0;
}
.skeleton-cat-card:nth-child(3n) { margin-right:0; }
@media (min-width:700px) {
  .skeleton-cat-card { width:calc(25% - 20px); }
  .skeleton-cat-card:nth-child(3n) { margin-right:26px; }
  .skeleton-cat-card:nth-child(4n) { margin-right:0; }
}
.skeleton-cat-banner { width:100%; height:0; padding-top:127%; background:#42474d; }
.skeleton-cat-body { padding:12px 14px; }

/* CARD - category */
.cat-card {
  width:calc(33.333% - 18px); background:#151517; border-radius:8px; overflow:hidden;
  border:3px solid transparent; cursor:pointer;
  margin:0 26px 26px 0;
}
.cat-card:nth-child(3n) { margin-right:0; }
@media (min-width:700px) {
  .cat-card { width:calc(25% - 20px); }
  .cat-card:nth-child(3n) { margin-right:26px; }
  .cat-card:nth-child(4n) { margin-right:0; }
}
@media (min-width:1000px) {
  .cat-card { width:calc(16.666% - 22px); }
  .cat-card:nth-child(4n) { margin-right:26px; }
  .cat-card:nth-child(6n) { margin-right:0; }
}
.cat-card:focus { outline:none; border-color:#53fc18; transform:scale(1.035); }
.cat-banner {
  width:100%; height:0; padding-top:127%; background-color:#42474d;
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.cat-body { padding:12px 14px; }
.cat-name { font-size:16px; font-weight:800; }
.cat-viewers { font-size:13px; color:#9a9a9a; margin-top:4px; }

/* PLAYER */
#screen-player { padding:0; }
#player-wrap { width:100%; height:100%; background:#000; display:flex; flex-direction:row; overflow:hidden; }
#player-video-area { position:relative; flex:1 1 auto; min-width:0; height:100%; }
#video { width:100%; height:100%; background:#000; display:block; }

.player-overlay {
  position:absolute; top:0; left:0; width:100%; height:100%;
  display:flex; flex-direction:column; justify-content:space-between;
  opacity:0; pointer-events:none;
  transition:opacity 0.25s ease;
}
.player-overlay.show { opacity:1; pointer-events:auto; }

.player-top {
  display:flex; align-items:center;
  padding:22px 34px; background:linear-gradient(rgba(0,0,0,0.75), transparent);
}
.player-viewers {
  display:flex; align-items:center; margin-left:18px;
  font-size:15px; font-weight:700; color:#f2f2f2;
}
.live-dot-small {
  width:8px; height:8px; border-radius:50%; background:#53fc18; margin-right:8px;
}
.player-top-right { display:flex; margin-left:auto; }
.player-top-right .player-btn { margin-left:10px; }

.player-btn {
  background:rgba(0,0,0,0.55); color:#f2f2f2; border:2px solid transparent;
  width:42px; height:42px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.player-btn:focus { outline:none; border-color:#53fc18; }
.player-btn.active { background:#53fc18; color:#0b0b0c; }

.player-center {
  display:flex; align-items:center; justify-content:center; flex:1;
}
.round-btn { width:64px; height:64px; margin:0 22px; }
.round-btn.big { width:76px; height:76px; background:rgba(0,0,0,0.7); }

.player-bottom {
  padding:16px 34px 28px; background:linear-gradient(transparent, rgba(0,0,0,0.85));
}
.player-bottom-info { margin-bottom:14px; }
#player-title { font-size:20px; font-weight:800; }
#player-meta { font-size:14px; color:#9a9a9a; margin-top:4px; }

.player-bottom-row { display:flex; align-items:center; }
.player-live-badge {
  display:flex; align-items:center; background:#53fc18; color:#0b0b0c;
  font-size:12px; font-weight:900; padding:5px 12px; border-radius:20px;
}
.player-live-badge .live-dot {
  width:8px; height:8px; border-radius:50%; background:#0b0b0c; margin-right:6px;
}
.player-bottom-right { display:flex; margin-left:auto; }
.player-bottom-right .player-btn { margin-left:10px; }

.mute-slash {
  display:none;
  position:absolute; width:28px; height:2px; background:#ff4444;
  transform:rotate(45deg); top:50%; left:50%; margin:-1px 0 0 -14px;
}
.player-btn.muted .mute-slash { display:block; }

.settings-menu {
  display:none; position:absolute; bottom:90px; right:34px;
  background:#151517; border-radius:10px; padding:8px; min-width:160px;
  border:1px solid #2a2a2d; z-index:10;
}
.settings-menu.show { display:block; }
.settings-item {
  padding:10px 14px; border-radius:6px; font-size:14px; color:#f2f2f2;
  cursor:pointer; border:2px solid transparent;
}
.settings-item:focus { outline:none; border-color:#53fc18; }
.settings-item.active { color:#53fc18; font-weight:700; }

.chat-panel {
  display:none; width:340px; height:100%; flex-shrink:0;
  background:#151517; flex-direction:column;
  border-left:1px solid #2a2a2d;
}
.chat-panel.show { display:flex; }
.chat-panel-header {
  padding:20px; font-size:16px; font-weight:800; color:#f2f2f2;
  border-bottom:1px solid #2a2a2d; flex-shrink:0;
}
.chat-messages { flex:1; overflow-y:auto; padding:14px 16px; }
.chat-msg { font-size:14px; margin-bottom:10px; line-height:1.4; word-wrap:break-word; }
.chat-msg .chat-user { font-weight:800; margin-right:6px; }
.chat-msg .chat-text { color:#e0e0e0; }
.chat-emote {
  height:22px; width:auto; vertical-align:middle; margin:0 2px;
  display:inline-block;
}

/* LOADING / TOAST */
#loading {
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:#000;
  display:flex; align-items:center; justify-content:center; z-index:50;
  opacity:0; pointer-events:none; transition:opacity 0.35s ease;
}
#loading.show { opacity:1; pointer-events:auto; }
#loading-gif {
  width:130px; height:130px;
}

#toast {
  display:none; position:fixed; bottom:40px; left:50%; margin-left:-220px;
  width:440px; background:#2a1414; border:2px solid #e33; color:#f2f2f2;
  padding:16px 20px; border-radius:8px; font-size:15px; z-index:60; text-align:center;
}
#toast.show { display:block; }
