:root{
  --bg:#eef3f9;
  --panel:#ffffff;
  --line:#d8e2ee;
  --line-soft:#e8eef6;
  --text:#1f2d3d;
  --muted:#66788a;
  --blue:#1f6fb2;
  --blue-deep:#1d4f7d;
  --blue-light:#2d8ad6;
  --red:#ef5350;
  --red-dark:#d63b3b;
  --shadow:0 6px 18px rgba(18,52,86,.08);
  --radius:12px;
  --radius-sm:8px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang HK","PingFang TC","Microsoft JhengHei","Noto Sans TC",Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.7;
  min-width:320px;
}

a{
  color:var(--blue);
  text-decoration:none;
}
a:hover{opacity:.92}

img{
  max-width:100%;
  display:block;
}

.header{
  background:linear-gradient(90deg,var(--blue-deep),var(--blue-light));
  color:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}

.head{
  max-width:1500px;
  margin:0 auto;
  padding:12px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.logo{
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff;
  min-width:0;
}
.logo:hover{color:#fff}

.logo-img{
  width:42px;
  height:42px;
  object-fit:contain;
  border-radius:10px;
  background:#fff;
  padding:3px;
  box-shadow:0 2px 8px rgba(0,0,0,.10);
  flex:0 0 42px;
}

.logo-text{
  min-width:0;
}

.logo-text h1,
.logo-text .site-name{
  margin:0;
  font-size:18px;
  line-height:1.25;
  color:#fff;
  font-weight:800;
}

.logo-text p{
  margin:3px 0 0;
  font-size:12px;
  color:rgba(255,255,255,.92);
  line-height:1.5;
}

.date{
  flex:0 0 auto;
  font-size:14px;
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  padding:9px 12px;
  border-radius:10px;
  white-space:nowrap;
}

.wrapper{
  max-width:1500px;
  margin:0 auto;
  padding:14px;
}

.container{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:16px;
  align-items:start;
}

.side{min-width:0}
main{min-width:0}

.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  margin-bottom:16px;
}

.panel .title{
  margin:0;
  padding:15px 18px;
  font-size:20px;
  font-weight:800;
  color:#23384d;
  border-left:5px solid #2d8ad6;
  background:#f7fbff;
  border-bottom:1px solid var(--line-soft);
}

.panel .bd{
  padding:18px;
}

.side .panel .bd h2{
  margin:0 0 16px;
  font-size:22px;
  line-height:1.55;
  color:#1d2e44;
  text-align:center;
  font-weight:800;
}

.side ul{
  list-style:none;
  margin:0;
  padding:0;
}

.side li{
  margin:0 0 10px;
}

.side li a{
  display:block;
  padding:14px 14px;
  background:#f7f9fc;
  border:1px solid var(--line-soft);
  color:#1f2d3d;
  font-weight:700;
  transition:.2s ease;
}

.side li a:hover{
  background:#eef6ff;
  border-color:#c8dcf3;
}

.side li.active a{
  background:var(--red);
  color:#fff;
  border-color:var(--red);
}

.ad{
  display:block;
  margin-top:14px;
  padding:18px;
  border-radius:var(--radius-sm);
  background:linear-gradient(180deg,#f7fbff,#eef6ff);
  border:1px solid #d9e7f7;
  color:#27415b;
}

.ad b{
  display:block;
  font-size:18px;
  margin-bottom:8px;
  color:#214568;
}

.ad span{
  display:block;
  color:#5f7389;
  line-height:1.75;
}

.top-links{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  border:1px solid var(--line);
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow);
  margin-bottom:16px;
}

.top-links a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:12px 14px;
  text-align:center;
  font-weight:800;
  color:#24384f;
  border-right:1px solid var(--line);
  background:#fff;
}

.top-links a:last-child{border-right:none}

.top-links a.active{
  background:var(--red);
  color:#fff;
}

.banner{
  background:linear-gradient(135deg,rgba(21,89,145,.88),rgba(42,150,214,.78));
  border-radius:0;
  padding:26px 22px;
  color:#fff;
  box-shadow:var(--shadow);
  margin-bottom:16px;
}

.banner h2{
  margin:0 0 10px;
  font-size:24px;
  font-weight:800;
  color:#fff;
}

.banner p{
  margin:0;
  font-size:16px;
  color:rgba(255,255,255,.96);
  line-height:1.9;
}

.score-frame{
  width:100%;
  overflow:hidden;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#fff;
}

.score-frame iframe{
  width:100%;
  min-height:980px;
  border:0;
  display:block;
  background:#fff;
}

.panel .bd p{
  margin:0 0 14px;
  font-size:16px;
  color:#33485d;
  line-height:1.95;
}

.panel .bd p:last-child{margin-bottom:0}

