/* AUTO-GENERATED — do not edit by hand.
 * Regenerate: python scripts/build_app_shell_bundle.py
 * Source: assets/css/app_shell.tokens.css
 * Core layer bundle: tokens
 * Feature bundles: app_shell.platform/pages/dashboard.bundle.css
 * L1 only — settings: settings.bundle.css · plugins: /assets/plugins/<id>/
 */
/* App Shell — 设计令牌层 → app_shell.tokens.bundle.css */

/* === import from ./app_shell/layers/01-tokens.css (01-tokens.css) */

/* === import from ../tokens/index.css (index.css) */
/* 设计令牌 */

/* === import from ./color-scheme/index.css (index.css) */

/* === import from ./dark-default.css (dark-default.css) */
/* 深色模式默认令牌（:root） */
:root {
    --bg0: #070a12;
    --bg1: #0a1024;
    --panel: rgba(255, 255, 255, .06);
    --panel2: rgba(255, 255, 255, .08);
    --border: rgba(255, 255, 255, .10);

    --text: #eaf0ff;
    --muted: rgba(234, 240, 255, .70);
    --muted2: rgba(234, 240, 255, .52);

    --shadow: 0 20px 60px rgba(0, 0, 0, .40);
    --shadow2: 0 12px 30px rgba(0, 0, 0, .35);

    --brand0: #33D0FF;
    --brand0-rgb: 51, 208, 255;
    --brand1: #4B7CFF;
    --brand1-rgb: 75, 124, 255;
    --brand2: #FFB02E;
    --brand2-rgb: 255, 176, 46;
    --brand3: #FF6B9D;
    --brand3-rgb: 255, 107, 157;
    --brand4: #9D6BFF;
    --brand4-rgb: 157, 107, 255;
    --brand5: #00D9A3;
    --brand5-rgb: 0, 217, 163;
    --brand6: #FF9F43;
    --brand6-rgb: 255, 159, 67;
    --brand7: #5F6FFF;
    --brand7-rgb: 95, 111, 255;
    --ok: #29d07e;
    --warn: #ffb02e;

    --radius: 18px;
    --radius2: 14px;

    --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, "Apple Color Emoji", "Segoe UI Emoji";

    --font-chart: "Inter", var(--font);
    --text-chart: #94a3b8;

    --glass-bg: rgba(15, 20, 35, 0.75);
    --glass-border: rgba(255, 255, 255, 0.08);
    --glass-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    --glass-inner-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05) inset;

    --card-bg: rgba(255, 255, 255, 0.03);
    --card-border: rgba(255, 255, 255, 0.05);
    --card-hover-bg: rgba(255, 255, 255, 0.08);
    --card-hover-border: rgba(255, 255, 255, 0.12);
    --card-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    --card-hover-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);

    --icon-bg: rgba(255, 255, 255, 0.05);
    --icon-border: rgba(255, 255, 255, 0.05);

    --hero-title-gradient: linear-gradient(180deg, var(--text), var(--muted));
    --hero-meta-bg: rgba(255, 255, 255, 0.03);
    --hero-meta-border: var(--border);

    --topbar-bg: rgba(10, 16, 36, 0.75);
    --header-height: 72px;
    --footer-height: 48px;
}



/* === import from ./light/index.css (index.css) */
/* 浅色模式（系统偏好 + Mantine data 属性） */

/* === import from ./surfaces.css (surfaces.css) */
/* 浅色模式 — 表面/背景令牌 */
@media (prefers-color-scheme: light) {
    :root {
        --bg0: #f8fafc;
        --bg1: #f1f5f9;
        --panel: #ffffff;
        --panel2: #f8fafc;
        --border: #e2e8f0;
    }
}

[data-mantine-color-scheme="light"],
body[data-mantine-color-scheme="light"] {
    --bg0: #f8fafc;
    --bg1: #f1f5f9;
    --panel: #ffffff;
    --panel2: #f8fafc;
    --border: #e2e8f0;
}



/* === import from ./typography.css (typography.css) */
/* 浅色模式 — 文本/图表色 */
@media (prefers-color-scheme: light) {
    :root {
        --text: #0f172a;
        --muted: #475569;
        --muted2: #94a3b8;
        --text-chart: #64748b;
    }
}

[data-mantine-color-scheme="light"],
body[data-mantine-color-scheme="light"] {
    --text: #0f172a;
    --muted: #475569;
    --muted2: #94a3b8;
    --text-chart: #64748b;
}



