:root{color-scheme:light;--bg:#edf3f6;--paper:#fff;--ink:#183348;--muted:#526778;--line:#d6e1e8;--accent:#146b69;--error:#b03339}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
.page{max-width:760px;margin:56px auto;padding:56px 64px 40px;background:var(--paper);border-top:4px solid var(--accent);border-radius:4px}
h1{font-size:clamp(36px,6vw,52px);line-height:1.1;letter-spacing:-1.6px;font-weight:650;margin:0 0 24px}
p{margin:0 0 16px}.notice p{color:var(--muted)}
.contacts{display:flex;flex-direction:column;gap:16px;margin:28px 0 36px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.contacts h2{margin:0 0 4px}.contacts .contact-link{display:flex;align-items:center;gap:14px;align-self:flex-start;max-width:100%;font-size:19px;font-weight:600;line-height:1.5;text-decoration:none}.contact-link svg{width:22px;height:22px;flex-shrink:0}.contact-link span{overflow-wrap:anywhere}.contact-link:hover span{text-decoration:underline;text-underline-offset:4px}
a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration:none}
h2{font-size:28px;line-height:1.25;letter-spacing:-.5px;margin:0 0 10px;font-weight:650}.form-intro{color:var(--muted);margin-bottom:28px}
.field{margin-bottom:20px}label{display:block;font-weight:600;font-size:15px;margin-bottom:7px}.required{color:var(--accent)}.optional{font-size:13px;font-weight:400;color:var(--muted);margin-left:6px}
input:not([type=checkbox]),textarea{display:block;width:100%;border:1px solid #b9cbd6;border-radius:5px;padding:13px 15px;font:inherit;line-height:1.5;color:var(--ink);background:#fff;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#748592;opacity:1}textarea{resize:none;min-height:145px}
:focus-visible{outline:3px solid #8bc6c5;outline-offset:3px}input:not([type=checkbox]):focus,textarea:focus{border-color:var(--accent)}[aria-invalid=true]{border-color:var(--error)!important}
.error{font-size:13px;color:var(--error);line-height:1.5;margin:5px 0 0}.error:empty{display:none}.consent-field{margin:24px 0}.consent{display:flex;align-items:flex-start;gap:11px;font-size:13px;font-weight:400;line-height:1.6;color:var(--muted);cursor:pointer}.consent input{appearance:auto;accent-color:var(--accent);width:18px;height:18px;flex-shrink:0;margin:2px 0 0}
button{width:100%;padding:15px 20px;border:0;border-radius:5px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:background .15s}button:hover{background:#105653}button:disabled{opacity:.65;cursor:wait}
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
body.modal-open{overflow:hidden}
dialog{width:calc(100% - 40px);max-width:420px;max-height:calc(100dvh - 40px);padding:36px 28px;border:0;border-radius:10px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 16px 70px #18334824;overflow:auto}
dialog::backdrop{background:rgba(24,51,72,.62);backdrop-filter:blur(3px)}
dialog h2{font-size:24px;letter-spacing:-.4px;margin:0 0 12px}dialog p{font-size:15px;color:var(--muted);margin:0;line-height:1.6}.result-dialog button{margin-top:28px}
.spinner{display:block;width:42px;height:42px;margin:0 auto 24px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
.result-symbol{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 20px;border-radius:50%;background:#e7f3f0;color:var(--accent);font-size:27px;font-weight:600}.result-dialog[data-state=error] .result-symbol{background:#fceced;color:var(--error)}
@keyframes spin{to{transform:rotate(360deg)}}
footer{margin-top:36px;padding-top:28px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}footer p:last-child{margin-bottom:0}footer strong{color:var(--ink);font-weight:600}
@media(max-width:600px){.page{margin:0 auto;padding:32px 22px 28px;border-radius:0;min-height:100vh}h1{letter-spacing:-1px}h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.spinner{animation:none}}
