:root {
	--gca-primary: #08afe6;
	--gca-primary-dark: #008bc3;
	--gca-navy: #034965;
	--gca-navy-deep: #022c40;
	--gca-ink: #102a3a;
	--gca-muted: #6d7f8c;
	--gca-bg: #f3f7f9;
	--gca-card: #ffffff;
	--gca-line: #dfe9ee;
	--gca-success: #13b981;
	--gca-warning: #f4a62a;
	--gca-danger: #ef5964;
	--gca-blue-soft: #e7f8fe;
	--gca-shadow: 0 18px 55px rgba(3, 73, 101, 0.1);
}

.gca-app,
.gca-app *,
.gca-kiosk-page,
.gca-kiosk-page * {
	box-sizing: border-box;
}

.gca-app button,
.gca-app input,
.gca-app select,
.gca-app textarea,
.gca-kiosk-page button,
.gca-kiosk-page input,
.gca-kiosk-page select,
.gca-kiosk-page textarea {
	font: inherit;
}

.gca-app {
	position: fixed;
	inset: 0;
	z-index: 999998;
	display: grid;
	grid-template-columns: 255px minmax(0, 1fr);
	min-height: 100vh;
	width: 100%;
	overflow: auto;
	background: var(--gca-bg);
	color: var(--gca-ink);
	font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.gca-sidebar {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	padding: 22px 16px;
	background:
		radial-gradient(circle at 0 0, rgba(8, 175, 230, 0.28), transparent 34%),
		linear-gradient(165deg, #063e57 0%, #022f44 56%, #021f30 100%);
	color: #fff;
	z-index: 50;
}

.gca-brand {
	min-height: 84px;
	padding: 13px 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.98);
	border-radius: 18px;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.14);
}

.gca-brand img {
	display: block;
	max-width: 100%;
	height: auto;
}

.gca-nav {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: 28px;
}

.gca-nav-item {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	border: 0;
	border-radius: 13px;
	padding: 11px 14px;
	background: transparent;
	color: rgba(255, 255, 255, 0.76);
	font-size: 14px;
	font-weight: 650;
	text-align: left;
	cursor: pointer;
	transition: 180ms ease;
}

.gca-nav-item span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	font-size: 19px;
	font-weight: 400;
}

.gca-nav-item:hover,
.gca-nav-item.is-active {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	transform: translateX(2px);
}

.gca-nav-item.is-active {
	box-shadow: inset 3px 0 0 var(--gca-primary);
}

.gca-sidebar-foot {
	margin-top: auto;
	padding: 16px 12px 4px;
	display: grid;
	gap: 5px;
	color: rgba(255, 255, 255, 0.58);
	font-size: 12px;
}

.gca-sidebar-foot a {
	color: #fff;
	text-decoration: none;
}

.gca-main {
	min-width: 0;
}

.gca-topbar {
	height: 96px;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 0 34px;
	background: rgba(255, 255, 255, 0.86);
	border-bottom: 1px solid rgba(3, 73, 101, 0.08);
	backdrop-filter: blur(16px);
	position: sticky;
	top: 0;
	z-index: 40;
}

.gca-topbar h1 {
	margin: 2px 0 0;
	color: var(--gca-ink);
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1.1;
}

.gca-eyebrow {
	margin: 0;
	color: var(--gca-primary-dark);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gca-live-status {
	margin-left: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 11px;
	border: 1px solid #d9e9e2;
	border-radius: 999px;
	background: #f5fffb;
	color: #277157;
	font-size: 12px;
	font-weight: 700;
}

.gca-live-status i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gca-success);
	box-shadow: 0 0 0 5px rgba(19, 185, 129, 0.12);
}


.gca-topbar-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 10px;
}

.gca-notification-center {
	position: relative;
}

.gca-notification-toggle {
	position: relative;
	min-height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 17px;
	border: 1px solid #dce8ed;
	border-radius: 13px;
	background: #fff;
	color: var(--gca-navy);
	box-shadow: 0 6px 18px rgba(2, 44, 64, 0.06);
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .01em;
	white-space: nowrap;
	transition: transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease;
}

.gca-notification-toggle:hover,
.gca-notification-toggle[aria-expanded="true"] {
	transform: translateY(-1px);
	border-color: rgba(8, 175, 230, 0.35);
	box-shadow: 0 10px 24px rgba(2, 44, 64, 0.10);
}

.gca-notification-label {
	display: block;
	line-height: 1;
}

.gca-notification-badge {
	position: absolute;
	top: -6px;
	right: -7px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #fff;
	border-radius: 999px;
	background: #ef4444;
	color: #fff;
	font-size: 10px;
	font-weight: 900;
	line-height: 1;
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.28);
}

.gca-notification-toggle.has-alerts::after {
	content: '';
	position: absolute;
	inset: -4px;
	border: 1px solid rgba(239, 68, 68, 0.18);
	border-radius: 16px;
	pointer-events: none;
}

.gca-notification-panel {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	width: min(390px, calc(100vw - 32px));
	max-height: min(620px, calc(100vh - 120px));
	overflow: auto;
	background: #fff;
	border: 1px solid #dfeaec;
	border-radius: 18px;
	box-shadow: 0 24px 60px rgba(2, 44, 64, 0.20);
	z-index: 90;
}

.gca-notification-panel-head {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 17px 18px 14px;
	background: rgba(255,255,255,.96);
	border-bottom: 1px solid #edf2f4;
	backdrop-filter: blur(8px);
}

.gca-notification-panel-head strong,
.gca-notification-panel-head small {
	display: block;
}

.gca-notification-panel-head strong {
	font-size: 14px;
	color: var(--gca-ink);
}

.gca-notification-panel-head small {
	margin-top: 2px;
	font-size: 11px;
	color: var(--gca-muted);
}

.gca-notification-count {
	min-width: 28px;
	height: 28px;
	display: inline-grid;
	place-items: center;
	border-radius: 999px;
	background: #fff3e0;
	color: #a96000;
	font-size: 12px;
	font-weight: 900;
}

.gca-notification-list {
	display: grid;
}

.gca-notification-item {
	width: 100%;
	display: grid;
	grid-template-columns: 34px minmax(0,1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border: 0;
	border-bottom: 1px solid #edf2f4;
	background: #fff;
	text-align: left;
	cursor: pointer;
}

.gca-notification-item:hover {
	background: #f7fbfd;
}

.gca-notification-item-icon {
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border-radius: 10px;
	background: #fff5e7;
	color: #af6700;
	font-weight: 900;
}

.gca-notification-item.is-communication .gca-notification-item-icon {
	background: #eaf8fd;
	color: #087aa0;
}

.gca-notification-item-copy {
	min-width: 0;
	display: block;
}

.gca-notification-item-copy strong,
.gca-notification-item-copy span,
.gca-notification-item-copy small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gca-notification-item-copy strong {
	font-size: 13px;
	color: var(--gca-ink);
}

.gca-notification-item-copy span {
	margin-top: 2px;
	font-size: 12px;
	color: #3c5661;
}

.gca-notification-item-copy small {
	margin-top: 3px;
	font-size: 10px;
	color: var(--gca-muted);
}

.gca-notification-item-action {
	font-size: 11px;
	font-weight: 800;
	color: var(--gca-primary-dark);
	white-space: nowrap;
}

.gca-notification-view-all {
	width: 100%;
	padding: 13px 16px;
	border: 0;
	background: #f8fbfc;
	color: var(--gca-primary-dark);
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}

.gca-notification-empty {
	padding: 28px 20px 30px;
	text-align: center;
}

.gca-notification-empty span {
	width: 38px;
	height: 38px;
	margin: 0 auto 10px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #ecfaf5;
	color: #17865f;
	font-weight: 900;
}

.gca-notification-empty strong,
.gca-notification-empty small {
	display: block;
}

.gca-notification-empty strong {
	font-size: 13px;
	color: var(--gca-ink);
}

.gca-notification-empty small {
	margin-top: 4px;
	font-size: 11px;
	color: var(--gca-muted);
}

.gca-mobile-menu {
	display: none;
	border: 0;
	background: transparent;
	color: var(--gca-navy);
	font-size: 24px;
	cursor: pointer;
}

.gca-content {
	padding: 30px 34px 70px;
}

.gca-loading {
	min-height: 55vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: var(--gca-muted);
}

.gca-loader {
	width: 42px;
	height: 42px;
	border: 3px solid rgba(8, 175, 230, 0.18);
	border-top-color: var(--gca-primary);
	border-radius: 50%;
	animation: gca-spin 0.85s linear infinite;
}

.gca-loader.is-light {
	border-color: rgba(255, 255, 255, 0.2);
	border-top-color: #fff;
}

@keyframes gca-spin {
	to { transform: rotate(360deg); }
}

.gca-page-head {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 22px;
}

.gca-page-head > div:first-child {
	min-width: 0;
}

.gca-page-head h2 {
	margin: 0;
	font-size: 22px;
}

.gca-page-head p {
	margin: 6px 0 0;
	color: var(--gca-muted);
}

.gca-page-actions {
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.gca-primary-button,
.gca-secondary-button,
.gca-danger-button,
.gca-icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	border-radius: 11px;
	padding: 9px 15px;
	border: 1px solid transparent;
	font-weight: 750;
	font-size: 13px;
	text-decoration: none;
	cursor: pointer;
	transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.gca-primary-button {
	background: linear-gradient(135deg, var(--gca-primary), #008dcc);
	color: #fff;
	box-shadow: 0 10px 22px rgba(8, 175, 230, 0.23);
}

.gca-secondary-button {
	background: #fff;
	color: var(--gca-navy);
	border-color: var(--gca-line);
}

.gca-danger-button {
	background: #fff1f2;
	color: #bc3943;
	border-color: #ffd7db;
}

.gca-primary-button:hover,
.gca-secondary-button:hover,
.gca-danger-button:hover,
.gca-icon-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 9px 24px rgba(3, 73, 101, 0.12);
}

.gca-primary-button:disabled,
.gca-secondary-button:disabled {
	opacity: 0.55;
	cursor: wait;
	transform: none;
}

.gca-icon-button {
	min-height: 34px;
	padding: 6px 9px;
	background: #f4f9fb;
	border-color: var(--gca-line);
	color: var(--gca-navy);
}

.gca-metrics {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 22px;
}

.gca-metric {
	position: relative;
	min-height: 135px;
	padding: 20px;
	overflow: hidden;
	background: var(--gca-card);
	border: 1px solid rgba(3, 73, 101, 0.07);
	border-radius: 19px;
	box-shadow: var(--gca-shadow);
}

.gca-metric::after {
	content: "";
	position: absolute;
	width: 70px;
	height: 70px;
	right: -22px;
	top: -22px;
	border-radius: 50%;
	background: var(--metric-color, var(--gca-primary));
	opacity: 0.11;
}

.gca-metric-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 37px;
	height: 37px;
	border-radius: 11px;
	background: color-mix(in srgb, var(--metric-color, var(--gca-primary)) 14%, white);
	color: var(--metric-color, var(--gca-primary));
	font-size: 18px;
}

.gca-metric-icon svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gca-metric strong {
	display: block;
	margin-top: 12px;
	font-size: 30px;
	line-height: 1;
}

.gca-metric span:last-child {
	display: block;
	margin-top: 6px;
	color: var(--gca-muted);
	font-size: 13px;
}

.gca-grid-2 {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
	gap: 18px;
}

.gca-live-control {
	display: grid;
	gap: 18px;
	margin-bottom: 22px;
}

.gca-live-filter-card {
	padding: 19px 20px 20px;
	background: linear-gradient(135deg, #fff, #f8fcfe);
	border: 1px solid rgba(3, 73, 101, 0.08);
	border-radius: 19px;
	box-shadow: var(--gca-shadow);
}

.gca-live-filter-card .gca-filter-head {
	margin-bottom: 15px;
}

.gca-live-updated {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #4f6d7c;
	font-size: 11px;
	font-weight: 700;
}

.gca-live-updated i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gca-success);
	box-shadow: 0 0 0 4px rgba(19, 185, 129, 0.12);
}

