/**
 * منصّة الأبراج — أنماط الواجهة الأمامية.
 * تصميم كوني داكن مع تدرّجات لونية وتأثيرات زجاجية وحركات ناعمة.
 */

.sa {
	--sa-bg: #0b1026;
	--sa-bg-2: #131a3a;
	--sa-surface: rgba( 255, 255, 255, 0.055 );
	--sa-surface-2: rgba( 255, 255, 255, 0.09 );
	--sa-border: rgba( 255, 255, 255, 0.12 );
	--sa-border-soft: rgba( 255, 255, 255, 0.07 );
	--sa-text: #eef1ff;
	--sa-text-dim: #a3adcf;
	--sa-gold: #f5c451;
	--sa-gold-2: #ffdf8a;
	--sa-violet: #8b7dff;
	--sa-pink: #ff7bb0;
	--sa-cyan: #5ee0e0;
	--sa-radius: 20px;
	--sa-radius-sm: 13px;
	--sa-shadow: 0 18px 50px -18px rgba( 0, 0, 0, 0.75 );
	--sa-moon-light: #ffe9a8;
	--sa-moon-dark: #1a2142;
	--sa-wheel-inner: #141b3d;
	--sa-wheel-outer: #0e1430;
	--sa-wheel-line: rgba( 255, 255, 255, 0.16 );
	--sa-wheel-angle: var( --sa-gold );

	position: relative;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 28px 20px 34px;
	max-width: 1180px;
	border-radius: var( --sa-radius );
	background:
		radial-gradient( 1100px 520px at 12% -8%, rgba( 139, 125, 255, 0.28 ), transparent 62% ),
		radial-gradient( 900px 480px at 92% 6%, rgba( 255, 123, 176, 0.20 ), transparent 60% ),
		radial-gradient( 760px 420px at 50% 110%, rgba( 94, 224, 224, 0.16 ), transparent 62% ),
		linear-gradient( 165deg, var( --sa-bg ) 0%, var( --sa-bg-2 ) 100% );
	color: var( --sa-text );
	font-family: inherit;
	line-height: 1.85;
	overflow: hidden;
	isolation: isolate;
}

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

/* ===== سماء النجوم المتحركة ===== */

.sa::before,
.sa::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-repeat: repeat;
}

.sa::before {
	background-image:
		radial-gradient( 1.4px 1.4px at 18% 22%, rgba( 255, 255, 255, 0.85 ), transparent ),
		radial-gradient( 1.1px 1.1px at 72% 14%, rgba( 255, 255, 255, 0.65 ), transparent ),
		radial-gradient( 1.6px 1.6px at 41% 66%, rgba( 255, 255, 255, 0.75 ), transparent ),
		radial-gradient( 1px 1px at 88% 48%, rgba( 255, 255, 255, 0.55 ), transparent ),
		radial-gradient( 1.3px 1.3px at 9% 78%, rgba( 255, 255, 255, 0.60 ), transparent ),
		radial-gradient( 1.1px 1.1px at 61% 88%, rgba( 255, 255, 255, 0.50 ), transparent ),
		radial-gradient( 1.5px 1.5px at 33% 38%, rgba( 255, 255, 255, 0.70 ), transparent );
	background-size: 520px 520px;
	animation: sa-twinkle 7s ease-in-out infinite alternate;
}

.sa::after {
	background-image:
		radial-gradient( 1px 1px at 28% 12%, rgba( 245, 196, 81, 0.65 ), transparent ),
		radial-gradient( 1px 1px at 82% 72%, rgba( 139, 125, 255, 0.70 ), transparent ),
		radial-gradient( 1px 1px at 54% 34%, rgba( 94, 224, 224, 0.55 ), transparent );
	background-size: 340px 340px;
	animation: sa-drift 42s linear infinite;
	opacity: 0.85;
}

@keyframes sa-twinkle {
	from { opacity: 0.45; }
	to { opacity: 1; }
}

@keyframes sa-drift {
	from { background-position: 0 0; }
	to { background-position: 340px 200px; }
}

