/**
 * Front-end lab (Certificates & Reports) — align with AGTI TaskMaster tokens.
 * See agti-taskmaster/AGTI_BRAND_STYLING.md
 */

.cgp-frontend-lab,
.cgp-frontend-lab-gate {
	--cgp-tm-primary: #ca8e46;
	--cgp-tm-primary-hover: #b07636;
	--cgp-tm-secondary: #0d906b;
	--cgp-tm-secondary-hover: #0b7a5c;
	--cgp-tm-slate: #0f172a;
	--cgp-tm-border: #e5e7eb;
	--cgp-tm-bg: #fafbfc;
	--cgp-tm-radius: 6px;
	--cgp-tm-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #212529;
}

/* Full-width shortcode: theme content column; inner .wrap not capped at 1200px */
.cgp-frontend-lab,
.cgp-frontend-lab .wrap,
.cgp-frontend-lab.cgp-frontend-lab--center,
.cgp-frontend-lab--center .agti-cgp-center {
	width: 100%;
	max-width: none;
	margin-left: auto;
	margin-right: auto;
	padding: 0.75rem 0.75rem;
	box-sizing: border-box;
}

/* Form embed prints inline max-width:1200px; span full lab width on front */
.cgp-frontend-lab .cgp-certificate-form:not(.cgp-tpl-form-preview),
.cgp-frontend-lab--center .cgp-certificate-form:not(.cgp-tpl-form-preview) {
	width: 100% !important;
	max-width: none !important;
}

.cgp-frontend-lab--center {
	background: var(--cgp-tm-bg);
	border: 1px solid var(--cgp-tm-border);
	border-radius: var(--cgp-tm-radius);
	box-shadow: var(--cgp-tm-shadow);
}

.cgp-frontend-lab--center .agti-cgp-panel,
.cgp-frontend-lab--center .agti-template-form {
	background: #fff;
}

.cgp-frontend-lab .cgp-lab-standalone-block__h {
	font-size: 1.1rem;
	font-weight: 600;
	margin: 0 0 0.5rem;
	color: var(--cgp-tm-slate);
}

.cgp-frontend-lab .cgp-lab-standalone-block .description {
	margin-bottom: 0.75rem;
}

/* Client / certificate tables + pagination (public lab) */
.cgp-frontend-lab .cgp-lab-certs-table,
.cgp-frontend-lab .cgp-client-list-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--cgp-tm-primary);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	box-sizing: border-box;
}

.cgp-frontend-lab .cgp-lab-certs-table thead th,
.cgp-frontend-lab .cgp-client-list-table thead th {
	background: var(--cgp-tm-secondary) !important;
	color: #fff !important;
	font-weight: 600;
	border: 1px solid var(--cgp-tm-primary);
	padding: 0.55rem 0.75rem;
	text-align: left;
}

.cgp-frontend-lab .cgp-lab-certs-table tbody td,
.cgp-frontend-lab .cgp-client-list-table tbody td {
	border: 1px solid var(--cgp-tm-primary);
	padding: 0.5rem 0.75rem;
	background: #fff;
	color: #1f2937;
}

.cgp-frontend-lab .cgp-lab-certs-table tbody tr:nth-child(even) td,
.cgp-frontend-lab .cgp-client-list-table tbody tr:nth-child(even) td {
	background: #f8fafc !important;
}

.cgp-frontend-lab .cgp-lab-certs-table .button.button-small,
.cgp-frontend-lab .cgp-client-list-table .button {
	font-size: 12px;
	min-height: 28px;
	line-height: 1.8;
	background: #fff;
	border-color: var(--cgp-tm-primary);
	color: #1f2937;
}

.cgp-frontend-lab .cgp-lab-certs-table .button.button-small:hover,
.cgp-frontend-lab .cgp-client-list-table .button:hover {
	border-color: var(--cgp-tm-primary);
	color: var(--cgp-tm-primary);
}

.cgp-frontend-lab .cgp-lab-certs-pager {
	margin: 1rem 0;
	text-align: center;
}

.cgp-frontend-lab .cgp-lab-certs-pager--top {
	margin-top: 0;
	margin-bottom: 1rem;
}

