/* ==========================================================================
   Google AI Plus Portal — Custom Stylesheet
   Matches desktop app styling, restrained scrollbars, focus states & animations
   ========================================================================== */

/* Always reserve vertical scrollbar track to prevent cross-page layout shift */
html {
	overflow-y: scroll;
	scrollbar-gutter: stable;
}

/* Sleek restrained scrollbar matching desktop slate styling */
::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: #090d16;
}

::-webkit-scrollbar-thumb {
	background: #1e293b;
	border-radius: 5px;
	border: 2px solid #090d16;
}

::-webkit-scrollbar-thumb:hover {
	background: #334155;
}

/* Subtle hairline focus ring */
*:focus-visible {
	outline: 2px solid #38bdf8;
	outline-offset: 2px;
}

/* Hide horizontal scrollbar for touch tab scrolling */
.no-scrollbar::-webkit-scrollbar {
	display: none;
}

.no-scrollbar {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

/* Terminal blinking cursor */
.term-cursor {
	display: inline-block;
	width: 8px;
	height: 15px;
	vertical-align: middle;
	background: #38bdf8;
	animation: blink 1s step-end infinite;
}

@keyframes blink {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
}

/* Respect user preference for reduced motion (WCAG 2.1 SC 2.3.3 & SC 2.2.2) */
@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.term-cursor {
		animation: none;
		opacity: 1;
	}
}
