:root { color-scheme: light; font-family: Inter, "Segoe UI", "Microsoft JhengHei", sans-serif; color: #233b35; background: #f3f6f3; }
* { box-sizing: border-box; }
body { margin: 0; }
[hidden] { display: none !important; }
h1 { font-size: 30px; font-weight: 600; margin: 8px 0 24px; letter-spacing: -.6px; }
h2 { font-size: 19px; margin: 0 0 16px; font-weight: 600; }
p { line-height: 1.7; }
.brand { font-size: 21px; font-weight: 700; letter-spacing: -.7px; margin-bottom: 0; }
.muted { color: #61766e; font-size: 14px; }
button, input, textarea { font: inherit; }
button { border: 1px solid transparent; border-radius: 7px; padding: 10px 18px; background: #285e4c; color: white; cursor: pointer; }
button:hover { filter: brightness(.94); }
button:disabled { opacity: .5; cursor: wait; }
.secondary { background: white; color: #345d4d; border-color: #cdd9d1; }
.danger { background: #8a3434; }
input, textarea { width: 100%; padding: 11px 12px; border: 1px solid #cdd9d1; border-radius: 6px; background: white; color: #233b35; }
input:focus, textarea:focus, button:focus-visible { outline: 3px solid #acd6bf; outline-offset: 2px; }
label { display: block; font-size: 14px; margin-bottom: 20px; }
label input, label textarea { display: block; margin-top: 8px; }
.check { display: flex; align-items: center; gap: 10px; }
.check input { width: auto; margin: 0; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #e5ece4; }
.login-card { width: 400px; max-width: 100%; padding: 36px; background: #fff; border: 1px solid #d8e2d8; border-radius: 14px; }
.login-card button { width: 100%; }
aside { position: fixed; inset: 0 auto 0 0; width: 236px; padding: 26px 22px; background: #193e32; color: #f0f4ef; display: flex; flex-direction: column; }
aside .muted { color: #a8c2b5; margin-top: 6px; }
nav { display: grid; gap: 8px; margin-top: 35px; }
nav button { text-align: left; background: transparent; color: #c5d7cc; padding: 14px; }
nav button.selected { background: #365b4c; color: white; }
.logout { margin-top: auto; }
main { margin-left: 236px; padding: 40px; max-width: 1500px; }
header { display: flex; justify-content: space-between; align-items: center; }
header p { margin: 0; }
header button { margin-bottom: 20px; }
article { background: #fff; border: 1px solid #dce5dd; border-radius: 10px; padding: 25px; margin-bottom: 24px; }
.metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.metric { background: #fff; border: 1px solid #dce5dd; padding: 22px; border-radius: 10px; margin-bottom: 24px; }
.metric span { color: #61766e; font-size: 14px; }
.metric strong { display: block; font-size: 36px; font-weight: 500; margin-top: 12px; }
dl { display: grid; grid-template-columns: 180px 1fr; gap: 16px; font-size: 14px; }
dd { margin: 0; overflow-wrap: anywhere; }
dt { color: #61766e; }
.toolbar { display: flex; gap: 12px; margin-bottom: 22px; }
.toolbar input { max-width: 420px; }
.table-card { padding: 0; }
.table-scroll { overflow: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: 14px; }
th { font-weight: 500; color: #61766e; background: #f7f9f6; white-space: nowrap; }
td, th { padding: 17px 20px; border-bottom: 1px solid #edf1ec; vertical-align: top; }
td { overflow-wrap: anywhere; }
td button { padding: 6px 12px; }
.pager { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin: 20px 0; font-size: 14px; }
.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.stack { max-width: 500px; }
.feature-row { display: flex; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid #edf1ec; }
.feature-row label { margin: 0; flex: 1; }
.feature-row small { display: block; color: #61766e; margin-top: 5px; }
#features-form > button { margin-top: 24px; }
#status:empty { display: none; }
#status, #login-error { color: #8a3434; }
#status.success { color: #285e4c; }
pre { max-width: 650px; overflow: auto; white-space: pre-wrap; font-size: 12px; }
.detail-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 950px) { .metrics { grid-template-columns: repeat(2, 1fr); } .form-grid { grid-template-columns: 1fr; gap: 0; } main { padding: 24px; } }
@media (max-width: 650px) { aside { position: static; width: 100%; padding: 16px; } nav { display: flex; overflow: auto; margin: 16px 0; gap: 0; } nav button { white-space: nowrap; padding: 10px; } .logout { align-self: flex-end; } main { margin-left: 0; padding: 20px; } h1 { font-size: 26px; } dl { grid-template-columns: 1fr; gap: 8px; } dd { margin-bottom: 12px; } }