.sa > * {
	position: relative;
	z-index: 1;
}

/* ===== عناصر عامة ===== */

.sa h2,
.sa h3,
.sa h4 {
	margin: 0 0 10px;
	color: #fff;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: -0.2px;
}

.sa p {
	margin: 0 0 12px;
}

.sa .sa-muted {
	color: var( --sa-text-dim );
	font-size: 0.9em;
}

.sa a {
	color: inherit;
	text-decoration: none;
}

/* ===== شبكة الأبراج ===== */

.sa-signs {
	display: grid;
	/* شبكة منتظمة: 4 أعمدة × 3 صفوف للأبراج الاثني عشر. */
	grid-template-columns: repeat( var( --sa-cols, 4 ), minmax( 0, 1fr ) );
	gap: 14px;
	margin: 6px 0 4px;
}

@media ( max-width: 980px ) {
	.sa-signs {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	}
}

@media ( max-width: 640px ) {
	.sa-signs {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
		gap: 10px;
	}
}

.sa-sign {
	display: flex;
	position: relative;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 20px 12px 16px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: var( --sa-surface );
	text-align: center;
	backdrop-filter: blur( 10px );
	transition: transform 0.28s cubic-bezier( 0.34, 1.56, 0.64, 1 ), box-shadow 0.28s, border-color 0.28s, background 0.28s;
	overflow: hidden;
}

.sa-sign::before {
	content: "";
	position: absolute;
	top: -40%;
	left: -20%;
	width: 140%;
	height: 90%;
	border-radius: 50%;
	background: radial-gradient( circle, var( --sa-sign-color ), transparent 68% );
	opacity: 0.16;
	transition: opacity 0.3s, transform 0.5s;
}

.sa-sign:hover,
.sa-sign:focus-visible {
	transform: translateY( -7px ) scale( 1.025 );
	border-color: var( --sa-sign-color );
	background: var( --sa-surface-2 );
	box-shadow: 0 18px 40px -18px var( --sa-sign-color );
}

.sa-sign:hover::before {
	opacity: 0.34;
	transform: scale( 1.15 );
}

.sa-sign__symbol {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 8px;
	border: 1.5px solid var( --sa-sign-color );
	border-radius: 50%;
	background: rgba( 255, 255, 255, 0.05 );
	color: var( --sa-sign-color );
	font-size: 27px;
	line-height: 1;
	text-shadow: 0 0 18px var( --sa-sign-color );
	transition: transform 0.4s cubic-bezier( 0.34, 1.56, 0.64, 1 );
}

.sa-sign:hover .sa-sign__symbol {
	transform: rotate( 360deg ) scale( 1.08 );
}

.sa-sign__name {
	color: #fff;
	font-size: 1.06rem;
	font-weight: 800;
}

.sa-sign__dates {
	color: var( --sa-text-dim );
	font-size: 0.76rem;
}

.sa-sign__element {
	margin-top: 6px;
	padding: 2px 11px;
	border-radius: 999px;
	background: color-mix( in srgb, var( --sa-sign-color ) 22%, transparent );
	color: var( --sa-sign-color );
	font-size: 0.72rem;
	font-weight: 700;
}

/* متصفحات لا تدعم color-mix */
@supports not ( background: color-mix( in srgb, red 20%, transparent ) ) {
	.sa-sign__element {
		background: rgba( 255, 255, 255, 0.1 );
	}
}

/* ===== البطاقات ===== */

.sa-card {
	padding: 24px;
	border: 1px solid var( --sa-border );
	border-radius: var( --sa-radius );
	background: var( --sa-surface );
	backdrop-filter: blur( 12px );
	box-shadow: var( --sa-shadow );
}

.sa-card--sign {
	border-top: 3px solid var( --sa-sign-color );
}

.sa-card__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 14px;
}

.sa-card__symbol {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 66px;
	height: 66px;
	border: 2px solid var( --sa-sign-color );
	border-radius: 50%;
	color: var( --sa-sign-color );
	font-size: 32px;
	text-shadow: 0 0 22px var( --sa-sign-color );
	animation: sa-pulse 3.4s ease-in-out infinite;
}

