*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:#2c3e50;background:#f8f9fa;line-height:1.6}#app{width:100%;min-height:100vh}.container{width:100%;max-width:3000px;margin:0 auto;padding:0 20px}@media (min-width: 768px){.container{padding:0 50px}}.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}*:focus{outline:2px solid #007bff;outline-offset:2px}button{background:none;border:none;font-family:inherit;cursor:pointer}a{color:#007bff;text-decoration:none;transition:color .2s ease}a:hover{color:#0056b3;text-decoration:underline}.grid{display:grid;gap:1.5rem}@media (max-width: 767px){.grid-responsive{grid-template-columns:1fr}}.grid-responsive>*{min-width:280px}@media (min-width: 768px) and (max-width: 1199px){.grid-responsive{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}}@media (min-width: 1200px) and (max-width: 1599px){.grid-responsive{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}}@media (min-width: 1600px){.grid-responsive{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.75rem}}*{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;text-decoration:none;border:none;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn:active{transform:translateY(0)}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3;color:#fff;text-decoration:none}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#495057;color:#fff;text-decoration:none}.btn-success{background:#28a745;color:#fff}.btn-success:hover{background:#218838;color:#fff;text-decoration:none}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333;color:#fff;text-decoration:none}.card{background:#fff;border:1px solid #e9ecef;border-radius:.75rem;box-shadow:0 2px 8px #00000014;transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.slide-in-up{animation:slideInUp .4s ease-out}#app{min-height:100vh}
