@charset "UTF-8";
/* =============================================================================
   chikeai.cn · 主页 cute_rank.php 皮肤层 v8.0
   材质基线：S11 赛程表 / candy_bracket 深色转播台（design token 同源）
   -----------------------------------------------------------------------------
   单一皮肤策略：本文件即唯一皮肤。
   · 浅色皮肤（body.theme-cute）及其全部覆盖分支已随本次重构整体删除；
   · 主题切换按钮与 toggleTheme() 一并移除，页面不存在第二套配色入口；
   · 旧变量名（--gold / --blue-team / --red-team / --point-up …）仅在文件末尾
     「兼容层」以桥接写法映射到新 token，供 common.css 与历史内联样式使用。
   区块：1 token · 2 基础 · 3 报头 · 4 工具栏与指令条 · 5 主舞台 · 6 巅峰三甲 ·
        7 榜单 · 8 评级 · 9 侧栏 · 10 页脚与备案 · 11 弹窗表单 · 12 管理台 ·
        13 语音面板 · 14 兼容层 · 14.5 细节层 · 15 响应式 · 16 动效与无障碍
   ============================================================================= */

/* ============================== 1. DESIGN TOKENS ========================== */
:root{
    /* 语义色：赛事红 / 胜 / 负 / 冠军金 / 特殊位紫 */
    --ember:#ff5c78;
    --ember-ink:#ff8fa8;
    --ember-soft:rgba(255,92,120,.12);
    --ember-line:rgba(255,92,120,.34);

    --win:#5cb8ea;
    --win-ink:#8fd0f2;
    --win-soft:rgba(92,184,234,.12);
    --win-line:rgba(92,184,234,.32);

    --lose:#ff5f6d;
    --lose-ink:#ff9aa3;
    --lose-soft:rgba(255,95,109,.12);
    --lose-line:rgba(255,95,109,.32);

    --champ:#e8c88a;
    --champ-soft:rgba(232,200,138,.12);
    --champ-line:rgba(232,200,138,.34);

    --seed:#a98cf5;
    --seed-ink:#c2aef8;
    --seed-soft:rgba(169,140,245,.12);
    --seed-line:rgba(169,140,245,.32);

    --brass:#c9a86a;
    --brass-line:rgba(201,168,106,.30);

    /* 青玉（守约 / 完赛 / 中性数据） */
    --jade:#5dc9a8;
    --jade-ink:#8ee0c6;
    --jade-soft:rgba(93,201,168,.12);
    --jade-line:rgba(93,201,168,.30);

    /* 榜单单一网格：表头与数据行共用同一组轨道，评级列因此恒定对齐 */
    --row-grid:44px minmax(0,1fr) 96px minmax(360px,44%);

    /* 墨色文本（向品牌红偏色，非纯白） */
    --ink-900:#ffeef3;
    --ink-800:#f0dae2;
    --ink-700:#d2b3bf;
    --ink-600:#a98b98;
    --ink-500:#7d6270;

    /* 纸面 */
    --paper-0:#0b0509;
    --paper-1:#120810;
    --paper-2:#180c15;
    --paper-3:#20101c;

    --line:rgba(255,238,243,.06);
    --line-2:rgba(255,238,243,.11);
    --line-3:rgba(255,238,243,.035);

    /* 圆角 / 字体 / 阴影 / 缓动 */
    --r-xs:4px;
    --r-sm:8px;
    --r-lg:14px;
    --r-pill:999px;
    --f-display:"Noto Serif SC","Songti SC","STSong","Source Han Serif SC",serif;
    --f-body:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
    --f-num:"DIN Alternate","JetBrains Mono","SF Mono",Consolas,monospace;
    --sh-1:0 2px 10px rgba(0,0,0,.40);
    --sh-2:0 18px 40px rgba(0,0,0,.50);
    --sh-3:0 26px 60px rgba(0,0,0,.60);
    --ease:cubic-bezier(.22,1,.36,1);
    --mast-max:1460px;
}

/* ============================== 2. 基础 ================================== */
html{background:var(--paper-0);}

body{
    font-family:var(--f-body);
    color:var(--ink-700);
    min-height:100vh;
    padding-bottom:0;                /* 页脚回归文档流，不再做固定占位 */
    background-color:var(--paper-1);
    background-image:
        radial-gradient(1100px 480px at 16% -180px, rgba(255,92,120,.15) 0%, rgba(255,92,120,0) 62%),
        radial-gradient(900px 420px at 88% -140px, rgba(93,201,168,.10) 0%, rgba(93,201,168,0) 64%),
        radial-gradient(820px 400px at 64% 116%, rgba(169,140,245,.08) 0%, rgba(169,140,245,0) 66%),
        linear-gradient(180deg, rgba(18,9,16,.90) 0%, rgba(14,7,13,.94) 52%, rgba(10,4,9,.96) 100%),
        url('../uploads/chikeai_paima1.png');
    background-size:auto,auto,auto,auto,cover;
    background-position:center top,center top,center top,center top,center top;
    background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat;
    background-attachment:fixed,fixed,fixed,fixed,fixed;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

::selection{background:rgba(255,92,120,.28);color:var(--ink-900);}

::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:var(--paper-0);}
::-webkit-scrollbar-thumb{background:rgba(255,238,243,.10);border-radius:var(--r-pill);}
::-webkit-scrollbar-thumb:hover{background:var(--ember-line);}

a{color:var(--ink-700);text-decoration:none;transition:color .2s var(--ease);}
a:hover{color:var(--ember-ink);}

:focus-visible{outline:1px solid var(--ember-line);outline-offset:2px;}

/* 排版工具类：替代历史内联色值 */
.txt-champ{color:var(--champ);}
.txt-win{color:var(--win-ink);}
.txt-lose{color:var(--lose-ink);}
.txt-ember{color:var(--ember-ink);}
.txt-seed{color:var(--seed-ink);}
.txt-muted{color:var(--ink-600);}
.mono{font-family:var(--f-num);letter-spacing:.04em;}

/* ============================== 3. 报头（刊物式） ======================== */
.sb-header{
    position:relative;
    z-index:100;
    background:linear-gradient(180deg, rgba(12,6,10,.96) 0%, rgba(12,6,10,.90) 100%);
    -webkit-backdrop-filter:blur(12px) saturate(1.05);
    backdrop-filter:blur(12px) saturate(1.05);
    border-bottom:1px solid var(--line-2);
}

.sb-header::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-mast{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    max-width:var(--mast-max);
    margin:0 auto;
    padding:20px 26px 16px;
}

.sb-mast-brand{
    display:flex;
    align-items:center;
    gap:20px;
    min-width:0;
}

.mast-emblem{
    flex:none;
    width:126px;
    height:74px;
    display:grid;
    place-items:center;
    padding:6px;
    background:rgba(255,238,243,.025);
    border:1px solid var(--line-2);
    border-radius:var(--r-sm);
    box-shadow:inset 0 0 0 1px rgba(255,238,243,.02);
}

.mast-emblem .main-logo-img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.65));
}

.mast-text{
    min-width:0;
    padding-left:20px;
    border-left:1px solid var(--line);
}

