.ggw-form-shell {
	--ggw-red: #e31b23;
	--ggw-red-hover: #b81218;
	--ggw-panel: #1a1a1a;
	--ggw-inset: #151515;
	--ggw-input: #262626;
	--ggw-text: #f5f5f5;
	--ggw-muted: #9a9a9a;
	--ggw-dim: #707070;
	--ggw-border: #343434;
	--ggw-green: #65c466;
	--ggw-amber: #ffb020;
	background: var(--ggw-panel);
	border: 1px solid var(--ggw-border);
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
	color: var(--ggw-text);
	font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: 24px auto;
	max-width: 820px;
	overflow: hidden;
}

.ggw-form-shell *,
.ggw-form-shell *::before,
.ggw-form-shell *::after {
	box-sizing: border-box;
}

.ggw-form-shell :where(h2, h3, p) {
	margin: 0;
}

.ggw-form-header {
	padding: 34px 38px 30px;
	text-align: center;
}

.ggw-form-eyebrow {
	color: var(--ggw-red);
	font-size: 0.67rem;
	font-weight: 800;
	letter-spacing: 1.6px;
	margin-bottom: 9px !important;
	text-transform: uppercase;
}

.ggw-form-header h2,
.ggw-form-notice h2 {
	color: var(--ggw-text);
	font-size: 1.35rem;
	line-height: 1.3;
}

.ggw-form-header > p:last-child,
.ggw-form-notice p {
	color: var(--ggw-muted);
	font-size: 0.85rem;
	line-height: 1.6;
	margin-top: 10px;
}

