:root{--blue-700:#1d4ed8;--blue-600:#2563eb;--blue-500:#3b82f6;--blue-400:#60a5fa;--blue-300:#93c5fd;--blue-200:#bfdbfe;--blue-100:#dbeafe;--blue-50:#eff6ff;--gray-900:#111827;--gray-800:#1f2937;--gray-700:#374151;--gray-600:#4b5563;--gray-500:#6b7280;--gray-400:#9ca3af;--gray-300:#d1d5db;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--gray-50:#f9fafb;--white:#fff;--green-600:#059669;--green-500:#10b981;--green-100:#d1fae5;--green-50:#ecfdf5;--amber-600:#d97706;--amber-500:#f59e0b;--amber-100:#fef3c7;--amber-50:#fffbeb;--red-700:#b91c1c;--red-600:#dc2626;--red-500:#ef4444;--red-200:#fecaca;--red-100:#fee2e2;--red-50:#fef2f2;--indigo-700:#4338ca;--indigo-600:#4f46e5;--indigo-500:#6366f1;--indigo-300:#a5b4fc;--indigo-100:#e0e7ff;--indigo-50:#eef2ff;--purple-600:#9333ea;--purple-100:#f3e8ff;--purple-50:#faf5ff;--teal-600:#0d9488;--teal-100:#ccfbf1;--pink-700:#be185d;--pink-600:#db2777;--pink-500:#ec4899;--pink-100:#fce7f3;--pink-50:#fdf2f8;--green-700:#15803d;--font-primary:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono",monospace;--text-xs:0.6875rem;--text-sm:0.75rem;--text-base:0.8125rem;--text-md:0.875rem;--text-lg:0.9375rem;--text-xl:1rem;--text-2xl:1.375rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.15;--leading-normal:1.5;--leading-relaxed:1.75;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:14px;--space-7:16px;--space-8:18px;--space-9:20px;--space-10:24px;--space-12:32px;--space-14:40px;--space-16:48px;--space-20:64px;--sidebar-width:260px;--sidebar-width-mobile:280px;--header-height:52px;--content-max-width:768px;--page-max-width:900px;--btn-height:32px;--btn-height-lg:40px;--btn-padding-x:14px;--btn-padding-y:10px;--input-height:44px;--input-padding-x:12px;--input-padding-y:8px;--icon-sm:14px;--icon-md:18px;--icon-lg:20px;--avatar-sm:24px;--avatar-md:28px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 2px 8px rgba(0,0,0,.04);--shadow-lg:0 20px 40px -12px rgba(0,0,0,.1);--shadow-focus:0 0 0 3px var(--blue-50);--transition-fast:0.12s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease;--z-dropdown:100;--z-sticky:110;--z-overlay:150;--z-sidebar:200;--z-modal:300;--z-toast:400}[data-theme=dark]{--gray-900:#f2f2f2;--gray-800:#e5e5e5;--gray-700:#d4d4d4;--gray-600:#a3a3a3;--gray-500:#737373;--gray-400:#525252;--gray-300:#1f1f1f;--gray-200:#1f1f1f;--gray-100:#0a0a0a;--gray-50:#0a0a0a;--white:#000;--blue-700:#93c5fd;--blue-600:#60a5fa;--blue-500:#3b82f6;--blue-400:#2563eb;--blue-300:#1d4ed8;--blue-200:#1e3a5f;--blue-100:#0c1e3d;--blue-50:#0a1628;--green-700:#86efac;--green-600:#4ade80;--green-500:#22c55e;--green-100:#052e16;--green-50:#031a0e;--amber-600:#fbbf24;--amber-500:#f59e0b;--amber-100:#2a1505;--amber-50:#1a0e03;--red-700:#fca5a5;--red-600:#f87171;--red-500:#ef4444;--red-200:#450a0a;--red-100:#2d0606;--red-50:#1a0404;--indigo-700:#a5b4fc;--indigo-600:#818cf8;--indigo-500:#6366f1;--indigo-300:#4338ca;--indigo-100:#1a1744;--indigo-50:#110f2e;--purple-600:#c084fc;--purple-100:#1f0d3d;--purple-50:#150a2e;--teal-600:#2dd4bf;--teal-100:#031f1e;--pink-700:#f9a8d4;--pink-600:#f472b6;--pink-500:#ec4899;--pink-100:#3d0519;--pink-50:#2a0411;--shadow-sm:0 1px 3px rgba(0,0,0,.5);--shadow-md:0 4px 24px rgba(0,0,0,.6);--shadow-lg:0 20px 40px -12px rgba(0,0,0,.7);--shadow-focus:0 0 0 3px rgba(59,130,246,.4)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{text-size-adjust:100%}html[data-theme=dark]{color-scheme:dark}body{font-family:var(--font-primary);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--gray-900);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}ol,ul{list-style:none}button{border:none;background:none;cursor:pointer}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}img,svg{display:block;max-width:100%}table{border-collapse:collapse;border-spacing:0}.heading-xl{font-size:var(--text-3xl);font-weight:var(--font-bold);line-height:1.2;letter-spacing:-.02em;color:var(--gray-900)}@media (min-width:769px){.heading-xl{font-size:var(--text-4xl)}}.heading-lg{font-size:var(--text-2xl);font-weight:var(--font-bold);line-height:1.2;color:var(--gray-900)}.heading-md{font-size:var(--text-xl)}.heading-md,.heading-sm{font-weight:var(--font-semibold);color:var(--gray-900)}.heading-sm,.text-body{font-size:var(--text-lg)}.text-body{line-height:var(--leading-relaxed);color:var(--gray-700)}.text-sm{font-size:var(--text-base);color:var(--gray-600)}.text-xs{font-size:var(--text-sm);color:var(--gray-500)}.label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400)}:focus{outline:none}:focus-visible{outline:2px solid var(--blue-400);outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}*{scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border:0}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.truncate{text-overflow:ellipsis}.scroll-touch{-webkit-overflow-scrolling:touch}.app{display:flex;flex-direction:column;min-height:100vh}@media (min-width:769px){.app{flex-direction:row}}.main{flex:1 1;display:flex;flex-direction:column;min-width:0;background:var(--white)}.content-area{flex:1 1;overflow-y:auto;-webkit-overflow-scrolling:touch}.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:var(--z-overlay)}.overlay.active{display:block}@media (min-width:769px){.overlay{display:none!important}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}