html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
	font-size: 16px;
  }
}

*, *::before, *::after {
	box-sizing: border-box;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html, body {
	font-size: 1rem ;
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	position: relative;
	min-height: 100%;
	min-width: 100%;
}

hr {
	margin-top: 1rem!important;
	margin-bottom: 1rem!important;
}

.main-content {
	padding: 1rem;
}

.hidden {
	display: none !important;
}

.inline-display {
	display: inline;
}

.action-result {
	width: 100%;
	padding: 1.5rem;
	border-style: solid;
	border-width: 1px;
	border-radius: 4px;
	margin: 1rem 0;
	font-size: 14px;
}

.action-result--success {
	background-color: #d1e7dd;
	border-color: #a3cfbb;
	color: #0a3622;
}

.action-result--failure {
	background-color: #f8d7da;
	border-color: #f1aeb5;
	color: #58151c;
}

.action-result--alert {
	background-color: #fff3cd;
	border-color: #ffe69c;
	color: #664d03;
}

input[type=button].submit-button,
input[type=submit].submit-button,
button[type=button].submit-button,
button[type=submit].submit-button {
	max-height: 24px !important;
	height: 24px !important;
	border-radius: 3px;
	border-width: 1px;
}

	input[type=button].submit-button:hover,
	input[type=submit].submit-button:hover,
	button[type=button].submit-button:hover,
	button[type=submit].submit-button:hover {
		background-color: lightgrey;
	}

a.submit-button {
	display: inline-block;
	padding: 1px 6px;
	text-align: center;
	text-decoration: none;
	border-radius: 3px;
	background-color: ButtonFace;
	color: ButtonText;
	border: 1px solid #000;
	max-height: 24px !important;
	height: 24px !important;
}

	a.submit-button:hover, a.submit-button:focus, a.submit-button:active {
		background-color: lightgrey;
	}

.pagination {
	margin: 0.75rem 0;
	text-align: center;
}

	.pagination a {
		margin: 0 2px;
		text-decoration: none;
		padding: 4px 8px;
		border: 1px solid #ddd;
		color: #007bff;
	}

		.pagination a.disabled {
			color: #6c757d;
			pointer-events: none;
		}

label.inline-label {
	margin-right: 1rem;
}

a.column-header-link {
	color: #000;
}

div.form-field input:not([type="image" i], [type="range" i], [type="checkbox" i], [type="radio" i]).form-field, 
div.form-field select {
	overflow-clip-margin: 0px !important;
	overflow: clip !important;
	padding-block: 1px;
	padding-inline: 2px;
	height: 1.5rem;
	vertical-align: central !important;
}

/* An extra-small button extrapolated from Bootstrap's .btn and .btn-sm */
button.btn-xs, input[type=button].btn-xs, a.btn-xs {
	padding: 0.125rem 0.25rem;
	font-size: 0.75rem;
	border-radius: 0.15rem;
}

.accordion-button {
	padding: 0.5rem;
}

.accordion-body {

}

td.btn-container {
	/*padding: 0.25rem 0.5rem;*/
}
.accordion-button:focus {
	box-shadow: none;
}

.alert {
	position: relative;
	/*padding: ;*/
	margin-bottom: 0;
	border-radius: 0;
}

.form-check-input-lg {
	padding: 0.25rem 0.5rem;
	height: 1.5rem;
	width: 1.5rem;
	margin-right: 0.5rem;
	border-radius: 0.25rem;
}

.form-check-label-lg {
	font-size: 0.875rem;
}

.form-control-xs {
	line-height: 1.5;
	padding: 0.1rem 0.25rem;
	font-size: 0.75rem;
	border-radius: 0.1rem;
}

a.bg-light:focus, a.bg-light:hover {
	background-color: #dae0e5 !important;
}

.bg-light {
	background-color: #f8f9fa !important;
}

.border-bottom {
	border-bottom: 1px solid #dee2e6 !important;
}

.sidebar {
	min-height: 100%;
	border-right: 1px solid #dee2e6;
	padding: 0;
	background-color: #f8f9fa;
}

.sidebar-span {
	margin-left: 1rem;
	
}

.sidebar-group-span {
	font-weight: bold;
	text-shadow: 0 0 2px rgba(160, 140, 160, 0.8);
	padding-left: 1.5rem;
}

.gateway-div {
	width: 100%;
	text-align: center;
}

.gateway-title {
	font-weight: 400;
	font-size: 24pt;
	text-shadow: 0 0 4px rgba(160, 140, 160, 0.8);
}

.layout-wrapper {
	font-size: 0.75rem;
	min-height: 100vh;
	display: grid;
	grid-template-rows: auto 1fr auto;
	width: 100%;
}

.navbar {
	width: 100%;
}

.layout-header-image {
	margin-left:0.75rem;
}

.layout-header, .layout-body {
	display: flex;
	flex-wrap: wrap;
	margin: 0 !important;
	padding: 0 !important;
}

.layout-body {
	flex-grow: 1;
	padding: 0;
}

.layout-header {
	flex-grow: 0;
	flex-shrink: 0;
}

.layout-footer {
	flex-grow: 0;
	flex-shrink: 0;
	width: 100%;
	border-top: 1px solid #dee2e6;
	padding: 0;
	height: 19px
}

#accountLayout {

}

