/* Modal for user card view */
.ig-modal{ position:fixed; inset:0; display:none; z-index:1400; }
.ig-modal.open{ display:block; padding:0; box-sizing:border-box; }
.ig-modal .ig-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.ig-modal .ig-modal-dialog{ position:absolute; left:50%; top:50%; z-index:1; width:640px; max-height:100vh; background:#fff; border-radius:14px; box-shadow:0 18px 44px rgba(0,0,0,.24); display:flex; flex-direction:column; overflow:hidden; transform:translate(-50%,-50%); transform-origin:center center; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.ig-modal-header{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 14px; border-bottom:1px solid #e5e7eb; }
.ig-modal-close{ border:1px solid #e5e7eb; background:#fff; border-radius:10px; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.ig-square-btn{ border:1px solid #e5e7eb; background:#fff; border-radius:10px; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; line-height:1; }
.ig-square-btn:disabled{ opacity:.5; cursor:default; }
.ig-modal-body{ padding:12px; overflow:auto; }
.um-search{ display:grid; grid-template-columns: 1fr; gap:10px; max-width:var(--um-input-width); margin:0 auto 8px; }
.um-field{ display:flex; flex-direction:column; gap:6px; }
.um-field.equipment{ width: 360px; }
.um-input-row{ display:flex; align-items:center; gap:8px; }
.um-input-row input{ flex:1 1 auto; min-width:0; }
.um-field{ position:relative; }
.um-field input{ border:1px solid #e5e7eb; border-radius:10px; padding:8px 10px; font-size:14px; width:100%; box-sizing:border-box; }
.um-field textarea{ border:1px solid #e5e7eb; border-radius:10px; padding:8px 10px; font-size:14px; width:100%; box-sizing:border-box; min-height:72px; resize:vertical; }
/* Обязательные поля: выделение ошибок */
.um-field.invalid label{ color:#b91c1c; }
.um-field.invalid input,
.um-field.invalid textarea{ border-color:#ef4444; background:#fff5f5; }
.um-field.invalid input:focus,
.um-field.invalid textarea:focus{ outline:none; box-shadow:0 0 0 3px rgba(239,68,68,.15); }
.um-suggest{ position:absolute; left:0; right:0; top:100%; margin-top:4px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; box-shadow:0 12px 24px rgba(0,0,0,.12); max-height:240px; overflow:auto; display:none; z-index:5; }
.um-suggest.open{ display:block; }
.um-suggest-item{ padding:8px 10px; cursor:pointer; }
.um-suggest-item:hover{ background:#f8fafc; }
.um-triple{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:8px; width:100%; }
.um-field.um-size{ width:360px; }
.um-model-desc, .um-tool-desc{ color:#374151; font-size:14px; }
.um-model-desc{ margin:8px 0 12px; white-space:normal; word-break:break-word; }
.um-tool-desc{ margin:8px 0; }
.um-previews{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; align-items:stretch; margin:8px 0 4px; }
.um-previews .box{ position: relative; }
.um-previews .box .um-ph{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; color:#6b7280; font-size:14px; text-align:center; padding:8px; }
.um-previews .box{ border:1px solid #e5e7eb; border-radius:12px; background:#fbfdff; min-height:240px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.um-previews .box img{ max-width:100%; max-height:100%; object-fit:contain; display:block; }
.um-results{ margin-top:12px; border-top:1px solid #e5e7eb; }
.um-row{ display:grid; grid-template-columns: 1fr auto auto auto; align-items:center; gap:10px; padding:10px 4px; border-bottom:1px solid #eef2f7; cursor:pointer; }
.um-row:hover{ background:#f8fafc; }
.um-row .eq{ color:#111827; font-weight:600; }
.um-row .size{ color:#6b7280; font-size:13px; }
.um-row .traj{ color:#6b7280; font-size:13px; }
.um-download{ border:1px solid #e5e7eb; background:#fff; border-radius:50%; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; color:#111; box-shadow:0 1px 0 rgba(0,0,0,.02); }

/* Keep modal layout stable under transform-scale; no responsive switch */

/* Доп. блок запроса: траектория и материал в одну строку */
#um-request-extra{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:8px; align-items:start; }
#um-request-extra .um-field{ width:auto; }
#um-request-extra .um-field.um-note{ grid-column: 1 / -1; }
