/* Izi-Asso — public styles.
   Scoped to .iziasso-wrap to avoid theme collisions.
   Primary/accent colors come from CSS variables set by print_css_vars(). */

.iziasso-theme {
	--iziasso-primary: #2271b1;
	--iziasso-accent:  #135e96;
	--iziasso-bg:      #f7f8fa;
	--iziasso-card:    #ffffff;
	--iziasso-border:  #e4e7ec;
	--iziasso-text:    #1d2939;
	--iziasso-muted:   #667085;
	--iziasso-error:   #d92d20;
	--iziasso-success: #12b76a;
	--iziasso-radius:  10px;
	--iziasso-shadow:  0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.06);
	--iziasso-shadow-lg: 0 10px 15px -3px rgba(16,24,40,.08), 0 4px 6px -4px rgba(16,24,40,.04);
}

.iziasso-wrap {
	max-width: 860px;
	margin: 0 auto;
	padding: 20px 16px;
	color: var(--iziasso-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.55;
}

.iziasso-wrap *, .iziasso-wrap *::before, .iziasso-wrap *::after {
	box-sizing: border-box;
}

/* ---------- Stepper ---------- */
.iziasso-steps {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: flex;
	gap: 0;
	counter-reset: step;
}
.iziasso-steps li {
	flex: 1;
	position: relative;
	padding: 0 8px 0 44px;
	font-size: 14px;
	font-weight: 500;
	color: var(--iziasso-muted);
	display: flex;
	align-items: center;
	min-height: 36px;
}
.iziasso-steps li span {
	position: absolute;
	left: 0;
	width: 32px;
	height: 32px;
	background: #eceff4;
	color: var(--iziasso-muted);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 14px;
}
.iziasso-steps li.active { color: var(--iziasso-text); }
.iziasso-steps li.active span { background: var(--iziasso-primary); color: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, var(--iziasso-primary) 15%, transparent); }
.iziasso-steps li.done { color: var(--iziasso-text); }
.iziasso-steps li.done span { background: var(--iziasso-success); color: #fff; }
.iziasso-steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 16px;
	right: -8px;
	left: 40px;
	height: 2px;
	background: #eceff4;
	z-index: -1;
}

/* ---------- Cards ---------- */
.iziasso-card {
	background: var(--iziasso-card);
	border: 1px solid var(--iziasso-border);
	border-radius: var(--iziasso-radius);
	box-shadow: var(--iziasso-shadow);
	margin-bottom: 20px;
	overflow: hidden;
}
.iziasso-card-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	background: linear-gradient(180deg, #fbfcfd 0%, #ffffff 100%);
	border-bottom: 1px solid var(--iziasso-border);
}
.iziasso-card-head h2 {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: var(--iziasso-text);
}
.iziasso-card .iziasso-card-body,
.iziasso-card > :not(.iziasso-card-head):not(.iziasso-card-body) {
	padding: 20px;
}
.iziasso-card-highlight {
	border-top: 3px solid var(--iziasso-primary);
}
.iziasso-icon {
	display: inline-flex;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	background: color-mix(in srgb, var(--iziasso-primary) 12%, #fff);
	color: var(--iziasso-primary);
	font-size: 18px;
}

/* ---------- Grid / fields ---------- */
.iziasso-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.iziasso-full, .iziasso-field.iziasso-full { grid-column: 1 / -1; }
.iziasso-inline-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.iziasso-field label, .iziasso-wrap .iziasso-form label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	color: var(--iziasso-text);
	margin-bottom: 6px;
}
.iziasso-req { color: var(--iziasso-error); margin-left: 2px; }
.iziasso-help { display: block; color: var(--iziasso-muted); font-size: 12px; margin-top: 6px; }

.iziasso-wrap input[type="text"],
.iziasso-wrap input[type="email"],
.iziasso-wrap input[type="tel"],
.iziasso-wrap input[type="url"],
.iziasso-wrap input[type="number"],
.iziasso-wrap input[type="date"],
.iziasso-wrap input[type="password"],
.iziasso-wrap textarea,
.iziasso-wrap select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--iziasso-border);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
	color: var(--iziasso-text);
	transition: border-color .15s, box-shadow .15s;
}
.iziasso-wrap input:focus,
.iziasso-wrap textarea:focus,
.iziasso-wrap select:focus {
	outline: 0;
	border-color: var(--iziasso-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--iziasso-primary) 18%, transparent);
}
.iziasso-wrap textarea { resize: vertical; min-height: 80px; }

