html[data-nsh-theme] {
    --nsh-bg: #f2f4fa; --nsh-panel: #fff; --nsh-raised: #f7f9fc;
    --nsh-text: #1e293b; --nsh-muted: #64748b; --nsh-line: #cdd7e6;
    --nsh-accent: #6366f1; --nsh-soft: #6366f11a; --nsh-radius: 10px; --nsh-density: 1;
    --nsh-card: color-mix(in srgb, var(--nsh-panel) calc(var(--player-card-opacity, 50) * 1%), var(--nsh-bg));
}
html[data-nsh-theme].dark {
    --nsh-bg: #0e1320; --nsh-panel: #161d2f; --nsh-raised: #1b2438;
    --nsh-text: #e7ecf7; --nsh-muted: #93a1bd; --nsh-line: #3a486b;
    --nsh-accent: #8b93f8; --nsh-soft: #8b93f824;
}
html[data-nsh-theme][data-preset="rose"] { --nsh-accent: #e11d48; --nsh-soft: #e11d481a; }
html[data-nsh-theme][data-preset="lake"] { --nsh-accent: #0891b2; --nsh-soft: #0891b21a; }
html[data-nsh-theme][data-preset="sunset"] { --nsh-accent: #ea580c; --nsh-soft: #ea580c1a; }
html[data-nsh-theme][data-preset="forest"] { --nsh-accent: #15803d; --nsh-soft: #15803d1a; }
html[data-nsh-theme][data-preset="lavender"] { --nsh-accent: #7c3aed; --nsh-soft: #7c3aed1a; }
html[data-nsh-theme][data-radius="0"] { --nsh-radius: 0px; }
html[data-nsh-theme][data-radius="small"] { --nsh-radius: 6px; }
html[data-nsh-theme][data-radius="large"] { --nsh-radius: 14px; }
html[data-nsh-theme][data-density="compact"] { --nsh-density: .86; }
html[data-nsh-theme][data-density="relaxed"] { --nsh-density: 1.14; }
html[data-nsh-theme][data-density="large"] { --nsh-density: 1.28; }
html[data-nsh-theme] .stats-body {
    --bg: var(--nsh-bg); --panel: var(--nsh-panel); --panel-2: var(--nsh-raised); --border: var(--nsh-line);
    --text-1: var(--nsh-text); --text-2: var(--nsh-muted); --accent: var(--nsh-accent);
    --ui-bg: var(--nsh-bg); --ui-surface: var(--nsh-panel); --ui-surface-2: var(--nsh-raised); --ui-bg-soft: var(--nsh-raised);
    --ui-text: var(--nsh-text); --ui-muted: var(--nsh-muted); --ui-line: var(--nsh-line); --ui-line-strong: var(--nsh-accent); --ui-teal: var(--nsh-accent); --ui-teal-strong: var(--nsh-accent);
    background: var(--nsh-bg) !important; color: var(--nsh-text);
}
html[data-nsh-theme][data-font="sans"] .stats-body { font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif; }
html[data-nsh-theme][data-font="serif"] .stats-body { font-family: "Noto Serif SC", "Songti SC", "SimSun", serif; }
html[data-nsh-theme][data-font="thin-round"] .stats-body { font-family: "Microsoft YaHei UI Light", "DengXian Light", "PingFang SC", "Microsoft YaHei", sans-serif; }
html[data-nsh-theme] .stats-wallpaper { background: var(--nsh-bg); }
html[data-nsh-theme] .stats-body :is(.stats-panel, .stats-team-summary, .league-chart-panel, .league-player-compare-panel, .league-top-card, .stats-empty) {
    background: var(--nsh-card) !important; border-color: var(--nsh-line) !important; border-radius: var(--nsh-radius) !important; color: var(--nsh-text);
    box-shadow: 0 2px 12px #0001; padding: calc(16px * var(--nsh-density));
}
html[data-nsh-theme][data-content="centered"] .stats-body :is(.app-shell, .stats-page) { max-width: 1280px !important; margin-inline: auto; }
html[data-nsh-theme] .stats-body :is(.stats-panel h2, .league-chart-head h2) { color: var(--nsh-text); }
html[data-nsh-theme] .stats-body :is(.stats-panel-head p, .stats-empty) { color: var(--nsh-muted); }
html[data-nsh-theme] .stats-body :is(.rank-tabs, .rank-guild-switch) { background: var(--nsh-raised); border-color: var(--nsh-line); }
html[data-nsh-theme] .stats-body :is(.rank-tabs, .rank-guild-switch) button.active { background: var(--nsh-soft); color: var(--nsh-accent); }
html[data-nsh-theme] .stats-body :is(.rank-paged-table, .stats-table) { color: var(--nsh-text); }
html[data-nsh-theme] .stats-body :is(.rank-paged-table, .stats-table) :is(th, td) { border-color: var(--nsh-line); }
html[data-nsh-theme] .stats-body .rank-paged-table :is(th, td:nth-child(-n+2)) { background: var(--nsh-panel); }
html[data-nsh-theme] .stats-body .rank-paged-table td:nth-child(n+3) { background: var(--nsh-raised); }
html[data-nsh-theme] .stats-body .rank-player-name { color: var(--nsh-text); }
html[data-nsh-theme] .stats-body .rank-index { color: var(--nsh-text) !important; }
html[data-nsh-theme]:not(.dark) .stats-body :is(.league-radar-label, .league-chart-label) { fill: var(--nsh-muted); }
html[data-nsh-theme]:not(.dark) .stats-body :is(.team-total-card, .league-metric-card, .league-ai-analysis, .league-check, .league-ai-provider, .stats-select) { background: var(--nsh-raised) !important; color: var(--nsh-text); border-color: var(--nsh-line) !important; }
html[data-nsh-theme]:not(.dark) .stats-body { --ui-blue: #2162aa; --ui-gold: #946300; --ui-red: #b93446; }
html[data-nsh-theme]:not(.dark) .stats-body :is(.league-top-title, .league-top-labels, .league-top-values > span, .league-chart-head p, .class-row-meta, .author-signature) { color: var(--nsh-muted); }
html[data-nsh-theme]:not(.dark) .stats-body .league-top-values strong.ally { color: var(--ui-blue); }
html[data-nsh-theme]:not(.dark) .stats-body .league-top-values strong.enemy { color: var(--ui-gold); }
html[data-nsh-theme]:not(.dark) .stats-body :is(.formation-matrix-head strong, .formation-matrix-head strong b, .class-distribution-strip h2, .league-top-rank-title h2) { color: var(--nsh-text); }
html[data-nsh-theme]:not(.dark) .stats-body svg text { fill: var(--nsh-muted); }
html[data-nsh-theme]:not(.dark) .stats-body :is(.league-radar-ring, .league-radar-axis, .league-grid-line) { stroke: var(--nsh-line); }
html[data-nsh-theme] .pc-card {
    --pc-bg: var(--nsh-panel); --pc-raised: var(--nsh-raised); --pc-text: var(--nsh-text); --pc-muted: var(--nsh-muted); --pc-line: var(--nsh-line); --pc-accent: var(--nsh-accent);
    border-color: var(--nsh-line); border-radius: var(--nsh-radius); font-family: inherit;
}
html[data-nsh-theme]:not(.dark) .pc-card :is(.pc-check, .pc-comparison-picker summary, .pc-series-name, .pc-axis-item b, .pc-trend-summary strong, .pc-inspector-date, .pc-metric-select select, .pc-trend-table button) { color: var(--pc-text); }
html[data-nsh-theme]:not(.dark) .pc-card :is(table thead th, .pc-search-menu, .pc-comparison-chip, .pc-segmented, .pc-segmented button.active) { background: var(--pc-raised) !important; color: var(--pc-text); border-color: var(--pc-line); }
html[data-nsh-theme]:not(.dark) .pc-card :is(table tbody tr:hover, .pc-icon-button:hover) { background: var(--pc-raised); }
html[data-nsh-theme]:not(.dark) .pc-card .pc-metric-table tbody th:first-child { color: var(--pc-text); }
html[data-nsh-theme]:not(.dark) .pc-card .pc-metric-table td { --pc-series: var(--pc-text); }
html[data-nsh-theme]:not(.dark) .pc-card .pc-metric-table .pc-self-cell { --pc-series: var(--pc-accent); }
html[data-nsh-theme]:not(.dark) .pc-card :is(.pc-radar-label, .pc-trend-chart text) { fill: var(--pc-muted); }
.nsh-theme-open { overflow: hidden; }
.nsh-theme-overlay { position: fixed; inset: 0; z-index: 5000; display: flex; justify-content: flex-end; background: #0005; }
.nsh-theme-overlay[hidden] { display: none; }
.nsh-theme-drawer { display: flex; flex-direction: column; width: min(520px, 100%); max-height: 100dvh; padding: 16px 18px; overflow: auto; overscroll-behavior: contain; background: var(--nsh-panel); color: var(--nsh-text); box-shadow: -8px 0 30px #0003; font-size: 13px; }
.nsh-theme-drawer * { box-sizing: border-box; letter-spacing: 0; }
.nsh-theme-drawer header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.nsh-theme-drawer h2 { margin: 0; color: var(--nsh-text); font-size: 17px; background: none; -webkit-text-fill-color: currentColor; }
.nsh-theme-drawer button { cursor: pointer; font-family: inherit; }
.nsh-theme-drawer button:focus-visible, .nsh-theme-drawer input:focus-visible { outline: 2px solid var(--nsh-accent); outline-offset: 2px; }
.nsh-theme-drawer header button { display: grid; place-items: center; width: 32px; height: 32px; padding: 6px; border: 1px solid var(--nsh-line); border-radius: 4px; background: var(--nsh-raised); }
.nsh-theme-drawer header img { width: 18px; height: 18px; color-scheme: only light; }
html.dark .nsh-theme-drawer header img { filter: invert(90%); }
.nsh-theme-drawer fieldset { min-width: 0; margin: 0; padding: 8px 0 10px; border: 0; border-bottom: 1px solid var(--nsh-line); }
.nsh-theme-drawer legend { padding: 0; color: var(--nsh-text); font-size: 12px; font-weight: 600; }
.nsh-theme-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 6px; }
.nsh-theme-options button { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 5px; border: 1px solid var(--nsh-line); border-radius: min(8px, var(--nsh-radius)); background: var(--nsh-raised); color: var(--nsh-text); font-size: 12px; }
.nsh-theme-options button[aria-pressed="true"] { border-color: var(--nsh-accent); background: var(--nsh-soft); box-shadow: inset 0 0 0 1px var(--nsh-accent); }
.nsh-theme-options i { display: block; width: 12px; height: 12px; border-radius: 50%; flex: none; }
.nsh-theme-opacity { display: grid; grid-template-columns: 60px minmax(0, 1fr) 38px; align-items: center; gap: 10px; color: var(--nsh-muted); font-size: 12px; }
.nsh-theme-opacity input { width: 100%; padding: 0; accent-color: var(--nsh-accent); }
.nsh-theme-drawer footer { margin-top: auto; padding-top: 12px; }
.nsh-theme-drawer footer span { display: block; min-height: 20px; color: var(--nsh-muted); font-size: 12px; }
.nsh-theme-drawer footer button { width: 100%; min-height: 36px; border: 1px solid var(--nsh-line); border-radius: 6px; background: var(--nsh-raised); color: var(--nsh-text); }
@media(max-height: 700px) { .nsh-theme-drawer { padding: 10px 14px; } .nsh-theme-drawer fieldset { padding: 5px 0 7px; } .nsh-theme-options button { min-height: 32px; } }
