/* ============================================================
   modal.css — оверлеи, модальные формы, поля, кнопки форм
   ============================================================ */
.overlay{
  position:fixed; inset:0; z-index:70; background:var(--backdrop-modal); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:18px;
  opacity:0; pointer-events:none; transition:opacity .22s ease;
  touch-action:none; /* v9mvp-UI-ZOOM-MODAL-FIX: запрет pinch-zoom на оверлее */
}
.overlay.show{ opacity:1; pointer-events:auto; }

.modal{
  width:min(430px, 100%); max-height:92vh; overflow:auto;
  background:var(--surface-modal); border:1px solid var(--line-modal); border-radius:16px;
  padding:20px 18px 18px; box-shadow:0 24px 60px var(--shadow-modal);
  transform:translateY(14px) scale(.97); transition:transform .24s cubic-bezier(.2,.9,.3,1.2);
  touch-action:pan-y; /* v9mvp-UI-ZOOM-MODAL-FIX: скролл внутри модалки работает, pinch-zoom запрещён */
}
.overlay.show .modal{ transform:none; }

.modal h2{ font-family:var(--disp); color:var(--accent-light); font-size:18px; font-weight:700; letter-spacing:.02em; margin-bottom:4px; }
.modal-time{ font-size:13px; color:var(--text-muted); margin:2px 0 4px; }
.modal-time b{ color:var(--accent-light); }

.field{ margin-top:12px; }
.field label{ display:block; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--text-label); margin-bottom:6px; font-weight:600; }
.field input, .field select{
  width:100%; background:var(--surface-inset); border:1px solid var(--line-control); border-radius:10px;
  color:var(--text-primary); padding:10px 12px; font-size:14px;
  transition:border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-focus); }

.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.field-row .field{ margin-top:0; }

.form-error{ display:none; margin-top:12px; font-size:13px; font-weight:600; color:var(--danger-text-strong);
  background:var(--danger-bg); border:1px solid var(--danger-line); border-radius:10px; padding:9px 12px; }
.form-error.show{ display:block; animation:shake .3s ease; }
@keyframes shake{ 0%,100%{ transform:none;} 25%{ transform:translateX(-4px);} 75%{ transform:translateX(4px);} }

.modal-actions{ display:flex; gap:10px; margin-top:16px; }
.btn{ flex:1; padding:12px 14px; border-radius:12px; font-weight:700; font-size:14px; transition:filter .15s, transform .12s, background .15s; }
.btn:active{ transform:scale(.97); }
.btn-gray{ background:var(--surface-gray); color:var(--text-gray-btn); }
.btn-gray:hover{ background:var(--surface-mini-hover); }
.btn-orange{ background:linear-gradient(135deg,var(--accent-grad-a),var(--accent) 45%,var(--accent-deep)); color:var(--on-accent); box-shadow:0 8px 20px var(--accent-shadow); }
.btn-orange:hover{ filter:brightness(1.08); }
.btn-orange:disabled{ filter:grayscale(.4) brightness(.8); cursor:wait; }
.btn-danger{ flex:none; width:100%; margin-top:10px; background:var(--danger-bg-2); border:1px solid var(--danger-line-2); color:var(--danger-text); }
.btn-danger:hover{ background:var(--danger-bg-hover-2); }
