/* ===================================
   FIBWATCH LIVE TV - PART 1
   ROOT + BODY + HEADER + SEARCH
=================================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

:root{

--bg:#090909;
--card:#161616;
--card-hover:#1f1f1f;
--text:#ffffff;
--accent:#ff2d55;
--border:#2a2a2a;

--plyr-color-main:#ff2d55;

}

html{

scroll-behavior:smooth;

}

body{

background:var(--bg);

color:var(--text);

font-family:
Arial,
Helvetica,
sans-serif;

overflow-x:hidden;

}

/* ==========================
   MAIN CONTAINER
========================== */

.main-content{

max-width:1600px;

margin:auto;

padding:20px;

}

/* ==========================
   HEADER
========================== */

.header{

position:sticky;

top:0;

z-index:9999;

display:flex;

align-items:center;

justify-content:space-between;

gap:20px;

padding:15px 20px;

background:rgba(15,15,15,.95);

backdrop-filter:blur(15px);

border-bottom:1px solid #222;

}

/* ==========================
   LOGO
========================== */

.logo{

color:#fff;

text-decoration:none;

font-size:24px;

font-weight:700;

white-space:nowrap;

}

/* ==========================
   SEARCH
========================== */

.search-box{

width:320px;

max-width:100%;

padding:12px 15px;

border:none;

outline:none;

border-radius:12px;

background:#1c1c1c;

color:#fff;

font-size:14px;

}

.search-box::placeholder{

color:#888;

}

/* ==========================
   NAVIGATION
========================== */

.header-right{

display:flex;

align-items:center;

gap:20px;

}

.header-right a{

color:#fff;

text-decoration:none;

font-weight:600;

transition:.2s;

}

.header-right a:hover{

color:var(--accent);

}

/* ==========================
   SEARCH RESULTS
========================== */

.search-results{

display:none;

position:fixed;

top:75px;

left:50%;

transform:translateX(-50%);

width:min(550px,95vw);

max-height:500px;

overflow:auto;

background:#111;

border:1px solid #333;

border-radius:16px;

box-shadow:
0 20px 50px rgba(
0,0,0,.5
);

z-index:99999;

}

.search-item{

display:none;

align-items:center;

gap:12px;

padding:12px;

text-decoration:none;

color:#fff;

border-bottom:1px solid #222;

transition:.2s;

}

.search-item:hover{

background:#1d1d1d;

}

.search-item img{

width:50px;

height:50px;

object-fit:contain;

background:#fff;

border-radius:8px;

padding:5px;

}

.search-name{

font-weight:700;

}

.search-category{

font-size:12px;

color:#888;

}

.no-result{

padding:15px;

text-align:center;

color:#999;

}

/* ==========================
   FOOTER
========================== */

.footer{

margin-top:40px;

background:#111;

border-top:1px solid #222;

padding:20px;

}

.footer-inner{

max-width:1600px;

margin:auto;

display:flex;

justify-content:space-between;

align-items:center;

color:#999;

font-size:14px;

}

/* ==========================
   SCROLLBAR
========================== */

::-webkit-scrollbar{

width:8px;

height:8px;

}

::-webkit-scrollbar-track{

background:#111;

}

::-webkit-scrollbar-thumb{

background:#333;

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#444;

}
/* ===================================
   FIBWATCH LIVE TV - PART 2
   HOME + CATEGORY + CARDS
=================================== */

/* ==========================
   SECTION
========================== */

.section{

background:#0f0f0f;

padding:20px;

border-radius:20px;

margin-bottom:30px;

border:1px solid rgba(
255,255,255,.04
);

}

/* ==========================
   SECTION HEADER
========================== */

.section-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:15px;

gap:15px;

}

.section-title{

font-size:28px;

font-weight:700;

line-height:1.3;

}

.section-title span{

color:#888;

font-size:15px;

font-weight:500;

margin-left:5px;

}

/* ==========================
   CHANNEL GRID
========================== */

.channel-grid{

display:grid;

grid-template-columns:
repeat(
auto-fill,
minmax(160px,1fr)
);

gap:15px;

}

/* ==========================
   CHANNEL CARD
========================== */

.card{

display:block;

position:relative;

background:#161616;

border:1px solid rgba(
255,255,255,.05
);

border-radius:18px;

overflow:hidden;

text-decoration:none;

color:#fff;

transition:
transform .25s,
box-shadow .25s,
background .25s;

}

.card:hover{

background:#1f1f1f;

transform:
translateY(-5px);

box-shadow:
0 10px 25px rgba(
255,255,255,.08
);

}

/* ==========================
   CARD IMAGE
========================== */

.card img{

width:100%;

height:120px;

object-fit:contain;

background:#181818;

padding:10px;

display:block;

}

/* ==========================
   CARD TITLE
========================== */

.card-title{

padding:12px;

text-align:center;

font-size:14px;

font-weight:600;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;

}

/* ==========================
   FAVORITE ICON
========================== */

.fav-btn{

position:absolute;

top:8px;

right:8px;

background:rgba(
0,0,0,.65
);

padding:6px 8px;

border-radius:8px;

cursor:pointer;

font-size:14px;

backdrop-filter:blur(8px);

}

/* ==========================
   SEE ALL BUTTON
========================== */

.see-all-btn{

display:block;

width:100%;

margin-top:15px;

padding:12px;

text-align:center;

text-decoration:none;

font-weight:700;

color:#fff;

background:#1d1d1d;

border:1px solid #333;

border-radius:12px;

transition:.2s;

}

.see-all-btn:hover{

background:#282828;

}

/* ==========================
   EMPTY MESSAGE
========================== */