.iziasso-radio-list { display: flex; flex-direction: column; gap: 8px; }
.iziasso-radio, .iziasso-check { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 400; font-size: 14px; }
.iziasso-radio input, .iziasso-check input { accent-color: var(--iziasso-primary); }

/* ---------- Plans ---------- */
.iziasso-plans {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}
.iziasso-plan { position: relative; cursor: pointer; display: block; }
.iziasso-plan input { position: absolute; opacity: 0; }
.iziasso-plan-box {
	display: block;
	padding: 20px;
	border: 2px solid var(--iziasso-border);
	border-radius: var(--iziasso-radius);
	background: #fff;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.iziasso-plan:hover .iziasso-plan-box {
	border-color: color-mix(in srgb, var(--iziasso-primary) 40%, var(--iziasso-border));
	transform: translateY(-1px);
}
.iziasso-plan input:checked + .iziasso-plan-box {
	border-color: var(--iziasso-primary);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--iziasso-primary) 15%, transparent);
}
.iziasso-plan-name { display: block; font-weight: 600; font-size: 15px; color: var(--iziasso-text); }
.iziasso-plan-price { display: block; font-size: 26px; font-weight: 700; color: var(--iziasso-primary); margin: 6px 0 2px; }
.iziasso-plan-period { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--iziasso-muted); }
.iziasso-plan-desc { display: block; font-size: 13px; color: var(--iziasso-muted); margin-top: 10px; }

/* ---------- Payment method choice ---------- */
.iziasso-method-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.iziasso-method { cursor: pointer; position: relative; }
.iziasso-method input { position: absolute; opacity: 0; }
.iziasso-method-box {
	display: block;
	padding: 16px;
	border: 2px solid var(--iziasso-border);
	border-radius: var(--iziasso-radius);
	background: #fff;
	transition: border-color .15s, box-shadow .15s;
}
.iziasso-method:hover .iziasso-method-box { border-color: color-mix(in srgb, var(--iziasso-primary) 30%, var(--iziasso-border)); }
.iziasso-method input:checked + .iziasso-method-box {
	border-color: var(--iziasso-primary);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--iziasso-primary) 15%, transparent);
}
.iziasso-method-icon { display: inline-block; font-size: 24px; margin-bottom: 4px; }
.iziasso-method-title { display: block; font-weight: 600; color: var(--iziasso-text); }
.iziasso-method-desc { display: block; font-size: 12px; color: var(--iziasso-muted); margin-top: 4px; }

/* ---------- Consent + buttons ---------- */
.iziasso-consent {
	background: color-mix(in srgb, var(--iziasso-primary) 5%, #fff);
	border: 1px solid color-mix(in srgb, var(--iziasso-primary) 18%, var(--iziasso-border));
	border-radius: var(--iziasso-radius);
	padding: 14px 18px;
	margin-bottom: 20px;
}
.iziasso-consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; margin: 0; }
.iziasso-consent input { accent-color: var(--iziasso-primary); margin-top: 3px; }