/* === import from ./elevation.css (elevation.css) */
/* 浅色模式 — 阴影/玻璃 */
@media (prefers-color-scheme: light) {
    :root {
        --shadow: 0 20px 60px -10px rgba(15, 23, 42, 0.1);
        --shadow2: 0 10px 30px -5px rgba(15, 23, 42, 0.08);
        --glass-bg: #ffffff;
        --glass-border: #e2e8f0;
        --glass-shadow:
            0 25px 50px -12px rgba(0, 0, 0, 0.12),
            0 0 0 1px rgba(0, 0, 0, 0.02);
        --glass-inner-shadow: none;
    }
}

[data-mantine-color-scheme="light"],
body[data-mantine-color-scheme="light"] {
    --shadow: 0 20px 60px -10px rgba(15, 23, 42, 0.1);
    --shadow2: 0 10px 30px -5px rgba(15, 23, 42, 0.08);
    --glass-bg: #ffffff;
    --glass-border: #e2e8f0;
    --glass-shadow:
        0 25px 50px -12px rgba(0, 0, 0, 0.12),
        0 0 0 1px rgba(0, 0, 0, 0.02);
    --glass-inner-shadow: none;
}



/* === import from ./cards.css (cards.css) */
/* 浅色模式 — 卡片/图标 */
@media (prefers-color-scheme: light) {
    :root {
        --card-bg: #f1f5f9;
        --card-border: transparent;
        --card-hover-bg: #ffffff;
        --card-hover-border: #e2e8f0;
        --card-shadow: none;
        --card-hover-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08);
        --icon-bg: #ffffff;
        --icon-border: #e2e8f0;
    }
}

[data-mantine-color-scheme="light"],
body[data-mantine-color-scheme="light"] {
    --card-bg: #f1f5f9;
    --card-border: transparent;
    --card-hover-bg: #ffffff;
    --card-hover-border: #e2e8f0;
    --card-shadow: none;
    --card-hover-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08);
    --icon-bg: #ffffff;
    --icon-border: #e2e8f0;
}



/* === import from ./chrome.css (chrome.css) */
/* 浅色模式 — Hero/顶栏 */
@media (prefers-color-scheme: light) {
    :root {
        --hero-title-gradient: linear-gradient(180deg, #0f172a, #334155);
        --hero-meta-bg: #ffffff;
        --hero-meta-border: #e2e8f0;
        --topbar-bg: rgba(255, 255, 255, 0.85);
    }
}

[data-mantine-color-scheme="light"],
body[data-mantine-color-scheme="light"] {
    --hero-title-gradient: linear-gradient(180deg, #0f172a, #334155);
    --hero-meta-bg: #ffffff;
    --hero-meta-border: #e2e8f0;
    --topbar-bg: rgba(255, 255, 255, 0.85);
}





/* === import from ./dark-explicit.css (dark-explicit.css) */
/* 显式深色模式（浅色 OS + 深色切换） */
[data-mantine-color-scheme="dark"],
body[data-mantine-color-scheme="dark"] {
    --bg0: #070a12;
    --bg1: #0a1024;
    --panel: rgba(255, 255, 255, .06);
    --panel2: rgba(255, 255, 255, .08);
    --border: rgba(255, 255, 255, .10);

    --text: #eaf0ff;
    --muted: rgba(234, 240, 255, .70);
    --muted2: rgba(234, 240, 255, .52);

    --shadow: 0 20px 60px rgba(0, 0, 0, .40);
    --shadow2: 0 12px 30px rgba(0, 0, 0, .35);

    --brand0: #33D0FF;
    --brand0-rgb: 51, 208, 255;
    --brand1: #4B7CFF;
    --brand1-rgb: 75, 124, 255;
    --brand2: #FFB02E;
    --brand2-rgb: 255, 176, 46;
    --ok: #29d07e;
    --warn: #ffb02e;

    --radius: 18px;
    --radius2: 14px;

    --font-chart: "Inter", var(--font);
    --text-chart: #94a3b8;

    --glass-bg: rgba(15, 20, 35, 0.75);
    --glass-border: rgba(255, 255, 255, 0.08);
    --glass-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    --glass-inner-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05) inset;

    --card-bg: rgba(255, 255, 255, 0.03);
    --card-border: rgba(255, 255, 255, 0.05);
    --card-hover-bg: rgba(255, 255, 255, 0.08);
    --card-hover-border: rgba(255, 255, 255, 0.12);
    --card-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    --card-hover-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);

    --icon-bg: rgba(255, 255, 255, 0.05);
    --icon-border: rgba(255, 255, 255, 0.05);

    --hero-title-gradient: linear-gradient(180deg, var(--text), var(--muted));
    --hero-meta-bg: rgba(255, 255, 255, 0.03);
    --hero-meta-border: var(--border);

    --topbar-bg: rgba(10, 16, 36, 0.75);
}





