:root{--color-primary-50:#e8f2fe;--color-primary-100:#d1e5fd;--color-primary-200:#a3cbfb;--color-primary-300:#75b1f9;--color-primary-400:#4797f7;--color-primary-500:#1877F2;--color-primary-600:#1366d6;--color-primary-700:#0e4eaa;--color-primary-800:#09367e;--color-primary-900:#051e52;--color-primary:var(--color-primary-500);--color-secondary-50:#eff6ff;--color-secondary-100:#dbeafe;--color-secondary-200:#bfdbfe;--color-secondary-300:#93c5fd;--color-secondary-400:#60a5fa;--color-secondary-500:#3b82f6;--color-secondary-600:#2563eb;--color-secondary-700:#1d4ed8;--color-secondary-800:#1e40af;--color-secondary-900:#1e3a8a;--color-secondary:var(--color-secondary-600);--color-accent-50:#f0f9ff;--color-accent-100:#e0f2fe;--color-accent-200:#bae6fd;--color-accent-300:#7dd3fc;--color-accent-400:#38bdf8;--color-accent-500:#0ea5e9;--color-accent-600:#0284c7;--color-accent-700:#0369a1;--color-accent-800:#075985;--color-accent-900:#0c4a6e;--color-accent:var(--color-accent-600);--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-neutral:var(--color-neutral-600);--color-success:#0ea5e9;--color-success-light:#7dd3fc;--color-success-dark:#0369a1;--color-warning:#f59e0b;--color-warning-light:#fcd34d;--color-warning-dark:#d97706;--color-error:#ef4444;--color-error-light:#fca5a5;--color-error-dark:#dc2626;--color-background:#ffffff;--color-background-secondary:#f5f5f5;--color-surface:#ffffff;--color-surface-elevated:#fafafa;--color-text-primary:#171717;--color-text-secondary:#525252;--color-text-tertiary:#a3a3a3;--color-text-inverse:#ffffff;--color-border:#e5e5e5;--color-border-focus:#1877F2;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-full:9999px;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1)}:root.dark{--color-background:#0a0a0a;--color-background-secondary:#171717;--color-surface:#171717;--color-surface-elevated:#262626;--color-text-primary:#fafafa;--color-text-secondary:#d4d4d4;--color-text-tertiary:#737373;--color-text-inverse:#171717;--color-border:#404040;--color-border-focus:#4797f7;--color-primary:var(--color-primary-500);--color-secondary:var(--color-secondary-500);--color-accent:var(--color-accent-500);--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.4),0 2px 4px -1px rgba(0,0,0,0.3);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.4),0 4px 6px -2px rgba(0,0,0,0.3);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.5),0 10px 10px -5px rgba(0,0,0,0.4)}*{box-sizing:border-box}body{background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-base),color var(--transition-base)}::selection{background-color:var(--color-primary);color:var(--color-text-inverse)}::-moz-selection{background-color:var(--color-primary);color:var(--color-text-inverse)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-background-secondary)}::-webkit-scrollbar-thumb{background:var(--color-neutral-400);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;transition:all .2s;outline:none}.btn:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary-500);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary-600);color:white}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-700)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-800)}.btn-secondary{background-color:var(--color-secondary-600);color:white}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-700)}.btn-secondary:active:not(:disabled){background-color:var(--color-secondary-800)}.btn-accent{background-color:var(--color-accent-600);color:white}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-700)}.btn-accent:active:not(:disabled){background-color:var(--color-accent-800)}.btn-outline{border:2px solid var(--color-primary-600);color:var(--color-primary-600)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-50)}.btn-outline:active:not(:disabled){background-color:var(--color-primary-100)}.btn-ghost{color:var(--color-neutral-700)}.btn-ghost:hover:not(:disabled){background-color:var(--color-neutral-100)}.btn-ghost:active:not(:disabled){background-color:var(--color-neutral-200)}.btn-sm{padding:.375rem .75rem;font-size:.875rem}.btn-lg{padding:.75rem 1.5rem;font-size:1.125rem}.btn-icon{padding:.5rem;border-radius:9999px}.card{background-color:white;border-radius:.75rem;box-shadow:var(--shadow-elevation-low);border:1px solid var(--color-neutral-200);transition:box-shadow .2s}:root.dark .card{background-color:var(--color-neutral-900);border-color:var(--color-neutral-800)}.card-hover{background-color:white;border-radius:.75rem;box-shadow:var(--shadow-elevation-low);border:1px solid var(--color-neutral-200);transition:box-shadow .2s;cursor:pointer}:root.dark .card-hover{background-color:var(--color-neutral-900);border-color:var(--color-neutral-800)}.card-elevated,.card-hover:hover{box-shadow:var(--shadow-elevation-medium)}.card-elevated{background-color:white;border-radius:.75rem;border:1px solid var(--color-neutral-200)}:root.dark .card-elevated{background-color:var(--color-neutral-900);border-color:var(--color-neutral-800)}.card-flat{background-color:white;border-radius:.75rem;border:1px solid var(--color-neutral-200)}:root.dark .card-flat{background-color:var(--color-neutral-900);border-color:var(--color-neutral-800)}.card-header{padding:1rem 1.5rem;border-bottom:1px solid var(--color-neutral-200)}:root.dark .card-header{border-bottom-color:var(--color-neutral-800)}.card-body,.card-footer{padding:1rem 1.5rem}.card-footer{border-top:1px solid var(--color-neutral-200);background-color:var(--color-neutral-50);border-radius:0 0 .75rem .75rem}:root.dark .card-footer{border-top-color:var(--color-neutral-800);background-color:var(--color-neutral-800)}.input{width:100%;padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--color-neutral-300);background-color:white;color:var(--color-neutral-900);transition:all .2s}:root.dark .input{border-color:var(--color-neutral-700);background-color:var(--color-neutral-900);color:var(--color-neutral-100)}.input::-moz-placeholder{color:var(--color-neutral-400)}.input::placeholder{color:var(--color-neutral-400)}.input:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary-500);border-color:transparent}.input:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 2px var(--color-error)}.input-success{border-color:var(--color-success)}.input-success:focus{box-shadow:0 0 0 2px var(--color-success)}.input-sm{padding:.375rem .75rem;font-size:.875rem}.input-lg{padding:.75rem 1.25rem;font-size:1.125rem}.textarea{width:100%;padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--color-neutral-300);background-color:white;color:var(--color-neutral-900);transition:all .2s;resize:none;min-height:100px}:root.dark .textarea{border-color:var(--color-neutral-700);background-color:var(--color-neutral-900);color:var(--color-neutral-100)}.select{width:100%;padding:.5rem 2.5rem .5rem 1rem;border-radius:.5rem;border:1px solid var(--color-neutral-300);background-color:white;color:var(--color-neutral-900);transition:all .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23737373'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:1.5rem}:root.dark .select{border-color:var(--color-neutral-700);background-color:var(--color-neutral-900);color:var(--color-neutral-100)}.checkbox{width:1rem;height:1rem;color:var(--color-primary-600);background-color:white;border:1px solid var(--color-neutral-300);border-radius:.25rem;cursor:pointer;transition:all .2s}.checkbox:focus{box-shadow:0 0 0 2px var(--color-primary-500)}.radio{width:1rem;height:1rem;color:var(--color-primary-600);background-color:white;border:1px solid var(--color-neutral-300);cursor:pointer;transition:all .2s}.radio:focus{box-shadow:0 0 0 2px var(--color-primary-500)}.badge{display:inline-flex;align-items:center;padding:.125rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-primary{background-color:var(--color-primary-100);color:var(--color-primary-800)}:root.dark .badge-primary{background-color:var(--color-primary-900);color:var(--color-primary-100)}.badge-secondary{background-color:var(--color-secondary-100);color:var(--color-secondary-800)}:root.dark .badge-secondary{background-color:var(--color-secondary-900);color:var(--color-secondary-100)}.badge-accent{background-color:var(--color-accent-100);color:var(--color-accent-800)}:root.dark .badge-accent{background-color:var(--color-accent-900);color:var(--color-accent-100)}.badge-success{background-color:var(--color-success-light);color:var(--color-success-dark)}:root.dark .badge-success{background-color:var(--color-success-dark);color:var(--color-success-light)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning-dark)}:root.dark .badge-warning{background-color:var(--color-warning-dark);color:var(--color-warning-light)}.badge-error{background-color:var(--color-error-light);color:var(--color-error-dark)}:root.dark .badge-error{background-color:var(--color-error-dark);color:var(--color-error-light)}.badge-neutral{background-color:var(--color-neutral-100);color:var(--color-neutral-800)}:root.dark .badge-neutral{background-color:var(--color-neutral-800);color:var(--color-neutral-100)}.badge-lg{padding:.25rem .75rem;font-size:.875rem}.alert{padding:1rem;border-radius:.5rem;border:1px solid;display:flex;align-items:flex-start;gap:.75rem}.alert-success{background-color:color-mix(in srgb,var(--color-success-light) 10%,transparent);border-color:var(--color-success);color:var(--color-success-dark)}:root.dark .alert-success{color:var(--color-success-light)}.alert-warning{background-color:color-mix(in srgb,var(--color-warning-light) 10%,transparent);border-color:var(--color-warning);color:var(--color-warning-dark)}:root.dark .alert-warning{color:var(--color-warning-light)}.alert-error{background-color:color-mix(in srgb,var(--color-error-light) 10%,transparent);border-color:var(--color-error);color:var(--color-error-dark)}:root.dark .alert-error{color:var(--color-error-light)}.alert-info{background-color:color-mix(in srgb,var(--color-primary-100) 50%,transparent);border-color:var(--color-primary-300);color:var(--color-primary-800)}:root.dark .alert-info{background-color:color-mix(in srgb,var(--color-primary-900) 30%,transparent);color:var(--color-primary-100)}.link{color:var(--color-primary-600);text-decoration:underline;text-underline-offset:2px;transition:color .2s;border-radius:.25rem}.link:hover{color:var(--color-primary-700)}.link:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary-500);outline-offset:2px}.link-muted{color:var(--color-neutral-600);text-decoration:none}:root.dark .link-muted{color:var(--color-neutral-400)}.link-muted:hover{color:var(--color-neutral-800);text-decoration:underline}:root.dark .link-muted:hover{color:var(--color-neutral-200)}.divider{border-top:1px solid var(--color-neutral-200)}:root.dark .divider{border-top-color:var(--color-neutral-800)}.divider-vertical{border-left:1px solid var(--color-neutral-200)}:root.dark .divider-vertical{border-left-color:var(--color-neutral-800)}.container-custom{max-width:80rem;margin-left:auto;margin-right:auto;padding:0 1rem}@media (min-width:640px){.container-custom{padding:0 1.5rem}}@media (min-width:1024px){.container-custom{padding:0 2rem}}.spinner{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid;border-top:2px solid transparent;border-radius:9999px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.spinner-sm{width:1rem;height:1rem;border-width:1px}.spinner-lg{width:2rem;height:2rem;border-width:4px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;background-color:var(--color-neutral-200);color:var(--color-neutral-600);font-weight:500;overflow:hidden}:root.dark .avatar{background-color:var(--color-neutral-700);color:var(--color-neutral-300)}.avatar-sm{width:2rem;height:2rem;font-size:.875rem}.avatar-md{width:2.5rem;height:2.5rem;font-size:1rem}.avatar-lg{width:4rem;height:4rem;font-size:1.25rem}.avatar-xl{width:6rem;height:6rem;font-size:1.875rem}.tooltip{position:absolute;z-index:50;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:white;background-color:var(--color-neutral-900);border-radius:.25rem;box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}:root.dark .tooltip{background-color:var(--color-neutral-700)}.tooltip-visible{opacity:1}.modal-overlay{position:fixed;inset:0;background-color:color-mix(in srgb,var(--color-neutral-900) 50%,transparent);backdrop-filter:blur(4px);z-index:40;transition:opacity .2s}.modal-content{position:relative;background-color:white;border-radius:.75rem;box-shadow:var(--shadow-elevation-high);padding:1.5rem;max-width:32rem;width:100%;margin:0 1rem;z-index:50;animation:scaleIn .2s ease-in-out}:root.dark .modal-content{background-color:var(--color-neutral-900)}.dropdown{position:absolute;margin-top:.5rem;background-color:white;border-radius:.5rem;box-shadow:var(--shadow-elevation-medium);border:1px solid var(--color-neutral-200);padding:.25rem 0;z-index:30;min-width:200px;animation:fadeIn .3s ease-in-out}:root.dark .dropdown{background-color:var(--color-neutral-900);border-color:var(--color-neutral-800)}.dropdown-item{padding:.5rem 1rem;font-size:.875rem;color:var(--color-neutral-700);cursor:pointer;transition:colors .15s}:root.dark .dropdown-item{color:var(--color-neutral-300)}.dropdown-item:hover{background-color:var(--color-neutral-100)}:root.dark .dropdown-item:hover{background-color:var(--color-neutral-800)}.dropdown-divider{margin:.25rem 0;border-top:1px solid var(--color-neutral-200)}:root.dark .dropdown-divider{border-top-color:var(--color-neutral-800)}.progress{width:100%;height:.5rem;background-color:var(--color-neutral-200);border-radius:9999px;overflow:hidden}:root.dark .progress{background-color:var(--color-neutral-700)}.progress-bar{height:100%;background-color:var(--color-primary-600);transition:all .3s ease-out}.skeleton{background-color:var(--color-neutral-200);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:.25rem}:root.dark .skeleton{background-color:var(--color-neutral-800)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-text{height:1rem;width:100%;background-color:var(--color-neutral-200);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:.25rem}:root.dark .skeleton-text{background-color:var(--color-neutral-800)}.skeleton-circle{background-color:var(--color-neutral-200);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:9999px}:root.dark .skeleton-circle{background-color:var(--color-neutral-800)}.text-headline{font-size:6rem;font-weight:700;line-height:120%}.text-subheadline{font-size:3rem;font-weight:600;line-height:120%}.text-caption{font-size:1.5rem;font-weight:500;line-height:120%}.text-body{font-size:1rem;font-weight:400;line-height:150%}@media (max-width:768px){.text-headline{font-size:3rem}.text-subheadline{font-size:2rem}.text-caption{font-size:1.25rem}}