@charset "UTF-8";

/* Fonts */
:root {
	--default-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	
	--heading-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	
	--nav-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	
	--mono-font: ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/* Spacing Scale */
:root {
	--spacing-xs: 0.3125rem;
	--spacing-sm: 0.625rem;
	--spacing-md: 1rem;
	--spacing-lg: 1.375rem;
	--spacing-xl: 2.125rem;
	--spacing-2xl: 3.25rem;
}

/* Border Radius */
:root {
	--radius-sm: 0.375rem;
	--radius-md: 0.5rem;
	--radius-lg: 0.625rem;
	--radius-xl: 0.75rem;
	--radius-2xl: 0.875rem;
	--radius-full: 9999px;
}

/* Shadows */
:root {
	--shadow-sm: 0 1px 2px 0 rgb(22 34 51 / 0.06), 0 1px 1px -1px rgb(22 34 51 / 0.08);
	--shadow-md: 0 12px 28px -18px rgb(22 34 51 / 0.35), 0 2px 8px -4px rgb(22 34 51 / 0.12);
	--shadow-lg: 0 22px 45px -24px rgb(22 34 51 / 0.42), 0 8px 18px -12px rgb(22 34 51 / 0.18);
	--shadow-xl: 0 32px 70px -30px rgb(22 34 51 / 0.52), 0 16px 32px -20px rgb(22 34 51 / 0.25);
}

/* Transitions */
:root {
	--transition-fast: 140ms ease;
	--transition-base: 220ms ease;
	--transition-slow: 360ms ease;
}

/* Layout Dimensions */
:root {
	--header-height: 68px;
	--sidebar-width: 292px;
	--sidebar-collapsed-width: 76px;
	--footer-height: 60px;
}

/*--------------------------------------------------------------
	# Global Colors - Light Mode
--------------------------------------------------------------*/
:root {
	/* Core palette */
	--background-color: #f4f7fb;
	--default-color: #273447;
	--heading-color: #111827;
	--accent-color: #315cf6;
	--surface-color: #ffffff;
	--contrast-color: #ffffff;
	/* Extended text colors */
	--muted-color: #687789;
	--light-color: #9aa8b8;
	/* Borders */
	--border-color: #dbe4ef;
	--border-color-light: #eaf0f7;
	--border-color-dark: #c6d2df;
	/* Status colors */
	--success-color: #0f9b7a;
	--success-color-light: #dff8f0;
	--warning-color: #c87914;
	--warning-color-light: #fff0d7;
	--danger-color: #e05264;
	--danger-color-light: #fde5ea;
	--info-color: #0c9dc8;
	--info-color-light: #ddf4fb;
	/* Navigation colors */
	--nav-color: var(--default-color);
	--nav-hover-color: var(--accent-color);
	--nav-mobile-background-color: var(--surface-color);
	--nav-dropdown-background-color: var(--surface-color);
	--nav-dropdown-color: var(--default-color);
	--nav-dropdown-hover-color: var(--accent-color);
	/* Header */
	--header-bg: #ffffff;
	--header-shadow: 0 10px 35px -28px rgb(22 34 51 / 0.45);
	--header-border: var(--border-color);
	/* Sidebar */
	--sidebar-bg: #ffffff;
	--sidebar-border: #d9e2ec;
	--sidebar-color: #324152;
	--sidebar-muted-color: #8190a2;
	--sidebar-text: var(--sidebar-color);
	--sidebar-text-muted: var(--sidebar-muted-color);
	--sidebar-hover-bg: #edf3ff;
	--sidebar-active-bg: #315cf6;
	--sidebar-active-color: var(--contrast-color);
	--sidebar-active-text: var(--sidebar-active-color);
	/* Cards */
	--card-bg: #ffffff;
	--card-shadow: var(--shadow-md);
	--card-border: #e2e9f2;
	/* Tables */
	--table-header-bg: #f7f9fc;
	--table-hover-bg: #eef4ff;
	--table-stripe-bg: #fbfdff;
	/* Forms */
	--input-bg: #ffffff;
	--input-border: var(--border-color);
	--input-focus-border: var(--accent-color);
	--input-focus-ring: rgb(49 92 246 / 0.2);
}

/* Text Colors */
.text-primary {
	color: var(--accent-color) !important;
}

.text-secondary {
	color: var(--muted-color) !important;
}

.text-success {
	color: var(--success-color) !important;
}

.text-warning {
	color: var(--warning-color) !important;
}

.text-danger {
	color: var(--danger-color) !important;
}

.text-info {
	color: var(--info-color) !important;
}

.text-muted {
	color: var(--muted-color) !important;
}

.text-body {
	color: var(--default-color) !important;
}

/* Background Colors */
.bg-primary {
	background-color: var(--accent-color) !important;
}

.bg-success {
	background-color: var(--success-color) !important;
}

.bg-warning {
	background-color: var(--warning-color) !important;
}

.bg-danger {
	background-color: var(--danger-color) !important;
}

.bg-info {
	background-color: var(--info-color) !important;
}

.bg-light {
	background-color: var(--background-color) !important;
}

.bg-body {
	background-color: var(--background-color) !important;
}

.bg-surface {
	background-color: var(--surface-color) !important;
}

/* Soft/Light Background Colors */
.bg-primary-light {
	background-color: color-mix(in srgb, var(--accent-color), transparent 90%) !important;
}

.bg-success-light {
	background-color: var(--success-color-light) !important;
}

.bg-warning-light {
	background-color: var(--warning-color-light) !important;
}

.bg-danger-light {
	background-color: var(--danger-color-light) !important;
}

.bg-info-light {
	background-color: var(--info-color-light) !important;
}

/* Border Colors */
.border-primary {
	border-color: var(--accent-color) !important;
}

.border-success {
	border-color: var(--success-color) !important;
}

.border-warning {
	border-color: var(--warning-color) !important;
}

.border-danger {
	border-color: var(--danger-color) !important;
}

.border-info {
	border-color: var(--info-color) !important;
}

/* Gradient Backgrounds */
.bg-gradient-primary {
	background: linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color), black 15%)) !important;
}

