@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/assets/centerfit/fonts/IBMPlexSans-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("/assets/centerfit/fonts/IBMPlexSans-Medium.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("/assets/centerfit/fonts/IBMPlexSans-SemiBold.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/assets/centerfit/fonts/IBMPlexSans-Bold.woff2") format("woff2");
}

/* Scrivania: stesso fondo, carattere e blu di banco e quadro. Vale su liste, schede, report e aree. */
html[data-theme="light"] {
	--font-stack: "IBM Plex Sans", "Segoe UI", sans-serif;
	--bg-color: #e8edf3;
	--fg-color: #ffffff;
	--card-bg: #ffffff;
	--navbar-bg: #ffffff;
	--subtle-fg: #f4f7fb;
	--subtle-accent: #f4f7fb;
	--fg-hover-color: #f4f7fb;
	--control-bg: #f4f7fb;
	--border-color: #e1e6ee;
	--dark-border-color: #d5dbe3;
	--table-border-color: #e1e6ee;
	--text-color: #1a2332;
	--heading-color: #1a2332;
	--text-neutral: #1a2332;
	--text-muted: #5d6b7c;
	--btn-primary: #243f6b;
	--border-primary: #243f6b;
	--primary: #243f6b;
	--primary-color: #243f6b;
	--cf-menu-accent: #243f6b;
	--border-radius: 10px;
	--border-radius-md: 16px;
	--border-radius-lg: 16px;
}

html[data-theme="dark"] {
	--font-stack: "IBM Plex Sans", "Segoe UI", sans-serif;
}

html[data-theme="light"] body {
	font-variant-numeric: tabular-nums;
}

html[data-theme="light"] .btn.btn-primary:hover {
	background-color: #1c3358;
	color: #fff;
}

html[data-theme="light"] .btn.btn-primary:active {
	background-color: #1c3358 !important;
	color: #fff !important;
}

html[data-theme="light"] .form-control:focus,
html[data-theme="light"] .input-with-feedback:focus {
	border-color: #243f6b;
	box-shadow: 0 0 0 2px rgba(36, 63, 107, 0.16);
}

@media (prefers-reduced-motion: reduce) {
	html[data-theme="light"] .btn.btn-primary {
		transition: none;
	}
}

/* Il logo è orizzontale: Frappe di default lo forza a 24px di larghezza. */
.navbar .app-logo,
header .navbar-brand .app-logo {
	width: auto;
	height: 34px;
	max-width: 200px;
	object-fit: contain;
}

.page-card-head .app-logo,
.for-login .app-logo,
.for-forgot .app-logo,
.for-signup .app-logo,
.for-email-login .app-logo {
	width: auto;
	height: 96px;
	max-width: 360px;
	object-fit: contain;
}

/* Banco Oggi: il .container Desk è capped (xl 1290px). Solo questa pagina. */
.page-container[data-page-route="banco-oggi"] > .page-head > .container,
.page-container[data-page-route="banco-oggi"] > .container.page-body {
	width: 100%;
	max-width: none;
	padding-left: clamp(32px, 4vw, 72px);
	padding-right: clamp(32px, 4vw, 72px);
}

.cf-banco-overlay {
	position: fixed;
	inset: 0;
	z-index: 1060;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 4vw;
	background: rgba(28, 36, 48, 0.48);
	box-sizing: border-box;
}

.cf-banco-overlay[hidden] {
	display: none !important;
}

body.cf-banco-overlay-aperto .modal,
body:has(.cf-banco-overlay:not([hidden])) .modal {
	z-index: 1080;
}

body.cf-banco-overlay-aperto .modal-backdrop,
body:has(.cf-banco-overlay:not([hidden])) .modal-backdrop {
	z-index: 1075;
}

.page-container[data-page-route="quadro"] > .page-head > .container,
.page-container[data-page-route="quadro"] > .container.page-body,
.page-container[data-page-route="andamento"] > .page-head > .container,
.page-container[data-page-route="andamento"] > .container.page-body,
.page-container[data-page-route="schede-allenamento"] > .page-head > .container,
.page-container[data-page-route="schede-allenamento"] > .container.page-body,
.page-container[data-page-route^="List/"] > .page-head > .container,
.page-container[data-page-route^="List/"] > .container.page-body {
	width: 100%;
	max-width: none;
	padding-left: clamp(32px, 4vw, 72px);
	padding-right: clamp(32px, 4vw, 72px);
}

.cf-qr-connessione {
	max-width: 360px;
	margin-top: 4px;
}

.cf-qr-connessione .cf-qr-box {
	display: inline-block;
	padding: 12px;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	line-height: 0;
}

.cf-qr-connessione .cf-qr-box svg,
.cf-qr-connessione .cf-qr-svg {
	width: 220px;
	height: 220px;
	display: block;
}

.cf-qr-connessione .small {
	margin-top: 8px;
	word-break: break-all;
}

