/* CourtClok Registration – Front-End Form Styles */
:root {
	--ccreg-orange: #f47c20;
	--ccreg-navy:   #0d1b2a;
	--ccreg-border: #ddd;
	--ccreg-error:  #c62828;
	--ccreg-gray:   #f5f5f5;
}

.ccreg-form-wrap {
	max-width: 680px;
	margin: 0 auto;
	font-family: inherit;
}

.ccreg-form .ccreg-field {
	margin-bottom: 1.25rem;
}

.ccreg-form label {
	display: block;
	font-weight: 600;
	font-size: .9rem;
	color: var(--ccreg-navy);
	margin-bottom: .35rem;
}

.ccreg-form input[type="text"],
.ccreg-form input[type="email"],
.ccreg-form input[type="number"],
.ccreg-form input[type="tel"],
.ccreg-form input[type="date"],
.ccreg-form select,
.ccreg-form textarea {
	width: 100%;
	padding: .65rem .85rem;
	border: 1.5px solid var(--ccreg-border);
	border-radius: 5px;
	font-size: 1rem;
	font-family: inherit;
	color: #333;
	background: #fff;
	box-sizing: border-box;
	transition: border-color .2s, box-shadow .2s;
	-webkit-appearance: none;
	appearance: none;
}

.ccreg-form input:focus,
.ccreg-form select:focus,
.ccreg-form textarea:focus {
	outline: none;
	border-color: var(--ccreg-orange);
	box-shadow: 0 0 0 3px rgba(244, 124, 32, .15);
}

.ccreg-form input.ccreg-invalid,
.ccreg-form select.ccreg-invalid,
.ccreg-form textarea.ccreg-invalid {
	border-color: var(--ccreg-error);
	box-shadow: 0 0 0 3px rgba(198, 40, 40, .12);
}

.ccreg-form textarea {
	resize: vertical;
	min-height: 90px;
}

/* Checkbox fields */
.ccreg-field-checkbox label {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	font-weight: 400;
	cursor: pointer;
}

.ccreg-field-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin-top: .1rem;
	accent-color: var(--ccreg-orange);
}

/* Radio fields */
.ccreg-field-radio legend {
	font-weight: 600;
	font-size: .9rem;
	color: var(--ccreg-navy);
	margin-bottom: .35rem;
}

.ccreg-field-radio label {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-weight: 400;
	margin-bottom: .3rem;
	cursor: pointer;
}

.ccreg-field-radio input[type="radio"] {
	accent-color: var(--ccreg-orange);
}

/* Required asterisk */
.ccreg-required { color: var(--ccreg-error); margin-left: 2px; }

/* Validation errors */
.ccreg-error-list {
	background: #fdecea;
	border: 1px solid #f5c6c6;
	border-radius: 5px;
	padding: .85rem 1rem;
	margin-bottom: 1.25rem;
}

.ccreg-error-list p {
	margin: 0 0 .25rem;
	color: var(--ccreg-error);
	font-weight: 600;
}

.ccreg-error-list ul {
	margin: .25rem 0 0;
	padding-left: 1.2rem;
}

.ccreg-error-list li {
	color: var(--ccreg-error);
	font-size: .9rem;
}

/* Field-level error message */
.ccreg-field-error {
	display: block;
	color: var(--ccreg-error);
	font-size: .8rem;
	margin-top: .25rem;
}

/* Submit button */
.ccreg-submit { margin-top: 1.5rem; }

.ccreg-btn {
	display: inline-block;
	padding: .75rem 2rem;
	background: var(--ccreg-orange);
	color: #fff;
	border: none;
	border-radius: 5px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s, transform .1s;
	letter-spacing: .02em;
}

