:root { --uv-border: rgba(15,23,42,0.14); --uv-text:#0b1b3a; }
body.uvs-lock { overflow: hidden; }
.uvs-modal { position: fixed; inset: 0; display: none; z-index: 2147483000; }
.uvs-modal.open { display: grid; place-items: center; }
.uvs-modal-backdrop { position: absolute; inset:0; background: rgba(17,24,39,0.55); backdrop-filter: blur(2px); }
.uvs-modal-dialog { position: relative; width: min(640px, calc(100% - 32px)); max-height: min(86vh, 720px); overflow: auto; background: #fff; border: 1px solid var(--uv-border); border-radius: 18px; box-shadow: 0 20px 60px rgba(0,0,0,0.20); padding: 18px 18px 16px 18px; animation: uvs-fadein .2s ease-out; }
.uvs-close { position: absolute; top:10px; right:10px; border: 1px solid var(--uv-border); background:#fff; border-radius: 999px; width:32px; height:32px; cursor:pointer; }
.uvs-title{ margin: 0 0 12px; color: var(--uv-text); }
.uv-row{ margin-bottom:12px; }
.uv-row label{ display:block; font-size:14px; margin-bottom:6px; color:#111827; }
.uv-row input[type="text"], .uv-row textarea, .uv-row select{ width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--uv-border); background:#fff; }
.uv-row textarea{ min-height:120px; resize:vertical; }
.uv-actions{ display:flex; align-items:center; gap:8px; justify-content:flex-end; margin-top:8px; }
.uv-btn-pay{ padding:10px 18px; border-radius:999px; border:1px solid var(--uv-border); background:#fff; cursor:pointer; font-weight:700; }
.uv-btn-secondary{ padding:10px 18px; border-radius:999px; border:1px solid var(--uv-border); background:#fff; cursor:pointer; font-weight:600; opacity:.85; }
.uv-field-error{ font-size:12px; color:#7c2d12; margin-top:6px; min-height:1em; }
.uvs-alert{ display:none; border-radius:14px; padding:10px 12px; margin:8px 0 12px; font-size:14px; }
.uvs-alert.show{ display:block; }
.uvs-alert-info{ background: radial-gradient(600px 300px at 12% 0%, rgba(255,208,132,0.20), transparent 60%), radial-gradient(400px 240px at 100% 40%, rgba(255,176,106,0.18), transparent 60%), linear-gradient(180deg, #fff, #fff); border: 1px solid var(--uv-border); color: var(--uv-text); }
.uvs-alert-error{ background: radial-gradient(600px 300px at 10% 0%, rgba(255,140,100,0.20), transparent 65%), radial-gradient(400px 240px at 95% 50%, rgba(255,100,80,0.14), transparent 65%), linear-gradient(180deg, #fff, #fff); border: 1px solid rgba(239,68,68,0.25); color:#7c2d12; }
.uv-hp{ position:absolute; left:-9999px; top:-9999px; }
@keyframes uvs-fadein { from { transform: translateY(6px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }