:root {
  color-scheme: light;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #17202a;
  background: #f4f7f6;
}

body { margin: 0; }
.container { width: min(1080px, calc(100% - 2rem)); margin: 2rem auto; }
.page-header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.panel { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid #d9e2df; border-radius: .75rem; background: white; }
.date-fields, .metric-grid { display: flex; flex-wrap: wrap; gap: 1rem; }
.date-fields { margin-bottom: 1rem; }
.button-row, .inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.inline-form { margin-top: 1.25rem; }
.checkbox-label { display: flex; align-items: center; gap: .5rem; }
label { display: grid; gap: .35rem; }
fieldset { margin: 1.25rem 0; border: 1px solid #cbd7d3; border-radius: .5rem; }
input[type="date"] { padding: .5rem; }
button, .button { display: inline-block; padding: .65rem 1rem; border: 0; border-radius: .45rem; color: white; background: #176b55; cursor: pointer; text-decoration: none; }
button:disabled { cursor: not-allowed; opacity: .5; }
.link-button { padding: 0; color: #176b55; background: transparent; text-decoration: underline; }
.error { padding: .75rem 1rem; border-left: .3rem solid #b42318; color: #7a271a; background: #fef3f2; }
.success { padding: .75rem 1rem; border-left: .3rem solid #176b55; color: #145343; background: #edf5f2; }
.warning { padding: .75rem 1rem; border-left: .3rem solid #b7791f; color: #744210; background: #fffaf0; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .65rem; border: 1px solid #d9e2df; text-align: center; white-space: nowrap; }
thead { background: #edf5f2; }
code { padding: .1rem .3rem; border-radius: .25rem; background: #edf5f2; }
details { margin-top: 1rem; }
summary { cursor: pointer; color: #176b55; }
pre { overflow-x: auto; padding: 1rem; border-radius: .5rem; background: #17202a; color: #f8fafc; }
.result-value { margin: .5rem 0 1rem; font-size: 2rem; font-weight: 700; color: #176b55; }
.job-progress { margin: 1rem 0; padding: 1rem; border-radius: .5rem; background: #edf5f2; }
.job-progress p { margin: .25rem 0; }
progress { width: 100%; height: 1.25rem; accent-color: #176b55; }
.error-text { color: #b42318; white-space: normal; }
