* { box-sizing: border-box; }
body { font-family: -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; margin: 0; background: #f5f5f7; color: #1a1a1a; }
nav { background: #1a1a2e; color: #fff; padding: 1rem 1.5rem; display: flex; justify-content: space-between; align-items: center; }
nav a { color: #fff; text-decoration: none; margin-right: 1rem; }
nav a:hover { text-decoration: underline; }
main { max-width: 1200px; margin: 2rem auto; padding: 0 1.5rem; }
.card { background: #fff; border-radius: 8px; padding: 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.1); margin-bottom: 1.5rem; overflow-x: auto; }
table { width: auto; border-collapse: collapse; }
th, td { text-align: left; padding: 0.5rem 1rem 0.5rem 0.5rem; border-bottom: 1px solid #eee; white-space: nowrap; }
input[type=text], input[type=email], input[type=password], input[type=file] { width: 100%; padding: 0.5rem; margin: 0.25rem 0 0.75rem; border: 1px solid #ccc; border-radius: 4px; }
button, .btn { background: #4f46e5; color: #fff; border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; text-decoration: none; display: inline-block; }
button:hover, .btn:hover { background: #4338ca; }
.btn-danger { background: #dc2626; }
.btn-danger:hover { background: #b91c1c; }
.link-action { background: none; border: none; color: #4f46e5; cursor: pointer; padding: 0; font: inherit; text-decoration: underline; }
.error { background: #fee2e2; color: #991b1b; padding: 0.75rem; border-radius: 4px; margin-bottom: 1rem; }
.status { background: #dcfce7; color: #166534; padding: 0.75rem; border-radius: 4px; margin-bottom: 1rem; }
.muted { color: #666; font-size: 0.9rem; }
