/* =========================================================================
   吃可爱长不大 · 瑞士轮赛程（schedule.html）视觉系统 v4.0
   -------------------------------------------------------------------------
   设计语言：深墨转播台 + 刊物式 masthead + 仪表盘栅格
   与 candy_bracket.css 同源 token（深色转播台 / 余烬红 / 米金发丝线），
   本页仅重排视觉层，不改任何 DOM 结构与业务逻辑。
   硬红线：零绿色 / 无圆形首字徽标 / 保留语义色（胜者·败者·冠军金·顺位紫）
   ========================================================================= */

/* ========================= 1. TOKENS ========================= */
:root{
    /* ---- 品牌强调（交互与强调，不承载状态语义）---- */
    --ember:#ff5c78;
    --ember-deep:#c22a4e;
    --ember-ink:#ff8ba0;
    --ember-soft:rgba(255,92,120,.14);
    --ember-line:rgba(255,92,120,.34);

    /* ---- 语义色（含义不变，为深底统一提亮）---- */
    --win:#5cb8ea;    --win-soft:rgba(92,184,234,.13);   --win-line:rgba(92,184,234,.34);
    --lose:#ff5f6d;   --lose-soft:rgba(255,95,109,.13);  --lose-line:rgba(255,95,109,.32);
    --champ:#f0b429;  --champ-soft:rgba(240,180,41,.13); --champ-line:rgba(240,180,41,.34);
    --seed:#a98cf5;   --seed-soft:rgba(169,140,245,.13); --seed-line:rgba(169,140,245,.34);

    /* ---- 中性（暖调深底，避免死灰）---- */
    --ink-900:#fff3f0;
    --ink-800:#ecd7d5;
    --ink-700:#d3b8bb;
    --ink-600:#b1939a;
    --ink-500:#8b6f78;
    --ink-400:#6b525b;
    --paper-0:#211320;
    --paper-1:#281823;
    --paper-2:#331e2c;
    --void:#120710;

    --line:rgba(255,238,243,.10);
    --line-2:rgba(255,238,243,.20);
    --line-3:rgba(255,238,243,.055);

    /* ---- 刊物米金：纯装饰（发丝线 / 刻线 / 铭牌），不承载状态语义 ---- */
    --brass:rgba(232,200,138,.46);
    --brass-line:rgba(232,200,138,.13);

    /* ---- 字体三族 ---- */
    --f-display:'Noto Serif SC','Songti SC',serif;
    --f-body:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
    --f-num:'Barlow Condensed','Noto Sans SC',sans-serif;

    /* ---- 尺度 ---- */
    --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:26px; --r-pill:999px;
    --sh-1:0 1px 2px rgba(0,0,0,.34), 0 6px 18px rgba(0,0,0,.28);
    --sh-2:0 6px 18px rgba(0,0,0,.36), 0 22px 48px rgba(0,0,0,.42);
    --sh-3:0 34px 80px rgba(0,0,0,.62);
    --sh-inset:inset 0 1px 0 rgba(255,238,243,.06);
    --ease:cubic-bezier(.23,1,.32,1);

    /* ---- 版面 ---- */
    --mast-max:1700px;
}

/* ========================= 2. BASE ========================= */
*{box-sizing:border-box;}

html,body{height:100%;}

