/* Embedded quote form (quote-form.js). Moved out of the <style> element quote-form.js used to inject: the strict CSP
   (style-src 'self' + hashes, no 'unsafe-inline') blocks an injected <style>, which left the form unstyled with its
   error box visible on Production / TEST (2026-10-29). A same-origin stylesheet is allowed by style-src 'self'. */
.inline-quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.inline-quote-field{margin-bottom:16px}
.inline-quote-field.span2{grid-column:1/-1}
.inline-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.inline-choice{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;background:rgba(10,12,16,.45);border:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-body);cursor:pointer}
.inline-choice input{width:auto;margin-top:3px;accent-color:var(--accent)}
.inline-choice:hover{border-color:rgba(255,107,74,.55)}
/* position/overflow: the visually hidden file input below is absolutely positioned; without a positioned, clipping parent
   WebKit lays its native control out past the card and the page scrolls 10-12px sideways on phones (Firefox / WebKit
   compatibility check 2026-10-21). Desktop layout is unchanged. */
.inline-upload{position:relative;overflow:hidden;border:1px dashed var(--border-subtle);padding:18px;background:rgba(10,12,16,.35);color:var(--text-secondary);font-size:var(--text-xs)}
.inline-upload input[type=file]{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.inline-upload-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--border-subtle);background:rgba(255,255,255,.06);color:var(--text-primary);font-size:var(--text-xs);font-weight:600;cursor:pointer}
.inline-upload-btn:hover{border-color:rgba(255,107,74,.55);color:var(--accent)}
.inline-file-status{margin-left:10px;color:var(--text-secondary)}
.inline-files{list-style:none;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}
.inline-files li{font-size:var(--text-xs);color:var(--text-secondary);border:1px solid var(--border-subtle);padding:7px 10px;background:rgba(10,12,16,.45)}
.inline-other{display:none;margin-top:10px}
.inline-other.show{display:block}
.inline-error{display:none;color:#ffb3a3;background:rgba(255,107,74,.1);border:1px solid rgba(255,107,74,.35);padding:10px 12px;margin-bottom:16px;font-size:var(--text-xs)}
.inline-error.show{display:block}
@media(max-width:720px){.inline-quote-grid,.inline-choice-grid{grid-template-columns:1fr}}
