/* Hotminds Brand — .impeccable.md B1+B2 */

/* B1 — Font self-host (woff2 da wwwroot/fonts/) */
@font-face {
	font-family: "Cabinet Grotesk";
	src: url("../fonts/cabinet-grotesk-700.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Cabinet Grotesk";
	src: url("../fonts/cabinet-grotesk-500.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: "Satoshi";
	src: url("../fonts/satoshi-400.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Satoshi";
	src: url("../fonts/satoshi-500.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: "Satoshi";
	src: url("../fonts/satoshi-700.woff2") format("woff2");
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Satoshi";
	src: url("../fonts/satoshi-900.woff2") format("woff2");
	font-weight: 900;
	font-display: swap;
}

@font-face {
	font-family: "JetBrains Mono";
	src: url("../fonts/jetbrains-mono-400.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "JetBrains Mono";
	src: url("../fonts/jetbrains-mono-500.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

/* B2 — Token theme-aware */
:root {
	--lime: #BFDD2E;
	--lime-ink: #0B1304;
	--purple: #6C5CE7;
	--ink: #0A0A0F;
	--paper: #F4F4EE;
	--ink-soft: #9097A8;
	--paper-soft: #4B4F5A;
	--ok: #3FA34D;
	--warn: #E0A12B;
	--error: #D6453A;
	--info: #6C5CE7;
	/* semantic mapping — dark default */
	--bg: var(--ink);
	--fg: #F4F4EE;
	--muted: var(--ink-soft);
	--accent: var(--lime);
	--surface: #111118;
	--surface-2: #1a1a24;
	--border: rgba(255,255,255,0.08);
	/* Bootstrap 5 overrides */
	--bs-body-bg: var(--bg);
	--bs-body-color: var(--fg);
	--bs-primary: #BFDD2E;
	--bs-primary-rgb: 191,221,46;
	--bs-font-sans-serif: "Satoshi", system-ui, sans-serif;
	--bs-font-monospace: "JetBrains Mono", ui-monospace, monospace;
	--bs-border-color: var(--border);
}

[data-bs-theme="light"] {
	--bg: var(--paper);
	--fg: #0A0A0F;
	--muted: var(--paper-soft);
	--accent: var(--lime);
	--surface: #FFFFFF;
	--surface-2: #EEEEEA;
	--border: rgba(0,0,0,0.10);
	--bs-body-bg: var(--bg);
	--bs-body-color: var(--fg);
}

body {
	background: var(--bg);
	color: var(--fg);
	font-family: var(--bs-font-sans-serif);
}

h1, h2, .display-font {
	font-family: "Cabinet Grotesk", "SF Pro Display", "Helvetica Neue", sans-serif;
}

code, pre, .font-mono, td.mono, .badge-mono {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 14px;
}

/* Buttons */
.btn-primary {
	background: var(--lime);
	color: var(--lime-ink);
	border-color: var(--lime);
	font-weight: 700;
}

	.btn-primary:hover, .btn-primary:focus {
		background: #a8c226;
		border-color: #a8c226;
		color: var(--lime-ink);
	}

/* Focus ring */
a:focus-visible, button:focus-visible {
	outline: 2px solid var(--purple);
	outline-offset: 2px;
}

/* Navbar */
.navbar {
	background: var(--surface) !important;
	border-bottom: 1px solid var(--border);
}

.hm-logo-link {
	display: flex;
	align-items: center;
}

.hm-logo svg {
	height: 28px;
	width: auto;
	display: block;
	color: var(--fg);
}

/* Cards / panels */
.panel {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 1.5rem;
}

/* Severity badges */
.sev-critico {
	color: #D6453A;
	font-weight: 700;
}

.sev-attenzione {
	color: #E0A12B;
	font-weight: 700;
}

.sev-lieve {
	color: #b8860b;
	font-weight: 700;
}

.sev-ok {
	color: var(--ok);
	font-weight: 700;
}

/* Tables */
.table {
	--bs-table-bg: transparent;
	--bs-table-border-color: var(--border);
}

	.table > :not(caption) > * > * {
		color: var(--fg);
	}

.table-cell-warn {
	background: rgba(224,161,43,0.15) !important;
}

.table-cell-ok {
	background: rgba(63,163,77,0.12) !important;
}

.table-cell-miss {
	background: rgba(214,69,58,0.15) !important;
}

.table-cell-ferie {
	background: rgba(52,152,219,0.15) !important;
}

.table-cell-holiday {
	background: rgba(108,92,231,0.10) !important;
}

.table-cell-weekend {
	background: rgba(144,151,168,0.08) !important;
}

/* Tabs */
.nav-tabs {
	border-bottom: 1px solid var(--border);
}

	.nav-tabs .nav-link {
		color: var(--muted);
		border: none;
		padding: .5rem 1rem;
		font-weight: 500;
	}

		.nav-tabs .nav-link.active {
			color: var(--lime);
			border-bottom: 2px solid var(--lime);
			background: none;
		}

		.nav-tabs .nav-link:hover {
			color: var(--fg);
		}

/* Upload zone */
.upload-zone {
	border: 2px dashed var(--border);
	border-radius: 12px;
	padding: 3rem;
	text-align: center;
	transition: border-color .2s;
}

	.upload-zone:hover {
		border-color: var(--lime);
	}

	.upload-zone .upload-num {
		font-family: "Cabinet Grotesk", sans-serif;
		font-size: 3rem;
		font-weight: 700;
		color: var(--lime);
	}

/* Badge count nei tab */
.badge-count {
	display: inline-block;
	font-size: 10px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-weight: 700;
	line-height: 1;
	padding: 2px 5px;
	border-radius: 3px;
	background: rgba(255,255,255,0.07);
	vertical-align: middle;
}

[data-bs-theme="light"] .badge-count {
	background: rgba(0,0,0,0.07);
}

/* Tab-content panel raccordato ai tab sopra */
.tab-content.panel, .tab-content-panel {
	border-top-left-radius: 0;
	border-top: none;
}

.tab-pane {
	padding-top: .75rem;
}

/* Ghost button — sfondo lime, testo a contrasto */
.btn-ghost {
	border: 1px solid var(--lime);
	color: var(--lime-ink);
	background: var(--lime);
	font-size: 14px;
	font-weight: 600;
}

	.btn-ghost:hover, .btn-ghost:focus {
		background: #a8c226;
		border-color: #a8c226;
		color: var(--lime-ink);
	}

[data-bs-theme="light"] .btn-ghost {
	color: var(--lime-ink);
}

/* Themed form controls */
.input-themed {
	background: var(--surface-2);
	border: 1px solid var(--border);
	color: var(--fg);
}

	.input-themed:focus {
		background: var(--surface-2);
		color: var(--fg);
		border-color: var(--purple);
		box-shadow: 0 0 0 2px rgba(108,92,231,.2);
	}

.input-themed-sm {
	max-width: 320px;
}

/* Typography utilities */
.panel-heading {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--muted);
}

.stat-label {
	font-size: 13px;
	color: var(--muted);
}

.text-note {
	font-size: 12px;
	color: var(--muted);
}

.stat-value {
	font-size: 1.5rem;
}

.stat-value--accent {
	color: var(--lime);
}

.text-accent-bold {
	color: var(--lime);
	font-weight: 700;
}

.text-data {
	font-size: 14px;
}

/* Table utilities */
.table-data {
	font-size: 14px;
}

.thead-muted {
	color: var(--muted);
}

.col-nowrap {
	white-space: nowrap;
}

.col-day {
	min-width: 36px;
}

.tfoot-divider {
	border-top: 1px solid var(--border) !important;
}

/* Alert block (es. R21 forfettizzati) */
.alert-block {
	background: rgba(214,69,58,0.10);
	border-radius: 6px;
	border-left: 3px solid var(--error);
}

.alert-block-label {
	font-size: 11px;
	color: var(--error);
}

/* Pivot collapse rows (Tab2) */
.pivot-row {
	background: var(--surface);
}

.border-top-row {
	border-top: 1px solid var(--border);
}

.pivot-summary {
	display: flex;
	align-items: center;
	width: 100%;
	padding: .6rem 1rem;
	background: transparent;
	border: none;
	color: var(--fg);
	cursor: pointer;
	text-align: left;
	gap: 1rem;
}

	.pivot-summary:hover {
		background: rgba(255,255,255,0.03);
	}

[data-bs-theme="light"] .pivot-summary:hover {
	background: rgba(0,0,0,0.03);
}

.pivot-name {
	font-weight: 600;
	min-width: 180px;
	flex-shrink: 0;
}

.pivot-meta {
	display: flex;
	gap: .75rem;
	align-items: center;
	flex: 1;
	font-size: 12px;
}

.text-muted-val {
	color: var(--muted);
}

.pivot-chevron {
	margin-left: auto;
	color: var(--muted);
	font-size: 18px;
	line-height: 1;
	transition: transform .2s;
}

.pivot-summary[aria-expanded="true"] .pivot-chevron {
	transform: rotate(90deg);
}

/* Month selector */
.month-selector select {
	background: var(--surface-2);
	color: var(--fg);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: .375rem .75rem;
	font-family: "JetBrains Mono", monospace;
	font-size: 13px;
}
