:root {
    --bg: #000;
    --ink: #f8f0df;
    --muted: #cbb892;
    --line: rgba(240, 196, 110, 0.45);
    --card: #000;
    --gold: #f0d48a;
    --gold-deep: #c4893a;
    --red: #f0d48a;
    --purple: #000;
    --tab-h: 2.6rem;
    --safe-b: env(safe-area-inset-bottom, 0px);
    --safe-t: env(safe-area-inset-top, 0px);
    --frame: #e8c27a;
}

* { box-sizing: border-box; }

html {
    color-scheme: only dark;
    background-color: #000;
    font-size: 16px;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
}
@media (max-width: 374px) {
    html { font-size: calc(100vw / 23.4375); }
}
html.is-tv-board { font-size: 16px; }
html, body {
    margin: 0;
    padding: 0;
    background: #000;
    color: var(--ink);
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    -webkit-text-size-adjust: 100%;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; }

.phone {
    position: relative;
    width: min(100%, 480px);
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0 auto;
    background: #000;
    padding-bottom: var(--tab-h);
}

.phone-honor {
    background: #000;
}
html.is-tv-board .tabbar { display: none !important; }
html.is-tv-board .phone {
    max-width: none;
    width: 100%;
    min-height: 100vh;
    border-radius: 0;
    padding-bottom: 1.2rem;
}

.appbar, .topbar {
    padding: 10px 1.1rem 0.2rem;
    text-align: center;
}

.appbar h1, .topbar h1 {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 650;
    letter-spacing: 0.04em;
}

.appbar p, .domain {
    margin: 0.18rem 0 0;
    color: #a89068;
    font-size: 0.75rem;
}

.topbar { text-align: left; padding-right: 5.6rem; }
.appbar { padding-left: 5.6rem; padding-right: 5.6rem; }
.topbar-compact { padding-bottom: 0; }

.eyebrow {
    margin: 0 0 0.3rem;
    color: var(--gold);
    font-size: 0.72rem;
    letter-spacing: 0.16em;
}

h1 { margin: 0; font-size: 1.45rem; font-weight: 650; line-height: 1.25; }

.lead {
    margin: 0.4rem 0 0;
    color: var(--muted);
    font-size: 0.88rem;
}

.lead span + span::before { content: " \00b7 "; }

.sheet { padding: 0.7rem 0.9rem 1.2rem; }

.hero {
    position: relative;
    margin: -0.7rem -0.9rem 1rem;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #000;
    line-height: 0;
}

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.62);
    pointer-events: none;
}

.hero-photo {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(0.45) saturate(0.55);
}

.block { margin-bottom: 0.95rem; }

.kicker {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    margin: 0 0 0.55rem;
    color: var(--gold);
    font-size: 0.84rem;
}

.kicker em {
    color: #a89068;
    font-style: normal;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
}

.member, .panel, .card, .asset, .cells, .profile {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 0.9rem;
}

.member {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem;
    border-color: rgba(240, 196, 110, 0.45);
    background: #000;
}

.avatar {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex: none;
    background: transparent;
    color: #f7f0e4;
    border: 1px solid rgba(240, 210, 150, 0.4);
}

.member strong, .profile strong { display: block; }
.member p, .profile p { margin: 0.15rem 0 0; color: var(--muted); font-size: 0.78rem; }
.member-copy { flex: 1; min-width: 0; }

.spade {
    width: 4.6rem;
    height: 3.4rem;
    border-radius: 0.45rem;
    border: 1px solid rgba(240, 210, 150, 0.55);
    background: #000;
    color: #f7f0e4;
    line-height: 1.1;
}

.spade b { font-size: 0.58rem; letter-spacing: 0.08em; }
.spade span { font-size: 1rem; }
.spade small { font-size: 0.55rem; letter-spacing: 0.12em; }

.wallet {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
}

.tile {
    padding: 0.7rem 0.2rem 0.6rem;
    text-align: center;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    color: inherit;
    text-decoration: none;
}
a.tile { display: block; }

.tile span, .tile small { display: block; color: var(--muted); }
.tile span { font-size: 0.72rem; }
.tile b {
    display: block;
    margin: 0.28rem 0;
    font-size: clamp(0.82rem, 3.8vw, 1.25rem);
    font-weight: 650;
    color: var(--gold);
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: break-all;
}
.tile small { font-size: 0.62rem; }
.tile-scan {
    background: #000;
    border-color: rgba(240, 196, 110, 0.55);
}
.tile-scan b, .tile-scan span, .tile-scan small { color: var(--gold); }
.tile-scan b { font-size: 1.05rem; }

.entries { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem; margin-bottom: 0.95rem; }
.entries:has(> :only-child) { grid-template-columns: 1fr; }
.entry {
    display: block;
    padding: 0.85rem 0.75rem;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 0.85rem;
}
.entry strong, .entry span { display: block; }
.entry strong { font-size: 0.95rem; }
.entry span { margin-top: 0.25rem; color: var(--muted); font-size: 0.72rem; }

.panel-head { display: flex; justify-content: space-between; align-items: center; }
.panel-head .kicker { margin: 0; }
.panel-head a { color: var(--muted); font-size: 0.75rem; }

.activity-head .kicker span { color: var(--gold); font-size: 1.02rem; font-weight: 700; }
.activity-head a { color: #9a9088; font-size: 0.75rem; }
.activity {
    display: flex;
    gap: 0.7rem;
    margin-top: 0.7rem;
    overflow-x: auto;
    padding-bottom: 0.15rem;
}
.activity a {
    flex: 0 0 7.6rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.activity a:nth-child(even) { background: transparent; border: 0; }
.activity .cover {
    display: block;
    width: 100%;
    aspect-ratio: 750 / 1334;
    height: auto;
    object-fit: contain;
    object-position: center top;
    background: #000;
    border-radius: 0.4rem;
    margin: 0;
}
.activity strong {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
}
.act-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem 0.6rem; }
.act-card { display: block; min-width: 0; }
.act-card .act-cover {
    display: block;
    width: 100%;
    aspect-ratio: 750 / 1334;
    height: auto;
    object-fit: contain;
    object-position: center top;
    background: #000;
    border-radius: 0.45rem;
    margin: 0;
}
.act-card strong {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.82rem;
    font-weight: 500;
    text-align: center;
    line-height: 1.35;
}
.act-card em {
    display: block;
    margin-top: 0.15rem;
    color: var(--muted);
    font-style: normal;
    font-size: 0.72rem;
    text-align: center;
    line-height: 1.35;
}
.detail-poster {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 0.85rem;
    border-radius: 0.45rem;
}
.act-body { white-space: pre-wrap; }
.hint, .empty-line { margin: 0.5rem 0 0; color: var(--muted); text-align: center; font-size: 0.86rem; }

.card {
    display: block;
    margin-bottom: 0.65rem;
    padding: 0.9rem 0.95rem;
    background: #000;
    border-color: rgba(240, 196, 110, 0.28);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}
.card-meta, .cells li, .row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.tag {
    display: inline-flex;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(240, 210, 150, 0.14);
    color: var(--gold);
    font-size: 0.72rem;
}
.card-meta time { color: var(--muted); font-size: 0.75rem; }
.card h2 { margin: 0.45rem 0 0; font-size: 1rem; font-weight: 620; line-height: 1.45; }

.empty { margin-top: 1.4rem; padding: 1.2rem 0.2rem; text-align: center; color: var(--muted); }
.empty strong { display: block; margin-bottom: 0.3rem; color: var(--ink); }
.empty .login-submit { margin: 1.1rem auto 0; max-width: 16rem; }

.profile { display: flex; gap: 0.8rem; align-items: center; padding: 0.95rem; }
.asset { padding: 0.9rem 0.85rem 0.8rem; margin-bottom: 0.7rem; }
.asset .kicker { color: var(--gold); }

.rows { display: flex; flex-direction: column; gap: 0.55rem; }
button.row { width: 100%; cursor: pointer; font: inherit; text-align: left; }
.row {
    min-height: 3.3rem;
    padding: 0.75rem 0.9rem;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 0.85rem;
}
.row b { font-weight: 600; }
.row span { color: var(--muted); }
.row .chev { color: #6a6570; }

.cells { list-style: none; margin: 0.7rem 0 0; padding: 0.15rem 0.95rem; }
.cells li { min-height: 2.8rem; border-bottom: 1px solid var(--line); font-size: 0.92rem; }
.cells li:last-child { border-bottom: 0; }
.cells span { color: var(--muted); }
.footnote { margin: 0.9rem 0.15rem 0; color: #6d6872; font-size: 0.78rem; line-height: 1.6; }

.back { display: inline-flex; margin-bottom: 0.5rem; color: var(--gold); font-size: 0.86rem; }
.article { padding: 0.15rem 0.1rem 1rem; font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; color: var(--ink); }
.article img, .article video, .article iframe { max-width: 100%; height: auto; }

.honor-bar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.35rem 0.9rem 0;
}
.honor-bar p { margin: 0; flex: 1; color: var(--muted); font-size: 0.75rem; line-height: 1.45; }
.table-now {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0.65rem 0.9rem 0;
    padding: 0.55rem 0.75rem;
    border-radius: 0.8rem;
    border: 1px solid var(--line);
    background: var(--card);
    color: var(--ink);
    font-size: 0.82rem;
}
.table-now b { color: var(--ink); font-size: 0.95rem; }

.switch, .close, .board, .period {
    color: inherit;
    background: transparent;
    border: 0;
    cursor: pointer;
}
.switch {
    flex: none;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--card);
    color: var(--gold);
    font-size: 0.72rem;
}

.podium {
    display: grid;
    grid-template-columns: 1fr 1.08fr 1fr;
    gap: 0.35rem;
    align-items: end;
    margin: 1.15rem 0 0.15rem;
}
.podium-item { text-align: center; background: transparent; border: 0; padding: 0; }
.medal { position: relative; width: 4.15rem; height: 4.15rem; margin: 0 auto 0.15rem; }
.is-first .medal { width: 5rem; height: 5rem; }
.medal .face {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    color: #f6e7c4;
    font-weight: 700;
    font-size: 1.3rem;
    background: #000;
    border: 2px solid rgba(240, 210, 150, 0.28);
}
.is-first .medal .face {
    border-color: #e0c48a;
    box-shadow: 0 0 0 3px rgba(240, 210, 150, 0.22);
    font-size: 1.55rem;
}
.crown {
    position: absolute;
    top: -0.62rem;
    left: 50%;
    width: 1.2rem;
    height: 0.78rem;
    transform: translateX(-50%);
}
.badge {
    position: absolute;
    left: 50%;
    bottom: -0.28rem;
    z-index: 1;
    transform: translateX(-50%);
    width: 1.22rem;
    height: 1.22rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-style: normal;
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--gold);
    background: transparent;
    border: 1px solid rgba(240, 196, 110, 0.75);
}
.badge-1 {
    width: 1.38rem;
    height: 1.38rem;
    color: var(--gold);
    background: transparent;
    border-color: var(--gold);
}
.badge-3 { background: transparent; color: #cbb892; border-color: rgba(203, 184, 146, 0.7); }
.podium-item em { display: block; margin-top: 0.55rem; font-style: normal; color: var(--ink); font-size: 0.82rem; }
.pts {
    display: inline-block;
    min-width: 3.1rem;
    margin-top: 0.32rem;
    padding: 0.2rem 0.65rem;
    border-radius: 0.3rem;
    color: #fff;
    background: transparent; color: var(--gold); border: 1px solid rgba(240, 196, 110, 0.55);
    font-weight: 700;
}
.pts-gold {
    color: var(--gold);
    background: transparent;
    border-color: var(--gold);
}
#periodLabel { display: none; }
.board-list {
    list-style: none;
    margin: 0.7rem 0 0;
    padding: 0.2rem 0;
    border-radius: 0.95rem;
    background: var(--card);
    border: 1px solid var(--line);
}
.board-row {
    display: grid;
    grid-template-columns: 1.7rem 1.9rem 1fr auto;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.46rem 0.7rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.board-row .no {
    font-style: normal;
    text-align: center;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 650;
}
.board-row .face {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #f6e7c4;
    background: transparent;
    font-size: 0.78rem;
    font-weight: 700;
}
.board-row em { font-style: normal; color: var(--ink); font-size: 0.92rem; }
.board-row .pts {
    display: inline-flex;
    align-items: center;
    gap: 0.16rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: none;
    color: var(--gold);
    font-weight: 650;
}
.board-row .pts svg { width: 0.82rem; height: 0.82rem; display: block; }

.phone-honor {
    background: #000;
}
.phone-honor .appbar h1 {
    font-size: 1.45rem;
    letter-spacing: 0.28em;
    background: linear-gradient(180deg, #fff8dc 8%, #f0c56a 48%, #a56b28 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.phone-honor .honor-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
    padding: 0.15rem 0.95rem 0;
}
.phone-honor .honor-bar p {
    flex: none;
    width: 100%;
    padding: 0;
}
.phone-honor .switch {
    align-self: flex-end;
    margin-top: 0;
}
.phone-honor .podium {
    gap: 0.7rem;
    margin: 1.35rem 0.15rem 0.2rem;
    align-items: end;
}
.phone-honor .medal {
    margin: 0 auto;
}
.phone-honor .crown {
    top: -0.85rem;
}
.phone-honor .medal .face {
    border: 2px solid #e7c98a;
    box-shadow: 0 0 16px rgba(240, 196, 110, 0.28);
}
.phone-honor .is-first .medal .face {
    border-width: 3px;
    box-shadow: 0 0 0 4px rgba(240, 196, 110, 0.16), 0 0 28px rgba(240, 196, 110, 0.55);
}
.phone-honor .badge {
    position: static;
    left: auto;
    bottom: auto;
    transform: none;
    width: 1.45rem;
    height: 1.45rem;
    margin: 0.55rem auto 0;
    color: var(--gold);
    background: #000;
    border: 1px solid #e8c27a;
    box-shadow: none;
}
.phone-honor .badge-1 {
    width: 1.7rem;
    height: 1.7rem;
    font-size: 0.82rem;
}
.phone-honor .badge-3 {
    color: var(--gold);
    background: #000;
}
.phone-honor .podium-item em {
    margin-top: 0.38rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.phone-honor .podium-item .pts {
    margin-top: 0.42rem;
    padding: 0.22rem 0.7rem;
}
.phone-honor .board-list {
    margin: 0.95rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.48rem;
    background: transparent;
    border: 0;
}
.phone-honor .board-row {
    grid-template-columns: 1.5rem 2rem minmax(0, 1fr) auto;
    gap: 0.55rem;
    padding: 0.62rem 0.75rem;
    border: 1px solid rgba(240, 196, 110, 0.42);
    border-radius: 0.8rem;
    background: rgba(16, 12, 6, 0.92);
    box-shadow: inset 0 0 18px rgba(240, 196, 110, 0.05);
}
.phone-honor .board-row em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.phone-honor .board-row .pts {
    padding: 0.16rem 0.48rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 999px;
    background: rgba(240, 196, 110, 0.08);
}
html.is-tv-board .phone-honor {
    padding-bottom: 1.4rem;
}

.mask {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: calc(var(--tab-h) + var(--safe-b));
    background: rgba(0, 0, 0, 0.62);
}
.mask[hidden] { display: none; }
.dialog {
    width: min(100%, 480px);
    max-height: 86vh;
    overflow: auto;
    margin: 0;
    padding: 0.95rem 0.9rem 1.1rem;
    background: var(--card);
    border-radius: 1rem 1rem 0 0;
}
.dialog-head { display: flex; justify-content: space-between; align-items: center; }
.dialog-head h2 { font-size: 1.02rem; }
.close { font-size: 1.35rem; color: var(--muted); }
.season-label { margin: 0.85rem 0 0.45rem; color: var(--muted); font-size: 0.8rem; }
.board {
    display: block;
    width: 100%;
    margin-top: 0.55rem;
    padding: 0.75rem 0.8rem;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    background: #000;
}
.board strong, .board span { display: block; }
.board span { margin-top: 0.22rem; color: var(--muted); font-size: 0.75rem; line-height: 1.45; }
.board.is-on { border-color: var(--gold); box-shadow: inset 0 0 0 1px rgba(240, 210, 150, 0.35); }
.periods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
.period {
    padding: 0.55rem 0;
    border-radius: 999px;
    border: 1px solid rgba(240, 196, 110, 0.35);
    background: transparent;
    color: var(--ink);
}
.period.is-on {
    background: transparent;
    color: var(--gold);
    border: 1px solid var(--gold);
    box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.4);
    font-weight: 650;
}

.logout-bar {
    position: fixed;
    left: 50%;
    bottom: calc(var(--tab-h) + var(--safe-b));
    z-index: 14;
    transform: translateX(-50%);
    width: min(100%, 480px);
    height: 2.75rem;
    border: 0;
    border-top: 1px solid rgba(224, 176, 96, 0.28);
    background: transparent;
    color: var(--gold);
    font-size: 0.95rem;
    font-weight: 650;
    cursor: pointer;
}
.phone.has-logout { padding-bottom: calc(var(--tab-h) + var(--safe-b) + 2.75rem); }

.tabbar.is-dealer,
.tabbar.is-staff,
.tabbar.is-dealer.is-staff { grid-template-columns: repeat(4, 1fr); }
.work-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}
.work-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    aspect-ratio: 1;
    min-width: 0;
    padding: 0.3rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(240, 196, 110, 0.38);
    background: #000;
    color: var(--gold);
    text-align: center;
}
.work-cell svg { width: 1.4rem; height: 1.4rem; }
.work-cell span { font-size: 0.72rem; line-height: 1.2; }
.work-cell.is-empty { border: 0; background: transparent; }
.work-group { margin-top: 1.15rem; }
.work-group:first-child { margin-top: 0.2rem; }
.work-group h2 { margin: 0 0 0.55rem; color: var(--gold); font-size: 0.92rem; font-weight: 650; }
.work-note { margin: 0; color: var(--muted); font-size: 0.8rem; }
.collect-card { margin-top: 0.75rem; }
.collect-card p { margin: 0.2rem 0; color: var(--muted); font-size: 0.82rem; }
.collect-card strong { color: var(--ink); }
.collect-amt { margin: 0.35rem 0 0; color: var(--gold); font-size: 1.05rem; }
.collect-actions { display: flex; gap: 0.45rem; margin-top: 0.75rem; }
.phone .collect-actions .login-submit,
.phone .collect-actions .mine-ghost,
.phone #rechargeForm .login-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    width: auto;
    height: 2.5rem;
    margin: 0;
    padding: 0 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.72);
    border-radius: 0.5rem;
    background: #000;
    color: var(--gold);
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1;
    box-shadow: none;
}
.phone #rechargeForm .login-submit { flex: none; width: 100%; }
.phone .collect-actions .login-submit::after,
.phone #rechargeForm .login-submit::after { display: none; }
.gift-search { display: flex; align-items: center; gap: 0.5rem; }
.gift-search input[type=search] {
    flex: 1; min-width: 0; margin: 0; height: 2.6rem;
    -webkit-appearance: none; appearance: none; color-scheme: dark;
}
.gift-search .login-submit { flex: none; width: auto; margin: 0; padding: 0 1.05rem; height: 2.6rem; }
.gift-list { margin-top: 0.35rem; }
.gift-list a {
    display: flex; align-items: center; justify-content: space-between; gap: 0.6rem;
    padding: 0.85rem 0.05rem; border-bottom: 1px solid rgba(240, 196, 110, 0.16); color: var(--ink);
}
.gift-list a span { color: var(--muted); font-size: 0.8rem; }
.gift-holds { margin: 0.2rem 0 1rem; }
.gift-holds p { margin: 0; padding: 0.55rem 0; color: var(--muted); border-bottom: 1px solid rgba(240, 196, 110, 0.16); }
.tab-ico { position: relative; display: inline-flex; }
.tab-badge {
    position: absolute;
    top: -0.28rem;
    right: -0.55rem;
    min-width: 0.95rem;
    height: 0.95rem;
    padding: 0 0.22rem;
    border-radius: 999px;
    background: #fa5151;
    color: #fff;
    font-size: 0.62rem;
    font-style: normal;
    font-weight: 700;
    line-height: 0.95rem;
    text-align: center;
}
.tab-badge[hidden] { display: none; }
.inbox-top { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; text-align: left; }
.inbox-top h1 { display: flex; align-items: center; gap: 0.4rem; min-width: 0; }
.inbox-count {
    flex: none; min-width: 1.05rem; height: 1.05rem; padding: 0 0.28rem;
    border-radius: 999px; background: #fa5151; color: #fff;
    font-style: normal; font-size: 0.68rem; font-weight: 700; letter-spacing: 0;
    line-height: 1.05rem; text-align: center;
}
.inbox-count[hidden], #readAll[hidden] { display: none; }
.inbox-sheet { display: flex; flex-direction: column; gap: 0.7rem; }
.inbox-item {
    position: relative;
    display: block;
    margin: 0;
    padding: 0.85rem 0.9rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(240, 196, 110, 0.22);
    background: #000;
    cursor: pointer;
}
.inbox-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.32rem;
    flex: none;
}
.inbox-dot {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: #fa5151;
}
.inbox-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.7rem;
    margin: 0;
}
.inbox-title strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: 0.95rem;
    font-weight: 650;
    line-height: 1.35;
}
.inbox-item.is-unread .inbox-title strong { color: var(--gold); }
.inbox-title em {
    flex: none;
    color: var(--muted);
    font-style: normal;
    font-size: 0.72rem;
    line-height: 1.45;
}
.inbox-meta { display: flex; align-items: center; gap: 0.4rem; margin: 0.35rem 0 0; }
.inbox-kind {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(240, 196, 110, 0.4);
    color: var(--gold);
    font-size: 0.68rem;
    line-height: 1.4;
}
.inbox-body { margin: 0.28rem 0 0; color: var(--muted); font-size: 0.84rem; line-height: 1.45; }
.inbox-item.is-read { border-color: rgba(240, 196, 110, 0.1); }
.inbox-item.is-read .inbox-title strong, .inbox-item.is-read .inbox-body { color: #8d7d66; }
.table-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem; }
.table-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.16rem;
    aspect-ratio: 1;
    min-width: 0;
    padding: 0.4rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(224, 176, 96, 0.28);
    background: #000;
    text-align: center;
}
.table-cell b { max-width: 100%; color: var(--gold); font-size: 0.86rem; line-height: 1.25; word-break: break-all; }
.table-cell em { font-style: normal; color: var(--ink); font-size: 0.72rem; }
.table-cell span { color: var(--muted); font-size: 0.66rem; line-height: 1.3; }
.table-cell.is-off { opacity: 0.45; }
.tabbar {
    position: fixed;
    left: 50%;
    bottom: 0;
    z-index: 15;
    transform: translateX(-50%);
    width: min(100%, 480px);
    height: var(--tab-h);
    padding: 0.2rem 0 0.12rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #000;
    border-top: 1px solid rgba(224, 176, 96, 0.28);
}
.tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    color: #a89068;
    font-size: 0.68rem;
}
.tab svg { width: 1.25rem; height: 1.25rem; }
.tab.is-active { color: var(--gold); font-weight: 650; }