@keyframes sa-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba( 255, 255, 255, 0.10 ); }
	50% { box-shadow: 0 0 0 12px rgba( 255, 255, 255, 0 ); }
}

.sa-card__title {
	margin: 0;
	font-size: 1.45rem;
}

.sa-card__sub {
	margin: 0;
	color: var( --sa-text-dim );
	font-size: 0.86rem;
}

.sa-card__text {
	color: #dce1f7;
}

/* ===== جدول الحقائق ===== */

.sa-facts {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 210px, 1fr ) );
	gap: 0 20px;
	margin: 18px 0 0;
}

.sa-facts__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px dashed var( --sa-border-soft );
}

.sa-facts dt {
	color: var( --sa-text-dim );
	font-size: 0.85rem;
}

.sa-facts dd {
	margin: 0;
	color: #fff;
	font-size: 0.9rem;
	font-weight: 700;
	text-align: left;
}

/* ===== الصفات ===== */

.sa-traits {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
	gap: 16px;
	margin-top: 20px;
}

.sa-traits__col {
	padding: 16px 18px;
	border-right: 3px solid var( --sa-cyan );
	border-radius: var( --sa-radius-sm );
	background: rgba( 255, 255, 255, 0.04 );
}

.sa-traits__col--flaws {
	border-right-color: var( --sa-pink );
}

.sa-traits h4 {
	margin: 0 0 8px;
	font-size: 0.95rem;
}

.sa-traits ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sa-traits li {
	padding: 4px 12px;
	border-radius: 999px;
	background: rgba( 255, 255, 255, 0.08 );
	font-size: 0.82rem;
}

/* ===== سماء اليوم ===== */

.sa-sky__head {
	margin-bottom: 16px;
	text-align: center;
}

.sa-sky__head h3 {
	font-size: 1.5rem;
}

.sa-sky__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 195px, 1fr ) );
	gap: 10px;
}

.sa-sky__item {
	display: flex;
	position: relative;
	align-items: center;
	gap: 9px;
	padding: 11px 13px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: var( --sa-surface );
	transition: transform 0.22s, border-color 0.22s, background 0.22s;
}

.sa-sky__item:hover {
	transform: translateY( -3px );
	border-color: var( --sa-p-color );
	background: var( --sa-surface-2 );
}

.sa-sky__glyph {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba( 255, 255, 255, 0.07 );
	color: var( --sa-p-color );
	font-size: 18px;
	text-shadow: 0 0 12px var( --sa-p-color );
}

/* الاسم فوق والدرجة تحته حتى لا يتزاحما في العمود الضيّق. */
.sa-sky__text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
	line-height: 1.5;
}

.sa-sky__name {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #fff;
	font-size: 0.9rem;
	font-weight: 800;
}

.sa-sky__pos {
	color: var( --sa-text-dim );
	font-size: 0.8rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sa-sky__subtitle {
	margin: 24px 0 10px;
	font-size: 1.05rem;
}

.sa-tag {
	padding: 1px 8px;
	border-radius: 999px;
	font-size: 0.68rem;
	font-weight: 700;
}

.sa-tag--retro {
	flex: 0 0 auto;
	padding: 0 6px;
	background: rgba( 255, 123, 176, 0.22 );
	color: var( --sa-pink );
	font-size: 0.8rem;
	cursor: help;
}

/* ===== الاتصالات ===== */

.sa-aspects {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) );
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sa-aspects__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 9px 14px;
	border-right: 3px solid var( --sa-border );
	border-radius: var( --sa-radius-sm );
	background: rgba( 255, 255, 255, 0.04 );
	font-size: 0.85rem;
}