.sb-kicker{
    font-family:var(--f-num);
    font-size:10.5px;
    font-weight:600;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--ember-ink);
}

/* 主标题与管理员入口同排 */
.mast-title-row{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin:7px 0 6px;
}

.sb-title{
    margin:0;
    font-family:var(--f-display);
    font-size:36px;
    font-weight:800;
    line-height:1.08;
    letter-spacing:.06em;
    color:var(--ink-900);
}

.sb-sub{
    margin:0;
    max-width:660px;
    font-size:13.5px;
    line-height:1.8;
    color:var(--ink-700);
}

.sb-mast-meta{
    display:flex;
    flex:none;
    align-items:stretch;
}

.sb-meta-cell{
    display:flex;
    flex-direction:column;
    gap:6px;
    justify-content:center;
    min-width:118px;
    padding:0 22px;
    border-left:1px solid var(--line);
}

.sb-meta-cell em{
    font-family:var(--f-num);
    font-size:10px;
    font-style:normal;
    font-weight:500;
    letter-spacing:.20em;
    text-transform:uppercase;
    color:var(--ink-500);
}

.sb-meta-cell b{
    font-family:var(--f-num);
    font-size:13.5px;
    font-weight:700;
    letter-spacing:.02em;
    color:var(--ink-800);
}

/* ============================== 4. 工具栏 ================================ */

/* 顶部速览：供货商铭牌 */
.vip-ghost{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:0;
    font-family:var(--f-body);
    font-size:13px;
    letter-spacing:.04em;
    color:var(--ink-600);
    background:none;
    border:0;
    box-shadow:none;
    animation:none;
    cursor:default;
}

.vip-ghost::before{
    content:'';
    width:5px;
    height:5px;
    background:var(--brass);
    transform:rotate(45deg);
}

/* 报头工具栏：与报头同宽、同轴心，供货商铭牌与版本号分列两端，不再贴边脱节 */
.sb-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    flex-wrap:wrap;
    max-width:var(--mast-max);
    margin:0 auto;
    padding:11px 26px 13px;
}

/* ---------- 吸顶指令条 ---------- */
.sb-cmdbar{
    position:sticky;
    top:0;
    z-index:110;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line-2);
    background:linear-gradient(180deg, rgba(12,6,11,.96) 0%, rgba(16,8,14,.92) 100%);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:0 10px 26px rgba(0,0,0,.34);
}

.sb-cmdbar-inner{
    display:flex;
    align-items:center;
    gap:18px;
    max-width:var(--mast-max);
    margin:0 auto;
    padding:8px 26px;
}

.sbb-brand{
    display:inline-flex;
    align-items:center;
    gap:9px;
    flex:none;
    min-width:0;
}

.sbb-dot{
    flex:none;
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--ember);
    box-shadow:0 0 10px rgba(255,92,120,.85);
    animation:cmd-pulse 2.6s var(--ease) infinite;
}

@keyframes cmd-pulse{
    0%,100%{opacity:1;transform:scale(1);}
    50%{opacity:.42;transform:scale(.7);}
}

.sbb-name{
    font-family:var(--f-display);
    font-size:13.5px;
    font-weight:800;
    letter-spacing:.10em;
    color:var(--ink-800);
    white-space:nowrap;
}

.sbb-sub{
    font-family:var(--f-num);
    font-size:10.5px;
    letter-spacing:.20em;
    text-transform:uppercase;
    color:var(--ink-500);
    white-space:nowrap;
}

.sbb-links{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex:1 1 auto;
    min-width:0;
    overflow-x:auto;
    scrollbar-width:none;
}

.sbb-links::-webkit-scrollbar{height:0;}

.sbb-link{
    flex:none;
    padding:5px 12px;
    font-family:var(--f-body);
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.03em;
    color:var(--ink-600);
    text-decoration:none;
    white-space:nowrap;
    border:1px solid var(--line);
    border-radius:var(--r-pill);
    transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}

.sbb-link:hover{color:var(--ember-ink);border-color:var(--ember-line);background:var(--ember-soft);}

/* ---------- 管理入口：与「吃可爱料理榜」主标题同排 ---------- */
.action-btns{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:8px;
    flex:none;
    padding-left:16px;
    border-left:1px solid var(--line);
}

.admin-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:30px;
    padding:0 14px;
    font-family:var(--f-body);
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.05em;
    color:var(--ink-600);
    white-space:nowrap;
    background:rgba(255,238,243,.03);
    border:1px solid var(--line);
    border-radius:var(--r-pill);
    cursor:pointer;
    transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}

.admin-btn:hover{color:var(--ink-900);border-color:var(--ember-line);background:rgba(255,92,120,.10);}
.admin-btn[data-accent="champ"]{color:var(--champ);border-color:var(--champ-line);}
.admin-btn[data-accent="champ"]:hover{background:var(--champ-soft);box-shadow:0 6px 18px rgba(232,200,138,.18);}
.admin-btn[data-accent="lose"]{color:var(--lose-ink);border-color:var(--lose-line);}
.admin-btn[data-accent="lose"]:hover{background:var(--lose-soft);}
/* ============================== 5. 主舞台 ================================ */
.stage{
    position:relative;
    z-index:1;
    max-width:var(--mast-max);
    margin:0 auto;
    padding:22px 26px 56px;
}

/* 主报表：单一深色纸面，内部用发丝线分区（不做卡片套卡片） */
.score-frame{
    position:relative;
    background:linear-gradient(180deg, rgba(30,16,27,.72) 0%, rgba(17,9,16,.88) 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-2), inset 0 0 0 1px rgba(255,238,243,.02);
    overflow:hidden;
}

.sb-corner{
    position:absolute;
    width:15px;height:15px;
    border:1px solid var(--brass-line);
    pointer-events:none;
    z-index:3;
}
.sb-corner-tl{top:7px;left:7px;border-right:0;border-bottom:0;}
.sb-corner-tr{top:7px;right:7px;border-left:0;border-bottom:0;}
.sb-corner-bl{bottom:7px;left:7px;border-right:0;border-top:0;}
.sb-corner-br{bottom:7px;right:7px;border-left:0;border-top:0;}

.board-top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    padding:20px 24px 16px;
    border-bottom:1px solid var(--line);
}

.board-kicker{
    font-family:var(--f-num);
    font-size:11px;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--ink-500);
}

.board-title{
    margin:7px 0 0;
    font-family:var(--f-display);
    font-size:21px;
    font-weight:800;
    letter-spacing:.10em;
    color:var(--ink-900);
}

/* 图例已移除：颜色语义改由行内名称色与评级标签自带表达 */

/* 仪表盘栅格：主列 + 侧列，列间以发丝线分隔 */
.dashboard{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,392px);
    align-items:start;
}

.dash-main{
    min-width:0;
    padding:18px 24px 24px;
}

.dash-side{
    display:flex;
    flex-direction:column;
    gap:18px;
    padding:20px 22px 24px;
    border-left:1px solid var(--line);
    background:linear-gradient(180deg, rgba(255,238,243,.012), rgba(255,238,243,0));
}

/* ============================== 6. 领奖台（Top 3） ====================== */

.podium-head{
    display:flex;
    align-items:center;
    gap:14px;
    margin:2px 0 13px;
}

