:root {
	--color-primary: rgb(230, 0, 118);
	--color-secondary: #ec4899;
	--color-background: #f7f9fb;
  --color-header: #fff;
	--primary: rgb(230, 0, 118); /* your brand pink */
	--accent: #f3f4f6; /* light gray */
	--border: #e5e7eb; /* light border */
	--muted-foreground: #6b7280; /* muted text */
	--input-bg: #ffffff; /* input bg */
	--destructive: #dc3545; /* bootstrap danger-ish */
  --title-primary: rgb(76, 76, 76);
  --title-muted: rgb(110, 110, 110);
  --color-header: #fff;
}

body {
	padding-bottom: 100px;
	/*background-color: var(--color-purple-50); */
	background-color: var(--color-background);
}

.form-control,
.btn {
	font-size: 1rem;
}

@media (min-width: 576px) {
	.navbar .form-select {
		width: auto;
	}
}
.set-row input[type='number'] {
	flex: 0 0 auto;
	width: 170px;
}
.set-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.1rem;
	margin-bottom: 0.75rem;
	flex-wrap: nowrap;
}
/*   
.btn-success
{
    background-color: #e60076 !important;
}*/

.log-checkbox {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	/*border: none !important;*/
}

/* Hide the default checkbox, use custom style */
.custom-checkbox {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
  border-radius: 0.5rem;
  border-width: 2px;
  border-color: var(--border);
  min-width: 40px;
}

/* When checked → light green background + checkmark */
.custom-checkbox:checked { 
	background-color: #90ee90;  /* Light green */
	color: #fff;
	/*content: '✔'; */
	width: 100%;
  border-color: #90ee90;
/*	background-color: #e60076; */
}

.custom-checkbox:checked::after {
	content: '✔';
	color: #fff;
	background-color: #90ee90;
/*	font-size: 2rem;
	width: 100%;
	height: 100%; */
  border-color: #90ee90;
}

.program-item {
	cursor: pointer;
}

.program-item:hover {
	background-color: #f3f3f3;
}

.target-ok {
	border-color: #28a745 !important;
	background: #eefff0 !important;
}
.target-miss {
	border-color: #dc3545 !important;
	background: #fff0f0 !important;
}

.set-row-wrapper {
	position: relative;
	overflow: hidden;
	touch-action: pan-y;
}

/* underlay with buttons (hidden by default because content sits on top) */
.set-row-actions {
	position: absolute;
	inset: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 8px;
	z-index: 1;
}

/* buttons */
.set-row-actions .action {
	min-width: 88px;
	padding: 6px 12px;
	border: 0;
	border-radius: 4px;
	color: #fff;
	font-weight: 600;
}

.action-delete {
	background: #dc3545;
} /* red */
.action-dup {
	background: #ff8c00;
} /* orange */

/* top content that slides */
.set-row-content {
	position: relative;
	z-index: 2; /* sits above buttons */
	background: #fbfbfb; /* so it covers them fully */
	transition: transform 160ms ease;
	will-change: transform;
}

.floating-target-label {
	position: absolute;
	top: -0.6rem;
	left: 0.9rem;
	padding: 0 0.35rem;
	margin-top: 0.35rem;
	font-size: 0.7rem;
	font-weight: 600;
	background: #fff;
	border-radius: 999px;
	z-index: 10;
}

.floating-target-label.weight-label {
	color: #ff4fa3; /* pink */
}

.floating-target-label.reps-label {
	color: #b388ff; /* purple-ish */
}

.no-scroll {
	overflow: hidden;
	height: 100vh;
}

.btn-outline-only {
	border: 1px solid rgb(230, 0, 118);
	border-radius: 0.5rem;
}

.btn-full-color {
	color: white;
	background-color: var(--color-primary) !important;
	border-radius: 0.5rem;
}

/* ===== Program Builder ===== */

.program-builder-modal {
	background: #f7f7fb;
}

.program-builder-header {
	/* background: linear-gradient(90deg, #e60076 0%, #a855f7 100%); */
  background-color: var(--color-header);
	border: none;
}

.program-builder-body {
	padding: 18px;
	padding-bottom: 120px; /* space for fixed-ish save button look */
}

.pb-title {
	font-size: 32px;
	font-weight: 800;
	margin: 8px 0 0 0;
}

.pb-subtitle {
	margin-top: 6px;
	color: #6b7280;
	font-size: 18px;
	font-weight: 600;
}

