:root { --jbl4-color-primary:#0f766e; --jbl4-color-accent:#14b8a6; --jbl4-color-deep:#0f172a; --jbl4-color-bg:#f3f7f8; --jbl4-color-panel:#ffffff; --jbl4-color-soft:#e6fffb; --jbl4-color-text:#111827; --jbl4-color-muted:#64748b; --jbl4-color-border:#d7e2e5; --jbl4-color-gradient:linear-gradient(135deg,#0f766e 0%,#14b8a6 100%); }
    * { box-sizing:border-box; margin:2px; padding:2px; }
    body.jbl4-shell-body { background:var(--jbl4-color-bg); color:var(--jbl4-color-text); font:14px/1.45 Arial,"Microsoft YaHei",sans-serif; }
    a { color:inherit; text-decoration:none; } a:focus-visible { outline:2px solid var(--jbl4-color-accent); outline-offset:1px; } img { display:block; object-fit:cover; }
    .jbl4-site-header,.jbl4-site-footer,.jbl4-page-head,.jbl4-filter-board,.jbl4-live-board { background:var(--jbl4-color-panel); border:1px solid var(--jbl4-color-border); }
    .jbl4-site-header { border-top:0; border-left:0; border-right:0; } .jbl4-site-footer { color:var(--jbl4-color-muted); }
    .jbl4-site-headwrap,.jbl4-site-footwrap,.jbl4-main-wrap { max-width:1080px; margin:0 auto; }
    .jbl4-site-headwrap { display:flex; align-items:center; justify-content:space-between; }
    .jbl4-site-brand,.jbl4-site-footbrand,.jbl4-page-title { color:var(--jbl4-color-primary); font-size:18px; font-weight:700; }
    .jbl4-site-nav { display:flex; overflow-x:auto; } .jbl4-site-link { padding:2px 6px; border-left:3px solid transparent; white-space:nowrap; }
    .jbl4-site-link:hover { background:var(--jbl4-color-soft); border-left-color:var(--jbl4-color-accent); }
    .jbl4-page-desc,.jbl4-breadcrumb,.jbl4-site-footnote,.jbl4-site-contact { color:var(--jbl4-color-muted); }
    .jbl4-breadcrumb { background:var(--jbl4-color-panel); border:1px solid var(--jbl4-color-border); }
    .jbl4-filter-row { display:grid; grid-template-columns:48px 1fr; align-items:start; border-bottom:1px dotted var(--jbl4-color-border); }
    .jbl4-filter-label { color:var(--jbl4-color-muted); white-space:nowrap; }
    .jbl4-filter-list { display:flex; flex-wrap:wrap; }
    .jbl4-filter-link { border:0; border-bottom:2px solid var(--jbl4-color-border); background:transparent; color:inherit; cursor:pointer; font:inherit; white-space:nowrap; }
    .jbl4-filter-link:hover,.jbl4-filter-active { color:var(--jbl4-color-primary); border-bottom-color:var(--jbl4-color-accent); background:var(--jbl4-color-soft); }
    .jbl4-live-board { display:grid; grid-template-columns:1fr; }
    .jbl4-live-row { display:grid; grid-template-columns:30px minmax(0,1fr) 38px minmax(0,1fr) 30px 58px; align-items:center; border-bottom:1px solid var(--jbl4-color-border); min-height:42px; }
    .jbl4-live-time { color:var(--jbl4-color-primary); font-size:12px; line-height:1.2; font-weight:700; white-space:nowrap; }
    .jbl4-live-team { display:flex; align-items:center; min-width:0; overflow:hidden; white-space:nowrap; }
    .jbl4-live-away { justify-content:flex-end; text-align:right; }
    .jbl4-live-logo { width:30px; height:30px; flex:0 0 30px; border:1px solid var(--jbl4-color-border); background:var(--jbl4-color-soft); }
    .jbl4-live-name { width:100%; min-width:0; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .jbl4-live-center { display:grid; justify-items:center; align-items:center; min-width:38px; line-height:1.2; }
    .jbl4-live-vs { text-align:center; color:var(--jbl4-color-muted); font-weight:700; }
    .jbl4-live-btn { background:var(--jbl4-color-gradient); color:#fff; text-align:center; white-space:nowrap; }
    .jbl4-live-row[hidden] { display:none; }
    @media (min-width:1024px) { body.jbl4-shell-body { font-size:16px; } .jbl4-live-board { grid-template-columns:1fr; } .jbl4-live-row { grid-template-columns:34px minmax(0,1fr) 44px minmax(0,1fr) 34px 70px; } .jbl4-live-logo { width:auto; height:auto; max-width:34px; max-height:34px; flex:0 1 auto; } .jbl4-live-center { min-width:44px; } }
  
    /* jbl4 sticky footer layout */
    html,
    body {
      min-height: 100%;
    }

    body.jbl4-shell-body {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
    }

    .jbl4-main-wrap {
      width: 100%;
      flex: 1 0 auto;
    }

    .jbl4-site-footer {
      flex-shrink: 0;
      margin-top: auto;
    }
