:root{--accent: #4c8dff;--accent-hover: #6ea6ff;--accent-pressed: #3b74e6;--accent-tint: rgba(76, 141, 255, .14);--hub-accent: #4c8dff;--hub-accent-wash: color-mix(in srgb, var(--hub-accent) 20%, transparent);--hub-accent-line: color-mix(in srgb, var(--hub-accent) 44%, transparent);--hub-accent-ring: color-mix(in srgb, var(--hub-accent) 36%, transparent);--hub-accent-tint: color-mix(in srgb, var(--hub-accent) 14%, transparent);--hub-accent-text: color-mix(in srgb, var(--hub-accent) 62%, #ffffff);--ok: #3ddc97;--warn: #f6c15a;--danger: #ff8080;--info: #63a8ff;--bg-primary: #0a0c10;--bg-secondary: #090b0e;--bg-tertiary: #10131a;--surface-panel: #12151c;--surface-panel-soft: #171b24;--surface-inset: #0d1015;--surface-sub: rgba(255, 255, 255, .035);--line-faint: rgba(255, 255, 255, .05);--line-soft: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .14);--text-primary: #f2f5fa;--text-secondary: rgba(226, 233, 244, .74);--text-tertiary: rgba(226, 233, 244, .56);--text-label: rgba(226, 233, 244, .45);--text-muted: rgba(226, 233, 244, .45);--text-disabled: rgba(226, 233, 244, .26);--sidebar-bg: rgba(8, 10, 14, .86);--sidebar-text: rgba(226, 233, 244, .55);--sidebar-active-bg: var(--hub-accent-tint);--sidebar-active-text: #ffffff;--header-bg: rgba(8, 10, 14, .78);--primary-color: var(--accent);--primary-color-hover: var(--accent-hover);--primary-color-light: var(--accent-tint);--secondary-color: #a7b0c2;--secondary-light: #d7e2ff;--tertiary-color: var(--warn);--success-color: var(--ok);--warning-color: var(--warn);--error-color: var(--danger);--info-color: #8b919f;--surface-card: var(--surface-panel);--surface-soft: var(--surface-panel-soft);--surface-soft-2: #1e232e;--surface-line: var(--line-soft);--border-light: var(--line-soft);--border-medium: var(--line-strong);--shadow-light: 0 12px 32px rgba(2, 5, 12, .22);--shadow-medium: 0 20px 40px rgba(2, 5, 12, .3);--shadow-heavy: 0 28px 56px rgba(2, 5, 12, .4);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 999px;--font-display: "Manrope", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "Inter", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace}.hub-scope-hub{--hub-accent: #4c8dff}.hub-scope-news{--hub-accent: #3fb6f6}.hub-scope-papers{--hub-accent: #a78bfa}.hub-scope-novels{--hub-accent: #f5b453}.hub-scope-videos{--hub-accent: #f4739c}.hub-scope-images{--hub-accent: #38d3b9}*{margin:0;padding:0;box-sizing:border-box}html,body{min-height:100%}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;background:radial-gradient(52rem 30rem at 84% -6%,color-mix(in srgb,var(--hub-accent) 9%,transparent),transparent 70%),radial-gradient(40rem 26rem at -8% 108%,rgba(255,255,255,.025),transparent 68%),var(--bg-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{border:none;background:none;cursor:pointer}img{max-width:100%;height:auto}ul,ol{list-style:none}::selection{background:color-mix(in srgb,var(--hub-accent) 32%,transparent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffffff38}html,body,#app{min-height:100%}html,body{margin:0;background:#0a0c10;color:#f2f5fa}*{box-sizing:border-box}.runtime-error-panel{position:fixed;right:16px;bottom:16px;z-index:9999;width:min(720px,calc(100vw - 32px));max-height:40vh;overflow:auto;padding:14px 16px;border-radius:16px;background:#271416f5;border:1px solid rgba(251,113,133,.34);box-shadow:0 24px 48px #0000005c;color:#ffe4e8;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.runtime-error-panel strong{display:block;margin-bottom:8px}.runtime-error-panel pre{margin:0;white-space:pre-wrap;word-break:break-word}
