:root{
  font-family:'Montserrat',sans-serif;
  color:#22404d;
  background:#f7f9f8;
  font-synthesis:none;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.67}
[hidden]{display:none!important}
.shell{min-height:100vh;display:flex;flex-direction:column}
.site-header,.site-footer{width:min(1050px,calc(100% - 64px));margin-inline:auto;display:flex;justify-content:space-between;align-items:center}
.site-header{height:94px;flex-shrink:0;border-bottom:1px solid #e3ecec}
.brand{display:inline-flex;align-items:center}
.brand-logo{width:115px;height:63px;object-fit:contain;object-position:left center}
.site-header-label{font-size:10px;letter-spacing:.17em;font-weight:800;color:#28708b;text-align:right}
.main{width:min(940px,calc(100% - 64px));margin:0 auto;flex:1;padding:45px 0 64px}
.page-intro{margin-bottom:30px}
.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:800;color:#008b9c;margin:0 0 14px}
h1{font-size:clamp(30px,4.15vw,47px);font-weight:800;letter-spacing:-.055em;line-height:1.14;margin:0 0 13px}
.subtitle{font-size:16px;font-weight:700;color:#28708b;line-height:1.6;margin:0}
.intro-note{font-size:13px;font-weight:500;color:#627d87;line-height:1.8;margin:12px 0 0}
.form-panel{background:#fff;border:1px solid #dbe8e9;border-radius:18px;box-shadow:0 14px 44px rgba(34,64,77,.045);padding:34px 38px 32px}
.form-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:23px;margin-bottom:26px;border-bottom:1px solid #e8efef}
.form-heading h2{font-size:19px;font-weight:800;letter-spacing:-.035em;margin:0}
.required-note{color:#82979d;font-size:11px;font-weight:600}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 24px}
.field{min-width:0}
.field-full{grid-column:1/-1}
.field label{display:block;color:#285f74;font-size:12px;font-weight:700;margin-bottom:10px;line-height:1.5}
.field input,.field select{display:block;width:100%;min-height:54px;border:1px solid #d9e4e7;background:#fdfefe;border-radius:9px;padding:13px 15px;color:#22404d;font-size:13px;font-weight:600;outline:none;transition:border-color .17s,box-shadow .17s}
.field input::placeholder{color:#94a7ae;font-weight:500}
.field select{cursor:pointer;padding-right:12px}
.field input:focus,.field select:focus{border-color:#00a0af;box-shadow:0 0 0 3px rgba(0,160,175,.11)}
.field [aria-invalid="true"]{border-color:#bf4853}
.field-error{color:#b4414b;font-size:11px;font-weight:600;margin:6px 0 0;line-height:1.4}
.field-error:empty{display:none}
.attendance-note{display:flex;align-items:flex-start;gap:10px;background:#f2f8f8;border-radius:10px;border:1px solid #e0edef;color:#58747e;font-size:11.5px;font-weight:500;line-height:1.85;padding:13px 16px;margin:25px 0 0}
.note-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#dceef0;color:#28708b;font-weight:800;font-size:12px;font-family:Georgia,serif;display:inline-grid;place-items:center;line-height:1;margin-top:1px}
.form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:28px}
.submit-error{font-size:12px;color:#b4414b;line-height:1.7;margin:0;flex:1;font-weight:600}
.button{border:0;border-radius:8px;padding:16px 21px;min-height:53px;font-weight:800;font-size:12px;display:inline-flex;gap:22px;align-items:center;justify-content:space-between;transition:background .17s,transform .17s;white-space:nowrap}
.button:hover:not(:disabled){transform:translateY(-1px)}
.button-primary{background:#285f74;color:#fff}
.button-primary:hover:not(:disabled){background:#008b9c}
.button span{font-size:19px;font-weight:400;line-height:1}
.bot-field{position:absolute;left:-99999px;top:-99999px}
.site-footer{min-height:70px;border-top:1px solid #e3ecec;color:#8299a1;font-size:10px;font-weight:700;letter-spacing:.1em;gap:20px}
.footer-star{color:#00a0af;font-size:17px;margin-left:8px}
.success-panel{text-align:center;padding:20px 8px 15px}
.success-icon{height:58px;width:58px;border-radius:50%;background:#e0f4ed;color:#008b9c;display:grid;place-items:center;font-size:31px;font-weight:700;margin:0 auto 20px}
.success-panel h2{font-size:clamp(26px,4vw,36px);font-weight:800;letter-spacing:-.045em;margin:0 0 12px}
.success-panel>p{color:#5e7a84;font-size:13px;line-height:1.8;margin:0 auto;max-width:550px}
.success-summary{display:flex;flex-direction:column;gap:8px;border:1px solid #e0eaeb;border-radius:12px;background:#f8fbfb;padding:19px 24px;margin:25px auto;max-width:450px;overflow-wrap:anywhere}
.success-summary strong{font-size:14px}
.success-summary span{font-size:13px;color:#28708b;font-weight:600}
.success-panel .success-note{font-size:11px;color:#718a94}
@media(max-width:700px){
  .site-header,.site-footer,.main{width:calc(100% - 36px)}
  .site-header{height:78px}
  .brand-logo{width:96px;height:53px}
  .site-header-label{font-size:8px;max-width:138px;letter-spacing:.08em;line-height:1.5}
  .main{padding:34px 0 48px}
  .page-intro{margin-bottom:23px}
  h1{font-size:clamp(29px,7vw,40px)}
  .subtitle{font-size:13px}
  .intro-note{font-size:12px}
  .form-panel{border-radius:14px;padding:24px 19px}
  .form-heading{align-items:start;flex-direction:column;gap:7px;padding-bottom:19px;margin-bottom:22px}
  .form-heading h2{font-size:17px}
  .form-grid{grid-template-columns:minmax(0,1fr);gap:19px}
  .field-full{grid-column:auto}
  .field input,.field select{min-height:53px;font-size:14px}
  .attendance-note{font-size:11px;margin-top:23px}
  .form-footer{align-items:stretch;flex-direction:column;margin-top:23px}
  .submit-error:empty{display:none}
  .button{width:100%}
  .site-footer{font-size:8px;letter-spacing:.03em;min-height:68px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
