:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f5f6f8; color: #18202a; }
* { box-sizing: border-box; }
body { margin: 0; }
main { width: min(100% - 2rem, 62rem); margin: 0 auto; padding: 2rem 0 4rem; }
main.narrow { width: min(100% - 2rem, 30rem); }
h1 { margin: .75rem 0 1.5rem; font-size: clamp(1.8rem, 6vw, 2.6rem); }
h2 { margin-top: 0; }
h3 { margin: 0; }
a { color: #174f83; }
nav { margin-bottom: 1rem; }
.card { background: white; border: 1px solid #d8dde3; border-radius: .75rem; padding: 1.25rem; margin-bottom: 1rem; box-shadow: 0 1px 2px rgb(0 0 0 / 5%); }
.stack { display: grid; gap: 1rem; }
.form-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid button { align-self: end; }
label { display: grid; gap: .4rem; font-weight: 600; }
input, select, button, .button-link { min-height: 2.9rem; border-radius: .45rem; font: inherit; }
input, select { width: 100%; border: 1px solid #aeb7c2; padding: .65rem .75rem; background: white; }
input:focus, select:focus { outline: 3px solid #b9d8f4; border-color: #286a9f; }
button, .button-link { border: 0; padding: .7rem 1rem; color: white; background: #174f83; font-weight: 700; cursor: pointer; text-align: center; text-decoration: none; }
button.secondary, .button-link.secondary { background: #4b5968; }
button.quiet { color: #174f83; background: transparent; border: 1px solid #9ba8b5; }
.message { padding: .8rem 1rem; border-radius: .45rem; background: #e6f4ea; }
.message.error { background: #fde8e8; color: #8a1c1c; }
.hint { color: #596572; font-size: .9rem; margin: 0; }
.user-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.user-card { display: grid; gap: 1rem; }
.badge { display: inline-block; padding: .15rem .45rem; border-radius: 999px; background: #e8edf2; font-size: .78rem; font-weight: 800; }
.badge.warning { background: #fff1c2; color: #634b00; }
.page-heading, .session-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.page-heading { margin-bottom: 1rem; }
.page-heading h1 { margin-bottom: .35rem; }
.session-window { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.session-window div { background: #f5f6f8; border-radius: .45rem; padding: .75rem; min-width: 0; }
.session-window dt { color: #596572; font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.session-window dd { margin: .3rem 0 0; overflow-wrap: anywhere; }
.session-group details { margin-top: 1rem; }
.session-group summary { cursor: pointer; font-weight: 700; }
.session-action { margin-top: 1rem; }
.tax-row { border: 1px solid #d8dde3; border-radius: .55rem; padding: 1rem; }
.tax-row legend { font-weight: 800; padding: 0 .4rem; }
.totals-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; }
.totals-grid div { border-bottom: 1px solid #d8dde3; padding: .5rem 0; }
.totals-grid dt { color: #596572; font-size: .85rem; font-weight: 700; }
.totals-grid dd { font-size: 1.15rem; font-weight: 800; margin: .2rem 0 0; }
.totals-grid .total-primary { background: #eaf3fb; border-radius: .45rem; padding: .75rem; }
.table-wrap { overflow-x: auto; }
.candidate-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.candidate { border: 1px solid #d8dde3; border-radius: .55rem; display: flex; flex-direction: column; gap: .45rem; padding: .8rem; }
.brand-logo { display: block; height: auto; margin: .75rem 0 1rem; max-width: min(20rem, 70vw); width: 100%; }
.product-thumb { display: block; height: 3.5rem; object-fit: contain; width: 4.5rem; }
table { width: 100%; border-collapse: collapse; }
th, td { border-bottom: 1px solid #d8dde3; padding: .7rem; text-align: left; }
th { color: #596572; font-size: .82rem; text-transform: uppercase; }
@media (max-width: 36rem) { .form-grid { grid-template-columns: 1fr; } main { padding-top: 1rem; } }
@media (max-width: 36rem) { .page-heading { align-items: stretch; flex-direction: column; } .session-window { grid-template-columns: 1fr; } }
