@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

:root {
	--brand-primary: #006b66;
	--brand-primary-strong: #005650;
	--brand-secondary: #009ba1;
	--brand-accent: #13b6c7;
	--brand-success: #13b85a;
	--brand-warning: #f6a21a;
	--brand-danger: #f04444;
	--brand-ink: #173247;
	--brand-muted: #68808e;
	--brand-canvas: #f2fafa;
	--brand-surface: #ffffff;
	--brand-border: #c9e9e9;
	--brand-radius: 12px;
	font-family: Poppins, "Segoe UI", Arial, sans-serif;
	color: var(--brand-ink);
	background: var(--brand-canvas);
}

* {
	box-sizing: border-box;
}

html,
body,
button,
input,
select,
textarea {
	font-family: Poppins, "Segoe UI", Arial, sans-serif !important;
}

body {
	background: var(--brand-canvas) !important;
	color: var(--brand-ink);
	font-size: 13px;
	line-height: 1.55;
}

a {
	color: var(--brand-primary);
}

a:hover {
	color: var(--brand-secondary);
}

.sidebar {
	width: 238px;
	height: 100vh;
	height: 100dvh;
	flex: 0 0 238px;
	position: sticky;
	top: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: linear-gradient(180deg, #063d43 0%, #006b66 100%) !important;
	color: #e9ffff;
	padding: 18px 12px;
}

.sidebar > .brand,
.sidebar > .brand:hover,
.sidebar > .brand:focus-visible {
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}

.brand {
	justify-content: center;
	padding: 4px 8px 20px;
}

.brand img {
	display: block;
	width: 68px !important;
	height: 68px !important;
	object-fit: contain !important;
	border: 0;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 0 !important;
}

.sidebar nav a {
	color: #d4eeee;
	border-radius: 9px;
	font-size: 12px;
	transition: background-color .15s ease, color .15s ease;
}

.sidebar nav a:hover {
	background: #087e7a !important;
	color: #fff;
}

.sidebar nav a.active {
	background: #00a6a6 !important;
	box-shadow: none !important;
	color: #fff;
}

.nav-caption,
.small-label {
	color: #a9dcd9 !important;
}

.nav-icon {
	color: #b9eeee;
}

.sidebar-bottom {
	background: #ffffff12;
	border-color: #ffffff24;
	border-radius: 10px;
}

.sidebar-bottom strong {
	color: #fff;
	font-size: 11px;
}

.sidebar-bottom small {
	color: #c0e5e4;
}

.main-area {
	display: flex;
	height: 100vh;
	height: 100dvh;
	min-width: 0;
	min-height: 0;
	flex: 1 1 auto;
	flex-direction: column;
	overflow: hidden;
	background: var(--brand-canvas);
}

.topbar {
	height: 72px;
	flex: 0 0 72px;
	background: #fff;
	border-bottom: 1px solid var(--brand-border);
	box-shadow: 0 2px 12px #064e4a0a;
	padding: 0 28px;
}

.topbar-left {
	gap: 12px;
}

.topbar-left img {
	width: 52px !important;
	height: 52px !important;
	object-fit: contain !important;
}

.topbar-sep {
	border-color: var(--brand-border);
}

.crumb {
	color: var(--brand-muted);
	font-size: 11px;
}

.account strong {
	color: var(--brand-ink);
}

.account small {
	color: var(--brand-muted);
}

.avatar {
	background: #dff4f1 !important;
	color: var(--brand-primary) !important;
}

.bell {
	color: var(--brand-primary);
}

.textbtn {
	color: var(--brand-primary);
}

.textbtn:hover {
	color: var(--brand-primary-strong);
}

.content {
	width: 100%;
	min-height: 0;
	flex: 1 1 auto;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	max-width: 1700px;
	padding: 26px 30px 40px;
}

.content h2,
.content h3,
.welcome h1,
.loginbox h1,
.loginbox h2 {
	color: var(--brand-ink);
}

.content h2 {
	font-size: 20px;
	font-weight: 600;
}

.muted {
	color: var(--brand-muted);
}

.welcome {
	min-height: 180px;
	border: 1px solid var(--brand-border);
	border-radius: 14px;
	background: linear-gradient(105deg, #f9fdfd 0%, #e3f7f4 70%, #ccefeb 100%) !important;
	box-shadow: 0 5px 18px #144c4a0b;
}

.welcome-copy {
	padding: 27px 32px;
}

.eyebrow,
.panel-eyebrow {
	color: var(--brand-primary);
	letter-spacing: 1.2px;
}

.welcome h1 {
	font-size: 25px;
	font-weight: 600;
	letter-spacing: -.4px;
}

.welcome p {
	color: #53737d;
}

.welcome-pill,
.hint {
	background: #e2f6f1 !important;
	border-color: #b9e6dd !important;
	color: var(--brand-primary) !important;
}

.welcome-art {
	background: linear-gradient(140deg, #00a6a4, #005650) !important;
}

.stats {
	gap: 13px;
	margin: 18px 0;
}

.stat,
.panel,
.loginbox {
	background: var(--brand-surface);
	border: 1px solid var(--brand-border) !important;
	border-radius: var(--brand-radius) !important;
	box-shadow: 0 3px 14px #174d4b0a !important;
}

.stat {
	min-height: 100px;
	padding: 16px;
	transition: transform .15s ease, box-shadow .15s ease;
}

.stat:hover {
	box-shadow: 0 8px 20px #174d4b16 !important;
	transform: translateY(-2px);
}

.stat-icon,
.event-symbol,
.quick-links a > span {
	background: #def4f0 !important;
	color: var(--brand-primary) !important;
}

.stat strong {
	color: var(--brand-ink);
	font-size: 23px;
}

.stat small,
.stat-foot {
	color: var(--brand-muted);
}

.stat-arrow {
	color: var(--brand-secondary);
}

.panel {
	padding: 18px;
	margin: 16px 0;
}

.panel-head h3,
.panel h3 {
	font-size: 14px;
	font-weight: 600;
}

.panel-link {
	color: var(--brand-primary);
	font-weight: 600;
}

.event-row,
.quick-links a {
	border-color: #e6f1f0;
}

.event-row:hover,
.quick-links a:hover {
	background: #f6fbfa;
}

th {
	background: #e9f6f4 !important;
	color: #285d62 !important;
}

td,
th {
	border-color: #e4efee;
}

td {
	color: #405965;
}

.severity.low {
	color: var(--brand-success);
}

.severity.medium {
	color: var(--brand-warning);
}

.severity.high,
.severity.critical {
	color: var(--brand-danger);
}

button,
.primary {
	border: 0;
	border-radius: 7px;
	background: var(--brand-primary) !important;
	color: #fff !important;
	font-weight: 600;
	transition: background-color .15s ease, box-shadow .15s ease;
}

button:hover,
.primary:hover {
	background: var(--brand-primary-strong) !important;
	color: #fff !important;
}

.primary {
	padding: 10px 16px;
}

.secondary,
.tinybtn {
	background: #fff !important;
	border: 1px solid #abd8d5 !important;
	color: var(--brand-primary) !important;
	border-radius: 7px;
}

.secondary:hover,
.tinybtn:hover {
	background: #eaf8f6 !important;
	color: var(--brand-primary-strong) !important;
}

.tinybtn {
	padding: 6px 10px;
}

.tinybtn.danger {
	background: #fff3f1 !important;
	border-color: #f3cbc4 !important;
	color: #c43e35 !important;
}

.tinybtn.danger:hover {
	background: #ffe8e4 !important;
}

input,
select,
textarea {
	border: 1px solid #c8dddd !important;
	border-radius: 7px !important;
	background: #fff !important;
	color: var(--brand-ink) !important;
	padding: 10px 12px;
}

input::placeholder,
textarea::placeholder {
	color: #8ba0a7;
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
	outline: 2px solid var(--brand-accent) !important;
	outline-offset: 2px;
}

.form-grid label {
	color: #405c65;
	font-weight: 500;
}

.hint {
	border-radius: 9px;
}

.alert.good {
	background: #e3f7e9;
	color: #14743a;
}

.alert.bad {
	background: #fff0ee;
	color: #a8342f;
}

dialog {
	border-radius: 12px;
}

.loginbody {
	display: grid !important;
	place-items: center;
	min-height: 100vh;
	min-height: 100dvh;
	overflow-x: hidden;
	overflow-y: auto;
	margin: 0;
	padding: 24px 12px;
	background:
		linear-gradient(155deg, #063b42 0%, #005b5b 57%, #004449 100%) !important;
}

.loginbody::before {
	display: none;
}

.loginbox {
	width: min(420px, 94vw);
	max-height: none;
	overflow: visible;
	padding: 35px;
	border: 1px solid var(--brand-border) !important;
	border-radius: 15px !important;
	background: #fff !important;
	box-shadow: 0 25px 75px #0005 !important;
	color: var(--brand-ink);
}

.login-brand {
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 8px;
}

.login-brand img {
	display: block;
	width: 110px !important;
	height: 90px !important;
	object-fit: contain !important;
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.loginbox h1 {
	margin: 0;
	color: #123955;
	font-size: 22px;
	font-weight: 600;
}

.loginbox > p {
	margin: 8px 0;
	color: var(--brand-muted);
	text-align: center;
}

.loginbox h2 {
	margin: 22px 0 14px;
	color: var(--brand-ink);
	font-size: 19px;
	font-weight: 600;
}

.loginbox label {
	display: block;
	margin: 15px 0 6px;
	color: #405c65;
	font-weight: 500;
}

.login-card-form input {
	width: 100%;
}

.login-card-form > button {
	width: 100%;
	margin-top: 22px;
}

.loginbox .alert.bad {
	margin-bottom: 12px;
	border: 1px solid #f4aaa0;
	background: #fff0ee;
	color: #a8342f;
}

.pagination a {
	color: var(--brand-primary);
}

@media (max-width: 850px) {
	.sidebar {
		width: 180px;
		flex-basis: 180px;
	}

	.topbar {
		padding: 0 16px;
	}

	.content {
		padding: 18px 16px 30px;
	}
}

@media (max-width: 600px) {
	.shell {
		height: 100vh;
		height: 100dvh;
		min-height: 0;
		flex-direction: column;
		overflow: hidden;
	}

	.sidebar {
		width: 100%;
		height: auto;
		max-height: none;
		flex: 0 0 auto;
		position: relative;
		overflow: hidden;
		padding: 8px;
	}

	.brand {
		display: none;
	}

	.sidebar nav {
		display: flex;
		width: 100%;
		gap: 3px;
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		scrollbar-width: thin;
	}

	.sidebar nav a {
		flex: 0 0 auto;
		padding: 9px 10px;
	}

	.sidebar-bottom {
		display: none;
	}

	.topbar {
		height: 58px;
		flex-basis: 58px;
		padding: 0 12px;
	}

	.topbar-left img {
		width: 42px !important;
		height: 42px !important;
	}

	.topbar-sep {
		margin: 0 2px;
	}

	.crumb {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.content {
		padding: 14px 12px 24px;
	}

	.main-area {
		width: 100%;
		height: auto;
		flex: 1 1 0;
	}

	.welcome {
		min-height: 150px;
	}

	.welcome-copy {
		padding: 22px 18px;
	}

	.welcome h1 {
		font-size: 21px;
	}

	.welcome-art {
		width: 22%;
		min-width: 76px;
	}

	.welcome-art span {
		font-size: 48px;
	}

	.loginbox {
		width: min(300px, 100%);
		width: min(420px, calc(100vw - 24px));
		padding: 26px 22px;
	}

	.account {
		gap: 7px;
	}

	.account .user-info {
		display: none;
	}

	.welcome-art {
		display: none;
	}

	.welcome h1 {
		font-size: 19px;
	}

}
html {
	scrollbar-color: #009ba1 #e2f0ef;
	scrollbar-width: thin;
}

.sidebar,
.content,
.sidebar nav {
	scrollbar-color: #1ab9b3 #07534f;
	scrollbar-width: thin;
}

.content {
	scrollbar-color: #009ba1 #e5f0ef;
}

html::-webkit-scrollbar,
.sidebar::-webkit-scrollbar,
.content::-webkit-scrollbar {
	width: 11px;
	height: 11px;
}

html::-webkit-scrollbar-track,
.content::-webkit-scrollbar-track {
	margin: 5px;
	border: 2px solid #cce7e4;
	border-radius: 99px;
	background: #e5f0ef;
}

.sidebar::-webkit-scrollbar-track {
	margin: 5px;
	border: 2px solid #16817b;
	border-radius: 99px;
	background: #07534f;
}

html::-webkit-scrollbar-thumb,
.content::-webkit-scrollbar-thumb {
	min-height: 36px;
	border: 2px solid #e5f0ef;
	border-radius: 99px;
	background: linear-gradient(180deg, #10a9a5, #007b77);
}

.sidebar::-webkit-scrollbar-thumb {
	min-height: 36px;
	border: 2px solid #07534f;
	border-radius: 99px;
	background: linear-gradient(180deg, #36d0ca, #0b9c96);
}

html::-webkit-scrollbar-thumb:hover,
.content::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #008c87, #006b66);
}

.sidebar::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, #54ded8, #1ab5ae);
}

html::-webkit-scrollbar-button,
.sidebar::-webkit-scrollbar-button,
.content::-webkit-scrollbar-button {
	display: none;
	width: 0;
	height: 0;
}

@media (max-width: 600px) {
	.sidebar nav {
		scrollbar-color: #1ab9b3 #07534f;
		scrollbar-width: thin;
	}

	.sidebar nav::-webkit-scrollbar {
		width: 7px;
		height: 7px;
	}

	.sidebar nav::-webkit-scrollbar-track {
		margin: 2px 6px;
		border: 1px solid #16817b;
		border-radius: 99px;
		background: #07534f;
	}

	.sidebar nav::-webkit-scrollbar-thumb {
		border: 1px solid #07534f;
		border-radius: 99px;
		background: linear-gradient(90deg, #36d0ca, #0b9c96);
	}

	.sidebar nav::-webkit-scrollbar-button {
		display: none;
		width: 0;
		height: 0;
	}
}

.sidebar-toggle,
.sidebar-backdrop {
	display: none;
}

@media (max-width: 760px) {
	.shell {
		position: relative;
	}

	.sidebar-toggle {
		display: grid;
		width: 40px;
		height: 40px;
		flex: 0 0 40px;
		place-items: center;
		padding: 8px;
		border: 1px solid var(--brand-border);
		border-radius: 9px;
		background: #fff !important;
		color: var(--brand-primary) !important;
	}

	.sidebar-toggle:hover {
		background: #eaf8f6 !important;
	}

	.sidebar-toggle svg {
		width: 22px;
		height: 22px;
	}

	.sidebar-backdrop {
		position: fixed;
		z-index: 39;
		inset: 0;
		width: 100%;
		height: 100%;
		border: 0;
		background: #102b3b80;
	}

	.sidebar-backdrop:not([hidden]) {
		display: block;
	}

	.sidebar {
		position: fixed;
		z-index: 40;
		top: 0;
		bottom: 0;
		left: 0;
		width: min(290px, 84vw);
		height: 100vh;
		height: 100dvh;
		max-height: none;
		flex: 0 0 min(290px, 84vw);
		padding: 18px 12px;
		overflow-x: hidden;
		overflow-y: auto;
		transform: translateX(-105%);
		transition: transform .2s ease;
		visibility: hidden;
	}

	.sidebar .brand {
		display: flex;
	}

	.shell {
		height: 100vh;
		height: 100dvh;
		min-height: 0;
		flex-direction: row;
		overflow: hidden;
	}

	.main-area {
		width: auto;
		height: 100vh;
		height: 100dvh;
		min-height: 0;
		flex: 1 1 auto;
	}

	.sidebar nav {
		display: grid;
		width: auto;
		overflow: visible;
	}

	.sidebar nav a {
		flex: initial;
		white-space: normal;
	}

	.sidebar-bottom {
		display: grid;
	}

	.shell.sidebar-open .sidebar {
		transform: translateX(0);
		visibility: visible;
	}

	.topbar {
		gap: 10px;
		padding: 0 12px;
	}

	.topbar-left {
		min-width: 0;
		gap: 8px;
	}

	.topbar-left img {
		flex: 0 0 auto;
	}
}

.ui-icon {
	display: block;
	width: 100%;
	height: 100%;
}

.nav-icon {
	display: grid;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	place-items: center;
	border-radius: 10px;
	background: #e2f4f1;
}

.nav-icon .ui-icon {
	width: 28px;
	height: 28px;
}

.sidebar nav a.active .nav-icon,
.sidebar nav a:hover .nav-icon {
	background: #c9eee8;
}

.stat-icon {
	width: 56px;
	min-width: 56px;
	height: 56px;
	padding: 6px;
}

.stat-icon .ui-icon {
	width: 44px;
	height: 44px;
}

.stat-arrow {
	display: grid;
	width: 20px;
	height: 20px;
	place-items: center;
}

.stat-arrow .ui-icon {
	width: 18px;
	height: 18px;
}

.quick-links a > span {
	width: 42px;
	height: 42px;
	padding: 4px;
}

.quick-links a > span .ui-icon {
	width: 34px;
	height: 34px;
}

.quick-links a > b {
	display: grid;
	width: 22px;
	height: 22px;
	place-items: center;
}

.quick-links a > b .ui-icon {
	width: 18px;
	height: 18px;
}

.welcome-art .ui-icon {
	width: 90px;
	height: 90px;
	transform: skewX(12deg);
}

.bell {
	position: relative;
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
}

.bell .ui-icon {
	width: 26px;
	height: 26px;
}

.resource-filters,
.inbox-filters {
	display: flex;
	width: 100%;
	max-width: none;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	margin: 0 0 16px;
}

.resource-filters > input[type="search"] {
	width: auto;
	min-width: min(220px, 100%);
	flex: 1 1 220px;
}

.resource-filters > label,
.inbox-filters > label {
	display: grid;
	min-width: 130px;
	flex: 1 1 145px;
	gap: 5px;
	color: #405c65;
	font-size: 11px;
	font-weight: 600;
}

.resource-filters select,
.inbox-filters select {
	width: 100%;
	min-width: 0;
}

.resource-filters > label[for="per-page-filter"],
.inbox-filters > label[for="inbox-per-page"] {
	min-width: 125px;
	flex: 0 1 145px;
}

.resource-filters > button,
.inbox-filters > button {
	min-height: 42px;
	flex: 0 0 auto;
}

.bell #unread-count:not(:empty) {
	position: absolute;
	top: -2px;
	right: -4px;
	display: grid;
	min-width: 16px;
	height: 16px;
	place-items: center;
	padding: 0 3px;
	border-radius: 99px;
	background: #f36d78;
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	line-height: 1;
}

.scope-note .ui-icon {
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 5px;
	vertical-align: -3px;
}

.panel-link .ui-icon {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 3px;
	vertical-align: -2px;
}

.row-chevron .ui-icon {
	width: 18px;
	height: 18px;
}