.gca-live-filter-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(105px, 1fr));
	gap: 11px;
	align-items: end;
}

.gca-live-filter-grid > .gca-field:nth-child(4) {
	grid-column: span 2;
}

.gca-live-filter-grid .gca-filter-buttons {
	grid-column: span 2;
}

.gca-live-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}


.gca-live-card {
	min-width: 0;
}

/* Compact dashboard sections: same visual language, less vertical scrolling. */
.gca-collapsible-head {
	min-height: 76px;
}

.gca-collapse-head-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
}

.gca-collapse-toggle {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 34px;
	padding: 6px 10px;
	border: 1px solid var(--gca-line);
	border-radius: 10px;
	background: #f7fbfc;
	color: #55717f;
	font: inherit;
	font-size: 10px;
	font-weight: 800;
	cursor: pointer;
	transition: background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.gca-collapse-toggle:hover {
	background: #f1f8fa;
	border-color: #cfe1e8;
	box-shadow: 0 6px 15px rgba(3, 73, 101, 0.07);
}

.gca-collapse-toggle:focus-visible {
	outline: 3px solid rgba(8, 175, 230, 0.22);
	outline-offset: 2px;
}

.gca-collapse-toggle i {
	width: 7px;
	height: 7px;
	border-right: 1.6px solid currentColor;
	border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 160ms ease;
}

.gca-collapse-toggle[aria-expanded="true"] i {
	transform: rotate(225deg) translate(-1px, -1px);
}

.gca-card.is-collapsed .gca-card-head {
	border-bottom-color: transparent;
}

.gca-dashboard-staff-scroll {
	max-height: 520px;
	overflow: auto;
	scrollbar-color: #c7dce5 transparent;
}

.gca-dashboard-staff-scroll .gca-table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
}

.gca-dashboard-side-card .gca-recent-head {
	border-top: 1px solid var(--gca-line);
}

.gca-dashboard-side-card .gca-recent-head:last-child {
	border-bottom-color: transparent;
}

.gca-dashboard-branch-body {
	padding-top: 16px;
	padding-bottom: 16px;
}

.gca-recent-punches {
	max-height: 330px;
	overflow: auto;
}

.gca-live-card-stats {
	display: grid;
	justify-items: end;
	gap: 2px;
}

.gca-live-card-stats strong {
	color: var(--gca-navy);
	font-size: 19px;
}

.gca-live-card-stats span {
	color: var(--gca-muted);
	font-size: 10px;
}

.gca-live-scroll {
	max-height: 560px;
	overflow: auto;
	scrollbar-color: #c7dce5 transparent;
}

.gca-live-person-row {
	width: 100%;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 11px;
	padding: 13px 16px;
	border: 0;
	border-bottom: 1px solid var(--gca-line);
	background: #fff;
	color: var(--gca-navy);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background 140ms ease, box-shadow 140ms ease;
}

.gca-live-person-row:last-child {
	border-bottom: 0;
}

.gca-live-person-row:hover {
	background: #f4fbfe;
}

.gca-live-person-row:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid rgba(8, 175, 230, 0.28);
	outline-offset: -3px;
}

.gca-live-person-copy {
	min-width: 0;
}

.gca-live-person-copy strong,
.gca-live-person-copy small {
	display: block;
}

