@import url('design-tokens.css');*, *::before, *::after {box-sizing:border-box}*:focus {outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}*:focus:not(:focus-visible) {outline:none}*:focus-visible {outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.heading-1 {font-family:var(--font-family-secondary);font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-neutral-900);margin-bottom:var(--spacing-4)}.heading-2 {font-family:var(--font-family-secondary);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-neutral-900);margin-bottom:var(--spacing-3)}.heading-3 {font-family:var(--font-family-secondary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);color:var(--color-neutral-900);margin-bottom:var(--spacing-3)}.heading-4 {font-family:var(--font-family-secondary);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);color:var(--color-neutral-900);margin-bottom:var(--spacing-2)}.body-large {font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-neutral-700)}.body-base {font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-neutral-700)}.body-small {font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-neutral-600)}.caption {font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-neutral-500)}.btn {display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--button-font-weight);line-height:var(--line-height-none);text-decoration:none;white-space:nowrap;cursor:pointer;user-select:none;border:var(--button-border-width) solid transparent;border-radius:var(--button-border-radius);padding:var(--button-padding-y) var(--button-padding-x);min-height:var(--min-touch-target);transition:var(--button-transition);position:relative;overflow:hidden}.btn:disabled {opacity:0.5;cursor:not-allowed}.btn:disabled:hover {transform:none}.btn-sm {font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-3);min-height:44px}.btn-lg {font-size:var(--font-size-lg);padding:var(--spacing-3) var(--spacing-6);min-height:var(--spacing-12)}.btn-xl {font-size:var(--font-size-xl);padding:var(--spacing-4) var(--spacing-8);min-height:var(--spacing-14)}.btn-primary {background-color:var(--color-primary-600);border-color:var(--color-primary-600);color:white}.btn-primary:hover {background-color:var(--color-primary-700);border-color:var(--color-primary-700);color:white;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active {background-color:var(--color-primary-800);border-color:var(--color-primary-800);transform:translateY(0)}.btn-secondary {background-color:var(--color-secondary-100);border-color:var(--color-secondary-300);color:var(--color-secondary-900)}.btn-secondary:hover {background-color:var(--color-secondary-200);border-color:var(--color-secondary-400);color:var(--color-secondary-900);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline-primary {background-color:transparent;border-color:var(--color-primary-600);color:var(--color-primary-600);border-width:2px}.btn-outline-primary:hover {background-color:var(--color-primary-600);border-color:var(--color-primary-600);color:white;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-ghost {background-color:transparent;border-color:transparent;color:var(--color-primary-600)}.btn-ghost:hover {background-color:var(--color-primary-50);color:var(--color-primary-700)}.btn-success {background-color:var(--color-success-600);border-color:var(--color-success-600);color:white}.btn-success:hover {background-color:var(--color-success-700);border-color:var(--color-success-700);color:white;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-warning {background-color:var(--color-warning-500);border-color:var(--color-warning-500);color:white}.btn-warning:hover {background-color:var(--color-warning-600);border-color:var(--color-warning-600);color:white;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-error {background-color:var(--color-error-600);border-color:var(--color-error-600);color:white}.btn-error:hover {background-color:var(--color-error-700);border-color:var(--color-error-700);color:white;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-icon {padding:var(--spacing-2);width:var(--min-touch-target);height:var(--min-touch-target)}.btn-icon-sm {padding:var(--spacing-2);width:44px;height:44px}.btn-loading {position:relative;pointer-events:none}.btn-loading::after {content:'';position:absolute;top:50%;left:50%;width:var(--spacing-4);height:var(--spacing-4);margin:calc(var(--spacing-4) * -0.5) 0 0 calc(var(--spacing-4) * -0.5);border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin var(--duration-1000) linear infinite}@keyframes spin {to {transform:rotate(360deg)}}.form-group {margin-bottom:var(--spacing-4)}.form-label {display:block;font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--color-neutral-700);margin-bottom:var(--spacing-1)}.form-label-required::after {content:' *';color:var(--color-error-600)}.form-control {display:block;width:100%;font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-neutral-900);background-color:white;background-clip:padding-box;border:var(--form-control-border-width) solid var(--form-control-border-color);border-radius:var(--form-control-border-radius);padding:var(--form-control-padding-y) var(--form-control-padding-x);min-height:var(--form-control-height);transition:var(--transition-colors), var(--transition-shadow);appearance:none}.form-control:focus {outline:none;border-color:var(--form-control-focus-border-color);box-shadow:var(--form-control-focus-shadow)}.form-control::placeholder {color:var(--color-neutral-400);opacity:1}.form-control:disabled {background-color:var(--color-neutral-50);opacity:1}.form-control-error {border-color:var(--color-error-600)}.form-control-error:focus {border-color:var(--color-error-600);box-shadow:0 0 0 3px rgba(239, 68, 68, 0.1)}.form-control-success {border-color:var(--color-success-600)}.form-control-success:focus {border-color:var(--color-success-600);box-shadow:0 0 0 3px rgba(34, 197, 94, 0.1)}.form-control-sm {font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-2-5);min-height:44px}.form-control-lg {font-size:var(--font-size-lg);padding:var(--spacing-3) var(--spacing-4);min-height:var(--spacing-12)}.form-control-textarea {min-height:var(--spacing-24);resize:vertical}.form-select {background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-2) center;background-repeat:no-repeat;background-size:var(--spacing-4) var(--spacing-4);padding-right:var(--spacing-8)}.form-text {margin-top:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-neutral-600)}.form-text-error {color:var(--color-error-600)}.form-text-success {color:var(--color-success-600)}.input-group {position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group > .form-control {position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group-text {display:flex;align-items:center;padding:var(--form-control-padding-y) var(--form-control-padding-x);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-neutral-700);text-align:center;white-space:nowrap;background-color:var(--color-neutral-50);border:var(--form-control-border-width) solid var(--form-control-border-color)}.input-group-text:first-child {border-top-left-radius:var(--form-control-border-radius);border-bottom-left-radius:var(--form-control-border-radius)}.input-group-text:last-child {border-top-right-radius:var(--form-control-border-radius);border-bottom-right-radius:var(--form-control-border-radius)}.input-group > .form-control:not(:first-child) {border-top-left-radius:0;border-bottom-left-radius:0}.input-group > .form-control:not(:last-child) {border-top-right-radius:0;border-bottom-right-radius:0}.card {display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:white;background-clip:border-box;border:var(--card-border-width) solid var(--card-border-color);border-radius:var(--card-border-radius);box-shadow:var(--card-shadow);overflow:hidden}.card-header {padding:var(--spacing-4) var(--card-padding);background-color:var(--color-neutral-50);border-bottom:var(--card-border-width) solid var(--card-border-color)}.card-header:first-child {border-radius:calc(var(--card-border-radius) - var(--card-border-width)) calc(var(--card-border-radius) - var(--card-border-width)) 0 0}.card-body {flex:1 1 auto;padding:var(--card-padding)}.card-footer {padding:var(--spacing-4) var(--card-padding);background-color:var(--color-neutral-50);border-top:var(--card-border-width) solid var(--card-border-color)}.card-footer:last-child {border-radius:0 0 calc(var(--card-border-radius) - var(--card-border-width)) calc(var(--card-border-radius) - var(--card-border-width))}.card-title {margin-bottom:var(--spacing-2);font-family:var(--font-family-secondary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}.card-subtitle {margin-top:calc(var(--spacing-2) * -0.5);margin-bottom:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-neutral-600)}.card-text {margin-bottom:var(--spacing-4);color:var(--color-neutral-700)}.card-text:last-child {margin-bottom:0}.card-elevated {box-shadow:var(--shadow-lg);border:none}.card-elevated:hover {box-shadow:var(--shadow-xl);transform:translateY(-2px);transition:var(--transition-all)}.card-outline-primary {border-color:var(--color-primary-200)}.card-outline-primary .card-header {background-color:var(--color-primary-50);border-color:var(--color-primary-200)}.alert {position:relative;padding:var(--spacing-4);border:var(--card-border-width) solid transparent;border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-4)}.alert-dismissible {padding-right:var(--spacing-12)}.alert-dismissible .btn-close {position:absolute;top:0;right:0;z-index:2;padding:calc(var(--spacing-4) + var(--card-border-width))}.alert-primary {background-color:var(--color-primary-50);border-color:var(--color-primary-200);color:var(--color-primary-800)}.alert-secondary {background-color:var(--color-secondary-50);border-color:var(--color-secondary-200);color:var(--color-secondary-800)}.alert-success {background-color:var(--color-success-50);border-color:var(--color-success-200);color:var(--color-success-800)}.alert-info {background-color:var(--color-info-50);border-color:var(--color-info-200);color:var(--color-info-800)}.alert-warning {background-color:var(--color-warning-50);border-color:var(--color-warning-200);color:var(--color-warning-800)}.alert-error {background-color:var(--color-error-50);border-color:var(--color-error-200);color:var(--color-error-800)}.alert-heading {color:inherit;font-weight:var(--font-weight-semibold)}.navbar {position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;min-height:var(--nav-height);padding:0 var(--nav-padding-x);background-color:white;box-shadow:var(--nav-shadow);z-index:var(--z-index-sticky)}.navbar-brand {font-family:var(--font-family-secondary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary-600);text-decoration:none;white-space:nowrap}.navbar-nav {display:flex;flex-direction:row;padding-left:0;margin-bottom:0;list-style:none}.nav-item {margin-left:var(--spacing-2)}.nav-link {display:block;padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);text-decoration:none;border-radius:var(--border-radius-md);transition:var(--transition-colors);min-height:var(--min-touch-target);display:flex;align-items:center}.nav-link:hover {color:var(--color-primary-600);background-color:var(--color-primary-50)}.nav-link.active {color:var(--color-primary-600);background-color:var(--color-primary-100)}.navbar-toggler {padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-lg);line-height:1;background-color:transparent;border:var(--card-border-width) solid var(--color-neutral-300);border-radius:var(--border-radius-base);transition:var(--transition-all)}.navbar-toggler:hover {text-decoration:none}.navbar-toggler:focus {text-decoration:none;outline:0;box-shadow:var(--form-control-focus-shadow)}.navbar-toggler-icon {display:inline-block;width:var(--spacing-6);height:var(--spacing-6);vertical-align:middle;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-collapse {flex-basis:100%;flex-grow:1;align-items:center}.loading-spinner {display:inline-block;width:var(--spacing-8);height:var(--spacing-8);border:3px solid var(--color-neutral-200);border-radius:50%;border-top-color:var(--color-primary-600);animation:spin var(--duration-1000) ease-in-out infinite}.loading-spinner-sm {width:var(--spacing-4);height:var(--spacing-4);border-width:2px}.loading-spinner-lg {width:var(--spacing-12);height:var(--spacing-12);border-width:4px}.skeleton {background:linear-gradient(90deg, var(--color-neutral-200) 25%, var(--color-neutral-100) 50%, var(--color-neutral-200) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading {0% {background-position:200% 0}100% {background-position:-200% 0}}.skeleton-text {height:var(--spacing-4);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-2)}.skeleton-text-sm {height:var(--spacing-3)}.skeleton-text-lg {height:var(--spacing-5)}.skeleton-avatar {width:var(--spacing-12);height:var(--spacing-12);border-radius:var(--border-radius-full)}.skip-link {position:absolute;top:-40px;left:var(--spacing-4);background:var(--color-primary-600);color:white;padding:var(--spacing-2) var(--spacing-4);text-decoration:none;border-radius:var(--border-radius-md);z-index:var(--z-index-skipLink);transition:var(--transition-transform)}.skip-link:focus {top:var(--spacing-4)}.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (prefers-contrast:high) {.btn {border-width:2px}.form-control {border-width:2px}.card {border-width:2px}}@media print {.navbar, .btn, .alert-dismissible .btn-close, .loading-spinner {display:none}.card {border:1px solid var(--color-neutral-900);box-shadow:none}.btn-primary, .btn-secondary {border:1px solid var(--color-neutral-900);color:var(--color-neutral-900)}}