.pb-card {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 22px;
	padding: 18px;
	margin-top: 16px;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
}

.pb-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.pb-label {
	font-size: 20px;
	font-weight: 800;
}

.pb-subtext {
	margin-top: 4px;
	color: #6b7280;
	font-size: 15px;
	font-weight: 600;
}

.pb-input,
.pb-select {
	width: 100%;
	margin-top: 12px;
	border: 1px solid #ececec;
	border-radius: 18px;
	padding: 16px 16px;
	font-size: 18px;
	font-weight: 600;
	background: #fff;
}

.pb-input::placeholder {
	color: #a3a3a3;
	font-weight: 600;
}

.pb-advanced {
	display: flex;
	align-items: center;
	gap: 12px;
}

.pb-advanced-label {
	color: #6b7280;
	font-size: 18px;
	font-weight: 700;
}

/* Switch */
.pb-switch {
	position: relative;
	display: inline-block;
	width: 56px;
	height: 32px;
}
.pb-switch input {
	opacity: 0;
	width: 0;
	height: 0;
}
.pb-slider {
	position: absolute;
	cursor: pointer;
	inset: 0;
	background-color: #e5e7eb;
	border-radius: 999px;
	transition: 0.2s;
}
.pb-slider:before {
	position: absolute;
	content: '';
	height: 26px;
	width: 26px;
	left: 3px;
	top: 3px;
	background-color: white;
	border-radius: 999px;
	transition: 0.2s;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}
.pb-switch input:checked + .pb-slider {
	background-color: #e60076;
}
.pb-switch input:checked + .pb-slider:before {
	transform: translateX(24px);
}

