/* RepairSpace UI branding. Keep brand colors distinct from semantic feedback. */
:root {
	--rs-primary: #3A83F7;
	--rs-primary-hover: #2F76E8;
	--rs-primary-active: #2669D6;
	--rs-primary-soft: #eaf2ff;
	--rs-focus: rgba(58, 131, 247, 0.25);
	--rs-text: #142a35;
	--rs-muted: #576d77;
	--rs-border: #d7e2e5;
	--rs-surface: #ffffff;
	--rs-surface-soft: #f3f6f7;
	--rs-success: #217a3a;
	--rs-success-soft: #e8f5eb;
	--rs-warning: #8a5a00;
	--rs-warning-soft: #fff5d9;
	--rs-danger: #b42318;
	--rs-danger-soft: #fff0ed;

}

/* Textual wordmark: Repair cyan, Space dark. The image logo is untouched. */
.brand {
	color: var(--rs-text) !important;
}

.rs-wordmark {
	color: var(--rs-primary) !important;
}

.rs-wordmark span {
	color: var(--rs-text) !important;
}

a {
	color: var(--rs-primary);
}

button,
.button {
	background: var(--rs-primary);
	border-color: var(--rs-primary);
	color: #ffffff;
}

button:hover,
.button:hover,
button:focus-visible,
.button:focus-visible {
	background: var(--rs-primary-hover);
	border-color: var(--rs-primary-hover);
}

button.secondary,
.secondary,
.button-secondary {
	background: var(--rs-surface);
	border-color: var(--rs-border);
	color: var(--rs-text);
}

button.secondary:hover,
.secondary:hover,
.button-secondary:hover {
	background: var(--rs-primary-soft);
	border-color: var(--rs-primary);
	color: var(--rs-text);
}

button.danger,
.danger {
	background: var(--rs-danger-soft);
	border-color: #edc3bf;
	color: var(--rs-danger);
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
	outline-color: var(--rs-focus);
}

input[type="checkbox"],
input[type="radio"] {
	accent-color: var(--rs-primary);
}

.hero {
	background: var(--rs-text);
}

.ticket-banner {
	border-left-color: var(--rs-primary);
	background: var(--rs-primary-soft);
}

.record:hover,
.pick-result,
.duplicate-results:not(:empty),
#app-notice {
	background: var(--rs-primary-soft);
}

.ticket-actionbar {
	border-color: var(--rs-primary);
}