.ph-label{
    flex:none;
    font-family:var(--f-display);
    font-size:16px;
    font-weight:800;
    letter-spacing:.14em;
    color:var(--ink-900);
}

.ph-rule{
    flex:1 1 auto;
    height:1px;
    background:linear-gradient(90deg, var(--brass-line) 0%, rgba(255,238,243,.06) 66%, rgba(255,238,243,0) 100%);
}

.ph-en{
    flex:none;
    font-family:var(--f-num);
    font-size:10.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--ink-500);
}

/* 三甲：冠军 2 倍宽主视觉 + 两张副卡，评级/数据统一压进卡底信息条 */
.podium-section{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:14px;
    margin:0 0 26px;
}

.pcard{
    position:relative;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(38,20,33,.86) 0%, rgba(16,8,14,.94) 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-1);
    transition:transform .32s var(--ease), border-color .32s var(--ease), box-shadow .32s var(--ease);
}

.pcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}

.pcard-side.rank-2-card{border-color:var(--win-line);}
.pcard-side.rank-3-card{border-color:var(--lose-line);}

.pcard-hero{
    border-color:var(--champ-line);
    box-shadow:0 20px 46px rgba(0,0,0,.55), inset 0 0 0 1px rgba(232,200,138,.10);
}

.pcard-hero:hover{transform:translateY(-4px);box-shadow:0 26px 56px rgba(0,0,0,.60), 0 0 30px rgba(232,200,138,.16);}

.pcard-hero::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:3px;
    background:linear-gradient(90deg, rgba(232,200,138,0), var(--champ) 24%, #fff3d2 50%, var(--champ) 76%, rgba(232,200,138,0));
    z-index:4;
}

.pcard-hero::after{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(115deg, rgba(255,255,255,0) 38%, rgba(232,200,138,.09) 50%, rgba(255,255,255,0) 62%);
    z-index:3;
}

.pc-figure{
    position:relative;
    flex:1 1 auto;
    overflow:hidden;
    background:radial-gradient(120% 100% at 50% 0%, rgba(255,92,120,.12), rgba(0,0,0,0) 64%), #0d060b;
}

.pcard-hero .pc-figure{min-height:238px;}
.pcard-side .pc-figure{min-height:152px;}

.pc-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 20%;
    opacity:0;
    transform:scale(1.04);
    transition:opacity .5s var(--ease), transform .8s var(--ease);
}

.pc-img.loaded{opacity:1;transform:scale(1);}
.pcard-hero .pc-img{filter:saturate(1.06) contrast(1.03);}
.pcard-side .pc-img{filter:saturate(.92) brightness(.95);}

.pc-figure::after{
    content:'';
    position:absolute;
    left:0;right:0;bottom:0;
    height:64%;
    background:linear-gradient(180deg, rgba(10,4,9,0) 0%, rgba(10,4,9,.74) 60%, rgba(10,4,9,.94) 100%);
}

.pc-fallback{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    font-family:var(--f-display);
    font-size:62px;
    font-weight:800;
    letter-spacing:.06em;
    color:rgba(255,238,243,.06);
}

.pcard-side .pc-fallback{font-size:46px;}

.pc-rank-tag{
    position:absolute;
    top:12px;left:12px;
    z-index:5;
    padding:6px 15px;
    font-family:var(--f-num);
    font-size:13px;
    font-weight:900;
    letter-spacing:.14em;
    color:#fff6fb;
    background:rgba(10,4,9,.86);
    border:1px solid rgba(255,238,243,.44);
    border-radius:var(--r-pill);
    backdrop-filter:blur(6px);
    box-shadow:0 8px 20px rgba(0,0,0,.55);
    text-shadow:0 1px 6px rgba(0,0,0,.85);
}