.pb-template-grid {
	margin-top: 14px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.pb-template-btn {
	border: none;
	border-radius: 18px;
	padding: 16px 14px;
	background: #e63b92;
	color: #fff;
	font-weight: 800;
	font-size: 18px;
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	min-height: 74px;
}

.pb-template-btn.is-active {
	outline: 3px solid rgba(230, 0, 118, 0.25);
	filter: brightness(0.95);
}

.pb-template-icon {
	font-size: 18px;
}

.pb-template-name {
	text-align: center;
	line-height: 1.1;
}

.pb-section-title {
	font-size: 34px;
	font-weight: 900;
	margin: 18px 0 6px 0;
}

.pb-day-card {
	background: #fff;
	border-radius: 22px;
	padding: 18px;
	margin-top: 14px;
	border: 1px solid #eee;
}

.pb-day-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.pb-day-title {
	font-size: 28px;
	font-weight: 900;
}

.pb-add-btn {
	background: #e60076;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 12px 18px;
	font-weight: 800;
	font-size: 18px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.pb-plus {
	font-size: 22px;
	line-height: 1;
}

.pb-empty {
	margin-top: 16px;
	background: #f7f7f7;
	border-radius: 20px;
	padding: 26px 16px;
	text-align: center;
}

.pb-empty-text {
	color: #6b7280;
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 18px;
}

.pb-empty-btn {
	border: 1px solid #e5e7eb;
	background: #fff;
	border-radius: 18px;
	padding: 14px 18px;
	font-size: 22px;
	font-weight: 900;
	display: inline-flex;
	gap: 12px;
	align-items: center;
}

.pb-plus-dark {
	font-size: 26px;
	line-height: 1;
}

.pb-ex-list {
	margin-top: 14px;
}

.pb-ex-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px solid #f1f1f1;
}

.pb-ex-row:last-child {
	border-bottom: none;
}

.pb-ex-name {
	flex: 1;
	font-weight: 800;
}

.pb-sets-select {
	width: 110px;
	border-radius: 14px;
	border: 1px solid #ececec;
	padding: 10px 10px;
	font-weight: 700;
	background: #fff;
}

.pb-trash {
	border: none;
	background: transparent;
	color: #9ca3af;
	font-size: 18px;
}

.pb-save {
	position: fixed;
	left: 18px;
	right: 18px;
	bottom: 18px;
	border: none;
	border-radius: 22px;
	padding: 18px 18px;
	font-weight: 900;
	font-size: 22px;
	background: #f3a3cf;
	color: #fff;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}

.pb-save:disabled {
	opacity: 0.65;
}

/* User Management overlay */
.um-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.um-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 14px;
	border-bottom: 1px solid #eee;
}

.um-title {
	display: flex;
	flex-direction: column;
}

.um-tabs {
	display: flex;
	gap: 8px;
	padding: 10px;
	border-bottom: 1px solid #eee;
	overflow-x: auto;
}

.um-tab {
	border: 0;
	padding: 10px 14px;
	border-radius: 14px;
	background: #f3f4f6;
	white-space: nowrap;
}

.um-tab.active {
	background: rgb(230, 0, 118);
	color: #fff;
}

.um-tab.danger {
	background: rgba(220, 53, 69, 0.08);
	color: #dc3545;
}

.um-tab.danger.active {
	background: #dc3545;
	color: #fff;
}

.um-body {
	flex: 1;
	overflow-y: auto;
	padding: 14px;
}

.um-card {
	max-width: 720px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 16px;
	padding: 16px;
}

/* Tokens */
.bg-primary {
	background: var(--primary) !important;
}
.text-primary {
	color: var(--primary) !important;
}

.bg-accent {
	background: var(--accent) !important;
}
.border-border {
	border-color: var(--border) !important;
}
.text-muted-foreground {
	color: var(--muted-foreground) !important;
}
.bg-input-background {
	background: var(--input-bg) !important;
}

.bg-destructive {
	background: var(--destructive) !important;
}
.text-destructive {
	color: var(--destructive) !important;
}

/* “opacity slash” variants used in your React code */
.bg-primary\/10 {
	background: color-mix(in srgb, var(--primary) 10%, white) !important;
}
.border-primary\/20 {
	border-color: color-mix(in srgb, var(--primary) 20%, white) !important;
}

.bg-destructive\/5 {
	background: color-mix(in srgb, var(--destructive) 5%, white) !important;
}
.bg-destructive\/10 {
	background: color-mix(in srgb, var(--destructive) 10%, white) !important;
}
.border-destructive\/20 {
	border-color: color-mix(in srgb, var(--destructive) 20%, white) !important;
}

/* Radius */
.rounded-xl {
	border-radius: 16px !important;
}
.rounded-lg {
	border-radius: 12px !important;
}

/* Transition helper */
.transition-colors {
	transition: background-color 0.15s ease, color 0.15s ease,
		border-color 0.15s ease;
}

/* Hover helpers used */
.hover\:bg-accent:hover {
	background: var(--accent) !important;
}
.hover\:bg-destructive\/10:hover {
	background: color-mix(in srgb, var(--destructive) 10%, white) !important;
}
.hover\:bg-primary\/90:hover {
	background: color-mix(in srgb, var(--primary) 90%, black) !important;
}
.hover\:bg-destructive\/90:hover {
	background: color-mix(in srgb, var(--destructive) 90%, black) !important;
}

/* Basic focus ring approximation */
.focus\:outline-none:focus {
	outline: none !important;
}
.focus\:ring-2:focus {
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 30%, transparent) !important;
}

/* Disabled helpers */
.disabled\:opacity-50:disabled {
	opacity: 0.5 !important;
}
.disabled\:cursor-not-allowed:disabled {
	cursor: not-allowed !important;
}

/* Small layout helpers you used a lot */
.max-w-2xl {
	max-width: 42rem !important;
}
.mx-auto {
	margin-left: auto !important;
	margin-right: auto !important;
}
.w-full {
	width: 100% !important;
}
.min-w-max {
	min-width: max-content !important;
}
.whitespace-nowrap {
	white-space: nowrap !important;
}
.overflow-x-auto {
	overflow-x: auto !important;
}
.overflow-y-auto {
	overflow-y: auto !important;
}

/* Menstruation calendar container hook from your code */
.menstruation-calendar {
	width: 100%;
}
/* Make the DayPicker feel like your UI */
.menstruation-calendar .rdp {
	--rdp-accent-color: #ec4899; /* also helps some themes */
	--rdp-background-color: #fdf2f8;
}

.menstruation-calendar .rdp-months {
	width: 100%;
}

.menstruation-calendar .rdp-month {
	width: 100%;
}

.menstruation-calendar .rdp-table {
	width: 100%;
	max-width: 100%;
}

.day-button-selected
{
  background-color: var(--color-primary);
  color: white;
}

.day-button-notselected
{
  background-color: white;
  color: var(--color-primary);
}

.period-dot {
  opacity: 0.9;
  font-size: 0.85rem;
}