.cgp-frontend-lab .cgp-lab-certs-pager--bottom {
	margin-top: 1rem;
	margin-bottom: 0;
}

.cgp-frontend-lab .cgp-lab-certs-pager__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem 1rem;
}

.cgp-frontend-lab .cgp-lab-certs-pager__status {
	color: #374151;
	font-size: 0.9rem;
}

.cgp-frontend-lab .cgp-lab-certs-pager__btn,
.cgp-frontend-lab a.cgp-lab-certs-pager__btn {
	background: var(--cgp-tm-primary) !important;
	border: 1px solid var(--cgp-tm-primary) !important;
	color: #fff !important;
}

.cgp-frontend-lab .cgp-lab-certs-pager__btn:hover,
.cgp-frontend-lab a.cgp-lab-certs-pager__btn:hover {
	background: var(--cgp-tm-primary-hover) !important;
	border-color: var(--cgp-tm-primary-hover) !important;
	color: #fff !important;
}

.cgp-frontend-lab .cgp-lab-certs-pager__btn--disabled {
	background: #e4e4e7 !important;
	border: 1px solid #d4d4d8 !important;
	color: #71717a !important;
	cursor: not-allowed;
}

.cgp-frontend-lab-denied,
.cgp-frontend-lab-missing-auth {
	padding: 1rem 1.25rem;
	background: #fff8e6;
	border: 1px solid var(--cgp-tm-primary);
	border-radius: var(--cgp-tm-radius);
}

.cgp-frontend-lab-gate--login {
	max-width: 480px;
	margin: 0 auto;
	padding: 1rem 0;
}

.cgp-frontend-lab-gate .agti-login-form-container {
	margin-bottom: 1.5rem;
}