.sa-aspects__item--soft { border-right-color: #4ade80; }
.sa-aspects__item--hard { border-right-color: #fb7185; }
.sa-aspects__item--neutral { border-right-color: var( --sa-gold ); }

.sa-aspects__pair b {
	margin: 0 4px;
	font-size: 1.05em;
}

/* ===== القمر ===== */

.sa-moonbox {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 18px;
	padding: 14px 18px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: linear-gradient( 100deg, rgba( 245, 196, 81, 0.12 ), transparent 70% );
}

.sa-moonbox strong {
	display: block;
	color: #fff;
}

.sa-moon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
}

.sa-moon__art {
	filter: drop-shadow( 0 0 26px rgba( 255, 233, 168, 0.45 ) );
	animation: sa-float 6s ease-in-out infinite;
}

@keyframes sa-float {
	0%, 100% { transform: translateY( 0 ); }
	50% { transform: translateY( -9px ); }
}

.sa-moon__info {
	flex: 1 1 260px;
}

.sa-moon__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.sa-moon__stats li {
	padding: 7px 14px;
	border-radius: var( --sa-radius-sm );
	background: rgba( 255, 255, 255, 0.06 );
	text-align: center;
}

.sa-moon__stats span {
	display: block;
	color: var( --sa-text-dim );
	font-size: 0.72rem;
}

.sa-moon__stats strong {
	color: var( --sa-gold-2 );
	font-size: 1rem;
}

/* ===== شارة المحرّك ===== */

.sa-engine {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 20px 0 0;
	padding: 9px 14px;
	border: 1px solid rgba( 94, 224, 224, 0.28 );
	border-radius: 999px;
	background: rgba( 94, 224, 224, 0.07 );
	color: var( --sa-cyan );
	font-size: 0.78rem;
}

.sa-engine__dot {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var( --sa-cyan );
	box-shadow: 0 0 10px var( --sa-cyan );
	animation: sa-blink 1.9s ease-in-out infinite;
}

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

/* ===== الأدوات والنماذج ===== */

.sa-tool__head {
	margin-bottom: 18px;
	text-align: center;
}

.sa-tool__head h3 {
	font-size: 1.55rem;
	background: linear-gradient( 92deg, var( --sa-gold-2 ), var( --sa-violet ) 55%, var( --sa-pink ) );
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.sa-tool__head p {
	max-width: 620px;
	margin: 0 auto;
	color: var( --sa-text-dim );
	font-size: 0.9rem;
}

.sa-form {
	padding: 22px;
	border: 1px solid var( --sa-border );
	border-radius: var( --sa-radius );
	background: var( --sa-surface );
	backdrop-filter: blur( 12px );
}

.sa-fieldset {
	margin: 0 0 6px;
	padding: 0;
	border: 0;
}

.sa-fieldset legend {
	padding: 0 0 8px;
	color: var( --sa-gold );
	font-size: 0.92rem;
	font-weight: 800;
}

.sa-row {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 190px, 1fr ) );
	gap: 12px;
	margin-bottom: 12px;
}

.sa-field {
	display: flex;
	position: relative;
	flex-direction: column;
	gap: 5px;
}

.sa-field--wide {
	grid-column: span 2;
}

.sa-field > span {
	color: var( --sa-text-dim );
	font-size: 0.8rem;
	font-weight: 600;
}

.sa-field input,
.sa-field select {
	padding: 11px 14px;
	border: 1px solid var( --sa-border );
	border-radius: 12px;
	background: rgba( 8, 12, 32, 0.6 );
	color: var( --sa-text );
	font-family: inherit;
	font-size: 0.95rem;
	transition: border-color 0.22s, box-shadow 0.22s, background 0.22s;
}

.sa-field input:focus,
.sa-field select:focus {
	outline: none;
	border-color: var( --sa-violet );
	background: rgba( 8, 12, 32, 0.85 );
	box-shadow: 0 0 0 3px rgba( 139, 125, 255, 0.22 );
}

.sa-field input::placeholder {
	color: rgba( 163, 173, 207, 0.55 );
}

/* تصحيح ظهور حقول التاريخ والوقت في الوضع الداكن */
.sa-field input[type="date"],
.sa-field input[type="time"] {
	color-scheme: dark;
}

.sa-check {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	color: var( --sa-text-dim );
	font-size: 0.85rem;
	cursor: pointer;
}

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