.pcard-hero .pc-rank-tag{
    top:14px;left:14px;
    padding:7px 18px;
    font-size:15px;
    font-weight:900;
    letter-spacing:.16em;
    color:#2a1a05;
    background:linear-gradient(180deg,#fdf0cd,#e6c684);
    border-color:rgba(255,255,255,.80);
    box-shadow:0 10px 26px rgba(232,200,138,.42), 0 0 0 3px rgba(232,200,138,.14);
    text-shadow:none;
}

.pcard-side .pc-rank-tag{font-size:13.5px;font-weight:900;padding:6px 14px;border-width:1px;}
.pcard-side.rank-2-card .pc-rank-tag{color:#f2fbff;background:rgba(92,184,234,.44);border-color:rgba(150,214,248,.88);box-shadow:0 8px 20px rgba(92,184,234,.34), 0 0 0 2px rgba(92,184,234,.12);text-shadow:0 1px 6px rgba(0,0,0,.78);}
.pcard-side.rank-3-card .pc-rank-tag{color:#fff2f4;background:rgba(255,95,109,.44);border-color:rgba(255,160,172,.88);box-shadow:0 8px 20px rgba(255,95,109,.34), 0 0 0 2px rgba(255,95,109,.12);text-shadow:0 1px 6px rgba(0,0,0,.78);}

.pc-pts{
    position:absolute;
    right:13px;bottom:12px;
    z-index:5;
    font-family:var(--f-num);
    font-size:26px;
    font-weight:800;
    line-height:1;
    letter-spacing:.01em;
    color:var(--ink-900);
    text-shadow:0 2px 14px rgba(0,0,0,.75);
}

.pcard-hero .pc-pts{font-size:42px;color:#ffeec6;text-shadow:0 6px 24px rgba(0,0,0,.80);}

.pc-pts span{
    margin-left:3px;
    font-size:12px;
    font-weight:600;
    letter-spacing:.06em;
    color:var(--ink-600);
}

.pcard-hero .pc-pts span{color:rgba(255,238,198,.72);}

/* 语音按钮（三甲与榜单共用一套皮肤） */
.audio-btn{
    display:inline-grid;
    place-items:center;
    width:26px;
    height:26px;
    font-size:14px;
    line-height:1;
    cursor:pointer;
    border-radius:50%;
    color:var(--ember-ink);
    background:rgba(255,92,120,.10);
    border:1px solid var(--ember-line);
    transition:background .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease);
}

.audio-btn:hover{background:rgba(255,92,120,.22);border-color:var(--ember);transform:scale(1.08);}

.pc-audio{
    position:absolute;
    top:12px;right:12px;
    z-index:5;
    width:28px;
    height:28px;
    justify-content:center;
    background:rgba(10,4,9,.74);
    backdrop-filter:blur(6px);
}

.pc-body{
    position:relative;
    z-index:5;
    display:flex;
    flex-direction:column;
    gap:7px;
    padding:11px 14px 13px;
    background:linear-gradient(180deg, rgba(24,12,21,.92) 0%, rgba(14,7,12,.97) 100%);
    border-top:1px solid var(--line);
}

.pc-name-row{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}

.pc-flag{
    flex:none;
    display:grid;
    place-items:center;
    width:17px;
    height:17px;
    font-size:9px;
    font-weight:800;
    color:#3a1020;
    background:linear-gradient(180deg,#ffc2cf,#ff8fa8);
    border-radius:50%;
}

.pc-name{
    min-width:0;
    font-family:var(--f-display);
    font-size:17px;
    font-weight:800;
    letter-spacing:.04em;
    color:var(--ink-900);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    cursor:help;
}

.pcard-hero .pc-name{font-size:22px;color:#ffeec6;}
.pcard-side .pc-name{font-size:15.5px;}
.pc-name.pc-female{color:var(--ember-ink);}

.pc-meta{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    min-width:0;
    flex-wrap:nowrap;
}

.pc-record{
    font-family:var(--f-num);
    font-size:13.5px;
    font-weight:600;
    letter-spacing:.03em;
    color:var(--ink-700);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* 三甲卡的数据行（场次 · 胜率）单独加权，避免被压到看不清 */
.pcard-hero .pc-record{font-size:15px;color:rgba(255,238,198,.92);}
.pcard-side .pc-record{font-size:13px;color:var(--ink-700);}
/* ============================== 7. 榜单 ================================== */

.ranking-board{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(20,10,18,.70) 0%, rgba(12,6,11,.80) 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-1);
}

.ranking-board::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:1px;
    background:linear-gradient(90deg, rgba(255,92,120,0), rgba(255,92,120,.55) 22%, rgba(232,200,138,.34) 50%, rgba(255,92,120,.55) 78%, rgba(255,92,120,0));
}

.board-bar{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    padding:13px 18px;
    border-bottom:1px solid var(--line);
    background:linear-gradient(180deg, rgba(255,92,120,.05), rgba(255,92,120,0));
}

.board-tabs{display:flex;align-items:center;gap:8px;flex:none;}

.board-tab-btn{
    height:32px;
    padding:0 16px;
    font-family:var(--f-body);
    font-size:13px;
    font-weight:700;
    letter-spacing:.03em;
    color:var(--ink-600);
    background:rgba(255,238,243,.03);
    border:1px solid var(--line);
    border-radius:var(--r-pill);
    cursor:pointer;
    transition:color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}

.board-tab-btn:hover{color:var(--ink-900);border-color:var(--line-2);background:rgba(255,238,243,.06);}

.board-tab-btn.active{
    color:#2a1a05;
    background:linear-gradient(180deg,#f4dfae,#dfbb79);
    border-color:rgba(255,255,255,.36);
    box-shadow:0 8px 22px rgba(232,200,138,.22);
}

.board-search{width:220px;margin-left:auto;}

/* 表头与数据行共用 --row-grid 轨道：评级列因此恒定对齐，不再随名字长短漂移 */
.list-header{
    display:grid;
    grid-template-columns:var(--row-grid);
    align-items:center;
    flex:none;
    gap:14px;
    padding:11px 18px;
    background:linear-gradient(180deg, rgba(255,238,243,.06), rgba(255,238,243,.01));
    border-bottom:1px solid var(--line);
    font-family:var(--f-num);
    font-size:12.5px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-700);
}

.list-header span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.player-strip{
    display:grid;
    grid-template-columns:var(--row-grid);
    align-items:center;
    gap:14px;
    padding:11px 18px;
    border-bottom:1px solid var(--line-3);
    transition:background .2s var(--ease), box-shadow .2s var(--ease);
}

.player-strip:last-child{border-bottom:0;}

.player-strip:hover{
    background:linear-gradient(90deg, rgba(255,92,120,.08), rgba(255,92,120,0) 62%);
    box-shadow:inset 2px 0 0 var(--ember-line);
}

.strip-left{
    grid-column:1 / span 2;
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 30px;
    align-items:center;
    gap:14px;
    min-width:0;
}

.rank-num{
    font-family:var(--f-num);
    font-size:22px;
    font-weight:800;
    line-height:1;
    letter-spacing:.02em;
    text-align:center;
    color:var(--ink-500);
    transition:color .2s var(--ease);
}

.player-strip:hover .rank-num{color:var(--ink-800);}

.player-name{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    font-family:var(--f-display);
    font-size:15.5px;
    font-weight:700;
    letter-spacing:.02em;
    color:var(--ink-800);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    cursor:help;
}

.player-name img{
    flex:none;
    width:30px !important;
    height:30px !important;
    border-radius:50% !important;
    object-fit:cover !important;
    border:1px solid var(--line-2) !important;
    background:var(--paper-2);
}

.female-strip{background:linear-gradient(90deg, rgba(255,92,120,.06), rgba(255,92,120,0) 58%);}
.female-strip .player-name{color:var(--ember-ink);}
.female-strip .rank-num{color:var(--ember-ink);}

/* 评级列：固定轴心，居中于同一轨道 */
.strip-mid{
    grid-column:3;
    display:flex;
    align-items:center;
    justify-content:center;
}

.strip-right{
    grid-column:4;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
}

.stat-box{display:flex;flex-direction:column;align-items:center;gap:3px;}

.stat-box .label{
    font-family:var(--f-num);
    font-size:12px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-600);
}

.stat-box .val{
    font-family:var(--f-num);
    font-size:15.5px;
    font-weight:800;
    letter-spacing:.02em;
    color:var(--ink-900);
}

.score-badge{
    min-width:108px;
    padding:8px 15px;
    text-align:center;
    font-family:var(--f-num);
    font-size:16px;
    font-weight:800;
    letter-spacing:.02em;
    color:#fff1cf;
    background:linear-gradient(180deg, rgba(232,200,138,.24), rgba(232,200,138,.10));
    border:1px solid var(--champ-line);
    border-radius:var(--r-pill);
}

/* 失信鸽子榜：语义红贯穿整行 */
#pigeonListArea .player-strip:hover{
    background:linear-gradient(90deg, rgba(255,95,109,.10), rgba(255,95,109,0) 62%);
    box-shadow:inset 2px 0 0 var(--lose-line);
}

#pigeonListArea .rank-num{color:var(--lose-ink);}
/* ============================== 8. 评级徽章 ============================== */

.grade-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    height:28px;
    min-width:62px;
    padding:0 13px;
    font-family:var(--f-num);
    font-size:13.5px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--ink-800);
    background:rgba(255,238,243,.12);
    border:1px solid var(--line-2);
    border-radius:var(--r-pill);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}

/* 顶级（金） */
.grade-sr,
.grade-ss,
.grade-sr_plus{
    color:#241305;
    background:linear-gradient(180deg,#f6e3b6,#d9b573);
    border-color:rgba(255,255,255,.36);
    box-shadow:0 6px 18px rgba(232,200,138,.22);
}

/* 高阶（藤紫） */
.grade-s,
.grade-s_plus{
    color:#f2ecff;
    background:linear-gradient(180deg, rgba(169,140,245,.58), rgba(169,140,245,.32));
    border-color:rgba(198,175,255,.62);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(169,140,245,.20);
}

/* 优良（胜色蓝） */
.grade-a,
.grade-a_plus{
    color:#ecf8ff;
    background:linear-gradient(180deg, rgba(92,184,234,.56), rgba(92,184,234,.30));
    border-color:rgba(130,206,246,.60);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(92,184,234,.18);
}

/* 良好（青玉） */
.grade-b{
    color:#eafff9;
    background:linear-gradient(180deg, rgba(93,201,168,.54), rgba(93,201,168,.28));
    border-color:rgba(126,218,190,.60);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(93,201,168,.16);
}

/* 合格（中性） */
.grade-c{
    color:var(--ink-800);
    background:rgba(255,238,243,.16);
    border-color:var(--line-2);
}

/* 待提升（余烬） */
.grade-d{
    color:#fff0f2;
    background:linear-gradient(180deg, rgba(255,92,120,.56), rgba(255,92,120,.30));
    border-color:rgba(255,142,161,.60);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(255,92,120,.18);
}

/* 垫底（负色） */
.grade-e{
    color:#ffeff1;
    background:linear-gradient(180deg, rgba(255,95,109,.58), rgba(255,95,109,.32));
    border-color:rgba(255,146,160,.62);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(255,95,109,.20);
}
/* ============================== 9. 侧栏面板 ============================== */
.nav-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:0;
}

