:root{--color-primary:#0ea5e9;--color-primary-hover:#0284c7;--color-primary-light:#e0f2fe;--color-primary-dark:#0369a1;--color-secondary:#0d9488;--color-secondary-hover:#0f766e;--color-secondary-light:#ccfbf1;--color-secondary-dark:#115e59;--color-success:#22c55e;--color-success-light:#dcfce7;--color-success-dark:#16a34a;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-warning-dark:#d97706;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-danger-dark:#dc2626;--risk-very-low:#22c55e;--risk-low:#86efac;--risk-average:#fbbf24;--risk-elevated:#fb923c;--risk-high:#ef4444;--color-background:#f8fafc;--color-surface:#fff;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-text-primary:#1e293b;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-text-inverse:#fff;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-family-mono:"SF Mono","Fira Code","Consolas",monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--spacing-0:0;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 rgba(0,0,0,.05);--shadow-sm:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);--shadow-primary:0 4px 14px 0 rgba(14,165,233,.4);--shadow-success:0 4px 14px 0 rgba(34,197,94,.4);--shadow-danger:0 4px 14px 0 rgba(239,68,68,.4);--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--transition-slower:500ms ease;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--gradient-primary:linear-gradient(135deg,#0ea5e9,#0d9488);--gradient-hero:linear-gradient(135deg,#0c4a6e,#0ea5e9 50%,#0d9488);--gradient-risk:linear-gradient(90deg,#22c55e 0%,#86efac 25%,#fbbf24 50%,#fb923c 75%,#ef4444);--gradient-dna:linear-gradient(135deg,#0c4a6e,#155e75 25%,#0891b2 50%,#0d9488 75%,#115e59)}@media (prefers-color-scheme:dark){:root.dark-mode{--color-background:#0f172a;--color-surface:#1e293b;--color-border:#334155;--color-border-light:#1e293b;--color-text-primary:#f1f5f9;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f8fafc;color:#1e293b;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn .5s ease forwards}.slide-up{animation:slideUp .4s ease forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media (max-width:640px){body{font-size:14px}}@media print{body{background:#fff}button,input[type=file],select{display:none}}