:root,[data-theme=light]{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#f0f0f2;--bg-input:#f5f5f7;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-muted:#86868b;--accent-blue:#4a90d9;--accent-purple:#7c5cbf;--accent-green:#27ae60;--accent-red:#e74c3c;--accent-orange:#f39c12;--border-color:#e5e5e7;--shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 24px rgba(0,0,0,.1);--radius:12px;--radius-sm:8px;--radius-lg:16px;--header-bg:hsla(0,0%,100%,.85);--header-blur:blur(12px);--overlay:rgba(0,0,0,.4);--skeleton:#e5e5e7;--badge-bg:#f0f0f2}[data-theme=dark]{--bg-primary:#1c1c1e;--bg-secondary:#2c2c2e;--bg-card:#2c2c2e;--bg-card-hover:#3a3a3c;--bg-input:#3a3a3c;--text-primary:#f5f5f7;--text-secondary:#a1a1a6;--text-muted:#6e6e73;--accent-blue:#5aa3f0;--accent-purple:#9b7fdb;--accent-green:#34c773;--accent-red:#f06060;--accent-orange:#f5b041;--border-color:#38383a;--shadow:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.3);--shadow-lg:0 8px 24px rgba(0,0,0,.4);--radius:12px;--radius-sm:8px;--radius-lg:16px;--header-bg:rgba(44,44,46,.85);--header-blur:blur(12px);--overlay:rgba(0,0,0,.6);--skeleton:#3a3a3c;--badge-bg:#3a3a3c}*{margin:0;padding:0;box-sizing:border-box}html{color-scheme:light dark}body,html{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-blue);color:#fff}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.no-transitions *,.no-transitions :after,.no-transitions :before{transition:none!important}