.iziasso-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	transition: background-color .15s, transform .05s, box-shadow .15s;
	border: 1px solid transparent;
	font-family: inherit;
	line-height: 1.2;
}
.iziasso-btn:active { transform: translateY(1px); }
.iziasso-btn-primary {
	background: var(--iziasso-primary);
	color: #fff;
	border-color: var(--iziasso-primary);
	box-shadow: 0 1px 2px rgba(16,24,40,.1);
}
.iziasso-btn-primary:hover { background: var(--iziasso-accent); border-color: var(--iziasso-accent); color: #fff; }
.iziasso-btn-ghost {
	background: #fff;
	color: var(--iziasso-text);
	border-color: var(--iziasso-border);
}
.iziasso-btn-ghost:hover { background: #f4f6f8; color: var(--iziasso-text); }
.iziasso-btn-lg { padding: 14px 28px; font-size: 15px; }
.iziasso-btn-small { padding: 6px 12px; font-size: 13px; }
.iziasso-btn-icon { display: inline-block; }

.iziasso-wizard-actions { display: flex; justify-content: flex-end; margin-top: 24px; }
.iziasso-wizard-actions-split { justify-content: space-between; }

/* ---------- Alerts ---------- */
.iziasso-alert {
	padding: 12px 16px;
	border-radius: var(--iziasso-radius);
	margin-bottom: 16px;
	font-size: 14px;
	border: 1px solid;
}
.iziasso-alert p { margin: 0; }
.iziasso-alert p + p { margin-top: 4px; }
.iziasso-alert-error { background: #fef3f2; border-color: #fecdca; color: #912018; }
.iziasso-alert-success { background: #ecfdf3; border-color: #a6f4c5; color: #05603a; }
.iziasso-alert-info { background: #eff8ff; border-color: #b2ddff; color: #175cd3; }
.iziasso-notice { padding: 12px 16px; background: #eff8ff; border-left: 4px solid var(--iziasso-primary); border-radius: 6px; margin-bottom: 16px; }
.iziasso-success { background: #ecfdf3; border-left-color: var(--iziasso-success); }

/* ---------- Review ---------- */
.iziasso-recap {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 6px 20px;
	margin: 0;
}
.iziasso-recap dt { font-weight: 500; color: var(--iziasso-muted); font-size: 13px; padding: 4px 0; }
.iziasso-recap dd { margin: 0; padding: 4px 0; color: var(--iziasso-text); font-size: 14px; }
.iziasso-subtitle { font-size: 14px; font-weight: 600; margin: 20px 0 10px; color: var(--iziasso-text); }

.iziasso-bank-block { background: #f7f8fa; border-radius: var(--iziasso-radius); padding: 14px 18px; border: 1px solid var(--iziasso-border); }
.iziasso-bank-list { list-style: none; padding: 0; margin: 0; }
.iziasso-bank-list li { padding: 6px 0; border-bottom: 1px dashed var(--iziasso-border); font-size: 14px; }
.iziasso-bank-list li:last-child { border-bottom: 0; }
.iziasso-bank-list code { background: #fff; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--iziasso-border); font-size: 13px; }
.iziasso-note { margin-top: 10px; font-size: 13px; color: var(--iziasso-muted); }

/* ---------- Account dashboard ---------- */
.iziasso-account { max-width: 980px; }
.iziasso-tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid var(--iziasso-border);
	margin-bottom: 24px;
	flex-wrap: wrap;
	padding-bottom: 0;
}
.iziasso-tabs a {
	padding: 12px 18px;
	text-decoration: none;
	color: var(--iziasso-muted);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	font-weight: 500;
	font-size: 14px;
	transition: color .15s, border-color .15s;
}
.iziasso-tabs a:hover { color: var(--iziasso-text); }
.iziasso-tabs a.active { color: var(--iziasso-primary); border-bottom-color: var(--iziasso-primary); }
.iziasso-tabs .iziasso-logout { margin-left: auto; font-size: 13px; }
.iziasso-tab { display: none; }
.iziasso-tab.active { display: block; }

.iziasso-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--iziasso-border); }
.iziasso-row:last-child { border-bottom: 0; }
.iziasso-row > span:first-child { color: var(--iziasso-muted); font-size: 13px; }

.iziasso-table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.iziasso-table th, .iziasso-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--iziasso-border); font-size: 14px; }
.iziasso-table th { background: #f7f8fa; font-weight: 600; color: var(--iziasso-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }

.iziasso-status {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .4px;
}
.iziasso-status-active, .iziasso-status-completed { background: #d1fadf; color: #05603a; }
.iziasso-status-pending { background: #fef0c7; color: #93370d; }
.iziasso-status-expired, .iziasso-status-failed { background: #fee4e2; color: #912018; }
.iziasso-status-cancelled, .iziasso-status-refunded { background: #eaecf0; color: #475467; }

.iziasso-muted { color: var(--iziasso-muted); font-size: 12px; }
.iziasso-badge { display: inline-block; padding: 2px 8px; background: color-mix(in srgb, var(--iziasso-primary) 12%, #fff); color: var(--iziasso-primary); border-radius: 999px; font-size: 11px; font-weight: 600; font-style: normal; }

.iziasso-plan-card { border: 1px solid var(--iziasso-border); border-radius: var(--iziasso-radius); padding: 20px; background: #fff; box-shadow: var(--iziasso-shadow); }
.iziasso-pay-buttons { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }

/* ---------- Responsive ---------- */
@media (max-width: 680px) {
	.iziasso-grid, .iziasso-method-choice, .iziasso-inline-2 { grid-template-columns: 1fr; }
	.iziasso-recap { grid-template-columns: 1fr; gap: 2px; }
	.iziasso-recap dt { padding-top: 10px; }
	.iziasso-recap dd { padding-bottom: 10px; border-bottom: 1px dashed var(--iziasso-border); }
	.iziasso-steps li { font-size: 0; padding-left: 38px; }
	.iziasso-steps li.active { font-size: 13px; }
}