.nav-btn{
    display:flex;
    align-items:center;
    gap:8px;
    height:42px;
    padding:0 13px;
    font-size:13.5px;
    font-weight:700;
    letter-spacing:.03em;
    color:var(--ink-600);
    background:rgba(255,238,243,.028);
    border:1px solid var(--line);
    border-radius:var(--r-sm);
    box-shadow:none;
    transition:color .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.nav-btn::before{
    content:'';
    flex:none;
    width:5px;height:5px;
    background:var(--brass);
    transform:rotate(45deg);
}
.nav-btn:hover{
    color:var(--ink-900);
    background:rgba(255,92,120,.07);
    border-color:var(--ember-line);
    transform:none;
}

.widget-box{
    position:relative;
    padding:16px 0 14px;
    background:none;
    border:0;
    border-top:1px solid var(--line);
    border-radius:0;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    overflow:visible;
}
.widget-box::before{
    content:'';
    position:absolute;top:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg, rgba(232,200,138,.22), rgba(232,200,138,0) 72%);
}
.widget-box::after{content:none;}

.widget-title{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:12px;
    padding:0;
    font-family:var(--f-display);
    font-size:15px;
    font-weight:800;
    letter-spacing:.10em;
    color:var(--ink-900);
    background:none;
    border:0;
}
.widget-title::after{
    content:'';
    flex:1;
    height:1px;
    background:linear-gradient(90deg, var(--line-2), transparent);
}

#yesterdayChampionContent{color:var(--ink-600);}

.h-season{margin-bottom:15px;}
.h-season:last-child{margin-bottom:0;}

.h-s-title{
    display:inline-block;
    margin-bottom:9px;
    padding:3px 10px;
    font-family:var(--f-num);
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--champ);
    background:var(--champ-soft);
    border:1px solid var(--champ-line);
    border-radius:var(--r-pill);
}

.h-item{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    padding:10px 12px;
    background:rgba(255,238,243,.028);
    border-left:2px solid var(--brass-line);
    border-radius:0 var(--r-sm) var(--r-sm) 0;
}

.h-team{
    font-size:13.5px;
    font-weight:700;
    letter-spacing:.02em;
    color:var(--ink-800);
    white-space:nowrap;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
}

.h-members{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:5px;
    font-size:11.5px;
    line-height:1.4;
    color:var(--ink-600);
    text-align:left;
}

/* 历届冠军成员标签：收小一档，避免两行布局把面板撑得过高 */
.h-item .name-tag{padding:3px 9px;font-size:11.5px;font-weight:600;}

.rule-section{margin-bottom:16px;}
.rule-section:last-child{margin-bottom:0;}

.rule-subtitle{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:9px;
    font-family:var(--f-display);
    font-size:13px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--champ);
}
.rule-subtitle::before{
    content:'';
    width:4px;height:12px;
    background:var(--ember);
}

.rule-list{list-style:none;margin:0;padding:0;}
.rule-list li{
    position:relative;
    margin-bottom:9px;
    padding-left:14px;
    font-size:13.5px;
    line-height:1.75;
    color:var(--ink-700);
}
.rule-list li::before{
    content:'';
    position:absolute;
    left:2px;top:9px;
    width:5px;height:1px;
    background:var(--brass);
}
.rule-list li:last-child{margin-bottom:0;}

.val-up{font-family:var(--f-num);font-weight:700;color:var(--champ);}
.val-down{font-family:var(--f-num);font-weight:700;color:var(--lose-ink);}

.rule-note{
    display:inline-block;
    margin-top:1px;
    font-size:12px;
    color:var(--ink-500);
}

/* 语音按钮：内联 emoji 统一压成单色标记，悬停恢复 */
/* ============================== 10. 页脚页签 ============================= */

.sb-footer{
    position:relative;
    z-index:30;
    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,.32) 50%,
        rgba(255,92,120,.55) 84%, transparent 100%);
}

.sb-footer-nav{
    max-width:var(--mast-max);
    margin:0 auto;
    padding:14px 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:40px;
    padding:0 12px;
    font-family:var(--f-body);
    font-size:14.5px;
    font-weight:700;
    letter-spacing:.04em;
    color:var(--ink-800);
    text-decoration:none;
    white-space:nowrap;
    border:1px solid transparent;
    border-radius:var(--r-pill);
    cursor:pointer;
    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;
    flex-wrap:wrap;
}

.sb-copy{
    font-family:var(--f-num);
    font-size:13px;
    font-weight:700;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--ink-700);
}

/* 报头工具行的版本号保持低调，不随页脚字号一起放大 */
.sb-toolbar .sb-copy{
    font-weight:500;
    font-size:11.5px;
    letter-spacing:.16em;
    color:var(--ink-500);
}

.sb-footer-links{
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}

.sb-link-btn{
    padding:0;
    font-family:var(--f-body);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.04em;
    color:var(--ink-600);
    background:none;
    border:0;
    border-bottom:1px solid transparent;
    cursor:pointer;
    transition:color .2s var(--ease), border-color .2s var(--ease);
}

.sb-link-btn:hover{color:var(--ember-ink);border-bottom-color:var(--ember-line);}

.sb-beian{
    font-family:var(--f-num);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.05em;
    color:var(--ink-600);
    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);}
/* ============================== 11. 弹窗与表单 =========================== */
.modal-overlay{
    background:rgba(7,3,7,.82);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
}

.modal-content{
    background:linear-gradient(180deg, #1c0f19 0%, #140911 100%);
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-3);
    color:var(--ink-700);
}

.modal-content.modal-large{border-color:var(--brass-line);}

.modal-header{
    padding:16px 22px;
    border-bottom:1px solid var(--line);
    background:none;
}
.modal-header h3{
    margin:0;
    font-family:var(--f-display);
    font-size:18px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--ink-900);
    background:none;
    -webkit-text-fill-color:currentColor;
    text-shadow:none;
}

.modal-close{
    color:var(--ink-500);
    background:none;
    border:0;
    cursor:pointer;
    transition:color .2s var(--ease);
}
.modal-close:hover{color:var(--ember-ink);}

.form-group{margin-bottom:14px;}
.form-group label{
    display:block;
    margin-bottom:6px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    color:var(--ink-600);
}

