:root{--bg:#080b18;--panel:#10172a;--panel2:#151f38;--line:#25314b;--text:#f5f7ff;--muted:#a5b0c9;--blue:#2435a6;--pink:#ff3c9d;--cyan:#66d9ff;--radius:14px}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:12px clamp(14px,3vw,36px);background:rgba(7,10,25,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.brand{font-size:23px;font-weight:950;letter-spacing:-1px;white-space:nowrap}.brand span{color:var(--pink)}.search{display:flex;flex:1;max-width:620px;margin:auto;background:var(--panel);border:1px solid var(--line);border-radius:999px;overflow:hidden}.search input{min-width:0;width:100%;padding:10px 15px;color:var(--text);background:transparent;border:0;outline:none}.search button{width:48px;border:0;background:var(--blue);color:white;font-size:24px}.admin-link{color:var(--muted);font-size:13px}.container{width:min(1400px,100%);margin:auto;padding:22px clamp(12px,2.5vw,32px) 50px}.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(20px,4vw,42px);margin:8px 0 24px;border:1px solid #28388b;border-radius:20px;background:radial-gradient(ellipse at 80% 0%,#273ba8 0,transparent 52%),linear-gradient(130deg,#10172e,#111b40 65%,#161032)}.hero h1{font-size:clamp(25px,4vw,42px);line-height:1.1;margin:4px 0 10px}.hero p{color:#c1cbe2;margin:0;max-width:650px}.eyebrow{color:var(--cyan)!important;font-size:11px;letter-spacing:2px;font-weight:800}.hero-mark{display:grid;place-items:center;min-width:62px;height:62px;border:1px solid #6574db;border-radius:18px;color:white;background:#1b2875;font-weight:900}.category-strip{display:flex;gap:8px;overflow:auto;padding:2px 0 18px;scrollbar-width:thin}.category-strip a{flex:none;border:1px solid var(--line);border-radius:999px;padding:8px 13px;background:var(--panel);color:#c9d2e7;font-size:13px}.category-strip a.active,.category-strip a:hover{background:#26379e;border-color:#4355d1;color:#fff}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:12px 0 14px}.section-heading h2{font-size:20px;margin:0}.section-heading p,.muted{color:var(--muted);font-size:12px;margin:3px 0 0}.video-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 15px}.video-card{min-width:0;width:100%}.video-card .thumb-wrap{width:100%}.video-card .thumb-wrap img{width:100%}.thumb-wrap{position:relative;display:block;overflow:hidden;aspect-ratio:16/9;border-radius:10px;background:#171f34;border:1px solid #202b43}.thumb-wrap img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}.video-card:hover .thumb-wrap img{transform:scale(1.035)}.play-badge{position:absolute;right:10px;bottom:9px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#080b18d9;color:white;opacity:0;transition:opacity .2s}.video-card:hover .play-badge{opacity:1}.duration{position:absolute;right:7px;bottom:7px;padding:2px 5px;border-radius:4px;background:#050711d9;font-size:11px}.video-meta{padding:8px 2px 0}.video-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:700;font-size:14px;line-height:1.35}.video-title:hover{color:#ff79bb}.watch-layout{max-width:1240px}.player{width:100%;background:#000;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.player video{display:block;width:100%;max-height:75vh;aspect-ratio:16/9;background:#000}.watch-title{font-size:clamp(20px,3vw,30px);line-height:1.25;margin:17px 0 7px}.watch-sub{font-size:13px;color:var(--muted)}.watch-actions{display:flex;flex-wrap:wrap;gap:9px;margin:17px 0 25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #354263;border-radius:9px;background:var(--panel2);color:white;padding:10px 15px;cursor:pointer}.button:hover{border-color:#6376dc}.button-primary{background:linear-gradient(110deg,#293ba9,#b42a78);border:0;font-weight:800}.button-outline{background:transparent}.description{padding:16px;margin:18px 0 28px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.description h2{font-size:16px;margin:0 0 7px}.description p{color:#c4cde0;margin:0;white-space:normal}.related-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.empty{text-align:center;padding:60px 15px;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}.empty h2{color:var(--text)}.footer{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:25px clamp(14px,3vw,36px);border-top:1px solid var(--line);color:var(--muted);font-size:12px}.footer nav{display:flex;gap:16px}.footer a:hover{color:white}.age-screen{min-height:75vh;display:grid;place-items:center;padding:25px}.age-card{width:min(470px,100%);padding:30px;border:1px solid #303b70;border-radius:20px;background:radial-gradient(ellipse at top,#1c2867,transparent 65%),var(--panel);text-align:center}.age-logo{display:grid;place-items:center;width:78px;height:78px;margin:0 auto 18px;border:2px solid var(--pink);border-radius:50%;font-size:28px;font-weight:900}.age-card h1{font-size:27px;margin:5px 0 12px}.age-card p{color:#c0c9dd}.age-card .button{width:100%;margin:12px 0}.exit-link{display:inline-block;margin-top:8px;color:var(--muted);font-size:13px}.admin-wrap{min-height:75vh;display:grid;place-items:center;padding:25px}.admin-card{padding:22px;margin:18px 0;background:var(--panel);border:1px solid var(--line);border-radius:14px}.admin-wrap .admin-card{width:min(500px,100%)}.admin-card h1,.admin-card h2{margin-top:0}.admin-card label{display:block;margin:14px 0;color:#dce3f4;font-size:13px}.admin-card input,.admin-card textarea,.admin-card select{display:block;width:100%;margin-top:6px;padding:11px 12px;border-radius:8px;border:1px solid #33415f;background:#080e1d;color:white}.admin-card button{margin-top:12px}.admin-dashboard h1{margin:0}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.stats div{padding:18px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.stats span{display:block;color:var(--muted);font-size:12px}.stats strong{display:block;font-size:27px;margin-top:5px}.upload-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.upload-form label:nth-child(2),.upload-form label:nth-child(4){grid-column:1/-1}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}th{color:#aebada}.error{padding:10px;border-radius:8px;background:#4a1727;color:#ffc2d7}.success{padding:10px;border-radius:8px;background:#103a30;color:#a9ffdf}@media(max-width:950px){.video-grid,.related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px}}@media(max-width:640px){
.video-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%;gap:22px 0}
.video-card{display:block!important;width:100%!important;max-width:none!important;min-width:0}
.video-card .thumb-wrap{display:block;width:100%!important;aspect-ratio:16/9!important}
.video-card .thumb-wrap img{display:block;width:100%!important;height:100%!important;object-fit:cover}
.topbar{gap:10px;padding:10px}.brand{font-size:20px}.admin-link{display:none}.container{padding:13px 10px 32px}.hero{padding:19px;border-radius:14px;margin:4px 0 17px}.hero-mark{min-width:48px;height:48px;border-radius:14px}.hero h1{font-size:26px}.hero p{font-size:13px}.category-strip{margin-right:-10px;padding-right:10px}.section-heading h2{font-size:18px}.video-grid,.related-grid{grid-template-columns:minmax(0,1fr);gap:22px 0}.thumb-wrap{aspect-ratio:3/2}.thumb-wrap{border-radius:7px}.video-meta{padding:6px 1px 0}.video-title{font-size:12px;line-height:1.3}.video-meta .muted{font-size:10px}.play-badge{display:none}.watch-layout{padding-top:10px}.player{border-radius:0;margin:0 -10px;width:calc(100% + 20px);border-left:0;border-right:0}.player video{border-radius:0;max-height:55vh}.watch-title{font-size:20px}.watch-sub{font-size:12px}.description{padding:12px}.upload-form{grid-template-columns:1fr}.upload-form label:nth-child(2),.upload-form label:nth-child(4){grid-column:auto}.footer{padding:20px 12px}.footer nav{gap:12px}.age-card{padding:23px}.admin-dashboard{padding-top:20px}}
/* TokMiso: full-width video cards on mobile */
@media screen and (max-width: 640px) {
  main.container .video-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 22px 0 !important;
  }

  main.container .video-grid > .video-card {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
  }

  main.container .video-grid > .video-card > .thumb-wrap {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 16 / 9 !important;
  }

  main.container .video-grid > .video-card > .thumb-wrap img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}

/* HLS player sizing fix */
.watch-main .player video#tokmiso-hls-video {
    display: block;
    width: 100%;
    height: auto;
    max-height: 80vh;
    aspect-ratio: auto;
    object-fit: contain;
    background: #000;
}

@media (max-width: 640px) {
    .watch-main .player video#tokmiso-hls-video {
        width: 100%;
        height: auto;
        max-height: 70vh;
        aspect-ratio: auto;
        object-fit: contain;
    }
}

/* HLS: use the actual video ratio instead of forcing 16:9 */
.watch-main .player:has(> video#tokmiso-hls-video) {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
    min-height: 0;
    background: #000;
}

.watch-main .player video#tokmiso-hls-video {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    max-height: 80vh !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    background: #000;
}

@media (max-width: 640px) {
    .watch-main .player:has(> video#tokmiso-hls-video) {
        height: auto;
        min-height: 0;
    }

    .watch-main .player video#tokmiso-hls-video {
        width: 100% !important;
        height: auto !important;
        max-height: 70vh !important;
        aspect-ratio: auto !important;
        object-fit: contain !important;
    }
}
