*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #3498db;--primary-dark: #2980b9;--secondary-color: #2ecc71;--danger-color: #e74c3c;--warning-color: #f39c12;--dark-color: #34495e;--light-color: #ecf0f1;--text-color: #2c3e50;--border-color: #bdc3c7;--shadow: 0 2px 10px rgba(0, 0, 0, .1);--radius: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:var(--text-color);background:#f8f9fa}#app{min-height:100vh;display:flex;flex-direction:column}.app-view{flex:1;display:flex;flex-direction:column}.nav{background:#fff;box-shadow:var(--shadow);padding:1rem 2rem;position:sticky;top:0;z-index:100}.nav-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.nav-brand{font-size:1.5rem;font-weight:700;color:var(--primary-color);text-decoration:none}.nav-links{display:flex;gap:2rem;list-style:none}.nav-link{color:var(--text-color);text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius);transition:all .3s ease}.nav-link:hover{background:var(--light-color);color:var(--primary-color)}.nav-link.active{background:var(--primary-color);color:#fff}.container{max-width:1200px;margin:0 auto;padding:2rem;width:100%}.hero{text-align:center;padding:4rem 2rem;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.hero h1{font-size:3rem;margin-bottom:1rem}.hero p{font-size:1.25rem;opacity:.9}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;margin-bottom:2rem}.card-title{font-size:1.5rem;margin-bottom:1rem;color:var(--dark-color)}.card-body{color:var(--text-color)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin:2rem 0}.btn{display:inline-block;padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-size:1rem;cursor:pointer;text-decoration:none;transition:all .3s ease;font-weight:500}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px #3498db4d}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-danger{background:var(--danger-color);color:#fff}.btn-outline{background:transparent;border:2px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover{background:var(--primary-color);color:#fff}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--dark-color)}.form-control{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:1rem;transition:border-color .3s ease}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3498db1a}.list{list-style:none}.list-item{padding:1rem;border-bottom:1px solid var(--border-color);transition:background .2s ease}.list-item:hover{background:var(--light-color)}.list-item:last-child{border-bottom:none}.badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.badge-primary{background:var(--primary-color);color:#fff}.badge-success{background:var(--secondary-color);color:#fff}.badge-danger{background:var(--danger-color);color:#fff}.alert{padding:1rem;border-radius:var(--radius);margin-bottom:1rem}.alert-info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.transition-fade{animation:fade .3s ease-in-out}@keyframes fade{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:768px){.nav-links{gap:1rem}.hero h1{font-size:2rem}.container{padding:1rem}.grid{grid-template-columns:1fr}}.spinner{width:40px;height:40px;border:4px solid var(--light-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.p-1{padding:1rem}.p-2{padding:2rem}
