/* Modal styles */
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);z-index:2100;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border-radius:32px;padding:48px;max-width:560px;width:90%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 32px 64px rgba(0,0,0,.15);animation:modalIn .3s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-close{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:var(--dim);transition:all .2s}
.modal-close:hover{background:var(--border);color:var(--text)}
.modal h3{font-family:'Space Grotesk';font-size:24px;font-weight:700;letter-spacing:-.5px;margin-bottom:8px}
.modal p.modal-desc{font-size:14px;color:var(--dim);line-height:1.6;margin-bottom:28px}
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:12px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.form-group input:not([type="checkbox"]),.form-group select,.form-group textarea{width:100%;padding:14px 18px;border:1px solid var(--border);border-radius:14px;font-family:'Sora';font-size:14px;color:var(--text);background:var(--surface);outline:none;transition:border .3s}
.form-group input:not([type="checkbox"]):focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold)}
.form-group textarea{resize:vertical;min-height:100px}
.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.form-msg{margin-top:16px;font-size:13px;font-weight:600;min-height:20px;text-align:center}
.form-msg.success{color:var(--green)}.form-msg.error{color:#e84393}
.form-group input:not([type="checkbox"]).valid,.form-group select.valid,.form-group textarea.valid{border-color:var(--green)}
.form-group input:not([type="checkbox"]).invalid,.form-group select.invalid,.form-group textarea.invalid{border-color:#e84393}
.field-error{font-size:12px;color:#e84393;margin-top:4px;min-height:0;line-height:1.3}
.gdpr-consent{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--dim);cursor:pointer}
.gdpr-consent input[type="checkbox"]{width:14px;height:14px;flex-shrink:0;accent-color:var(--gold)}
.gdpr-consent a{color:var(--gold);text-decoration:underline}
.gdpr-modal{margin-bottom:20px}
.gdpr-consent-modal{display:flex!important;align-items:flex-start;gap:8px;font-size:12px;color:var(--dim);cursor:pointer;line-height:1.5;text-transform:none;letter-spacing:0;font-weight:400;margin-bottom:0}
.gdpr-consent-modal input[type="checkbox"]{width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--gold);padding:0}
.gdpr-consent-modal a{color:var(--gold);text-decoration:underline}
.btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btnSpin .6s linear infinite;margin-right:8px;vertical-align:middle}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* Loading skeleton */
.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:16px;min-height:200px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}