@media (min-width: 520px) {
    body { padding: 1.25rem 0; background: #000; }
    body.desk-lock { padding: 0; height: 100dvh; overflow: hidden; }
    .phone {
        min-height: calc(100vh - 2.5rem);
        min-height: calc(100dvh - 2.5rem);
        border-radius: 1.4rem;
        overflow: hidden;
        box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
    }
    .tabbar { bottom: 1.25rem; border-radius: 0 0 1.4rem 1.4rem; }
    .logout-bar { bottom: calc(1.25rem + var(--tab-h)); }
    .dialog { border-radius: 1rem 1rem 0 0; }
}

.avatar-img {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(240, 210, 150, 0.4);
    flex: none;
}
.avatar-btn {
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.mine-head {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 0.85rem;
}
.mine-head strong { display: block; }
.mine-head p { margin: 0.15rem 0 0; color: var(--muted); font-size: 0.8rem; }

.login-mask {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: grid;
    place-items: center;
    padding: 1.2rem;
    background: rgba(0, 0, 0, 0.72);
}
.login-mask[hidden] { display: none; }
.login-dialog {
    position: relative;
    width: min(100%, 22rem);
    padding: 1.35rem 1.15rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(240, 210, 150, 0.55);
    background: var(--card);
    text-align: center;
}
.login-close {
    position: absolute;
    top: 0.55rem;
    right: 0.7rem;
    border: 0;
    background: transparent;
    color: #d9d3c8;
    font-size: 1.4rem;
    cursor: pointer;
}
.login-kicker {
    margin: 0;
    color: var(--red);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
}
.login-dialog h2 { margin: 0.45rem 0 0; font-size: 1.35rem; }
.login-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin: 0.85rem 0 0.75rem;
    border: 1px solid rgba(240, 196, 110, 0.5);
    border-radius: 999px;
    overflow: hidden;
}
.login-tab {
    border: 0;
    background: transparent;
    color: #8d8790;
    padding: 0.52rem 0;
    font: inherit;
    cursor: pointer;
}
.login-tab.is-on {
    color: var(--gold);
    background: rgba(240, 196, 110, 0.12);
    box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.85);
}
.login-desc { margin: 0.15rem 0 0.85rem; color: #9a948c; font-size: 0.82rem; line-height: 1.55; }
.login-input[hidden] { display: none; }
.login-code[hidden] { display: none; }
.login-code {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}
.login-code .login-input { margin-bottom: 0; flex: 1; min-width: 0; }
.login-code-btn {
    flex: 0 0 6.6rem;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 0.45rem;
    background: transparent;
    color: var(--gold);
    font: inherit;
    cursor: pointer;
}
.login-code-btn:disabled { opacity: 0.45; cursor: default; }
.login-input {
    display: block;
    width: 100%;
    margin-bottom: 0.65rem;
    padding: 0.75rem 0.8rem;
    border-radius: 0.45rem;
    border: 1px solid rgba(240, 196, 110, 0.85);
    background: #000;
    background-color: #000;
    color: var(--ink);
    color-scheme: dark;
    -webkit-text-fill-color: var(--ink);
    font: inherit;
}
.login-input:focus {
    outline: none;
    border-width: 2px;
    border-color: #f0c46e;
}
.login-input::placeholder { color: #8a7a62; -webkit-text-fill-color: #8a7a62; }
.login-input:-webkit-autofill,
.login-input:-webkit-autofill:hover,
.login-input:-webkit-autofill:focus,
.login-input:-webkit-autofill:active {
    -webkit-text-fill-color: #f8f0df;
    caret-color: #f8f0df;
    box-shadow: 0 0 0 1000px #000 inset;
    -webkit-box-shadow: 0 0 0 1000px #000 inset;
    transition: background-color 99999s ease-out 0s;
}
.login-submit {
    width: 100%;
    margin-top: 0.25rem;
    padding: 0.78rem 0;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 999px;
    background: transparent;
    color: var(--gold);
    font-size: 1rem;
    font-weight: 650;
    cursor: pointer;
}
.login-switch, .login-skip {
    display: block;
    width: 100%;
    margin-top: 0.7rem;
    border: 0;
    background: transparent;
    color: #8d8790;
    cursor: pointer;
}
.login-error {
    margin: 0 0 0.55rem;
    color: #ff4d4f;
    font-size: 0.86rem;
    font-weight: 650;
    line-height: 1.4;
}
.login-error[hidden] { display: none; }

.avatar-mask {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: flex-end;
    padding-bottom: calc(var(--tab-h) + var(--safe-b));
    background: rgba(0, 0, 0, 0.62);
}
.avatar-mask[hidden] { display: none; }
.avatar-drawer {
    width: 100%;
    padding: 0.45rem 0.75rem 0.8rem;
}
.avatar-drawer button {
    display: block;
    width: 100%;
    margin-top: 0.45rem;
    padding: 0.9rem 0;
    border: 1px solid rgba(240, 196, 110, 0.4);
    border-radius: 0.75rem;
    background: transparent;
    color: var(--ink);
    font-size: 1rem;
    cursor: pointer;
}
.avatar-drawer .is-cancel { color: var(--muted); }

.menu-phone { display: flex; flex-direction: column; }
.wallet-bar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    margin: 0.7rem 0.65rem 0.25rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.65rem;
    background: var(--card);
    border: 1px solid var(--line);
    color: var(--ink);
    font-size: 0.78rem;
}
.wallet-bar span {
    flex: 1 1 8.2rem;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.12rem 0.28rem;
}
.wallet-bar b {
    color: var(--gold);
    font-size: 0.95rem;
    margin-left: 0;
    overflow-wrap: anywhere;
    word-break: break-all;
    min-width: 0;
}
.wallet-refresh {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    border: 1px solid rgba(226, 75, 67, 0.85);
    background: transparent;
    color: #e24b43;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}
.menu-body {
    display: flex;
    min-height: 0;
    height: calc(100dvh - 4.6rem - var(--tab-h) - var(--safe-b));
}
.menu-phone.has-cart .menu-body {
    height: calc(100dvh - 8.4rem - var(--tab-h) - var(--safe-b));
}
.cats {
    width: 4.4rem;
    overflow-y: auto;
    background: transparent;
    padding: 0.15rem 0;
}
.cat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.28rem;
    width: calc(100% - 0.45rem);
    margin: 0.28rem 0.2rem;
    padding: 0.42rem 0.12rem 0.38rem;
    border: 1px solid transparent;
    border-radius: 0.55rem;
    background: transparent;
    color: #9a948c;
    font-size: 0.68rem;
    line-height: 1.25;
    cursor: pointer;
}
.cat[hidden] { display: none; }
.cat.is-on {
    color: var(--gold);
    border-color: rgba(240, 210, 150, 0.9);
    background: #000;
    box-shadow: inset 0 0 12px rgba(180, 120, 40, 0.18);
}
.cat-icon, .cat-fallback {
    width: 1.45rem;
    height: 1.45rem;
    object-fit: contain;
}
.cat-fallback { display: grid; place-items: center; color: inherit; font-size: 0.85rem; }
.cat-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-align: center;
}
.dishes { flex: 1; overflow-y: auto; padding: 0.35rem 0.55rem 1rem 0.15rem; }
.dish {
    display: flex;
    align-items: stretch;
    gap: 0.55rem;
    margin-bottom: 0.6rem;
    padding: 0.5rem;
    border-radius: 0.7rem;
    background: #000;
    border: 1px solid rgba(212, 168, 92, 0.62);
}
.dish[hidden] { display: none; }
.dish.is-focus { border-color: #f0d48a; box-shadow: 0 0 0 1px rgba(240, 212, 138, 0.45); }
.dish-pic, .dish-fallback {
    width: 4.15rem;
    height: 4.15rem;
    border-radius: 0.45rem;
    object-fit: cover;
    flex: none;
    background: #000;
    align-self: flex-start;
}
.dish-fallback {
    display: grid;
    place-items: center;
    color: var(--gold);
    font-size: 1rem;
}
.dish-copy { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dish h2 { margin: 0; color: var(--gold); font-size: 0.92rem; font-weight: 650; line-height: 1.35; }
.dish-remark {
    margin: 0.18rem 0 0;
    color: #a39b92;
    font-size: 0.72rem;
    line-height: 1.35;
}
.dish-foot { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; margin-top: auto; padding-top: 0.4rem; }
.dish .price { margin: 0; color: var(--gold); font-size: 0.95rem; font-weight: 650; }
.plus {
    width: 1.55rem;
    height: 1.55rem;
    border: 1px solid rgba(240, 210, 150, 0.9);
    border-radius: 50%;
    background: transparent;
    color: var(--gold);
    font-size: 1.05rem;
    line-height: 1;
    cursor: pointer;
    flex: none;
}
.cart-bar {
    position: absolute;
    left: 0.7rem;
    right: 0.7rem;
    bottom: calc(var(--tab-h) + var(--safe-b) + 0.4rem);
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.45rem 0.45rem 0.45rem 0.95rem;
    border-radius: 999px;
    background: var(--card);
    border: 1px solid rgba(240, 210, 150, 0.35);
    cursor: pointer;
}
.cart-bar[hidden] { display: none; }
.cart-bar b { margin-left: auto; color: var(--gold); }
.cart-go {
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 999px;
    padding: 0.55rem 0.9rem;
    background: transparent;
    color: var(--gold);
    cursor: pointer;
}
.cart-sheet { padding: 0.8rem 0.9rem 1rem; }
.cart-line {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--line);
}
.cart-line strong { display: block; }
.cart-line span { color: var(--gold); font-size: 0.8rem; }
.qty { margin-left: auto; display: flex; align-items: center; gap: 0.45rem; }
.qty button {
    width: 1.6rem;
    margin: 0;
    padding: 0;
    height: 1.6rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 50%;
    background: transparent;
    color: var(--gold);
    cursor: pointer;
    line-height: 1;
}
.cart-total { display: flex; justify-content: space-between; margin: 0.8rem 0; color: var(--gold); }
.order-card, .bill-line {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--line);
}
.order-card { display: block; }
.order-card b, .bill-sum { color: var(--gold); }
.table-pick { margin: 0.35rem 0 0.95rem; }
.table-pick-title {
    margin: 0 0 0.55rem;
    color: var(--gold);
    font-size: 0.78rem;
    letter-spacing: 0.12em;
}
.table-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; }
.table-card {
    min-height: 4.4rem;
    padding: 0.75rem 0.8rem 0.7rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(240, 210, 150, 0.38);
    background: #000;
    color: var(--ink);
    text-align: left;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(255, 244, 214, 0.04);
}
.table-card b { display: block; font-size: 1.02rem; font-weight: 650; letter-spacing: 0.02em; }
.table-card span { display: block; margin-top: 0.22rem; color: var(--muted); font-size: 0.72rem; }
.table-card.is-on {
    border-color: var(--gold);
    background: transparent;
    color: var(--gold);
    box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.55);
}
.table-card.is-on span { color: var(--gold); }
.table-card.is-on b::after { content: "  ·  已选"; font-size: 0.72rem; font-weight: 650; }
.table-none { margin: 0; color: #8d8796; font-size: 0.85rem; }
.pay-ask { margin: 0.7rem 0 0; color: var(--ink); font-size: 1.05rem; }
.pay-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem; margin-top: 1rem; }
.pay-actions button { height: 2.6rem; border: 1px solid rgba(240, 196, 110, 0.55); border-radius: 0.7rem; font-weight: 700; cursor: pointer; background: transparent; }
.pay-actions .is-cancel { background: transparent; color: var(--muted); }
.pay-actions .is-ok { background: transparent; color: var(--gold); border-color: rgba(240, 196, 110, 0.9); }
.pay-btn {
    display: block;
    width: 100%;
    margin-top: 1rem;
    padding: 0.8rem 0;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 999px;
    background: transparent;
    color: var(--gold);
    font-size: 1rem;
    cursor: pointer;
}
.status-0 { color: #e0c48a; }
.status-1 { color: #ff6b64; }
.status-2 { color: #8d8796; }
.status-3 { color: #8d8796; }

.stepper { display: flex; align-items: center; gap: 0.35rem; flex: none; }
.step-minus, .step-qty { display: none; }
.stepper.is-on .step-minus, .stepper.is-on .step-qty { display: grid; }
.step-minus {
    width: 1.7rem;
    height: 1.7rem;
    place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(240, 210, 150, 0.55);
    background: transparent;
    color: var(--gold);
    cursor: pointer;
    padding: 0;
}
.step-qty { min-width: 1.1rem; text-align: center; font-size: 0.92rem; }
.fly-ball {
    position: fixed;
    z-index: 200;
    margin: 0;
    pointer-events: none;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.5), 0 0 0 2px rgba(240, 210, 150, 0.9);
}
.cart-bar.is-hit { animation: cart-pop 0.38s ease; }
@keyframes cart-pop {
    0% { transform: scale(1); }
    35% { transform: scale(1.06); }
    100% { transform: scale(1); }
}
.cart-page .topbar { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; }
.cart-foot[hidden], .pay-btn[hidden], .footnote[hidden] { display: none; }
.h5-toast {
    position: fixed;
    left: 50%;
    bottom: 28%;
    z-index: 90;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    background: #000;
    border: 1px solid rgba(240, 210, 150, 0.4);
    color: var(--ink);
    opacity: 0;
    transform: translateX(-50%) translateY(8px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.h5-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }
.empty a { color: var(--gold); }
.cart-side { display: flex; flex-direction: column; align-items: flex-end; gap: 0.15rem; flex: none; }
.cart-page .topbar > div { flex: 1; }
.text-btn {
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    padding: 0;
}
.cart-thumb, .cart-fallback {
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    object-fit: cover;
    flex: none;
    background: #000;
}
.cart-fallback { display: grid; place-items: center; color: var(--gold); }
.cart-meta { flex: 1; min-width: 0; }
.cart-meta strong { display: block; }
.cart-meta span, .line-sum { color: var(--gold); font-size: 0.82rem; }
.cart-side .line-sum { display: block; margin-top: 0.15rem; text-align: right; }
.line-sum { white-space: nowrap; }
.cart-foot {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--tab-h) + var(--safe-b));
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.7rem 0.9rem;
    background: var(--card);
    border-top: 1px solid rgba(240, 210, 150, 0.25);
}
.cart-foot > div { flex: 1; display: flex; flex-direction: column; }
.cart-foot b { color: var(--gold); }
.cart-total[hidden] { display: none; }
.cart-foot .pay-btn { width: auto; margin: 0; padding: 0.7rem 1.15rem; }
.cart-page .sheet { padding-bottom: 5.5rem; }


.match-tabs {
    display: flex;
    gap: 0.45rem;
    margin: 0 0 0.75rem;
}
.match-tabs button {
    flex: 1;
    padding: 0.52rem 0.4rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(255, 220, 150, 0.35);
    background: var(--card);
    color: var(--gold);
    font-size: 0.88rem;
}
.match-tabs button.is-on {
    background: transparent;
    color: var(--gold);
    border-color: var(--gold);
    box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.45);
}
.match-group { margin-bottom: 1rem; }
.match-cover { display: block; width: 100%; height: auto; border-radius: 0.7rem; margin-bottom: 0.55rem; }
.match-line {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "table title state" "table time state";
    gap: 0.1rem 0.55rem;
    align-items: center;
    margin-top: 0.45rem;
    padding: 0.7rem 0.75rem;
    border: 1.5px solid transparent;
    border-radius: 0.8rem;
    background: #000;
}
.match-line b { grid-area: table; color: var(--gold); font-size: 0.78rem; }
.match-line strong { grid-area: title; font-size: 0.95rem; }
.match-line em { grid-area: state; font-style: normal; color: var(--gold); font-size: 0.72rem; }
.match-line span { grid-area: time; color: var(--muted); font-size: 0.72rem; }
.match-line.is-btn {
    display: grid; width: 100%; text-align: left; cursor: pointer;
    font: inherit; color: inherit;
}
.desk-seats { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0 1rem; }
.desk-seats span {
    padding: 0.28rem 0.5rem; border-radius: 0.5rem;
    border: 1px solid rgba(255, 220, 150, 0.28); color: var(--ink); font-size: 0.78rem;
}
html:has(body.desk-lock) {
    height: 100dvh;
    overflow: hidden;
}
body.desk-lock {
    height: 100dvh;
    overflow: hidden;
    overscroll-behavior: none;
}
.phone.match-page {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    max-height: 100dvh;
    min-height: 0;
    overflow: hidden;
    padding-bottom: 0;
}
.match-slim {
    flex: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 10px 5.6rem 0.2rem 0.8rem;
}
.match-slim h1 {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.98rem;
    line-height: 1.25;
}
.match-slim h1 em { flex: none; font-style: normal; color: var(--gold); }
.match-slim h1 span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.match-slim .live-dot { margin-top: 0; }
.match-dock {
    flex: none;
    z-index: 8;
    padding: 0.5rem 0.75rem calc(0.62rem + var(--safe-b));
    background: #000;
    border-top: 1px solid rgba(255, 220, 150, 0.22);
}
.match-dock .board-meta { margin: 0.35rem 0 0; }
.match-dock .match-hud {
    margin: 0;
    padding: 0;
    border: 0;
    grid-template-columns: auto 1fr auto;
}
.match-page .match-actions {
    position: static;
    left: auto;
    bottom: auto;
    transform: none;
    width: auto;
    padding: 0.48rem 0 0;
    background: transparent;
}
.match-page .dock-join {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    padding-top: 0.15rem;
}
.match-page .dock-join .move-hint {
    flex: 1 0 100%;
    margin: 0 0 0.2rem;
}
.match-page .dock-join .hud-ops-btn {
    height: 2.7rem;
    padding: 0 0.95rem;
    border-radius: 0.7rem;
}
.match-page .dock-join #joinBtn,
.match-page .dock-join #readyBtn { flex: 1; }
.match-page .dock-join #readyBtn[hidden] { display: none; }
.match-top {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.35rem 0.55rem;
    padding: 10px 0.7rem 0.35rem;
}
.match-top .round-btn { grid-column: 1; grid-row: 1; }
.match-top .desk-title { grid-column: 2; grid-row: 1; }
.match-top .ops-pill { grid-column: 3; grid-row: 1; }
.match-top > .top-live,
.match-top > .meta { grid-column: 1 / -1; }
.desk-title {
    margin: 0;
    min-width: 0;
    text-align: center;
    font-size: 0.98rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.desk-title em { font-style: normal; color: var(--gold); margin-right: 0.35rem; }
.match-top > .meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.55rem; margin: 0.28rem 0 0; color: #cbb892; font-size: 0.72rem; }
.round-btn, .ops-pill {
    border: 1px solid rgba(255, 220, 150, 0.45);
    color: var(--gold);
    background: #000;
}
.round-btn {
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.round-btn svg { width: 1.15rem; height: 1.15rem; display: block; }
.ops-pill {
    height: 2.2rem;
    padding: 0 0.9rem;
    border-radius: 999px;
    background: transparent;
    color: var(--gold);
    font-size: 0.82rem;
    font-weight: 750;
}
.top-live {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.15rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(240, 196, 110, 0.24);
    background: #000;
}
.top-live .hud-clock b { font-size: 1.7rem; letter-spacing: 0.04em; }
.top-live .hud-clock span { font-size: 0.72rem; }
.match-board {
    margin: 0.7rem 0.8rem 0;
    padding: 0.72rem 0.75rem 0.7rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(255, 220, 150, 0.28);
    background: #000;
}
.board-head { display: flex; align-items: flex-start; gap: 0.45rem; }
.board-title { flex: 1; min-width: 0; }
.board-title h1 {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 1.02rem;
    line-height: 1.25;
}
.board-title h1 em { flex: none; }
.board-title h1 span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.board-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.55rem;
    margin: 0.28rem 0 0;
    color: #cbb892;
    font-size: 0.7rem;
}
.live-dot {
    flex: none;
    width: 1.7rem;
    height: 1.7rem;
    margin-top: 0.12rem;
    padding: 0;
    border: 0;
    background: transparent;
    display: grid;
    place-items: center;
    cursor: default;
}
.live-dot i {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: #8a8070;
}
.live-dot.is-on i { background: #3dcc6f; box-shadow: 0 0 8px rgba(61, 204, 111, 0.85); }
.live-dot.is-off { cursor: pointer; }
.live-dot.is-off i { background: #e24b43; }
.live-dot.is-wait i { background: #f0d48a; }
.live-badge {
    flex: none;
    margin-top: 0;
    padding: 0.28rem 0.45rem;
    border-radius: 0.45rem;
    border: 1px solid rgba(255, 220, 150, 0.7);
    color: var(--gold);
    font-size: 0.68rem;
    line-height: 1.2;
}
.icon-btn {
    flex: none;
    width: 2.3rem;
    height: 2.3rem;
    padding: 0;
    border-radius: 0.65rem;
    border: 1px solid rgba(255, 220, 150, 0.55);
    background: var(--card);
    color: var(--gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}
.icon-btn svg { width: 1.15rem; height: 1.15rem; display: block; }
.table-row, .match-row { display: flex; gap: 0.45rem; overflow-x: auto; padding: 0.7rem 0.8rem 0; }
.ops-label {
    margin: 0.45rem 0 0;
    color: #d4bc96;
    font-size: 0.72rem;
}
.ask-mask { z-index: 80; }
.notice-mask { z-index: 90; }
.notice-mask h2 { font-size: 1.08rem; line-height: 1.45; font-weight: 650; }
.notice-mask .pay-actions { grid-template-columns: 1fr; margin-top: 1.1rem; }
.ask-mask .login-dialog h2 { font-size: 1.15rem; line-height: 1.35; }
.ask-mask .pay-ask { color: #d4bc96; font-size: 0.86rem; line-height: 1.55; }
.type-pick {
    display: block;
    width: 100%;
    height: 2.45rem;
    margin-top: 0.45rem;
    padding: 0 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.45);
    background: transparent;
    color: var(--gold);
    font: inherit;
    font-size: 0.86rem;
    text-align: left;
}
.type-pick:disabled { opacity: 0.55; }
.type-mask { position: fixed; inset: 0; z-index: 70; background: rgba(7, 7, 9, 0.72); }
.type-dialog { text-align: left; padding-top: 1.5rem; }
.type-dialog h2 { font-size: 1.15rem; }
.type-dialog .score-close { position: absolute; top: 0.7rem; right: 0.7rem; }
.type-list { max-height: min(70dvh, 32rem); overflow: auto; margin-top: 0.75rem; display: flex; flex-direction: column; gap: 0.45rem; }
.type-option {
    display: flex;
    align-items: stretch;
    width: 100%;
    padding: 0.72rem 0.8rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.32);
    background: transparent;
    color: var(--ink);
    text-align: left;
    font: inherit;
}
.type-option b { display: block; font-size: 0.92rem; font-weight: 650; color: var(--ink); }
.type-copy { display: flex; flex-direction: column; gap: 0.28rem; min-width: 0; flex: 1; }
.type-meta { display: flex; flex-wrap: wrap; gap: 0.18rem 0.55rem; margin: 0; color: #cbb892; font-size: 0.72rem; line-height: 1.4; }
.type-meta em { font-style: normal; }
.type-rebuy { margin: 0; color: #8d7b5e; font-size: 0.7rem; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ops-type { display: block; margin: 0.45rem 0 0; }
.ops-type select {
    width: 100%;
    height: 2.45rem;
    padding: 0 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.45);
    background: transparent;
    color: var(--gold);
    font: inherit;
    font-size: 0.86rem;
}
.ops-type select:disabled { opacity: 0.55; }
.ops-types { display: flex; flex-wrap: wrap; gap: 0.45rem; padding: 0.45rem 0 0; }
button.table-chip { font: inherit; color: inherit; cursor: pointer; }
.ops-current { margin-top: 0.45rem; padding: 0.65rem 0.75rem; border-radius: 0.75rem; border: 1px solid rgba(240, 196, 110, 0.35); }
.ops-current > b { display: block; color: var(--gold); }
.ops-current > span { display: block; margin-top: 0.2rem; color: var(--muted); font-size: 0.75rem; }
.ops-current .dealer-ops { padding-left: 0; padding-right: 0; }
.result-mask { z-index: 85; }
.result-dialog {
    display: flex;
    flex-direction: column;
    width: min(100%, 22.5rem);
    max-height: min(86dvh, 40rem);
    padding: 1.15rem 0.95rem 1rem;
    text-align: center;
    background: #000;
}
.result-dialog h2 {
    margin: 0.28rem 0 0;
    font-size: 1.22rem;
    letter-spacing: 0.06em;
    line-height: 1.3;
}
.result-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
    margin: 0.85rem 0 0;
    text-align: left;
}
.result-grid div {
    min-width: 0;
    padding: 0.42rem 0.55rem 0.46rem;
    border: 1px solid rgba(240, 196, 110, 0.28);
    border-radius: 0.55rem;
    background: #000;
}
.result-grid span {
    display: block;
    color: var(--muted);
    font-size: 0.64rem;
    letter-spacing: 0.14em;
}
.result-grid b {
    display: block;
    margin-top: 0.16rem;
    overflow: hidden;
    color: var(--ink);
    font-size: 0.86rem;
    font-weight: 650;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.result-grid .is-money b { color: var(--gold); }
.result-board {
    min-height: 0;
    margin-top: 0.8rem;
    text-align: left;
}
.result-head {
    display: flex;
    justify-content: space-between;
    margin: 0 0.1rem 0.15rem;
    color: var(--gold);
    font-size: 0.66rem;
    letter-spacing: 0.16em;
}
.result-list { overflow: visible; }
.result-rank {
    display: grid;
    grid-template-columns: 1.55rem 2.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.4rem;
    padding: 0.42rem 0.1rem;
    border-bottom: 1px solid rgba(240, 196, 110, 0.16);
}
.result-rank i {
    width: 1.4rem;
    height: 1.4rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 50%;
    color: var(--gold);
    font-style: normal;
    font-size: 0.7rem;
    font-weight: 700;
}
.result-rank.is-first i { border-color: var(--gold); }
.result-rank.is-mine {
    margin: 0 -0.15rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    border-radius: 0.4rem;
    background: rgba(240, 196, 110, 0.14);
}
.result-grid .is-score b { color: var(--gold); font-size: 1.05rem; }
.result-rank .result-seat { color: var(--muted); font-size: 0.72rem; }
.result-rank strong {
    overflow: hidden;
    font-size: 0.86rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.result-rank em {
    color: var(--gold);
    font-style: normal;
    font-size: 0.86rem;
    font-weight: 700;
}
.result-empty {
    margin: 0.55rem 0 0.2rem;
    color: var(--muted);
    font-size: 0.8rem;
    text-align: center;
}
.result-tick {
    margin: 0.85rem 0 0;
    color: #9a8a72;
    font-size: 0.78rem;
    text-align: center;
}
.result-close {
    align-self: center;
    min-width: 8.6rem;
    height: 2.35rem;
    margin: 0.45rem 0 0;
    padding: 0 1.5rem;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 999px;
    background: transparent;
    color: var(--gold);
    font-size: 0.92rem;
    font-weight: 650;
    cursor: pointer;
}
.result-dialog { position: relative; overflow: hidden; scrollbar-width: none; }
.result-dialog .result-x { position: absolute; top: 0.6rem; right: 0.6rem; z-index: 3; }
.result-board { flex: 1 1 auto; min-height: 0; overflow: auto; }
.result-close { flex: none; }
.ask-mask .login-dialog { position: relative; padding-top: 1.6rem; }
.ask-mask .score-close { position: absolute; top: 0.55rem; right: 0.55rem; z-index: 2; }
.result-dialog::-webkit-scrollbar { width: 0; height: 0; display: none; }
.result-grid .is-prize { grid-column: 1 / -1; }
.result-grid .is-prize b {
    color: var(--gold);
    font-size: 1.05rem;
    white-space: normal;
    text-shadow: 0 0 10px rgba(240, 212, 138, 0.85);
    animation: prize-text 1.05s ease-in-out infinite;
}
.prize-banner {
    position: relative;
    z-index: 2;
    margin: 0 0 0.45rem;
    padding: 0.48rem 0.7rem;
    border-radius: 999px;
    color: #1a1206;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    background: linear-gradient(100deg, #8a5a16, #f0d48a 28%, #fff6d2 50%, #f0d48a 72%, #8a5a16);
    background-size: 220% 100%;
    animation: prize-in 0.55s both, prize-shine 1.5s linear infinite;
}
.prize-banner.is-silver {
    color: #1a1e26;
    background: linear-gradient(100deg, #6e7888, #e8eef6 28%, #fff 50%, #e8eef6 72%, #6e7888);
    background-size: 220% 100%;
}
.prize-banner.is-copper {
    color: #2a140c;
    background: linear-gradient(100deg, #6a3418, #e39a66 28%, #ffd8bc 50%, #e39a66 72%, #6a3418);
    background-size: 220% 100%;
}
.result-dialog.is-silver .prize-burst i,
.result-dialog.is-silver .prize-burst i:nth-child(3n),
.result-dialog.is-silver .prize-burst i:nth-child(3n+2) { background: #d7dee8; }
.result-dialog.is-copper .prize-burst i,
.result-dialog.is-copper .prize-burst i:nth-child(3n),
.result-dialog.is-copper .prize-burst i:nth-child(3n+2) { background: #e39a66; }
.result-dialog.is-champion.is-silver::before {
    background: radial-gradient(ellipse at center, rgba(232, 238, 246, 0.7) 0%, rgba(127, 139, 156, 0.28) 42%, transparent 74%);
}
.result-dialog.is-champion.is-copper::before {
    background: radial-gradient(ellipse at center, rgba(255, 216, 188, 0.68) 0%, rgba(138, 69, 32, 0.3) 42%, transparent 74%);
}
.result-grid .is-prize.is-silver b { color: #d7dee8; text-shadow: 0 0 10px rgba(216, 224, 236, 0.9); }
.result-grid .is-prize.is-copper b { color: #e39a66; text-shadow: 0 0 10px rgba(210, 122, 62, 0.9); }
.prize-burst {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.prize-burst i {
    position: absolute;
    left: 50%;
    top: 38%;
    width: var(--s, 7px);
    height: var(--s, 7px);
    border-radius: 50%;
    background: #f0d48a;
    animation: prize-fly 1.7s ease-out infinite;
    animation-delay: var(--d, 0s);
}
.prize-burst i:nth-child(3n) {
    border-radius: 0;
    background: #fff6d2;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
.prize-burst i:nth-child(3n+2) {
    width: 3px;
    height: 14px;
    border-radius: 2px;
    background: #c4893a;
}
.result-dialog.is-champion::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 18%;
    z-index: 0;
    width: 150%;
    height: 16rem;
    transform: translate(-50%, -20%);
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(255, 246, 210, 0.72) 0%, rgba(240, 212, 138, 0.34) 36%, rgba(196, 137, 58, 0.12) 58%, transparent 74%);
    animation: prize-halo 2.6s ease-in-out infinite;
    pointer-events: none;
}
.result-dialog.is-champion::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.16) 48%, transparent 66%);
    background-size: 240% 100%;
    animation: prize-shine 2.8s linear infinite;
    pointer-events: none;
}
.result-dialog.is-champion > :not(.prize-burst) { position: relative; z-index: 1; }
.result-rank.is-gold {
    --metal: #f0d48a;
    --metal-deep: #a8742a;
    --metal-hot: #fff6d2;
    --glow: rgba(240, 212, 138, 0.95);
    --glow-soft: rgba(240, 212, 138, 0.35);
}
.result-rank.is-silver {
    --metal: #d7dee8;
    --metal-deep: #7f8b9c;
    --metal-hot: #ffffff;
    --glow: rgba(216, 224, 236, 0.95);
    --glow-soft: rgba(216, 224, 236, 0.38);
}
.result-rank.is-copper {
    --metal: #e39a66;
    --metal-deep: #8a4520;
    --metal-hot: #ffd8bc;
    --glow: rgba(210, 122, 62, 0.95);
    --glow-soft: rgba(210, 122, 62, 0.38);
}
.result-rank.is-gold strong,
.result-rank.is-silver strong,
.result-rank.is-copper strong {
    background-image: linear-gradient(180deg, var(--metal-hot) 0%, var(--metal) 40%, var(--metal-deep) 76%, var(--metal-hot) 100%);
    background-size: 100% 240%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: metal-sheen 1.6s ease-in-out infinite;
}
.result-rank.is-prize {
    position: relative;
    overflow: hidden;
    margin: 0.28rem 0;
    padding: 0.48rem 0.35rem 0.42rem;
    border: 1px solid var(--metal, rgba(240, 212, 138, 0.9));
    border-radius: 0.7rem;
    background:
        linear-gradient(110deg, rgba(196, 137, 58, 0.18), rgba(255, 246, 210, 0.16), rgba(196, 137, 58, 0.22)),
        #120c04;
    animation: prize-glow 1.25s ease-in-out infinite;
}
.result-rank.is-prize.is-silver {
    background:
        linear-gradient(110deg, rgba(127, 139, 156, 0.28), rgba(255, 255, 255, 0.14), rgba(127, 139, 156, 0.32)),
        #101216;
}
.result-rank.is-prize.is-copper {
    background:
        linear-gradient(110deg, rgba(138, 69, 32, 0.34), rgba(255, 216, 188, 0.14), rgba(138, 69, 32, 0.38)),
        #140c08;
}
.result-rank.is-prize::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, 0.48) 48%, transparent 64%);
    background-size: 220% 100%;
    animation: prize-shine 1.6s linear infinite;
    pointer-events: none;
}
.result-rank.is-gold i,
.result-rank.is-silver i,
.result-rank.is-copper i {
    z-index: 1;
    border-color: var(--metal-hot);
    background: linear-gradient(var(--metal-hot), var(--metal-deep));
    color: #1a1206;
    box-shadow: 0 0 12px var(--glow);
}
.result-rank.is-silver i { color: #1c2430; }
.result-rank.is-copper i { color: #2a140c; }
.result-rank.is-prize strong,
.result-rank.is-prize em,
.result-rank.is-prize .result-seat { position: relative; z-index: 1; }
.result-prize {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    margin-top: 0.12rem;
    color: var(--metal, #f0d48a);
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: center;
    text-shadow: 0 0 8px var(--glow, rgba(240, 212, 138, 0.95)), 0 0 18px var(--glow-soft, rgba(196, 137, 58, 0.9));
}
@keyframes prize-in {
    0% { transform: scale(0.72); filter: brightness(1.8); }
    60% { transform: scale(1.06); }
    100% { transform: scale(1); filter: brightness(1); }
}
@keyframes prize-glow {
    0%, 100% { box-shadow: 0 0 6px var(--glow-soft, rgba(240, 212, 138, 0.35)); }
    50% { box-shadow: 0 0 22px var(--glow, rgba(240, 212, 138, 0.95)), inset 0 0 14px var(--glow-soft, rgba(240, 196, 110, 0.28)); }
}
@keyframes metal-sheen {
    0%, 100% { background-position: 0 0%; }
    50% { background-position: 0 100%; }
}
@keyframes prize-text {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
}
@keyframes prize-shine {
    0% { background-position: 0 0; }
    100% { background-position: 220% 0; }
}
@keyframes prize-fly {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.3); }
    18% { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(0.35) rotate(240deg); }
}
@keyframes prize-halo {
    0%, 100% { opacity: 0.72; transform: translate(-50%, -20%) scale(0.92); }
    50% { opacity: 1; transform: translate(-50%, -20%) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
    .result-rank.is-prize,
    .result-rank.is-prize::after,
    .result-prize,
    .result-rank.is-gold strong,
    .result-rank.is-silver strong,
    .result-rank.is-copper strong,
    .result-grid .is-prize b,
    .prize-banner,
    .prize-burst i,
    .result-dialog.is-champion::before,
    .result-dialog.is-champion::after { animation: none; }
}
.ops-tables, .ops-matches {
    padding: 0.4rem 0 0;
    flex-wrap: wrap;
    overflow: visible;
}
button.table-chip.ops-new {
    border-style: dashed;
    background: transparent;
    color: var(--gold);
    cursor: pointer;
    font: inherit;
}
button.table-chip.ops-new:disabled { opacity: 0.45; cursor: default; }
.table-chip, .match-row a {
    flex: 0 0 auto;
    min-width: 4.8rem;
    padding: 0.42rem 0.5rem;
    border-radius: 0.7rem;
    text-align: center;
    border: 1px solid rgba(255, 220, 150, 0.35);
    background: var(--card);
}
.table-chip b, .table-chip span { display: block; }
.table-chip b { font-size: 0.8rem; }
.table-chip span { margin-top: 0.12rem; color: #d4bc96; font-size: 0.66rem; }
.table-chip.is-on, .match-row a.is-on { background: transparent; color: var(--gold); border-color: var(--gold); box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.45); }
.table-chip.is-on span { color: var(--gold); }
.felt {
    position: relative;
    margin: 0.35rem 0.15rem 0;
    aspect-ratio: 575 / 1024;
    background: #000 url(/img/bg-match-table.jpg) center / 100% 100% no-repeat;
}
.felt::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 49%;
    z-index: 1;
    width: 46%;
    height: 14%;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(255, 70, 48, 0.15) 0%, rgba(255, 36, 28, 0.72) 42%, rgba(255, 20, 16, 0) 72%);
    mix-blend-mode: screen;
    transform: translate(-50%, -50%);
    animation: wbar-heart 8s ease-in-out infinite;
}
.match-page .felt {
    flex: 1 1 0;
    width: auto;
    margin: 0;
    aspect-ratio: auto;
    min-height: 0;
}
.seat { position: absolute; width: 2.5rem; text-align: center; transform: translate(-50%, -50%); z-index: 2; }
.seat-head {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.06rem);
    display: flex; flex-direction: column; align-items: center;
    width: max-content; max-width: 4.8rem;
    margin: 0;
    transform: translateX(-50%);
    text-align: center;
    pointer-events: none;
}
.seat.is-empty .seat-head, .dealer.is-empty .seat-head, .seat-head:empty { display: none; }
.seat-face {
    width: 100%; height: auto; margin: 0; overflow: visible;
    border: 0; background: none; border-radius: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
    gap: 0.18rem; padding: 0;
}
.seat-face img:not(.chair) {
    width: 2.3rem; height: 2.3rem; border-radius: 0.28rem; object-fit: cover;
    display: block; background: #000; flex: none;
}
.seat-face .face {
    width: 2.3rem; height: 2.3rem; border-radius: 0.28rem;
    display: grid; place-items: center; background: #000; color: #f6efe2; flex: none;
    font-size: 1.05rem; font-weight: 700;
}
.seat .chair, .dealer .chair {
    display: block; width: 2.2rem; height: 2.2rem; object-fit: contain;
    background: none; border-radius: 0; flex: none;
}
.dealer {
    position: absolute;
    left: 51.3%;
    top: 72%;
    z-index: 4;
    width: 3.6rem;
    text-align: center;
    transform: translate(-50%, -50%);
    cursor: pointer;
}
.score-mask {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
    background: rgba(7, 7, 9, 0.55);
    pointer-events: none;
}
.score-mask[hidden] { display: none; }
.score-drawer {
    pointer-events: auto;
    width: min(100%, 480px);
    min-height: min(82dvh, 42rem);
    min-height: min(82svh, 42rem);
    max-height: calc(100dvh - 0.35rem);
    max-height: calc(100svh - 0.35rem);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0.4rem 0.85rem calc(1.2rem + env(safe-area-inset-bottom, 0px));
    border-radius: 0.9rem 0.9rem 0 0;
    background: #000;
    box-shadow: 0 -12px 28px rgba(0, 0, 0, 0.55);
    animation: score-up 0.18s ease;
}
@keyframes score-up { from { transform: translateY(100%); } to { transform: none; } }
.score-grab {
    width: 2rem; height: 0.22rem; margin: 0.08rem auto 0.35rem;
    border-radius: 99px; background: rgba(224, 176, 96, 0.35);
}
.score-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.score-head > div { position: relative; }
.score-kicker { margin: 0; color: var(--muted); font-size: 0.82rem; }
.score-points {
    margin: 0.12rem 0 0;
    color: #f8f0df;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
}
.score-now { margin: 0.08rem 0 0; color: var(--gold); font-size: 1.28rem; font-weight: 750; line-height: 1.15; }
.score-float {
    position: absolute;
    left: 0;
    bottom: 0.05rem;
    z-index: 3;
    font-style: normal;
    font-weight: 750;
    font-size: 0.95rem;
    line-height: 1;
    pointer-events: none;
    animation: score-rise 0.95s ease forwards;
}
.score-float.is-plus { color: #f0d48a; }
.score-float.is-minus { color: #e7b2a8; }
@keyframes score-rise {
    0% { opacity: 0; transform: translateY(8px); }
    18% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-1.7rem); }
}
.score-close {
    width: 1.95rem;
    height: 1.95rem;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(255, 220, 150, 0.4);
    background: rgba(255, 244, 214, 0.08);
    color: var(--gold);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex: none;
}
.score-close svg { width: 0.95rem; height: 0.95rem; display: block; }
.score-steps { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.5rem; }
.score-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem; }
.score-steps button {
    height: 2.5rem; border: 1px solid rgba(240, 196, 110, 0.55); border-radius: 0.55rem; cursor: pointer;
    font-weight: 750; font-size: 0.98rem; background: transparent; color: var(--gold);
}
.score-steps .is-minus { background: transparent; color: var(--gold); }
.score-steps .is-plus { background: transparent; color: var(--gold); border-color: rgba(240, 196, 110, 0.9); }
.score-undo, .score-leave {
    display: block; width: 100%; margin: 0; height: 2.5rem;
    border: 0; border-radius: 0.55rem; background: transparent;
    color: var(--muted); font-size: 0.9rem; cursor: pointer;
}
.score-leave { color: var(--gold); }
.seat:not(.is-empty) { cursor: pointer; }
.seat-meta {
    position: absolute;
    left: 50%;
    top: calc(100% + 0.04rem);
    z-index: 3;
    width: max-content;
    max-width: 4.8rem;
    margin: 0;
    transform: translateX(-50%);
    text-align: center;
}
.seat strong, .seat-score, .seat-cash, .seat-gift, .match-actions button, .match-actions a {
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.seat strong, .dealer strong {
    display: block; margin: 0 auto; max-width: 100%;
    font-size: 0.68rem; font-weight: 500; line-height: 1.15; color: #f3eee6;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
}
.seat.is-mine .seat-face,
.dealer.is-mine .seat-face { position: relative; }
.seat.is-mine .seat-face img:not(.chair),
.seat.is-mine .seat-face .face,
.dealer.is-mine .seat-face img:not(.chair),
.dealer.is-mine .seat-face .face {
    position: relative;
    z-index: 1;
    animation: mine-glow 1.6s ease-in-out infinite;
}
.seat.is-mine .seat-face::before,
.dealer.is-mine .seat-face::before,
.seat.is-mine .seat-face::after,
.dealer.is-mine .seat-face::after {
    content: "";
    position: absolute;
    left: 50%;
    top: calc(1.5rem + 0.18rem + 1.15rem);
    pointer-events: none;
}
.seat.is-mine .seat-face::before,
.dealer.is-mine .seat-face::before {
    z-index: 2;
    width: 3.35rem;
    height: 3.35rem;
    padding: 3px;
    border-radius: 0.55rem;
    background: conic-gradient(from 0deg,
        transparent 0deg,
        rgba(255, 248, 220, 0.05) 18deg,
        #fff 42deg,
        #ffe7a8 78deg,
        transparent 112deg,
        transparent 150deg,
        #fff 176deg,
        #fff6d0 206deg,
        transparent 236deg,
        transparent 286deg,
        #ffe9b0 312deg,
        #fff 338deg,
        transparent 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    filter: drop-shadow(0 0 3px rgba(255, 236, 180, 0.95));
    animation: mine-orbit 2.4s linear infinite;
}
.seat.is-mine .seat-face::after,
.dealer.is-mine .seat-face::after {
    z-index: 3;
    width: 4.15rem;
    height: 4.15rem;
    background:
        radial-gradient(circle at 50% 0, #fff 0 3.2px, transparent 4.6px),
        radial-gradient(circle at 85% 15%, #ffe9b0 0 2.4px, transparent 3.8px),
        radial-gradient(circle at 100% 50%, #fff 0 2.8px, transparent 4.2px),
        radial-gradient(circle at 85% 85%, #fff 0 2px, transparent 3.4px),
        radial-gradient(circle at 50% 100%, #ffe7a3 0 3px, transparent 4.4px),
        radial-gradient(circle at 15% 85%, #fff 0 2.2px, transparent 3.6px),
        radial-gradient(circle at 0 50%, #fff6d0 0 2.8px, transparent 4.2px),
        radial-gradient(circle at 15% 15%, #fff 0 2px, transparent 3.4px);
    filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 6px rgba(255, 214, 120, 0.9));
    animation: mine-orbit-back 3.6s linear infinite, mine-twinkle 1.1s ease-in-out infinite;
}
@keyframes mine-orbit {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes mine-orbit-back {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(-360deg); }
}
@keyframes mine-twinkle {
    0%, 100% { opacity: 0.45; }
    50% { opacity: 1; }
}
@keyframes mine-glow {
    0%, 100% { box-shadow: 0 0 6px 0 rgba(255, 228, 160, 0.25); }
    50% { box-shadow: 0 0 12px 1px rgba(255, 244, 214, 0.72); }
}
@media (prefers-reduced-motion: reduce) {
    .seat.is-mine .seat-face::before,
    .dealer.is-mine .seat-face::before,
    .seat.is-mine .seat-face::after,
    .dealer.is-mine .seat-face::after,
    .seat.is-mine .seat-face img:not(.chair),
    .seat.is-mine .seat-face .face,
    .dealer.is-mine .seat-face img:not(.chair),
    .dealer.is-mine .seat-face .face { animation: none; }
    .seat.is-mine .seat-face::before,
    .dealer.is-mine .seat-face::before { transform: translate(-50%, -50%); }
    .seat.is-mine .seat-face::after,
    .dealer.is-mine .seat-face::after { transform: translate(-50%, -50%); opacity: 1; }
}
.seat .no, .dealer .no {
    position: relative;
    z-index: 1;
    flex: none;
    width: 1.5rem; height: 1.5rem; margin: 0;
    border-radius: 50%;
    background: #000; color: #f6efe2; border: 1px solid transparent;
    font-style: normal; font-size: 0.78rem; font-weight: 700; line-height: 1;
    display: grid; place-items: center; padding: 0;
}
.match-actions {
    position: fixed; left: 50%; bottom: 0; transform: translateX(-50%);
    width: min(100%, 480px);
    display: grid; grid-template-columns: 1.3fr 1fr; gap: 0.55rem;
    padding: 0.7rem 0.85rem calc(0.75rem + var(--safe-b));
    background: #000;
}
.match-actions.is-one { grid-template-columns: 1fr; }
.match-actions button, .match-actions a {
    height: 2.7rem; border: 1px solid rgba(240, 196, 110, 0.8); border-radius: 0.7rem;
    background: transparent;
    color: var(--gold); font-weight: 750; font-size: 1rem;
    display: flex; align-items: center; justify-content: center;
}
.match-actions button:disabled { opacity: 0.55; }
.clock-page { padding-bottom: 1.4rem; }
.league { margin: 0; color: var(--gold); letter-spacing: 0.14em; font-size: 0.72rem; }
.clock-grid { padding: 0.8rem; }
.clock-num {
    margin: 0.4rem 0 0; text-align: center;
    font-size: 4.4rem; font-weight: 800; letter-spacing: 0.04em; color: var(--gold);
    text-shadow: none;
}
.clock-state, .blind-line { text-align: center; color: var(--gold); }
.blind-line b { font-size: 1.6rem; color: var(--ink); margin-left: 0.35rem; }
.clock-card {
    margin-top: 0.7rem; padding: 0.7rem 0.75rem; border-radius: 0.75rem;
    border: 1px solid rgba(141, 90, 50, 0.28); background: var(--card);
}
.clock-card > span { color: var(--gold); font-size: 0.75rem; }
.clock-card > b { display: block; margin: 0.2rem 0; font-size: 1.4rem; }
.clock-card i { display: block; height: 0.28rem; border-radius: 99px; background: linear-gradient(90deg, #49d16a, var(--gold)); }
.clock-card p { display: flex; justify-content: space-between; margin: 0.35rem 0 0; }
.clock-card em { font-style: normal; }
.clock-card em.is-white { color: var(--ink); }
.clock-card em.is-blue { color: #6cb6ff; }
.clock-card em.is-purple { color: #c58bff; }
.clock-card em.is-red { color: #ff6b6b; }
.clock-card em.is-gold { color: var(--gold); }

body.tv-body {
    height: 100%;
    margin: 0;
    padding: 0 !important;
    overflow: hidden;
    background: #000;
}
html:has(body.tv-body) {
    height: 100%;
    overflow: hidden;
}
.tv-clock {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    padding: 1.6vh 3.2vw 1.8vh;
    background: #000;
    display: flex;
    flex-direction: column;
}
.tv-bar {
    display: grid;
    grid-template-columns: 14vw 1fr 14vw;
    align-items: center;
}
.tv-bar .back { margin: 0; font-size: 1.25vw; }
.tv-bar .match-copy { text-align: center; }
.tv-bar .league { font-size: 1.35vw; letter-spacing: 0.32em; }
.tv-bar h1 { font-size: 2.5vw; margin-top: 0.3vh; }
.fs-btn {
    justify-self: end;
    padding: 0.9vh 1.5vw;
    border-radius: 999px;
    border: 1px solid rgba(255, 220, 150, 0.75);
    background: transparent;
    color: var(--gold);
    font-size: 1.15vw;
    cursor: pointer;
}
.tv-level { width: min(34vw, 640px); margin: 1.4vh auto 0; text-align: center; }
.tv-clock .clock-num { font-size: 14vw; line-height: 0.9; margin: 0.6vh 0 0; }
.tv-clock .clock-state { margin: 0.4vh 0 0; font-size: 2vw; }
.tv-clock .blind-line { margin: 1vh 0 0; font-size: 1.7vw; letter-spacing: 0.16em; }
.tv-clock .blind-line b { font-size: 4vw; letter-spacing: 0; }
.tv-split {
    display: grid;
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: 2vw;
    margin-top: auto;
    padding-top: 1.4vh;
}
.tv-clock .clock-card { margin-top: 0; padding: 1.5vh 1.4vw; }
.tv-clock .clock-card > span { font-size: 1.15vw; }
.tv-clock .clock-card > b { font-size: 2.3vw; }
.tv-clock .clock-card p { margin-top: 0.7vh; font-size: 1.45vw; }
.tv-empty {
    margin: auto;
    text-align: center;
    font-size: 2vw;
    color: var(--gold);
}

.phone .order-card {
    display: block;
    margin: 0 0 0.65rem;
    padding: 0.2rem 0.9rem;
    border: 1px solid transparent;
    border-radius: 0.85rem;
    background: var(--card);
}

:is(.phone, .tv-clock) :is(
    .member,
    .panel,
    .card,
    .asset,
    .cells,
    .profile,
    .avatar,
    .spade,
    .tile,
    .entry,
    .row,
    .tag,
    .switch,
    .rank,
    .score,
    .dialog,
    .board,
    .period,
    .login-dialog,
    .login-submit,
    .wallet-bar,
    .wallet-refresh,
    .cat,
    .dish,
    .dish-fallback,
    .plus,
    .cart-go,
    .qty button,
    .pay-btn,
    .step-minus,
    .order-card,
    .match-line,
    .live-badge,
    .icon-btn,
    .table-chip,
    .match-row a,
    .clock-card,
    .fs-btn,
    .avatar-drawer button,
    .match-actions button,
    .match-actions a,
    .table-now
) {
    position: relative;
    border-color: transparent;
}

.phone :is(.cart-bar, .h5-toast, .seat .no) {
    border-color: transparent;
}

:is(.phone, .tv-clock) :is(
    .member,
    .panel,
    .card,
    .asset,
    .cells,
    .profile,
    .avatar,
    .spade,
    .tile,
    .entry,
    .row,
    .tag,
    .switch,
    .rank,
    .score,
    .dialog,
    .board,
    .period,
    .login-dialog,
    .login-submit,
    .wallet-bar,
    .wallet-refresh,
    .cat,
    .dish,
    .dish-fallback,
    .plus,
    .cart-go,
    .cart-bar,
    .qty button,
    .pay-btn,
    .step-minus,
    .h5-toast,
    .order-card,
    .match-line,
    .live-badge,
    .icon-btn,
    .table-chip,
    .match-row a,
    .seat .no,
    .clock-card,
    .fs-btn,
    .avatar-drawer button,
    .match-actions button,
    .match-actions a,
    .table-now
)::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: none;
    box-shadow: inset 0 0 0 1.5px var(--frame);
    pointer-events: none;
}

.phone :is(.activity .cover, .act-cover, .detail-poster, .match-cover) {
    border: 1.5px solid var(--frame);
    background: #000;
}

.phone .avatar-img {
    border: 1.5px solid var(--frame);
    background: #000;
}

.phone .dish-pic {
    border: 1.5px solid var(--frame);
    background: #000;
}

@media (min-width: 520px) {
    .phone {
        border: 1.5px solid var(--frame);
        background: #000;
    }
    .phone.phone-honor {
        background: #000;
    }
}

@property --hud-spin {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

@keyframes hud-spin {
    to { --hud-spin: 360deg; }
}

@keyframes hud-pulse {
    0%, 100% { filter: drop-shadow(0 0 10px rgba(255, 196, 60, 0.45)); }
    50% { filter: drop-shadow(0 0 22px rgba(255, 90, 40, 0.75)); }
}

.tv-clock {
    position: relative;
    font-family: "ZCOOL QingKe HuangYou", "PingFang SC", "Microsoft YaHei", sans-serif;
    background: #000;
}

.tv-clock::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: none;
    opacity: 0.28;
    z-index: 0;
}

.tv-clock > * { position: relative; z-index: 1; }

.tv-bar h1 {
    background: linear-gradient(180deg, #fff8dc 10%, #ffc14a 52%, #ff5a32);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 0 10px rgba(255, 160, 40, 0.55));
}

.tv-bar .league {
    font-family: Orbitron, sans-serif;
    font-weight: 500;
    color: #ffe7a0;
    text-shadow: 0 0 10px rgba(255, 196, 60, 0.65);
}

.tv-clock .back,
.tv-clock .fs-btn {
    font-family: "ZCOOL QingKe HuangYou", "Microsoft YaHei", sans-serif;
    letter-spacing: 0.08em;
}

.tv-clock .fs-btn {
    background: rgba(0, 0, 0, 0.72);
    box-shadow: 0 0 16px rgba(255, 176, 40, 0.35);
}

.tv-clock .fs-btn::after,
.tv-clock .clock-card::after {
    background: none;
    animation: none;
    filter: none;
}

.tv-clock .clock-card {
    background: #000;
    box-shadow: 0 0 22px rgba(255, 150, 30, 0.22), inset 0 0 18px rgba(255, 180, 40, 0.05);
}

.tv-clock .clock-card > span,
.tv-clock .clock-state {
    letter-spacing: 0.18em;
    text-shadow: 0 0 10px rgba(255, 196, 80, 0.45);
}

.tv-clock .clock-card > b,
.tv-clock .blind-line b,
.tv-clock .clock-card p b {
    font-family: Orbitron, sans-serif;
    font-weight: 700;
    color: #fff6d4;
    text-shadow: 0 0 12px rgba(255, 196, 60, 0.7);
}

.tv-clock .clock-card i {
    height: 0.42rem;
    box-shadow: 0 0 10px rgba(255, 210, 70, 0.8);
    background: linear-gradient(90deg, #39f08a, #ffe14a 55%, #ff5a32);
}

.hud-timer {
    position: relative;
    margin: 1.2vh auto 0;
    padding: 1.4vh 2vw 1.6vh;
    width: min(78vw, 1100px);
    border-radius: 1.2rem;
    background: #000;
    box-shadow: 0 0 36px rgba(255, 140, 30, 0.22), inset 0 0 40px rgba(255, 180, 40, 0.06);
    animation: hud-pulse 2.4s ease-in-out infinite;
}

.hud-timer::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    padding: 2px;
    pointer-events: none;
    background: none;
    animation: none;
    filter: none;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
}

.tv-clock .clock-num {
    font-family: Orbitron, sans-serif;
    font-weight: 700;
    color: #fff8d8;
    text-shadow:
        0 0 8px #fff1a8,
        0 0 22px rgba(255, 186, 40, 0.95),
        0 0 48px rgba(255, 70, 30, 0.55);
}

.tv-clock .blind-line {
    position: relative;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.8vw;
    width: fit-content;
    margin: 1.2vh auto 0;
    padding: 0.6vh 1.6vw;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.72);
    box-shadow: 0 0 18px rgba(255, 176, 40, 0.28);
}

.tv-clock .blind-line span {
    font-family: Orbitron, sans-serif;
    font-weight: 500;
}

.tv-clock .blind-line::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    pointer-events: none;
    background: none;
    animation: none;
    filter: none;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
}

.seat.is-empty { cursor: pointer; }
.seat.is-poor .seat-face img:not(.chair),
.seat.is-poor .seat-face .face {
    box-shadow: 0 0 0 2px #ff5a5a, 0 0 10px rgba(255, 70, 70, 0.55);
}
.seat.is-ready .seat-face img:not(.chair),
.seat.is-ready .seat-face .face {
    box-shadow: 0 0 0 2px #3ecf8e, 0 0 10px rgba(62, 207, 142, 0.45);
}
.seat-ready {
    display: block;
    color: #3ecf8e;
    font-size: 0.62rem;
    font-style: normal;
    text-align: center;
    margin: 0.04rem auto 0;
}
.seat:not(.is-ready) .seat-ready { color: #c9a36a; }
.seat-arrears {
    display: block;
    color: #ffb4a2;
    font-size: 0.62rem;
    font-style: normal;
    text-align: center;
    margin: 0.04rem auto 0;
}
.seat.is-arrears .seat-face img:not(.chair),
.seat.is-arrears .seat-face .face {
    box-shadow: 0 0 0 2px #ff8b72, 0 0 10px rgba(255, 120, 90, 0.45);
}
.revive-box {
    margin: 0.45rem 0 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0.7rem 0.8rem;
    border-radius: 0.9rem;
    background: rgba(255, 180, 120, 0.08);
    border: 1px solid rgba(240, 196, 110, 0.35);
}
.revive-box p {
    margin: 0 0 0.45rem;
    color: #f0d48a;
    font-size: 0.82rem;
}
.revive-step {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
}
.revive-step b {
    min-width: 1.8rem;
    text-align: center;
    font-size: 1.15rem;
    color: #fff8e8;
}
.revive-step button {
    min-width: 2.2rem;
    height: 2.2rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    background: rgba(0, 0, 0, 0.35);
    color: #f0d48a;
    font-size: 1.1rem;
}
.revive-step .revive-go {
    flex: 1;
    min-width: 0;
    margin-left: 0;
    background: linear-gradient(180deg, #f0d48a, #c4893a);
    color: #2a1c08;
    font-size: 0.95rem;
    font-weight: 700;
}
.seat.is-move-from .seat-face img:not(.chair),
.seat.is-move-from .seat-face .face,
.seat.is-move-from .seat-face .chair {
    box-shadow: 0 0 0 2px #ffe14a, 0 0 12px rgba(255, 225, 74, 0.55);
}
.move-hint {
    margin: 0 0 0.35rem;
    color: #ffe14a;
    font-size: 0.78rem;
    text-align: center;
}
.move-hint[hidden] { display: none; }
.score-pay {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.4rem 0.45rem;
    align-items: end;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(224, 176, 96, 0.16);
}
.score-pay[hidden] { display: none; }
.score-pay label {
    display: grid;
    gap: 0.18rem;
    color: #9a8a72;
    font-size: 0.78rem;
}
.score-pay-remark { grid-column: 1 / -1; }
.pay-sec {
    margin: 0.45rem 0 0;
    color: #f0d48a;
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.08em;
}
.score-pay .pay-fixed-block,
.score-pay > .pay-sec { grid-column: 1 / -1; }
.pay-fixed-block[hidden] { display: none !important; }
.pay-fixed-block .pay-sec { margin-top: 0; }
.score-pay-fixed {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.4rem;
    grid-column: 1 / -1;
}
.score-pay-fixed:empty { display: none; }
.score-pay .is-fixed,
.recharge-fixed .is-fixed {
    min-width: 4.4rem;
    height: 2.35rem;
    padding: 0 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 999px;
    background: rgba(240, 196, 110, 0.12);
    color: var(--gold);
    font-weight: 750;
}
.recharge-fixed { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.2rem 0 0.7rem; }
.recharge-fixed:empty { display: none; }
.score-pay input {
    width: 100%;
    height: 2.5rem;
    border: 1px solid rgba(224, 176, 96, 0.28);
    border-radius: 0.5rem;
    background: #000;
    color: #f3eee6;
    padding: 0 0.55rem;
    font-size: 0.95rem;
}
.score-pay button {
    height: 2.5rem;
    padding: 0 1rem;
    border: 1px solid rgba(240, 196, 110, 0.8);
    border-radius: 0.5rem;
    background: transparent;
    color: var(--gold);
    font-weight: 750;
    font-size: 0.95rem;
    cursor: pointer;
    white-space: nowrap;
}
.score-pay .hint {
    grid-column: 1 / -1;
    margin: 0;
    color: #9a8a72;
    font-size: 0.75rem;
}
.seat-score {
    display: block;
    margin: 0 auto;
    font-style: normal;
    color: #ffe14a;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.match-page .seat-meta, .phone.is-dealer-view .seat-meta { width: max-content; max-width: 5.4rem; }
.seat-cash, .seat-gift {
    display: block;
    margin: 0.04rem auto 0;
    font-style: normal;
    color: #d8c7a4;
    font-size: 0.58rem;
    font-weight: 600;
    line-height: 1.15;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.seat-gift { color: #9fd7c2; }
.rank-card { max-height: 32vh; overflow: auto; }
.rank-line {
    display: grid;
    grid-template-columns: 1.6em 1.5em 1fr auto;
    align-items: center;
    gap: 0.45em;
}
.rank-line img {
    width: 1.5em;
    height: 1.5em;
    border-radius: 0.25em;
    object-fit: cover;
}
.rank-line em { font-style: normal; color: var(--ink); }
.rank-line strong { font-family: Orbitron, sans-serif; }

.live-mqtt {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.22rem 0.48rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 220, 150, 0.45);
    color: var(--muted);
    font-size: 0.62rem;
    white-space: nowrap;
}
.live-mqtt i {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: #8a8070;
}
.live-mqtt em { font-style: normal; color: var(--gold); font-weight: 650; letter-spacing: 0.04em; }
.live-mqtt b { font-weight: 500; }
.live-mqtt.is-on i { background: #3dcc6f; box-shadow: 0 0 8px rgba(61, 204, 111, 0.85); }
.live-mqtt.is-on b { color: #9be7b4; }
.live-mqtt.is-off i { background: #e24b43; }
.live-mqtt.is-off b { color: #e08a86; }
.live-mqtt.is-wait i { background: #f0d48a; }
.tv-actions { display: flex; align-items: center; gap: 0.8vw; justify-self: end; }
.tv-bar { grid-template-columns: 14vw 1fr auto; }

.mine-sheet { display: flex; flex-direction: column; gap: 0.75rem; padding-top: 10px; }
.mine-card {
    padding: 0.95rem;
    border-radius: 1rem;
    border: 1px solid var(--line);
    background: #000;
}
.mine-id { display: flex; align-items: center; gap: 0.65rem; }
.mine-id-copy { min-width: 0; flex: 1; }
.mine-name { display: flex; align-items: center; flex-wrap: wrap; gap: 0.35rem 0.4rem; }
.mine-name strong { font-size: 1.05rem; }
.mine-id p { margin: 0.18rem 0 0; color: var(--muted); font-size: 0.8rem; }
.mine-shop { color: #a89068 !important; font-size: 0.72rem !important; }
.role-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(240, 196, 110, 0.55);
    color: var(--gold);
    font-size: 0.68rem;
    font-style: normal;
    line-height: 1.4;
}
.role-tag.is-on { background: rgba(240, 196, 110, 0.18); color: #f0d48a; }
.role-switches { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; flex: none; }
.role-menu { display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; }
.role-menu[hidden] { display: none; }
.mine-card .role-switch {
    flex: none;
    width: auto;
    margin-top: 0;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(240, 196, 110, 0.55);
    background: transparent;
    color: var(--gold);
    font-size: 0.72rem;
    white-space: nowrap;
    cursor: pointer;
}
.mine-desk .kicker { margin-bottom: 0.65rem; }
.shift-board {
    display: grid;
    grid-template-columns: 3.4rem minmax(0, 1fr) auto;
    gap: 0.55rem 0.75rem;
    align-items: center;
}
.shift-ico { width: 3.4rem; height: 3.4rem; object-fit: cover; border-radius: 50%; }
.shift-copy { min-width: 0; }
.shift-copy strong {
    display: block;
    overflow: hidden;
    color: #f8f0df;
    font-size: 1.2rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.shift-copy span {
    display: block;
    margin-top: 0.22rem;
    overflow: hidden;
    color: #cbb892;
    font-size: 0.82rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.shift-meta { text-align: right; }
.shift-meta em {
    display: block;
    color: var(--gold);
    font-style: normal;
    font-size: 0.82rem;
    white-space: nowrap;
}
.shift-meta b {
    display: block;
    margin-top: 0.18rem;
    color: #f8f0df;
    font-size: 1.05rem;
    font-weight: 700;
}
.shift-go { grid-column: 1 / -1; margin-top: 0.15rem; }
.shift-board.is-idle { grid-template-columns: 3.4rem minmax(0, 1fr); }
.mine-primary, .mine-ghost {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.55rem;
    margin-top: 0.8rem;
    border-radius: 0.75rem;
    font-weight: 700;
}
.mine-primary {
    border: 1px solid rgba(240, 196, 110, 0.8);
    background: transparent;
    color: var(--gold);
}
.mine-ghost {
    margin-top: 0;
    border: 1px solid rgba(240, 196, 110, 0.45);
    background: transparent;
    color: var(--gold);
}
.dealer-actions .mine-primary,
.dealer-actions .mine-ghost {
    background: #000;
    color: var(--gold);
}
.mine-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem 0.45rem; }
.mine-stats a { text-align: center; }
.mine-stats span { display: block; color: var(--muted); font-size: 0.72rem; }
.mine-stats b { display: block; margin-top: 0.28rem; color: var(--gold); font-size: 1.2rem; font-weight: 750; }
.mine-more { display: block; margin-top: 0.85rem; text-align: center; color: var(--gold); font-size: 0.82rem; }
.handled-tabs, .handled-ranges, .handled-signs { display: flex; gap: 0.4rem; margin-bottom: 0.65rem; }
.handled-tabs a, .handled-ranges a, .handled-signs a {
    flex: 1;
    padding: 0.42rem 0;
    border-radius: 999px;
    border: 1px solid rgba(240, 196, 110, 0.28);
    color: var(--muted);
    font-size: 0.78rem;
    text-align: center;
}
.handled-tabs a.is-on, .handled-ranges a.is-on, .handled-signs a.is-on {
    color: var(--gold);
    background: transparent;
    border-color: var(--gold);
    box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.4);
    font-weight: 700;
}
.handled-lines .bill-line strong, .handled-lines .bill-line span { display: block; }
.handled-lines .bill-line span { margin-top: 0.16rem; color: var(--muted); font-size: 0.75rem; }
.handled-lines .bill-line b { align-self: center; max-width: 9.2rem; text-align: right; font-size: 0.8rem; line-height: 1.35; }
.handled-lines .bill-line b.is-plus { color: #8dcea0; }
.handled-lines .bill-line b.is-minus { color: #e7b2a8; }
.handled-more { width: 100%; margin-top: 0.9rem; }
.dealer-actions { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0.5rem; margin-top: 0.8rem; }
.dealer-actions .mine-primary, .dealer-actions .mine-ghost { margin-top: 0; }
.mine-menu {
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: var(--card);
    overflow: hidden;
}
.mine-menu a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    min-height: 3.15rem;
    padding: 0.7rem 0.95rem;
    border-bottom: 1px solid rgba(224, 176, 96, 0.16);
}
.mine-menu a:last-child { border-bottom: 0; }
.mine-menu span { color: var(--ink); font-weight: 650; }
.mine-menu small { color: var(--muted); font-size: 0.75rem; }
.mine-menu small::after { content: " ›"; }
.mine-logout {
    width: 100%;
    height: 2.7rem;
    border: 1px solid rgba(224, 176, 96, 0.28);
    border-radius: 0.9rem;
    background: transparent;
    color: #e7c2b8;
    font-size: 0.92rem;
    cursor: pointer;
}
.mine .footnote { margin: 0; text-align: center; }
.topbar-compact { display: flex; align-items: center; gap: 0.5rem; }
.topbar-compact h1 { flex: 1; text-align: center; font-size: 1.05rem; }
.topbar-act { flex: none; color: var(--gold); font-size: 0.82rem; }
.match-hud {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.45rem 0.85rem;
    flex: 1 1 0;
    min-width: 0;
    margin: 0.55rem 0 0;
    padding: 0.5rem 0.05rem 0;
    border-radius: 0;
    border: 0;
    border-top: 1px solid rgba(255, 220, 150, 0.16);
    background: transparent;
    align-items: center;
}
.ops-speed {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.55rem;
    color: #d4bc96;
    font-size: 0.78rem;
}
.ops-speed b { color: var(--gold); min-width: 2.4rem; text-align: center; }
.ops-speed button {
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(255, 220, 150, 0.45);
    border-radius: 0.45rem;
    background: transparent;
    color: var(--gold);
}
.hud-clock b {
    display: block;
    font-size: 1.28rem;
    letter-spacing: 0.04em;
    color: var(--gold);
    line-height: 1;
}
.hud-clock span, .hud-blind em, .hud-blind span {
    display: block;
    margin-top: 0.12rem;
    color: #d4bc96;
    font-size: 0.66rem;
    font-style: normal;
}
.hud-blind { align-self: center; }
.hud-blind i { font-style: normal; color: var(--gold); }
.hud-blind b { color: var(--ink); }
.hud-ops-btn {
    align-self: center;
    height: 2rem;
    padding: 0 0.7rem;
    border: 1px solid rgba(255, 220, 150, 0.55);
    border-radius: 0.55rem;
    background: transparent;
    color: var(--gold);
    font-size: 0.82rem;
    font-weight: 750;
    cursor: pointer;
    white-space: nowrap;
}
#opsMask { pointer-events: auto; background: rgba(7, 7, 9, 0.55); overflow: hidden; }
.ops-drawer {
    max-height: calc(100dvh - 1.25rem);
    max-height: calc(100svh - 1.25rem);
    padding-bottom: calc(1.35rem + env(safe-area-inset-bottom, 0px));
    background: #000;
}
.ops-drawer .dealer-ops {
    margin: 0.45rem 0 0;
}
.dealer-ops {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
    margin: 0;
}
.hud-rate { margin-top: 0.2rem; }
.clock-rate { text-align: center; color: var(--gold); font-size: 0.85rem; margin: 0.2rem 0 0; }
.dealer-ops button, .dealer-ops a {
    height: 2.15rem;
    border: 1px solid rgba(255, 220, 150, 0.45);
    border-radius: 0.55rem;
    background: transparent;
    color: var(--gold);
    font-size: 0.78rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.dealer-ops button:disabled { opacity: 0.45; }
.member-sheet {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem 0.55rem;
    margin: 0.45rem 0 0;
    padding: 0.5rem 0 0;
    border-top: 1px solid rgba(255, 220, 150, 0.22);
}
.member-sheet[hidden] { display: none; }
.member-sheet .sheet-cell { min-width: 0; }
.member-sheet .sheet-arrears {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0.32rem 0.6rem;
    border-radius: 999px;
    text-align: center;
    letter-spacing: 0.14em;
    color: #ffd0c4;
    background: rgba(255, 90, 60, 0.18);
    border: 1px solid rgba(255, 139, 114, 0.75);
    font-size: 0.78rem;
    font-weight: 700;
}
.member-sheet .sheet-cell.is-arrears dd,
.member-sheet .sheet-cell.is-short dd { color: #ff4d4d; }
.member-sheet dt { margin: 0; color: #9a8a72; font-size: 0.74rem; line-height: 1.25; }
.member-sheet dd {
    margin: 0.12rem 0 0;
    color: var(--ink);
    font-size: 0.9rem;
    font-weight: 650;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.score-ops {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
    margin-top: 0.5rem;
}
.score-ops button {
    min-width: 0;
    width: 100%;
}
.score-kick {
    display: block; width: 100%; margin: 0; height: 2.5rem;
    border: 1px solid rgba(224, 138, 134, 0.55); border-radius: 0.55rem; background: transparent;
    color: #e08a86; font-size: 0.9rem; cursor: pointer;
}
.score-kick[hidden], .score-undo[hidden], .score-leave[hidden], .score-ops button[hidden] { display: none; }
.score-ops .score-undo, .score-ops .score-leave { background: transparent; border: 1px solid rgba(240, 196, 110, 0.35); }
.h5-form { display: flex; flex-direction: column; gap: 0.75rem; }
.h5-form label { display: block; color: #d4bc96; font-size: 0.78rem; }
.h5-form input, .h5-form select, .h5-form textarea {
    display: block; width: 100%; margin-top: 0.32rem;
    padding: 0.7rem 0.75rem; border-radius: 0.5rem;
    border: 1px solid rgba(224, 176, 96, 0.28);
    background: #000; background-color: #000; color: var(--ink); font: inherit;
    color-scheme: dark; -webkit-appearance: none; appearance: none;
    -webkit-text-fill-color: var(--ink);
}
.h5-form option { background: #000; color: var(--ink); }
.h5-form textarea { min-height: 6.5rem; resize: vertical; }
.fee-mask .login-dialog { text-align: center; }
.fee-mask .pay-actions { display: flex; justify-content: center; }
.fee-mask .pay-actions .is-ok { min-width: 9.5rem; padding: 0 1.4rem; }
.fee-mask .fee-amt { margin: 0.7rem 0 0.2rem; color: #e8c27a; font-size: 1.45rem; font-weight: 700; }
.fee-mask .fee-tick { margin: 0; color: #9a8a72; font-size: 0.78rem; }
.tpl-list { display: flex; flex-direction: column; gap: 0.45rem; max-height: 50vh; overflow: auto; margin: 0.6rem 0; }
.tpl-list button { display: block; width: 100%; text-align: left; padding: 0.7rem 0.8rem; border-radius: 0.55rem; border: 1px solid rgba(212,175,106,.28); background: #000; color: var(--ink); font: inherit; cursor: pointer; }
.tpl-list button em { display: block; margin-top: 0.2rem; color: #9a8a72; font-style: normal; font-size: 0.75rem; }
.gift-kicker { display: block; color: #d4bc96; font-size: 0.78rem; }
.gift-tickets { max-height: none; margin: 0.32rem 0 0; }
.gift-tickets button.is-on { border-color: rgba(240, 196, 110, 0.95); color: var(--gold); }
.gift-logs { margin-top: 1.25rem; }
.gift-record-title { margin: 0; color: var(--gold); font-size: 0.95rem; }
.gift-record-head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.15rem; }
.gift-more { color: var(--gold); font-size: 0.82rem; }
.gift-filter { display: flex; flex-direction: column; gap: 0.55rem; margin-bottom: 0.35rem; }
.gift-filter select.login-input {
    -webkit-appearance: none; appearance: none; color-scheme: dark;
    margin: 0; background-color: #000;
}
.gift-filter .gift-search { margin: 0; }
.gift-lock { display: flex; align-items: center; justify-content: space-between; margin: 0.15rem 0 0.45rem; color: var(--ink); }
.gift-lock a { color: var(--gold); font-size: 0.8rem; }
.gift-more-line { display: block; margin-top: 0.85rem; text-align: center; color: var(--gold); }
.gift-logs .bill-line strong { color: var(--ink); font-weight: 600; }
.gift-logs .bill-line span { display: block; margin-top: 0.16rem; color: var(--muted); font-size: 0.75rem; }
.gift-logs .bill-line b { align-self: center; color: var(--muted); font-weight: 500; font-size: 0.75rem; }

.phone .login-mask .login-dialog,
.phone .score-drawer {
    background: #000;
    border: 1px solid rgba(240, 196, 110, 0.95);
}
.phone .score-drawer {
    width: min(calc(100% - 0.4rem), 480px);
    min-height: min(86dvh, 46rem);
    min-height: min(86svh, 46rem);
    margin: 0 auto 0.2rem;
    border-radius: 1rem;
}

.match-page .match-top {
    grid-template-columns: 2.2rem minmax(0, 1fr) 2.2rem;
}
.match-top .match-balance { grid-column: 3; grid-row: 1; }
.match-page > .match-dock.ops-host {
    position: absolute;
    left: 0.45rem;
    right: 0.45rem;
    bottom: calc(0.35rem + var(--safe-b));
    z-index: 20;
    width: auto;
    margin: 0;
    padding: 0;
    background: transparent;
    border-top: 0;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}
.match-page > .match-dock:not(.ops-host) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}
.desk-board {
    pointer-events: none;
    padding: 0.48rem 0.65rem 0.52rem;
    background: rgba(0, 0, 0, 0.82);
}
.desk-board-main[hidden],
.desk-board-meta[hidden],
.desk-board > p[hidden],
.time-rail[hidden] { display: none !important; }
.desk-board-main {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.7rem;
}
.desk-board .hud-clock {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex: none;
}
.desk-board .hud-clock b {
    color: var(--gold);
    font-size: 1.2rem;
    letter-spacing: 0.02em;
}
.desk-board .hud-clock span {
    color: #cbb892;
    font-size: 0.72rem;
    white-space: nowrap;
}
.desk-board-copy {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: right;
    color: #f8f0df;
    font-size: 0.78rem;
}
.desk-board-copy em {
    color: var(--gold);
    font-style: normal;
    margin-right: 0.35rem;
}
.desk-board-meta {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.45rem 0.8rem;
    margin-top: 0.28rem;
    color: #cbb892;
    font-size: 0.86rem;
}
.desk-board-meta b {
    color: var(--gold);
    font-weight: 700;
}
.time-rail {
    margin: 0.45rem 0.15rem 0.05rem;
    padding: 0 0.45rem;
    pointer-events: none;
}
.time-rail-track {
    position: relative;
    height: 0.38rem;
    border-radius: 99px;
    background: rgba(240, 196, 110, 0.16);
}
.time-rail-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #8a5a18, #f0d48a);
    box-shadow: 0 0 10px rgba(240, 196, 110, 0.45);
}
.time-rail-tick {
    position: absolute;
    top: 0;
    width: 0.55rem;
    height: 0.38rem;
    margin-left: -0.275rem;
    background: transparent;
}
.time-rail-tick:not(.is-end)::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.42rem;
    height: 0.42rem;
    margin: -0.21rem 0 0 -0.21rem;
    border-radius: 50%;
    background: #f6e2b0;
    box-shadow: 0 0 0 1px #c4893a, 0 0 6px rgba(240, 196, 110, 0.85);
}
.time-rail-tick em {
    position: absolute;
    left: 50%;
    top: 0.5rem;
    transform: translateX(-50%);
    color: #cbb892;
    font-size: 0.62rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1;
}
.time-rail-tick.is-on::after { background: #fff8e8; }
.time-rail-tick.is-on em { color: #f0d48a; }
.time-rail-tick.is-end {
    top: 0;
    width: 2px;
    height: 0.38rem;
    margin-left: -1px;
    background: rgba(240, 212, 138, 0.4);
}
.time-rail-tick.is-end::after { content: none; }
.time-rail-now {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 0.62rem;
    height: 0.62rem;
    margin: -0.31rem 0 0 -0.31rem;
    border-radius: 50%;
    background: #fff8e8;
    box-shadow: 0 0 0 2px #c4893a, 0 0 10px #f0c46e;
}
.time-rail.is-run:not(.is-paused) .time-rail-now::before,
.time-rail.is-run:not(.is-paused) .time-rail-now::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 0, #fff 0 1.7px, transparent 2.8px),
        radial-gradient(circle at 86% 14%, #ffe9b0 0 1.3px, transparent 2.3px),
        radial-gradient(circle at 100% 50%, #fff 0 1.6px, transparent 2.6px),
        radial-gradient(circle at 14% 86%, #fff6d0 0 1.2px, transparent 2.1px),
        radial-gradient(circle at 0 50%, #fff 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 50% 100%, #ffe7a3 0 1.4px, transparent 2.4px);
    filter: drop-shadow(0 0 2px rgba(255, 244, 210, 0.95));
}
.time-rail.is-run:not(.is-paused) .time-rail-now::before {
    width: 1.45rem;
    height: 1.45rem;
    margin: -0.725rem 0 0 -0.725rem;
    animation: rail-stars 2.6s linear infinite;
}
.time-rail.is-run:not(.is-paused) .time-rail-now::after {
    width: 1.9rem;
    height: 1.9rem;
    margin: -0.95rem 0 0 -0.95rem;
    animation: rail-stars-back 3.8s linear infinite, rail-star-flicker 1.15s ease-in-out infinite;
}
.time-rail-cap {
    margin: 1.2rem 0 0;
    color: #cbb892;
    font-size: 0.68rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.time-rail.is-paused .time-rail-fill {
    background: #9a8a72;
    box-shadow: none;
}
.time-rail.is-paused .time-rail-now::before,
.time-rail.is-paused .time-rail-now::after { animation: none; content: none; }
.time-rail.is-paused .time-rail-now { box-shadow: 0 0 0 2px #9a8a72; }
@keyframes rail-stars {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes rail-stars-back {
    from { transform: rotate(0deg); }
    to { transform: rotate(-360deg); }
}
@keyframes rail-star-flicker {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
}
@keyframes wbar-heart {
    0%, 100% { opacity: 0.18; transform: translate(-50%, -50%) scale(0.9); }
    14% { opacity: 0.95; transform: translate(-50%, -50%) scale(1.12); }
    28% { opacity: 0.22; transform: translate(-50%, -50%) scale(0.94); }
    42% { opacity: 0.82; transform: translate(-50%, -50%) scale(1.06); }
    62% { opacity: 0.16; transform: translate(-50%, -50%) scale(0.9); }
}
@media (prefers-reduced-motion: reduce) {
    .felt::before,
    .time-rail-now::before,
    .time-rail-now::after { animation: none; }
}
.time-rail.is-paused .time-rail-cap { color: #f0d48a; }
.tv-clock .tv-level { width: min(78vw, 1100px); }
.tv-clock .time-rail {
    width: 100%;
    margin: 1.4vh auto 0;
}
.tv-clock .time-rail-track { height: 0.7rem; }
.tv-clock .time-rail-tick { height: 0.7rem; top: 0; }
.tv-clock .time-rail-tick em { top: 0.9rem; font-size: 1.15vw; }
.tv-clock .time-rail-tick.is-end { top: 0; height: 0.7rem; }
.tv-clock .time-rail-now { width: 1rem; height: 1rem; margin: -0.5rem 0 0 -0.5rem; }
.tv-clock .clock-card .time-rail-cap {
    display: block;
    margin: 2.4rem 0 0;
    font-size: 1.15vw;
    text-align: center;
}
.desk-board > p {
    margin: 0;
    color: #cbb892;
    font-size: 0.75rem;
}
.ops-bar,
.match-page .dock-join,
.match-page .dock-join button,
.ops-bar button,
.ops-bar a {
    pointer-events: auto;
}
.ops-bar {
    display: block;
    position: relative;
    z-index: 12;
    pointer-events: auto;
    border: 1px solid rgba(240, 196, 110, 0.95);
    border-radius: 1rem;
    background: #000;
    padding: 0.55rem 0.6rem 0.6rem;
}
.ops-type-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}
.ops-type-row strong {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #f8f0df;
    font-size: 0.92rem;
    font-weight: 650;
}
.ops-link {
    flex: none;
    border: 0;
    background: transparent;
    color: #f0d48a;
    font-size: 0.78rem;
    padding: 0.15rem 0.1rem;
}
.ops-link:disabled { opacity: 0.4; }
.ops-note {
    margin: 0.2rem 0 0;
    color: #cbb892;
    font-size: 0.72rem;
}
.ops-primary {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.45rem;
}
.ops-go {
    width: 100%;
    height: 2.45rem;
    border: 1px solid rgba(240, 196, 110, 0.9);
    border-radius: 0.7rem;
    background: transparent;
    color: var(--gold);
    font-size: 0.98rem;
    font-weight: 750;
}
.ops-go:disabled { opacity: 0.45; }
.start-dialog { max-height: calc(100dvh - 1.6rem); overflow: auto; text-align: left; }
.start-dialog h2 { margin-bottom: 0.35rem; }
.start-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
    margin-top: 0.75rem;
}
.start-cell {
    min-height: 4.15rem;
    padding: 0.4rem 0.3rem 0.45rem;
    border-radius: 0.45rem;
    border: 1px solid rgba(240, 196, 110, 0.28);
    background: #000;
    text-align: center;
}
.start-cell b { display: block; color: var(--gold); font-size: 0.72rem; font-weight: 650; }
.start-cell span {
    display: block;
    margin-top: 0.18rem;
    color: var(--ink);
    font-size: 0.78rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.start-cell em {
    display: block;
    margin-top: 0.16rem;
    color: #fa5151;
    font-style: normal;
    font-size: 0.66rem;
    line-height: 1.3;
}
.start-cell.is-empty { opacity: 0.42; }
.start-cell.is-empty span { color: var(--muted); }
.start-cell.is-short { border-color: #fa5151; }
.start-dialog .pay-actions .is-ok:disabled { opacity: 0.4; }
.ops-secondary {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.4rem;
}
.ops-secondary:empty { display: none; }
.ops-mini {
    flex: 1;
    min-width: 0;
    height: 1.9rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.55rem;
    background: transparent;
    color: var(--gold);
    font-size: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ops-bar .ops-speed {
    flex: 1.3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    margin: 0;
}
.ops-speed-title {
    color: #cbb892;
    font-style: normal;
    font-size: 0.62rem;
    line-height: 1;
    letter-spacing: 0.08em;
    white-space: nowrap;
}
.ops-speed-step {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
}
.ops-bar .ops-speed button {
    width: 1.7rem;
    height: 1.7rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.45rem;
    background: transparent;
    color: var(--gold);
}
.ops-bar .ops-speed b {
    min-width: 2.2rem;
    text-align: center;
    color: var(--gold);
    font-size: 0.78rem;
}

.desk-lobby-top .desk-title { font-size: 1.28rem; letter-spacing: 0.08em; }
.desk-lobby { padding: 0.35rem 0.85rem 1.2rem; }
.desk-lead {
    margin: 0.2rem 0 0.85rem;
    color: #cbb892;
    font-size: 0.98rem;
    letter-spacing: 0.06em;
}
.desk-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}
.desk-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    min-height: 9.2rem;
    min-width: 0;
    padding: 0.95rem 0.6rem 0.85rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 1rem;
    background: #000;
    text-align: center;
    color: inherit;
}
.desk-ico {
    display: grid;
    place-items: center;
    width: 4.2rem;
    height: 4.2rem;
    margin-bottom: 0.15rem;
    overflow: hidden;
    border-radius: 50%;
}
.desk-ico img { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 50%; }
.desk-tile.is-live { border-color: rgba(240, 196, 110, 0.95); box-shadow: inset 0 0 0 1px rgba(240, 196, 110, 0.28); }
.desk-tile.is-off { opacity: 0.45; }
.desk-tile b {
    max-width: 100%;
    color: #f8f0df;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.desk-tile em {
    font-style: normal;
    color: var(--gold);
    font-size: 0.92rem;
}
.desk-tile em.is-idle { color: #cbb892; }
.desk-tile span { color: #cbb892; font-size: 0.86rem; }
.desk-list { display: flex; flex-direction: column; gap: 0.65rem; }
.desk-card {
    display: block;
    padding: 0.85rem 0.9rem 0.8rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 1rem;
    background: #000;
    color: inherit;
}
.desk-card.is-live { border-color: rgba(240, 196, 110, 0.95); }
.desk-card.is-off { opacity: 0.45; }
.desk-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.desk-card-top b {
    min-width: 0;
    color: #f8f0df;
    font-size: 1.05rem;
    font-weight: 700;
}
.desk-card-top em {
    flex: none;
    padding: 0.12rem 0.45rem;
    border: 1px solid rgba(240, 196, 110, 0.7);
    border-radius: 99px;
    color: var(--gold);
    font-style: normal;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
}
.desk-card-top em.is-idle { color: #cbb892; border-color: rgba(240, 196, 110, 0.28); }
.desk-card > strong {
    display: block;
    margin-top: 0.45rem;
    color: var(--gold);
    font-size: 0.92rem;
    font-weight: 650;
}
.desk-card p {
    display: flex;
    gap: 0.7rem;
    margin: 0.45rem 0 0;
    color: #cbb892;
    font-size: 0.75rem;
}
.clock-public {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 1.2vh auto 0;
    width: min(92vw, 1100px);
}
.clock-public div {
    min-width: 0;
    padding: 0.7rem 0.55rem 0.62rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.85rem;
    background: #000;
    text-align: center;
}
.phone > .match-top {
    grid-template-columns: 2.2rem minmax(0, 1fr) 2.2rem;
}
.clock-public > div > span {
    display: block;
    color: #cbb892;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}
.clock-public b span {
    display: inline;
    color: #f8f0df;
    font-size: inherit;
    letter-spacing: 0;
}
.clock-public b {
    display: block;
    margin-top: 0.2rem;
    color: #f8f0df;
    font-size: 1.05rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tv-clock .blind-line span { margin: 0 0.35rem 0 0.8rem; }
.tv-clock .blind-line span:first-child { margin-left: 0; }
@media (max-width: 720px) {
    body.tv-body { height: auto; min-height: 100%; overflow: auto; }
    .tv-clock { height: auto; min-height: 100dvh; padding: 0.75rem 0.75rem 1.2rem; }
    .tv-bar { grid-template-columns: 4.4rem minmax(0, 1fr) auto; gap: 0.35rem; }
    .tv-bar .back, .tv-clock .fs-btn { font-size: 0.78rem; }
    .tv-bar .league { font-size: 0.72rem; letter-spacing: 0.16em; }
    .tv-bar h1 { font-size: 1.05rem; }
    .tv-clock .clock-num { font-size: 3.6rem; }
    .tv-clock .clock-state, .tv-clock .blind-line { font-size: 0.85rem; }
    .tv-clock .blind-line b { font-size: 1.35rem; }
    .tv-level { width: 100%; }
    .tv-clock .time-rail { width: 100%; }
    .tv-clock .time-rail-tick em, .tv-clock .time-rail-cap { font-size: 0.72rem; }
    .tv-clock .clock-card > span, .tv-clock .clock-card > b, .tv-clock .clock-card p { font-size: 0.85rem; }
    .tv-split { grid-template-columns: 1fr; gap: 0.55rem; }
    .hud-timer { width: 100%; }
}

.match-page > .desk-chrome {
    position: absolute;
    left: 0.45rem;
    right: 0.45rem;
    top: 10px;
    z-index: 20;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.34rem;
    margin: 0;
    padding: 0;
    pointer-events: none;
}
.match-page > .desk-chrome > .desk-back,
.match-page > .desk-chrome > .desk-msg,
.match-page > .desk-chrome > .match-top { pointer-events: auto; }
.desk-msg {
    position: fixed;
    z-index: 33;
    top: calc(10px + 1.8rem);
    right: max(0.75rem, calc(50% - 240px + 0.75rem));
    width: 2.2rem;
    height: 2.2rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(240, 196, 110, 0.75);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.82);
    color: #f0d48a;
    display: grid;
    place-items: center;
    cursor: pointer;
}
.desk-msg svg { width: 1.15rem; height: 1.15rem; display: block; }
.desk-msg i {
    position: absolute;
    top: 0.12rem;
    right: 0.12rem;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #e24b43;
    box-shadow: 0 0 6px rgba(226, 75, 67, 0.8);
}
.desk-msg i[hidden] { display: none; }
.desk-msg-mask {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: rgba(7, 7, 9, 0.55);
}
.desk-msg-mask[hidden] { display: none; }
.desk-msg-sheet {
    width: min(100%, 480px);
    max-height: min(70dvh, 34rem);
    display: flex;
    flex-direction: column;
    padding: 0.7rem 0.85rem calc(0.85rem + var(--safe-b));
    border-radius: 1rem 1rem 0 0;
    background: #000;
    border: 1px solid rgba(240, 196, 110, 0.35);
    border-bottom: 0;
}
.desk-msg-head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; }
.desk-msg-tabs { display: flex; gap: 0.4rem; }
.desk-msg-tabs button {
    margin: 0;
    padding: 0.28rem 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.35);
    border-radius: 999px;
    background: transparent;
    color: #cbb892;
    font-size: 0.82rem;
}
.desk-msg-tabs button.is-on { color: #f0d48a; border-color: #f0d48a; }
.desk-msg-close {
    width: 1.9rem;
    height: 1.9rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(240, 196, 110, 0.45);
    border-radius: 50%;
    background: transparent;
    color: #f0d48a;
    cursor: pointer;
}
.desk-msg-list {
    margin-top: 0.7rem;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-height: 8rem;
}
.desk-msg-line {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.45rem;
    align-items: start;
    padding: 0.45rem 0;
    border-bottom: 1px solid rgba(240, 196, 110, 0.16);
}
.desk-msg-line em { color: #f0d48a; font-style: normal; font-size: 0.72rem; white-space: nowrap; }
.desk-msg-line b { display: block; color: #f8f0df; font-size: 0.92rem; font-weight: 650; }
.desk-msg-line span { color: #cbb892; font-size: 0.72rem; }
.desk-msg-line.is-unread b { color: #fff8e4; }
.desk-msg-empty { margin: 1.2rem 0; color: #cbb892; text-align: center; font-size: 0.86rem; }
.desk-msg-send { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.7rem; }
.desk-msg-send button, .desk-msg-send .desk-msg-go {
    margin: 0;
    padding: 0.38rem 0.65rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 999px;
    background: transparent;
    color: #f0d48a;
    font-size: 0.78rem;
    cursor: pointer;
}
.desk-msg-send input {
    flex: 1 1 8rem;
    min-width: 0;
    height: 2.2rem;
    border: 1px solid rgba(240, 196, 110, 0.35);
    border-radius: 0.6rem;
    background: #000;
    color: #f8f0df;
    padding: 0 0.6rem;
}
.desk-msg-send .desk-msg-go { border-radius: 0.6rem; height: 2.2rem; }
.match-page .desk-back {
    position: relative;
    flex: none;
    width: 2.64rem;
    height: 2.64rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.match-page .desk-back svg { width: 1.38rem; height: 1.38rem; }
.match-page > .desk-chrome > .match-top {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    z-index: 20;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.24rem;
    margin: 0;
    padding: 0.56rem 0.15rem 0.6rem;
    text-align: left;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.82);
    grid-template-columns: none;
}
.desk-user {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    width: 100%;
    min-width: 0;
}
.desk-me {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex: 1;
    min-width: 0;
}
.desk-match,
.desk-funds,
.desk-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 0.45rem;
    width: 100%;
}
.desk-match > span,
.desk-funds > span,
.desk-stats > span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    min-width: 0;
    text-align: center;
    white-space: normal;
}
.desk-funds em,
.desk-stats em,
.desk-match em {
    color: #cbb892;
    font-style: normal;
    font-size: 0.72rem;
}
.desk-funds b,
.desk-stats b,
.desk-match b {
    max-width: 100%;
    color: var(--gold);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.15;
    overflow-wrap: anywhere;
    word-break: break-all;
    white-space: normal;
}
.desk-funds .is-score b {
    font-size: 0.98rem;
}
.desk-avatar {
    flex: none;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    border: 1px solid rgba(240, 196, 110, 0.8);
    object-fit: cover;
    display: grid;
    place-items: center;
    background: #000;
    color: var(--gold);
    font-size: 0.85rem;
    font-weight: 700;
}
.desk-me strong {
    display: block;
    color: #f8f0df;
    font-size: 1.03rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.desk-role {
    flex: none;
    margin-left: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--gold);
    font-size: 0.79rem;
}
.desk-public {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.26rem;
    width: 100%;
    min-width: 0;
    padding-top: 0;
    border-top: 0;
}
.desk-public-head {
    display: flex;
    align-items: baseline;
    justify-content: flex-start;
    gap: 0.45rem;
    width: 100%;
    min-width: 0;
}
.desk-public .hud-clock {
    display: flex;
    align-items: baseline;
    gap: 0.28rem;
    flex: none;
    text-align: left;
}
.desk-public .hud-clock b { font-size: 1.14rem; letter-spacing: 0.02em; color: var(--gold); }
.desk-public .hud-clock span { display: inline; color: #cbb892; font-size: 0.79rem; white-space: nowrap; }
.desk-public-head strong {
    display: flex;
    justify-content: flex-start;
    gap: 0.28rem;
    flex: 1;
    max-width: none;
    min-width: 0;
    color: #f8f0df;
    font-size: 0.86rem;
    font-weight: 650;
    text-align: left;
}
.desk-public-head strong em { flex: none; color: var(--gold); font-style: normal; }
.desk-public-head strong span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.desk-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    width: 100%;
}
.desk-stats > span {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.18rem;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: center;
    white-space: nowrap;
}
.desk-stats em {
    display: inline;
    color: #cbb892;
    font-style: normal;
    font-size: 0.72rem;
}
.desk-stats b {
    display: inline;
    margin-top: 0;
    color: var(--gold);
    font-size: 0.86rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.is-dealer-view .desk-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.is-dealer-view .desk-stats > span { flex-direction: column; align-items: center; gap: 0.08rem; white-space: normal; }
.is-dealer-view .desk-stats b { display: block; max-width: 100%; white-space: nowrap; }
.desk-stats i { font-style: normal; }
.desk-wait {
    width: 100%;
    margin: 0;
    padding-top: 0.15rem;
    border-top: 0;
    color: #cbb892;
    font-size: 0.86rem;
    text-align: left;
}
.match-page > .match-dock:not(.ops-host) {
    position: absolute;
    left: 0.45rem;
    right: 0.45rem;
    bottom: calc(0.35rem + var(--safe-b));
    z-index: 18;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}

.home-sheet {
    padding: 10px 0.85rem 1.1rem;
}
.home-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    min-height: 1.7rem;
    margin: 0 0 0.28rem;
    padding-right: 5.4rem;
}
.home-brand {
    margin: 0;
    min-width: 0;
    color: #f0d48a;
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.1;
}
.home-table {
    display: flex;
    align-items: center;
    gap: 0.28rem;
    flex: none;
    max-width: 62%;
    color: #f0d48a;
    font-size: 0.75rem;
    line-height: 1;
}
.home-table b {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.82rem;
}
.home-table button {
    flex: none;
    margin: 0;
    padding: 0.16rem 0.48rem;
    border: 1px solid rgba(240, 196, 110, 0.85);
    border-radius: 999px;
    background: #000;
    color: #f0d48a;
    font-size: 0.72rem;
    line-height: 1.2;
}
.home-kicker {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin: 0.65rem 0 0.4rem;
}
.home-kicker span {
    color: #f0d48a;
    font-size: 0.92rem;
    font-weight: 650;
}
.home-kicker em {
    color: #8d7b62;
    font-style: normal;
    font-size: 0.62rem;
    letter-spacing: 0.12em;
}
.home-id,
.home-drink,
.home-svc {
    border: 1px solid rgba(240, 196, 110, 0.38);
    border-radius: 0.85rem;
    background: #000;
}
.home-id { padding: 0.85rem 0.75rem 0.7rem; }
.home-id-top { display: flex; align-items: center; gap: 0.7rem; }
.home-id-top[data-open-login] { cursor: pointer; }
.home-avatar {
    width: 3.35rem;
    height: 3.35rem;
    border-radius: 50%;
    flex: none;
    object-fit: cover;
    border: 1px solid rgba(240, 196, 110, 0.85);
    background: #000;
}
.home-avatar-fallback {
    display: grid;
    place-items: center;
    color: #f0d48a;
    font-size: 1.15rem;
}
.face-ico { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }
.avatar, .home-avatar-fallback, .desk-avatar { overflow: hidden; }
.ticket-log-sheet { display: flex; flex-direction: column; gap: 0.7rem; }
.ticket-log {
    display: grid;
    grid-template-columns: 2.7rem minmax(0, 1fr) auto;
    align-items: stretch;
    min-height: 5.1rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.95rem;
    background: #000;
    overflow: hidden;
}
.ticket-log-mark {
    display: grid;
    place-items: center;
    color: #f0d48a;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    writing-mode: vertical-rl;
    background: rgba(240, 196, 110, 0.08);
    border-right: 1px dashed rgba(240, 196, 110, 0.45);
}
.ticket-log-body { min-width: 0; padding: 0.72rem 0.7rem; }
.ticket-log-body strong {
    display: block;
    overflow: hidden;
    color: #f8f0df;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ticket-log-body p { display: flex; flex-wrap: wrap; gap: 0.35rem 0.55rem; margin: 0.32rem 0 0; color: #cbb892; font-size: 0.76rem; }
.ticket-log-body em {
    font-style: normal;
    color: #f0d48a;
}
.ticket-log > b {
    align-self: center;
    padding-right: 0.8rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
}
.ticket-log > b.is-plus { color: #f0d48a; }
.ticket-log > b.is-minus { color: #e7b2a8; }
.pending-sheet { display: flex; flex-direction: column; gap: 0.75rem; }
.pending-sheet .mine-card p { margin: 0.35rem 0 0; color: var(--muted); }
.pending-sheet .mine-card strong { display: block; margin-top: 0.2rem; color: #f8f0df; font-size: 1.02rem; }
.pending-sheet .ticket-amt { margin-top: 0.45rem; color: var(--gold); font-weight: 700; }
.home-id-copy { flex: 1; min-width: 0; }
.home-name { display: flex; align-items: center; gap: 0.4rem; min-width: 0; }
.home-name strong {
    color: #f0d48a;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-tier {
    flex: none;
    padding: 0.05rem 0.32rem;
    border: 1px solid rgba(240, 196, 110, 0.85);
    border-radius: 0.25rem;
    color: #f0d48a;
    font-style: normal;
    font-size: 0.62rem;
    line-height: 1.35;
}
.home-code {
    margin: 0.28rem 0 0;
    color: #a89068;
    font-size: 0.72rem;
}
.home-crown {
    width: 2.8rem;
    height: 2.8rem;
    flex: none;
    color: #f0d48a;
}
.home-crown svg, .home-ico svg { width: 100%; height: 100%; display: block; }
.home-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.55rem 0.45rem;
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(240, 196, 110, 0.16);
    text-align: center;
}
.home-stats a, .home-stats div { min-width: 0; color: inherit; }
.home-stats > a,
.home-stats > div { grid-column: span 3; }
.home-stats span {
    display: block;
    color: #c4b49a;
    font-size: 0.92rem;
    line-height: 1.2;
    white-space: nowrap;
}
.home-stats b {
    display: block;
    margin-top: 0.35rem;
    color: #f0d48a;
    font-size: 1.55rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
    letter-spacing: 0.01em;
}
.home-drinks, .home-services {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}
.home-services {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: stretch;
}
.home-call {
    grid-column: auto;
    min-height: 0;
}
.home-drink {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.75rem 0.65rem;
    color: inherit;
}
.home-ico {
    width: 2.15rem;
    height: 2.15rem;
    flex: none;
    color: #f0d48a;
}
.home-drink-copy { min-width: 0; }
.ticket-cover {
    width: 2.15rem;
    height: 2.85rem;
    flex: none;
    object-fit: cover;
    border-radius: 6px;
    background: #1a120c;
}
.home-drink strong, .home-svc strong {
    display: block;
    color: #f8f0df;
    font-size: 0.92rem;
    font-weight: 650;
}
.home-drink em {
    color: #f0d48a;
    font-style: normal;
    margin-left: 0.2rem;
}
.home-drink small, .home-svc small {
    display: block;
    margin-top: 0.22rem;
    color: #8d7b62;
    font-size: 0.66rem;
}
.home-svc {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    min-height: 4.55rem;
    padding: 0.75rem 0.7rem;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
button.home-svc {
    width: 100%;
    font: inherit;
}
.home-svc .home-ico { width: 2rem; height: 2rem; }
.home-rail {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 0.7rem;
    margin: 0 -0.85rem;
    padding: 0.05rem 0.85rem 0.15rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.home-rail::-webkit-scrollbar { display: none; }
.home-rail-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: none;
    width: 6.4rem;
    color: inherit;
}
.home-rail-media {
    position: relative;
    display: block;
    width: 6.4rem;
    height: 6.4rem;
    overflow: hidden;
    border-radius: 0.7rem;
    border: 1px solid rgba(240, 196, 110, 0.28);
    background: #111;
}
.home-rail-pic {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #111;
}
.home-rail-price {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 0.38rem 0.28rem 0.28rem;
    font-style: normal;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fff8e4;
    text-align: center;
    background: rgba(0, 0, 0, 0.55);
    z-index: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9);
}
.home-rail-fallback {
    display: grid;
    place-items: center;
    color: #f0d48a;
    font-size: 1.35rem;
    font-weight: 650;
    background: #000;
}
.home-rail-item strong {
    display: block;
    width: 100%;
    margin: 0.42rem 0 0;
    color: #f8f0df;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.3;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-rail-empty {
    margin: 0.15rem 0 0;
    color: #8d7b62;
    font-size: 0.78rem;
}

.phone,
.phone-honor,
.tv-clock,
.phone button,
.phone .pay-actions button,
.phone .match-actions a,
.phone .dealer-ops a,
.phone .home-svc,
.phone .home-id,
.phone .home-drink,
.phone .table-card,
.phone .table-cell,
.phone .logout-bar,
.tv-clock button,
.tv-clock .fs-btn,
.tv-clock .hud-timer,
.tv-clock .clock-card {
    background-color: #000;
    background-image: none;
}

.home-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    flex: none;
    min-width: 0;
    max-width: 70%;
}
.home-tools .home-table { max-width: none; min-width: 0; }
.phone .home-scan {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 4.55rem;
    height: 4.55rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(240, 196, 110, 0.85);
    border-radius: 0.85rem;
    background: #000;
    color: #f0d48a;
    line-height: 1;
    cursor: pointer;
}
.ws-status {
    position: fixed;
    z-index: 32;
    top: 10px;
    right: max(0.75rem, calc(50% - 240px + 0.75rem));
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    margin: 0;
    padding: 0.16rem 0.48rem 0.16rem 0.4rem;
    border: 1px solid rgba(240, 196, 110, 0.45);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.82);
    color: #d9c7a4;
    font-size: 0.72rem;
    line-height: 1.2;
    letter-spacing: 0.04em;
    pointer-events: none;
}
.ws-status i {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: #f0d48a;
}
.ws-status.is-on i { background: #3dcc6f; box-shadow: 0 0 8px rgba(61, 204, 111, 0.85); }
.ws-status.is-off { pointer-events: auto; cursor: pointer; }
.ws-status.is-off i { background: #e24b43; }
.ws-status.is-wait i { background: #f0d48a; }
.h5-notice {
    position: fixed;
    z-index: 60;
    top: calc(10px + 1.6rem);
    left: max(0.75rem, calc(50% - 240px + 0.75rem));
    right: max(0.75rem, calc(50% - 240px + 0.75rem));
    margin: 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.85rem;
    background: rgba(0, 0, 0, 0.92);
    color: #f8f0df;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    cursor: pointer;
}
.match-page .h5-notice { right: max(3.3rem, calc(50% - 240px + 3.3rem)); }
.h5-notice[hidden] { display: none; }
.h5-notice b { display: block; color: #f0d48a; font-size: 0.92rem; font-weight: 650; }
.h5-notice span { display: block; margin-top: 0.12rem; color: #cbb892; font-size: 0.78rem; }
.tv-clock .h5-notice { display: none; }
.table-float {
    position: fixed;
    z-index: 30;
    right: max(0.85rem, calc(50% - 240px + 0.85rem));
    bottom: calc(var(--tab-h) + var(--safe-b) + 0.85rem);
    width: 5.4rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #f0d48a;
    touch-action: none;
    user-select: none;
    cursor: grab;
}
.table-float.is-dragging { cursor: grabbing; }
.table-float-go {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 5.4rem;
    margin: 0 auto;
    color: inherit;
    touch-action: none;
    cursor: grab;
    -webkit-user-drag: none;
}
.table-float-go img {
    width: 4.02rem;
    height: 4.02rem;
    padding: 0.85rem;
    object-fit: contain;
    border: 1px solid rgba(240, 196, 110, 0.85);
    border-radius: 50%;
    background: #000;
    pointer-events: none;
    animation: table-glow 2.4s ease-in-out infinite;
}
.table-float.is-dragging .table-float-go img { animation: none; }
.table-float-go b {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 5.4rem;
    margin-top: 0.22rem;
    overflow: hidden;
    color: #f0d48a;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    pointer-events: none;
}
.table-float-go b span {
    display: block;
    max-width: 5.4rem;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.table-float-go b span:first-child { letter-spacing: 0.12em; }
@keyframes table-glow {
    0%, 100% { box-shadow: 0 0 8px rgba(240, 196, 110, 0.45), 0 8px 22px rgba(0, 0, 0, 0.45); }
    50% { box-shadow: 0 0 18px rgba(240, 196, 110, 0.95), 0 0 32px rgba(240, 196, 110, 0.45), 0 8px 22px rgba(0, 0, 0, 0.45); }
}
.table-float-leave {
    position: absolute;
    top: -0.12rem;
    right: -0.12rem;
    width: 1.38rem;
    height: 1.38rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(240, 196, 110, 0.85);
    border-radius: 50%;
    background: #000;
    color: #f0d48a;
    font-size: 0.86rem;
    line-height: 1;
    cursor: pointer;
}
.tv-clock .table-float { display: none; }
.home-scan svg { width: 1.55rem; height: 1.55rem; display: block; }
.scan-file {
    position: fixed;
    left: 0;
    top: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.scan-mask {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0.85rem;
    background: rgba(0, 0, 0, 0.72);
}
.scan-mask[hidden] { display: none; }
.scan-panel {
    width: min(100%, 24rem);
    padding: 0.9rem 0.85rem 0.85rem;
    border: 1px solid rgba(240, 196, 110, 0.55);
    border-radius: 0.85rem;
    background: #000;
}
.scan-kicker {
    margin: 0 0 0.55rem;
    color: #f0d48a;
    font-size: 0.78rem;
    letter-spacing: 0.14em;
}
.scan-view {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 0.6rem;
    background: #111;
}
.scan-view video { width: 100%; height: 100%; object-fit: cover; display: block; }
#scanReader { width: 100%; height: 100%; }
#scanReader video { width: 100% !important; height: 100% !important; object-fit: cover !important; }
#scanReader img { display: none !important; }
.scan-frame { z-index: 2; }
.scan-album {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 2.5rem;
    margin: 0 0 0.45rem;
    border: 1px solid rgba(240, 196, 110, 0.35);
    border-radius: 0.5rem;
    background: transparent;
    color: #f8f0df;
    font-size: 0.88rem;
    line-height: 1;
    cursor: pointer;
}
.scan-album[hidden] { display: none; }
.scan-frame {
    position: absolute;
    left: 12%;
    top: 12%;
    width: 76%;
    height: 76%;
    border: 2px solid rgba(240, 196, 110, 0.92);
    border-radius: 0.45rem;
    box-shadow: 0 0 0 999px rgba(0, 0, 0, 0.38);
    pointer-events: none;
}
.scan-hint {
    margin: 0.6rem 0 0.7rem;
    color: #f8f0df;
    font-size: 0.82rem;
    text-align: center;
}
.phone .scan-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 2.5rem;
    margin: 0;
    border: 1px solid rgba(240, 196, 110, 0.72);
    border-radius: 0.5rem;
    background: #000;
    color: #f0d48a;
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

.ops-type-row[hidden],
.ops-mini[hidden],
.ops-go[hidden],
.start-abort[hidden] { display: none !important; }
.start-abort {
    display: block;
    width: 100%;
    margin: 0.55rem 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #cbb892;
    font-size: 0.78rem;
    text-align: center;
}
body.desk-lock .match-page > .desk-chrome {
    position: absolute;
    left: 0;
    right: 0;
    top: 10px;
    flex: none;
    flex-direction: row;
    align-items: center;
    gap: 0.15rem;
    margin: 0;
    padding: 0 0.35rem;
    background: transparent;
    pointer-events: none;
    z-index: 20;
}
body.desk-lock .match-page > .desk-chrome > .ws-slot { pointer-events: auto; }
body.desk-lock .match-page > .desk-chrome > .match-top {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    margin: 0;
    padding: 0;
    background: transparent;
}
body.desk-lock .desk-chrome .desk-back {
    width: 2.05rem;
    height: 2.05rem;
}
body.desk-lock .desk-chrome .desk-msg {
    position: relative;
    top: auto;
    right: auto;
    flex: none;
    width: 2rem;
    height: 2rem;
}
body.desk-lock .desk-me strong { font-size: 0.92rem; }
body.desk-lock .desk-role { font-size: 0.74rem; }
body.desk-lock .ws-slot {
    flex: none;
    display: flex;
    align-items: center;
    max-width: 4.8rem;
    min-width: 0;
}
body.desk-lock .ws-slot:empty { display: none; }
body.desk-lock .ws-slot .ws-status {
    position: static;
    top: auto;
    right: auto;
    max-width: 100%;
    padding: 0.1rem 0.32rem 0.1rem 0.28rem;
}
body.desk-lock .ws-slot .ws-status span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.desk-lock .match-page > .match-dock,
body.desk-lock .match-page > .match-dock.ops-host,
body.desk-lock .match-page > .match-dock:not(.ops-host) {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    flex: none;
    width: auto;
    margin: 0;
    padding: 0.1rem 0.45rem 5px;
    background: #000;
    border: 0;
    pointer-events: auto;
    z-index: 20;
    gap: 0.22rem;
}
body.desk-lock .desk-board {
    position: absolute;
    left: 0.45rem;
    right: 0.45rem;
    bottom: 100%;
    z-index: 2;
    padding: 0.12rem 0.05rem 0.15rem;
    background: transparent;
    pointer-events: none;
}
body.desk-lock .desk-board-main {
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}
body.desk-lock .desk-board .hud-clock {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    gap: 0.28rem;
}
body.desk-lock .desk-board .hud-clock b { font-size: 1.12rem; }
body.desk-lock .desk-board .hud-clock span,
body.desk-lock .desk-board .hud-clock em {
    color: #cbb892;
    font-style: normal;
    font-size: 0.7rem;
    font-weight: 650;
    white-space: nowrap;
}
body.desk-lock .desk-board .hud-clock em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.desk-lock .desk-mine {
    display: flex;
    flex: none;
    align-items: baseline;
    gap: 0.4rem;
    color: #cbb892;
    font-size: 0.68rem;
    white-space: nowrap;
}
body.desk-lock .desk-mine b { color: var(--gold); font-weight: 700; }
body.desk-lock .desk-pause {
    flex: none;
    width: auto;
    height: 1.7rem;
    padding: 0 0.55rem;
    pointer-events: auto;
}
body.desk-lock #playerCount[hidden] { display: none !important; }
body.desk-lock .time-rail { margin: 0.22rem 0.1rem 0; }
body.desk-lock .time-rail-cap { margin-top: 0.85rem; }
body.desk-lock .ops-bar { padding: 0.32rem 0.42rem 0.38rem; }
body.desk-lock .ops-type-row strong { font-size: 0.78rem; }
body.desk-lock .ops-note {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.desk-lock .ops-primary { margin-top: 0.28rem; gap: 0.28rem; }
body.desk-lock .ops-go { height: 2.15rem; font-size: 0.92rem; }
body.desk-lock .ops-secondary { flex-wrap: nowrap; margin-top: 0.28rem; }
body.desk-lock .ops-mini {
    height: 1.75rem;
    padding: 0 0.12rem;
    font-size: 0.7rem;
    white-space: nowrap;
}
body.desk-lock .ops-bar .ops-speed b { min-width: 1.5rem; font-size: 0.68rem; }
body.desk-lock .match-page .dock-join #joinBtn {
    flex: 1 0 100%;
    height: 2.15rem;
    white-space: nowrap;
}
body.desk-lock .h5-notice {
    top: 3.15rem;
    left: max(0.55rem, calc(50% - 240px + 0.55rem));
    right: max(0.55rem, calc(50% - 240px + 0.55rem));
}
.phone.home {
    height: auto;
    max-height: none;
    overflow-x: clip;
    display: flex;
    flex-direction: column;
}
.phone.home .home-sheet {
    flex: none;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: visible;
    padding: 8px 0.7rem 0.25rem;
}
.phone.home .home-brand { font-size: 1.12rem; }
.phone.home .home-top { margin-bottom: 0; min-height: 0; }
.phone.home .home-kicker { margin: 0.22rem 0 0.16rem; }
.phone.home .home-kicker span { font-size: 0.76rem; }
.phone.home .home-id { padding: 0.38rem 0.5rem 0.32rem; border-radius: 0.7rem; }
.phone.home .home-avatar { width: 2.2rem; height: 2.2rem; }
.phone.home .home-avatar-fallback { font-size: 0.85rem; }
.phone.home .home-id-top { gap: 0.45rem; }
.phone.home .home-name strong { font-size: 0.92rem; }
.phone.home .home-code { margin-top: 0.04rem; font-size: 0.64rem; }
.phone.home .home-crown { width: 1.55rem; height: 1.55rem; }
.phone.home .home-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.1rem 0.2rem;
    margin-top: 0.28rem;
    padding-top: 0.26rem;
}
.phone.home .home-stats > a,
.phone.home .home-stats > div { grid-column: auto; }
.phone.home .home-stats span { font-size: 0.6rem; }
.phone.home .home-stats b {
    margin-top: 0.04rem;
    font-size: 0.86rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.phone.home .home-rail {
    flex: none;
    align-items: flex-start;
    gap: 0.7rem;
    margin: 0 -0.7rem;
    padding: 0.05rem 0.7rem 0.15rem;
}
.phone.home .home-rail-item {
    flex: none;
    width: 6.4rem;
    height: auto;
}
.phone.home .home-rail-media,
.phone.home .home-rail-item > .home-rail-pic {
    flex: none;
    width: 6.4rem;
    height: 6.4rem;
    max-height: none;
}
.phone.home .home-rail-item > .home-rail-pic {
    object-fit: cover;
    object-position: center top;
    border-radius: 0.7rem;
    height: 8.6rem;
}
.phone.home .home-rail-item strong { margin-top: 0.42rem; font-size: 0.78rem; }
@media (min-width: 520px) {
    .phone.home {
        height: auto;
        max-height: none;
    }
}
body.desk-lock.is-booting .match-page { visibility: hidden; }
body.desk-lock.is-booting .match-page .login-mask {
    visibility: visible;
    z-index: 120;
}
.desk-load { display: none; }
body.desk-lock.is-booting .desk-load {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    background: #000;
    color: #f0d48a;
}
.desk-load b {
    font-size: 2.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
}
.desk-load span {
    color: #cbb892;
    font-size: 0.82rem;
    letter-spacing: 0.16em;
}
.desk-load i {
    width: 9.2rem;
    height: 0.18rem;
    margin-top: 0.45rem;
    border-radius: 999px;
    background: rgba(240, 196, 110, 0.22);
    overflow: hidden;
}
.desk-load em {
    display: block;
    width: 0;
    height: 100%;
    background: #f0d48a;
}