.sa-btn {
	display: block;
	position: relative;
	width: 100%;
	margin-top: 16px;
	padding: 14px 22px;
	border: 0;
	border-radius: 14px;
	background: linear-gradient( 96deg, var( --sa-gold ), #ff9f5a 45%, var( --sa-pink ) );
	color: #16102b;
	font-family: inherit;
	font-size: 1.02rem;
	font-weight: 900;
	cursor: pointer;
	transition: transform 0.2s, box-shadow 0.25s, filter 0.2s;
	overflow: hidden;
}

.sa-btn:hover:not( :disabled ) {
	transform: translateY( -2px );
	box-shadow: 0 16px 34px -14px var( --sa-gold );
	filter: brightness( 1.06 );
}

.sa-btn:disabled {
	opacity: 0.65;
	cursor: progress;
}

.sa-btn::after {
	content: "";
	position: absolute;
	top: 0;
	right: -60%;
	width: 45%;
	height: 100%;
	background: linear-gradient( 100deg, transparent, rgba( 255, 255, 255, 0.55 ), transparent );
	transform: skewX( -18deg );
	animation: sa-shine 3.6s ease-in-out infinite;
}

@keyframes sa-shine {
	0%, 62% { right: -60%; }
	100% { right: 130%; }
}

/* ===== اقتراحات المدن ===== */

.sa-suggest {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	z-index: 30;
	max-height: 240px;
	margin-top: 4px;
	border: 1px solid var( --sa-border );
	border-radius: 12px;
	background: #10163a;
	box-shadow: var( --sa-shadow );
	overflow-y: auto;
}

.sa-suggest__item {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 14px;
	border-bottom: 1px solid var( --sa-border-soft );
	font-size: 0.88rem;
	cursor: pointer;
	transition: background 0.15s;
}

.sa-suggest__item:last-child {
	border-bottom: 0;
}

.sa-suggest__item:hover,
.sa-suggest__item.is-active {
	background: rgba( 139, 125, 255, 0.22 );
}

.sa-suggest__country {
	color: var( --sa-text-dim );
	font-size: 0.78rem;
}

/* ===== النتائج ===== */

.sa-result {
	margin-top: 22px;
	animation: sa-rise 0.55s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes sa-rise {
	from { opacity: 0; transform: translateY( 18px ); }
	to { opacity: 1; transform: translateY( 0 ); }
}

.sa-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 46px 20px;
	color: var( --sa-text-dim );
}

.sa-spinner {
	position: relative;
	width: 56px;
	height: 56px;
}

.sa-spinner::before,
.sa-spinner::after {
	content: "";
	position: absolute;
	border: 2px solid transparent;
	border-radius: 50%;
}

.sa-spinner::before {
	inset: 0;
	border-top-color: var( --sa-gold );
	border-right-color: var( --sa-pink );
	animation: sa-spin 1.1s linear infinite;
}

.sa-spinner::after {
	inset: 11px;
	border-bottom-color: var( --sa-cyan );
	border-left-color: var( --sa-violet );
	animation: sa-spin 1.6s linear infinite reverse;
}

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

.sa-error {
	padding: 14px 18px;
	border: 1px solid rgba( 251, 113, 133, 0.4 );
	border-radius: var( --sa-radius-sm );
	background: rgba( 251, 113, 133, 0.12 );
	color: #ffc4cd;
}

/* ===== الثلاثي الكبير ===== */

.sa-big3 {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 180px, 1fr ) );
	gap: 14px;
	margin-bottom: 22px;
}

.sa-big3__item {
	padding: 20px 16px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: linear-gradient( 170deg, rgba( 255, 255, 255, 0.09 ), rgba( 255, 255, 255, 0.03 ) );
	text-align: center;
	transition: transform 0.25s, box-shadow 0.25s;
}

.sa-big3__item:hover {
	transform: translateY( -5px );
	box-shadow: 0 18px 38px -20px var( --sa-c, var( --sa-violet ) );
}

.sa-big3__label {
	display: block;
	color: var( --sa-text-dim );
	font-size: 0.78rem;
}