.gca-live-person-copy strong {
	overflow: hidden;
	color: var(--gca-navy);
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gca-live-person-copy small {
	margin-top: 3px;
	overflow: hidden;
	color: var(--gca-muted);
	font-size: 9px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gca-live-total {
	flex: 0 0 auto;
	display: grid;
	justify-items: end;
	gap: 2px;
	padding: 7px 9px;
	border-radius: 11px;
}

.gca-live-total strong {
	font-size: 13px;
}

.gca-live-total span {
	font-size: 9px;
}

.gca-live-total.is-warning { background: #fff5df; color: #9b6410; }
.gca-live-total.is-danger { background: #fff0f2; color: #b73b46; }
.gca-live-total.is-success { background: #e8fbf4; color: #087b54; }

.gca-live-chevron {
	color: #8ba7b4;
	font-size: 24px;
	font-weight: 300;
	line-height: 1;
}

.gca-live-detail-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 16px;
	border: 1px solid #dcebf1;
	border-radius: 16px;
	background: linear-gradient(135deg, #f4fbfe, #fff);
}

.gca-live-detail-kpis {
	display: grid;
	grid-template-columns: repeat(2, minmax(120px, 1fr));
	gap: 8px;
}

.gca-live-detail-kpis > div {
	display: grid;
	gap: 3px;
	padding: 10px 12px;
	border: 1px solid #e1edf2;
	border-radius: 12px;
	background: #fff;
	text-align: right;
}

.gca-live-detail-kpis strong {
	color: var(--gca-navy);
	font-size: 16px;
}

.gca-live-detail-kpis span {
	color: var(--gca-muted);
	font-size: 9px;
}

.gca-live-detail-list {
	display: grid;
	gap: 8px;
	margin-top: 14px;
}

.gca-live-events {
	display: grid;
	gap: 7px;
	margin-top: 12px;
}

.gca-live-event {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 7px;
	padding: 9px 10px;
	border: 1px solid #e8eff2;
	border-radius: 11px;
	background: #fbfdfe;
}

.gca-live-event-main {
	min-width: 0;
}

.gca-live-event-main strong,
.gca-live-event-main small {
	display: block;
}

.gca-live-event-main strong {
	color: #294a5a;
	font-size: 11px;
}

.gca-live-event-main small {
	margin-top: 3px;
	color: var(--gca-muted);
	font-size: 9px;
	line-height: 1.35;
}

.gca-live-duration {
	color: #345969;
	font-size: 10px;
	font-weight: 800;
	white-space: nowrap;
}

.gca-live-note {
	grid-column: 1 / -1;
	display: block;
	padding: 6px 8px;
	border-radius: 8px;
	font-size: 10px;
	line-height: 1.35;
}

.gca-live-note.is-approved { background: #e8fbf4; color: #087b54; }
.gca-live-note.is-pending { background: #fff5df; color: #8a5b10; }
.gca-live-note.is-rejected { background: #fff0f2; color: #b73b46; }
.gca-live-note.is-missing { background: #f0f3f5; color: #73838c; }

.gca-live-error {
	margin-top: 12px;
	padding: 9px 11px;
	border-radius: 10px;
	background: #fff0f2;
	color: #b73b46;
	font-size: 11px;
}

.gca-card {
	background: var(--gca-card);
	border: 1px solid rgba(3, 73, 101, 0.08);
	border-radius: 19px;
	box-shadow: var(--gca-shadow);
	overflow: hidden;
}

.gca-card-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 19px 20px;
	border-bottom: 1px solid var(--gca-line);
}

.gca-card-head h3 {
	margin: 0;
	font-size: 16px;
}

.gca-card-head p {
	margin: 4px 0 0;
	color: var(--gca-muted);
	font-size: 12px;
}

.gca-card-head > :last-child:not(:first-child) {
	margin-left: auto;
}

.gca-card-body {
	padding: 20px;
}

.gca-table-wrap {
	width: 100%;
	overflow: auto;
}

.gca-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.gca-table th {
	padding: 11px 14px;
	background: #f7fafb;
	color: #627783;
	font-size: 10px;
	font-weight: 850;
	letter-spacing: 0.065em;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
}

.gca-table td {
	padding: 13px 14px;
	border-top: 1px solid #edf2f4;
	color: #304b5b;
	vertical-align: middle;
}

.gca-table tbody tr:hover {
	background: #fbfdfe;
}

.gca-person {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 180px;
}

.gca-avatar {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 11px;
	background: linear-gradient(135deg, var(--gca-navy), var(--gca-primary));
	color: #fff;
	font-size: 12px;
	font-weight: 800;
}

.gca-person strong,
.gca-person small {
	display: block;
}

.gca-person small {
	margin-top: 2px;
	color: var(--gca-muted);
}

.gca-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 8px;
	border-radius: 999px;
	background: #eef4f6;
	color: #54717f;
	font-size: 11px;
	font-weight: 750;
	white-space: nowrap;
}

.gca-badge.is-success { background: #e8fbf4; color: #087b54; }
.gca-badge.is-warning { background: #fff5df; color: #9b6410; }
.gca-badge.is-danger { background: #fff0f2; color: #b73b46; }
.gca-badge.is-info { background: #e9f8fe; color: #067fac; }
.gca-badge.is-muted { background: #f0f3f5; color: #73838c; }

.gca-table-subline {
	display: block;
	margin-top: 4px;
	color: var(--gca-muted);
	font-size: 11px;
	white-space: nowrap;
}

.gca-observation-list {
	display: grid;
	gap: 4px;
	min-width: 185px;
}

.gca-observation-list span {
	display: flex;
	gap: 6px;
	color: #566f7d;
	font-size: 11px;
	line-height: 1.35;
}

.gca-observation-list span::before {
	content: "•";
	color: var(--gca-primary);
	font-weight: 900;
}

.gca-report-detail > summary {
	cursor: pointer;
	list-style: none;
}

.gca-report-detail > summary::-webkit-details-marker {
	display: none;
}

.gca-report-detail[open] > summary {
	border-bottom: 1px solid var(--gca-line);
}

.gca-search-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--gca-line);
	background: #fbfdfe;
}

.gca-attendance-filters {
	margin-bottom: 18px;
	padding: 20px 22px;
	background: #fff;
	border: 1px solid rgba(3, 73, 101, 0.08);
	border-radius: 19px;
	box-shadow: var(--gca-shadow);
}

.gca-filter-head {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 17px;
}

.gca-filter-head h3 {
	margin: 0;
	font-size: 16px;
}

.gca-filter-head p {
	margin: 4px 0 0;
	color: var(--gca-muted);
	font-size: 12px;
}

.gca-saved-view-controls {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 8px;
}

.gca-advanced-filter-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(120px, 1fr));
	gap: 12px;
	align-items: end;
}

.gca-advanced-filter-grid .gca-field label {
	font-size: 10px;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.gca-filter-buttons {
	grid-column: span 2;
	display: grid;
	grid-template-columns: minmax(100px, 0.7fr) minmax(160px, 1.3fr);
	gap: 8px;
}

.gca-attendance-table {
	min-width: 1320px;
}

.gca-pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 14px 18px;
	border-top: 1px solid var(--gca-line);
	color: var(--gca-muted);
	font-size: 12px;
}

.gca-pagination > div {
	display: flex;
	align-items: center;
	gap: 8px;
}

.gca-icon-button:disabled {
	opacity: 0.45;
	cursor: default;
	transform: none;
	box-shadow: none;
}

.gca-search {
	position: relative;
	flex: 1 1 250px;
}

.gca-search input,
.gca-filter,
.gca-field input,
.gca-field select,
.gca-field textarea {
	width: 100%;
	min-height: 42px;
	border: 1px solid #d7e3e8;
	border-radius: 11px;
	padding: 9px 12px;
	background: #fff;
	color: var(--gca-ink);
	outline: none;
	transition: border 150ms ease, box-shadow 150ms ease;
}

.gca-search input:focus,
.gca-filter:focus,
.gca-field input:focus,
.gca-field select:focus,
.gca-field textarea:focus {
	border-color: var(--gca-primary);
	box-shadow: 0 0 0 4px rgba(8, 175, 230, 0.11);
}

.gca-filter {
	width: auto;
	min-width: 170px;
}

.gca-empty {
	padding: 46px 24px;
	color: var(--gca-muted);
	text-align: center;
}

.gca-empty strong {
	display: block;
	margin-bottom: 5px;
	color: var(--gca-ink);
	font-size: 16px;
}

.gca-branch-summary {
	display: grid;
	gap: 11px;
}

.gca-branch-line {
	display: grid;
	grid-template-columns: minmax(100px, 1fr) minmax(90px, 1.4fr) 30px;
	align-items: center;
	gap: 10px;
	font-size: 12px;
}

.gca-bar {
	height: 8px;
	overflow: hidden;
	border-radius: 999px;
	background: #e8eff2;
}

.gca-bar i {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--gca-primary), #42d3f1);
}

.gca-modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
	background: rgba(1, 24, 35, 0.66);
	backdrop-filter: blur(8px);
	animation: gca-fade 140ms ease;
}

@keyframes gca-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

.gca-modal {
	width: min(760px, 100%);
	max-height: min(90vh, 900px);
	overflow: auto;
	background: #fff;
	border-radius: 22px;
	box-shadow: 0 30px 90px rgba(0, 20, 30, 0.3);
}

.gca-modal.is-wide {
	width: min(1040px, 100%);
}

.gca-modal-head {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 22px;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--gca-line);
	backdrop-filter: blur(10px);
}

.gca-modal-head h3 {
	margin: 0;
	font-size: 18px;
}

.gca-modal-close {
	margin-left: auto;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 10px;
	background: #f1f5f7;
	color: var(--gca-navy);
	cursor: pointer;
}

.gca-modal-body {
	padding: 22px;
}

.gca-modal-foot {
	position: sticky;
	bottom: 0;
	display: flex;
	justify-content: flex-end;
	gap: 9px;
	padding: 16px 22px;
	background: rgba(255, 255, 255, 0.96);
	border-top: 1px solid var(--gca-line);
	backdrop-filter: blur(10px);
}

.gca-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.gca-field {
	display: grid;
	gap: 7px;
}

.gca-field.is-full {
	grid-column: 1 / -1;
}

.gca-field label {
	color: #4e6876;
	font-size: 12px;
	font-weight: 800;
}

.gca-field small {
	color: var(--gca-muted);
	font-size: 11px;
}

.gca-field textarea {
	min-height: 90px;
	resize: vertical;
}

.gca-check-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.gca-check {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 11px;
	border: 1px solid var(--gca-line);
	border-radius: 10px;
	font-size: 12px;
}

.gca-check input {
	width: 17px;
	height: 17px;
	accent-color: var(--gca-primary);
}

.gca-lunch-card {
	display: grid;
	grid-template-columns: minmax(250px, 1.2fr) minmax(260px, 1fr);
	gap: 18px;
	align-items: center;
	padding: 16px;
	border: 1px solid rgba(8, 175, 230, 0.28);
	border-radius: 15px;
	background: linear-gradient(135deg, rgba(8, 175, 230, 0.08), rgba(255, 255, 255, 0.94));
	transition: opacity 180ms ease, filter 180ms ease;
}

.gca-lunch-card.is-disabled {
	border-color: var(--gca-line);
	background: #f7f9fa;
}

.gca-lunch-heading {
	display: grid;
	gap: 7px;
}

.gca-lunch-heading .gca-check {
	border: 0;
	padding: 0;
	font-size: 13px;
	font-weight: 800;
}

.gca-lunch-heading small {
	color: var(--gca-muted);
	font-size: 11px;
}

.gca-lunch-times {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.gca-lunch-card.is-disabled .gca-lunch-times {
	opacity: 0.42;
	filter: grayscale(1);
}

.gca-days {
	display: grid;
	gap: 9px;
}

.gca-day-row {
	display: grid;
	grid-template-columns: 110px repeat(2, minmax(130px, 1fr));
	gap: 8px;
	align-items: end;
	padding: 11px;
	border: 1px solid var(--gca-line);
	border-radius: 12px;
	background: #fbfdfe;
}

.gca-day-name {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 42px;
	font-weight: 750;
	font-size: 12px;
}

.gca-day-row .gca-field label {
	font-size: 10px;
}

.gca-day-lunch-toggle {
	align-self: center;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	color: var(--gca-navy);
	font-size: 11px;
	font-weight: 800;
}

.gca-day-lunch-toggle input {
	width: 17px;
	height: 17px;
	accent-color: var(--gca-primary);
}

.gca-day-lunch-settings {
	grid-column: 2 / -1;
	display: grid;
	grid-template-columns: repeat(2, minmax(105px, 1fr)) minmax(100px, 0.7fr);
	gap: 8px;
	padding: 9px;
	border-radius: 10px;
	background: var(--gca-blue-soft);
	transition: opacity 180ms ease, filter 180ms ease;
}

.gca-day-row.is-lunch-disabled .gca-day-lunch-settings {
	opacity: 0.38;
	filter: grayscale(1);
}

.gca-code {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 62px;
	padding: 6px 9px;
	border-radius: 9px;
	background: #052f43;
	color: #fff;
	font-family: "SFMono-Regular", Consolas, monospace;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.gca-credential {
	width: min(520px, 100%);
	margin: 0 auto;
	padding: 24px;
	border-radius: 24px;
	color: #fff;
	background:
		radial-gradient(circle at 100% 0, rgba(8, 175, 230, 0.55), transparent 35%),
		linear-gradient(150deg, #043b54, #021f31);
	box-shadow: 0 25px 65px rgba(2, 38, 55, 0.25);
}

.gca-credential-logo {
	padding: 11px 14px;
	background: #fff;
	border-radius: 14px;
}

.gca-credential-logo img {
	display: block;
	width: 100%;
	height: auto;
}

.gca-credential-content {
	display: grid;
	grid-template-columns: 1fr 150px;
	align-items: center;
	gap: 20px;
	margin-top: 23px;
}

.gca-credential h3 {
	margin: 0;
	font-size: 26px;
	color: #fff;
}

.gca-credential p {
	margin: 7px 0;
	color: rgba(255, 255, 255, 0.75);
}

.gca-credential .gca-code {
	margin-top: 12px;
	background: rgba(255, 255, 255, 0.13);
	border: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 26px;
}

.gca-qr {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	padding: 10px;
	border-radius: 16px;
	background: #fff;
}

.gca-qr img,
.gca-qr canvas {
	max-width: 100%;
	height: auto !important;
}

.gca-toast-root {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 1000000;
	display: grid;
	gap: 10px;
}

.gca-toast {
	width: min(360px, calc(100vw - 40px));
	padding: 14px 16px;
	border-radius: 13px;
	background: #062f43;
	color: #fff;
	box-shadow: 0 16px 46px rgba(0, 20, 30, 0.27);
	font-size: 13px;
	font-weight: 650;
	animation: gca-toast-in 230ms ease;
}

.gca-toast.is-error { background: #ad3540; }
.gca-toast.is-success { background: #0b7b59; }

@keyframes gca-toast-in {
	from { opacity: 0; transform: translateY(15px); }
	to { opacity: 1; transform: translateY(0); }
}

.gca-access-card,
.gca-login-card {
	width: min(480px, calc(100% - 30px));
	margin: 60px auto;
	padding: 32px;
	border: 1px solid var(--gca-line);
	border-radius: 24px;
	background: #fff;
	box-shadow: var(--gca-shadow);
	text-align: center;
	font-family: Inter, "Segoe UI", sans-serif;
}

.gca-login-screen {
	min-height: 75vh;
	display: flex;
	align-items: center;
	background: linear-gradient(145deg, #eef9fd, #f5f8fa);
}

.gca-login-card img {
	max-width: 330px;
	width: 100%;
	margin-bottom: 26px;
}

.gca-login-card h2 {
	margin: 5px 0 10px;
}

.gca-login-card p:not(.gca-eyebrow) {
	margin-bottom: 22px;
	color: var(--gca-muted);
}

/* Kiosk */
html.gca-kiosk-active,
body.gca-kiosk-active {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	overscroll-behavior: none;
}

.gca-kiosk-page {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	grid-template-rows: auto 1fr auto;
	width: 100%;
	height: var(--gca-kiosk-height, 100vh);
	min-height: 0;
	max-height: var(--gca-kiosk-height, 100vh);
	padding: clamp(17px, 3vw, 32px);
	overflow: hidden;
	overscroll-behavior: none;
	touch-action: manipulation;
	background:
		linear-gradient(135deg, rgba(7, 176, 230, 0.08), transparent 48%),
		linear-gradient(160deg, #073b52 0%, #032d42 52%, #011f30 100%);
	color: #fff;
	font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.gca-kiosk-page::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);
	background-size: 42px 42px;
	mask-image: linear-gradient(to bottom, black, transparent 78%);
}

.gca-kiosk-orb {
	position: fixed;
	border-radius: 50%;
	filter: blur(2px);
	pointer-events: none;
}

.gca-kiosk-orb-one {
	width: 34vw;
	height: 34vw;
	top: -18vw;
	right: -10vw;
	background: rgba(8, 175, 230, 0.18);
	box-shadow: 0 0 100px rgba(8, 175, 230, 0.12);
}

.gca-kiosk-orb-two {
	width: 24vw;
	height: 24vw;
	bottom: -14vw;
	left: -10vw;
	background: rgba(50, 210, 242, 0.08);
}

.gca-kiosk-head,
.gca-kiosk-stage,
.gca-kiosk-foot {
	position: relative;
	z-index: 2;
}

.gca-kiosk-head {
	display: flex;
	align-items: center;
	gap: 20px;
}

.gca-kiosk-logo {
	width: clamp(210px, 28vw, 380px);
	padding: 10px 15px;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 17px 50px rgba(0, 0, 0, 0.2);
}

.gca-kiosk-logo img {
	display: block;
	width: 100%;
	height: auto;
}

.gca-terminal-badge {
	margin-left: auto;
	padding: 10px 15px;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(11px, 1.5vw, 14px);
	font-weight: 750;
	backdrop-filter: blur(14px);
}

.gca-terminal-badge::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 8px;
	border-radius: 50%;
	background: var(--gca-success);
	box-shadow: 0 0 0 5px rgba(19, 185, 129, 0.13);
}

.gca-kiosk-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 0;
	padding: clamp(18px, 3vh, 38px) 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.gca-kiosk-loader {
	display: grid;
	justify-items: center;
	gap: 15px;
	color: rgba(255, 255, 255, 0.65);
}

.gca-clock-layout {
	width: min(1040px, 100%);
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(320px, 430px);
	align-items: center;
	gap: clamp(30px, 7vw, 90px);
}

.gca-clock-info {
	text-align: left;
}

.gca-clock-time {
	margin: 0;
	font-size: clamp(70px, 13vw, 160px);
	font-weight: 250;
	line-height: 0.9;
	letter-spacing: -0.075em;
	text-shadow: 0 16px 60px rgba(0, 0, 0, 0.2);
}

.gca-clock-date {
	margin: 18px 0 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: clamp(15px, 2vw, 22px);
	text-transform: capitalize;
}

.gca-clock-branch {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
	padding: 10px 15px;
	border-radius: 12px;
	background: rgba(8, 175, 230, 0.14);
	border: 1px solid rgba(8, 175, 230, 0.22);
	color: #8ce7ff;
	font-size: 14px;
	font-weight: 800;
}

.gca-pin-panel {
	padding: clamp(22px, 4vw, 34px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 28px;
	background: rgba(255, 255, 255, 0.075);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(22px);
}

.gca-pin-panel h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(23px, 3vw, 31px);
	text-align: center;
}

.gca-pin-panel > p {
	margin: 9px 0 20px;
	color: rgba(255, 255, 255, 0.62);
	text-align: center;
	font-size: 13px;
}

.gca-pin-dots {
	height: 45px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-bottom: 16px;
}

.gca-pin-dot {
	width: 15px;
	height: 15px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.43);
	transition: 140ms ease;
}

.gca-pin-dot.is-filled {
	border-color: #fff;
	background: #fff;
	box-shadow: 0 0 22px rgba(255, 255, 255, 0.34);
	transform: scale(1.08);
}

.gca-pin-keypad {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.gca-pin-key {
	aspect-ratio: 1.42;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.085);
	color: #fff;
	font-size: clamp(19px, 3vw, 26px);
	font-weight: 650;
	cursor: pointer;
	transition: 120ms ease;
	-webkit-tap-highlight-color: transparent;
}

.gca-pin-key:hover,
.gca-pin-key:active {
	background: rgba(255, 255, 255, 0.17);
	transform: scale(0.97);
}

.gca-pin-key.is-action {
	color: #9ceaff;
	font-size: 18px;
}

.gca-scan-button {
	width: 100%;
	min-height: 46px;
	margin-top: 13px;
	border: 1px solid rgba(8, 175, 230, 0.38);
	border-radius: 13px;
	background: rgba(8, 175, 230, 0.15);
	color: #b7f0ff;
	font-weight: 800;
	cursor: pointer;
}

.gca-setup-card,
.gca-confirm-card,
.gca-reason-card,
.gca-result-card {
	width: min(650px, 100%);
	padding: clamp(24px, 5vw, 44px);
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.08);
	box-shadow: 0 35px 100px rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(22px);
	text-align: center;
}

.gca-setup-card h1,
.gca-confirm-card h1,
.gca-reason-card h1,
.gca-result-card h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(28px, 5vw, 45px);
	line-height: 1.08;
}

.gca-setup-card p,
.gca-confirm-card p,
.gca-reason-card p,
.gca-result-card p {
	color: rgba(255, 255, 255, 0.68);
}

.gca-terminal-input {
	width: min(390px, 100%);
	min-height: 58px;
	margin: 18px auto;
	display: block;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	font-family: "SFMono-Regular", Consolas, monospace;
	letter-spacing: 0.08em;
	text-align: center;
	outline: none;
}

.gca-kiosk-primary,
.gca-kiosk-secondary {
	min-height: 54px;
	padding: 12px 24px;
	border-radius: 14px;
	font-weight: 850;
	cursor: pointer;
}

.gca-kiosk-primary {
	border: 0;
	background: linear-gradient(135deg, #12b9ef, #078fc9);
	color: #fff;
	box-shadow: 0 15px 38px rgba(8, 175, 230, 0.27);
}

.gca-kiosk-secondary {
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}

.gca-kiosk-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 11px;
	margin-top: 24px;
}

.gca-employee-chip {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	padding: 9px 14px 9px 9px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.09);
	color: rgba(255, 255, 255, 0.8);
	font-size: 13px;
}

.gca-employee-chip i {
	width: 35px;
	height: 35px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--gca-primary), #6ee4fb);
	color: #fff;
	font-style: normal;
	font-weight: 850;
}

.gca-confirm-card .gca-kiosk-lunch-window {
	display: inline-flex;
	gap: 5px;
	margin: 14px 0 0;
	padding: 8px 12px;
	border: 1px solid rgba(140, 231, 255, 0.2);
	border-radius: 999px;
	background: rgba(140, 231, 255, 0.08);
	color: #c8f5ff;
	font-size: 12px;
}

.gca-lunch-guidance {
	display: grid;
	grid-template-columns: 38px 1fr;
	gap: 12px;
	align-items: start;
	margin: 17px 0 0;
	padding: 14px;
	border: 1px solid rgba(255, 213, 131, 0.34);
	border-radius: 16px;
	background: rgba(255, 181, 71, 0.12);
	text-align: left;
}

.gca-lunch-guidance > i {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	background: rgba(255, 213, 131, 0.16);
	color: #ffe2a8;
	font-style: normal;
	font-weight: 900;
}

.gca-lunch-guidance strong,
.gca-lunch-guidance span {
	display: block;
}

.gca-lunch-guidance strong {
	color: #fff;
	font-size: 14px;
}

.gca-lunch-guidance span {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 12px;
	line-height: 1.45;
}

.gca-lunch-guidance.is-danger {
	border-color: rgba(255, 151, 151, 0.36);
	background: rgba(205, 59, 70, 0.16);
}

.gca-lunch-guidance.is-danger > i {
	background: rgba(255, 151, 151, 0.17);
	color: #ffc1c1;
}

.gca-lunch-guidance.is-info {
	border-color: rgba(140, 231, 255, 0.28);
	background: rgba(8, 175, 230, 0.11);
}

.gca-lunch-guidance.is-info > i {
	background: rgba(140, 231, 255, 0.14);
	color: #b9f3ff;
}

.gca-suggested-action {
	margin: 24px 0;
	padding: 20px;
	border: 1px solid rgba(8, 175, 230, 0.28);
	border-radius: 18px;
	background: rgba(8, 175, 230, 0.12);
}

.gca-suggested-action span {
	display: block;
	color: #96e9ff;
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gca-suggested-action strong {
	display: block;
	margin-top: 7px;
	color: #fff;
	font-size: clamp(23px, 4vw, 34px);
}

.gca-other-actions {
	margin-top: 18px;
}

.gca-other-actions summary {
	color: rgba(255, 255, 255, 0.63);
	font-size: 12px;
	cursor: pointer;
}

.gca-other-action-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 12px;
}

.gca-other-action-grid button {
	min-height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 11px;
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.82);
	font-size: 12px;
	cursor: pointer;
}

.gca-kiosk-field {
	display: grid;
	gap: 8px;
	margin-top: 15px;
	text-align: left;
}

.gca-kiosk-field label {
	color: rgba(255, 255, 255, 0.76);
	font-size: 12px;
	font-weight: 750;
}

.gca-kiosk-field select,
.gca-kiosk-field textarea {
	width: 100%;
	min-height: 50px;
	padding: 11px 13px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 13px;
	background: #0b3f56;
	color: #fff;
	outline: none;
}

.gca-kiosk-field textarea {
	min-height: 85px;
	resize: none;
}

.gca-result-check {
	width: 88px;
	height: 88px;
	margin: 0 auto 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(19, 185, 129, 0.16);
	border: 2px solid rgba(19, 185, 129, 0.42);
	color: #75f0c5;
	font-size: 45px;
	box-shadow: 0 0 60px rgba(19, 185, 129, 0.12);
	animation: gca-check-pop 420ms cubic-bezier(.2,.9,.3,1.4);
}

.gca-result-card.is-warning .gca-result-check {
	background: rgba(244, 166, 42, 0.16);
	border-color: rgba(244, 166, 42, 0.44);
	color: #ffd583;
}

@keyframes gca-check-pop {
	from { transform: scale(0.4); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
}

.gca-result-meta {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 18px;
}

.gca-result-meta span {
	padding: 8px 11px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.73);
	font-size: 12px;
}

.gca-kiosk-error {
	margin-top: 12px;
	color: #ffbec3;
	font-size: 12px;
	font-weight: 700;
}

.gca-kiosk-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	color: rgba(255, 255, 255, 0.35);
	font-size: 11px;
}

.gca-kiosk-foot-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.gca-kiosk-link {
	min-height: 30px;
	padding: 4px;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.35);
	font-size: 11px;
	cursor: pointer;
}

.gca-kiosk-link[hidden] {
	display: none !important;
}

#gca-install-app {
	padding: 4px 9px;
	border: 1px solid rgba(140, 231, 255, 0.24);
	border-radius: 999px;
	background: rgba(9, 174, 221, 0.1);
	color: #8ce7ff;
	font-weight: 750;
}

.gca-camera-layer {
	position: fixed;
	inset: 0;
	z-index: 1000000;
	padding: 22px;
	background: rgba(0, 16, 24, 0.94);
}

.gca-camera-box {
	width: min(680px, 100%);
	height: 100%;
	margin: 0 auto;
	display: grid;
	grid-template-rows: 1fr auto;
	gap: 15px;
}

.gca-camera-video {
	width: 100%;
	height: 100%;
	max-height: calc(100vh - 100px);
	object-fit: cover;
	border-radius: 22px;
	background: #000;
}

@media (max-width: 520px) {
	.gca-kiosk-page {
		grid-template-rows: auto minmax(0, 1fr) auto;
		padding: 7px 9px 6px;
	}

	.gca-kiosk-head {
		gap: 8px;
		min-height: 42px;
	}

	.gca-kiosk-logo {
		width: 126px;
		padding: 6px 9px;
		border-radius: 10px;
		box-shadow: 0 9px 26px rgba(0, 0, 0, 0.18);
	}

	.gca-terminal-badge {
		max-width: calc(100vw - 155px);
		padding: 6px 8px;
		overflow: hidden;
		font-size: 9px;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gca-terminal-badge::before {
		width: 5px;
		height: 5px;
		margin-right: 5px;
		box-shadow: 0 0 0 3px rgba(19, 185, 129, 0.13);
	}

	.gca-kiosk-stage {
		align-items: stretch;
		padding: 5px 0;
		scrollbar-width: none;
	}

	.gca-kiosk-stage::-webkit-scrollbar {
		display: none;
	}

	.gca-clock-layout {
		width: 100%;
		height: 100%;
		grid-template-columns: 1fr;
		grid-template-rows: auto minmax(0, 1fr);
		gap: 5px;
	}

	.gca-clock-info {
		display: grid;
		grid-template-areas:
			"time date"
			"time branch";
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		justify-items: start;
		column-gap: 12px;
		padding: 0 4px;
		text-align: left;
	}

	.gca-clock-time {
		grid-area: time;
		font-size: 43px;
		font-weight: 320;
		line-height: 0.92;
	}

	.gca-clock-date {
		grid-area: date;
		margin: 0;
		overflow: hidden;
		font-size: 10px;
		line-height: 1.2;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gca-clock-branch {
		grid-area: branch;
		max-width: 100%;
		margin-top: 3px;
		padding: 4px 7px;
		overflow: hidden;
		border-radius: 8px;
		font-size: 9px;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gca-pin-panel {
		width: 100%;
		min-height: 0;
		padding: 10px 12px 9px;
		border-radius: 15px;
	}

	.gca-pin-panel h1 {
		font-size: 19px;
		line-height: 1.05;
	}

	.gca-pin-panel > p {
		margin: 3px 0 5px;
		font-size: 10px;
		line-height: 1.25;
	}

	.gca-pin-dots {
		height: 22px;
		gap: 10px;
		margin-bottom: 4px;
	}

	.gca-pin-dot {
		width: 10px;
		height: 10px;
	}

	.gca-pin-keypad {
		gap: 5px;
	}

	.gca-pin-key {
		min-height: 44px;
		aspect-ratio: auto;
		border-radius: 10px;
		font-size: 20px;
	}

	.gca-pin-key.is-action {
		font-size: 12px;
	}

	.gca-scan-button {
		min-height: 36px;
		margin-top: 6px;
		border-radius: 9px;
		font-size: 11px;
	}

	.gca-setup-card,
	.gca-confirm-card,
	.gca-reason-card,
	.gca-result-card {
		margin: auto 0;
		padding: 14px 12px;
		border-radius: 16px;
	}

	.gca-setup-card h1,
	.gca-confirm-card h1,
	.gca-reason-card h1,
	.gca-result-card h1 {
		font-size: 24px;
	}

	.gca-setup-card p,
	.gca-confirm-card p,
	.gca-reason-card p,
	.gca-result-card p {
		margin: 7px 0;
		font-size: 12px;
		line-height: 1.35;
	}

	.gca-terminal-input {
		min-height: 48px;
		margin: 10px auto;
	}

	.gca-kiosk-primary,
	.gca-kiosk-secondary {
		min-height: 45px;
		padding: 9px 14px;
		border-radius: 11px;
		font-size: 12px;
	}

	.gca-kiosk-actions {
		gap: 7px;
		margin-top: 12px;
	}

	.gca-employee-chip {
		max-width: 100%;
		margin-bottom: 9px;
		padding: 6px 10px 6px 6px;
		overflow: hidden;
		font-size: 11px;
	}

	.gca-employee-chip i {
		width: 29px;
		height: 29px;
		flex: 0 0 29px;
	}

	.gca-employee-chip span {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gca-confirm-card .gca-kiosk-lunch-window {
		margin-top: 7px;
		padding: 5px 8px;
		font-size: 10px;
	}

	.gca-lunch-guidance {
		grid-template-columns: 29px 1fr;
		gap: 8px;
		margin-top: 9px;
		padding: 9px;
		border-radius: 11px;
	}

	.gca-lunch-guidance > i {
		width: 29px;
		height: 29px;
		border-radius: 8px;
	}

	.gca-lunch-guidance strong {
		font-size: 12px;
	}

	.gca-lunch-guidance span {
		margin-top: 2px;
		font-size: 10px;
		line-height: 1.3;
	}

	.gca-suggested-action {
		margin: 11px 0;
		padding: 11px;
		border-radius: 12px;
	}

	.gca-suggested-action span {
		font-size: 9px;
	}

	.gca-suggested-action strong {
		margin-top: 4px;
		font-size: 22px;
	}

	.gca-other-actions {
		margin-top: 10px;
	}

	.gca-other-action-grid {
		gap: 5px;
		margin-top: 7px;
	}

	.gca-other-action-grid button {
		min-height: 38px;
		font-size: 10px;
	}

	.gca-kiosk-field {
		gap: 5px;
		margin-top: 9px;
	}

	.gca-kiosk-field select,
	.gca-kiosk-field textarea {
		min-height: 44px;
		padding: 8px 10px;
		font-size: 12px;
	}

	.gca-kiosk-field textarea {
		min-height: 64px;
	}

	.gca-result-check {
		width: 62px;
		height: 62px;
		margin-bottom: 11px;
		font-size: 32px;
	}

	.gca-result-meta {
		gap: 5px;
		margin-top: 10px;
	}

	.gca-result-meta span {
		padding: 5px 7px;
		font-size: 10px;
	}

	.gca-kiosk-error {
		margin-top: 5px;
		font-size: 10px;
	}

	.gca-kiosk-foot {
		min-height: 25px;
		font-size: 9px;
	}

	.gca-kiosk-foot > span {
		display: none;
	}

	.gca-kiosk-foot-actions {
		width: 100%;
		justify-content: space-between;
		gap: 5px;
	}

	.gca-kiosk-link {
		min-height: 25px;
		padding: 3px 4px;
		font-size: 9px;
	}

	#gca-install-app {
		padding-inline: 7px;
	}

	.gca-camera-layer {
		padding: 8px;
	}

	.gca-camera-video {
		max-height: calc(var(--gca-kiosk-height, 100vh) - 65px);
		border-radius: 13px;
	}
}

@media (orientation: landscape) and (max-height: 560px) {
	.gca-kiosk-page {
		grid-template-rows: auto minmax(0, 1fr) auto;
		padding: 5px 8px;
	}

	.gca-kiosk-head {
		min-height: 35px;
	}

	.gca-kiosk-logo {
		width: 108px;
		padding: 4px 7px;
		border-radius: 8px;
	}

	.gca-terminal-badge {
		padding: 5px 8px;
		font-size: 9px;
	}

	.gca-kiosk-stage {
		padding: 3px 0;
	}

	.gca-clock-layout {
		width: 100%;
		height: 100%;
		grid-template-columns: minmax(130px, 0.65fr) minmax(275px, 1fr);
		grid-template-rows: 1fr;
		gap: 12px;
	}

	.gca-clock-info {
		display: grid;
		justify-items: center;
		text-align: center;
	}

	.gca-clock-time {
		font-size: 48px;
	}

	.gca-clock-date {
		margin-top: 6px;
		font-size: 10px;
	}

	.gca-clock-branch {
		margin-top: 7px;
		padding: 5px 8px;
		font-size: 9px;
	}

	.gca-pin-panel {
		padding: 7px 10px;
		border-radius: 13px;
	}

	.gca-pin-panel h1 {
		font-size: 17px;
	}

	.gca-pin-panel > p {
		margin: 2px 0 3px;
		font-size: 9px;
	}

	.gca-pin-dots {
		height: 17px;
		margin-bottom: 2px;
	}

	.gca-pin-keypad {
		gap: 4px;
	}

	.gca-pin-key {
		min-height: 34px;
		aspect-ratio: auto;
		border-radius: 8px;
		font-size: 17px;
	}

	.gca-pin-key.is-action {
		font-size: 10px;
	}

	.gca-scan-button {
		min-height: 31px;
		margin-top: 4px;
		font-size: 10px;
	}

	.gca-kiosk-foot {
		min-height: 20px;
		font-size: 8px;
	}

	.gca-kiosk-foot-actions {
		width: 100%;
		justify-content: space-between;
		gap: 4px;
	}

	.gca-kiosk-link {
		min-height: 20px;
		padding: 2px 3px;
		font-size: 8px;
	}

	#gca-install-app {
		padding-inline: 6px;
	}
}

@media print {
	body * { visibility: hidden !important; }
	.gca-credential,
	.gca-credential * { visibility: visible !important; }
	.gca-credential {
		position: fixed;
		left: 50%;
		top: 30px;
		transform: translateX(-50%);
		width: 170mm;
		box-shadow: none;
	}
}

@media (max-width: 1100px) {
	.gca-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gca-grid-2 { grid-template-columns: 1fr; }
	.gca-advanced-filter-grid { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
	.gca-live-filter-grid { grid-template-columns: repeat(4, minmax(120px, 1fr)); }
	.gca-live-filter-grid > .gca-field:nth-child(4),
	.gca-live-filter-grid .gca-filter-buttons { grid-column: span 2; }
}

@media (max-width: 900px) {
	.gca-app { grid-template-columns: 1fr; }
	.gca-sidebar {
		position: fixed;
		left: 0;
		top: 0;
		width: min(290px, 86vw);
		transform: translateX(-105%);
		transition: transform 220ms ease;
		box-shadow: 20px 0 60px rgba(0, 0, 0, 0.22);
	}
	.gca-app.is-menu-open .gca-sidebar { transform: translateX(0); }
	.gca-mobile-menu { display: block; }
	.gca-topbar { padding: 0 20px; }
	.gca-topbar-actions { gap: 7px; }
	.gca-notification-panel { right: -2px; }
	.gca-content { padding: 22px 20px 60px; }
	.gca-clock-layout {
		grid-template-columns: 1fr;
		gap: 26px;
		width: min(580px, 100%);
	}
	.gca-live-grid { grid-template-columns: 1fr; }
	.gca-clock-info { text-align: center; }
	.gca-clock-time { font-size: clamp(64px, 18vw, 116px); }
	.gca-clock-branch { margin-top: 15px; }
}

@media (max-width: 680px) {
	.gca-live-status span { display: none; }
	.gca-live-status { width: 38px; height: 38px; justify-content: center; padding: 0; }
	.gca-notification-toggle { min-height: 38px; padding: 0 13px; border-radius: 12px; font-size: 11px; }
	.gca-notification-panel { position: fixed; top: 76px; right: 12px; width: calc(100vw - 24px); max-height: calc(100vh - 92px); }
	.gca-metrics { grid-template-columns: 1fr 1fr; gap: 10px; }
	.gca-metric { min-height: 116px; padding: 15px; border-radius: 15px; }
	.gca-metric-icon svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gca-metric strong { font-size: 25px; }
	.gca-page-head { align-items: flex-start; flex-direction: column; }
	.gca-page-actions { margin-left: 0; width: 100%; }
	.gca-form-grid { grid-template-columns: 1fr; }
	.gca-lunch-card { grid-template-columns: 1fr; }
	.gca-filter-head { align-items: flex-start; flex-direction: column; }
	.gca-saved-view-controls { width: 100%; margin-left: 0; flex-wrap: wrap; }
	.gca-advanced-filter-grid { grid-template-columns: 1fr 1fr; }
	.gca-filter-buttons { grid-column: 1 / -1; }
	.gca-pagination { align-items: flex-start; flex-direction: column; }
	.gca-pagination > div { width: 100%; justify-content: space-between; }
	.gca-field.is-full { grid-column: auto; }
	.gca-day-row { grid-template-columns: 1fr 1fr; }
	.gca-day-name { grid-column: 1 / -1; }
	.gca-day-lunch-toggle { grid-column: 1 / -1; min-height: 34px; }
	.gca-day-lunch-settings { grid-column: 1 / -1; }
	.gca-live-filter-grid { grid-template-columns: 1fr 1fr; }
	.gca-live-filter-grid > .gca-field:nth-child(4),
	.gca-live-filter-grid .gca-filter-buttons { grid-column: 1 / -1; }
	.gca-live-updated { margin-left: 0; }
	.gca-live-detail-head { align-items: flex-start; flex-direction: column; }
	.gca-live-detail-kpis { width: 100%; }
	.gca-collapse-head-actions { width: 100%; margin-left: 0; justify-content: space-between; }
	.gca-collapsible-head { align-items: flex-start; flex-wrap: wrap; }
	.gca-recent-head .gca-collapse-toggle { margin-left: auto; }
	.gca-credential-content { grid-template-columns: 1fr; text-align: center; }
	.gca-qr { width: 150px; margin: 0 auto; }
	.gca-kiosk-page { padding: 14px; }
	.gca-kiosk-head { align-items: flex-start; }
	.gca-kiosk-logo { width: 190px; }
	.gca-terminal-badge { max-width: 45vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.gca-clock-info { display: grid; justify-items: center; }
	.gca-clock-time { font-size: clamp(58px, 22vw, 92px); }
	.gca-pin-panel { border-radius: 22px; padding: 20px; }
	.gca-pin-key { aspect-ratio: 1.55; }
	.gca-setup-card,
	.gca-confirm-card,
	.gca-reason-card,
	.gca-result-card { border-radius: 23px; padding: 23px 18px; }
}

@media (max-width: 460px) {
	.gca-advanced-filter-grid { grid-template-columns: 1fr; }
	.gca-filter-buttons { grid-template-columns: 1fr; }
	.gca-metrics { grid-template-columns: 1fr; }
	.gca-lunch-times { grid-template-columns: 1fr; }
	.gca-day-lunch-settings { grid-template-columns: 1fr; }
	.gca-live-filter-grid { grid-template-columns: 1fr; }
	.gca-live-filter-grid > .gca-field:nth-child(4),
	.gca-live-filter-grid .gca-filter-buttons { grid-column: 1; }
	.gca-live-person-row { grid-template-columns: auto minmax(0, 1fr) auto; padding-inline: 12px; }
	.gca-live-person-row .gca-live-total span { display: none; }
	.gca-live-chevron { display: none; }
	.gca-live-detail-kpis { grid-template-columns: 1fr; }
	.gca-live-event { grid-template-columns: minmax(0, 1fr) auto; }
	.gca-live-duration { grid-column: 1 / -1; }
}

/* Keep the kiosk overrides after the shared responsive dashboard rules. */
@media (max-width: 520px) {
	.gca-kiosk-page { padding: 7px 9px 6px; }
	.gca-kiosk-head { align-items: center; }
	.gca-kiosk-logo { width: 126px; }
	.gca-terminal-badge { max-width: calc(100vw - 155px); }
	.gca-clock-layout {
		width: 100%;
		height: 100%;
		grid-template-rows: auto minmax(0, 1fr);
		gap: 5px;
	}
	.gca-clock-info {
		justify-items: start;
		text-align: left;
	}
	.gca-clock-time { font-size: 43px; }
	.gca-clock-branch { margin-top: 3px; }
	.gca-pin-panel {
		padding: 10px 12px 9px;
		border-radius: 15px;
	}
	.gca-pin-key { aspect-ratio: auto; }
	.gca-setup-card,
	.gca-confirm-card,
	.gca-reason-card,
	.gca-result-card {
		padding: 14px 12px;
		border-radius: 16px;
	}
}

@media (orientation: landscape) and (max-height: 560px) {
	.gca-kiosk-page { padding: 5px 8px; }
	.gca-kiosk-logo { width: 108px; }
	.gca-clock-layout {
		width: 100%;
		height: 100%;
		grid-template-columns: minmax(130px, 0.65fr) minmax(275px, 1fr);
		grid-template-rows: 1fr;
		gap: 12px;
	}
	.gca-clock-info {
		display: grid;
		justify-items: center;
		text-align: center;
	}
	.gca-clock-time { font-size: 48px; }
	.gca-clock-branch { margin-top: 7px; }
	.gca-pin-panel {
		padding: 7px 10px;
		border-radius: 13px;
	}
	.gca-pin-key { aspect-ratio: auto; }
}

/* Permissions & absences */
.gca-nav-item { position: relative; }
.gca-nav-badge {
	margin-left: auto;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	display: inline-grid;
	place-items: center;
	background: #f4a62a;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
}
.gca-nav-badge[hidden] { display: none !important; }
.gca-link-button { text-decoration: none !important; display: inline-flex; align-items: center; justify-content: center; }
.gca-truncate { display: block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gca-permissions-table td { vertical-align: top; }
.gca-permission-detail { display: grid; gap: 18px; }
.gca-permission-trace { padding-top: 4px; color: var(--gca-muted); }
.gca-record-head { display: grid; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--gca-line); }
.gca-avatar.is-large { width: 54px; height: 54px; font-size: 16px; }
.gca-record-facts { display: flex; flex-wrap: wrap; gap: 10px; }
.gca-record-facts span { padding: 8px 11px; border: 1px solid var(--gca-line); border-radius: 10px; background: #f8fbfd; font-size: 12px; color: var(--gca-muted); }
.gca-record-facts strong { color: var(--gca-ink); margin-left: 4px; }
.gca-record-timeline { display: grid; gap: 8px; }
.gca-record-item { width: 100%; border: 1px solid var(--gca-line); background: #fff; border-radius: 14px; padding: 12px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.gca-record-item:hover { border-color: rgba(8,175,230,.45); box-shadow: 0 7px 20px rgba(24,54,78,.07); }
.gca-record-item > span:nth-child(2) { display: grid; gap: 3px; }
.gca-record-item small { color: var(--gca-muted); }
.gca-record-dot { width: 10px; height: 10px; border-radius: 50%; background: #aab8c2; }
.gca-record-dot.is-pending { background: #f4a62a; }
.gca-record-dot.is-approved { background: #13b981; }
.gca-record-dot.is-rejected { background: #e45858; }
.gca-record-dot.is-cancelled { background: #9aa7b2; }
.gca-notification-result { border-radius: 14px; padding: 16px; border: 1px solid var(--gca-line); }
.gca-notification-result strong { display: block; margin-bottom: 5px; }
.gca-notification-result p { margin: 0; }
.gca-notification-result.is-success { background: rgba(19,185,129,.08); border-color: rgba(19,185,129,.24); }
.gca-notification-result.is-warning { background: rgba(244,166,42,.09); border-color: rgba(244,166,42,.28); }

/* Public approval screen */
.gca-public-approval-shell {
	min-height: 72vh;
	display: grid;
	place-items: center;
	padding: 28px 16px;
	background: linear-gradient(145deg, #f4f8fb 0%, #ffffff 60%, #eff8fc 100%);
}
.gca-public-approval-card {
	width: min(720px, 100%);
	background: #fff;
	border: 1px solid #dfe7ed;
	border-radius: 22px;
	box-shadow: 0 22px 60px rgba(20,48,70,.12);
	padding: 26px;
	color: #16202a;
}
.gca-public-approval-brand { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e7eef3; padding-bottom: 18px; margin-bottom: 22px; }
.gca-public-approval-brand img { width: min(260px, 54%); height: auto; display: block; }
.gca-public-approval-brand span { font-weight: 800; color: #073c62; font-size: 14px; }
.gca-public-approval-card h1 { margin: 3px 0 20px; font-size: clamp(28px, 5vw, 42px); color: #073c62; }
.gca-public-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 16px 0; }
.gca-public-detail-grid > div { padding: 13px; border: 1px solid #e1e9ef; border-radius: 12px; background: #f9fbfc; display: grid; gap: 4px; }
.gca-public-detail-grid span, .gca-public-reason > span { color: #71808b; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.gca-public-detail-grid strong { color: #17232c; font-size: 14px; }
.gca-public-reason { margin-top: 12px; padding: 14px; border-left: 4px solid #08afe6; background: #f5fbfe; border-radius: 0 12px 12px 0; }
.gca-public-reason p { margin: 6px 0 0; line-height: 1.55; }
.gca-public-decision { margin-top: 20px; display: grid; gap: 10px; }
.gca-public-decision label { font-weight: 700; font-size: 13px; }
.gca-public-decision textarea { min-height: 92px; width: 100%; border: 1px solid #cfdbe3; border-radius: 12px; padding: 12px; font: inherit; }
.gca-public-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 4px; }
.gca-public-actions button { border: 0; border-radius: 11px; padding: 12px 18px; font-weight: 800; cursor: pointer; }
.gca-public-reject { background: #f4f6f8; color: #a73939; }
.gca-public-approve { background: #08afe6; color: #fff; }
.gca-public-result { margin-bottom: 18px; padding: 14px 16px; border-radius: 12px; }
.gca-public-result strong { display: block; margin-bottom: 4px; }
.gca-public-result p { margin: 0; }
.gca-public-result.is-success { background: rgba(19,185,129,.10); border: 1px solid rgba(19,185,129,.25); }
.gca-public-result.is-error { background: rgba(228,88,88,.08); border: 1px solid rgba(228,88,88,.22); }
.gca-public-result.is-info { background: rgba(8,175,230,.08); border: 1px solid rgba(8,175,230,.22); }

@media (max-width: 720px) {
	.gca-public-detail-grid { grid-template-columns: 1fr; }
	.gca-public-actions { display: grid; grid-template-columns: 1fr; }
	.gca-public-approval-card { padding: 18px; border-radius: 16px; }
	.gca-public-approval-brand { align-items: flex-start; flex-direction: column; }
	.gca-public-approval-brand img { width: min(290px, 80%); }
	.gca-truncate { max-width: 180px; }
}

/* v1.8.1 · Configured permission approvers */
.gca-settings-approvers { margin-top: 22px; }
.gca-approver-settings-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}
.gca-approver-settings-card {
	position: relative;
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	gap: 8px 9px;
	align-items: start;
	min-width: 0;
	padding: 12px;
	border: 1px solid var(--gca-line);
	border-radius: 14px;
	background: #fff;
}
.gca-approver-settings-card.is-disabled { opacity: .62; background: #f8fafb; }
.gca-approver-settings-avatar,
.gca-approver-choice-avatar {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgba(8,175,230,.11);
	color: var(--gca-primary);
	font-weight: 800;
	font-size: 10px;
}
.gca-approver-settings-info { min-width: 0; display: grid; gap: 2px; padding-right: 40px; }
.gca-approver-settings-info strong { color: var(--gca-ink); font-size: 13px; line-height: 1.2; }
.gca-approver-settings-info span { color: var(--gca-muted); font-size: 10.5px; line-height: 1.35; overflow-wrap: anywhere; }
.gca-approver-settings-info span b { color: #4d6772; font-size: 9px; text-transform: uppercase; letter-spacing: .035em; margin-right: 4px; }
.gca-approver-settings-card > .gca-badge { position: absolute; top: 10px; right: 10px; font-size: 9px; padding: 4px 7px; }
.gca-approver-settings-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; padding-top: 2px; }
.gca-approver-settings-actions .gca-icon-button { min-height: 32px; padding: 6px 9px; border-radius: 9px; font-size: 11px; }
.gca-token-note { display: none; }

@media (max-width: 1320px) {
	.gca-approver-settings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1040px) {
	.gca-approver-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gca-approver-settings-grid { grid-template-columns: 1fr; }
	.gca-approver-settings-card { grid-template-columns: 36px minmax(0, 1fr); }
	.gca-approver-settings-actions { grid-column: 1 / -1; }
}
.gca-approver-picker-field { padding-top: 2px; }
.gca-approver-picker {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px;
	margin-top: 7px;
}
.gca-approver-choice {
	appearance: none;
	border: 1px solid var(--gca-line);
	border-radius: 14px;
	background: #fff;
	padding: 11px 12px;
	display: flex;
	align-items: center;
	gap: 10px;
	text-align: left;
	cursor: pointer;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.gca-approver-choice:hover { border-color: rgba(8,175,230,.5); box-shadow: 0 7px 18px rgba(24,54,78,.07); }
.gca-approver-choice.is-selected {
	border-color: var(--gca-primary);
	background: rgba(8,175,230,.07);
	box-shadow: 0 0 0 2px rgba(8,175,230,.12);
}
.gca-approver-choice > span:last-child { min-width: 0; display: grid; gap: 2px; }
.gca-approver-choice strong { color: var(--gca-ink); }
.gca-approver-choice small { color: var(--gca-muted); }
.gca-approver-choice.is-selected .gca-approver-choice-avatar { background: var(--gca-primary); color: #fff; }
.gca-approver-hint { border-style: dashed; }

@media (max-width: 640px) {
	.gca-approver-picker { grid-template-columns: 1fr; }
}


/* v1.8.4 · Employee mobile permission portal */
.gca-public-link-box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
}
.gca-public-link-box input {
	width: 100%;
	min-width: 0;
	border: 1px solid var(--gca-line);
	border-radius: 12px;
	padding: 12px 14px;
	background: #f8fafb;
	color: var(--gca-ink);
	font: inherit;
}
.gca-public-link-box > div { display: flex; gap: 8px; }

.gca-request-shell {
	--gca-request-primary: #08afe6;
	position: fixed;
	inset: 0;
	z-index: 999999;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	min-height: 100dvh;
	display: grid;
	place-items: center;
	padding: 24px 14px;
	background:
		radial-gradient(circle at 12% 12%, color-mix(in srgb, var(--gca-request-primary) 18%, transparent), transparent 32%),
		linear-gradient(145deg, #032f47 0%, #073c62 42%, #f1f7fa 42.2%, #f8fbfd 100%);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	box-sizing: border-box;
}
.gca-request-shell * { box-sizing: border-box; }
.gca-request-card {
	width: min(620px, 100%);
	background: rgba(255,255,255,.985);
	border: 1px solid rgba(255,255,255,.55);
	border-radius: 26px;
	box-shadow: 0 26px 70px rgba(3,39,59,.22);
	overflow: hidden;
	color: #17232c;
}
.gca-request-brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 19px 22px;
	border-bottom: 1px solid #e8eef2;
	background: #fff;
}
.gca-request-brand img { display: block; width: min(220px, 54%); height: auto; }
.gca-request-brand span { color: #073c62; font-size: 12px; font-weight: 850; letter-spacing: .02em; }
.gca-request-stage { padding: 28px 26px 30px; }
.gca-request-stage[hidden] { display: none !important; }
.gca-request-kicker {
	margin: 0 0 5px;
	color: var(--gca-request-primary);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.gca-request-stage h1 { margin: 0; color: #073c62; font-size: clamp(29px, 7vw, 42px); line-height: 1.05; letter-spacing: -.035em; }
.gca-request-lead { margin: 11px 0 0; color: #61717c; font-size: 15px; line-height: 1.55; }
.gca-request-safe-note {
	margin: 20px 0;
	padding: 13px 14px;
	display: grid;
	gap: 3px;
	border: 1px solid rgba(19,185,129,.24);
	border-radius: 14px;
	background: rgba(19,185,129,.07);
}
.gca-request-safe-note strong { color: #0c7d58; font-size: 13px; }
.gca-request-safe-note span { color: #547068; font-size: 12px; line-height: 1.45; }
.gca-request-pin-form { display: grid; gap: 10px; }
.gca-request-pin-form label, .gca-request-field > label { color: #23323c; font-size: 13px; font-weight: 800; }
.gca-request-pin-form input {
	width: 100%;
	height: 68px;
	border: 1px solid #cad7df;
	border-radius: 16px;
	background: #f8fbfc;
	color: #073c62;
	font-size: 31px;
	font-weight: 900;
	letter-spacing: .32em;
	text-align: center;
	outline: none;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.gca-request-pin-form input:focus, .gca-request-field input:focus, .gca-request-field select:focus, .gca-request-field textarea:focus {
	border-color: var(--gca-request-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gca-request-primary) 14%, transparent);
	background: #fff;
	outline: none;
}
.gca-request-pin-form small { color: #82909a; font-size: 11px; text-align: center; }
.gca-request-primary {
	width: 100%;
	min-height: 50px;
	border: 0;
	border-radius: 14px;
	background: var(--gca-request-primary);
	color: #fff;
	font: inherit;
	font-weight: 900;
	cursor: pointer;
	box-shadow: 0 10px 24px color-mix(in srgb, var(--gca-request-primary) 25%, transparent);
	transition: transform .14s ease, opacity .14s ease;
}
.gca-request-primary:hover { transform: translateY(-1px); }
.gca-request-primary:disabled { cursor: wait; opacity: .65; transform: none; }
.gca-request-message { margin-top: 13px; padding: 11px 13px; border-radius: 12px; background: rgba(228,88,88,.08); border: 1px solid rgba(228,88,88,.22); color: #a23f3f; font-size: 13px; line-height: 1.45; }
.gca-request-employee {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	gap: 11px;
	align-items: center;
	padding: 13px;
	margin-bottom: 22px;
	border: 1px solid #dfe8ed;
	border-radius: 16px;
	background: #f8fbfc;
}
.gca-request-avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--gca-request-primary) 12%, #fff); color: #073c62; font-weight: 900; }
.gca-request-employee > div:nth-child(2) { min-width: 0; display: grid; gap: 1px; }
.gca-request-employee small { color: #80909a; font-size: 10px; text-transform: uppercase; font-weight: 800; letter-spacing: .07em; }
.gca-request-employee strong { color: #17232c; font-size: 15px; }
.gca-request-employee span { color: #70808a; font-size: 12px; }
.gca-request-text-button { border: 0; background: transparent; color: var(--gca-request-primary); font: inherit; font-size: 12px; font-weight: 850; cursor: pointer; padding: 8px; }
.gca-request-form { display: grid; gap: 16px; }
.gca-request-field { display: grid; gap: 7px; min-width: 0; }
.gca-request-field input, .gca-request-field select, .gca-request-field textarea {
	width: 100%;
	border: 1px solid #cad7df;
	border-radius: 13px;
	background: #fbfcfd;
	color: #17232c;
	padding: 12px 13px;
	font: inherit;
	font-size: 15px;
	outline: none;
}
.gca-request-field input, .gca-request-field select { min-height: 48px; }
.gca-request-field textarea { resize: vertical; min-height: 105px; line-height: 1.45; }
.gca-request-date-grid, .gca-request-time-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.gca-request-date-grid [hidden], .gca-request-time-grid[hidden] { display: none !important; }
.gca-request-approvers { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 9px; }
.gca-request-approver {
	border: 1px solid #d6e0e6;
	border-radius: 13px;
	background: #fff;
	padding: 12px;
	display: flex;
	align-items: center;
	gap: 9px;
	color: #22323c;
	text-align: left;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}
.gca-request-approver i { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; display: grid; place-items: center; background: #edf5f8; color: #073c62; font-style: normal; font-size: 10px; font-weight: 900; }
.gca-request-approver.is-selected { border-color: var(--gca-request-primary); background: color-mix(in srgb, var(--gca-request-primary) 7%, #fff); box-shadow: 0 0 0 2px color-mix(in srgb, var(--gca-request-primary) 11%, transparent); }
.gca-request-approver.is-selected i { background: var(--gca-request-primary); color: #fff; }
.gca-request-pending-note { padding: 11px 13px; border-radius: 12px; background: #f5f8fa; color: #677680; font-size: 12px; line-height: 1.45; }
.gca-request-success-icon { width: 68px; height: 68px; margin-bottom: 18px; display: grid; place-items: center; border-radius: 50%; background: rgba(19,185,129,.11); color: #0c9869; font-size: 32px; font-weight: 900; }
.gca-request-success-summary { margin: 20px 0; padding: 15px; border: 1px solid #dfe8ed; border-radius: 15px; background: #f9fbfc; display: grid; gap: 7px; }
.gca-request-success-summary div { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; }
.gca-request-success-summary span { color: #71808b; }
.gca-request-success-summary strong { color: #17232c; text-align: right; }
.gca-request-foot { margin: 12px 0 0; color: rgba(255,255,255,.76); font-size: 11px; text-align: center; }

@media (max-width: 640px) {
	.gca-public-link-box { grid-template-columns: 1fr; }
	.gca-public-link-box > div { display: grid; grid-template-columns: 1fr 1fr; }
	.gca-request-shell { padding: 10px; place-items: start center; background: linear-gradient(180deg, #04344f 0, #073c62 175px, #f4f8fa 175px, #f8fbfd 100%); }
	.gca-request-card { border-radius: 20px; margin-top: 10px; box-shadow: 0 16px 46px rgba(3,39,59,.18); }
	.gca-request-brand { padding: 16px 17px; }
	.gca-request-brand img { width: min(190px, 58%); }
	.gca-request-brand span { font-size: 10px; }
	.gca-request-stage { padding: 23px 17px 24px; }
	.gca-request-date-grid, .gca-request-time-grid { grid-template-columns: 1fr; }
	.gca-request-approvers { grid-template-columns: 1fr; }
	.gca-request-employee { grid-template-columns: 44px minmax(0,1fr) auto; padding: 11px; }
}

/* v1.8.5 · RR. HH. routing for employee self-service requests */
.gca-dashboard-permission-alert,
.gca-hr-request-alert { margin: 0 0 20px; }
.gca-dashboard-permission-alert .gca-primary-button { margin-top: 12px; }
