/* WAB Forms — front-end form styles.
   All themeable values use CSS variables with sensible fallbacks.
   The client plugin overrides these via .wab-form { --wab-*: ... } baked into <head>. */
.wab-form-fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--wab-gap,14px);max-width:560px}
.wab-form-fields>*{grid-column:1/-1;min-width:0}
.wab-form-fields>.wab-w-75{grid-column:span 9}
.wab-form-fields>.wab-w-66{grid-column:span 8}
.wab-form-fields>.wab-w-50{grid-column:span 6}
.wab-form-fields>.wab-w-33{grid-column:span 4}
.wab-form-fields>.wab-w-25{grid-column:span 3}
@media (max-width:600px){.wab-form-fields>[class*="wab-w-"]{grid-column:1/-1}}
.wab-field{display:flex;flex-direction:column;gap:4px}
.wab-field[hidden]{display:none}
.wab-label{font-weight:600;font-size:14px;color:var(--wab-label-color,#111827)}
.wab-req{color:var(--wab-error-color,#d63638)}
.wab-help{font-size:12px;color:#6b7280}
.wab-input{
	width:100%;
	padding:var(--wab-field-pad-y,10px) 12px;
	color:var(--wab-field-text,#1f2937);
	background:var(--wab-field-bg,#fff);
	border:var(--wab-field-border-w,1px) solid var(--wab-field-border,#d1d5db);
	border-radius:var(--wab-field-radius,8px);
	font-size:var(--wab-field-font,15px);
	font-family:inherit;box-sizing:border-box
}
.wab-input:focus{
	outline:none;
	border-color:var(--wab-field-focus,#2563eb);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--wab-field-focus,#2563eb) 22%, transparent)
}
textarea.wab-input{min-height:110px;resize:vertical}
input.wab-file{padding:8px;font-size:14px;cursor:pointer}input.wab-file::-webkit-file-upload-button,input.wab-file::file-selector-button{margin-right:10px;padding:6px 12px;border:1px solid var(--wab-field-border,#d1d5db);border-radius:var(--wab-field-radius,8px);background:#f4f6fa;color:var(--wab-field-text,#1f2937);font-size:13px;cursor:pointer}
.wab-choices{display:flex;flex-direction:column;gap:6px}
.wab-choices--row{flex-direction:row;flex-wrap:wrap;column-gap:20px;row-gap:8px}
.wab-choices--grid{display:grid;gap:8px 20px}
.wab-choices--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.wab-choices--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wab-choices--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:600px){.wab-choices--grid{grid-template-columns:minmax(0,1fr)}}
.wab-name-row{display:flex;gap:12px;flex-wrap:wrap}
.wab-name-col{flex:1;min-width:140px;display:flex;flex-direction:column}
.wab-name-col .wab-label{margin-bottom:4px}
.wab-choice{display:flex;align-items:flex-start;gap:6px;font-size:14px;cursor:pointer}
.wab-consent{font-size:13px}
.wab-consent a{color:var(--wab-field-focus,#2563eb);text-decoration:underline}
.wab-heading{margin:8px 0 0;line-height:1.3}
.wab-heading--h3{font-size:var(--wab-h3,20px)}
.wab-heading--h4{font-size:var(--wab-h4,18px)}
.wab-heading--h5{font-size:var(--wab-h5,16px)}
.wab-heading--h6{font-size:var(--wab-h6,14px)}
.wab-paragraph{margin:0;color:#374151;font-size:14px}
.wab-divider{border:none;border-top:1px solid #e5e7eb;margin:8px 0}
.wab-rating{display:flex;gap:4px;font-size:26px;color:#d1d5db;cursor:pointer}
.wab-star:focus-visible{outline:2px solid var(--wab-field-focus,#2563eb);border-radius:4px}
.wab-star.is-on{color:#f59e0b}
.wab-field-invalid .wab-input{border-color:var(--wab-error-color,#d63638)}
.wab-field-invalid .wab-choices,.wab-field-invalid .wab-rating,.wab-field-invalid .wab-consent{outline:2px solid var(--wab-error-color,#d63638);outline-offset:3px;border-radius:4px}
.wab-error-text{font-size:13px;color:var(--wab-error-color,#d63638)}
.wab-error-text:empty{display:none}
.wab-form-submit{
	padding:var(--wab-btn-pad-y,12px) var(--wab-btn-pad-x,22px);
	width:var(--wab-btn-width,auto);
	background:var(--wab-btn-bg,#2563eb);
	color:var(--wab-btn-text,#fff);
	border:none;border-radius:var(--wab-btn-radius,8px);
	font-size:var(--wab-btn-font,15px);font-weight:600;cursor:pointer;justify-self:start
}
.wab-form-submit:hover{background:var(--wab-btn-hover,#1d4ed8)}
.wab-form-submit:disabled{opacity:.6;cursor:default}
.wab-form-submit.is-loading::after{content:'…'}
.wab-form-msg{font-size:14px}
.wab-form-msg.is-error{color:var(--wab-error-color,#d63638)}
.wab-form-success{padding:16px 18px;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:8px;color:#065f46;font-size:15px}
.wab-form-error{padding:16px 18px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;font-size:15px}
.wab-confirm-open,.wab-confirm-open body{overflow:hidden}
.wab-confirm-overlay{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(17,24,39,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:wab-fade .18s ease-out}
.wab-confirm-dialog{position:relative;box-sizing:border-box;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:#1f2937;border-radius:16px;padding:32px 28px 28px;box-shadow:0 24px 60px -12px rgba(0,0,0,.35);font-size:16px;line-height:1.55;text-align:center;outline:none;animation:wab-pop .2s ease-out}
.wab-confirm-text{margin:0 0 12px}
.wab-confirm-dialog.is-err .wab-confirm-text{color:var(--wab-error-color,#b91c1c)}
.wab-confirm-btn{margin-top:12px;min-width:160px}
.wab-confirm-dialog.is-ok .wab-confirm-btn,.wab-confirm-dialog.is-err .wab-confirm-btn{background:transparent;color:inherit;border:1px solid var(--wab-field-border,#d1d5db)}
.wab-confirm-icon{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:var(--wab-btn-text,#fff);background:var(--wab-btn-bg,#16a34a)}
.wab-confirm-close{position:absolute;top:8px;right:10px;width:36px;height:36px;padding:0;border:0;background:transparent;color:#6b7280;font-size:26px;line-height:1;cursor:pointer;border-radius:8px}
.wab-confirm-close:hover{background:#f3f4f6;color:#111827}
@keyframes wab-fade{from{opacity:0}}
@keyframes wab-pop{from{opacity:0;transform:translateY(8px) scale(.98)}}
@media (prefers-reduced-motion:reduce){.wab-confirm-overlay,.wab-confirm-dialog{animation:none}}
.wab-form-loading{color:#6b7280;font-size:14px;padding:8px 0}
.wab-form-turnstile{margin:4px 0}
