:root{--color-primary:#7c5cfc;--color-primary-hover:#6b4ae8;--color-primary-active:#5a3ad4;--color-primary-light:#e8e3ff;--color-primary-bg:#f5f3ff;--color-secondary:#6b7280;--color-secondary-hover:#4b5563;--color-secondary-active:#374151;--color-success:#00b96b;--color-success-hover:#009a59;--color-success-bg:#e6f9f0;--color-danger:#ff4d4f;--color-danger-hover:#e63e40;--color-danger-bg:#fff1f0;--color-warning:#faad14;--color-warning-hover:#e09e0d;--color-warning-bg:#fffbe6;--color-info:#1890ff;--color-info-hover:#096dd9;--color-info-bg:#e6f7ff;--text-primary:#1f2937;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--text-disabled:#d1d5db;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#f3f4f6;--border-light:#e5e7eb;--border-dark:#d1d5db;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #00000026;--font-size-h1:24px;--font-size-h2:20px;--font-size-h3:18px;--font-size-h4:16px;--font-size-body:14px;--font-size-small:12px;--font-size-caption:11px;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px;--spacing-3xl:32px;--spacing-4xl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--bottom-nav-height:56px;--header-height:56px;--sidebar-width:240px;--content-max-width:1200px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--z-dropdown:100;--z-sticky:200;--z-modal:300;--z-popover:400;--z-toast:500}[data-theme=dark]{--color-primary:#9b7fff;--color-primary-hover:#b19aff;--color-primary-active:#7c5cfc;--color-primary-light:#2d2650;--color-primary-bg:#1e1a33;--color-secondary:#9ca3af;--color-secondary-hover:#d1d5db;--color-secondary-active:#e5e7eb;--color-success:#34d399;--color-success-hover:#6ee7b7;--color-success-bg:#064e3b;--color-danger:#f87171;--color-danger-hover:#fca5a5;--color-danger-bg:#7f1d1d;--color-warning:#fbbf24;--color-warning-hover:#fcd34d;--color-warning-bg:#78350f;--color-info:#60a5fa;--color-info-hover:#93c5fd;--color-info-bg:#1e3a5f;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--text-disabled:#6b7280;--bg-primary:#1f2937;--bg-secondary:#111827;--bg-tertiary:#374151;--border-light:#374151;--border-dark:#4b5563;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--shadow-xl:0 20px 25px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Noto Sans KR,sans-serif;font-size:var(--font-size-body);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.text-h1{font-size:var(--font-size-h1)}.text-h2{font-size:var(--font-size-h2)}.text-h3{font-size:var(--font-size-h3)}.text-h4{font-size:var(--font-size-h4)}.text-body{font-size:var(--font-size-body)}.text-small{font-size:var(--font-size-small)}.text-caption{font-size:var(--font-size-caption)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection,[data-theme=dark] ::selection{background-color:var(--color-primary-light);color:var(--color-primary)}