body{
    background:
        radial-gradient(1400px 620px at 50% -320px, rgba(255,92,120,.10) 0%, rgba(255,92,120,0) 62%),
        linear-gradient(180deg,#150a13 0%, #120710 46%, #0d050b 100%);
    color:var(--ink-700);
    font-family:var(--f-body);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

::selection{background:rgba(255,92,120,.28);color:#ffe9ee;}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#140a13;}
::-webkit-scrollbar-thumb{background:rgba(255,92,120,.22);border:2px solid #140a13;border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:rgba(255,92,120,.38);}

/* 全局星屑层：压到极弱，只做"底噪"，不再抢戏 */
.starry-overlay{
    background-image:
        radial-gradient(1.6px 1.6px at 42px 64px, rgba(255,238,243,.55), rgba(0,0,0,0)),
        radial-gradient(1.8px 1.8px at 158px 122px, rgba(255,139,160,.42), rgba(0,0,0,0)),
        radial-gradient(1.4px 1.4px at 268px 246px, rgba(255,238,243,.30), rgba(0,0,0,0));
    background-size:360px 360px;
    opacity:.09;
}

/* ========================= 3. MASTHEAD ========================= */
.sb-header{
    position:sticky;
    top:0;
    z-index:40;
    flex:none;
    background:linear-gradient(180deg,#1b0e19 0%, #150b14 60%, #120a12 100%);
    border-bottom:1px solid var(--line);
    box-shadow:0 20px 48px rgba(6,2,5,.55);
}

/* 左上品牌色带 */
.sb-header::before{
    content:'';
    position:absolute;top:0;left:0;height:2px;
    width:min(46%,560px);
    background:linear-gradient(90deg,var(--ember) 0%, rgba(255,92,120,.52) 46%, rgba(255,92,120,0) 100%);
}

/* 右上米金细线，与左侧色带形成非对称平衡 */
.sb-header::after{
    content:'';
    position:absolute;top:0;right:0;height:2px;
    width:min(28%,320px);
    background:linear-gradient(270deg,var(--brass) 0%, rgba(232,200,138,0) 100%);
}

.sb-mast{
    max-width:var(--mast-max);
    margin:0 auto;
    padding:22px 26px 16px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:34px;
}

.sb-mast-brand{min-width:0;flex:1 1 auto;}

.sb-kicker{
    display:block;
    font-family:var(--f-num);
    font-size:11px;font-weight:600;
    letter-spacing:.42em;text-transform:uppercase;
    color:var(--ember-ink);
    margin-bottom:10px;
}

.sb-title{
    margin:0;
    font-family:var(--f-display);
    font-size:34px;font-weight:900;line-height:1.1;letter-spacing:.05em;
    color:var(--ink-900);
    display:flex;align-items:center;flex-wrap:wrap;gap:14px;
}

.sb-mast-sub{
    display:flex;align-items:center;flex-wrap:wrap;gap:12px;
    margin-top:11px;
}

.sb-sub{
    margin:0;
    font-size:12.5px;line-height:1.5;letter-spacing:.01em;
    color:var(--ink-600);
}

.sb-sub b{color:var(--ink-700);font-weight:800;}

/* 刊物右侧信息栏 */
.sb-mast-meta{
    display:flex;align-items:flex-end;flex:none;
    padding-bottom:3px;
}

.sb-meta-cell{
    min-width:128px;
    padding:0 26px;
    border-left:1px solid var(--line);
    text-align:left;
}

.sb-meta-cell:first-child{border-left:none;padding-left:0;}

.sb-meta-cell em{
    display:block;
    font-family:var(--f-num);font-style:normal;
    font-size:10px;font-weight:600;letter-spacing:.30em;text-transform:uppercase;
    color:var(--ink-500);
}

.sb-meta-cell b{
    display:block;margin-top:6px;
    font-size:12.5px;font-weight:700;letter-spacing:.02em;
    color:var(--ink-700);
}

/* 徽标 */
.sb-chip{
    display:inline-flex;align-items:center;gap:6px;
    font-family:var(--f-num);font-size:10.5px;font-weight:600;
    letter-spacing:.20em;text-transform:uppercase;
    padding:4px 11px;border-radius:var(--r-pill);
    border:1px solid var(--line-2);
    background:rgba(255,238,243,.04);
    color:var(--ink-600);
}

.sb-chip.is-ember{color:var(--ember-ink);border-color:var(--ember-line);background:var(--ember-soft);}
.sb-chip.is-live{color:var(--win);border-color:var(--win-line);background:var(--win-soft);}

/* ========================= 4. 控制条（工具区） ========================= */
.sb-toolbar{
    max-width:var(--mast-max);
    margin:0 auto;
    padding:12px 26px 14px;
    display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;
    border-top:1px solid var(--line-3);
}

.sb-tool{display:flex;align-items:center;gap:8px;}

.sb-tool label{
    font-family:var(--f-num);
    font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
    color:var(--ink-500);
}

.sb-divider{width:1px;height:20px;background:var(--line-2);margin:0 4px;}

.sb-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    height:34px;padding:0 16px;
    font-family:var(--f-body);font-size:12.5px;font-weight:700;letter-spacing:.04em;
    color:var(--ink-700);
    background:rgba(255,238,243,.035);
    border:1px solid var(--line-2);
    border-radius:var(--r-pill);
    cursor:pointer;white-space:nowrap;
    transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}

.sb-btn:hover{background:rgba(255,238,243,.08);color:var(--ink-900);border-color:rgba(255,238,243,.28);}
.sb-btn:active{transform:translateY(1px);}
.sb-btn:disabled{opacity:.45;cursor:not-allowed;}

.sb-btn.is-primary{
    color:#fff;
    background:linear-gradient(180deg,#f4486a 0%, #cf2a4d 100%);
    border-color:rgba(255,255,255,.16);
    box-shadow:0 6px 16px rgba(194,42,78,.34);
}
.sb-btn.is-primary:hover{background:linear-gradient(180deg,#ff5b7e 0%, #dd3157 100%);}

.sb-btn.is-ghost{background:transparent;border-color:var(--line);color:var(--ink-600);}
.sb-btn.is-ghost:hover{color:var(--ink-800);background:rgba(255,238,243,.05);}

.sb-select,.sb-input{
    height:34px;padding:0 12px;
    font-family:var(--f-body);font-size:12.5px;font-weight:600;
    color:var(--ink-800);
    background:#1a0e18;
    border:1px solid var(--line-2);
    border-radius:var(--r-sm);
    outline:none;
    transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}

.sb-input{width:92px;}

.sb-select:hover,.sb-input:hover{border-color:rgba(255,238,243,.28);}

.sb-select:focus,.sb-input:focus{
    border-color:var(--ember-line);
    box-shadow:0 0 0 3px rgba(255,92,120,.12);
    background:#1f111c;
}

.sb-check{width:15px;height:15px;accent-color:var(--ember);cursor:pointer;}

/* ========================= 5. 舞台 ========================= */
main{
    flex:1 1 auto;
    min-height:0;
    position:relative;
    background:
        radial-gradient(1200px 420px at 50% -140px, rgba(255,92,120,.055) 0%, rgba(255,92,120,0) 60%),
        linear-gradient(180deg,#0f070e 0%, #0b050a 100%);
}

main::after{
    content:'';
    position:absolute;inset:0;pointer-events:none;
    box-shadow:inset 0 26px 60px rgba(0,0,0,.42);
}

.sb-stage-wrap{flex:0 0 auto;will-change:transform;}

.sb-frame{
    position:relative;
    padding:22px 24px;
    border-radius:var(--r-xl);
    background:linear-gradient(180deg, rgba(40,23,36,.86) 0%, rgba(20,11,19,.92) 54%, rgba(14,7,12,.95) 100%);
    border:1px solid rgba(255,238,243,.16);
    box-shadow:
        0 46px 110px rgba(3,1,2,.70),
        0 0 0 1px rgba(255,92,120,.10),
        0 0 0 7px rgba(255,92,120,.026),
        inset 0 1px 0 rgba(255,238,243,.05);
}

/* 内层米金细框 */
.sb-frame::before{
    content:'';
    position:absolute;inset:8px;border-radius:18px;
    border:1px solid var(--brass-line);
    pointer-events:none;
}

/* 顶沿光带 */
.sb-frame::after{
    content:'';
    position:absolute;left:32px;right:32px;top:0;height:1px;
    background:linear-gradient(90deg,
        rgba(255,92,120,0) 0%, rgba(255,139,160,.70) 22%,
        rgba(232,200,138,.32) 50%,
        rgba(255,139,160,.70) 78%, rgba(255,92,120,0) 100%);
    pointer-events:none;
}

/* 四角刻线（米金） */
.sb-corner{position:absolute;width:18px;height:18px;pointer-events:none;}
.sb-corner::before,.sb-corner::after{content:'';position:absolute;background:var(--brass);}
.sb-corner::before{width:100%;height:1.5px;}
.sb-corner::after{width:1.5px;height:100%;}

.sb-corner--tl{left:16px;top:16px;}    .sb-corner--tl::before{top:0;left:0;}   .sb-corner--tl::after{top:0;left:0;}
.sb-corner--tr{right:16px;top:16px;}   .sb-corner--tr::before{top:0;right:0;}  .sb-corner--tr::after{top:0;right:0;}
.sb-corner--bl{left:16px;bottom:16px;} .sb-corner--bl::before{bottom:0;left:0;}.sb-corner--bl::after{bottom:0;left:0;}
.sb-corner--br{right:16px;bottom:16px;}.sb-corner--br::before{bottom:0;right:0;}.sb-corner--br::after{bottom:0;right:0;}

/* 战术板底栅格：只透过卡片缝隙可见 */
#bracket-container{
    backface-visibility:hidden;
    border-radius:14px;
    background-image:
        linear-gradient(rgba(255,238,243,.019) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,238,243,.019) 1px, transparent 1px);
    background-size:52px 52px, 52px 52px;
}

.sb-connector{transition:stroke-opacity .3s var(--ease);}

/* ========================= 6. 列 / 轮次头 ========================= */
.sb-col{
    display:flex;flex-direction:column;gap:13px;
    width:320px;flex:0 0 320px;height:100%;
    position:relative;z-index:20;
}

.sb-col>.sb-round,.sb-col>.sb-gate{flex:none;}

.sb-col-body{
    flex:1 1 auto;min-height:0;
    display:flex;flex-direction:column;justify-content:space-around;gap:14px;
}

.sb-round{
    position:relative;overflow:hidden;
    padding:15px 16px 12px;
    text-align:center;
    border:1px solid var(--line);
    border-top:2px solid rgba(255,92,120,.55);
    border-radius:var(--r-md);
    background:linear-gradient(180deg, rgba(255,238,243,.055) 0%, rgba(255,238,243,.012) 100%);
    box-shadow:inset 0 1px 0 rgba(255,238,243,.05);
}

/* 超大序号水印 */
.sb-round-idx{
    position:absolute;right:12px;top:4px;
    font-family:var(--f-num);
    font-size:42px;font-weight:700;line-height:1;
    letter-spacing:.01em;
    color:rgba(255,238,243,.075);
    pointer-events:none;user-select:none;
}

.sb-round-name{
    display:block;
    font-family:var(--f-display);
    font-size:17px;font-weight:900;letter-spacing:.12em;
    color:var(--ink-900);
}

.sb-round-time{
    display:block;margin-top:8px;
    font-family:var(--f-num);
    font-size:13.5px;font-weight:700;letter-spacing:.16em;
    color:var(--ember-ink);
}

.sb-round-note{
    display:block;margin-top:8px;padding-top:7px;
    border-top:1px solid var(--line-3);
    font-size:10px;letter-spacing:.02em;
    color:rgba(255,238,243,.36);
}

/* ========================= 7. 分组 ========================= */
[data-tone="blue"]{--tone:var(--win);  --tone-bg:var(--win-soft);  --tone-bd:var(--win-line);}
[data-tone="pink"]{--tone:var(--ember);--tone-bg:var(--ember-soft);--tone-bd:var(--ember-line);}
[data-tone="gold"]{--tone:var(--champ);--tone-bg:var(--champ-soft);--tone-bd:var(--champ-line);}

/* 组头：细标签行，不再是整块色条 */
.sb-group-head{
    position:relative;
    display:flex;align-items:center;
    height:26px;padding:0 2px 0 14px;
    font-family:var(--f-num);
    font-size:15px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
    color:var(--tone,var(--ember-ink));
    background:none;border:none;
}

.sb-group-head::before{
    content:'';
    position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:5px;height:5px;border-radius:1px;
    background:var(--tone,var(--ember));
    box-shadow:0 0 8px var(--tone,var(--ember));
}

.sb-group-head::after{
    content:'';
    position:absolute;left:0;right:0;bottom:0;height:1px;
    background:linear-gradient(90deg, var(--tone-bd,rgba(255,92,120,.30)) 0%, rgba(255,238,243,.05) 58%, transparent 100%);
}

.sb-group-card{
    position:relative;
    padding:6px 10px 6px 12px;
    border:1px solid var(--line);
    border-left:2px solid var(--tone-bd,var(--ember-line));
    border-radius:var(--r-md);
    background:linear-gradient(180deg, rgba(255,238,243,.035) 0%, rgba(255,238,243,.010) 100%);
    box-shadow:0 2px 10px rgba(6,2,5,.40), inset 0 1px 0 rgba(255,238,243,.035);
}

/* ========================= 8. 对局行 ========================= */
.sb-pair{
    position:relative;
    padding:6px 26px 6px 4px;
    border-bottom:1px solid var(--line-3);
}

.sb-pair:last-child{border-bottom:none;}

.sb-pair-key{
    position:absolute;left:2px;top:3px;
    font-family:var(--f-num);font-size:9.5px;font-weight:600;
    letter-spacing:.14em;
    color:rgba(255,238,243,.28);
}

.sb-side{
    display:flex;align-items:center;gap:7px;
    min-width:0;min-height:28px;
    padding:2px 5px;
    border-radius:var(--r-sm);
    transition:background .2s var(--ease), box-shadow .2s var(--ease);
}

.sb-side--top{justify-content:flex-end;}
.sb-side--bottom{justify-content:flex-start;}
.sb-side.is-hl{background:var(--ember-soft);box-shadow:inset 0 0 0 1px rgba(255,92,120,.30);}

.sb-name{
    font-family:var(--f-body);
    font-size:17px;font-weight:700;letter-spacing:.012em;
    color:var(--ink-700);
    min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    transition:color .2s var(--ease);
}

.sb-side.is-win .sb-name{color:var(--ink-900);text-shadow:0 0 12px rgba(255,92,120,.40);}
.sb-side.is-lose .sb-name{color:var(--ink-500);}
.sb-side.is-tbd .sb-name{
    font-family:var(--f-num);font-size:12px;font-weight:600;letter-spacing:.24em;
    color:rgba(255,238,243,.26);
}

/* 胜负竖条 */
.sb-mark{
    flex:none;width:3px;height:20px;border-radius:2px;
    background:rgba(255,238,243,.10);
    transition:background .2s var(--ease), box-shadow .2s var(--ease);
}
.sb-side.is-win  .sb-mark{background:var(--ember);box-shadow:0 0 10px rgba(255,92,120,.60);}
.sb-side.is-lose .sb-mark{background:rgba(255,238,243,.10);}
.sb-side.is-tbd  .sb-mark{background:rgba(255,238,243,.05);}

/* 比分 / VS */
.sb-mid{flex:none;display:flex;align-items:center;justify-content:center;}

.sb-score{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:44px;padding:2px 10px;
    border-radius:var(--r-sm);
    font-family:var(--f-num);font-size:16px;font-weight:700;letter-spacing:.10em;
    color:#ffe3e8;
    background:rgba(255,92,120,.14);
    border:1px solid rgba(255,92,120,.34);
}

.sb-vs{
    position:relative;padding:0 8px;
    font-family:var(--f-num);font-size:11.5px;font-weight:700;letter-spacing:.22em;
    color:rgba(255,238,243,.30);
}

.sb-vs::before,.sb-vs::after{
    content:'';position:absolute;top:50%;width:7px;height:1px;
    background:rgba(255,238,243,.16);
}
.sb-vs::before{left:-3px;}
.sb-vs::after{right:-3px;}

/* 管理端 W/L */
.sb-wl{
    flex:none;width:18px;height:18px;border-radius:6px;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--f-num);font-size:10px;font-weight:700;
    background:rgba(255,238,243,.06);color:var(--ink-600);
    border:1px solid var(--line);cursor:pointer;
    transition:all .2s var(--ease);
}
.sb-wl:hover{background:rgba(255,238,243,.12);color:var(--ink-900);}
.sb-wl.is-on{background:var(--ember);border-color:var(--ember);color:#fff;box-shadow:0 0 10px rgba(255,92,120,.45);}

/* 详情按钮 */
.sb-shot{
    position:absolute;right:0;top:50%;transform:translateY(-50%);
    width:22px;height:22px;border-radius:7px;
    display:flex;align-items:center;justify-content:center;
    font-size:11px;line-height:1;
    background:rgba(255,238,243,.045);
    border:1px solid var(--line);
    color:var(--ink-600);
    cursor:pointer;opacity:.75;
    transition:all .2s var(--ease);
}
.sb-shot:hover{opacity:1;background:rgba(255,238,243,.09);color:var(--ink-800);border-color:var(--line-2);}
.sb-shot.has-data{opacity:1;background:var(--ember-soft);border-color:var(--ember-line);color:var(--ember-ink);}

/* ========================= 9. 晋级 / 淘汰标尺 ========================= */
.sb-gate{
    position:relative;
    padding:10px 13px 11px 15px;
    border:1px solid var(--gate-bd);
    border-left:3px solid var(--gate-tone);
    border-radius:var(--r-md);
    background:linear-gradient(180deg, rgba(255,238,243,.030) 0%, rgba(255,238,243,.006) 100%);
    text-align:left;
    box-shadow:inset 0 1px 0 rgba(255,238,243,.035);
}

.sb-gate--up  {--gate-bd:var(--champ-line);--gate-tone:var(--champ);}
.sb-gate--down{--gate-bd:var(--lose-line); --gate-tone:#ff8089;}

.sb-gate em{
    display:block;
    font-family:var(--f-num);font-style:normal;
    font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
    color:var(--gate-tone,var(--ink-600));
}

.sb-gate b{
    display:block;margin-top:6px;
    font-size:13px;font-weight:800;letter-spacing:.02em;
    color:var(--ink-800);
}

/* ========================= 10. 控制台 / 弹窗 ========================= */
.sb-console{
    width:250px;padding:14px;
    display:flex;flex-direction:column;gap:12px;
    background:linear-gradient(180deg, rgba(32,19,30,.97) 0%, rgba(19,10,18,.97) 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-3), var(--sh-inset);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    color:var(--ink-700);font-size:12px;
}

.sb-console-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}

.sb-console-head h4{
    margin:0;
    font-family:var(--f-display);
    font-size:13.5px;font-weight:900;letter-spacing:.06em;
    color:var(--ink-900);
}

.sb-console label{
    font-family:var(--f-num);
    font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
    color:var(--ink-500);
}

.sb-hint{
    font-family:var(--f-num);
    font-size:11px;letter-spacing:.10em;
    color:var(--ink-500);
}

.sb-state-ok{
    padding:7px 10px;border-radius:var(--r-sm);
    font-size:11.5px;font-weight:700;letter-spacing:.02em;
    color:var(--win);
    background:var(--win-soft);
    border:1px solid var(--win-line);
}

.sb-console-fab{
    width:42px;height:42px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-800);
    background:linear-gradient(180deg,#2a1826,#1a0f19);
    border:1px solid var(--line-2);
    box-shadow:var(--sh-2);
    cursor:pointer;
    transition:all .22s var(--ease);
}
.sb-console-fab:hover{color:#fff;border-color:var(--ember-line);box-shadow:0 0 0 3px rgba(255,92,120,.12), var(--sh-2);}

.sb-modal-mask{
    background:rgba(9,3,8,.74);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}

.sb-modal{
    width:min(420px,92vw);
    padding:22px;
    display:flex;flex-direction:column;gap:16px;
    background:linear-gradient(180deg,#251623 0%, #170d15 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-3);
}

.sb-modal-close{
    width:26px;height:26px;border-radius:var(--r-sm);
    display:flex;align-items:center;justify-content:center;
    font-size:12px;
    color:var(--ink-600);
    background:rgba(255,238,243,.05);
    border:1px solid var(--line);
    cursor:pointer;
    transition:all .2s var(--ease);
}
.sb-modal-close:hover{color:var(--ink-900);background:rgba(255,238,243,.10);}

/* 管理员表单控件（Tailwind 之外的补充） */
.direct-input{
    padding:5px 9px;
    font-family:var(--f-body);font-size:12px;font-weight:700;
    color:var(--ink-900);
    background:rgba(255,238,243,.05);
    border:1px solid var(--line-2);
    border-radius:var(--r-sm);
    outline:none;
    transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.direct-input::placeholder{color:rgba(255,238,243,.26);font-weight:600;}
.direct-input:focus{
    border-color:var(--ember-line);
    background:rgba(255,92,120,.07);
    box-shadow:0 0 0 3px rgba(255,92,120,.10);
}

/* ========================= 11. 底部页签 + 备案 ========================= */
.sb-footer{
    position:relative;
    z-index:30;
    flex:none;
    background:linear-gradient(180deg,#130a12 0%, #0e0610 100%);
    border-top:1px solid var(--line);
}

.sb-footer::before{
    content:'';
    position:absolute;top:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,
        transparent 0%, rgba(255,92,120,.55) 16%,
        rgba(232,200,138,.30) 50%,
        rgba(255,92,120,.55) 84%, transparent 100%);
}

.sb-footer-nav{
    max-width:var(--mast-max);
    margin:0 auto;
    padding:11px 26px 0;
    display:flex;align-items:center;gap:6px;
}

.sb-nav-btn{
    flex:1 1 0;min-width:0;
    display:flex;align-items:center;justify-content:center;
    height:38px;padding:0 10px;
    font-family:var(--f-body);font-size:13px;font-weight:700;letter-spacing:.05em;
    color:var(--ink-600);
    text-decoration:none;white-space:nowrap;
    border:1px solid transparent;border-radius:var(--r-pill);
    transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}

.sb-nav-btn:hover{color:var(--ink-900);background:rgba(255,238,243,.06);border-color:var(--line);}
.sb-nav-btn.is-active{color:var(--ember-ink);background:var(--ember-soft);border-color:var(--ember-line);}

.sb-footer-meta{
    max-width:var(--mast-max);
    margin:0 auto;
    padding:7px 26px 12px;
    display:flex;align-items:center;justify-content:space-between;gap:20px;
}

.sb-copy{
    font-family:var(--f-num);
    font-size:11px;font-weight:500;letter-spacing:.20em;text-transform:uppercase;
    color:var(--ink-500);
}

.sb-beian{
    font-size:11.5px;letter-spacing:.06em;
    color:var(--ink-500);text-decoration:none;
    border-bottom:1px solid var(--line);
    padding-bottom:1px;
    transition:color .2s var(--ease), border-color .2s var(--ease);
}
.sb-beian:hover{color:var(--ink-700);border-color:var(--line-2);}

/* ========================= 12. 自适应 ========================= */
@media (max-width:1500px){
    .sb-title{font-size:29px;}
    .sb-meta-cell{padding:0 18px;min-width:110px;}
    .sb-mast{padding:18px 20px 14px;}
    .sb-toolbar{padding:11px 20px 13px;}
    .sb-footer-nav{padding:10px 20px 0;gap:5px;}
    .sb-footer-meta{padding:6px 20px 11px;}
    .sb-nav-btn{font-size:12px;}
}

@media (max-width:1180px){
    .sb-mast{flex-direction:column;align-items:flex-start;gap:16px;}
    .sb-mast-meta{flex-wrap:wrap;}
    .sb-meta-cell{border-left:none;padding:0 20px 0 0;}
    .sb-footer-nav{flex-wrap:wrap;}
    .sb-nav-btn{flex:1 1 46%;}
    .sb-copy{display:none;}
}

/* ========================= 13. 4K 及超大屏专属增强 ========================= */
@media (min-width: 2560px) {
    :root {
        /* 放开 4K 下顶栏与底栏最大宽 */
        --mast-max: 2800px;
    }

    /* 增强大屏文字边缘锐利度，防止 GPU 放大模糊 */
    .sb-stage-wrap {
        transform-style: preserve-3d;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    /* 4K 下顶栏标题稍微提亮增大，符合大屏刊物气场 */
    .sb-title {
        font-size: 42px;
    }
    .sb-kicker {
        font-size: 13px;
    }
    .sb-sub {
        font-size: 14px;
    }
    .sb-meta-cell b {
        font-size: 15px;
    }
}


/* =========================================================================
   队伍成员悬停面板 · team_roster_pop.js
   悬停【淘汰赛卡片队名 / 小组表战队名 / 瑞士轮队伍名】时弹出该队大名单
   全部取用本页既有 token（深底 / 余烬红 / 米金发丝线 / 语义色），不引入新配色
   ========================================================================= */
.trp{
    position:fixed;left:0;top:0;z-index:8000;
    width:272px;
    display:flex;flex-direction:column;
    max-height:min(72vh,470px);
    border-radius:var(--r-md);
    background:linear-gradient(180deg, rgba(40,23,36,.97) 0%, rgba(24,13,22,.98) 58%, rgba(17,9,15,.99) 100%);
    border:1px solid var(--line-2);
    box-shadow:var(--sh-2), 0 0 0 1px rgba(255,92,120,.10);
    color:var(--ink-700);
    font-family:var(--f-body);
    transform-origin:top left;
    opacity:0;visibility:hidden;
    transition:opacity .16s var(--ease), visibility .16s var(--ease);
    pointer-events:auto;
}
.trp.is-on{opacity:1;visibility:visible;}
.trp::before{
    content:'';position:absolute;inset:5px;border-radius:calc(var(--r-md) - 4px);
    border:1px solid var(--brass-line, rgba(232,200,138,.13));
    pointer-events:none;
}
.trp-top{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:12px 15px 9px;
}
.trp-kicker{
    font-family:var(--f-num);font-size:10px;font-weight:600;
    letter-spacing:.24em;text-transform:uppercase;
    color:var(--ink-500);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.trp-budget{
    flex:none;
    font-family:var(--f-num);font-size:11.5px;font-weight:600;letter-spacing:.10em;
    color:var(--champ);background:var(--champ-soft);
    border:1px solid var(--champ-line, rgba(240,180,41,.34));
    border-radius:var(--r-pill);padding:2px 9px;
}
.trp-name{
    padding:0 15px 11px;
    font-family:var(--f-display);font-size:17px;font-weight:900;line-height:1.25;letter-spacing:.02em;
    color:var(--ink-900);
    border-bottom:1px solid var(--line);
}
.trp-body{overflow:auto;padding:4px 0 5px;max-height:min(52vh,340px);}
.trp-row{display:flex;align-items:center;gap:9px;padding:6px 15px;font-size:13px;}
.trp-row:nth-child(odd){background:rgba(255,238,243,.022);}
.trp-tier{
    flex:none;display:inline-flex;align-items:center;justify-content:center;
    min-width:24px;height:18px;padding:0 5px;
    font-family:var(--f-num);font-size:11px;font-weight:600;letter-spacing:.08em;
    border-radius:var(--r-xs);
    color:var(--ink-600);background:rgba(255,238,243,.06);
}
/* 档位配色纪律：仅顶级 S 用冠军金、A 用品牌余烬红做强调，其余走中性灰阶，
   避免抢占「胜者组蓝 / 败者组红 / 顺位紫」的语义色含义 */
.trp-tier[data-tier="S"]{color:#f6c667;background:rgba(240,180,41,.18);}
.trp-tier[data-tier="A"]{color:var(--ember-ink);background:var(--ember-soft);}
.trp-tier[data-tier="B"]{color:var(--ink-700);background:rgba(255,238,243,.07);}
.trp-tier[data-tier="C"]{color:var(--ink-600);background:rgba(255,238,243,.05);}
.trp-tier[data-tier="D"]{color:var(--ink-500);background:rgba(255,238,243,.04);}
.trp-pname{
    flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:7px;
    font-weight:700;color:var(--ink-800);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.trp-cap{
    flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:16px;height:16px;
    font-family:var(--f-num);font-size:10px;font-weight:700;font-style:normal;line-height:1;letter-spacing:.04em;
    color:#fff;background:linear-gradient(180deg,var(--ember),var(--ember-deep));
    border-radius:4px;
}
.trp-draft{
    flex:none;
    font-size:11px;font-weight:700;letter-spacing:.08em;
    color:var(--ember-ink);background:var(--ember-soft);
    border-radius:var(--r-xs);padding:2px 7px;
}
.trp-price{
    flex:none;
    font-family:var(--f-num);font-size:13px;font-weight:600;letter-spacing:.06em;
    color:var(--ink-600);
}
.trp-empty{padding:15px 15px 17px;font-size:12.5px;line-height:1.6;color:var(--ink-500);text-align:center;}
.trp-foot{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:8px 15px 10px;
    border-top:1px solid var(--line);
    font-family:var(--f-num);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink-500);
}
/* 已命中大名单的队伍：只给一个轻量悬停提示，不改动既有视觉 */
.trp-has{cursor:help;}
.trp-has .sb-name{cursor:help;}
@media (max-width:600px){.trp{width:232px;}}

/* ==================== 赛事直播（直播员 / 陪伴员 / 直播间 + 饭票结算） ==================== */
/* 有人直播 → 场次按钮切换为动态录像机 */
.sb-shot.is-livecam{
  opacity:1;
  color:#ff5c78;
  background:rgba(255,92,120,.14);
  border-color:rgba(255,92,120,.46);
  box-shadow:0 0 0 1px rgba(255,92,120,.16), 0 0 12px rgba(255,92,120,.26);
}
.sb-shot.is-livecam:hover{
  background:rgba(255,92,120,.22);
  color:#ff8ba0;
  border-color:rgba(255,92,120,.62);
}
.sb-shot.is-livecam svg circle{animation:sbLivePulse 1.15s ease-in-out infinite; transform-origin:center;}
@keyframes sbLivePulse{0%,100%{opacity:1;}50%{opacity:.22;}}

.sb-live-box{
  margin-top:14px;
  padding:13px 14px;
  border-radius:var(--r-md);
  background:linear-gradient(180deg, rgba(255,238,243,.045), rgba(255,238,243,.02));
  border:1px solid var(--line);
}
.sb-live-head{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
.sb-live-title{display:flex; align-items:center; gap:7px; font-size:12px; font-weight:800; color:var(--ink-800); letter-spacing:.02em;}
.sb-live-led{width:8px; height:8px; border-radius:50%; background:var(--ink-500); box-shadow:0 0 0 3px rgba(255,238,243,.05);}
.sb-live-led.on{background:#ff5c78; box-shadow:0 0 0 3px rgba(255,92,120,.18); animation:sbLivePulse 1.2s ease-in-out infinite;}
.sb-live-tag{margin-left:auto; font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:var(--r-pill);
  background:rgba(255,92,120,.14); color:#ff8ba0; border:1px solid rgba(255,92,120,.40);}
.sb-live-tag.dim{background:rgba(255,238,243,.05); color:var(--ink-600); border-color:var(--line);}
.sb-live-settle{margin-top:12px; padding-top:11px; border-top:1px dashed var(--line-2); display:flex; flex-direction:column; gap:6px;}
.sb-live-settled{padding:8px 11px; border-radius:var(--r-sm); text-align:center; font-size:11.5px; font-weight:700;
  background:var(--win-soft); border:1px solid var(--win-line); color:var(--ink-800);}
.sb-live-enter{display:block; margin-top:11px; padding:10px; text-align:center; border-radius:var(--r-sm);
  font-size:12px; font-weight:800; letter-spacing:.02em; text-decoration:none;
  background:linear-gradient(180deg, rgba(255,92,120,.22), rgba(255,92,120,.12));
  border:1px solid rgba(255,92,120,.48); color:#ffb3c1; transition:all .18s var(--ease);}
.sb-live-enter:hover{background:rgba(255,92,120,.28); color:#fff3f0;}
.sb-live-enter.is-disabled{background:rgba(255,238,243,.04); border-color:var(--line); color:var(--ink-500);
  font-weight:600; cursor:not-allowed;}
