:root{
  --sp-bg:#f4f6f9;--sp-card:#fff;--sp-ink:#0f172a;--sp-ink2:#334155;--sp-muted:#64748b;
  --sp-line:#e2e8f0;--sp-accent:#f97316;--sp-accent2:#0ea5e9;--sp-ok:#16a34a;--sp-radius:12px;
}
*{box-sizing:border-box}
body.sp-body{margin:0;background:var(--sp-bg);color:var(--sp-ink);font:15px/1.7 "PingFang SC","Microsoft YaHei",Arial,sans-serif}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.sp-wrap{width:min(1200px,calc(100% - 28px));margin:0 auto}

/* header */
.sp-header{background:linear-gradient(120deg,#0b1220,#17233a);color:#fff;position:relative;z-index:20}
.sp-topbar{display:flex;align-items:center;gap:20px;min-height:68px}
.sp-logo{display:flex;align-items:center;gap:9px;font-weight:900}
.sp-logo b{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#f97316,#fb923c);color:#1a1207;font-size:15px}
.sp-logo span{font-size:17px;letter-spacing:.02em}
.sp-nav{display:flex;gap:2px;flex:1;flex-wrap:wrap}
.sp-nav a{padding:8px 11px;border-radius:7px;color:#c7d2e3;font-size:13px;font-weight:700}
.sp-nav a:hover,.sp-nav a.on{background:var(--sp-accent);color:#1a1207}
.sp-live-chip{font-size:11px;color:#94a3b8;border:1px solid #334155;border-radius:99px;padding:4px 10px;white-space:nowrap}
.sp-menu{display:none;width:38px;height:38px;border:0;border-radius:9px;background:#1e293b;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.sp-menu i{display:block;width:18px;height:2px;background:#fff;border-radius:2px}
.sp-subbar{background:#0f172a;border-top:1px solid #1e293b}
.sp-subbar .sp-wrap{display:flex;gap:4px;overflow:auto;min-height:44px;align-items:center;scrollbar-width:none}
.sp-subbar .sp-wrap::-webkit-scrollbar{display:none}
.sp-subbar a{color:#94a3b8;font-size:12.5px;padding:7px 10px;border-radius:7px;white-space:nowrap}
.sp-subbar a.on,.sp-subbar a:hover{background:#1e293b;color:#fff}

/* drawer */
.sp-drawer{display:none;position:fixed;inset:0;z-index:999}
.sp-drawer-mask{position:absolute;inset:0;background:rgba(2,6,23,.6)}
.sp-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:80%;max-width:320px;background:#0b1220;color:#fff;overflow:auto;padding:18px}
.sp-drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sp-drawer-head button{background:none;border:1px solid #334155;color:#fff;width:34px;height:34px;border-radius:8px;font-size:20px}
.sp-drawer-panel nav{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sp-drawer-panel nav a{background:#141d2f;border:1px solid #24314a;border-radius:8px;padding:9px;text-align:center;font-size:13px}
body.sp-drawer-open{overflow:hidden}
body.sp-drawer-open .sp-drawer{display:block}

/* main */
.sp-main{padding:18px 0 40px}
.sp-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;background:linear-gradient(120deg,#fff,#eef4fb);border:1px solid var(--sp-line);border-radius:var(--sp-radius);padding:22px;margin-bottom:16px;align-items:center}
.sp-hero h1{margin:0 0 8px;font-size:clamp(22px,3vw,30px)}
.sp-hero p{margin:0 0 12px;color:var(--sp-muted);font-size:14px}
.sp-hero aside{background:#0b1220;color:#fff;border-radius:12px;padding:16px;text-align:center}
.sp-hero aside b{display:block;font-size:32px;color:var(--sp-accent)}
.sp-hero aside span,.sp-hero aside i{display:block;font-size:12px;color:#94a3b8;font-style:normal}
.sp-hero-nav{display:flex;gap:8px;flex-wrap:wrap}
.sp-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;border-radius:8px;background:var(--sp-accent);color:#1a1207!important;font-weight:900;font-size:13px}
.sp-btn.ghost{background:#fff;border:1px solid var(--sp-line);color:var(--sp-ink)!important}
.sp-btn.live{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff!important}

.sp-panel{background:var(--sp-card);border:1px solid var(--sp-line);border-radius:var(--sp-radius);padding:18px;margin-bottom:14px}
.sp-panel h2{font-size:18px;margin:0 0 12px}
.sp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.sp-panel-head h2{margin:0}
.sp-updated{padding-left: 10px;font-size: 13px;font-weight: lighter;color: #7e7575;}
.sp-panel-head a{font-size:12px;color:var(--sp-accent2);font-weight:800}
.sp-muted{font-size:12px;color:var(--sp-muted)}
.sp-more{display:flex;gap:10px;margin-top:12px}
.sp-more a{font-size:12.5px;color:var(--sp-accent2);font-weight:800}
/* 介绍正文 */
.sp-intro.sp-collapse > .sp-collapse-body {
    font-size: 14px;
    line-height: 1.8;
}

/* 收起状态：整个正文仅显示前 3 行 */
.sp-intro.sp-collapse:not(.is-open) > .sp-collapse-body {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    height: auto;
    max-height: none;
}

/* 收起时取消段落间距 */
.sp-intro.sp-collapse:not(.is-open) > .sp-collapse-body > p {
    margin: 0;
}

/* 展开状态：显示全部正文 */
.sp-intro.sp-collapse.is-open > .sp-collapse-body {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: none;
    overflow: visible;
    height: auto;
    max-height: none;
}

/* 展开时恢复段落间距 */
.sp-intro.sp-collapse.is-open > .sp-collapse-body > p {
    margin: 0 0 12px;
}

.sp-intro.sp-collapse.is-open > .sp-collapse-body > p:last-child {
    margin-bottom: 0;
}

/* 展开 / 收起按钮 */
.sp-intro > .sp-collapse-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    padding: 5px 12px;
    border: 1px solid var(--sp-line);
    border-radius: 6px;
    background: #f8fafc;
    color: var(--sp-accent2);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
    cursor: pointer;
}

.sp-intro > .sp-collapse-toggle i {
    font-style: normal;
}
/* filter */
.sp-filter{display:flex;gap:6px;margin-bottom:10px}
.sp-filter button{border:1px solid var(--sp-line);background:#fff;border-radius:99px;padding:6px 16px;font-size:12.5px;font-weight:800;color:var(--sp-ink2);cursor:pointer}
.sp-filter button.on{background:var(--sp-ink);border-color:var(--sp-ink);color:#fff}

/* match list */
.sp-match-list{display:flex;flex-direction:column}
.sp-match-wrap[data-sport]{display:block}
.sp-match{display:grid;grid-template-columns:74px minmax(0,1fr) 52px minmax(0,1fr) 86px 92px;align-items:center;gap:10px;padding:11px 6px;border-bottom:1px solid #f1f5f9}
.sp-match:hover{background:#f8fafc}
.sp-match-time b{display:block;font-size:11px;color:var(--sp-muted);font-weight:700}
.sp-match-time i{font-style:normal;font-size:13px;font-weight:900}
.sp-match-team{font-weight:800;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-match-team.is-away{text-align:left}
.sp-match-score{text-align:center;font-weight:900;color:var(--sp-accent2);background:#f1f5f9;border-radius:6px;padding:3px 0;font-size:12.5px}
.sp-match-league{font-size:11px;color:var(--sp-muted);background:#f8fafc;border:1px solid var(--sp-line);border-radius:99px;text-align:center;padding:2px 0}
.sp-match-go{text-align:center;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border-radius:7px;padding:7px 0;font-size:12px;font-weight:900}
.sp-empty{padding:26px;text-align:center;color:var(--sp-muted);background:#f8fafc;border:1px dashed var(--sp-line);border-radius:10px}

/* league grid */
.sp-league-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sp-league-group h3{font-size:13px;color:var(--sp-muted);margin:0 0 8px}
.sp-league-group a{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border:1px solid var(--sp-line);border-radius:8px;margin-bottom:6px;background:#fbfdff}
.sp-league-group a b{font-size:13px}
.sp-league-group a span{font-size:11px;color:var(--sp-muted)}

/* team grid */
.sp-team-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.sp-team-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--sp-line);border-radius:10px;background:#fbfdff;text-align:center}
.sp-team-grid img{width:44px;height:44px;object-fit:contain}
.sp-team-grid span{font-size:12px;font-weight:700}

/* news / media */
.sp-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sp-news{display:block;border:1px solid var(--sp-line);border-radius:10px;padding:12px;background:#fbfdff}
.sp-news-tag{font-size:11px;color:var(--sp-accent);font-weight:900}
.sp-news h3{margin:4px 0 6px;font-size:14px;line-height:1.5}
.sp-news p{margin:0 0 6px;font-size:12px;color:var(--sp-muted)}
.sp-news time{font-size:11px;color:#94a3b8}
.sp-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sp-media{position:relative;border:1px solid var(--sp-line);border-radius:10px;padding:12px;background:#0b1220;color:#fff;display:block}
.sp-media-play{position:absolute;right:10px;top:10px;width:24px;height:24px;border-radius:50%;background:var(--sp-accent);color:#1a1207;display:grid;place-items:center;font-size:10px}
.sp-media b{display:block;font-size:13px;line-height:1.5;margin-bottom:6px;padding-right:26px}
.sp-media time{font-size:11px;color:#94a3b8}

/* league page */
.sp-crumb{font-size:12px;color:var(--sp-muted);margin-bottom:10px}
.sp-crumb a{color:var(--sp-accent2);padding-left:10px;}
.sp-crumb em{font-style:normal;color:var(--sp-ink2)}
.sp-league-head{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;background:#fff;border:1px solid var(--sp-line);border-left:6px solid var(--sp-accent);border-radius:var(--sp-radius);padding:20px;margin-bottom:14px}
.sp-league-title span{font-size:11px;color:var(--sp-muted);font-weight:900;letter-spacing:.08em}
.sp-league-title h1{margin:4px 0 8px;font-size:clamp(24px,3.4vw,32px)}
.sp-league-title p{margin:0;color:var(--sp-ink2);font-size:13.5px;line-height:1.9}
.sp-league-meta{display:grid;grid-template-columns:1fr;gap:8px}
.sp-league-meta div{background:#f8fafc;border:1px solid var(--sp-line);border-radius:8px;padding:7px 10px;display:flex;justify-content:space-between;align-items:center}
.sp-league-meta i{font-style:normal;font-size:11px;color:var(--sp-muted)}
.sp-league-meta b{font-size:13px}
.sp-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px;padding-bottom:2px;scrollbar-width:none}
.sp-tabs::-webkit-scrollbar{display:none}
.sp-tabs a{padding:8px 14px;border-radius:99px;background:#fff;border:1px solid var(--sp-line);font-size:12.5px;font-weight:800;color:var(--sp-ink2);white-space:nowrap}
.sp-tabs a.on,.sp-tabs a:hover{background:var(--sp-ink);border-color:var(--sp-ink);color:#fff}
.sp-page-head{margin-bottom:12px}
.sp-page-head h1{margin:0 0 6px;font-size:24px}
.sp-page-head p{margin:0;color:var(--sp-muted);font-size:13px}

/* table */
.sp-table-wrap{overflow:auto}
.sp-table{width:100%;border-collapse:collapse;font-size:12.5px}
.sp-table th{background:#f1f5f9;text-align:left;padding:8px;color:var(--sp-muted);font-size:11.5px}
.sp-table td{padding:8px;border-bottom:1px solid #f1f5f9}
.sp-table a{color:var(--sp-accent2);font-weight:700}
.sp-rank-card{margin-bottom:16px}
.sp-rank-card h2{font-size:15px;margin:0 0 8px}

/* champs */
.sp-champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sp-champs div{display:flex;justify-content:space-between;padding:8px 11px;background:#f8fafc;border:1px solid var(--sp-line);border-radius:8px;font-size:12.5px}

/* faq */
.sp-faq-list details{border-bottom:1px solid #f1f5f9;padding:8px 0}
.sp-faq-list summary{cursor:pointer;font-weight:800;font-size:13.5px}
.sp-faq-list p{margin:6px 0 0;color:var(--sp-muted);font-size:12.5px}

/* detail */
.sp-scoreboard{display:grid;grid-template-columns:1fr 180px 1fr;gap:14px;background:#0b1220;color:#fff;border-radius:var(--sp-radius);padding:22px;align-items:center;margin-bottom:14px}
.sp-sb-team{text-align:center}
.sp-sb-team img{width:72px;height:72px;object-fit:contain}
.sp-sb-team b{display:block;font-size:17px;margin-top:6px}
.sp-sb-mid{text-align:center;border-left:1px solid #1e293b;border-right:1px solid #1e293b}
.sp-sb-mid span{font-size:11px;color:#94a3b8}
.sp-sb-mid strong{display:block;font-size:28px;color:var(--sp-accent)}
.sp-sb-mid time{font-size:11px;color:#94a3b8}
.sp-watch{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--sp-line);border-radius:var(--sp-radius);padding:16px 18px;margin-bottom:14px}
.sp-watch h2{margin:0 0 4px;font-size:16px}
.sp-watch p{margin:0;color:var(--sp-muted);font-size:12.5px}
.sp-info p{color:var(--sp-ink2);font-size:13.5px;line-height:1.9;margin:0 0 12px}
.sp-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sp-info-grid div{background:#f8fafc;border:1px solid var(--sp-line);border-radius:8px;padding:8px 11px}
.sp-info-grid i{font-style:normal;font-size:11px;color:var(--sp-muted);display:block}
.sp-info-grid b{font-size:13px}
.sp-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.sp-tags a,.sp-tags span{border:1px solid var(--sp-line);background:#f8fafc;border-radius:99px;padding:4px 12px;font-size:12px;font-weight:700}

/* team */
.sp-team-head{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--sp-line);border-radius:var(--sp-radius);padding:20px;margin-bottom:14px}
.sp-team-head img{width:84px;height:84px;object-fit:contain}
.sp-team-head h1{margin:2px 0;font-size:26px}
.sp-team-head span{font-size:11px;color:var(--sp-muted);font-weight:900}
.sp-team-head p{margin:0;color:var(--sp-muted);font-size:12.5px}

/* article */
.sp-article{background:#fff;border:1px solid var(--sp-line);border-radius:var(--sp-radius);padding:22px;margin-bottom:14px}
.sp-article h1{font-size:23px;margin:0 0 8px;line-height:1.45}
.sp-meta{display:flex;gap:14px;font-size:12px;color:var(--sp-muted);margin-bottom:14px}
.sp-rich{font-size:14.5px;line-height:2;color:#1f2937}
.sp-rich h3{font-size:16.5px;margin:18px 0 8px}
.sp-rich p{margin:0 0 12px}
.sp-video{position:relative;padding-top:56.25%;background:#000;border-radius:10px;overflow:hidden;margin-bottom:14px}
.sp-video iframe,.sp-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.sp-video-note{padding:16px;background:#f8fafc;border:1px dashed var(--sp-line);border-radius:10px;color:var(--sp-muted);font-size:13px;margin-bottom:14px}

/* pager */
.sp-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;font-size:12.5px;color:var(--sp-muted);flex-wrap:wrap}
.sp-pager div{display:flex;gap:5px}
.sp-pager a,.sp-pager b{border:1px solid var(--sp-line);border-radius:6px;padding:5px 10px;background:#fff}
.sp-pager b{background:var(--sp-ink);color:#fff;border-color:var(--sp-ink)}

/* footer */
.sp-footer{background:#0b1220;color:#94a3b8;padding:26px 0 16px;font-size:12.5px}
.sp-foot-grid{display:grid;grid-template-columns:1.4fr 1fr .8fr 1fr;gap:20px}
.sp-footer b{color:#fff;display:block;margin-bottom:6px}
.sp-footer p{margin:0;line-height:1.9}
.sp-footer a{color:#94a3b8;margin-right:8px}
.sp-copy,.sp-disc{border-top:1px solid #1e293b;margin:16px 0 0!important;padding-top:12px;color:#7c8ba1!important}
.sp-foot-bottom{margin-top:12px;color:#64748b;font-size:11.5px}

@media(max-width:980px){
  .sp-hero,.sp-league-head{grid-template-columns:1fr}
  .sp-league-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sp-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-foot-grid{grid-template-columns:1fr 1fr}
}
/* 仅调整 PC 端，保留现有手机端样式 */
@media (min-width: 769px) {
    .sp-match {
        display: grid;
        grid-template-columns: 80px 88px minmax(0, 1fr) 112px;
        grid-template-areas: "time league teams go";
        align-items: center;
        gap: 20px;
        padding: 16px 20px;
        border-bottom: 1px solid #f1f5f9;
    }

    .sp-match > .sp-match-time {
        grid-area: time;
        text-align: left;
        line-height: 1.6;
    }

    .sp-match-time b {
        font-size: 12px;
    }

    .sp-match-time i {
        font-size: 16px;
    }

    .sp-match > .sp-match-league {
        grid-area: league;
        justify-self: center;
        box-sizing: border-box;
        width: 72px;
        padding: 4px 10px;
        font-size: 12px;
        line-height: 1.5;
        white-space: nowrap;
    }

    /* 替换为实际的对阵容器类名 */
    .sp-match > .sp-match-teams {
        grid-area: teams;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        min-width: 0;
        width: 100%;
        text-align: center;
        font-size: 15px;
        font-weight: 800;
    }

    /* 对阵容器内有独立的主队、比分、客队时 */
    .sp-match-teams > .sp-match-team {
        flex: 1 1 0;
        min-width: 0;
        text-align: right;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .sp-match-teams > .sp-match-team.is-away {
        text-align: left;
    }

    .sp-match-teams > .sp-match-score {
        flex: 0 0 52px;
        box-sizing: border-box;
        text-align: center;
        padding: 5px 0;
        font-size: 13px;
    }

    .sp-match > .sp-match-go {
        grid-area: go;
        justify-self: end;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 112px;
        min-height: 38px;
        padding: 8px 12px;
        font-size: 13px;
        line-height: 1.4;
        white-space: nowrap;
        text-decoration: none;
    }
}
@media(max-width:680px){
  .sp-nav{display:none}
  .sp-menu{display:flex;margin-left:auto}
  .sp-live-chip{display:none}
  .sp-hero{padding:16px}
  .sp-panel{padding:14px}
  .sp-match{grid-template-columns:56px minmax(0,1fr) 42px minmax(0,1fr);gap:6px;position:relative;padding-bottom:38px}
  .sp-match-league{position:absolute;left:6px;bottom:10px;padding:1px 8px}
  .sp-match-go{position:absolute;right:6px;bottom:8px;padding:6px 14px}
  .sp-news-grid,.sp-champs{grid-template-columns:1fr}
  .sp-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sp-scoreboard{grid-template-columns:1fr;gap:8px;padding:16px}
  .sp-sb-mid{border:0;border-top:1px solid #1e293b;border-bottom:1px solid #1e293b;padding:8px 0;margin:6px 0}
  .sp-watch{flex-direction:column;align-items:flex-start}
  .sp-watch .sp-btn{width:100%;min-height:44px}
  .sp-info-grid{grid-template-columns:1fr}
  .sp-league-meta{grid-template-columns:1fr 1fr}
  .sp-foot-grid{grid-template-columns:1fr}
}