.sa-big3__glyph {
	display: block;
	margin: 6px 0;
	color: var( --sa-c, var( --sa-gold ) );
	font-size: 34px;
	text-shadow: 0 0 20px var( --sa-c, var( --sa-gold ) );
}

.sa-big3__value {
	display: block;
	color: #fff;
	font-size: 1.25rem;
	font-weight: 900;
}

.sa-big3__hint {
	display: block;
	margin-top: 5px;
	color: var( --sa-text-dim );
	font-size: 0.76rem;
}

/* ===== عجلة الخريطة ===== */

.sa-wheelbox {
	display: grid;
	grid-template-columns: minmax( 280px, 1fr );
	gap: 20px;
	margin: 22px 0;
}

@media ( min-width: 900px ) {
	.sa-wheelbox {
		grid-template-columns: 1.05fr 1fr;
		align-items: start;
	}
}

.sa-wheel {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow( 0 22px 44px rgba( 0, 0, 0, 0.55 ) );
	animation: sa-wheel-in 0.9s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes sa-wheel-in {
	from { opacity: 0; transform: rotate( -14deg ) scale( 0.9 ); }
	to { opacity: 1; transform: rotate( 0 ) scale( 1 ); }
}

.sa-wheel__sign {
	font-size: 21px;
	font-weight: 700;
}

.sa-wheel__house {
	fill: var( --sa-text-dim );
	font-size: 12px;
	font-weight: 700;
}

.sa-wheel__glyph {
	font-size: 15px;
	font-weight: 700;
}

.sa-wheel__retro {
	fill: var( --sa-pink );
	font-size: 10px;
	font-weight: 700;
}

.sa-wheel__angle {
	fill: var( --sa-gold );
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.5px;
}

.sa-wheel__planet {
	cursor: help;
	transition: transform 0.2s;
	transform-box: fill-box;
	transform-origin: center;
}

.sa-wheel__planet:hover {
	transform: scale( 1.22 );
}

/* ===== جدول المواقع ===== */

.sa-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.87rem;
}

.sa-table th {
	padding: 9px 10px;
	border-bottom: 1px solid var( --sa-border );
	color: var( --sa-text-dim );
	font-size: 0.78rem;
	font-weight: 700;
	text-align: right;
}

.sa-table td {
	padding: 9px 10px;
	border-bottom: 1px solid var( --sa-border-soft );
}

.sa-table tbody tr {
	transition: background 0.18s;
}

.sa-table tbody tr:hover {
	background: rgba( 255, 255, 255, 0.05 );
}

.sa-table__glyph {
	color: var( --sa-p-color, var( --sa-gold ) );
	font-size: 16px;
}

/* ===== أقسام القراءة ===== */

.sa-reading {
	display: grid;
	gap: 14px;
	margin-top: 22px;
}

.sa-section {
	padding: 20px 22px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: var( --sa-surface );
}

.sa-section__title {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 10px;
	font-size: 1.12rem;
}

.sa-section__body {
	color: #d7ddf5;
	font-size: 0.94rem;
}

