@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap);*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background-color:var(--color-neutral-50);color:var(--color-neutral-900);font-family:var(--font-family);line-height:1.6;margin:0;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}code,pre{font-family:var(--font-family-mono);font-size:.875em}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:4px;-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.loading-spinner{align-items:center;display:flex;justify-content:center;min-height:200px;padding:var(--spacing-xl)}.error-message{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error)}.error-message,.success-message{font-weight:500;margin:var(--spacing-md) 0;padding:var(--spacing-md)}.success-message{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success-dark)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease-out}.animate-slide-in{animation:slideIn var(--transition-slow) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.skeleton{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;border-radius:var(--radius-sm)}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity var(--transition-normal),transform var(--transition-normal)}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity var(--transition-fast)}.table-responsive{margin:0 -16px;overflow-x:auto;overscroll-behavior-x:contain;padding:0 16px}@media (min-width:768px){.table-responsive{margin:0;padding:0}}.card-hover{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card-hover:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-loading{color:#0000!important;position:relative}.btn-loading:after{animation:spin .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}@media print{body{background:#fff}.no-print{display:none!important}}@media (hover:none) and (pointer:coarse){[role=button],button,input[type=button],input[type=submit]{min-height:44px;min-width:44px}.card-hover:hover{box-shadow:var(--shadow-md);transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}