.ccreg-btn:hover { background: #d96e14; transform: translateY(-1px); }
.ccreg-btn:active { transform: translateY(0); }

/* Success / info notices */
.ccreg-notice {
	padding: .85rem 1.1rem;
	border-radius: 5px;
	margin-bottom: 1.25rem;
	font-size: .925rem;
}

.ccreg-notice-success { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
.ccreg-notice-error   { background: #fdecea; border: 1px solid #f5c6c6; color: var(--ccreg-error); }
.ccreg-notice-info    { background: #e3f2fd; border: 1px solid #90caf9; color: #1565c0; }

/* E-transfer payment notice (above form) */
.ccreg-payment-notice {
	display: flex;
	align-items: flex-start;
	gap: .85rem;
	background: #fff8e1;
	border: 1px solid #ffe082;
	border-left: 4px solid #f47c20;
	border-radius: 5px;
	padding: .9rem 1rem;
	margin-bottom: 1.5rem;
	font-size: .925rem;
}
.ccreg-payment-icon { font-size: 1.4rem; line-height: 1; flex-shrink: 0; }

/* Account creation checkbox */
.ccreg-create-account-field { margin-top: 1.25rem; }
.ccreg-create-account-field .description { margin: .25rem 0 0 26px; font-size: .8rem; color: #666; }
.ccreg-logged-in-note { font-size: .875rem; color: #555; background: var(--ccreg-gray); padding: .6rem .85rem; border-radius: 4px; margin: 1rem 0; }

/* My Registrations shortcode */
.ccreg-my-regs-wrap { max-width: 720px; margin: 0 auto; }
.ccreg-my-regs-wrap h2 { color: var(--ccreg-navy); }
.ccreg-my-regs-list { display: flex; flex-direction: column; gap: 20px; }

/* Receipt card */
.ccreg-receipt-card {
	border: 1px solid var(--ccreg-border);
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.ccreg-receipt-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 1rem 1.25rem;
	background: var(--ccreg-navy);
	flex-wrap: wrap;
}
.ccreg-receipt-title { display: flex; align-items: baseline; gap: .6rem; }
.ccreg-receipt-program { font-weight: 700; font-size: 1.05rem; color: #fff; }
.ccreg-receipt-id { font-size: .8rem; color: rgba(255,255,255,.55); }

.ccreg-receipt-body { padding: 1.1rem 1.25rem; }

.ccreg-receipt-table { width: 100%; border-collapse: collapse; font-size: .925rem; }
.ccreg-receipt-table th {
	text-align: left;
	width: 140px;
	padding: .45rem 0;
	font-weight: 600;
	color: #555;
	vertical-align: top;
	border-bottom: 1px solid #f0f0f0;
}
.ccreg-receipt-table td {
	padding: .45rem 0;
	color: #222;
	border-bottom: 1px solid #f0f0f0;
}
.ccreg-receipt-table tr:last-child th,
.ccreg-receipt-table tr:last-child td { border-bottom: none; }

.ccreg-receipt-payment-box {
	margin: 0 1.25rem 1.1rem;
	padding: .75rem 1rem;
	background: #fff8f0;
	border: 1px solid #ffe0b2;
	border-radius: 5px;
	font-size: .9rem;
	line-height: 1.6;
}

/* Payment badges */
.ccreg-badge-pay-paid    { background: #e8f5e9; color: #2e7d32; }
.ccreg-badge-pay-unpaid  { background: #fff3e0; color: #e65100; }
.ccreg-badge-pay-waived  { background: #f3e5f5; color: #6a1b9a; }
.ccreg-empty { color: #666; }

@media (max-width: 480px) {
	.ccreg-btn { width: 100%; text-align: center; }
	.ccreg-payment-notice { flex-direction: column; gap: .5rem; }
}

/* Pricing option cards */
.ccreg-pricing-options { margin-bottom: 1.5rem; }
.ccreg-pricing-label {
	display: block;
	font-weight: 600;
	font-size: .9rem;
	color: var(--ccreg-navy);
	margin-bottom: .6rem;
}
.ccreg-pricing-cards { display: flex; flex-direction: column; gap: .6rem; }
.ccreg-pricing-card {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .85rem 1rem;
	border: 2px solid var(--ccreg-border);
	border-radius: 6px;
	cursor: pointer;
	transition: border-color .2s, background .2s;
	font-weight: 400;
	background: #fff;
}
.ccreg-pricing-card:hover { border-color: var(--ccreg-orange); background: #fff8f0; }
.ccreg-pricing-card:has(input:checked) { border-color: var(--ccreg-orange); background: #fff8f0; }
.ccreg-pricing-card input[type="radio"] {
	accent-color: var(--ccreg-orange);
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin: 0;
}
.ccreg-pricing-card-label { flex: 1; font-size: .95rem; color: #333; }
.ccreg-pricing-card-price { font-weight: 700; font-size: 1.05rem; color: var(--ccreg-navy); white-space: nowrap; }

/* Responsive */
@media (max-width: 480px) {
	.ccreg-btn { width: 100%; text-align: center; }
}