#accountManageNav {

}

#accountStatusNav {

}

.calendar-date-range {
	display: inline-flex;
	margin: 1rem;
}

.calendar-date-range-dates {
	margin-right: 1rem;
	font-size: 1rem;
}

.access-denied-container {
	text-align: center;
	padding: 3rem;
	background: #ffffff;
	border-radius: 15px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
	border: 1px solid #e9ecef;
	margin-top: 2rem;
}

.access-denied-icon {
	margin-bottom: 1.5rem;
}

.access-denied-title {
	font-size: 2.5rem;
	font-weight: 300;
	margin-bottom: 1.5rem;
	color: #dc3545;
}

.access-denied-message {
	font-size: 1.1rem;
	line-height: 1.6;
	margin-bottom: 2rem;
	color: #6c757d;
}

	.access-denied-message p {
		margin-bottom: 0.5rem;
	}

.access-info {
	background: #f8f9fa;
	padding: 1rem;
	border-radius: 8px;
	margin-bottom: 2rem;
	font-size: 0.9rem;
	text-align: left;
	border-left: 4px solid #dc3545;
}

.compliance-notice {
	background: #e8f5e8;
	padding: 1.5rem;
	border-radius: 10px;
	margin-bottom: 2rem;
	border-left: 4px solid #28a745;
	text-align: left;
}

.compliance-header {
	margin-bottom: 0.5rem;
	color: #28a745;
}

	.compliance-header i {
		margin-right: 0.5rem;
	}

.compliance-notice small {
	font-size: 0.9rem;
	color: #495057;
}

.access-denied-actions {
	margin-top: 2rem;
}

	.access-denied-actions .btn {
		margin: 0.25rem;
		padding: 12px 24px;
		border-radius: 8px;
	}

		.access-denied-actions .btn i {
			margin-right: 0.5rem;
		}

@media (max-width: 768px) {
	.access-denied-container {
		padding: 2rem 1rem;
		margin: 1rem;
	}

	.access-denied-title {
		font-size: 2rem;
	}

	.access-denied-actions .btn {
		display: block;
		width: 100%;
		margin: 0.5rem 0;
	}
}

.access-denied-symbol {
	font-size: 4rem;
	color: #dc3545;
}

.dashboard-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 2rem;
}

.dashboard-header {
	text-align: center;
	margin-bottom: 3rem;
}

	.dashboard-header h1 {
		font-size: 2.5rem;
		color: #2c3e50;
		margin-bottom: 0.5rem;
	}

.dashboard-subtitle {
	font-size: 1.2rem;
	color: #7f8c8d;
}

.dashboard-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
	gap: 2rem;
	margin-bottom: 2rem;
}

