/* BTN Retragere — wizard public */

.gsrc-wizard {
	/* Culoare accent — schimb-o din Setări → General → Aspect,
	   sau editează direct cele 4 linii de mai jos. Restul CSS-ului
	   o folosește prin var(); verdele „confirmare" și roșul „eroare"
	   rămân separate intenționat. */
	--gsrc-accent: #2271b1;
	--gsrc-accent-dark: #195d8d;
	--gsrc-accent-soft: rgba( 34, 113, 177, .12 );
	--gsrc-accent-line: rgba( 34, 113, 177, .35 );

	max-width: 640px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.6;
	color: #2b2b2b;
}
/* Forțăm un text lizibil indiferent de culorile temei. */
.gsrc-wizard h2,
.gsrc-wizard h3,
.gsrc-wizard p,
.gsrc-wizard li,
.gsrc-wizard label,
.gsrc-wizard strong { color: #2b2b2b; }

/* honeypot: ascuns vizual, accesibil pentru screen readers off-screen */
.gsrc-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* progress (stil IKEA: cerculețe numerotate, linie de legătură) */
.gsrc-steps {
	display: flex;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	counter-reset: gsrc-step;
}
.gsrc-steps li {
	flex: 1;
	position: relative;
	text-align: center;
	counter-increment: gsrc-step;
	font-size: 12px;
	color: #9097a0;
	min-width: 0;
}
.gsrc-steps li:not(:first-child)::before {
	content: "";
	position: absolute;
	top: 13px;
	left: -50%;
	width: 100%;
	height: 2px;
	background: #e2e4e7;
	z-index: 0;
}
.gsrc-steps li.is-active:not(:first-child)::before,
.gsrc-steps li.is-done:not(:first-child)::before { background: var( --gsrc-accent, #2271b1 ); }
.gsrc-step-dot {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin: 0 auto 6px;
	border-radius: 50%;
	background: #e2e4e7;
	color: #fff;
	font-weight: 700;
	font-size: 13px;
}
.gsrc-step-dot::before { content: counter( gsrc-step ); }
.gsrc-steps li.is-active .gsrc-step-dot { background: var( --gsrc-accent, #2271b1 ); }
.gsrc-steps li.is-done .gsrc-step-dot { background: #2da000; }
.gsrc-steps li.is-done .gsrc-step-dot::before { content: "\2713"; }
.gsrc-step-name { display: block; padding: 0 4px; }
.gsrc-steps li.is-active .gsrc-step-name { color: var( --gsrc-accent, #2271b1 ); font-weight: 600; }
@media ( max-width: 560px ) {
	.gsrc-step-name { display: none; }
}

/* grupuri de câmpuri + radio carduri (stil IKEA) */
.gsrc-field-group { margin: 0 0 22px; }
.gsrc-group-label { font-weight: 600; margin: 0 0 10px; font-size: 15px; }
.gsrc-radio {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 16px;
	border: 1px solid #d8dbdf;
	border-radius: 10px;
	margin-bottom: 8px;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s, background .15s;
}
.gsrc-radio:hover { border-color: var( --gsrc-accent, #2271b1 ); }
.gsrc-radio input[type="radio"] { width: 20px; height: 20px; flex: 0 0 auto; margin: 0; accent-color: var( --gsrc-accent, #2271b1 ); }
.gsrc-radio:has( input:checked ) { border-color: var( --gsrc-accent, #2271b1 ); background: var( --gsrc-accent-soft, #f3f8fc ); box-shadow: 0 0 0 1px var( --gsrc-accent, #2271b1 ) inset; }
.gsrc-radio-card span { display: flex; flex-direction: column; gap: 3px; }
.gsrc-radio-card strong { font-size: 15px; }
.gsrc-radio-card small { color: #6b7177; font-size: 13px; line-height: 1.45; }
.gsrc-field textarea {
	width: 100%;
	padding: 11px 13px;
	border: 1px solid #c3c4c7;
	border-radius: 8px;
	font-size: 15px;
	font-family: inherit;
	box-sizing: border-box;
	resize: vertical;
}
.gsrc-field textarea:focus { border-color: var( --gsrc-accent, #2271b1 ); outline: 2px solid var( --gsrc-accent-soft, rgba( 34, 113, 177, .2 ) ); }

/* messages */
.gsrc-messages {
	background: #fcf0f1;
	border: 1px solid #d63638;
	color: #8a1f21;
	padding: 12px 16px;
	border-radius: 6px;
	margin-bottom: 18px;
}
.gsrc-messages.gsrc-messages-info {
	background: var( --gsrc-accent-soft, #eef5fc );
	border-color: var( --gsrc-accent, #2271b1 );
	color: var( --gsrc-accent-dark, #0a4b78 );
}
.gsrc-wizard .gsrc-status-pill {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 10px;
	background: var( --gsrc-accent, #2271b1 );
	color: #fff !important;
	font-size: 12px;
	font-weight: 600;
}

/* steps */
.gsrc-step { animation: gsrc-fade .25s ease; }
.gsrc-step[hidden] { display: none; }
@keyframes gsrc-fade { from { opacity: 0; transform: translateY( 6px ); } to { opacity: 1; transform: none; } }
.gsrc-step h2 { margin: 0 0 10px; font-size: 22px; }

/* fields */
.gsrc-field { margin: 0 0 16px; }
.gsrc-field label { display: block; font-weight: 600; margin-bottom: 5px; }
.gsrc-field input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #c3c4c7;
	border-radius: 10px;
	font-size: 16px;
	box-sizing: border-box;
}
.gsrc-field input:focus { border-color: var( --gsrc-accent, #2271b1 ); outline: 2px solid var( --gsrc-accent-soft, rgba( 34, 113, 177, .2 ) ); }
.gsrc-req { color: #d63638; }

/* buttons */
.gsrc-btn {
	display: inline-block;
	padding: 13px 26px;
	margin: 0;
	border: none;
	border-radius: 24px;
	font-size: 16px;
	font-weight: 600;
	/* Neutralizează stilurile de buton ale temei (ex. Flatsome): majuscule,
	   înălțime/line-height impuse, spațieri, umbre — ca butonul să arate la fel
	   indiferent de temă. */
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	min-width: 0;
	min-height: 0;
	width: auto;
	max-width: 100%;
	cursor: pointer;
	font-family: inherit;
}
.gsrc-btn-primary { background: var( --gsrc-accent, #2271b1 ); color: #fff; }
.gsrc-btn-primary:hover { background: var( --gsrc-accent-dark, #195d8d ); }
.gsrc-btn-secondary { background: #f0f0f1; color: #333; }
.gsrc-btn-confirm { background: #2da000; color: #fff; }
.gsrc-btn-confirm:hover { background: #258500; }
.gsrc-btn[disabled] { opacity: .6; cursor: not-allowed; }
.gsrc-btn[hidden] { display: none; }

/* loading state: text invizibil + spinner centrat */
.gsrc-btn.is-busy {
	color: transparent !important;
	position: relative;
	cursor: progress;
	pointer-events: none;
}
.gsrc-btn.is-busy::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid rgba( 255, 255, 255, .45 );
	border-top-color: #fff;
	border-radius: 50%;
	animation: gsrc-spin .6s linear infinite;
}
@keyframes gsrc-spin { to { transform: rotate( 360deg ); } }
.gsrc-actions { display: flex; gap: 10px; align-items: center; margin-top: 18px; }
.gsrc-actions .gsrc-back { flex: 0 0 auto; }

/* order meta (detalii comandă) */
.gsrc-order-meta { margin: 0 0 18px; }
.gsrc-meta-title { font-size: 17px; margin: 0 0 10px; color: var( --gsrc-accent, #2271b1 ); }
.gsrc-meta-grid {
	background: #f6f7f7;
	border: 1px solid #e2e4e7;
	border-radius: 8px;
	padding: 6px 16px;
}
.gsrc-meta-row {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 0;
	border-bottom: 1px solid #e2e4e7;
	font-size: 14px;
}
.gsrc-meta-row:last-child { border-bottom: none; }
.gsrc-meta-row span { color: #5a5f66 !important; }
.gsrc-meta-row strong { color: #1a1a1a !important; text-align: right; }

/* timeline client (stadii) */
.gsrc-client-timeline { margin-top: 18px; }
.gsrc-tl { list-style: none; margin: 0; padding: 0; }
.gsrc-tl li {
	position: relative;
	padding: 0 0 16px 22px;
	border-left: 2px solid var( --gsrc-accent-line, #cfe0f0 );
}
.gsrc-tl li:last-child { border-left-color: transparent; padding-bottom: 0; }
.gsrc-tl li::before {
	content: "";
	position: absolute;
	left: -6px;
	top: 3px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var( --gsrc-accent, #2271b1 );
}
.gsrc-tl li:last-child::before { background: #2da000; box-shadow: 0 0 0 3px rgba( 45, 160, 0, .15 ); }
.gsrc-tl li:last-child .gsrc-tl-label { color: #1a6b1a; }
.gsrc-tl-date { display: block; font-size: 12px; color: #888; }
.gsrc-tl-label { font-weight: 600; }

/* products */
.gsrc-product {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	margin-bottom: 10px;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}
.gsrc-product:hover { border-color: var( --gsrc-accent, #2271b1 ); box-shadow: 0 2px 8px rgba( 0, 0, 0, .05 ); }
.gsrc-product input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 auto; margin: 0; }
.gsrc-product:has( .gsrc-item-cb:checked ) { border-color: var( --gsrc-accent, #2271b1 ); background: var( --gsrc-accent-soft, #f3f8fc ); }

.gsrc-product-img {
	width: 56px;
	height: 56px;
	flex: 0 0 56px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid #eee;
	background: #fff;
}
.gsrc-product-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.gsrc-product-name { font-weight: 600; line-height: 1.35; font-size: 15px; }
.gsrc-product-meta { font-size: 12px; color: #888; }
.gsrc-amount { font-weight: 600; color: var( --gsrc-accent, #2271b1 ); font-size: 14px; }

.gsrc-product-excepted { opacity: .6; cursor: not-allowed; background: #fafafa; }
.gsrc-product-readonly { cursor: default; }
.gsrc-product-readonly input[type="checkbox"] { display: none; }
.gsrc-excepted-notice {
	background: #fff5e5;
	border: 1px solid #dba617;
	color: #8a6300;
	padding: 10px 14px;
	border-radius: 6px;
	margin-bottom: 14px;
}

/* review + declaration */
.gsrc-review-block { margin: 0 0 18px; }
.gsrc-review-heading { font-size: 15px; margin: 0 0 10px; }
.gsrc-total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 16px;
	margin-top: 8px;
	background: var( --gsrc-accent-soft, #f3f8fc );
	border: 1px solid var( --gsrc-accent-line, #cfe0f0 );
	border-radius: 10px;
	font-size: 16px;
}
.gsrc-total-row strong { color: var( --gsrc-accent, #2271b1 ); font-size: 18px; }
.gsrc-addr-grid { display: flex; gap: 14px; flex-wrap: wrap; }
.gsrc-addr-col {
	flex: 1 1 220px;
	background: #f6f7f7;
	border: 1px solid #e2e4e7;
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 14px;
	line-height: 1.5;
}
.gsrc-addr-label { display: block; font-weight: 600; color: #5a5f66; margin-bottom: 4px; }
.gsrc-review-list { list-style: none; padding: 0; margin: 0 0 18px; }
.gsrc-review-list li { padding: 8px 0; border-bottom: 1px solid #eee; }
.gsrc-declaration-text {
	background: #f6f7f7;
	border-left: 4px solid var( --gsrc-accent, #2271b1 );
	margin: 0 0 18px;
	padding: 14px 18px;
	font-style: italic;
}

/* done */
.gsrc-step-done { text-align: center; }
.gsrc-success-icon {
	width: 64px;
	height: 64px;
	line-height: 64px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #2da000;
	color: #fff;
	font-size: 34px;
}
.gsrc-reg-number {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 1px;
	background: #f6f7f7;
	display: inline-block;
	padding: 8px 18px;
	border-radius: 6px;
	margin-top: 10px;
}

@media print {
	.gsrc-steps, .gsrc-print, .gsrc-messages { display: none !important; }
}
