:root { font-family: system-ui, sans-serif; color: #182f35; background: #f4f6f3; font-size: 16px; line-height: 1.7; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
header { padding: 18px max(20px, calc((100% - 1040px) / 2)); background: #fff; border-bottom: 1px solid #d5dfda; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
header span { font-size: 14px; color: #53685e; }
.brand { color: #173f36; font-weight: 750; text-decoration: none; }
main { max-width: 800px; padding: 24px; margin: auto; min-height: 80vh; }
section { padding: 28px; border: 1px solid #d5dfda; border-radius: 18px; background: #fff; }
h1 { font-size: clamp(26px, 5vw, 38px); line-height: 1.5; letter-spacing: -.02em; margin: 14px 0 24px; }
h2 { font-size: 22px; }
p { margin: 12px 0 20px; overflow-wrap: anywhere; }
a, button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border-radius: 9px; font: inherit; font-size: 16px; color: #185441; cursor: pointer; }
button { border: 1px solid #bccdc5; background: #fff; }
a { text-underline-offset: 4px; }
button:hover, a:hover { background: #edf5ef; }
.primary { color: #fff; background: #175442; border: 1px solid #175442; font-weight: 650; text-decoration: none; }
.primary:hover { background: #0c3f30; }
button:disabled { cursor: wait; opacity: .65; }
.back { margin-bottom: 10px; }
.eyebrow { font-size: 14px; font-weight: 700; color: #386753; letter-spacing: .06em; }
.notice { padding: 16px; border: 1px solid #d7c58b; border-radius: 10px; background: #fff9e7; font-size: 14px; }
#error { color: #8c2525; }
[role=alert] { border: 1px solid #ba5555; color: #812020; padding: 16px; background: #fff0ee; border-radius: 10px; }
.steps { padding-left: 28px; }
.steps li { padding: 9px 0; }
fieldset { min-width: 0; border: 0; padding: 18px 0; margin: 0 0 12px; border-top: 1px solid #d5dfda; }
legend { font-size: 20px; font-weight: 700; padding-right: 16px; }
label { display: grid; gap: 6px; margin: 14px 0; }
input, select, textarea { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #859e92; border-radius: 8px; padding: 10px; background: #fff; color: #182f35; font: inherit; font-size: 16px; }
input[type=file] { font-size: 14px; }
.check { display: flex; gap: 12px; align-items: center; }
.check input { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; accent-color: #175442; }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hint { font-size: 14px; color: #475f55; }
.trap { display: none; }
:focus-visible { outline: 3px solid #bd671f; outline-offset: 3px; }
#application-list article { border-top: 1px solid #d5dfda; padding: 18px 0; }
dt { font-size: 14px; font-weight: 650; color: #53685e; }
dd { margin: 0 0 18px; overflow-wrap: anywhere; white-space: pre-wrap; }
#status-label { display: inline-block; padding: 6px 18px; background: #e3f0e6; border-radius: 24px; font-weight: 700; }
#admission-qr { display: block; width: 256px; height: 256px; max-width: 100%; margin: 16px 0; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
footer { text-align: center; padding: 24px; font-size: 14px; color: #53685e; }
@media (max-width: 560px) { main { padding: 16px; } section { padding: 20px 16px; } header { padding: 12px 16px; gap: 4px; } .brand { padding-left: 0; } .pair { grid-template-columns: 1fr; gap: 0; } .primary { width: 100%; } }
.legal-page-links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 16px;margin:8px 0}
.legal-page-links a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:14px}