.dashboard-tile {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding: 2rem;
	background: white;
	border: 2px solid #e0e0e0;
	border-radius: 12px;
	text-decoration: none;
	color: inherit;
	transition: all 0.3s ease;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

	.dashboard-tile:hover {
		transform: translateY(-4px);
		box-shadow: 0 6px 20px rgba(0,0,0,0.15);
		border-color: #003366;
	}

.tile-icon {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #003366 0%, #0055aa 100%);
	border-radius: 12px;
	color: white;
	font-size: 2.5rem;
}

.tile-content {
	flex-grow: 1;
}

	.tile-content h2 {
		margin: 0 0 0.5rem 0;
		font-size: 1.5rem;
		color: #2c3e50;
	}

	.tile-content p {
		margin: 0;
		color: #7f8c8d;
		font-size: 1rem;
	}

.tile-arrow {
	flex-shrink: 0;
	font-size: 2rem;
	color: #003366;
	opacity: 0.5;
	transition: all 0.3s ease;
}

.dashboard-tile:hover .tile-arrow {
	opacity: 1;
	transform: translateX(5px);
}

.user-info-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 8px;
	padding: 1.5rem;
}

.user-info-details {
	text-align: left;
}

	.user-info-details p {
		margin: 0.25rem 0;
		color: #495057;
	}

	.user-info-details strong {
		color: #212529;
	}

.dashboard-logout-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: #dc3545;
	border: none;
	border-radius: 8px;
	color: white;
	text-decoration: none;
	font-weight: 500;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(220, 53, 69, 0.2);
}

	.dashboard-logout-btn:hover {
		background: #c82333;
		transform: translateY(-2px);
		box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
		color: white;
	}

	.dashboard-logout-btn i {
		font-size: 1.1rem;
	}

.dashboard-external-links {
	margin-bottom: 2rem;
	text-align: center;
}