.bg-gradient-success {
	background: linear-gradient(135deg, var(--success-color), color-mix(in srgb, var(--success-color), black 14%)) !important;
}

.bg-gradient-warning {
	background: linear-gradient(135deg, var(--warning-color), color-mix(in srgb, var(--warning-color), black 14%)) !important;
}

.bg-gradient-danger {
	background: linear-gradient(135deg, var(--danger-color), color-mix(in srgb, var(--danger-color), black 14%)) !important;
}

.bg-gradient-info {
	background: linear-gradient(135deg, var(--info-color), color-mix(in srgb, var(--info-color), black 14%)) !important;
}

/* Icon Colors */
.icon-primary {
	color: var(--accent-color);
}

.icon-success {
	color: var(--success-color);
}

.icon-warning {
	color: var(--warning-color);
}

.icon-danger {
	color: var(--danger-color);
}

.icon-info {
	color: var(--info-color);
}

.icon-muted {
	color: var(--muted-color);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 70px;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

/*--------------------------------------------------------------
	# Body
--------------------------------------------------------------*/
body {
	margin: 0;
	font-family: var(--default-font);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.6;
	color: var(--default-color);
	background-color: var(--background-color);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/*--------------------------------------------------------------
	# Headings
--------------------------------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	font-family: var(--heading-font);
	font-weight: 600;
	line-height: 1.3;
	color: var(--heading-color);
	margin-top: 0;
	margin-bottom: 0.5rem;
}

h1,
.h1 {
	font-size: 2.25rem;
}

h2,
.h2 {
	font-size: 1.875rem;
}

h3,
.h3 {
	font-size: 1.5rem;
}

h4,
.h4 {
	font-size: 1.25rem;
}

h5,
.h5 {
	font-size: 1.125rem;
}

h6,
.h6 {
	font-size: 1rem;
}

/*--------------------------------------------------------------
	# Paragraph & Text
--------------------------------------------------------------*/
p {
	margin-top: 0;
	margin-bottom: 1rem;
}

.lead {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.7;
	color: var(--muted-color);
}

small,
.small {
	font-size: 0.875rem;
}

strong {
	font-weight: 600;
}

/* Custom text size - Bootstrap doesn't have .text-xs */
.text-xs {
	font-size: 0.75rem !important;
}

/*--------------------------------------------------------------
	# Links
--------------------------------------------------------------*/
a {
	color: var(--accent-color);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: color-mix(in srgb, var(--accent-color), black 10%);
}

/*--------------------------------------------------------------
	# Lists
--------------------------------------------------------------*/
ul,
ol {
	list-style: none;
	padding: 0;
	margin: 0;
}


/*--------------------------------------------------------------
	# Auth Layout
--------------------------------------------------------------*/
.auth-layout {
	min-height: 100vh;
	padding: var(--spacing-xl);
	background: radial-gradient(circle at 8% 12%, color-mix(in srgb, var(--accent-color), transparent 82%), transparent 30%), radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--info-color), transparent 86%), transparent 28%), var(--background-color);
}


.auth-main {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--spacing-2xl);
}

.auth-main-inner {
	width: min(100%, 500px);
}

