:root {
    color-scheme: light;
    font: 100%/1.5 "Inter", system-ui, sans-serif;
    color: #132943;
    background: #f1f6fa;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; }
a { color: #125e79; text-underline-offset: .2em; }
a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 3px solid #1486a7;
    outline-offset: 3px;
}
.masthead { background: #fff; border-bottom: 1px solid #d9e4ea; }
.nav-shell {
    max-width: 68rem;
    margin: auto;
    padding: 1rem clamp(1rem, 4vw, 2rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
}
.brand { color: #132943; font-weight: 760; text-decoration: none; }
nav { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .9rem; }
nav a { text-decoration: none; }
nav a:hover { text-decoration: underline; }
.nav-button {
    background: transparent;
    color: #125e79;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.page { max-width: 42rem; margin: clamp(1.5rem, 7vw, 5rem) auto; padding: 0 1rem; }
.card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dbe6ee;
    border-radius: 1rem;
    box-shadow: 0 12px 36px #233d5910;
}
.institution {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #eaf3f8;
    border-bottom: 1px solid #dae8f1;
    padding: 1.25rem clamp(1.25rem, 6vw, 2.5rem);
    font-weight: 660;
}
.institution img { flex: none; object-fit: contain; }
.institution p { margin: 0; }
.card-body { padding: clamp(1.25rem, 6vw, 2.5rem); }
h1, h2 { margin: 0 0 1rem; line-height: 1.18; }
h1 { font-size: clamp(1.55rem, 5vw, 2.25rem); letter-spacing: -.03em; }
h2 { font-size: 1.2rem; }
.fields { display: grid; gap: .65rem; }
.fields h2, .fields p { margin: 0; }
label { font-weight: 650; }
input, button { font: inherit; }
input:not([type="checkbox"]):not([type="hidden"]) {
    min-width: 0;
    width: 100%;
    padding: .72rem;
    color: inherit;
    background: #fff;
    border: 1px solid #8197aa;
    border-radius: .45rem;
}
button {
    justify-self: start;
    border: 0;
    border-radius: .45rem;
    background: #125e79;
    color: #fff;
    padding: .7rem 1.1rem;
    font-weight: 650;
    cursor: pointer;
}
button:hover { filter: brightness(.9); }
.muted { color: #465e73; }
.field-validation-valid, .validation-summary-valid { display: none; }
.field-validation-error, .validation-summary-errors { color: #a02534; }
.success { color: #116245; background: #edf8f2; border-radius: .45rem; padding: .7rem; }
hr { margin: 1.6rem 0; border: 0; border-top: 1px solid #dbe6ee; }
.checkbox { display: flex; gap: .6rem; align-items: center; font-weight: 500; }
.danger { background: #a02534; }
