.itpc-portal {
	--itpc-blue: #1c568d;
	--itpc-blue-dark: #163d68;
	--itpc-blue-soft: #eef5fb;
	--itpc-border: #c9d8e7;
	--itpc-text: #1b2940;
	--itpc-muted: #607086;
	--itpc-success: #137a4d;
	width: min(1180px, calc(100% - 32px));
	margin: 24px auto 48px;
	color: var(--itpc-text);
	font-family: inherit;
}

.itpc-portal *,
.itpc-portal *::before,
.itpc-portal *::after {
	box-sizing: border-box;
}

.itpc-portal h1,
.itpc-portal h2,
.itpc-portal h3,
.itpc-portal h4,
.itpc-portal p {
	color: inherit;
}

.itpc-portal__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--itpc-border);
}

.itpc-portal__header h1 {
	margin: 2px 0 4px;
	font-size: clamp(28px, 4vw, 40px);
	line-height: 1.12;
}

.itpc-eyebrow {
	margin: 0;
	color: var(--itpc-blue-dark) !important;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.itpc-organization-name {
	margin: 0;
	color: var(--itpc-muted) !important;
	font-size: 17px;
}

.itpc-header-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
}

.itpc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--itpc-blue);
	border-radius: 8px;
	font-weight: 700;
	text-decoration: none !important;
}

.itpc-button--primary {
	background: var(--itpc-blue);
	color: #fff !important;
}

.itpc-button--primary:hover,
.itpc-button--primary:focus-visible {
	background: var(--itpc-blue-dark);
}

.itpc-logout {
	font-weight: 650;
}

.itpc-preview-banner,
.itpc-alert {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
	padding: 14px 16px;
	border: 1px solid #d4b106;
	border-radius: 8px;
	background: #fffbe6;
}

.itpc-alert--info {
	border-color: var(--itpc-border);
	background: var(--itpc-blue-soft);
}

.itpc-organization-switcher {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 16px 0 0;
}

.itpc-organization-switcher label {
	font-weight: 700;
}

.itpc-organization-switcher select {
	min-width: min(340px, 100%);
	padding: 9px 12px;
	border: 1px solid var(--itpc-border);
	border-radius: 7px;
	background: #fff;
}

.itpc-layout {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 26px;
	align-items: start;
	padding-top: 24px;
}

.itpc-sidebar {
	position: sticky;
	top: 24px;
	padding: 12px;
	border: 1px solid var(--itpc-border);
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(22, 61, 104, .06);
}

.itpc-sidebar__title {
	margin: 6px 8px 10px !important;
	color: var(--itpc-muted) !important;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.itpc-sidebar a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 7px 0;
	padding: 11px 12px;
	border: 1px solid var(--itpc-border);
	border-radius: 8px;
	background: #f8fafc;
	color: var(--itpc-blue-dark) !important;
	text-decoration: none !important;
}

.itpc-sidebar a span {
	color: var(--itpc-muted);
	font-size: 12px;
}

.itpc-sidebar a.is-active {
	border-color: var(--itpc-blue-dark);
	background: var(--itpc-blue-dark);
	color: #fff !important;
}

.itpc-sidebar a.is-active span {
	color: #dbe9f6;
}

.itpc-content {
	min-width: 0;
	padding: 4px 0;
}

.itpc-content > h2 {
	margin: 4px 0 8px;
	font-size: clamp(28px, 4vw, 38px);
}

.itpc-metric-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 24px 0 32px;
}

.itpc-metric-card,
.itpc-info-card,
.itpc-list-card,
.itpc-login-card {
	border: 1px solid var(--itpc-border);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(22, 61, 104, .055);
}

.itpc-metric-card {
	display: flex;
	min-height: 118px;
	flex-direction: column;
	justify-content: center;
	padding: 18px;
}

.itpc-metric-card strong {
	color: var(--itpc-blue-dark);
	font-size: 30px;
	line-height: 1;
}

.itpc-metric-card span {
	margin-top: 7px;
	font-weight: 650;
}

.itpc-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 14px;
}

.itpc-section-heading h3 {
	margin: 3px 0 0;
	font-size: 26px;
}

.itpc-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.itpc-info-card,
.itpc-list-card {
	padding: 18px;
}

.itpc-info-card h4,
.itpc-list-card h3 {
	margin: 5px 0;
}

.itpc-info-card p,
.itpc-list-card p {
	margin: 5px 0 12px;
	color: var(--itpc-muted) !important;
}

.itpc-code {
	color: var(--itpc-blue-dark);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .025em;
}

.itpc-list {
	display: grid;
	gap: 12px;
	margin-top: 20px;
}

.itpc-list-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.itpc-status {
	display: inline-flex;
	flex: 0 0 auto;
	padding: 5px 9px;
	border-radius: 999px;
	background: #eef2f6;
	font-size: 12px;
	font-weight: 700;
}

.itpc-status--active,
.itpc-status--completed {
	background: #e8f8ef;
	color: var(--itpc-success);
}

.itpc-status--planned,
.itpc-status--on_hold {
	background: #fff7df;
	color: #8a6100;
}

.itpc-status--cancelled,
.itpc-status--suspended {
	background: #fff0ef;
	color: #a72b22;
}

.itpc-empty {
	grid-column: 1 / -1;
	padding: 22px;
	border: 1px dashed var(--itpc-border);
	border-radius: 9px;
	background: #fafcfe;
	color: var(--itpc-muted) !important;
}

.itpc-login-card {
	max-width: 480px;
	padding: 26px;
}

.itpc-login-card input[type="text"],
.itpc-login-card input[type="password"] {
	width: 100%;
}

@media (max-width: 900px) {
	.itpc-layout {
		grid-template-columns: 1fr;
	}
	.itpc-sidebar {
		position: static;
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.itpc-sidebar__title {
		grid-column: 1 / -1;
	}
	.itpc-metric-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.itpc-portal {
		width: min(100% - 20px, 1180px);
		margin-top: 12px;
	}
	.itpc-portal__header,
	.itpc-preview-banner,
	.itpc-section-heading,
	.itpc-list-card {
		align-items: stretch;
		flex-direction: column;
	}
	.itpc-header-actions > *,
	.itpc-button {
		width: 100%;
	}
	.itpc-sidebar,
	.itpc-metric-grid,
	.itpc-card-grid {
		grid-template-columns: 1fr;
	}
	.itpc-organization-switcher {
		align-items: stretch;
		flex-direction: column;
	}
}