.ticket-nav a {
	background: var(--rs-primary-soft) !important;
	color: var(--rs-primary) !important;
}
.ticket-actionbar { position: relative !important; top: auto !important; margin: 22px 0 14px !important; gap: 12px; }
.ticket-actionbar > [data-open-status] { margin: 0 0 4px; flex: 0 0 auto; }
.ticket-section-nav { position: sticky; top: 76px; z-index: 9; display: flex; gap: 8px; align-items: center; width: 100%; margin: 0 0 20px; padding: 8px; overflow-x: auto; overscroll-behavior-x: contain; background: var(--rs-surface); border: 1px solid var(--rs-border); border-radius: 10px; box-shadow: 0 3px 10px rgba(20, 45, 52, .08); scrollbar-width: thin; }
.ticket-nav { display: flex; gap: 8px; align-items: center; flex-wrap: nowrap; min-width: max-content; }
.ticket-nav-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 9px 14px; border: 1px solid var(--rs-border); border-radius: 999px; background: var(--rs-primary-soft) !important; color: var(--rs-text) !important; white-space: nowrap; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.ticket-nav-pill:hover, .ticket-nav-pill:focus-visible { border-color: var(--rs-primary); background: var(--rs-primary) !important; color: #fff !important; }
.ticket-nav-pill.is-active { border-color: var(--rs-primary); background: var(--rs-primary) !important; color: #fff !important; box-shadow: 0 0 0 2px var(--rs-primary-soft); }
.ticket-form > .card, main > .card, .ticket-timeline { scroll-margin-top: 150px; }
.documents-table { width: 100%; border-collapse: separate; border-spacing: 0 8px; }
.documents-table th { white-space: nowrap; }
.documents-table td { vertical-align: top; padding: 12px 10px; background: var(--rs-surface); border-top: 1px solid var(--rs-border); border-bottom: 1px solid var(--rs-border); }
.documents-table td:first-child { border-left: 1px solid var(--rs-border); border-radius: 8px 0 0 8px; }
.documents-table td:last-child { border-right: 1px solid var(--rs-border); border-radius: 0 8px 8px 0; }
.document-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.document-actions a { white-space: nowrap; }
.document-delivery, .document-signature { display: block; margin-bottom: 6px; }
.document-hash { display: inline-block; max-width: 12ch; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.documents-table { table-layout: fixed; }
.documents-table th:nth-child(1) { width: 8%; }.documents-table th:nth-child(2) { width: 14%; }.documents-table th:nth-child(3) { width: 14%; }.documents-table th:nth-child(4) { width: 18%; }.documents-table th:nth-child(5) { width: 11%; }.documents-table th:nth-child(6) { width: 19%; }.documents-table th:nth-child(7) { width: 16%; }
.document-hash-wrap { display: flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }
.document-hash-wrap .document-hash { flex: 1 1 auto; min-width: 0; }
.document-copy { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 780px) {
 .documents-table, .documents-table thead, .documents-table tbody, .documents-table tr, .documents-table th, .documents-table td { display: block; }
 .documents-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
 .documents-table tr { margin: 0 0 12px; border: 1px solid var(--rs-border); border-radius: 8px; overflow: hidden; }
 .documents-table td { display: grid; grid-template-columns: minmax(92px, 34%) 1fr; gap: 10px; border: 0; border-bottom: 1px solid var(--rs-border); border-radius: 0 !important; }
 .documents-table td:last-child { border-bottom: 0; }
 .documents-table td::before { content: attr(data-label); font-weight: 700; color: var(--rs-text); }
}
@media (max-width: 900px) {
 .ticket-section-nav { top: 64px; }
 .documents-table th:nth-child(1), .documents-table th:nth-child(2) { width: 10%; }
 .documents-table th:nth-child(3) { width: 13%; }.documents-table th:nth-child(4) { width: 20%; }.documents-table th:nth-child(5) { width: 10%; }.documents-table th:nth-child(6) { width: 20%; }.documents-table th:nth-child(7) { width: 17%; }
}

.rs-status.rs-ok,
.rs-ok {
	background: var(--rs-success-soft);
	color: var(--rs-success);
}

.rs-status.rs-warning,
.rs-warning {
	background: var(--rs-warning-soft);
	color: var(--rs-warning);
}

.rs-status.rs-error,
.rs-error,
.form-error,
.rs-error-text {
	color: var(--rs-danger);
}

/* Operational timeline, shared by the operator view and public status projection. */
.ticket-timeline,
.public-timeline {
	border-top: 3px solid var(--rs-primary);
}

.timeline-intro {
	color: var(--rs-muted);
	margin-top: 0;
}

.timeline-list,
.public-timeline ol {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
}

.timeline-entry,
.public-timeline li {
	border-left: 3px solid var(--rs-primary-soft);
	margin: 0 0 1rem;
	padding: .7rem 1rem;
	background: var(--rs-surface-soft);
	border-radius: 0 8px 8px 0;
}

.timeline-meta {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
	color: var(--rs-muted);
	font-size: .9rem;
}

.timeline-transition,
.public-timeline strong {
	color: var(--rs-text);
	font-weight: 700;
	margin: .35rem 0;
}

.timeline-message,
.public-timeline li p,
.public-message {
	white-space: pre-line;
	margin: .35rem 0 0;
}

.timeline-empty {
	color: var(--rs-muted);
}

.public-current-status {
	padding: .8rem 1rem;
	background: var(--rs-primary-soft);
	border-left: 4px solid var(--rs-primary);
	border-radius: 0 8px 8px 0;
}

.public-status {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0;
}

.public-updated {
	color: var(--rs-muted);
	margin: .25rem 0 0;
}

.public-details {
	display: grid;
	grid-template-columns: minmax(8rem, 12rem) 1fr;
	gap: .35rem 1rem;
	margin: 1rem 0;
}

.public-details dt {
	font-weight: 700;
	color: var(--rs-muted);
}

.public-details dd {
	margin: 0;
}

.public-timeline {
	margin-top: 1.5rem;
	padding-top: 1rem;
}

.public-timeline h2 {
	margin-top: 0;
}

.public-timeline time {
	display: block;
	font-size: .9rem;
	color: var(--rs-muted);
	margin-bottom: .25rem;
}

.laboratory-contact {
	color: var(--rs-muted);
	margin-top: 1.5rem;
}

@media (max-width: 600px) {
	.public-details {
		grid-template-columns: 1fr;
		gap: .15rem;
	}
	.public-details dd {
		margin-bottom: .45rem;
	}
}

/* Plugin wp-admin pages: retain WordPress surfaces, apply RepairSpace accents. */
.repairspace-admin .button-primary,
.repairspace-diagnostics .button-primary,
.wrap .rs-doc-settings .button-primary,
.wrap .rs-email-settings .button-primary,
.repairspace-admin .nav-tab-active {
	background: var(--rs-primary);
	border-color: var(--rs-primary);
	color: #ffffff;
}

.repairspace-admin .button-primary:hover,
.repairspace-diagnostics .button-primary:hover,
.wrap .rs-doc-settings .button-primary:hover,
.wrap .rs-email-settings .button-primary:hover {
	background: var(--rs-primary-hover);
	border-color: var(--rs-primary-hover);
}

.repairspace-admin a,
.repairspace-diagnostics a,
.rs-settings-card a {
	color: var(--rs-primary);
}

.rs-card,
.rs-settings-card,
.repairspace-card {
	border-color: var(--rs-border);
}

.rs-card:focus-within,
.rs-settings-card:focus-within {
	border-color: var(--rs-primary);
}

.rs-preset-row [aria-pressed="true"] {
	box-shadow: 0 0 0 2px var(--rs-primary) inset;
}

@media (max-width: 760px) {
	button,
	.button,
	.button-primary,
	.button-secondary {
		min-height: 44px;
	}
}