.sa-section ul {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.sa-section li {
	padding: 8px 0;
	border-bottom: 1px dashed var( --sa-border-soft );
	font-size: 0.9rem;
}

.sa-section li:last-child {
	border-bottom: 0;
}

/* ===== أعمدة العناصر ===== */

.sa-bars {
	display: grid;
	gap: 9px;
	margin-top: 14px;
}

.sa-bar {
	display: grid;
	grid-template-columns: 62px 1fr 38px;
	align-items: center;
	gap: 10px;
	font-size: 0.83rem;
}

.sa-bar__track {
	height: 9px;
	border-radius: 999px;
	background: rgba( 255, 255, 255, 0.08 );
	overflow: hidden;
}

.sa-bar__fill {
	width: 0;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient( 90deg, var( --sa-c ), color-mix( in srgb, var( --sa-c ) 45%, #fff ) );
	transition: width 1s cubic-bezier( 0.22, 1, 0.36, 1 );
}

/* ===== نتيجة التوافق ===== */

.sa-score {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-bottom: 20px;
	text-align: center;
}

.sa-score__ring {
	display: grid;
	position: relative;
	place-items: center;
	width: 168px;
	height: 168px;
	border-radius: 50%;
	background: conic-gradient( var( --sa-c ) calc( var( --sa-v ) * 1% ), rgba( 255, 255, 255, 0.08 ) 0 );
	transition: background 1.2s ease;
}

.sa-score__ring::before {
	content: "";
	position: absolute;
	inset: 12px;
	border-radius: 50%;
	background: #101638;
}

.sa-score__num {
	position: relative;
	color: #fff;
	font-size: 2.7rem;
	font-weight: 900;
	line-height: 1;
}

.sa-score__num small {
	font-size: 1.1rem;
	font-weight: 700;
}

.sa-score__label {
	margin-top: 8px;
	padding: 5px 18px;
	border-radius: 999px;
	background: var( --sa-c );
	color: #0b1026;
	font-weight: 900;
}

.sa-meters {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 145px, 1fr ) );
	gap: 10px;
	margin-bottom: 18px;
}

.sa-meter {
	padding: 13px;
	border: 1px solid var( --sa-border-soft );
	border-radius: var( --sa-radius-sm );
	background: rgba( 255, 255, 255, 0.04 );
	text-align: center;
}

.sa-meter span {
	display: block;
	color: var( --sa-text-dim );
	font-size: 0.76rem;
}

.sa-meter strong {
	display: block;
	margin-top: 3px;
	color: var( --sa-gold-2 );
	font-size: 1.35rem;
	font-weight: 900;
}

/* ===== الصفحة الرئيسية ===== */

.sa-home__hero {
	margin-bottom: 26px;
	text-align: center;
}

.sa-home__hero h2 {
	font-size: clamp( 1.7rem, 4.4vw, 2.7rem );
	background: linear-gradient( 92deg, var( --sa-gold-2 ), var( --sa-violet ) 48%, var( --sa-pink ) );
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.sa-home__hero p {
	max-width: 640px;
	margin: 0 auto;
	color: var( --sa-text-dim );
}

.sa-home > .sa {
	padding: 0;
	background: none;
	box-shadow: none;
}

.sa-home > .sa::before,
.sa-home > .sa::after {
	display: none;
}

/* ===== ترحيب شخصي ===== */

.sa-welcome {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	padding: 16px 20px;
	border: 1px solid var( --sa-border );
	border-radius: var( --sa-radius );
	background: linear-gradient( 100deg, color-mix( in srgb, var( --sa-sign-color, #8b7dff ) 22%, transparent ), transparent 72% );
	animation: sa-rise 0.6s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

.sa-welcome__glyph {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border: 1.5px solid var( --sa-sign-color, #8b7dff );
	border-radius: 50%;
	color: var( --sa-sign-color, #8b7dff );
	font-size: 24px;
	text-shadow: 0 0 16px var( --sa-sign-color, #8b7dff );
}

.sa-welcome strong {
	color: #fff;
}

.sa-welcome__reset {
	margin-right: auto;
	padding: 5px 13px;
	border: 1px solid var( --sa-border );
	border-radius: 999px;
	background: none;
	color: var( --sa-text-dim );
	font-family: inherit;
	font-size: 0.76rem;
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s;
}

.sa-welcome__reset:hover {
	border-color: var( --sa-pink );
	color: var( --sa-pink );
}

/* ===== الشاشات الصغيرة ===== */

@media ( max-width: 720px ) {
	.sa {
		padding: 22px 15px 26px;
		border-radius: 16px;
	}

	.sa-field--wide {
		grid-column: span 1;
	}

	.sa-facts__row {
		font-size: 0.88rem;
	}

	.sa-score__ring {
		width: 140px;
		height: 140px;
	}

	.sa-score__num {
		font-size: 2.2rem;
	}
}

/* ===== احترام تفضيل تقليل الحركة ===== */

@media ( prefers-reduced-motion: reduce ) {
	.sa *,
	.sa *::before,
	.sa *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}