.auth-card {
	padding: var(--spacing-2xl);
	background: var(--surface-color);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--card-shadow);
}

.auth-card-header {
	margin-bottom: var(--spacing-xl);
}

.auth-card-kicker {
	color: var(--accent-color);
}

.auth-card-kicker {
	
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.auth-title {
	margin: var(--spacing-xs) 0 var(--spacing-sm);
	color: var(--heading-color);
	font-size: 2rem;
	line-height: 1.08;
}

.auth-subtitle {
	margin: 0;
	color: var(--muted-color);
	font-size: 0.95rem;
	line-height: 1.6;
}

.auth-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: var(--spacing-md);
	color: var(--accent-color);
	background: color-mix(in srgb, var(--accent-color), transparent 90%);
	border-radius: var(--radius-lg);
	font-size: 1.45rem;
}

.auth-icon.success {
	color: var(--success-color);
	background: var(--success-color-light);
}

.auth-icon.warning {
	color: var(--warning-color);
	background: var(--warning-color-light);
}

.auth-icon.danger {
	color: var(--danger-color);
	background: var(--danger-color-light);
}

.auth-form .form-group {
	margin-bottom: var(--spacing-lg);
}

.auth-form .form-label {
	display: block;
	margin-bottom: var(--spacing-sm);
	color: var(--heading-color);
	font-size: 0.84rem;
	font-weight: 800;
}

.auth-form .form-control {
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 0.95rem;
	color: var(--default-color);
	background: color-mix(in srgb, var(--input-bg), var(--surface-color) 42%);
	border: 1px solid var(--input-border);
	border-radius: var(--radius-lg);
	font-size: 0.9375rem;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}

.auth-form .form-control:focus {
	background: var(--surface-color);
	border-color: var(--input-focus-border);
	box-shadow: 0 0 0 4px var(--input-focus-ring);
}

.auth-form .form-control::-moz-placeholder {
	color: var(--light-color);
}

.auth-form .form-control::placeholder {
	color: var(--light-color);
}

.auth-form .form-text {
	margin-top: var(--spacing-xs);
	color: var(--muted-color);
	font-size: 0.8125rem;
}

.auth-form .input-group {
	display: flex;
}

.auth-form .input-group .form-control {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.auth-form .input-group .btn {
	padding: 0 var(--spacing-md);
	color: var(--muted-color);
	background: color-mix(in srgb, var(--input-bg), var(--surface-color) 42%);
	border-color: var(--input-border);
	border-left: 0;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.auth-form .input-group .btn:hover {
	color: var(--accent-color);
	background: var(--surface-color);
}

.auth-form .form-check {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-sm);
	margin-bottom: var(--spacing-lg);
}

.auth-form .form-check-input {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	border-radius: var(--radius-sm);
}

.auth-form .form-check-label {
	color: var(--default-color);
	font-size: 0.875rem;
	line-height: 1.5;
}

.auth-form .btn-block {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-xs);
	width: 100%;
	min-height: 48px;
	font-weight: 800;
}

.auth-link {
	color: var(--accent-color);
	font-weight: 800;
	text-decoration: none;
}

.auth-link:hover {
	color: color-mix(in srgb, var(--accent-color), black 14%);
}

.auth-helper-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-sm);
}

.auth-divider {
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
	margin: var(--spacing-xl) 0;
	color: var(--muted-color);
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.auth-divider::before,
.auth-divider::after {
	flex: 1;
	height: 1px;
	content: "";
	background: var(--border-color-light);
}

.auth-note-panel {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-sm);
	padding: var(--spacing-md);
	margin-bottom: var(--spacing-lg);
	color: var(--muted-color);
	background: color-mix(in srgb, var(--accent-color), transparent 94%);
	border: 1px solid color-mix(in srgb, var(--accent-color), transparent 82%);
	border-radius: var(--radius-lg);
	font-size: 0.875rem;
	line-height: 1.5;
}

.auth-note-panel i {
	color: var(--accent-color);
	font-size: 1.05rem;
}

.auth-security-list {
	display: grid;
	gap: var(--spacing-sm);
	margin: var(--spacing-lg) 0 0;
}

.auth-security-item {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
	color: var(--muted-color);
	font-size: 0.8125rem;
	font-weight: 700;
}

.auth-security-item i {
	color: var(--success-color);
}

.otp-input-group {
	display: grid;
	grid-template-columns: repeat(3, 1fr) auto repeat(3, 1fr);
	align-items: center;
	gap: var(--spacing-sm);
}

.otp-input {
	min-height: 58px !important;
	padding: 0 !important;
	text-align: center;
	font-size: 1.45rem !important;
	font-weight: 900;
}

