*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #3b82f6;--primary-dark: #2563eb;--secondary: #64748b;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--background: #f8fafc;--surface: #ffffff;--text: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--radius: 8px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text);line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius);font-weight:500;font-size:.875rem;transition:all .15s ease;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:#fff}.btn-secondary:hover{background:#475569}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:var(--background)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#16a34a}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:var(--text)}.form-input{width:100%;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;transition:border-color .15s ease}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-select{width:100%;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;background:#fff}.form-textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;resize:vertical;min-height:100px}.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-primary{background:#3b82f61a;color:var(--primary)}.badge-success{background:#22c55e1a;color:var(--success)}.badge-warning{background:#f59e0b1a;color:var(--warning)}.badge-secondary{background:#64748b1a;color:var(--secondary)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.table th{background:var(--background);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.table tr:hover{background:var(--background)}.alert{padding:1rem;border-radius:var(--radius);margin-bottom:1rem}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger)}.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--success)}.alert-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:var(--warning)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-header{margin-bottom:2rem}.page-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.page-description{color:var(--text-secondary)}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-secondary{color:var(--text-secondary)}.font-medium{font-weight:500}.font-semibold{font-weight:600}