.empty-box{

padding:30px;

text-align:center;

color:#888;

font-size:14px;

}

/* ==========================
   CATEGORY PAGE TITLE
========================== */

.category-title{

font-size:32px;

font-weight:700;

margin-bottom:20px;

}

.category-title small{

font-size:16px;

color:#888;

font-weight:400;

}

/* ==========================
   LOADING PLACEHOLDER
========================== */

.skeleton{

background:
linear-gradient(
90deg,
#181818 25%,
#222 50%,
#181818 75%
);

background-size:
200% 100%;

animation:
skeleton 1.5s infinite;

}

@keyframes skeleton{

0%{
background-position:
200% 0;
}

100%{
background-position:
-200% 0;
}

}
/* ===================================
   FIBWATCH LIVE TV - PART 3
   WATCH PAGE + PLYR + MOBILE
=================================== */

/* ==========================
   WATCH PAGE
========================== */

.watch-wrapper{

width:100%;

padding:20px 0;

}

/* ==========================
   CHANNEL INFO
========================== */

.channel-info{

display:flex;

align-items:center;

gap:15px;

margin-bottom:15px;

}

.channel-logo{

width:60px;

height:60px;

object-fit:contain;

background:#fff;

border-radius:12px;

padding:6px;

}

.channel-name{

font-size:24px;

font-weight:700;

}

.channel-status{

font-size:13px;

font-weight:600;

color:#00ff88;

letter-spacing:1px;

}

/* ==========================
   PLAYER BOX
========================== */

.player-box{

background:#0f0f0f;

border:1px solid #222;

border-radius:20px;

overflow:hidden;

box-shadow:
0 15px 40px rgba(
0,0,0,.45
);

}

.player-box video{

display:block;

width:100%;

aspect-ratio:16/9;

background:#000;

}

/* ==========================
   STREAM TAGS
========================== */

.stream-meta{

display:flex;

gap:10px;

flex-wrap:wrap;

padding:15px;

}

.stream-meta span{

background:#1d1d1d;

padding:8px 12px;

border-radius:999px;

font-size:13px;

}

/* ==========================
   ACTION BUTTONS
========================== */

.watch-actions{

display:flex;

gap:10px;

padding:0 15px 15px;

}

.watch-actions button{

background:#1f1f1f;

border:1px solid #333;

color:#fff;

padding:12px 20px;

border-radius:14px;

cursor:pointer;

font-weight:600;

transition:.2s;

}

.watch-actions button:hover{

background:#ff2d55;

border-color:#ff2d55;

}

/* ==========================
   PLYR PLAYER
========================== */

.plyr{

border-radius:20px;

overflow:hidden;

}

.plyr--video{

background:#000;

}

.plyr__control--overlaid{

background:#ff2d55 !important;

}

.plyr__menu__container{

background:#1a1a1a !important;

}

.plyr__control{

border-radius:8px !important;

}

/* ==========================
   RELATED CHANNELS
========================== */

.related-title{

font-size:26px;

font-weight:700;

margin:30px 0 15px;

}

.related-grid{

display:grid;

grid-template-columns:
repeat(
auto-fill,
minmax(170px,1fr)
);

gap:15px;

}

.related-card{

background:#1a1a1a;

border:1px solid rgba(
255,255,255,.05
);

border-radius:14px;

padding:10px;

text-decoration:none;

color:#fff;

transition:.25s;

}

.related-card:hover{

transform:
translateY(-4px);

background:#222;

}

.related-card img{

width:100%;

height:90px;

object-fit:contain;

background:#fff;

border-radius:8px;

margin-bottom:10px;

}

.related-card span{

display:block;

text-align:center;

font-size:13px;

font-weight:600;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;

}

/* ==========================
   FAVORITES / RECENT
========================== */

.page-title{

font-size:30px;

font-weight:700;

margin-bottom:20px;

}

.page-title span{

font-size:14px;

color:#888;

margin-left:10px;

}

/* ==========================
   MOBILE
========================== */

@media(max-width:991px){

.header{

display:flex;

flex-direction:column;

align-items:center;

justify-content:center;

gap:12px;

padding:15px;

}

.header-left,
.header-center,
.header-right{

width:100%;

display:flex;

justify-content:center;

align-items:center;

}

.logo{

display:block;

text-align:center;

font-size:20px;

}

.search-box{

width:100%;

max-width:320px;

}

.header-right{

gap:18px;

flex-wrap:wrap;

}


.footer-inner{

flex-direction:column;

gap:10px;

text-align:center;

}

}

/* ==========================
   TABLET
========================== */

@media(max-width:768px){

.channel-grid{

grid-template-columns:
repeat(2,1fr) !important;

gap:10px;

}

.related-grid{

grid-template-columns:
repeat(2,1fr);

gap:10px;

}

.channel-info{

padding:10px;

}

.channel-logo{

width:45px;

height:45px;

}

.channel-name{

font-size:18px;

}

.plyr{

border-radius:12px;

}

.player-box{

border-radius:14px;

}

}

/* ==========================
   SMALL MOBILE
========================== */

@media(max-width:480px){

.channel-grid{

grid-template-columns:
repeat(2,1fr) !important;

}

.card{

border-radius:12px;

}

.card img{

height:70px;

padding:5px;

}

.card-title{

font-size:11px;

padding:10px 5px;

}

.related-card img{

height:70px;

}

.watch-actions{

flex-direction:column;

}

.watch-actions button{

width:100%;

}

.stream-meta{

gap:6px;

}

.stream-meta span{

font-size:11px;

padding:6px 10px;

}

}
