/* Стили окна заявки, полей, сообщений проверки и результата отправки. */
.request-dialog { width:min(560px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto; padding:24px; border:1px solid #dce1ec; border-radius:18px; color:#181d2c; background:#fff; box-shadow:0 24px 80px #11182740; overflow:auto; overscroll-behavior:contain; }
.request-dialog::backdrop { background:#11182780; }
html:has(.request-dialog[open]) { overflow:hidden; }
.request-dialog-heading { position:sticky; top:-24px; z-index:1; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; padding-block:8px; }
.request-dialog-heading h2 { margin:0; font-size:26px; letter-spacing:-.04em; }
.request-dialog-heading button { flex:none; width:44px; height:44px; border:1px solid #dce1ec; border-radius:50%; background:#fff; font-size:26px; cursor:pointer; }
.request-page { width:min(560px,calc(100% - 32px)); margin:48px auto; }
.request-page h1 { font-size:clamp(28px,5vw,42px); letter-spacing:-.04em; }
.request-form { display:grid; gap:16px; margin-top:16px; }
.request-intro { margin:0; color:#536079; line-height:1.5; }
.request-channels { min-width:0; border:0; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(80px,1fr)); gap:8px; }
.request-channels legend { margin-bottom:10px; font-weight:600; }
.request-channels label { position:relative; cursor:pointer; }
.request-channels input { position:absolute; opacity:0; width:1px; height:1px; }
.request-channels span { display:flex; align-items:center; justify-content:center; min-height:46px; border:1px solid #dce1ec; border-radius:8px; font-size:14px; }
.request-channels input:checked + span { border-color:#2448ff; background:#eef1ff; color:#2448ff; box-shadow:inset 0 0 0 1px #2448ff; }
.request-channels input:focus-visible + span { outline:3px solid #8b9cff; outline-offset:2px; }
.request-field { display:grid; gap:7px; font-size:14px; font-weight:600; min-width:0; }
.request-field input,.request-field textarea { box-sizing:border-box; width:100%; min-width:0; padding:12px; border:1px solid #cbd2df; border-radius:8px; font-family:inherit; font-size:16px; font-weight:400; line-height:1.4; background:#fff; color:#181d2c; }
.request-field textarea { resize:vertical; min-height:82px; font-family:inherit; }
.request-field small,.request-optional { font-weight:400; color:#536079; line-height:1.4; }
.request-field [aria-invalid=true] { border-color:#b3261e; }
.request-consent { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.5; cursor:pointer; }
.request-consent input { flex:none; width:18px; height:18px; margin:1px 0 0; accent-color:#2448ff; }
.request-data-note { margin:0; color:#62708a; font-size:11px; line-height:1.5; }
.request-context { font-size:13px; color:#536079; }
.request-context summary { cursor:pointer; }
.request-context pre { white-space:pre-wrap; overflow-wrap:anywhere; max-height:180px; overflow:auto; font:inherit; padding:12px; background:#f5f7fb; border-radius:8px; }
.request-error { color:#a61d18; background:#fff1ef; padding:12px; border-radius:8px; margin:0; font-size:14px; }
.request-status { margin:0; font-size:14px; color:#536079; }
.request-submit { width:100%; min-height:48px; border-radius:8px; }
.request-submit:disabled { opacity:.65; cursor:wait; }
.request-form [hidden] { display:none!important; }
.request-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.request-success { padding:20px 0; line-height:1.6; }
@media(max-width:400px) { .request-dialog { padding:18px; } .request-dialog-heading { top:-18px; } .request-channels { grid-template-columns:repeat(2,minmax(0,1fr)); } .request-channels label:last-child { grid-column:1 / -1; } .request-dialog-heading h2 { font-size:24px; } }