.panel .bd h3{
  margin:0 0 8px;
  font-size:18px;
  color:#1f3550;
  font-weight:800;
}

.panel .bd h3:not(:first-child){
  margin-top:20px;
}

.hotwords{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.hotwords a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 16px;
  background:#f7fbff;
  border:1px solid #d8e7f5;
  border-radius:999px;
  color:#24507b;
  font-weight:700;
  transition:.2s ease;
}

.hotwords a:hover{
  background:#eef6ff;
  border-color:#bfd7ef;
}

.footer{
  max-width:1500px;
  margin:0 auto;
  padding:18px 14px 28px;
  color:#6c7e92;
  font-size:14px;
}

/* 广告位 */
.banner-ad .bd{padding:14px}
.ad-slot{width:100%}
.ad-slot a{display:block;width:100%}
.ad-slot img{
  width:100%;
  height:auto;
  display:block;
  border-radius:12px;
  object-fit:cover;
  background:#f4f7fb;
}
.banner-ad .ad-slot img{
  aspect-ratio:970 / 120;
  min-height:120px;
}
.side .ad-slot{margin-top:16px}
.side .ad-slot img{
  aspect-ratio:300 / 250;
  min-height:250px;
}

/* about / contact 之类正文页 */
.page-simple .panel .bd p{
  max-width:1000px;
}

/* 手机版结构 */
.mobile-page .container{
  grid-template-columns:1fr;
}
.mobile-page .top-links{
  grid-template-columns:repeat(4,1fr);
}
.mobile-page .score-frame iframe{
  min-height:760px;
}

/* 平板 */
@media (max-width:1100px){
  .container{
    grid-template-columns:1fr;
  }

  .side{order:2}
  main{order:1}

  .side .panel .bd h2{
    text-align:left;
  }

  .score-frame iframe{
    min-height:880px;
  }
}

