* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    color: #1f2937;
    background: #f8fafc;
}
header { background: #14532d; }
nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    padding: 0.75rem 1.25rem;
}
nav a { color: #d1fae5; text-decoration: none; }
nav a:hover, nav a.active { color: #ffffff; text-decoration: underline; }
nav .brand { font-weight: 700; color: #ffffff; }
nav .logout { margin-left: auto; }
main { padding: 1.5rem; max-width: 70rem; margin: 0 auto; }
table { width: 100%; border-collapse: collapse; background: #ffffff; margin: 1rem 0; }
th, td { padding: 0.5rem 0.6rem; border-bottom: 1px solid #e5e7eb; text-align: left; }
th { background: #ecfdf5; }
tr.row-error { background: #fef2f2; }
form.stacked { display: grid; gap: 0.5rem; max-width: 28rem; }
form.inline { display: inline-flex; gap: 0.35rem; align-items: center; }
input, select, textarea {
    padding: 0.45rem 0.55rem;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font: inherit;
}
button {
    padding: 0.45rem 0.9rem;
    border: none;
    border-radius: 4px;
    background: #16a34a;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
}
button.danger { background: #dc2626; }
.alert.error { color: #b91c1c; background: #fee2e2; padding: 0.5rem 0.75rem; border-radius: 4px; }
.alert.success { color: #166534; background: #dcfce7; padding: 0.5rem 0.75rem; border-radius: 4px; }
.login-page { display: grid; place-items: center; min-height: 100vh; background: #14532d; }
.login-box { background: #ffffff; padding: 2rem; border-radius: 8px; display: grid; gap: 0.75rem; min-width: 20rem; }
