:root{--bg:#0d1412;--panel:#161f1b;--panel2:#1b2721;--line:#2a3930;--mint:#b2ef77;--text:#f3f6f0;--muted:#9daa9f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 42px));margin:auto}.head{border-bottom:1px solid #243128;position:sticky;z-index:20;top:0;background:#0d1412ef;backdrop-filter:blur(18px)}.head-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{font-size:23px;font-weight:900;letter-spacing:-1.2px;white-space:nowrap}.logo span:last-child{color:var(--mint);margin-left:6px}.logo-icon{color:var(--mint);font-size:26px;margin-right:7px}.head nav{display:flex;gap:39px;color:#ced8cd;font-size:14px}.head nav a:hover,.linkbtn:hover{color:var(--mint)}.linkbtn{background:none;border:0;color:#c5d2c3;font-size:13px}.hero{height:470px;position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden}.eyebrow,.overline{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mint);font-weight:800}.eyebrow{display:flex;align-items:center;gap:11px}.pulse{height:7px;width:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px var(--mint)}h1{font-size:clamp(49px,6vw,80px);line-height:1.15;letter-spacing:-4px;margin:23px 0 13px;z-index:1}h1 em{font-style:normal;color:var(--mint)}.hero p{max-width:505px;font-size:16px;color:#a8b5ab;line-height:1.9;z-index:1}.hero-actions{display:flex;gap:21px;margin-top:21px;align-items:center;z-index:1}.primary{background:var(--mint);color:#142114;border:1px solid var(--mint);font-weight:800;padding:13px 24px;border-radius:7px;display:inline-flex;justify-content:space-between;gap:22px;align-items:center}.primary:hover{background:#d1ffab}.ghost{background:transparent;color:#e9efe6;border:1px solid #455749;padding:12px 22px;border-radius:7px}.ghost:hover{border-color:var(--mint)}.hero-side{position:absolute;right:15px;top:7px;height:410px;width:405px;display:grid;place-items:center;opacity:.75}.ball-art{font-size:340px;line-height:1;color:#b2ef77;text-shadow:0 0 85px #9df05c4a;transform:rotate(-16deg)}.hero-side span{font-size:10px;color:#627463;letter-spacing:4px;position:absolute;bottom:10px;right:15px}.section{padding:45px 0 35px;scroll-margin-top:85px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:25px}.section-title h2{font-size:30px;margin:8px 0 0;letter-spacing:-1px}.accent{color:var(--mint);font-size:17px;letter-spacing:0}.subdued,.footnote{font-size:12px;color:#87988a}.watch-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(250px,1fr);gap:20px}.player-card,.streams,.fixtures,.tip{background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}.player-top{display:flex;align-items:center;gap:13px;padding:14px 18px;font-size:12px;color:#dce6dd}.status-dot{background:#374537;border-radius:5px;font-weight:700;padding:5px 10px;color:#d5e4ce}.status-dot.live{background:#df544b;color:white}.player{aspect-ratio:16/9;background:radial-gradient(circle at center,#233a29 0,#0b120f 63%);display:grid;place-items:center;position:relative;overflow:hidden}.player video,.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}.play-empty{display:flex;align-items:center;flex-direction:column;gap:13px;color:#eaf4e9;text-align:center}.play-empty small{color:#849988}.play-ring{border:1px solid #65846e;border-radius:50%;width:66px;height:66px;display:grid;place-items:center;color:var(--mint);font-size:23px;padding-left:4px}.player-meta{display:flex;justify-content:space-between;align-items:center;padding:19px;gap:15px}.player-meta strong{font-size:17px}.player-meta p{margin:8px 0 0;color:var(--muted);font-size:12px}.outline-badge{border:1px solid #3b5441;border-radius:5px;color:var(--mint);padding:7px 9px;font-size:11px;white-space:nowrap}.streams{padding:19px}.side-heading{display:flex;justify-content:space-between;margin-bottom:16px;align-items:center}.side-heading span,.side-note{font-size:11px;color:#829586}.stream-item{display:block;width:100%;background:#1b2820;border:1px solid transparent;border-radius:8px;text-align:left;color:#fff;padding:16px;margin-bottom:10px}.stream-item.selected{border-color:#91cb6f;background:#233429}.stream-item strong{display:block;font-size:14px;margin:9px 0}.stream-item small{color:#9fac9e}.mini-status{font-size:10px;color:var(--mint);font-weight:700}.mini-status.live{color:#fa7972}.side-note{line-height:1.8;margin-top:20px}.tabbar{display:flex;gap:6px;flex-wrap:wrap}.tabbar button,.adminnav button{padding:8px 13px;border:1px solid #324236;background:#19231d;color:#9bac9b;border-radius:6px;font-size:12px}.tabbar button.active,.adminnav button.active{background:var(--mint);color:#0e1d10;border-color:var(--mint);font-weight:800}.fixture-row{display:grid;grid-template-columns:140px 1fr 120px 80px;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid #2c3b31}.fixture-row:last-child{border:0}.league{font-size:12px;color:#a8b9aa}.teams{display:flex;align-items:center;justify-content:center;gap:15px;font-weight:750}.vs{color:#708572;font-size:12px}.f-time{text-align:center;font-size:12px;color:#b7c5b8}.f-time small{display:block;color:#7f9582;margin-top:4px}.watch-link{text-align:right;color:var(--mint);font-size:12px}.footnote{margin:15px 0 0;line-height:1.8}.tip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tip{padding:25px;min-height:250px;display:flex;flex-direction:column}.tip-tag{display:flex;justify-content:space-between;align-items:center;gap:7px;color:var(--mint);font-size:11px;font-weight:750}.tip h3{font-size:19px;line-height:1.45;margin:20px 0 9px}.tip p{color:#a2b1a2;font-size:13px;line-height:1.8;margin:0}.tip .author{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-top:auto;color:#a7b8a5;font-size:11px;gap:7px}.last{padding-bottom:75px}footer{border-top:1px solid #26372a;padding:28px 0;color:#a4b3a6;font-size:12px}.foot{display:flex;justify-content:space-between;align-items:center;gap:20px}.foot b{color:var(--mint);display:block;font-size:16px}.foot small{display:block;margin-top:6px}.empty{padding:35px;text-align:center;color:#8fa08f}.hidden{display:none!important}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}.shade{position:absolute;inset:0;background:#000b}.modal-panel{position:relative;background:#17211b;border:1px solid #486249;border-radius:15px;padding:24px;width:min(760px,100%);max-height:91vh;overflow:auto;box-shadow:0 20px 100px #0009}.modal-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title small{color:var(--mint);letter-spacing:2px}.modal-title h3{font-size:25px;margin:6px 0}.modal-title button{color:#fff;background:none;border:0;font-size:20px}.note{color:#afbbaf;font-size:12px;line-height:1.9}.modal label{display:block;color:#d8e7d8;font-size:12px;margin:10px 0}.modal input,.modal textarea,.modal select{margin-top:6px;background:#0f1912;border:1px solid #3b5140;border-radius:6px;color:#fff;padding:11px;width:100%;outline:none}.modal input:focus,.modal textarea:focus{border-color:var(--mint)}.wide{width:100%;justify-content:center;margin-top:12px}.error{color:#f38585;font-size:12px}.adminnav{display:flex;gap:7px;flex-wrap:wrap}.adminform{background:#101a14;border:1px solid #324332;border-radius:10px;padding:15px;margin:15px 0}.adminform header{display:flex;justify-content:space-between;padding:0;background:none;border:0}.adminform h4{font-size:14px;margin:0}.remove{background:none;border:0;color:#ff9b8c}.formfields{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.formfields .full{grid-column:1/-1}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}.feedback{font-size:12px;color:var(--mint)}@media(max-width:850px){.hero-side{right:-130px;opacity:.23}.watch-grid{grid-template-columns:1fr}.tip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fixture-row{grid-template-columns:95px 1fr 85px 60px;padding:16px 12px;gap:7px}.teams{gap:7px;font-size:13px}}@media(max-width:600px){.head-inner{height:65px;flex-wrap:wrap;gap:0}.logo{font-size:20px}.head nav{order:3;justify-content:space-around;width:100%;padding-bottom:11px;font-size:12px;gap:8px}.head-inner{height:auto;padding:11px 0 0}.head .linkbtn{font-size:12px}.hero{height:415px}.hero h1{font-size:48px;letter-spacing:-2.4px}.hero p{font-size:13px}.hero-side{right:-190px;top:75px}.section{padding-top:38px;scroll-margin-top:110px}.section-title{align-items:flex-start;flex-direction:column}.section-title h2{font-size:26px}.section-title .subdued{display:none}.fixture-row{grid-template-columns:1fr 76px 47px;gap:6px;padding:16px 12px}.fixture-row .league{grid-column:1/-1}.teams{justify-content:flex-start}.f-time{font-size:11px}.tip-grid{grid-template-columns:1fr}.tip{min-height:220px}.foot{align-items:flex-start;flex-direction:column}.formfields{grid-template-columns:1fr}.player-meta{align-items:flex-start;flex-direction:column}}

/* 五大联赛实时赛程 */
.schedule-toolbar,.schedule-meta{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:16px 0}.league-pills,.range-controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.league-pills button,.range-controls button,.refresh-score{border:1px solid #36473f;border-radius:10px;background:#1b2923;color:#d9e8df;padding:9px 13px;cursor:pointer;font:inherit}.league-pills button.active,.league-pills button:hover{background:#b8f07b;color:#15221a;border-color:#b8f07b}.range-controls span{font-size:13px;color:#c4d2c8;white-space:nowrap}.schedule-meta{margin:12px 0}.schedule-meta #realUpdated{color:#9aaea1;font-size:13px}.official-row .source-mark{font-size:11px;color:#789788}.official-teams .team-name{display:inline-flex;align-items:center;gap:6px}.team-crest{width:22px;height:22px;object-fit:contain}.score-live{color:#b8f07b!important;font-weight:700}.manual-fixtures{margin-top:24px;border-top:1px solid #314339;padding-top:18px}.manual-fixtures summary{color:#9dbca7;cursor:pointer;margin-bottom:15px}.empty p{margin-top:12px;line-height:1.6}.official-row{min-width:0}@media(max-width:700px){.official-row{padding:15px 10px}.official-row .source-mark{display:none}.official-teams .team-name{font-size:12px}.team-crest{width:17px;height:17px}.league-pills{gap:5px}.league-pills button,.range-controls button{padding:8px 9px;font-size:12px}.range-controls{width:100%;justify-content:space-between}.schedule-meta{gap:12px}}

/* V2.1 首页双宣传图：电脑侧栏组合、手机纵向展示，完整保留二维码与文字 */
.hero{min-height:630px;height:auto;padding-top:65px;padding-bottom:65px;padding-right:590px;overflow:visible}
.hero>h1{font-size:clamp(46px,5.2vw,72px)}
.hero-side.hero-promotions{position:absolute;right:0;top:50%;transform:translateY(-50%);width:555px;height:540px;opacity:1;display:flex;align-items:center;justify-content:center;gap:15px;z-index:2}
.promo-card{margin:0;background:#17221d;border:1px solid #304a37;border-radius:14px;padding:7px;box-shadow:0 18px 48px #0006;overflow:hidden;min-width:0}
.promo-card img{display:block;width:100%;height:100%;object-fit:contain;border-radius:9px;background:#eef4f5}
.promo-main{width:288px;height:535px;flex:0 0 auto}
.promo-secondary{width:250px;max-height:350px;height:auto;flex:0 0 auto;align-self:center}
.promo-secondary img{height:auto;aspect-ratio:681/607}
@media(max-width:1100px){.hero{padding-right:50%;}.hero-side.hero-promotions{width:49%;height:auto;gap:8px}.promo-main{width:53%;height:auto}.promo-main img{height:auto;aspect-ratio:702/1280}.promo-secondary{width:45%;height:auto;padding:5px}}
@media(max-width:780px){.hero{padding:48px 0 45px;min-height:0}.hero-side.hero-promotions{position:static;transform:none;width:100%;height:auto;opacity:1;justify-content:center;margin-top:35px;gap:12px}.promo-main{width:min(52%,310px)}.promo-secondary{width:min(44%,270px)}.hero>h1{font-size:clamp(42px,7vw,60px)}}
@media(max-width:520px){.hero{padding:36px 0}.hero-side.hero-promotions{align-items:center;gap:9px;margin-top:26px}.promo-card{padding:4px;border-radius:9px}.promo-card img{border-radius:6px}.promo-main{width:54%}.promo-secondary{width:43%}.hero>h1{font-size:46px}}

/* Camera streaming and guest chat */
.interact-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:20px}.interact-video,.chat-panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}.interact-header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:15px}.interact-header span{font-size:12px;color:var(--mint)}.interact-screen{background:#050807;aspect-ratio:16/9;position:relative;display:grid;place-items:center}.interact-screen video{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:black}.interact-screen #roomPlaceholder{position:relative;text-align:center;color:#bcd1bd}.interact-screen #roomPlaceholder .play-ring{margin:auto}.interact-tools{display:flex;align-items:center;gap:12px;padding:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.studio{padding:20px;border-top:1px solid var(--line)}.studio h3{margin:0 0 8px}.studio p{font-size:13px;line-height:1.8;color:var(--muted)}.studio-buttons{display:flex;flex-wrap:wrap;gap:9px}.studio-buttons button{padding:10px}.file-label{display:block;font-size:13px;margin-top:15px}.file-label input{display:block;margin-top:8px;max-width:100%}.chat-panel{display:flex;flex-direction:column;padding:16px;min-height:460px}.name-box,.chat-composer{display:flex;gap:7px;align-items:flex-end}.name-box label{flex:1;color:var(--muted);font-size:12px}.name-box input,.chat-composer input{display:block;width:100%;padding:11px;background:#101a14;border:1px solid #3c4b41;color:white;border-radius:7px;min-width:0}.name-box button,.chat-composer button{padding:11px 14px}.chat-messages{flex:1;max-height:365px;min-height:200px;overflow:auto;margin:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}.chat-message{padding:8px 0;word-break:break-word;font-size:13px}.chat-message b{color:var(--mint);margin-right:7px}.chat-message small{color:var(--muted);margin-left:5px}.chat-message .remove-chat{float:right;background:none;color:#ec9b9b;border:0;font-size:11px}.moderation{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.moderation>div{max-height:150px;overflow:auto}.visitor-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:12px}.visitor-row button{background:#2b3e30;color:#fff;border:0;border-radius:4px;padding:5px 9px}.hidden{display:none!important}@media(max-width:790px){.interact-layout{grid-template-columns:1fr}.chat-panel{min-height:390px}.interact-header{padding:12px}.studio-buttons button{flex:1}}

/* V3.1.1 首页右侧单张海报铺满展示区（保持左侧栏目与其他功能不变） */
.hero{min-height:680px;padding-right: min(51%, 610px);overflow:visible}
.hero-side.hero-promotions{position:absolute;right:0;top:50%;transform:translateY(-50%);width:48%;height:630px;display:block;opacity:1;z-index:2}
.hero-promotions .promo-main{display:block;width:100%;height:100%;margin:0;padding:0;border-radius:15px;overflow:hidden;border:1px solid #304a37}
.hero-promotions .promo-main img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;border-radius:0;background:transparent}
.hero-promotions .promo-secondary{display:none!important}
@media(max-width:1100px){.hero{padding-right:51%}.hero-side.hero-promotions{width:48%;height:600px}}
@media(max-width:780px){.hero{min-height:0;padding:48px 0 45px}.hero-side.hero-promotions{position:static;transform:none;width:100%;height:auto;margin-top:32px}.hero-promotions .promo-main{width:min(100%,430px);height:auto;margin:0 auto;aspect-ratio:4/5}.hero-promotions .promo-main img{width:100%;height:100%;object-fit:cover}}
@media(max-width:520px){.hero{padding:36px 0}.hero-side.hero-promotions{margin-top:26px}.hero-promotions .promo-main{width:100%;border-radius:10px}}

/* V3.2: independent administrator entry. Public page stays a viewer experience. */
body:not(.admin-route) #adminBtn { display: none !important; }
body:not(.admin-route) #studio,
body:not(.admin-route) #moderation { display: none !important; }
.admin-route .hero,
.admin-route #live,
.admin-route #schedule,
.admin-route #insights { display:none !important; }
.admin-route #creatorLive { padding-top:32px; }
.admin-route header.head nav { display:flex; }


/* V3.2.1: show the ENTIRE promotional poster at a smaller size. */
@media (min-width:781px) {
  .hero { min-height:590px; padding-right:45%; }
  .hero-side.hero-promotions {
    width:min(37%, 390px);
    height:auto;
    aspect-ratio:4 / 5;
    right:0;
    top:50%;
    transform:translateY(-50%);
  }
  .hero-promotions .promo-main { width:100%; height:100%; }
}
.hero-promotions .promo-main img {
  width:100%; height:100%; object-fit:contain;
  object-position:center center;
  background:#0d1412;
}
@media (max-width:780px) {
  .hero-side.hero-promotions { width:100%; height:auto; transform:none; }
  .hero-promotions .promo-main {
    width:min(100%,340px);
    height:auto;
    aspect-ratio:4 / 5;
    margin:0 auto;
  }
  .hero-promotions .promo-main img { object-fit:contain; }
}

/* V3.3: integrate camera and visitor chat into the existing live channel */
.camera-stage{background:#080e0b;border-top:1px solid var(--line)}
.camera-stage .interact-screen{aspect-ratio:16/9}
.channel-extras{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}
.channel-extras .chat-panel,.channel-extras .studio{background:var(--panel);border:1px solid var(--line);border-radius:13px;min-height:0}
.channel-extras .studio{padding:20px}
.channel-extras .chat-panel{min-height:330px}
@media(max-width:790px){.channel-extras{grid-template-columns:1fr}}

/* V3.4: admin-integrated studio + image/text recommendations */
.section-hidden{display:none!important}#studioMount .studio{margin:16px 0;padding:18px;border:1px solid #415c45;border-radius:10px;background:#101a14}#studioMount .studio h3{margin:0 0 12px}#studioMount .studio-buttons{display:flex;flex-wrap:wrap;gap:9px}#studioMount .file-label{display:block;margin-top:13px}#studioMount input[type=file],.tip-upload input[type=file]{width:100%;font-size:13px}.tip-image{max-width:100%;height:auto;max-height:460px;object-fit:contain;border-radius:8px;margin:10px 0 14px;align-self:center}.tip p{white-space:pre-line}.tip-image-preview{display:block;max-width:200px;max-height:220px;object-fit:contain;margin:8px 0;border-radius:8px}.tip-upload{min-width:0;overflow-wrap:anywhere}.tip-upload input[type=text]{font-size:12px}#studioMount .studio.hidden{display:none!important}

/* V3.5 microphone and shared live artwork */
#player,.camera-stage{position:relative}.channel-broadcast-overlay{position:absolute;right:14px;bottom:14px;width:auto;max-width:min(38%,300px);max-height:48%;object-fit:contain;z-index:8;pointer-events:none;filter:drop-shadow(0 2px 8px #0009)}.studio-volumes{display:grid;gap:12px;margin:16px 0}.studio-volumes label{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#d5e8d8}.studio-volumes input{width:min(100%,350px);accent-color:#adf27b}.studio-volumes output{min-width:45px;color:#b3f17f}#player:has(.channel-broadcast-overlay){min-height:200px}

/* V3.6 configurable synchronized viewer overlay */
#player,#cameraStage{position:relative;isolation:isolate}
#player .channel-broadcast-overlay,#cameraStage .channel-broadcast-overlay{position:absolute;display:block;box-sizing:border-box;max-width:100%;max-height:95%;width:55%;height:auto;object-fit:contain;pointer-events:none;z-index:50;filter:drop-shadow(0 3px 8px #0009);inset:auto;transform:none;right:2%;bottom:2%;left:auto;top:auto}
.channel-broadcast-overlay[data-position="top-left"]{top:2%!important;left:2%!important;right:auto!important;bottom:auto!important;transform:none!important}
.channel-broadcast-overlay[data-position="top-center"]{top:2%!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translateX(-50%)!important}
.channel-broadcast-overlay[data-position="top-right"]{top:2%!important;right:2%!important;left:auto!important;bottom:auto!important;transform:none!important}
.channel-broadcast-overlay[data-position="middle-left"]{top:50%!important;left:2%!important;right:auto!important;bottom:auto!important;transform:translateY(-50%)!important}
.channel-broadcast-overlay[data-position="center"]{top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important}
.channel-broadcast-overlay[data-position="middle-right"]{top:50%!important;right:2%!important;left:auto!important;bottom:auto!important;transform:translateY(-50%)!important}
.channel-broadcast-overlay[data-position="bottom-left"]{bottom:2%!important;left:2%!important;right:auto!important;top:auto!important;transform:none!important}
.channel-broadcast-overlay[data-position="bottom-center"]{bottom:2%!important;left:50%!important;right:auto!important;top:auto!important;transform:translateX(-50%)!important}
.channel-broadcast-overlay[data-position="bottom-right"]{bottom:2%!important;right:2%!important;left:auto!important;top:auto!important;transform:none!important}
.overlay-layout-controls{display:grid;gap:14px;margin:14px 0;padding:14px;border:1px solid #345044;border-radius:12px}
.overlay-layout-controls label{display:grid;gap:8px;color:#d5e8d8}
.overlay-layout-controls input[type=range]{width:100%;accent-color:#adf27b}
.overlay-layout-controls select{width:100%;padding:10px;background:#0e1a14;color:#e7f3e9;border:1px solid #45664c;border-radius:8px}
