/* NeuroClub 0.40.6 – accessibility, responsive tables and performance acceptance. */
.nc-a11y-skip-link,
.nc-skip-link {
	position: fixed;
	z-index: 100000;
	top: 8px;
	left: 8px;
	transform: translateY(-160%);
	padding: 10px 14px;
	background: #fff;
	color: #111;
	border: 2px solid currentColor;
	font-weight: 800;
}
.nc-a11y-skip-link:focus,
.nc-skip-link:focus { transform: translateY(0); }

.nc-admin :focus-visible,
.nc-terminal-app :focus-visible,
.neuroclub-public :focus-visible {
	outline: 3px solid var(--nc-red, var(--nc-public-accent, #8f1d2c));
	outline-offset: 3px;
}

.nc-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 16px 0 0;
	padding: 12px 16px;
	background: var(--nc-ui-surface, #fff);
	border: 1px solid var(--nc-ui-line, #d6dbe1);
}
.nc-pagination p { margin: 0; color: var(--nc-ui-muted, #65707c); }
.nc-pagination .page-numbers { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nc-pagination a,
.nc-pagination .current { display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 5px 9px; border: 1px solid var(--nc-ui-line, #d6dbe1); background: var(--nc-ui-surface, #fff); color: var(--nc-ui-text, #20242a); text-decoration: none; font-weight: 700; }
.nc-pagination .current { background: var(--nc-red, #8f1d2c); color: #fff; border-color: var(--nc-red, #8f1d2c); }

.nc-performance-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.nc-performance-score { min-width: 132px; padding: 16px; text-align: center; border: 1px solid var(--nc-ui-line); background: var(--nc-ui-surface-2); }
.nc-performance-score strong { display: block; font-size: 34px; line-height: 1; }
.nc-performance-score span { display: block; margin-top: 6px; color: var(--nc-ui-muted); }
.nc-performance-checks,
.nc-performance-browser-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.nc-performance-check,
.nc-performance-browser-item { display: flex; align-items: flex-start; gap: 11px; min-height: 84px; padding: 13px; border: 1px solid var(--nc-ui-line); background: var(--nc-ui-surface-2); }
.nc-performance-check .dashicons { flex: 0 0 auto; }
.nc-performance-check strong { display: block; }
.nc-performance-check p { margin: 5px 0 0; color: var(--nc-ui-muted); }
.nc-performance-check.is-ok { border-left: 4px solid var(--nc-ok, #2f8f5b); }
.nc-performance-check.is-warning,
.nc-performance-browser-item.is-warning { border-left: 4px solid var(--nc-warn, #b87300); }
.nc-performance-check.is-error,
.nc-performance-browser-item.is-error { border-left: 4px solid var(--nc-danger, #b42335); }
.nc-performance-browser-item { flex-direction: column; justify-content: center; }
.nc-performance-browser-item strong { font-size: 25px; }
.nc-performance-browser-item span { color: var(--nc-ui-muted); }
.nc-performance-matrix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.nc-performance-matrix label { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid var(--nc-ui-line); background: var(--nc-ui-surface-2); }
.nc-performance-matrix input { margin-top: 3px; }

[role="dialog"] { max-width: min(100% - 24px, 920px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow: auto; overscroll-behavior: contain; }

@media (max-width: 720px) {
	.nc-pagination { align-items: flex-start; flex-direction: column; }
	.nc-performance-intro { align-items: stretch; flex-direction: column; }
	.nc-performance-matrix { grid-template-columns: 1fr; }
	.nc-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
	table.nc-table-stack-mobile,
	table.nc-table-stack-mobile tbody,
	table.nc-table-stack-mobile tr,
	table.nc-table-stack-mobile td { display: block; width: 100%; }
	table.nc-table-stack-mobile thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	table.nc-table-stack-mobile tbody { display: grid; gap: 12px; }
	table.nc-table-stack-mobile tr { padding: 8px 12px; border: 1px solid var(--nc-ui-line, #d6dbe1); background: var(--nc-ui-surface, #fff); }
	table.nc-table-stack-mobile td { display: grid; grid-template-columns: minmax(100px, 38%) 1fr; gap: 10px; padding: 9px 0 !important; border: 0 !important; border-bottom: 1px solid var(--nc-ui-line, #d6dbe1) !important; overflow-wrap: anywhere; }
	table.nc-table-stack-mobile td:last-child { border-bottom: 0 !important; }
	table.nc-table-stack-mobile td::before { content: attr(data-label); color: var(--nc-ui-muted, #65707c); font-weight: 800; }
	.nc-admin .nc-form-actions { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
	[role="dialog"] { max-width: calc(100% - 12px); max-height: calc(100vh - 12px); max-height: calc(100dvh - 12px); margin: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.nc-admin *, .nc-terminal-app *, .neuroclub-public * { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

@media (prefers-contrast: more) {
	.nc-admin, .nc-terminal-app, .neuroclub-public { --nc-ui-line: currentColor; --nc-ui-line-strong: currentColor; }
	.nc-admin .button, .nc-terminal-app .button, .neuroclub-public button, .neuroclub-public a { text-decoration-thickness: 2px; }
}

@media (forced-colors: active) {
	.nc-admin *, .nc-terminal-app *, .neuroclub-public * { box-shadow: none !important; }
	.nc-status, .nc-badge, .button, button, input, select, textarea { border: 1px solid ButtonText !important; }
}