.otp-separator {
	color: var(--muted-color);
	font-size: 1.3rem;
	font-weight: 900;
}


/* Tablet */
@media (max-width: 991px) {
	
    .auth-layout {
        padding: var(--spacing-lg);
	}
	
    .auth-main {
        padding: var(--spacing-xl);
	}
	
}

@media (max-width: 576px) {
	
    .auth-layout {
        padding: 0;
        background: linear-gradient(180deg, #f7f9fc 0%, #eef3fa 100%);
	}
	
    .auth-main {
        min-height: 100vh;
        align-items: flex-start;
        padding: 0;
	}
	
    .auth-main-inner {
        width: 100%;
        max-width: none;
	}
	
    .auth-card {
        width: 100%;
        min-height: 100vh;
        padding: 2.25rem 1.5rem;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
	}
	
    .auth-card-header {
        margin-bottom: 2rem;
	}
	
    .auth-card-kicker {
        font-size: .78rem;
        letter-spacing: .08em;
	}
	
    .auth-title {
        font-size: 2rem;
        line-height: 1.15;
	}
	
    .auth-subtitle {
        font-size: 1rem;
        color: var(--muted-color);
	}
	
    /* Hinweisbox */
	
    .auth-note-panel {
		
        position: relative;
        overflow: hidden;
		
        padding: 1rem 1.1rem;
        font-size: .95rem;
		
        background: linear-gradient(
		180deg,
		#ffffff 0%,
		#f8fbff 100%
        );
		
        border: 1px solid #dde7f6;
        border-radius: 14px;
		
        box-shadow:
		inset 0 1px 0 rgba(255,255,255,.45),
		0 4px 12px rgba(22,34,51,.05);
	}
	
    .auth-note-panel::before {
		
        content: "";
		
        position: absolute;
        inset: 0;
		
        pointer-events: none;
		
        background: linear-gradient(
		180deg,
		rgba(255,255,255,.15),
		transparent 40%
        );
	}
	
    /* Formular */
	
    .auth-form .form-group {
        margin-bottom: 1.25rem;
	}
	
    .auth-form .form-control,
    .auth-form .input-group-text {
		
        background: #ffffff;
		
        border: 1px solid #d9e4f3;
		
        box-shadow:
		inset 0 1px 0 rgba(255,255,255,.35),
		0 2px 8px rgba(22,34,51,.03);
		
        transition:
		border-color .2s ease,
		box-shadow .2s ease,
		background-color .2s ease;
	}
	
    .auth-form .form-control {
		
        min-height: 60px;
        padding: 1rem 1.1rem;
		
        font-size: 16px;
	}
	
    .auth-form .form-control:focus {
		
        background: #fff;
		
        border-color: var(--accent-color);
		
        box-shadow:
		0 0 0 4px rgba(49,92,246,.10),
		0 6px 16px rgba(49,92,246,.08);
	}
	
    .auth-form .input-group-text {
		
        min-width: 60px;
		
        justify-content: center;
		
        font-size: 1.15rem;
	}
	
    /* Button */
	
    .auth-form .btn-block {
		
        position: relative;
        overflow: hidden;
		
        min-height: 60px;
		
        font-size: 1.05rem;
        font-weight: 700;
		
        border: 0;
        border-radius: 14px;
		
        background: linear-gradient(
		180deg,
		#3b70fc 0%,
		#2a67ee 100%
        );
		
        box-shadow:
		0 8px 18px rgba(49,92,246,.18),
		inset 0 1px 0 rgba(255,255,255,.18);
		
        transition:
		transform .2s ease,
		box-shadow .2s ease;
	}
	
    .auth-form .btn-block::before {
		
        content: "";
		
        position: absolute;
		
        left: 0;
        right: 0;
        top: 0;
		
        height: 32%;
		
        background: linear-gradient(
		180deg,
		rgba(255,255,255,.10),
		transparent
        );
		
        pointer-events: none;
	}
	
    .auth-form .btn-block:active {
		
        transform: scale(.98);
		
        box-shadow:
		0 4px 10px rgba(49,92,246,.18);
	}
	
    /* Links */
	
    .auth-form .form-check-label,
    .auth-link {
        font-size: .95rem;
	}
	
    .auth-helper-row {
        margin-top: 2rem !important;
	}
	
}
/*--------------------------------------------------------------
	# Forms
--------------------------------------------------------------*/
.form-group {
	margin-bottom: var(--spacing-lg);
}

.form-label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--heading-color);
	margin-bottom: var(--spacing-sm);
}

.form-label-optional {
	font-weight: 400;
	color: var(--muted-color);
	margin-left: var(--spacing-xs);
}