/* Piano rate: solo lettura. Frappe di questa versione non persiste cannot_add_rows nel meta. */
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-add-row,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-add-multiple-rows,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-remove-rows,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-insert-row,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-insert-row-below,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-duplicate-row,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-append-row,
.page-container[data-page-route^="Form/Abbonamento"] [data-fieldname="rate"] .grid-delete-row {
	display: none !important;
}

/* Menu Desk nella navbar Frappe: riga 1 logo | voci | ricerca/account; riga 2 breadcrumb. */
body.cf-has-desk-menu {
	--cf-desk-menu-height: 44px;
	--cf-crumb-row-height: 36px;
	--navbar-height: calc(var(--cf-desk-menu-height) + var(--cf-crumb-row-height));
}

body.cf-has-desk-menu header.navbar {
	height: auto !important;
	min-height: var(--navbar-height);
}

body.cf-has-desk-menu header.navbar > .container {
	display: grid !important;
	grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
	grid-template-rows: var(--cf-desk-menu-height) var(--cf-crumb-row-height);
	grid-template-areas:
		"brand menu actions"
		"crumbs crumbs crumbs";
	align-items: center;
	height: auto;
}

body.cf-has-desk-menu header.navbar .navbar-brand {
	grid-area: brand;
	justify-self: start;
	align-self: center;
	margin: 0;
}

body.cf-has-desk-menu header.navbar .navbar-collapse {
	grid-area: actions;
	justify-self: end;
	align-self: center;
	display: flex !important;
	flex: 0 0 auto;
	flex-wrap: nowrap;
	align-items: center;
	width: auto;
	max-width: 100%;
	height: var(--cf-desk-menu-height);
}

body.cf-has-desk-menu header.navbar .navbar-collapse .fill-width {
	flex: 0 1 auto;
	width: auto;
}

body.cf-has-desk-menu #navbar-breadcrumbs {
	grid-area: crumbs;
	display: flex !important;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
	min-height: var(--cf-crumb-row-height);
	border-top: 1px solid var(--border-color);
}

@media (max-width: 575.98px) {
	body.cf-has-desk-menu {
		--cf-crumb-row-height: 0px;
	}

	body.cf-has-desk-menu #navbar-breadcrumbs {
		display: none !important;
		border-top: 0;
		min-height: 0;
	}
}

.cf-desk-menu {
	--cf-desk-menu-height: 44px;
	grid-area: menu;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	top: auto;
	z-index: 1;
	width: auto;
	max-width: 100%;
	height: var(--cf-desk-menu-height);
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-sizing: border-box;
	overflow: visible;
}

.cf-desk-menu__inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	gap: 4px;
	height: 100%;
	width: auto;
	max-width: 100%;
	padding: 0 8px;
	box-sizing: border-box;
}

.cf-desk-menu__root.dropdown,
.cf-desk-menu__root {
	display: inline-flex !important;
	flex: 0 0 auto;
	float: none;
	width: auto !important;
	position: relative;
	align-items: center;
}

.cf-desk-menu__btn {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	width: auto !important;
	height: var(--cf-desk-menu-height);
	padding: 0 12px;
	border: 0;
	background: transparent;
	color: var(--text-color);
	border-bottom: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
}

.cf-desk-menu__btn:hover,
.cf-desk-menu__btn:focus {
	background: var(--fg-hover-color, var(--subtle-fg));
	color: var(--text-color);
	text-decoration: none;
}

.cf-desk-menu__btn.is-active {
	border-bottom-color: var(--cf-menu-accent, var(--primary));
	font-weight: 600;
}

.cf-desk-menu__label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cf-desk-menu__icon {
	display: inline-flex;
	color: var(--cf-menu-accent, var(--text-muted));
}

.cf-desk-menu--piccolo {
	font-size: 12px;
}

.cf-desk-menu--normale {
	font-size: 13px;
}

.cf-desk-menu--grande {
	font-size: 15px;
}

.cf-desk-menu__dropdown,
.cf-desk-menu .dropdown-menu {
	max-height: min(70vh, 420px);
	overflow-y: auto;
	z-index: 1032;
}

.cf-desk-menu__link .cf-desk-menu__icon {
	width: 1.1em;
}

.cf-desk-menu__link--padre {
	font-weight: 600;
}

.cf-desk-menu__link.is-active {
	background: var(--fg-hover-color, var(--subtle-fg));
}

.list-row-col .cf-lista-colore {
	display: inline-block;
	width: 16px;
	height: 16px;
	min-width: 16px;
	border-radius: 50%;
	vertical-align: middle;
	flex-shrink: 0;
	border: 1px solid rgba(0, 0, 0, 0.12);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.cf-link-sotto {
	margin-top: 4px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--primary, #243f6b);
	user-select: text;
}

html[data-theme="dark"] .cf-link-sotto {
	color: var(--text-color, #e2e8f0);
}