/* WordPress admin notices in front context */
.cgp-frontend-lab--center .notice {
	padding: 0.75rem 1rem;
	margin: 0 0 1rem;
	background: #fff;
	border-left: 4px solid var(--cgp-tm-primary);
	border-radius: 4px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.cgp-frontend-lab--center .notice.notice-success {
	border-left-color: var(--cgp-tm-secondary);
}

/* -----------------------------------------------------------------
   Normal / compact scale (front lab only — does not change wp-admin)
   ----------------------------------------------------------------- */
.cgp-frontend-lab h1,
.cgp-frontend-lab .cgp-dashboard h1,
.cgp-frontend-lab .agti-cgp-center-title {
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 0.4em 0 0.65em;
}

.cgp-frontend-lab h2,
.cgp-frontend-lab h3,
.cgp-frontend-lab .cgp-dashboard-card h2 {
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.35;
}

.cgp-frontend-lab p,
.cgp-frontend-lab li,
.cgp-frontend-lab label,
.cgp-frontend-lab .description {
	font-size: 1em;
}

.cgp-frontend-lab .wrap,
.cgp-frontend-lab.cgp-frontend-lab--center,
.cgp-frontend-lab--center .agti-cgp-center {
	padding: 0.75rem 0.5rem;
}

.cgp-frontend-lab .agti-cgp-panel,
.cgp-frontend-lab--center .agti-cgp-panel {
	padding: 12px 14px !important;
}

.cgp-frontend-lab .nav-tab-wrapper {
	margin-top: 8px !important;
}

.cgp-frontend-lab .nav-tab {
	font-size: 13px;
	padding: 4px 10px 6px;
	line-height: 1.35;
}

.cgp-frontend-lab .button,
.cgp-frontend-lab .button.button-primary,
.cgp-frontend-lab .button.button-secondary,
.cgp-frontend-lab a.button,
.cgp-frontend-lab input.button {
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 2.15384615;
	min-height: 30px;
	padding: 0 10px 1px;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.cgp-frontend-lab .button .dashicons,
.cgp-frontend-lab .button .dashicons-before::before {
	font-size: 16px;
	width: 16px;
	height: 16px;
	line-height: 1.1;
}

.cgp-frontend-lab .cgp-quick-actions {
	gap: 6px;
}

.cgp-frontend-lab .cgp-dashboard-header {
	margin: 8px 0;
	padding: 10px 12px;
}

.cgp-frontend-lab .cgp-dashboard-card {
	margin-top: 10px;
	padding: 12px;
}

.cgp-frontend-lab .cgp-recent-certificates th,
.cgp-frontend-lab .cgp-recent-certificates td {
	font-size: 13px;
	padding: 6px 8px;
}

.cgp-frontend-lab table.form-table th,
.cgp-frontend-lab table.form-table td {
	font-size: 13px;
	padding: 8px 10px 8px 0;
}

.cgp-frontend-lab .form-table input[type='text'],
.cgp-frontend-lab .form-table input[type='email'],
.cgp-frontend-lab .form-table input[type='number'],
.cgp-frontend-lab .form-table input[type='date'],
.cgp-frontend-lab .form-table select,
.cgp-frontend-lab .form-table textarea,
.cgp-frontend-lab .cgp-form-row input,
.cgp-frontend-lab .cgp-form-row select,
.cgp-frontend-lab .cgp-form-row textarea {
	font-size: 13px;
}

.cgp-frontend-lab .cgp-certificate-form {
	padding: 12px 14px !important;
}

.cgp-frontend-lab .cgp-form-section {
	padding: 14px 16px !important;
	margin-bottom: 14px !important;
}

.cgp-frontend-lab .cgp-form-section h2 {
	font-size: 1.05rem;
	padding-bottom: 6px;
}

.cgp-frontend-lab .cgp-form-row label {
	font-size: 13px;
	font-weight: 500;
}

.cgp-frontend-lab .cgp-req,
.cgp-frontend-lab--center .cgp-req {
	color: #dc3232;
	font-weight: 700;
	margin-left: 2px;
}

.cgp-frontend-lab .cgp-form-row--invalid label {
	color: #b32d2e;
}

.cgp-frontend-lab .cgp-field-invalid,
.cgp-frontend-lab .cgp-form-row--invalid input[type="text"],
.cgp-frontend-lab .cgp-form-row--invalid input[type="email"],
.cgp-frontend-lab .cgp-form-row--invalid input[type="tel"],
.cgp-frontend-lab .cgp-form-row--invalid input[type="date"],
.cgp-frontend-lab .cgp-form-row--invalid select,
.cgp-frontend-lab .cgp-form-row--invalid textarea {
	border-color: #dc3232 !important;
	box-shadow: 0 0 0 1px #dc3232;
}

.cgp-frontend-lab .cgp-form-row--invalid .cgp-file-input label {
	outline: 2px solid #dc3232;
	outline-offset: 2px;
}

.cgp-frontend-lab .cgp-form-row select {
	height: 32px;
	min-height: 32px;
}

.cgp-frontend-lab .cgp-file-input label {
	font-size: 13px;
	padding: 5px 10px;
}

.cgp-frontend-lab .agti-create-left,
.cgp-frontend-lab .agti-create-right {
	padding: 12px;
}

.cgp-frontend-lab .agti-live-preview {
	font-size: 13px;
}

.cgp-frontend-lab--center .notice {
	font-size: 13px;
	padding: 0.5em 0.75rem;
}

.cgp-frontend-lab .cgp-form-row {
	margin-bottom: 8px;
}

.cgp-frontend-lab .cgp-form-table {
	margin: 10px 0;
}

.cgp-frontend-lab .cgp-form-table th,
.cgp-frontend-lab .cgp-form-table td {
	padding: 6px 0;
}

.cgp-frontend-lab .submit-row,
.cgp-frontend-lab .cgp-submit-row {
	margin-top: 12px;
	padding-top: 12px;
}

.cgp-frontend-lab .cgp-submit-btn {
	font-size: 14px;
	font-weight: 500;
	padding: 6px 16px;
}

/* Template library: grid, editor + rail, add new, drop zones */
.cgp-frontend-lab .cgp-template-mgmt--lab {
	margin-top: 0.5rem;
}

.cgp-frontend-lab .cgp-template-mgmt__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 0.5rem;
	align-items: start;
}

@media (max-width: 1100px) {
	.cgp-frontend-lab .cgp-template-mgmt__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.cgp-frontend-lab .cgp-template-mgmt__grid {
		grid-template-columns: 1fr;
	}
}

.cgp-frontend-lab .cgp-tpl-browse__cell {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cgp-frontend-lab .cgp-tpl-browse__open {
	display: block;
	padding: 0.75rem;
	border: 1px solid var(--cgp-tm-border);
	border-radius: var(--cgp-tm-radius);
	background: #fff;
	color: var(--cgp-tm-slate);
	text-decoration: none;
	box-shadow: var(--cgp-tm-shadow);
}

.cgp-frontend-lab .cgp-tpl-browse__open:hover {
	border-color: var(--cgp-tm-primary);
}

.cgp-frontend-lab .cgp-tpl-browse__thumb {
	display: block;
	background: #f1f5f9;
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 0.5rem;
}

.cgp-frontend-lab .cgp-tpl-browse__thumb img {
	width: 100%;
	height: 120px;
	object-fit: cover;
}

.cgp-frontend-lab .cgp-tpl-browse__title {
	font-weight: 600;
	display: block;
}

.cgp-frontend-lab .cgp-tpl-browse__sub {
	font-size: 0.8rem;
	color: #64748b;
}

.cgp-frontend-lab .cgp-tpl-new-block {
	margin-top: 1.5rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--cgp-tm-border);
	border-radius: var(--cgp-tm-radius);
}

.cgp-frontend-lab .cgp-tpl-seg__input {
	width: 100%;
	max-width: 32rem;
}

/* Template editor layout: see cgp-template-builder.css (grid). Allow panel to show full width. */
.cgp-frontend-lab .agti-cgp-panel,
.cgp-frontend-lab .cgp-template-mgmt--lab {
	overflow: visible;
	max-width: 100%;
}

/* Template editor: two-column layout — see cgp-template-builder.css */

.cgp-frontend-lab .cgp-tpl-field-builder {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cgp-frontend-lab .cgp-tpl-field {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) auto auto 32px 32px;
	gap: 0.4rem 0.6rem;
	align-items: center;
	padding: 0.5rem 0.65rem;
	background: #f8fafc;
	border: 1px solid var(--cgp-tm-border);
	border-radius: 6px;
}

.cgp-frontend-lab .cgp-tpl-field__label-input,
.cgp-frontend-lab .cgp-tpl-field__ph-input {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	box-sizing: border-box;
}

.cgp-frontend-lab .cgp-tpl-field__label-input {
	padding: 5px 8px;
	font-size: 13px;
}

.cgp-frontend-lab .cgp-tpl-field__ph {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 0.4rem;
	align-items: center;
	padding-top: 0.35rem;
	margin-top: 0.15rem;
	border-top: 1px dashed #e2e8f0;
}

.cgp-frontend-lab .cgp-tpl-field__ph-title {
	font-size: 10px;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
}

.cgp-frontend-lab .cgp-tpl-field__ph-input {
	padding: 4px 8px;
	font-size: 12px;
}

.cgp-frontend-lab .cgp-tpl-field__toggle.is-disabled {
	opacity: 0.45;
	pointer-events: none;
}

.cgp-frontend-lab .cgp-tpl-field__delete,
.cgp-frontend-lab .cgp-tpl-field__add {
	border-radius: 4px;
	cursor: pointer;
	padding: 4px 6px;
	line-height: 1;
}

.cgp-frontend-lab .cgp-tpl-field__delete {
	background: transparent;
	border: 1px solid var(--cgp-tm-border);
	color: #64748b;
}

.cgp-frontend-lab .cgp-tpl-field__delete:hover {
	border-color: #dc2626;
	color: #dc2626;
}

.cgp-frontend-lab .cgp-tpl-field__add {
	background: var(--cgp-tm-secondary);
	border: 1px solid var(--cgp-tm-secondary);
	color: #fff;
}

.cgp-frontend-lab .cgp-tpl-field__add .dashicons,
.cgp-frontend-lab .cgp-tpl-field__add .dashicons::before {
	color: #fff;
}

.cgp-frontend-lab .cgp-tpl-field__add:hover,
.cgp-frontend-lab .cgp-tpl-field__add:focus {
	background: var(--cgp-tm-secondary-hover);
	border-color: var(--cgp-tm-secondary-hover);
	color: #fff;
}

.cgp-frontend-lab .cgp-tpl-field__add:hover .dashicons,
.cgp-frontend-lab .cgp-tpl-field__add:hover .dashicons::before,
.cgp-frontend-lab .cgp-tpl-field__add:focus .dashicons,
.cgp-frontend-lab .cgp-tpl-field__add:focus .dashicons::before {
	color: #fff;
}

.cgp-frontend-lab .cgp-tpl-railcard {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	padding: 0.5rem 0.6rem;
	background: #fff;
	border: 1px solid var(--cgp-tm-border);
	border-radius: 6px;
	text-decoration: none;
	color: var(--cgp-tm-slate);
}

.cgp-frontend-lab .cgp-tpl-railcard:hover {
	border-color: var(--cgp-tm-primary);
}

.cgp-frontend-lab .cgp-tpl-imgpair {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

.cgp-frontend-lab .cgp-tpl-imgcard {
	flex: 1 1 45%;
	min-width: 200px;
}

.cgp-frontend-lab .cgp-tpl-dz {
	position: relative;
	border: 1px dashed #cbd5e1;
	border-radius: 8px;
	padding: 0.75rem;
	min-height: 140px;
	background: #f8fafc;
}

.cgp-frontend-lab .cgp-tpl-dz--hover {
	border-color: var(--cgp-tm-primary);
	background: #fff9f0;
}

.cgp-frontend-lab .cgp-tpl-dz__placeholder {
	display: flex;
	min-height: 80px;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	color: #64748b;
	text-align: center;
}

/* Hide WP admin bar on lab pages (filter + fallback for stubborn themes) */
body.cgp-lab-page--no-admin-bar #wpadminbar,
body.cgp-lab-page #wpadminbar {
	display: none !important;
}

html.cgp-lab-page--no-admin-bar,
body.cgp-lab-page--no-admin-bar {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

body.admin-bar.cgp-lab-page--no-admin-bar {
	margin-top: 0 !important;
}

.cgp-lab-gate-reset-link,
.cgp-lab-gate-back {
	margin: 0.75rem 0 0;
	text-align: center;
	font-size: 0.9rem;
}

.cgp-lab-gate-back {
	margin-bottom: 1rem;
	text-align: left;
}

.cgp-lab-create-back {
	margin: 0 0 1rem;
}

.cgp-lab-create-back a {
	color: var(--cgp-tm-secondary);
	text-decoration: none;
	font-weight: 600;
}

.cgp-lab-create-back a:hover {
	color: var(--cgp-tm-secondary-hover);
	text-decoration: underline;
}

.cgp-lab-session-bar {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 0.5rem;
	font-size: 0.85rem;
}

.cgp-lab-session-bar a {
	color: var(--cgp-tm-secondary);
	text-decoration: none;
}

.cgp-lab-session-bar a:hover {
	color: var(--cgp-tm-secondary-hover);
	text-decoration: underline;
}

/* Certificate create modal (front lab dashboard) */
.cgp-cert-create-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: none !important;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	box-sizing: border-box;
}

.cgp-cert-create-modal.is-open {
	display: flex !important;
}

.cgp-cert-create-modal[hidden]:not(.is-open) {
	display: none !important;
}

body.cgp-cert-modal-open {
	overflow: hidden;
}

.cgp-cert-create-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
}

.cgp-cert-create-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(960px, 100%);
	max-height: min(92vh, 900px);
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
	border: 1px solid var(--cgp-tm-border);
	outline: none;
}

.cgp-cert-create-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--cgp-tm-border);
	flex-shrink: 0;
}

.cgp-cert-create-modal__title {
	margin: 0;
	font-size: 1.15rem;
	color: var(--cgp-tm-slate);
}

.cgp-cert-create-modal__close {
	background: none;
	border: none;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	color: #64748b;
	padding: 0 0.25rem;
}

.cgp-cert-create-modal__close:hover {
	color: var(--cgp-tm-slate);
}

.cgp-cert-create-modal__body {
	overflow: auto;
	padding: 1rem 1.25rem 1.25rem;
	flex: 1 1 auto;
}

.cgp-cert-create-modal__body .cgp-certificate-form {
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
}

/* Front lab backup panel (?cgp_lab_view=backup) */
.agti-cgp-center .cgp-backup-management .notice {
	margin: 1em 0;
}