/* Text Inputs */
.form-control {
	display: block;
	width: 100%;
	padding: var(--spacing-sm) var(--spacing-md);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--default-color);
	background-color: var(--input-bg);
	background-clip: padding-box;
	border: 1px solid var(--input-border);
	border-radius: var(--radius-md);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-control:focus {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: 0 0 0 3px var(--input-focus-ring);
}

.form-control::-moz-placeholder {
	color: var(--light-color);
}

.form-control::placeholder {
	color: var(--light-color);
}

.form-control:disabled,
.form-control[readonly] {
	background-color: var(--background-color);
	opacity: 0.7;
	cursor: not-allowed;
}

/* Form Control Sizes */
.form-control-sm {
	padding: 6px var(--spacing-sm);
	font-size: 0.8125rem;
	border-radius: var(--radius-sm);
}

.form-control-lg {
	padding: var(--spacing-md) var(--spacing-lg);
	font-size: 1rem;
	border-radius: var(--radius-md);
}

/* Checkbox & Radio */
.form-check {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
	min-height: 1.5rem;
}

.form-check-input {
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	vertical-align: top;
	background-color: var(--input-bg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border: 1px solid var(--input-border);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-check-input[type=checkbox] {
	border-radius: var(--radius-sm);
}

.form-check-input[type=radio] {
	border-radius: 50%;
}

.form-check-input:focus {
	outline: none;
	border-color: var(--input-focus-border);
	box-shadow: 0 0 0 3px var(--input-focus-ring);
}

.form-check-input:checked {
	background-color: var(--accent-color);
	border-color: var(--accent-color);
}

.form-check-input:checked[type=checkbox] {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}

.form-check-input:checked[type=radio] {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

.form-check-label {
	font-size: 0.9375rem;
	color: var(--default-color);
	cursor: pointer;
}

.form-switch {
    padding: .35rem 0;
    padding-left: 3rem;
}

.form-switch .form-check-input {
    width: 3rem;
    height: 1.7rem;
    margin-left: -3rem;
	
    border-radius: var(--radius-full);
	
    background-size: 1.35rem;          /* größerer Kreis */
    background-position: left .15rem center;
	
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-5 -5 10 10'%3e%3ccircle r='4' fill='%2364748b'/%3e%3c/svg%3e");
	
    transition:
	background-position var(--transition-fast),
	background-color var(--transition-fast);
}

.form-switch .form-check-input:checked {
    background-position: right .15rem center;
	
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-5 -5 10 10'%3e%3ccircle r='4' fill='%23fff'/%3e%3c/svg%3e");
}

.form-switch .form-check-label {
    padding-left: .5rem;
    line-height: 1.7rem;
}
/* Input Group */
.input-group {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	width: 100%;
}

.input-group>.form-control {
	position: relative;
	flex: 1 1 auto;
	width: 1%;
	min-width: 0;
}

.input-group>.form-control:not(:first-child) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.input-group>.form-control:not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.input-group-text {
	display: flex;
	align-items: center;
	padding: var(--spacing-sm) var(--spacing-md);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--muted-color);
	text-align: center;
	white-space: nowrap;
	background-color: var(--background-color);
	border: 1px solid var(--input-border);
}

.input-group>.input-group-text:first-child {
	border-top-left-radius: var(--radius-md);
	border-bottom-left-radius: var(--radius-md);
	border-right: 0;
}

.input-group>.input-group-text:last-child {
	border-top-right-radius: var(--radius-md);
	border-bottom-right-radius: var(--radius-md);
	border-left: 0;
}

/* Form Text/Help */
.form-text {
	margin-top: var(--spacing-xs);
	font-size: 0.8125rem;
	color: var(--muted-color);
}

/* Validation States */
.is-valid {
	border-color: var(--success-color) !important;
}

.is-valid:focus {
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.25) !important;
}

.is-invalid {
	border-color: var(--danger-color) !important;
}

.is-invalid:focus {
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.25) !important;
}

.valid-feedback,
.invalid-feedback {
	display: none;
	margin-top: var(--spacing-xs);
	font-size: 0.8125rem;
}

.valid-feedback {
	color: var(--success-color);
}

.invalid-feedback {
	color: var(--danger-color);
}

.is-valid~.valid-feedback,
.is-invalid~.invalid-feedback {
	display: block;
}

/* Required Indicator */
.required::after {
	content: " *";
	color: var(--danger-color);
}

.auth-footer-text {
	margin: var(--spacing-lg) 0 0; 
	color: var(--muted-color);
	font-size: 0.875rem;
	text-align: right;
}