.ggw-vehicle-summary {
	background: var(--ggw-inset);
	border-bottom: 1px solid var(--ggw-border);
	border-top: 1px solid var(--ggw-border);
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ggw-vehicle-summary > div {
	border-right: 1px solid var(--ggw-border);
	min-width: 0;
	padding: 18px 20px;
}

.ggw-vehicle-summary > div:last-child {
	border-right: 0;
}

.ggw-vehicle-summary span {
	color: var(--ggw-dim);
	display: block;
	font-size: 0.61rem;
	font-weight: 700;
	letter-spacing: 1px;
	margin-bottom: 5px;
	text-transform: uppercase;
}

.ggw-vehicle-summary strong {
	display: block;
	font-size: 0.8rem;
	overflow-wrap: anywhere;
}

.ggw-vehicle-summary strong.is-success { color: var(--ggw-green); }
.ggw-vehicle-summary strong.is-pending { color: var(--ggw-amber); }
.ggw-vehicle-summary strong.is-danger { color: #ff8a8f; }

.ggw-vehicle-summary .ggw-vehicle-summary__claim-count {
	color: var(--ggw-muted);
	display: block;
	font-size: 0.66rem;
	font-weight: 600;
	line-height: 1.35;
	margin-top: 6px;
}

.ggw-form-body {
	padding: 30px 38px 38px;
}

.ggw-correction-request {
	background: rgba(255, 176, 32, 0.09);
	border-bottom: 1px solid rgba(255, 176, 32, 0.35);
	border-top: 1px solid rgba(255, 176, 32, 0.35);
	padding: 22px 38px;
}

.ggw-correction-request > span {
	color: var(--ggw-amber);
	display: block;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

.ggw-correction-request p {
	color: var(--ggw-text);
	font-size: 0.82rem;
	line-height: 1.65;
	margin-top: 9px !important;
}

.ggw-correction-request small {
	color: var(--ggw-muted);
	display: block;
	font-size: 0.68rem;
	margin-top: 8px;
}

.ggw-form-section {
	border-bottom: 1px solid var(--ggw-border);
	margin-bottom: 28px;
	padding-bottom: 28px;
}

.ggw-form-section--last {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.ggw-form-section h3 {
	color: var(--ggw-text);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 1.3px;
	margin-bottom: 20px;
	text-transform: uppercase;
}

.ggw-section-help {
	color: var(--ggw-muted);
	font-size: 0.78rem;
	line-height: 1.5;
	margin: -10px 0 16px !important;
}

.ggw-form-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ggw-field--wide {
	grid-column: 1 / -1;
}

.ggw-field label {
	color: var(--ggw-muted);
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.6px;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.ggw-field label span {
	color: var(--ggw-red);
}

.ggw-field label small {
	color: var(--ggw-dim);
	font-size: inherit;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.ggw-field input,
.ggw-field select,
.ggw-field textarea,
.ggw-part-row input {
	background: var(--ggw-input);
	border: 1px solid var(--ggw-border);
	border-radius: 9px;
	color: var(--ggw-text);
	font: inherit;
	font-size: 0.88rem;
	min-height: 48px;
	padding: 11px 13px;
	width: 100%;
}

.ggw-field textarea {
	min-height: 120px;
	resize: vertical;
}

.ggw-field input:focus,
.ggw-field select:focus,
.ggw-field textarea:focus,
.ggw-part-row input:focus {
	border-color: var(--ggw-red);
	box-shadow: 0 0 0 3px rgba(227, 27, 35, 0.12);
	outline: none;
}

.ggw-field input[type="file"] {
	height: auto;
	padding: 12px;
}

.ggw-field > p {
	color: var(--ggw-dim);
	font-size: 0.7rem;
	margin-top: 7px;
}

.ggw-uploader__label {
	color: var(--ggw-muted);
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.6px;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.ggw-uploader__label span { color: var(--ggw-red); }
.ggw-uploader__input {
	height: 1px !important;
	left: -10000px !important;
	opacity: 0 !important;
	overflow: hidden !important;
	position: absolute !important;
	width: 1px !important;
}

.ggw-uploader__dropzone {
	align-items: center;
	background: rgba(255, 255, 255, 0.025);
	border: 1px dashed #5a5a5a;
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 132px;
	padding: 24px;
	text-align: center;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.ggw-uploader__dropzone:hover,
.ggw-uploader__dropzone.is-dragging,
.ggw-uploader__input:focus + .ggw-uploader__dropzone {
	background: rgba(227, 27, 35, 0.08);
	border-color: var(--ggw-red);
}

.ggw-uploader__dropzone strong {
	color: var(--ggw-text);
	font-size: 0.85rem;
}

.ggw-uploader__dropzone span,
.ggw-uploader__help {
	color: var(--ggw-dim);
	font-size: 0.7rem;
	margin-top: 6px;
}

.ggw-uploader__status {
	font-size: 0.72rem;
	font-weight: 600;
	margin-top: 10px;
}

.ggw-uploader__status:empty { display: none; }
.ggw-uploader__status.is-loading { color: var(--ggw-muted); }
.ggw-uploader__status.is-error { color: #ff989c; }
.ggw-uploader__status.is-success { color: var(--ggw-green); }

.ggw-existing-files {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ggw-existing-files li {
	align-items: center;
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid var(--ggw-border);
	border-radius: 10px;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding: 12px 14px;
}

.ggw-existing-files li > span {
	flex: 1 1 auto;
	min-width: 0;
}

.ggw-existing-files strong,
.ggw-existing-files small {
	display: block;
}

.ggw-existing-files strong { font-size: 0.78rem; overflow-wrap: anywhere; }
.ggw-existing-files small { color: var(--ggw-dim); font-size: 0.68rem; margin-top: 3px; }
.ggw-existing-files__remove {
	appearance: none;
	align-items: center;
	background: rgba(227, 27, 35, 0.08);
	border: 1px solid rgba(227, 27, 35, 0.4);
	border-radius: 8px;
	color: #ff989c;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 0.7rem;
	font-weight: 700;
	gap: 7px;
	justify-content: center;
	letter-spacing: 0;
	margin: 0;
	min-height: 36px;
	padding: 8px 11px;
	text-transform: none;
	white-space: nowrap;
	width: auto;
}

.ggw-existing-files__remove:hover,
.ggw-existing-files__remove:focus-visible {
	background: rgba(227, 27, 35, 0.18);
	border-color: var(--ggw-red);
	outline: none;
}

.ggw-existing-files__remove:disabled { cursor: wait; }
.ggw-existing-files li.is-removing > span { opacity: 0.55; }

.ggw-existing-files__remove.is-loading::before {
	animation: ggw-spin 0.75s linear infinite;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	border-top-color: currentColor;
	content: '';
	height: 13px;
	width: 13px;
}

@keyframes ggw-spin { to { transform: rotate(360deg); } }

.ggw-uploader__files {
	display: grid;
	gap: 8px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}

.ggw-uploader__file {
	align-items: center;
	background: var(--ggw-inset);
	border: 1px solid var(--ggw-border);
	border-radius: 10px;
	display: grid;
	gap: 12px;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	padding: 9px 11px;
}

.ggw-uploader__file.is-ready { border-color: rgba(101, 196, 102, 0.42); }
.ggw-uploader__file.is-error { border-color: rgba(227, 27, 35, 0.55); }
.ggw-uploader__preview {
	align-items: center;
	background: var(--ggw-input);
	border-radius: 7px;
	color: var(--ggw-muted);
	display: flex;
	font-size: 0.58rem;
	font-weight: 800;
	height: 42px;
	justify-content: center;
	overflow: hidden;
	width: 48px;
}

.ggw-uploader__preview img { height: 100%; object-fit: cover; width: 100%; }
.ggw-uploader__details { display: flex; flex-direction: column; min-width: 0; }
.ggw-uploader__details strong { font-size: 0.76rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ggw-uploader__details small { color: var(--ggw-dim); font-size: 0.65rem; margin-top: 3px; }
.ggw-uploader__remove {
	background: transparent;
	border: 1px solid #555;
	border-radius: 7px;
	color: var(--ggw-muted);
	cursor: pointer;
	font: inherit;
	font-size: 0.65rem;
	font-weight: 700;
	padding: 7px 9px;
}

.ggw-uploader__remove:hover,
.ggw-uploader__remove:focus-visible { border-color: var(--ggw-red); color: #fff; }
.ggw-uploader__remove:disabled { cursor: wait; opacity: 0.5; }

.ggw-check {
	align-items: flex-start;
	color: var(--ggw-muted);
	cursor: pointer;
	display: flex;
	font-size: 0.8rem;
	gap: 10px;
	line-height: 1.5;
	margin-top: 14px;
}

.ggw-check input {
	-webkit-appearance: none;
	appearance: none;
	background: var(--ggw-input);
	border: 2px solid #8a8a8a;
	border-radius: 4px;
	box-sizing: border-box;
	color: #fff;
	cursor: pointer;
	flex: 0 0 auto;
	height: 18px;
	line-height: 1;
	margin: 2px 0 0;
	padding: 0;
	position: relative;
	width: 18px;
}

/* Suppress Impreza theme Font Awesome check (::before). */
.ggw-check input::before,
.ggw-check input:checked::before {
	content: none !important;
	display: none !important;
	visibility: hidden !important;
}

.ggw-check input:hover {
	border-color: #c0c0c0;
}

.ggw-check input:focus {
	background: var(--ggw-input);
	border-color: #8a8a8a;
	box-shadow: none;
	color: #fff;
	outline: none;
}

.ggw-check input:hover:focus {
	border-color: #c0c0c0;
}

.ggw-check input:checked:focus {
	background: var(--ggw-red);
	border-color: var(--ggw-red);
}

.ggw-check input:focus-visible {
	border-color: var(--ggw-red);
	box-shadow: 0 0 0 3px rgba(227, 27, 35, 0.22);
}

.ggw-check input:checked {
	background: var(--ggw-red);
	border-color: var(--ggw-red);
}

.ggw-check input:checked::after {
	border: solid #fff;
	border-width: 0 2px 2px 0;
	content: "";
	display: block;
	height: 9px;
	left: 5px;
	position: absolute;
	top: 1px;
	transform: rotate(45deg);
	width: 5px;
}

.ggw-parts {
	display: grid;
	gap: 10px;
}

.ggw-part-row {
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr 1.5fr 0.6fr 0.9fr;
}

.ggw-component-options {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ggw-component-option {
	align-items: center;
	background: var(--ggw-inset);
	border: 1px solid var(--ggw-border);
	border-radius: 12px;
	display: grid;
	gap: 12px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	min-height: 76px;
	padding: 15px 16px;
	transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.ggw-component-option:hover {
	border-color: #626262;
	transform: translateY(-1px);
}

.ggw-component-option.is-unavailable {
	background: rgba(255, 176, 32, 0.035);
	border-color: rgba(255, 176, 32, 0.28);
}

.ggw-component-option.is-unavailable:hover {
	border-color: rgba(255, 176, 32, 0.38);
	transform: none;
}

.ggw-component-option:has(.ggw-component-option__checkbox:checked) {
	background: rgba(227, 27, 35, 0.1);
	border-color: var(--ggw-red);
	box-shadow: inset 0 0 0 1px var(--ggw-red);
}

.ggw-component-option:has(.ggw-component-option__checkbox:focus-visible) {
	border-color: var(--ggw-red);
	box-shadow: 0 0 0 3px rgba(227, 27, 35, 0.22);
}

.ggw-form-shell .ggw-component-option__checkbox {
	-webkit-appearance: none !important;
	appearance: none !important;
	align-items: center;
	background: var(--ggw-input) !important;
	border: 2px solid #8a8a8a !important;
	border-radius: 50% !important;
	box-sizing: border-box;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 auto;
	height: 21px;
	justify-content: center;
	line-height: 1;
	margin: 0;
	opacity: 1 !important;
	padding: 0;
	position: relative;
	visibility: visible !important;
	width: 21px;
}

/* Suppress Impreza theme Font Awesome check (::before). */
.ggw-form-shell .ggw-component-option__checkbox::before,
.ggw-form-shell .ggw-component-option__checkbox:checked::before,
.ggw-form-shell .ggw-component-option__checkbox:hover::before,
.ggw-form-shell .ggw-component-option__checkbox:focus::before {
	content: none !important;
	display: none !important;
	visibility: hidden !important;
}

.ggw-form-shell .ggw-component-option__checkbox:hover {
	border-color: #c0c0c0 !important;
}

.ggw-form-shell .ggw-component-option__checkbox:focus {
	background: var(--ggw-input) !important;
	border-color: #8a8a8a !important;
	box-shadow: none;
	color: #fff;
	outline: none;
}

.ggw-form-shell .ggw-component-option__checkbox:hover:focus {
	border-color: #c0c0c0 !important;
}

.ggw-form-shell .ggw-component-option__checkbox:checked {
	background: var(--ggw-red) !important;
	border-color: var(--ggw-red) !important;
}

.ggw-form-shell .ggw-component-option__checkbox:checked:focus {
	background: var(--ggw-red) !important;
	border-color: var(--ggw-red) !important;
}

.ggw-form-shell .ggw-component-option__checkbox:checked::after {
	border: solid #fff;
	border-width: 0 2px 2px 0;
	content: "";
	display: block;
	height: 9px;
	margin-top: -1px;
	position: static;
	transform: rotate(45deg);
	width: 5px;
}

.ggw-form-shell .ggw-component-option__checkbox:focus-visible {
	border-color: var(--ggw-red) !important;
	box-shadow: 0 0 0 3px rgba(227, 27, 35, 0.22);
}

.ggw-form-shell .ggw-component-option__checkbox:disabled {
	border-color: #5c5c5c !important;
	cursor: not-allowed;
	opacity: 0.55 !important;
}

.ggw-component-option__content {
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.ggw-component-option--other {
	align-items: start;
}

.ggw-component-option--other .ggw-component-option__content {
	cursor: default;
}

.ggw-component-option--other .ggw-component-option__content > label {
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.ggw-component-option__other-field {
	margin-top: 10px;
}

.ggw-component-option__other-field[hidden] {
	display: none;
}

.ggw-component-option__other-field label {
	margin-bottom: 6px;
}

.ggw-component-option__other-field input {
	min-height: 42px;
}

.ggw-component-option.is-unavailable .ggw-component-option__content {
	cursor: default;
}

.ggw-component-option__content strong {
	font-size: 0.84rem;
	line-height: 1.3;
}

.ggw-component-option__content > span {
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.45px;
	text-transform: uppercase;
}

.ggw-component-option__meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.ggw-component-option__claim-count {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid #464646;
	border-radius: 999px;
	color: var(--ggw-muted);
	display: inline-flex;
	font-size: 0.58rem;
	font-weight: 800;
	letter-spacing: 0.35px;
	line-height: 1;
	padding: 5px 8px;
	white-space: nowrap;
}

.ggw-component-option__claim-count.has-history {
	background: rgba(255, 176, 32, 0.12);
	border-color: rgba(255, 176, 32, 0.42);
	color: #ffc45b;
}

.ggw-component-option__purchase {
	align-items: center;
	border: 1px solid rgba(255, 176, 32, 0.5);
	border-radius: 8px;
	color: #ffc45b !important;
	display: inline-flex;
	font-size: 0.66rem;
	font-weight: 800;
	justify-content: center;
	line-height: 1.2;
	padding: 8px 10px;
	text-align: center;
	text-decoration: none !important;
}

.ggw-component-option__purchase:hover,
.ggw-component-option__purchase:focus-visible {
	background: rgba(255, 176, 32, 0.12);
	border-color: #ffc45b;
}

.ggw-component-option__content .is-success { color: var(--ggw-green); }
.ggw-component-option__content .is-pending { color: var(--ggw-amber); }
.ggw-component-option__content .is-danger { color: #ff8a8f; }

.ggw-button {
	appearance: none;
	background: var(--ggw-red);
	border: 0;
	border-radius: 9px;
	color: #fff !important;
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: 0.76rem;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 1px;
	margin-top: 22px;
	min-height: 48px;
	padding: 15px 24px;
	text-decoration: none !important;
	text-transform: uppercase;
}

.ggw-button:hover,
.ggw-button:focus { background: var(--ggw-red-hover); }
.ggw-button:disabled { cursor: wait; opacity: 0.6; }

.ggw-button--secondary {
	background: transparent;
	border: 1px solid var(--ggw-border);
	color: var(--ggw-muted) !important;
	margin-top: 12px;
}

.ggw-form-success__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 22px;
}

.ggw-form-success__actions:empty { display: none; }
.ggw-form-success__actions .ggw-button { margin-top: 0; }

.ggw-form-status {
	border-radius: 8px;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.5;
	margin-top: 18px;
	padding: 11px 14px;
}

.ggw-form-status:empty { display: none; }
.ggw-form-status.is-loading { background: rgba(255, 255, 255, 0.05); color: var(--ggw-muted); }
.ggw-form-status.is-error { background: rgba(227, 27, 35, 0.12); color: #ff989c; }
.ggw-form-status.is-success { background: rgba(76, 175, 80, 0.12); color: var(--ggw-green); }

.ggw-form-notice,
.ggw-form-success {
	padding: 42px 38px;
	text-align: center;
}

.ggw-form-context-actions {
	display: flex;
	justify-content: flex-end;
	padding: 18px 38px 0;
}

.ggw-form-context-actions .ggw-button { margin-top: 0; }

.ggw-customer-update-entry__content {
	align-items: center;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	padding: 28px 38px;
}

.ggw-customer-update-entry__content h2 { font-size: 1.1rem; margin: 4px 0 6px; }
.ggw-customer-update-entry__content p { color: var(--ggw-muted); margin: 0; }
.ggw-customer-update-entry__content .ggw-form-eyebrow { color: var(--ggw-red); }
.ggw-customer-update-entry__content .ggw-button { flex: 0 0 auto; margin-top: 0; }

.ggw-form-success h3 {
	font-size: 1.15rem;
	margin-bottom: 8px;
}

.ggw-form-success p {
	color: var(--ggw-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

@media (max-width: 700px) {
	.ggw-form-header,
	.ggw-form-body,
	.ggw-form-notice,
	.ggw-form-success { padding-left: 22px; padding-right: 22px; }
	.ggw-form-context-actions { padding-left: 22px; padding-right: 22px; }
	.ggw-customer-update-entry__content { padding-left: 22px; padding-right: 22px; }
	.ggw-vehicle-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ggw-vehicle-summary > div:nth-child(2) { border-right: 0; }
	.ggw-vehicle-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--ggw-border); }
	.ggw-form-grid { grid-template-columns: 1fr; }
	.ggw-field--wide { grid-column: auto; }
	.ggw-part-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 430px) {
	.ggw-vehicle-summary { grid-template-columns: 1fr; }
	.ggw-vehicle-summary > div { border-bottom: 1px solid var(--ggw-border); border-right: 0; }
	.ggw-vehicle-summary > div:last-child { border-bottom: 0; }
	.ggw-part-row { grid-template-columns: 1fr; }
	.ggw-component-options { grid-template-columns: 1fr; }
	.ggw-customer-update-entry__content { align-items: stretch; flex-direction: column; }
	.ggw-existing-files li { align-items: flex-start; flex-direction: column; }
	.ggw-button { width: 100%; }
}
