  :root{
    --navy:#0e1a2b;        /* 主背景 深藏青 */
    --navy-2:#16263d;      /* 卡片背景 */
    --navy-3:#1f3550;
    --panel:#16263d;
    --line:rgba(212,175,90,.18);
    --gold:#d4af5a;        /* 鎏金主色 */
    --gold-soft:#e8cf95;
    --ink:#eaf0f7;         /* 主文字 */
    --ink-dim:#9fb0c4;     /* 次文字 */
    --ink-faint:#5f7088;
    --good:#4fb286;
    --warn:#e0a942;
    --bad:#d96a6a;
    --s-grade:#d4af5a;
    --a-grade:#5b9bd5;
    --b-grade:#7a8aa0;
    --c-grade:#b07d57;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%}
  body{
    font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:
      radial-gradient(1200px 600px at 80% -10%, rgba(212,175,90,.10), transparent 60%),
      radial-gradient(900px 500px at -10% 110%, rgba(91,155,213,.08), transparent 55%),
      var(--navy);
    color:var(--ink);
    line-height:1.6;
    min-height:100vh;
    letter-spacing:.01em;
  }
  .wrap{max-width:1180px;margin:0 auto;padding:32px 24px 64px;position:relative;z-index:1}
  /* 随机背景层：固定铺满、低透明度、在 .wrap 之下、body 渐变之上 */
  #bgLayer{position:fixed;inset:0;z-index:0;background-size:cover;background-position:center;
    opacity:0;pointer-events:none;transition:opacity 1s ease}
  #bgLayer.show{opacity:.16}

  /* ===== 顶部 ===== */
  .topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;
    border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:32px;
    position:relative;overflow:hidden;border-radius:0 0 4px 4px}
  .topbar>*{position:relative;z-index:1}
  .hero-splash{position:absolute;inset:0;z-index:0;pointer-events:none;
    background:url("/assets/poster.jpg") center 20%/cover no-repeat;
    opacity:.72;filter:saturate(1.15);
    -webkit-mask-image:linear-gradient(90deg,transparent 6%,#000 52%);
    mask-image:linear-gradient(90deg,transparent 6%,#000 52%)}
  .topbar::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(90deg,var(--navy) 16%,rgba(14,26,43,.22) 52%,rgba(14,26,43,.38))}
  .title-cn,.meta{text-shadow:0 1px 6px rgba(8,15,26,.85)}
  .brand{display:flex;align-items:center;gap:16px}
  .kog-logo{height:42px;width:auto;flex:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55))}
  .title-cn{font-size:1.45rem;font-weight:700;letter-spacing:.04em}
  /* 背景图右下角红包入口 */
  .rp-badge{display:inline-flex;align-items:center;gap:5px;line-height:1;white-space:nowrap;flex:none;cursor:pointer;
    height:32px;padding:0 13px;border-radius:8px;font-size:.8rem;font-weight:700;
    background:linear-gradient(180deg,#e0584e,#c0392b);color:#fff;border:1px solid rgba(255,255,255,.16);
    box-shadow:0 2px 8px rgba(192,57,43,.3);transition:filter .15s ease,transform .15s ease}
  .rp-badge:hover{filter:brightness(1.08);transform:translateY(-1px)}
  .rp-badge[hidden]{display:none}
  .rp-list{display:flex;flex-direction:column;gap:6px}
  .rp-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;
    background:rgba(224,88,78,.07);border:1px solid rgba(224,88,78,.18)}
  .rp-amt{font-weight:800;color:#ff8a7e;font-size:1.05rem;font-variant-numeric:tabular-nums;
    white-space:nowrap;min-width:78px}
  .rp-amt small{font-size:.7rem;font-weight:600;margin-left:2px;opacity:.85}
  .rp-win{font-weight:700;color:var(--gold-soft);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rp-prob{color:var(--ink-faint);font-size:.78rem;white-space:nowrap;min-width:46px;text-align:right}
  .rp-amt2{font-weight:800;color:#ff8a7e;font-size:.92rem;white-space:nowrap;min-width:92px;text-align:right;
    font-variant-numeric:tabular-nums}
  .rp-no{color:var(--ink-faint);font-weight:600;font-size:.8rem}
  .rp-sub{margin:16px 0 8px;font-size:.78rem;font-weight:700;color:var(--ink-dim)}
  .rp-row.miss{background:rgba(255,255,255,.03);border-color:var(--line);padding:8px 12px}
  .rp-row.miss .rp-win{color:var(--ink-dim);font-weight:600}
  .rp-note{font-size:.74rem;color:var(--ink-dim);line-height:1.7;margin-bottom:14px}
  .upload-wrap{margin-top:8px;display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
  /* 顶部按钮统一基线：等高、同圆角、同字号、统一过渡。nowrap+flex:none 防文字换行被压扁 */
  .upload-btn,.failed-btn,.nick-mgr-btn{display:inline-flex;align-items:center;gap:5px;line-height:1;
    white-space:nowrap;flex:none;
    height:32px;padding:0 13px;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;
    transition:filter .15s ease,transform .15s ease,color .15s ease,border-color .15s ease}
  .upload-btn:hover,.failed-btn:hover,.nick-mgr-btn:hover{transform:translateY(-1px)}
  .upload-btn{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1206;border:1px solid transparent;
    box-shadow:0 2px 8px rgba(212,175,90,.25)}
  .upload-btn:hover{filter:brightness(1.08)}
  .upload-btn:disabled{opacity:.55;cursor:progress;transform:none}
  .failed-btn{background:rgba(217,106,106,.16);color:var(--bad);border:1px solid rgba(217,106,106,.5)}
  .failed-btn:hover{filter:brightness(1.1)}
  .failed-btn[hidden]{display:none}
  .failed-btn span{font-variant-numeric:tabular-nums}
  .nick-mgr-btn{background:rgba(255,255,255,.05);color:var(--ink-dim);border:1px solid var(--line);font-weight:600}
  .nick-mgr-btn:hover{color:var(--gold-soft);border-color:var(--gold)}
  .upload-hint{font-size:.72rem;color:var(--ink-dim);flex-basis:100%;text-align:left}
  .upload-hint:empty{display:none}
  /* 昵称管理 */
  .nick-tip{font-size:.76rem;color:var(--ink-dim);margin-bottom:12px;line-height:1.6}
  .nick-list{max-height:48vh;overflow-y:auto;margin-bottom:14px}
  .nick-gh{margin-top:12px;padding:5px 4px;font-weight:700;color:var(--gold-soft);
    display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line)}
  .nick-gh:first-child{margin-top:0}
  .nick-gh .cnt{font-weight:400;font-size:.72rem;color:var(--ink-faint)}
  .nick-item{display:flex;align-items:center;gap:10px;padding:10px 6px;cursor:pointer;
    border-bottom:1px solid rgba(255,255,255,.04)}
  .nick-item:hover{background:rgba(212,175,90,.06)}
  /* 原生复选框，覆盖通用 .ocr-modal input 样式以免变形 */
  .nick-item input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;
    width:18px;height:18px;min-width:18px;flex:none;margin:0;padding:0;border:0;
    border-radius:0;background:none;accent-color:var(--gold)}
  .nick-id{color:var(--ink);font-size:.9rem;word-break:break-all}
  .nick-cur{margin-left:auto;font-size:.74rem;color:var(--ink-faint);white-space:nowrap}
  .nick-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .nick-form input{background:var(--navy);border:1px solid var(--gold);color:var(--ink);
    border-radius:7px;padding:6px 10px;font-size:.86rem;min-width:160px}
  .nick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
  .nick-chip{background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--ink-dim);
    border-radius:999px;padding:4px 12px;font-size:.78rem;cursor:pointer}
  .nick-chip:hover{border-color:var(--gold);color:var(--gold-soft)}
  /* OCR 确认面板 */
  .ocr-modal{position:fixed;inset:0;z-index:300;background:rgba(6,11,20,.78);
    display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;overflow:auto}
  .ocr-modal[hidden]{display:none}   /* 必须显式覆盖：class 的 display:flex 会盖掉 hidden 默认的 display:none */
  .ocr-box{background:var(--navy-2);border:1px solid var(--line);border-radius:14px;
    width:100%;max-width:860px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
  .ocr-head{display:flex;align-items:center;justify-content:space-between;
    padding:14px 18px;border-bottom:1px solid var(--line);font-weight:700;color:var(--gold-soft)}
  .ocr-x{background:none;border:none;color:var(--ink-dim);font-size:1.1rem;cursor:pointer}
  .ocr-body{padding:16px 18px}
  .ocr-meta{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:14px;align-items:center}
  .ocr-meta label{font-size:.74rem;color:var(--ink-dim);display:flex;flex-direction:column;gap:3px}
  .ocr-tbl{width:100%;border-collapse:collapse;font-size:.82rem}
  .ocr-tbl th{font-size:.66rem;color:var(--gold-soft);text-align:left;padding:4px 6px;font-weight:600}
  .ocr-tbl td{padding:3px 5px;border-bottom:1px solid rgba(212,175,90,.06)}
  .ocr-modal input,.ocr-modal select{background:var(--navy);border:1px solid var(--line);
    color:var(--ink);border-radius:6px;padding:5px 7px;font-size:.82rem;font-family:inherit}
  .ocr-modal input[type=number]{width:62px}
  .ocr-modal input.k{width:46px}
  .ocr-in-hero{width:90px}
  .ocr-in-id{width:120px}
  /* 英雄候选：直接插在该选手行下方（表格内常规流，躲开 iOS 键盘下 fixed/绝对定位错位）*/
  .cand-row td{padding:6px 8px;background:var(--navy-3)}
  .hero-cand{display:flex;flex-wrap:wrap;gap:6px}
  .hero-cand button{background:var(--navy);border:1px solid var(--gold);color:var(--gold-soft);
    border-radius:999px;padding:5px 14px;font-size:.86rem;font-weight:600;cursor:pointer;white-space:nowrap}
  .hero-cand button:active{background:var(--gold);color:var(--navy)}
  .ocr-flag{outline:2px solid var(--bad);outline-offset:1px}
  /* 识别成功的字段：浅色只读，不可改 */
  .ocr-modal input.ocr-lock,.ocr-modal select.ocr-lock{
    background:transparent;border-color:transparent;color:var(--ink-dim);
    opacity:.85;pointer-events:none;padding-left:2px}
  /* 需手填的字段：金色高亮框，醒目 */
  .ocr-modal input:not(.ocr-lock):not([type=checkbox]),
  .ocr-modal select:not(.ocr-lock){border-color:var(--gold);background:var(--navy)}
  .ocr-foot{display:flex;align-items:center;gap:12px;justify-content:flex-end;
    padding:14px 18px;border-top:1px solid var(--line)}
  .ocr-msg{margin-right:auto;font-size:.76rem;color:var(--ink-dim);white-space:pre-wrap}
  .ocr-btn-ghost{background:none;border:1px solid var(--line);color:var(--ink-dim);
    border-radius:8px;padding:7px 14px;font-size:.82rem;cursor:pointer}
  .ocr-btn-danger{background:none;border:1px solid rgba(217,106,106,.5);color:var(--bad);
    border-radius:8px;padding:7px 14px;font-size:.82rem;cursor:pointer}
  .ocr-btn-danger:hover{background:rgba(217,106,106,.12)}
  .ocr-btn-go{background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#1a1206;
    border:none;border-radius:8px;padding:7px 16px;font-size:.82rem;font-weight:700;cursor:pointer}
  .ocr-btn-go:disabled{opacity:.55;cursor:progress}
  .ocr-preview{margin-bottom:14px;text-align:center}
  .ocr-preview img{max-width:100%;max-height:38vh;border-radius:8px;border:1px solid var(--line);
    display:block;margin:0 auto}
  .ocr-preview-tip{font-size:.72rem;color:var(--ink-faint);margin-top:5px}
  .ocr-spin{padding:48px 20px;text-align:center;color:var(--ink-dim);font-size:.9rem}
  .ocr-loader{width:44px;height:44px;margin:0 auto 16px;border-radius:50%;
    border:3px solid rgba(212,175,90,.18);border-top-color:var(--gold);
    animation:ocrspin .8s linear infinite}
  .ocr-spin-txt{letter-spacing:.04em}
  @keyframes ocrspin{to{transform:rotate(360deg)}}
  .title-en{font-size:.72rem;color:var(--gold);letter-spacing:.28em;text-transform:uppercase;margin-top:3px;font-weight:600}
  .meta{text-align:right;font-size:.78rem;color:var(--ink-dim);line-height:1.8}
  .meta .period{display:inline-block;border:1px solid var(--gold);color:var(--gold-soft);
    padding:3px 12px;border-radius:999px;font-weight:600;letter-spacing:.06em;margin-bottom:6px}

  /* ===== 概览卡 ===== */
  .ov-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:36px}
  .ov-card{background:linear-gradient(160deg,var(--navy-2),rgba(22,38,61,.55));
    border:1px solid var(--line);border-radius:14px;padding:18px 20px 16px;position:relative;overflow:hidden;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
  .ov-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
    background:linear-gradient(180deg,var(--gold),rgba(212,175,90,.3));opacity:.9}
  .ov-card:hover{transform:translateY(-2px);border-color:rgba(212,175,90,.42);box-shadow:0 8px 22px rgba(0,0,0,.3)}
  .ov-card .label{font-size:.74rem;color:var(--ink-dim);letter-spacing:.05em}
  .ov-card .value{font-size:2.05rem;font-weight:750;margin-top:8px;line-height:1.08;font-variant-numeric:tabular-nums;
    background:linear-gradient(180deg,#fff,var(--gold-soft));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .ov-card .sub{font-size:.72rem;color:var(--ink-faint);margin-top:5px}

  /* ===== 区块标题 ===== */
  .section-head{display:flex;align-items:baseline;gap:12px;margin:0 0 18px}
  .section-head h2{font-size:1.05rem;font-weight:700;letter-spacing:.04em}
  .section-head .en{font-size:.68rem;color:var(--gold);letter-spacing:.2em;text-transform:uppercase}
  .section-head .rule{flex:1;height:1px;background:var(--line)}

  /* ===== 排名表 ===== */
  .table-card{background:rgba(22,38,61,.45);border:1px solid var(--line);border-radius:16px;overflow:auto;max-height:78vh}
  table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:1180px}
  thead th{font-size:.72rem;color:var(--gold-soft);font-weight:600;letter-spacing:.06em;text-align:right;
    padding:14px 14px;background:#0e1a2b;border-bottom:1px solid var(--line);white-space:nowrap;
    position:sticky;top:0;z-index:5}
  thead th.l{text-align:left}
  thead th.sortable,thead th.dsort{cursor:pointer;user-select:none}
  thead th.sortable:hover,thead th.dsort:hover{color:#fff}
  thead th.sortable::after,thead th.dsort::after{content:"⇅";margin-left:5px;font-size:.65em;opacity:.32}
  thead th.sortable.active::after,thead th.dsort.active::after{opacity:.95}
  thead th.sortable.active.desc::after,thead th.dsort.active.desc::after{content:"▼"}
  thead th.sortable.active.asc::after,thead th.dsort.active.asc::after{content:"▲"}
  tbody td{padding:13px 14px;text-align:right;border-bottom:1px solid rgba(212,175,90,.07);
    font-variant-numeric:tabular-nums;white-space:nowrap}
  tbody td.l{text-align:left}
  tbody tr:last-child td{border-bottom:none}
  tbody tr:hover{background:rgba(212,175,90,.05)}
  tbody tr.ace-row{background:linear-gradient(90deg,rgba(212,175,90,.1),transparent 72%)}
  tbody tr.ace-row:hover{background:linear-gradient(90deg,rgba(212,175,90,.14),transparent 72%)}
  .streak-fire{font-size:.82em}
  .rk{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;font-size:.78rem;font-weight:700;
    background:rgba(255,255,255,.04);color:var(--ink-dim)}
  .rk.r1{background:linear-gradient(145deg,#d4af5a,#b8902f);color:#1a1206}
  .rk.r2{background:linear-gradient(145deg,#c9d2dd,#9aa6b4);color:#161d26}
  .rk.r3{background:linear-gradient(145deg,#cf9b6b,#a9744a);color:#1a1206}
  .player{display:flex;align-items:center;gap:11px}
  .avatar{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:.92rem;
    background:linear-gradient(145deg,#24405f,#16263d);border:1px solid var(--line);color:var(--gold-soft);overflow:hidden}
  img.avatar{object-fit:cover;background:#16263d}
  .ava-stack{display:flex;flex-direction:column;align-items:center;gap:3px;flex:none}
  .alt-heroes{display:flex;gap:3px;height:17px}
  .alt-hero{width:17px;height:17px;border-radius:5px;object-fit:cover;border:1px solid var(--line);background:#16263d;opacity:.8}
  .alt-hero:hover{opacity:1}
  .hero-mini{width:22px;height:22px;border-radius:5px;object-fit:cover;vertical-align:middle;margin-right:6px;
    border:1px solid var(--line);background:#16263d}
  .pname{font-weight:600}
  .gid{font-weight:400;font-size:.74rem;color:var(--ink-faint)}
  .role{font-size:.7rem;color:var(--ink-faint);margin-top:1px}
  .pos-tag{display:inline-block;font-size:.7rem;padding:2px 9px;border-radius:6px;border:1px solid var(--line);color:var(--ink-dim)}
  .num-strong{font-weight:700;color:var(--ink)}
  .pct .bar{display:inline-block;vertical-align:middle;width:46px;height:5px;border-radius:3px;background:rgba(255,255,255,.08);margin-left:8px;position:relative;overflow:hidden}
  .pct .bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--gold),var(--gold-soft));border-radius:3px}
  .grade{display:inline-grid;place-items:center;width:auto;min-width:52px;height:26px;border-radius:8px;font-weight:800;font-size:.72rem;padding:0 8px;white-space:nowrap}
  .g-S{background:rgba(212,175,90,.16);color:var(--s-grade);border:1px solid rgba(212,175,90,.4)}
  .g-A{background:rgba(91,155,213,.14);color:var(--a-grade);border:1px solid rgba(91,155,213,.36)}
  .g-B{background:rgba(122,138,160,.14);color:var(--b-grade);border:1px solid rgba(122,138,160,.34)}
  .g-C{background:rgba(176,125,87,.14);color:var(--c-grade);border:1px solid rgba(176,125,87,.34)}
  .score{font-weight:800;font-size:.98rem;color:var(--gold-soft)}

  /* ===== 评分说明 ===== */
  .legend{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px}
  .legend .box{background:rgba(22,38,61,.4);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
  .legend h3{font-size:.82rem;color:var(--gold-soft);margin-bottom:10px;letter-spacing:.04em}
  .legend ul{list-style:none;font-size:.8rem;color:var(--ink-dim)}
  .legend li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed rgba(212,175,90,.1)}
  .legend li:last-child{border-bottom:none}
  .legend li b{color:var(--ink)}
  .weight{color:var(--gold);font-weight:700}

  /* ===== 战绩走势 ===== */
  .charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
  .chart-card{background:rgba(22,38,61,.45);border:1px solid var(--line);border-radius:16px;padding:18px 18px 14px}
  .chart-card .ch-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
  .chart-card .ch-title{font-size:.86rem;font-weight:700;color:var(--ink)}
  .chart-card .ch-sub{font-size:.7rem;color:var(--ink-faint)}
  .chart-card svg{display:block;width:100%;height:auto}
  .ch-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.72rem}
  .ch-legend .item{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink-dim);user-select:none;
    padding:2px 8px;border-radius:999px;border:1px solid transparent;transition:.15s}
  .ch-legend .item:hover{border-color:var(--line)}
  .ch-legend .item.off{opacity:.38;text-decoration:line-through}
  .ch-legend .dot{width:9px;height:9px;border-radius:50%;flex:none}
  .ch-axis{stroke:rgba(212,175,90,.12);stroke-width:1}
  .ch-axis-lbl{fill:var(--ink-faint);font-size:9px}
  .ch-dotlbl{fill:var(--ink-dim);font-size:9px;font-variant-numeric:tabular-nums}

  /* 胜负带 */
  .streak{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px}
  .streak .s{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:.66rem;font-weight:800;
    color:#0e1a2b}
  .streak .s.w{background:linear-gradient(145deg,#5fbf95,#3f9b73)}
  .streak .s.l{background:linear-gradient(145deg,#e08a8a,#c25c5c)}

  /* ===== 对局流水 ===== */
  .log-toggle{background:rgba(212,175,90,.1);border:1px solid var(--line);color:var(--gold-soft);
    font-size:.74rem;font-weight:600;padding:4px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;
    letter-spacing:.04em;transition:.15s}
  .log-toggle:hover{background:rgba(212,175,90,.2);color:#fff}
  .log-card{background:rgba(22,38,61,.45);border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .log-row{border-bottom:1px solid rgba(212,175,90,.08)}
  .log-row:last-child{border-bottom:none}
  .log-head{display:grid;grid-template-columns:120px 64px 72px 96px 1fr 18px;gap:12px;align-items:center;
    padding:13px 18px;cursor:pointer;transition:.15s}
  .log-head:hover{background:rgba(212,175,90,.05)}
  .log-when{font-size:.82rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  .log-when .dur{display:block;font-size:.66rem;color:var(--ink-faint);font-weight:400;margin-top:1px}
  .log-res{font-size:.72rem;font-weight:800;padding:3px 0;border-radius:6px;text-align:center}
  .log-res.w{background:rgba(95,191,149,.16);color:var(--good);border:1px solid rgba(95,191,149,.35)}
  .log-res.l{background:rgba(217,106,106,.14);color:var(--bad);border:1px solid rgba(217,106,106,.34)}
  .log-kills{font-size:.84rem;font-variant-numeric:tabular-nums;color:var(--ink-dim);text-align:center}
  .log-kills b{color:var(--gold-soft)}
  .log-mvp{font-size:.74rem;color:var(--ink-dim)}
  .log-mvp .tag{display:inline-block;background:rgba(212,175,90,.16);color:var(--gold-soft);
    border:1px solid rgba(212,175,90,.32);border-radius:6px;padding:1px 8px;font-weight:700;margin-right:6px}
  .log-players{display:flex;flex-wrap:wrap;gap:6px;font-size:.72rem;color:var(--ink-faint);align-items:center;overflow:hidden}
  .log-chev{text-align:right;color:var(--ink-faint);transition:.2s;font-size:.8rem}
  .log-row.open .log-chev{transform:rotate(90deg);color:var(--gold-soft)}
  .log-detail{max-height:0;overflow:hidden;transition:max-height .28s ease}
  .log-row.open .log-detail{max-height:420px}
  .log-detail-inner{padding:2px 18px 16px}
  .mini-tbl{width:100%;border-collapse:collapse;font-size:.78rem}
  .mini-tbl th{font-size:.66rem;color:var(--gold-soft);font-weight:600;text-align:right;padding:6px 10px;
    border-bottom:1px solid var(--line)}
  .mini-tbl th.l{text-align:left}
  .mini-tbl td{padding:7px 10px;text-align:right;border-bottom:1px solid rgba(212,175,90,.06);
    font-variant-numeric:tabular-nums;color:var(--ink-dim)}
  .mini-tbl td.l{text-align:left;color:var(--ink)}
  .mini-tbl tr:last-child td{border-bottom:none}
  .mini-medal{display:inline-block;font-size:.64rem;padding:1px 6px;border-radius:5px;margin-left:4px;
    border:1px solid var(--line);color:var(--ink-faint)}
  .mini-medal.mvp{background:rgba(91,155,213,.16);color:var(--a-grade);border-color:rgba(91,155,213,.4)}
  .mini-medal.top{background:rgba(212,175,90,.16);color:var(--gold);border-color:rgba(212,175,90,.4)}
  .eco-cell{color:var(--gold-soft)}
  .hero-pill{display:inline-block;font-size:.7rem;color:var(--ink-dim);background:rgba(255,255,255,.04);
    border:1px solid var(--line);border-radius:6px;padding:1px 7px}

  footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);
    font-size:.74rem;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

  @media(max-width:880px){
    .ov-row{grid-template-columns:repeat(4,1fr)}
    .legend{grid-template-columns:1fr}
    .charts{grid-template-columns:1fr}
    .hide-sm{display:none}
    .wrap{padding:22px 14px 48px}
    .log-head{grid-template-columns:96px 56px 64px 1fr 18px;gap:9px}
    .log-mvp{display:none}
  }
  @media(max-width:520px){
    /* 最上方四格：手机仍并排一行，紧凑但比原来更耐看（数字略放大、留白匀一点） */
    .ov-row{grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:18px}
    .ov-card{padding:11px 8px 10px;border-radius:10px}
    .ov-card::before{width:2px}
    .ov-card .label{font-size:.6rem;letter-spacing:0;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .ov-card .value{font-size:1.18rem;margin-top:4px}
    .ov-card .sub{font-size:.55rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    /* 顶栏整体压缩：标题/logo 收小，赛季 pill 与「数据更新」并到一行，立绘压暗，间距收紧 */
    .wrap{padding:14px 12px 40px}
    .title-cn{font-size:1.1rem;line-height:1.25}
    .title-en{font-size:.6rem;letter-spacing:.16em;margin-top:2px}
    .topbar{gap:8px;padding-bottom:12px;margin-bottom:14px}
    .brand{gap:10px}
    .kog-logo{height:30px}
    .meta{text-align:left;width:100%;line-height:1.45;font-size:.74rem}
    .meta br{display:none}
    .meta .period{margin:0 8px 0 0;padding:2px 10px}
    .upload-wrap{justify-content:flex-start;margin-top:8px}
    .hero-splash{opacity:.35}
    .topbar::after{background:linear-gradient(90deg,var(--navy) 32%,rgba(14,26,43,.5) 78%)}
    .ov-row{margin-bottom:18px}
    thead th,tbody td{padding:11px 9px}
    .pct .bar{display:none}
    .log-head{grid-template-columns:84px 50px 1fr 18px;gap:8px;padding:11px 13px}
    .log-players{display:none}
    .log-detail-inner{padding:2px 12px 14px}
    /* OCR 确认面板：选手表 7 列放不下 → 整表横向滚动；底部按钮换行 */
    .ocr-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
    .ocr-tbl{min-width:540px}
    .ocr-foot{flex-wrap:wrap}
    .ocr-msg{margin-right:0;flex-basis:100%;order:-1}
  }
  /* 深度分析表配色提示 */
  #deepBody td.good{color:var(--good);font-weight:600}
  #deepBody td.bad{color:var(--bad);font-weight:600}
  #deepBody td.form-up{color:var(--good);font-weight:600}
  #deepBody td.form-down{color:var(--bad);font-weight:600}
  #deepBody td.form-flat{color:var(--ink-dim)}
  #deepBody small{font-weight:400}
  /* 指标说明 ⓘ 标识 + 弹出气泡 */
  .info-i{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:4px;
    border-radius:50%;border:1px solid var(--ink-faint);color:var(--ink-faint);font:700 9px/1 Georgia,serif;font-style:italic;
    cursor:pointer;vertical-align:middle;user-select:none;flex:none;transition:.15s}
  .info-i:hover{border-color:var(--gold);color:var(--gold)}
  th .info-i{vertical-align:1px}
  #infoPop{position:fixed;z-index:200;max-width:248px;background:var(--navy-3);border:1px solid var(--line);
    border-radius:9px;padding:11px 13px;font-size:.74rem;line-height:1.55;color:var(--ink-dim);
    box-shadow:0 10px 30px rgba(0,0,0,.55);display:none;text-align:left;font-weight:400;white-space:normal}
  #infoPop.show{display:block}
  #infoPop b{color:var(--ink)}
  /* 活跃热力图（GitHub 风格）*/
  .heat-inner{display:inline-block;min-width:100%}
  .heat-months{display:flex;height:14px;font-size:.62rem;color:var(--ink-dim)}
  .heat-mlabel{width:15px;flex:none;white-space:nowrap;overflow:visible}
  .heat-row{display:flex;gap:6px}
  .heat-wd{display:flex;flex-direction:column;justify-content:flex-start}
  .heat-wd span{height:12px;margin-bottom:3px;font-size:.6rem;color:var(--ink-faint);line-height:12px}
  .heat-grid{display:flex;gap:3px}
  .heat-col{display:flex;flex-direction:column;gap:3px}
  .heat-cell{width:12px;height:12px;border-radius:2px;background:rgba(212,175,90,.07);outline:1px solid rgba(255,255,255,.02)}
  .heat-cell.L1{background:rgba(212,175,90,.30)}
  .heat-cell.L2{background:rgba(212,175,90,.52)}
  .heat-cell.L3{background:rgba(212,175,90,.74)}
  .heat-cell.L4{background:#e8cf95;box-shadow:0 0 5px rgba(212,175,90,.5)}
  .heat-cell.empty{background:transparent;outline:none}
  .heat-legend{display:flex;align-items:center;gap:5px;margin-top:12px;font-size:.66rem;color:var(--ink-faint)}
  .heat-legend i{width:12px;height:12px;border-radius:2px;display:inline-block}
  /* 预设按钮组（顶部时间区间复用）*/
  /* 全局时间区间 */
  .date-filter{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:20px;
    padding:11px 16px;background:var(--navy-2);border:1px solid var(--line);border-radius:12px;font-size:.84rem;color:var(--ink-dim)}
  .df-group{display:flex;align-items:center;gap:9px}
  .df-label{font-weight:700;color:var(--gold-soft);white-space:nowrap}
  .df-tilde{color:var(--ink-faint)}
  .date-filter input[type=date]{padding:5px 9px;background:var(--navy-3);border:1px solid var(--line);
    border-radius:7px;color:var(--ink);font-size:.82rem;color-scheme:dark}
  .date-filter select#dfSeason{padding:5px 10px;background:var(--navy-3);border:1px solid var(--line);
    border-radius:7px;color:var(--gold-soft);font-size:.84rem;font-weight:600;cursor:pointer;color-scheme:dark}
  .df-sep{width:1px;height:20px;background:var(--line);margin:0 4px}
  .df-count{margin-left:auto;color:var(--gold-soft);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums;
    background:rgba(212,175,90,.1);border:1px solid var(--line);border-radius:999px;padding:3px 11px;white-space:nowrap}
  /* 手机：筛选竖排，每组独占一行，日期框/预设按钮平分宽度，不再错位换行 */
  @media(max-width:640px){
    .df-sep{display:none}
    /* 筛选卡压缩：竖排两行（赛季 / 时间区间），局数计数挪到右上角，不再单占一行 */
    .date-filter{position:relative;flex-direction:column;align-items:stretch;gap:9px;
      padding:10px 12px;margin-bottom:14px}
    .df-group{justify-content:flex-start}
    .df-range{flex-wrap:nowrap}
    .date-filter input[type=date]{flex:1;min-width:0}
    .df-count{position:absolute;top:9px;right:10px;margin:0;font-size:.68rem;padding:2px 9px}
  }
  /* 车队贡献分层上色：灰 → 绿 → 蓝 → 紫 → 金（越高越稀有）*/
  td.contrib-cell{font-weight:700}
  td.bd-click{cursor:pointer}
  td.bd-click:hover{text-decoration:underline dotted;text-underline-offset:3px}
  td.ct-0{color:var(--ink-faint);font-weight:500}
  td.ct-1{color:#8fa0b4;font-weight:600}                   /* 灰 */
  td.ct-2{color:#4fb286;font-weight:600}                   /* 绿 */
  td.ct-3{color:#5b9bd5;font-weight:700}                   /* 蓝 */
  td.ct-4{color:#a78bfa;font-weight:700}                   /* 紫 */
  td.ct-5{color:var(--gold);font-weight:800;text-shadow:0 0 6px rgba(212,175,90,.35)}  /* 金 */
