html.gps-quote-open { overflow: hidden; }
.gps-quote { box-sizing: border-box; width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 32px; overflow-y: auto; overscroll-behavior: contain; border: 0; border-radius: 20px; background: #fff; color: var(--gps-color-heading); box-shadow: 0 24px 80px #0003; }
.gps-quote::backdrop { background: #18181899; }
.gps-quote h2 { margin: 0 36px 6px 0; font-size: 28px; line-height: 1.2; }
.gps-quote #gps-quote-intro { margin: 0 0 20px; color: var(--gps-color-muted); font-size: 14px; }
.gps-quote .gps-quote-close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: var(--gps-color-surface); color: var(--gps-color-heading); font-size: 26px; line-height: 1; }
.gps-quote-product { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; padding: 12px; border: 1px solid var(--gps-color-border); border-radius: 12px; background: var(--gps-color-surface); }
.gps-quote-product img { flex: 0 0 64px; width: 64px; height: 64px; object-fit: contain; border-radius: 8px; }
.gps-quote-product span { display: block; color: var(--gps-color-muted); font-size: 12px; }
.gps-quote-product strong { display: block; font-size: 14px; line-height: 1.45; }
.gps-quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gps-quote label { display: block; min-width: 0; font-size: 13px; font-weight: 600; }
.gps-quote label > span { color: var(--gps-color-accent-hover); }
.gps-quote input:not([type="hidden"]), .gps-quote textarea { display: block; box-sizing: border-box; width: 100%; min-height: 46px; margin: 6px 0 0; padding: 10px 12px; border: 1px solid var(--gps-color-border); border-radius: 8px; background: #fff; color: var(--gps-color-heading); font: inherit; font-weight: 400; }
.gps-quote textarea { resize: vertical; }
.gps-quote input:focus, .gps-quote textarea:focus { border: 1px solid var(--gps-color-accent); outline: none !important; box-shadow: none !important; }
.gps-quote-requirement { margin-top: 16px; }
.gps-quote .gps-quote-submit { width: 100%; margin-top: 20px; }
.gps-quote-footer { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--gps-color-border); text-align: center; font-size: 13px; }
.gps-quote-footer p { margin: 0 0 6px; color: var(--gps-color-muted); }
.gps-quote-footer a { color: var(--gps-color-accent-hover); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.gps-quote-status { padding: 16px; border-radius: 10px; background: #f0f7ef; font-size: 14px; }
.gps-quote-status.is-error { background: #fff3e6; color: #8a3213; }
@media (max-width: 600px) {
	.gps-quote { width: 100%; max-height: 92dvh; margin: auto 0 0; padding: 24px 20px max(24px, env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; }
	.gps-quote-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.gps-quote input:not([type="hidden"]), .gps-quote textarea { font-size: 16px; }
}