.form-control{
    width:100%;
    padding:8px 12px;
    font-family:var(--f-body);
    font-size:13px;
    color:var(--ink-900);
    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);
}
.form-control::placeholder{color:rgba(255,238,243,.24);}
.form-control:focus{
    border-color:var(--ember-line);
    background:#20111c;
    box-shadow:0 0 0 3px rgba(255,92,120,.10);
}
.form-control:disabled{opacity:.5;cursor:not-allowed;}

select.form-control,
select#edit_origin{
    padding:8px 12px;
    color:var(--ink-900);
    background:#1a0e18;
    border:1px solid var(--line-2);
    border-radius:var(--r-sm);
}

input[type="checkbox"]{accent-color:var(--ember);}

hr{
    border:0;
    border-top:1px solid var(--line) !important;
    margin:18px 0 !important;
}

.btn-submit{
    padding:10px 22px;
    font-family:var(--f-body);
    font-size:13px;
    font-weight:800;
    letter-spacing:.06em;
    color:#1a0410;
    background:linear-gradient(180deg, #ff7c96 0%, #e04a68 100%);
    border:1px solid rgba(255,255,255,.10);
    border-radius:var(--r-pill);
    cursor:pointer;
    box-shadow:0 6px 18px rgba(224,74,104,.22);
    transition:filter .2s var(--ease), box-shadow .2s var(--ease);
}
.btn-submit:hover{filter:brightness(1.07);box-shadow:0 8px 22px rgba(224,74,104,.30);}
.btn-submit:active{filter:brightness(.96);}

/* 语义按钮（替代历史内联背景色） */
.btn-brass{background:linear-gradient(180deg,#e8c88a,#c9a86a);color:#241407;box-shadow:0 6px 18px rgba(201,168,106,.20);}
.btn-win{background:linear-gradient(180deg,#7cc8f0,#3f9fd0);color:#04141d;box-shadow:0 6px 18px rgba(63,159,208,.20);}
.btn-lose{background:linear-gradient(180deg,#ff7b86,#d9414e);color:#fff;box-shadow:0 6px 18px rgba(217,65,78,.20);}

/* 表格式数据 */
.list-table{width:100%;border-collapse:collapse;font-size:13px;}
.list-table th{
    padding:9px 10px;
    font-family:var(--f-num);
    font-size:12px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-align:left;
    color:var(--ink-500);
    border-bottom:1px solid var(--line-2);
}
.list-table td{
    padding:9px 10px;
    color:var(--ink-700);
    border-bottom:1px solid var(--line-3);
    vertical-align:middle;
}
.list-table tbody tr:hover{background:rgba(255,238,243,.03);}

.lib-chk{accent-color:var(--ember);}
.pos-chk{accent-color:var(--ember);}

.log-list{list-style:none;margin:0;padding:0;}
.log-list li{
    position:relative;
    margin-bottom:10px;
    padding-left:16px;
    font-size:13px;
    line-height:1.7;
    color:var(--ink-700);
}
.log-list li:last-child{margin-bottom:0;}
.log-list li::before{
    content:'';
    position:absolute;
    left:2px;top:9px;
    width:5px;height:5px;
    background:var(--brass);
    transform:rotate(45deg);
}
.log-list strong{
    margin-right:7px;
    font-family:var(--f-num);
    font-size:12px;
    letter-spacing:.08em;
    color:var(--champ);
}

/* 鸣谢 */
.vip-hero{text-align:center;padding:10px 0 6px;}
.vip-hero h4{
    margin:0 0 4px;
    font-family:var(--f-num);
    font-size:12px;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--ink-500);
}
.vip-name{
    font-family:var(--f-display);
    font-size:30px;
    font-weight:800;
    letter-spacing:.14em;
    color:var(--champ);
    background:none;
    -webkit-text-fill-color:currentColor;
    text-shadow:0 2px 16px rgba(232,200,138,.22);
}

.name-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:6px 0 4px;}
.name-tag{
    padding:6px 13px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.03em;
    color:var(--ink-800);
    background:rgba(255,238,243,.035);
    border:1px solid var(--line-2);
    border-radius:var(--r-pill);
    box-shadow:none;
}

/* ============================== 12. 管理台 =============================== */
.adm-tabs{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:16px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
}

.adm-tab{
    display:inline-flex;
    align-items:center;
    gap:8px;
    height:32px;
    padding:0 14px;
    font-family:var(--f-body);
    font-size:13.5px;
    font-weight:700;
    letter-spacing:.03em;
    color:var(--ink-600);
    background:rgba(255,238,243,.03);
    border:1px solid var(--line);
    border-radius:var(--r-pill);
    cursor:pointer;
    transition:color .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.adm-tab::before{
    content:'';
    width:5px;height:5px;
    background:var(--brass);
    transform:rotate(45deg);
}
.adm-tab:hover{color:var(--ink-900);border-color:var(--line-2);}
.adm-tab.active{
    color:var(--ember-ink);
    background:var(--ember-soft);
    border-color:var(--ember-line);
}

.adm-panel{
    padding:14px 16px;
    background:rgba(255,238,243,.02);
    border:1px solid var(--line);
    border-radius:var(--r-sm);
}

.adm-h4{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 12px;
    font-family:var(--f-display);
    font-size:13.5px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--champ);
}
.adm-h4::before{
    content:'';
    width:4px;height:12px;
    background:var(--ember);
}

.adm-hint{font-size:12px;line-height:1.7;color:var(--ink-600);margin:0 0 10px;}

.adm-scroll{max-height:400px;overflow-y:auto;}
.adm-scroll-sm{max-height:300px;overflow-y:auto;}
.adm-scroll-xs{max-height:150px;overflow-y:auto;padding:6px;background:rgba(0,0,0,.14);border-radius:var(--r-sm);}

.adm-line{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}

/* 选手资料弹窗内的功能开关条 */
.flag-female,
.flag-perm{
    padding:11px 13px;
    border-radius:var(--r-sm);
}
.flag-female{background:var(--ember-soft);border:1px solid var(--ember-line);}
.flag-perm{background:var(--win-soft);border:1px solid var(--win-line);}

.flag-label{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0;
    font-size:13px;
    font-weight:800;
    letter-spacing:.02em;
    cursor:pointer;
}
.flag-female .flag-label{color:var(--ember-ink);}
.flag-perm .flag-label{color:var(--win-ink);}

.pos6-label{color:var(--seed-ink);font-weight:800;}

.field-inline-label{margin:0;display:flex;align-items:center;gap:5px;cursor:pointer;color:var(--ink-700);font-weight:600;}

.pos-row{display:flex;align-items:center;gap:8px;height:33px;flex-wrap:wrap;}

#avatarStatus,#bgStatus{font-size:11px;color:var(--ink-500);margin-top:5px;}

/* ============================== 13. 语音面板 ============================= */
.audio-float-panel{
    background:linear-gradient(180deg, #1c0f19 0%, #140911 100%) !important;
    border:1px solid var(--line-2) !important;
    border-radius:var(--r-lg) !important;
    box-shadow:var(--sh-3) !important;
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
}

.af-header{border-bottom:1px solid var(--line) !important;}

.af-title{
    font-family:var(--f-display) !important;
    font-size:14px !important;
    font-weight:800 !important;
    letter-spacing:.08em !important;
    color:var(--ink-900) !important;
    border-bottom:0 !important;
}

.af-close{
    color:var(--ink-500) !important;
    background:none !important;
    border:0 !important;
    cursor:pointer;
}
.af-close:hover{color:var(--ember-ink) !important;}

.af-list::-webkit-scrollbar{width:6px;}
.af-list::-webkit-scrollbar-thumb{background:var(--ember-line) !important;border-radius:var(--r-pill);}

.audio-bubble{
    background:linear-gradient(180deg, #ff7c96 0%, #e04a68 100%) !important;
    color:#1a0410 !important;
    border:0 !important;
    box-shadow:0 8px 22px rgba(224,74,104,.30) !important;
}

.player-info-panel{
    background:linear-gradient(180deg, #1c0f19 0%, #140911 100%) !important;
    border:1px solid var(--line-2) !important;
    box-shadow:var(--sh-2) !important;
}

.pip-tag-item{font-family:var(--f-body);font-weight:700;text-shadow:none;}

/* 列表表头列宽（原为内联样式） */
.list-header span:nth-child(1){grid-column:2;text-align:left;}
.list-header span:nth-child(2){grid-column:3;text-align:center;}
.list-header span:nth-child(3){grid-column:4;text-align:right;}

.credits-sub{
    margin:2px 0 14px;
    font-family:var(--f-num);
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    text-align:center;
    color:var(--win-ink);
}

/* 布局与尺寸工具类（替代历史内联样式，统一进皮肤层） */
.modal-narrow{width:350px;}
.row{display:flex;gap:12px;}
.row-5{display:flex;gap:8px;align-items:center;}
.row-wrap{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.col{flex:1;min-width:0;}
.grow{flex:1;min-width:150px;}
.grow-sm{flex:1;min-width:140px;}
.btn-auto{width:auto;margin:0;}
.btn-inline{padding:7px 16px;font-size:12px;}
.btn-flex{flex:1;}
.field-80{width:80px;}
.field-110{width:110px;}
.field-130{width:130px;}
.field-140{width:140px;}
.field-150{width:150px;}
.field-200{width:200px;}
.m-0{margin:0 !important;}
.mb-10{margin-bottom:10px;}
.mt-neg5{margin-top:-5px;}

/* ============================== 13.4 动态内容归一化（覆盖 JS 注入的内联色值） ============ */
#listArea .player-strip .player-name{color:var(--ink-900) !important;text-shadow:none !important;}
#listArea .player-strip .player-name.female-name{color:var(--ember-ink) !important;}
#podiumArea > div[style]:not([class]),
#historyChampsArea > div[style]:not([class]),
#pigeonListArea > div[style]:not([class]){padding:26px 0 !important;color:var(--ink-500) !important;font-style:normal !important;text-align:center;}

/* 榜单前三甲：沿用领奖台的冠军金 / 胜色 / 负色，取消原彩虹霓虹 */
#listArea .player-strip .player-name.rank-top1{color:var(--champ) !important;}
#listArea .player-strip .player-name.rank-top2{color:var(--win-ink) !important;}
#listArea .player-strip .player-name.rank-top3{color:var(--lose-ink) !important;}
/* 女性选手标识：粉调 -> 皮肤余烬色 */
.podium-female{border-color:var(--ember-line) !important;}
.podium-female .pc-name{color:var(--ember-ink) !important;}
.h-item.gold{border-left-color:var(--champ-line);}
.h-item.gold .h-team{color:var(--champ);}

/* 侧栏滚动容器：高度跟随侧栏剩余空间，底部与榜单底部同水平面 */
.history-list{
    flex:1 1 auto;
    min-height:160px;
    max-height:min(44vh, 620px);
    overflow-y:auto;
    padding-right:6px;
    scrollbar-width:thin;
    scrollbar-color:var(--brass-line) rgba(255,238,243,.05);
}
.history-list::-webkit-scrollbar{width:9px;}
.history-list::-webkit-scrollbar-track{background:rgba(255,238,243,.05);border-radius:var(--r-pill);}
.history-list::-webkit-scrollbar-thumb{background:var(--brass-line);border-radius:var(--r-pill);}
.history-list::-webkit-scrollbar-thumb:hover{background:var(--brass);}

/* 历届冠军面板：吃掉侧栏剩余高度，使其底部与榜单底部齐平 */
.widget-box.history-box{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
}

/* 底部对齐生效后（JS 已精确给定列表高度）：面板退出拉伸，高度完全由对齐结果决定 */
.dash-side.is-synced .widget-box.history-box{flex:0 0 auto;}

/* 本期冠军：预留两支队伍的展示空间 */
#yesterdayChampionBox{flex:none;}
#yesterdayChampionContent{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:160px;
}
.rule-box{border-top:0;}

/* ============================== 14. 兼容层 =============================== */
/* 旧变量名 -> 新作者皮肤 token 的桥接：common.css 共享组件与历史内联样式
   全部改走新调色板，页面内不再存在第二套取色（--gold/--blue-team/--red-team/…）。 */
:root,body{
    --bg-dark:var(--paper-1);
    --bg-panel:var(--paper-2);
    --text-main:var(--ink-900);
    --text-muted:var(--ink-600);
    --border-line:var(--line-2);
    --blue-team:var(--win);
    --blue-glow:rgba(92,184,234,.28);
    --red-team:var(--lose);
    --red-glow:rgba(255,95,109,.28);
    --gold:var(--champ);
    --gold-glow:rgba(232,200,138,.26);
    --silver:var(--ink-500);
    --bronze:var(--brass);
    --point-up:var(--champ);
    --point-down:var(--lose-ink);
    --shadow-color:rgba(0,0,0,.55);
    --strip-hover:var(--paper-3);
    --modal-bg:linear-gradient(180deg, #1c0f19 0%, #140911 100%);
}
/* common.js 动态注入的内联色值（历史亮绿）统一收敛到品牌语义色 */
#avatarStatus span[style],
#bgStatus span[style]{color:var(--champ) !important;}
#adminLibList span[style*="#00b894"]{color:var(--champ) !important;}
#adminLibList span[style*="#e74c3c"]{color:var(--lose-ink) !important;}

.admin-audio-item{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
    padding:8px 10px;
    background:rgba(255,238,243,.03);
    border:1px solid var(--line);
    border-radius:var(--r-sm);
    transition:border-color .2s var(--ease);
}
.admin-audio-item:hover{border-color:var(--brass-line);}
.admin-audio-item button{
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:var(--r-xs) !important;
    padding:3px 9px !important;
    font-family:var(--f-body);font-size:11px !important;font-weight:700 !important;
    cursor:pointer;
}
.admin-audio-item button:nth-child(1){background:var(--champ) !important;color:#241407 !important;}
.admin-audio-item button:nth-child(2){background:var(--win) !important;color:#04141d !important;}
.admin-audio-item button:nth-child(3){background:var(--lose) !important;color:#fff !important;}

.pip-tag-count{font-family:var(--f-num);}

/* ============================== 14.5 v8.0 细节层 ==========================
   语义色点缀 + 版式修饰 + 弹窗版面统一；不改变任何数据流与接口。 */

/* 图例补一枚青玉色标（守约 / 完赛） */
.lg-sw.is-jade{background:var(--jade);box-shadow:0 0 8px var(--jade-line);}

/* 侧栏入口按面板语义着色：色彩更丰富，但每屏只出现一枚高饱和 */
.nav-btn{position:relative;overflow:hidden;}
.nav-btn:nth-child(1):hover{border-color:var(--ember-line);background:var(--ember-soft);color:var(--ember-ink);}
.nav-btn:nth-child(2):hover{border-color:var(--champ-line);background:var(--champ-soft);color:var(--champ);}
.nav-btn:nth-child(3):hover{border-color:var(--win-line);background:var(--win-soft);color:var(--win-ink);}
.nav-btn:nth-child(4):hover{border-color:var(--jade-line);background:var(--jade-soft);color:var(--jade-ink);}

/* 面板标题：左侧加一枚渐变小亮条，替代单调的纯文字标题 */
.widget-title{position:relative;padding-left:12px;}
.widget-title::before{
    content:'';
    position:absolute;
    left:0;top:50%;
    transform:translateY(-50%);
    width:4px;height:14px;
    border-radius:2px;
    background:linear-gradient(180deg, var(--ember), var(--champ));
}

/* 榜单滚动区：固定可视高度 + 独立滚动条，页面本身不再被几百行选手撑长 */
.scrollable-list{
    max-height:clamp(500px, 74vh, 1000px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--brass-line) rgba(255,238,243,.05);
}

/* 搜索筛选未命中的行：用 class 隐藏，清空搜索后自动还原 grid 轨道 */
.player-strip.is-filtered-out{display:none !important;}
.scrollable-list::-webkit-scrollbar{width:7px;}
.scrollable-list::-webkit-scrollbar-track{background:transparent;}
.scrollable-list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:var(--r-pill);}

/* 弹窗：统一版面与滚动，长表单不再顶出屏幕底部居中 */
.modal-content{max-height:88vh;overflow-y:auto;overscroll-behavior:contain;}
.modal-content::-webkit-scrollbar{width:7px;}
.modal-content::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:var(--r-pill);}
.modal-header h3{font-size:17px;letter-spacing:.06em;}

/* 管理台表格：首列图钉、数值列使用等宽数字 */
.list-table td:first-child{font-family:var(--f-num);font-weight:700;color:var(--ink-700);}
.list-table td{font-size:13px;}

/* 鸽子榜数值胶囊：负色语义 */
.score-badge.is-lose{
    color:var(--lose-ink);
    background:linear-gradient(180deg, rgba(255,95,109,.20), rgba(255,95,109,.06));
    border-color:var(--lose-line);
}

/* 三甲加载占位：跨满整行，居中 */
.podium-section > div:not([class]){grid-column:1 / -1;text-align:center;color:var(--ink-600);}

/* 弹窗：始终在视口内垂直居中，长表单内部滚动，不再溢出到屏幕下方 */
.modal-overlay{align-items:center;justify-content:center;padding:28px;}
.modal-content{max-height:min(88vh, 900px);}

/* 侧栏导航：4 项按钮天然 2×2 排满，无需末项通栏 */

/* ============================== 15. 响应式 ============================== */
@media (max-width:1500px){
    .sb-title{font-size:30px;}
    .sb-meta-cell{min-width:106px;padding:0 16px;}
    .sb-mast{padding:18px 20px 14px;}
    .sb-toolbar{padding:11px 20px 13px;}
    .stage{padding:18px 20px 48px;}
    .board-top{padding:18px 20px 14px;}
    .dash-main{padding:16px 20px 20px;}
    .dash-side{padding:18px 18px 20px;}
    .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:1280px){
    .dashboard{grid-template-columns:1fr;}
    .dash-side{border-left:0;border-top:1px solid var(--line);}
    .sb-mast{flex-direction:column;align-items:flex-start;gap:16px;}
    .sb-mast-meta{flex-wrap:wrap;}
    .sb-meta-cell{border-left:0;padding:0 22px 0 0;min-width:auto;}
    .sb-mast{border-bottom:1px solid var(--line);}
}

@media (max-width:1180px){
    .sb-footer-nav{flex-wrap:wrap;}
    .sb-nav-btn{flex:1 1 46%;}
    .sb-copy{display:none;}
    .podium-section{gap:12px;}
    .pcard-hero .pc-figure{min-height:204px;}
    .pcard-side .pc-figure{min-height:140px;}
    .pcard-hero .pc-name{font-size:20px;}
    .pcard-hero .pc-pts{font-size:36px;}
}

@media (max-width:900px){
    .sb-title{font-size:25px;}
    .mast-emblem{width:98px;height:60px;}
    /* 三甲折为「冠军通栏 + 两张并排」 */
    .podium-section{grid-template-columns:1fr 1fr;}
    .pcard-hero{grid-column:1 / span 2;}
    .pcard-hero .pc-figure{min-height:184px;}
    .pcard-side .pc-figure{min-height:128px;}
    .sbb-links{display:none;}
    .sb-cmdbar-inner{padding:8px 16px;}
    /* 榜单窄屏：收掉评级列与场次块，姓名不再被挤压 */
    .list-header,
    .player-strip{--row-grid:38px minmax(0,1fr) 96px;}
    .list-header span:nth-child(2){display:none;}
    .list-header span:nth-child(3){grid-column:3;}
    .strip-mid{display:none;}
    .strip-right{grid-column:3;gap:10px;}
    .strip-right .stat-box:first-child{display:none;}
    .list-header{padding:9px 14px;}
    .player-strip{padding:10px 14px;gap:10px;}
    .board-search{width:100%;margin-left:0;}
}

@media (max-width:620px){
    .podium-section{grid-template-columns:1fr;}
    .pcard-hero{grid-column:auto;}
    .pcard-hero .pc-figure{min-height:210px;}
    .pcard-side .pc-figure{min-height:150px;}
    .pcard-side .pc-name{font-size:16px;}
    .board-bar{gap:10px;}
    .board-tab-btn{padding:0 12px;font-size:12.5px;}
    .stat-box{display:none;}
    /* 极窄屏：列头标签已无对应列，整行隐藏，避免语义错位 */
    .list-header{display:none;}
    .list-header,
    .player-strip{--row-grid:34px minmax(0,1fr) 92px;}
    .player-name{font-size:14.5px;}
    .score-badge{min-width:88px;padding:6px 11px;font-size:14px;}
    .sb-footer-meta{padding:8px 16px 12px;gap:12px;}
    .sb-footer-nav{padding:12px 16px 0;}
}

/* ============================== 16. 动效与无障碍 ======================== */
@keyframes skinRise{
    from{opacity:0;transform:translateY(10px);}
    to{opacity:1;transform:translateY(0);}
}

.score-frame{animation:skinRise .5s var(--ease) both;}

@keyframes pulse-audio{
    0%{transform:scale(1);box-shadow:0 0 0 0 rgba(232,200,138,.34);}
    70%{transform:scale(1.04);box-shadow:0 0 0 12px rgba(232,200,138,0);}
    100%{transform:scale(1);box-shadow:0 0 0 0 rgba(232,200,138,0);}
}

.audio-playing{
    animation:pulse-audio 1.6s var(--ease) infinite;
    border-color:var(--champ-line) !important;
}

@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
    }
}