/* 手机 */
@media (max-width:768px){
  .head{
    flex-direction:column;
    align-items:flex-start;
  }

  .date{
    width:100%;
    white-space:normal;
  }

  .logo{
    align-items:flex-start;
  }

  .logo-img{
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .logo-text h1,
  .logo-text .site-name{
    font-size:18px;
  }

  .logo-text p{
    font-size:12px;
  }

  .wrapper{
    padding:10px;
  }

  .panel .title{
    font-size:18px;
    padding:14px 14px;
  }

  .panel .bd{
    padding:14px;
  }

  .top-links{
    grid-template-columns:1fr 1fr;
  }

  .top-links a{
    min-height:48px;
    font-size:14px;
    padding:10px;
    border-bottom:1px solid var(--line);
  }

  .top-links a:nth-child(2n){
    border-right:none;
  }

  .banner{
    padding:20px 16px;
  }

  .banner h2{
    font-size:22px;
  }

  .banner p{
    font-size:15px;
    line-height:1.85;
  }

  .score-frame iframe{
    min-height:680px;
  }

  .banner-ad .ad-slot img{
    aspect-ratio:16 / 5;
    min-height:90px;
  }

  .side .ad-slot img{
    aspect-ratio:16 / 10;
    min-height:180px;
  }

  .hotwords{
    gap:10px;
  }

  .hotwords a{
    width:100%;
    border-radius:10px;
    justify-content:flex-start;
  }

  .mobile-page .top-links{
    grid-template-columns:1fr 1fr;
  }

  .mobile-page .score-frame iframe{
    min-height:620px;
  }
}

@media (max-width:480px){
  .head{
    padding:12px;
  }

  .logo{
    gap:10px;
  }

  .logo-img{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .logo-text h1,
  .logo-text .site-name{
    font-size:17px;
  }

  .date{
    font-size:13px;
    padding:8px 10px;
  }

  .panel .bd p{
    font-size:15px;
  }

  .score-frame iframe{
    min-height:580px;
  }
}

/* =========================
   51DZQ 前端防复制辅助样式（无弹窗版）
   仅用于提高复制/拖拽门槛，不影响输入框
   ========================= */

/* 页面默认禁止文本选择、长按菜单 */
body{
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

/* 输入框 / 文本域 / 可编辑区域 保持可选中、可输入 */
input,
textarea,
[contenteditable="true"]{
  -webkit-user-select:text;
  -moz-user-select:text;
  -ms-user-select:text;
  user-select:text;
}

/* 图片禁止拖拽、禁止选中 */
img{
  -webkit-user-drag:none;
  user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}

/* 如果你后面有想保留可选中的区域，可以手动加这个类 */
.allow-select,
.allow-select *{
  -webkit-user-select:text !important;
  -moz-user-select:text !important;
  -ms-user-select:text !important;
  user-select:text !important;
}

/* =========================
   防复制 / 防拖拽基础限制
   ========================= */
body{
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

input,
textarea,
[contenteditable="true"]{
  -webkit-user-select:text;
  -moz-user-select:text;
  -ms-user-select:text;
  user-select:text;
}

img{
  -webkit-user-drag:none;
  user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}


/* =========================
   预测栏目 / 赛前分析模块
   ========================= */
.predict-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.predict-card{
  background:#fff;
  border:1px solid #e6ecf5;
  border-radius:14px;
  padding:16px;
  box-shadow:0 6px 18px rgba(16,24,40,.04);
}

.predict-card h3{
  margin:10px 0 8px;
  font-size:18px;
  line-height:1.5;
}

.predict-card h3 a{
  color:#12233d;
  text-decoration:none;
}

.predict-card h3 a:hover{
  color:#0b63ce;
}

.predict-card p{
  margin:0;
  color:#4a5a70;
  line-height:1.8;
  font-size:14px;
}

.predict-league{
  display:inline-block;
  padding:5px 10px;
  border-radius:999px;
  background:#eef5ff;
  color:#0b63ce;
  font-size:12px;
  font-weight:700;
}

.predict-meta{
  margin-top:12px;
  font-size:12px;
  color:#7b8794;
}

.predict-list{
  display:grid;
  gap:16px;
}

.predict-item{
  border:1px solid #e6ecf5;
  border-radius:14px;
  padding:16px;
  background:#fff;
}

.predict-item h3{
  margin:0 0 8px;
  font-size:18px;
  line-height:1.5;
}

.predict-item h3 a{
  color:#12233d;
  text-decoration:none;
}

.predict-item h3 a:hover{
  color:#0b63ce;
}

.predict-item p{
  margin:0;
  color:#4a5a70;
  line-height:1.8;
}

.article-panel .title{
  margin-bottom:0;
}

.article-content{
  line-height:1.9;
  color:#263548;
  font-size:15px;
}

.article-content h3{
  margin:26px 0 10px;
  font-size:20px;
  color:#12233d;
}

.article-content p{
  margin:0 0 14px;
}

.match-box{
  border:1px solid #dbe7f5;
  background:#f7fbff;
  border-radius:14px;
  padding:14px 16px;
  margin-bottom:18px;
}

.match-row{
  padding:6px 0;
  font-size:14px;
  color:#2b3b52;
  border-bottom:1px dashed #d7e3f1;
}

.match-row:last-child{
  border-bottom:none;
}

.article-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}

.btn-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 16px;
  border-radius:10px;
  background:#0b63ce;
  color:#fff;
  text-decoration:none;
  font-weight:700;
}

.btn-link:hover{
  opacity:.92;
}

@media (max-width: 980px){
  .predict-grid{
    grid-template-columns:1fr;
  }
}

/* =========================
   第三方体育数据组件预留区
   ========================= */
.sports-widget{
  margin-top: 14px;
}

.sports-box{
  border:1px solid #dbe7f5;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 6px 18px rgba(16,24,40,.04);
}

.sports-box--placeholder{
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
}

.sports-box-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid #e8eef6;
}

.sports-box-head strong{
  font-size:16px;
  color:#12233d;
}

.sports-badge{
  display:inline-block;
  padding:5px 10px;
  border-radius:999px;
  background:#eef5ff;
  color:#0b63ce;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}

.sports-box-body{
  padding:16px;
}

.sports-box-body p{
  margin:0 0 12px;
  color:#4a5a70;
  line-height:1.8;
  font-size:14px;
}

.sports-meta{
  margin:0;
  padding-left:18px;
  color:#2b3b52;
  line-height:1.9;
  font-size:14px;
}

/* =========================
   预测栏目 JSON 数据展示
   ========================= */
.fixture-list{
  display:grid;
  gap:12px;
}

.fixture-card{
  border:1px solid #e6ecf5;
  border-radius:12px;
  padding:12px 14px;
  background:#fff;
}

.fixture-league{
  font-size:12px;
  color:#0b63ce;
  font-weight:700;
  margin-bottom:6px;
}

.fixture-teams{
  font-size:16px;
  color:#12233d;
  font-weight:700;
  line-height:1.5;
}

.fixture-teams span{
  color:#7b8794;
  font-weight:500;
  margin:0 6px;
}

.fixture-time{
  margin-top:6px;
  font-size:13px;
  color:#66758a;
}

.table-wrap{
  overflow-x:auto;
}

.rank-table{
  width:100%;
  border-collapse:collapse;
  min-width:520px;
}

.rank-table th,
.rank-table td{
  border-bottom:1px solid #e8eef6;
  padding:10px 8px;
  text-align:left;
  font-size:14px;
}

.rank-table th{
  color:#12233d;
  background:#f7fbff;
}

.match-data-box{
  display:grid;
  gap:10px;
}

.match-data-row{
  font-size:14px;
  color:#2b3b52;
  line-height:1.8;
}