:root { color-scheme: light; font-family: system-ui, sans-serif; color: #18212b; background: #eef3f7; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
a { color: #075b9b; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem clamp(1rem, 4vw, 3rem); color: #fff; background: #123b57; }
.site-header a { color: #fff; }
.brand { font-size: 1.15rem; font-weight: 750; text-decoration: none; }
nav { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
main { width: min(1180px, calc(100% - 2rem)); margin: 2rem auto; flex: 1; }
footer { padding: 1.2rem; text-align: center; color: #506170; font-size: .85rem; }
.card { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; border: 1px solid #d5e0e8; border-radius: .75rem; box-shadow: 0 5px 22px rgba(19, 52, 73, .07); }
.narrow { max-width: 34rem; margin: 5vh auto; }
.wide { min-width: 0; }
.grid { display: grid; grid-template-columns: minmax(17rem, 22rem) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
form:not(.inline-form) { display: grid; gap: 1rem; }
label { display: grid; gap: .35rem; font-weight: 650; }
input { min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid #91a5b3; border-radius: .35rem; font: inherit; }
input:focus, button:focus, a:focus { outline: 3px solid #81bce8; outline-offset: 2px; }
button { min-height: 2.65rem; padding: .65rem 1rem; border: 0; border-radius: .35rem; background: #08669f; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
button.secondary { color: #164662; background: #e5eff5; }
button.danger { background: #a32626; }
button:disabled { opacity: .5; cursor: not-allowed; }
.inline-form { display: inline; }
.link-button { padding: 0; min-height: auto; background: transparent; text-decoration: underline; }
.notice { padding: .8rem 1rem; margin: 0 0 1rem; border-radius: .35rem; }
.notice.success, .status.success { color: #145c39; background: #e5f6ed; }
.notice.error, .status.error { color: #832020; background: #fdeaea; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .7rem; text-align: left; vertical-align: top; border-bottom: 1px solid #dce5eb; }
th { color: #425464; font-size: .85rem; }
.actions { white-space: nowrap; }
.file-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; white-space: nowrap; }
.bulk-actions { display: flex; align-items: stretch; gap: .75rem; flex-wrap: wrap; }
.file-select-label { display: inline-flex; align-items: center; }
.file-select { width: 1.25rem; height: 1.25rem; min-height: 0; margin: 0; padding: 0; cursor: pointer; }
.compact-button { min-height: 2.15rem; padding: .4rem .7rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.status { display: inline-block; padding: .15rem .4rem; border-radius: .3rem; font-size: .8rem; font-weight: 700; }
code { font-size: .78rem; overflow-wrap: anywhere; }
.audit-details { max-width: 28rem; margin: .4rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .75rem; }
small { color: #526674; }
[hidden] { display: none !important; }
.upload-card { max-width: 52rem; margin: 2vh auto; }
.drop-zone { min-height: 13rem; padding: 2rem; display: grid; place-content: center; text-align: center; border: 2px dashed #7192a8; border-radius: .65rem; background: #f5f9fb; cursor: pointer; }
.drop-zone.dragging { border-color: #08669f; background: #dceef9; }
.drop-zone input { margin-top: 1rem; border: 0; }
progress { width: 100%; height: 1rem; }
.help { color: #526674; font-size: .9rem; }
@media (max-width: 800px) { .grid { grid-template-columns: 1fr; } .site-header { align-items: flex-start; } .bulk-actions button { width: 100%; } }