/* === import from ./base/index.css (index.css) */

/* === import from ./reset.css (reset.css) */
* {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    margin: 0;
    font-family: var(--font);
    color: var(--text);
    background: linear-gradient(180deg, var(--bg0), var(--bg1));
    overflow: hidden;
    height: 100vh;
}



/* === import from ./page-background.css (page-background.css) */
/* 全页背景层：渐变 + 噪点 */
.bg {
    position: fixed;
    inset: 0;
    background:
        radial-gradient(900px 420px at 18% 22%, rgba(51, 208, 255, .20), transparent 60%),
        radial-gradient(780px 420px at 70% 18%, rgba(75, 124, 255, .16), transparent 62%),
        radial-gradient(720px 520px at 78% 72%, rgba(255, 176, 46, .14), transparent 60%),
        radial-gradient(560px 360px at 36% 78%, rgba(120, 86, 255, .10), transparent 62%),
        linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, 0));
    filter: saturate(1.08) contrast(1.02);
    transform: translateZ(0);
    pointer-events: none;
    z-index: -3;
}

.noise {
    position: fixed;
    inset: -60px;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, .018) 0, rgba(255, 255, 255, .018) 1px, rgba(0, 0, 0, 0) 2px, rgba(0, 0, 0, 0) 4px),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .012) 0, rgba(255, 255, 255, .012) 1px, rgba(0, 0, 0, 0) 2px, rgba(0, 0, 0, 0) 5px);
    mix-blend-mode: overlay;
    opacity: .45;
    filter: blur(.2px);
    pointer-events: none;
    z-index: -2;
}





/* === import from ./scrollbars/index.css (index.css) */

/* === import from ./tokens.css (tokens.css) */
:root {
    --scrollbar-size: 6px;
    --scrollbar-thumb: rgba(var(--brand1-rgb), 0.28);
    --scrollbar-thumb-hover: rgba(var(--brand1-rgb), 0.42);
    --scrollbar-thumb-active: rgba(var(--brand1-rgb), 0.55);
    --scrollbar-track: transparent;
}



/* === import from ./firefox.css (firefox.css) */
/* Firefox */
*,
.mantine-ScrollArea-viewport,
[data-scrollarea-viewport] {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}



/* === import from ./webkit.css (webkit.css) */
/* WebKit / Blink */
*::-webkit-scrollbar,
.mantine-ScrollArea-viewport::-webkit-scrollbar,
[data-scrollarea-viewport]::-webkit-scrollbar {
    width: var(--scrollbar-size);
    height: var(--scrollbar-size);
}

*::-webkit-scrollbar-track,
.mantine-ScrollArea-viewport::-webkit-scrollbar-track,
[data-scrollarea-viewport]::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
}

*::-webkit-scrollbar-thumb,
.mantine-ScrollArea-viewport::-webkit-scrollbar-thumb,
[data-scrollarea-viewport]::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-thumb);
    border-radius: 999px;
    border: 1px solid transparent;
    background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover,
.mantine-ScrollArea-viewport::-webkit-scrollbar-thumb:hover,
[data-scrollarea-viewport]::-webkit-scrollbar-thumb:hover {
    background-color: var(--scrollbar-thumb-hover);
}

*::-webkit-scrollbar-thumb:active,
.mantine-ScrollArea-viewport::-webkit-scrollbar-thumb:active,
[data-scrollarea-viewport]::-webkit-scrollbar-thumb:active {
    background-color: var(--scrollbar-thumb-active);
}

*::-webkit-scrollbar-corner,
.mantine-ScrollArea-viewport::-webkit-scrollbar-corner,
[data-scrollarea-viewport]::-webkit-scrollbar-corner {
    background: transparent;
}



/* === import from ./hidden.css (hidden.css) */
/* 显式隐藏滚动条（横向 Tab 等） */
.scrollbar-none,
.scrollbar-none * {
    scrollbar-width: none;
}

.scrollbar-none::-webkit-scrollbar,
.ranking-tabs-container::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}








