.ges-portal {
	--ges-ink: #1c2430;
	--ges-muted: #5c6b7a;
	--ges-line: #e3e8ee;
	--ges-bg: #f3f5f7;
	--ges-surface: #ffffff;
	--ges-accent: #0f6e56;
	--ges-accent-dark: #0c5946;
	--ges-navy: #13293d;
	--ges-on-accent: #ffffff;
	--ges-on-navy: #ffffff;
	--ges-logo-size: 160px;
	--ges-danger-bg: #fdecec;
	--ges-danger: #8d2a2a;
	--ges-ok-bg: #e7f6ef;
	--ges-ok: #0f6e56;
	color: var(--ges-ink);
	font-family: Poppins, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
}

.ges-portal * { box-sizing: border-box; }

.ges-auth {
	display: flex;
	justify-content: center;
	padding: 32px 16px 48px;
}

.ges-auth-card {
	width: min(440px, 100%);
	background: var(--ges-surface);
	border: 1px solid var(--ges-line);
	border-radius: 18px;
	padding: 32px 28px;
	box-shadow: 0 10px 30px rgba(19, 41, 61, 0.06);
	text-align: center;
}

.ges-login-logo {
	display: block;
	max-width: var(--ges-logo-size);
	max-height: var(--ges-logo-size);
	width: auto;
	height: auto;
	margin: 0 auto 16px;
	object-fit: contain;
}

.ges-auth-card .ges-kicker,
.ges-auth-card h1,
.ges-auth-card .ges-lead,
.ges-auth-card label,
.ges-auth-card .ges-alert {
	text-align: center;
}

.ges-auth-card input[type="email"],
.ges-auth-card input[type="text"] {
	text-align: center;
}

.ges-credit {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 22px 0 0;
	font-size: 13px;
	line-height: 1.4;
}

.ges-credit a {
	color: #1858c7;
	text-decoration: underline;
}

.ges-credit a:hover { color: #0f3f96; }

.ges-kicker {
	margin: 0 0 6px;
	color: var(--ges-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ges-portal h1 {
	margin: 0 0 8px;
	font-size: 28px;
	line-height: 1.2;
	font-weight: 600;
}

.ges-lead {
	margin: 0 0 18px;
	color: var(--ges-muted);
}

.ges-portal label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
}

.ges-portal input[type="email"],
.ges-portal input[type="text"] {
	width: 100%;
	height: 48px;
	margin: 0 0 14px;
	padding: 0 14px;
	border: 1px solid var(--ges-line);
	border-radius: 12px;
	background: #fff;
	color: var(--ges-ink);
	font: inherit;
}

.ges-portal input:focus {
	outline: 2px solid rgba(15, 110, 86, 0.35);
	border-color: var(--ges-accent);
}

.ges-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	padding: 10px 16px;
	border: 0;
	border-radius: 12px;
	background: var(--ges-accent);
	color: var(--ges-on-accent);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.ges-btn:hover { background: var(--ges-accent-dark); color: var(--ges-on-accent); }
.ges-btn:disabled { opacity: 0.65; cursor: wait; }

.ges-btn-ghost {
	width: auto;
	background: transparent;
	color: var(--ges-navy);
	border: 1px solid var(--ges-line);
}

.ges-btn-ghost:hover { background: var(--ges-bg); color: var(--ges-navy); }

.ges-auth-links {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 10px;
}

.ges-alert {
	margin: 0 0 14px;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 14px;
}

.ges-alert.is-error { background: var(--ges-danger-bg); color: var(--ges-danger); }
.ges-alert.is-ok { background: var(--ges-ok-bg); color: var(--ges-ok); }

.ges-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ges-app {
	display: grid;
	grid-template-columns: 240px 1fr;
	min-height: 78vh;
	overflow: hidden;
	border: 1px solid var(--ges-line);
	border-radius: 18px;
	background: var(--ges-surface);
}

.ges-side {
	background: var(--ges-navy);
	color: var(--ges-on-navy);
	padding: 22px 16px;
}

.ges-brand {
	display: flex;
	gap: 10px;
	align-items: center;
	margin-bottom: 28px;
}

.ges-brand.has-logo {
	flex-direction: column;
	align-items: flex-start;
}

.ges-side-logo {
	display: block;
	width: 100%;
	max-height: 72px;
	object-fit: contain;
	background: #fff;
	border-radius: 12px;
	padding: 8px;
}

.ges-brand strong,
.ges-brand small { display: block; }
.ges-brand strong { font-size: 15px; line-height: 1.3; }
.ges-brand small { color: color-mix(in srgb, var(--ges-on-navy) 68%, transparent); font-size: 12px; }

.ges-mark {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: var(--ges-accent);
	font-weight: 700;
}

.ges-nav-link {
	display: block;
	padding: 10px 12px;
	border-radius: 10px;
	color: color-mix(in srgb, var(--ges-on-navy) 88%, transparent);
}

.ges-nav-link.is-current { background: rgba(255, 255, 255, 0.1); }

.ges-main { background: var(--ges-bg); }
.ges-top {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	align-items: center;
	padding: 22px 24px 8px;
}
.ges-top h1 { font-size: 26px; }
.ges-top-actions { display: flex; gap: 8px; align-items: center; }
.ges-top-actions .ges-btn { width: auto; }

.ges-avatar {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #d9e4ea;
	color: var(--ges-navy);
	font-size: 13px;
	font-weight: 700;
}

.ges-content { padding: 8px 24px 28px; }
.ges-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}
.ges-stat, .ges-panel {
	background: var(--ges-surface);
	border: 1px solid var(--ges-line);
	border-radius: 16px;
	padding: 16px 18px;
}
.ges-stat span, .ges-chip {
	color: var(--ges-muted);
	font-size: 13px;
}
.ges-stat strong {
	display: block;
	margin-top: 4px;
	font-size: 32px;
	line-height: 1.1;
}
.ges-panel { margin-bottom: 14px; }
.ges-panel h2 { margin: 0 0 12px; font-size: 18px; }
.ges-list { list-style: none; margin: 0; padding: 0; }
.ges-list li {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	padding: 12px 0;
	border-top: 1px solid var(--ges-line);
}
.ges-list li:first-child { border-top: 0; }
.ges-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 999px;
	background: #eef2f5;
}
.ges-empty {
	margin: 0;
	padding: 16px;
	border: 1px dashed var(--ges-line);
	border-radius: 12px;
	color: var(--ges-muted);
}

@media (max-width: 860px) {
	.ges-app { grid-template-columns: 1fr; }
	.ges-side { padding-bottom: 12px; }
	.ges-stats { grid-template-columns: 1fr; }
	.ges-top { flex-direction: column; align-items: flex-start; }
	.ges-auth-links { flex-direction: column; }
	.ges-auth-links .ges-btn { width: 100%; }
}