.external-links-label {
	font-size: 1rem;
	color: #7f8c8d;
	margin-bottom: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.external-links-row {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.external-link-tile {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	background: white;
	border: 2px solid #e0e0e0;
	border-radius: 8px;
	text-decoration: none;
	color: #003366;
	font-weight: 500;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

	.external-link-tile:hover {
		transform: translateY(-2px);
		box-shadow: 0 4px 12px rgba(0,0,0,0.1);
		border-color: #003366;
		background: #f8f9fa;
	}

	.external-link-tile i {
		font-size: 1rem;
	}

@media (max-width: 768px) {
	.dashboard-tiles {
		grid-template-columns: 1fr;
	}

	.dashboard-tile {
		flex-direction: column;
		text-align: center;
	}

	.tile-arrow {
		display: none;
	}

	.user-info-card {
		flex-direction: column;
		gap: 1rem;
		text-align: center;
	}

	.user-info-details {
		text-align: center;
	}
}

.space-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}

.table-wrapper {
	overflow-x: auto;
	width: 100%;
}

.collapsed {
	visibility: collapse;
}

.visible {
	visibility: visible;
}

.full-width {
	display: block; /* make it a block-level element */
	width: 100%; /* fill the container */
	box-sizing: border-box; /* include padding & border in the width */
}

.mt-1 {
	margin-top: 0.75rem !important;
}

.mb-1 {
	margin-bottom: 0.75rem !important;
}

.med-width {
	min-width: 10rem;
}

/* Hero banner */
.hero {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--c2-blue-primary); /* :contentReference[oaicite:0]{index=0} */
	color: white;
	padding: 4rem 1rem;
	text-align: center;
}

	.hero h2 {
		font-size: 2.5rem;
		margin-bottom: 0.5rem;
	}

	.hero p {
		font-size: 1.25rem;
		margin-bottom: 1.5rem;
	}

/* Features grid */
.features {
	display: grid;
	gap: 2rem;
	padding: 3rem 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.features {
		grid-template-columns: repeat(3, 1fr);
	}
}

.feature-card {
	background-color: white;
	border: 1px solid var(--c2-gray-primary); /* :contentReference[oaicite:1]{index=1} */
	border-radius: 8px;
	padding: 2rem 1rem;
	text-align: center;
	transition: box-shadow 0.2s ease-in-out;
}

	.feature-card:hover {
		box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	}

	.feature-card h3 {
		font-weight: bold;
	}

.feature-icon {
	font-size: 2rem;
	color: var(--c2-blue-dark); /* :contentReference[oaicite:2]{index=2} */
	margin-bottom: 0.5rem;
}

/* User info strip */
.user-info {
	background-color: var(--c2-gray-primary); /* :contentReference[oaicite:3]{index=3} */
	padding: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	font-size: 0.9rem;
}

.splash-body {
	direction: ltr;
	margin: 0;
	padding: 0;
	/*font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0rem;
	line-height: 1.4285714286;*/
	/*background-color: var(--gm3-sys-color-surface-container-lowest);*/
	background-color: whitesmoke;
}

.splash-main {
	/*position: relative;*/
	/*justify-content: center;*/
	margin-top: 20%;
	display: flex;
	flex-direction: column;
	height: 100%;
/*	border: 4px solid white;
	border-radius: 4px;
*/	/*background: var(--gm3-sys-color-surface-container)*/
}

.splash-center {
	margin-right: 20%;
	margin-left: 10%;
	width: auto;
	background-color: white;
	border: 0.5rem solid white;
	border-radius: 0.75rem;
}

.splash-title {
	padding: 1rem 1rem 0 1rem;
	/*margin: 1rem;*/
	/*text-align: center;*/
	display: flex;
	justify-content: space-between;
	vertical-align: middle;
}

.splash-block {
	/*background-color: yellow;*/
	display: block;
	/*width: 100%;*/
	padding: 1rem 1rem;
}

.splash-column {

}

.splash-footer {
	margin-right: 20%;
	margin-left: 10%;
	/*margin: 1rem 20% 1rem 10%;*/
	width: auto;
	margin: 0 auto;
	display: inline-flex;
	/*background-color: blue;*/
	/*text-align: center;*/
}

	.splash-footer > div {
		font-size: 0.65rem;
		margin: 0.5rem;
		text-align: center;
		/*background-color: red;*/
	}

.splash-login-btn {
	font-size: 0.85rem;
	padding: 0.5rem 0.75rem;
	margin: 0.75rem;
	font-weight: 300;
	background-color: #595959;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.2s ease-in-out;
	/*width: 20rem;*/
	/*line-height: 1.2;*/
}

	.splash-login-btn:hover {
		background-color: #4d4d4d;
	}

	.splash-login-btn:focus {
		outline: 1px solid #404040;
	}

a.splash-login-btn {
	text-decoration: none;
	color: white;
}

/* NIST SP 800-171 CUI Notice Banner Styles */
.cui-notice-banner {
	background: linear-gradient(135deg, #dc3545, #b02a37);
	color: white;
	padding: 0.75rem 0;
	border-bottom: 3px solid #8b1e2b;
	box-shadow: 0 2px 8px rgba(0,0,0,0.3);
	position: relative;
	z-index: 1000;
}

.cui-notice-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

.cui-notice-icon {
	font-size: 1.5rem;
	margin-right: 1rem;
	opacity: 0.9;
}

.cui-notice-text {
	flex: 1;
	font-size: 0.9rem;
	line-height: 1.4;
}

.cui-notice-text strong {
	font-size: 1rem;
	display: block;
	margin-bottom: 0.25rem;
	letter-spacing: 0.5px;
}

.cui-notice-warning {
	opacity: 0.95;
	font-size: 0.85rem;
}

.cui-notice-classification {
	margin-left: 1rem;
}

.cui-badge {
	background-color: #ffffff;
	color: #dc3545;
	padding: 0.375rem 0.75rem;
	border-radius: 4px;
	font-weight: bold;
	font-size: 0.8rem;
	letter-spacing: 1px;
	border: 2px solid #ffffff;
	box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* Footer Compliance Notice Styles */
.footer-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.footer-left {
	flex: 1;
}

.footer-right {
	flex-shrink: 0;
}

.compliance-notice {
	font-size: 0.75rem;
	opacity: 0.8;
	font-style: italic;
	color: #6c757d;
}

/* Responsive adjustments for CUI notice */
@media (max-width: 768px) {
	.cui-notice-content {
		flex-direction: column;
		text-align: center;
		gap: 0.5rem;
	}
	
	.cui-notice-icon {
		margin-right: 0;
		margin-bottom: 0.25rem;
	}
	
	.cui-notice-classification {
		margin-left: 0;
	}
	
	.footer-content {
		flex-direction: column;
		text-align: center;
	}
	
	.compliance-notice {
		font-size: 0.7rem;
	}
}

.scheduled-name-header {
	margin: 0 0 0.5rem 0;
}

.text-right {
	text-align: right
}