:root { color: #18212b; background: #f3f6f8; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #075e9f; font-weight: 650; }
.site-header { align-items: center; background: #073b5c; color: white; display: flex; justify-content: space-between; min-height: 3.75rem; padding: .75rem 1rem; }
.site-header a { color: white; text-decoration: none; }
.site-header nav { display: flex; gap: 1rem; }
.brand { font-size: 1.15rem; font-weight: 800; }
.page { margin: 0 auto; max-width: 48rem; padding: 1rem; }
.page-title { margin: .5rem 0 1rem; }
.page-title h1 { margin: 0; font-size: 1.7rem; }
.page-title p { margin: .2rem 0; }
.eyebrow { color: #52606d; font-weight: 700; }
.period-nav { display: flex; gap: 1rem; justify-content: space-between; margin-top: .8rem; }
.panel, .total-card { background: white; border: 1px solid #d5dee5; border-radius: .65rem; box-shadow: 0 1px 2px rgb(0 0 0 / 5%); margin: 1rem 0; padding: 1rem; }
.panel h2 { font-size: 1.2rem; margin: 0 0 .65rem; }
.narrow { margin: 2rem auto; max-width: 34rem; }
.alert { border-left: .35rem solid #a33c20; }
.total-card { background: #e7f3f9; border-color: #8cc5dd; display: grid; gap: .2rem; }
.total-card strong { font-size: 1.8rem; }
.empty { color: #465563; }
.button { background: #075e9f; border-radius: .4rem; color: white; display: inline-block; padding: .65rem .9rem; text-decoration: none; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; min-width: 100%; }
th, td { border-bottom: 1px solid #dfe6eb; padding: .65rem .35rem; text-align: left; vertical-align: top; }
th { color: #3b4c5a; font-size: .9rem; }
.anomalies, .task-list, .timeline { margin: 0; padding-left: 1.25rem; }
.anomalies li, .task-list li, .timeline li { margin: .55rem 0; }
.task-list { list-style: none; padding-left: 0; }
.task-line { display: flex; gap: .75rem; justify-content: space-between; }
.bar { background: #dfeaf0; border-radius: 99rem; height: .6rem; margin-top: .35rem; overflow: hidden; }
.bar span { background: #1678b6; display: block; height: 100%; }
.timeline { border-left: 2px solid #8cc5dd; list-style: none; padding-left: 1rem; }
.timeline li { position: relative; }
.timeline li::before { background: #1678b6; border-radius: 50%; content: ""; height: .65rem; left: -1.38rem; position: absolute; top: .38rem; width: .65rem; }
.timeline p { margin: .15rem 0; }
.time-range { font-weight: 700; }
@media (min-width: 40rem) { .page { padding: 1.5rem; } .site-header { padding-left: calc((100% - 46rem) / 2); padding-right: calc((100% - 46rem) / 2); } }
