.ppt-widget {
	--ppt-primary: #1748ff;
	--ppt-secondary: #6c10ff;
	--ppt-ink: #101828;
	--ppt-muted: #667085;
	--ppt-line: rgba(16, 24, 40, 0.10);
	--ppt-surface: #ffffff;
	--ppt-soft: #f3f5ff;
	width: 100%;
	font-family: inherit;
	color: var(--ppt-ink);
}

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


.ppt-status[hidden],
.ppt-prayer-grid[hidden],
.ppt-next-prayer[hidden] {
	display: none !important;
}

.ppt-shell {
	position: relative;
	overflow: hidden;
	padding: clamp(20px, 3vw, 34px);
	border: 1px solid var(--ppt-line);
	border-radius: 22px;
	background:
		radial-gradient(circle at 94% 4%, rgba(108, 16, 255, 0.12), transparent 29%),
		linear-gradient(145deg, #ffffff 0%, #f8f9ff 100%);
	box-shadow: 0 18px 55px rgba(25, 44, 98, 0.10);
}

.ppt-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 22px;
}

.ppt-kicker {
	display: inline-flex;
	align-items: center;
	min-height: 27px;
	padding: 5px 10px;
	margin-bottom: 8px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--ppt-primary), var(--ppt-secondary));
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ppt-heading h2 {
	margin: 0;
	font-size: clamp(25px, 3vw, 38px);
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.ppt-location-line {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 9px 0 0;
	color: var(--ppt-muted);
	font-size: 14px;
}

.ppt-location-icon {
	color: var(--ppt-primary);
	font-size: 10px;
}

.ppt-controls {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
}

.ppt-city-select,
.ppt-location-button {
	min-height: 44px;
	border-radius: 10px;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
}

.ppt-city-select {
	min-width: 180px;
	padding: 0 38px 0 14px;
	border: 1px solid rgba(23, 72, 255, 0.20);
	background: #fff;
	color: var(--ppt-ink);
	cursor: pointer;
}

.ppt-location-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 0 15px;
	border: 0;
	background: var(--ppt-ink);
	color: #fff;
	cursor: pointer;
	transition: transform .18s ease, opacity .18s ease;
}

.ppt-location-button:hover {
	transform: translateY(-1px);
}

.ppt-location-button:disabled,
.ppt-city-select:disabled {
	cursor: wait;
	opacity: .6;
}

.ppt-date-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}

.ppt-date-row > div {
	padding: 14px 16px;
	border: 1px solid var(--ppt-line);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.72);
}

.ppt-date-label,
.ppt-next-label {
	display: block;
	margin-bottom: 4px;
	color: var(--ppt-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ppt-gregorian-date,
.ppt-hijri-date {
	font-size: 15px;
}

.ppt-status {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 132px;
	color: var(--ppt-muted);
	text-align: center;
}

.ppt-status.is-error {
	color: #b42318;
}

.ppt-spinner {
	width: 22px;
	height: 22px;
	border: 3px solid rgba(23, 72, 255, .14);
	border-top-color: var(--ppt-primary);
	border-radius: 50%;
	animation: ppt-spin .8s linear infinite;
}

.ppt-status.is-error .ppt-spinner {
	display: none;
}

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

.ppt-prayer-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.ppt-prayer-card {
	position: relative;
	min-width: 0;
	padding: 18px 10px 17px;
	border: 1px solid var(--ppt-line);
	border-radius: 14px;
	background: var(--ppt-surface);
	text-align: center;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ppt-prayer-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(25, 44, 98, .10);
}

.ppt-prayer-card.is-next {
	border-color: transparent;
	background: linear-gradient(145deg, var(--ppt-primary), var(--ppt-secondary));
	color: #fff;
	box-shadow: 0 14px 32px rgba(70, 41, 244, .27);
}

.ppt-prayer-card.is-next::after {
	content: "NEXT";
	position: absolute;
	top: 8px;
	right: 8px;
	padding: 3px 6px;
	border-radius: 999px;
	background: rgba(255,255,255,.18);
	color: #fff;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .08em;
}

.ppt-prayer-arabic {
	display: block;
	min-height: 25px;
	color: var(--ppt-secondary);
	font-family: serif;
	font-size: 20px;
	line-height: 1;
}

.ppt-prayer-card.is-next .ppt-prayer-arabic {
	color: #fff;
}

.ppt-prayer-card h3 {
	margin: 7px 0 10px;
	font-size: 14px;
	line-height: 1.2;
}

.ppt-prayer-time {
	display: block;
	font-size: clamp(16px, 1.4vw, 21px);
	font-weight: 800;
	white-space: nowrap;
}

.ppt-sunrise {
	background: #fffaf0;
}

.ppt-next-prayer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 14px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--ppt-ink);
	color: #fff;
}

.ppt-next-prayer .ppt-next-label {
	color: rgba(255,255,255,.66);
}

.ppt-next-name,
.ppt-countdown {
	font-size: 20px;
	line-height: 1;
}

.ppt-countdown-wrap {
	text-align: right;
}

.ppt-note {
	margin: 14px 2px 0;
	color: var(--ppt-muted);
	font-size: 12px;
	line-height: 1.55;
}

@media (max-width: 980px) {
	.ppt-header {
		flex-direction: column;
	}
	.ppt-controls {
		width: 100%;
		justify-content: flex-start;
	}
	.ppt-prayer-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.ppt-shell {
		padding: 18px;
		border-radius: 16px;
	}
	.ppt-date-row {
		grid-template-columns: 1fr;
	}
	.ppt-controls {
		display: grid;
		grid-template-columns: 1fr;
	}
	.ppt-city-select,
	.ppt-location-button,
	.ppt-select-wrap {
		width: 100%;
	}
	.ppt-prayer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ppt-next-prayer {
		align-items: flex-start;
		flex-direction: column;
	}
	.ppt-countdown-wrap {
		text-align: left;
	}
}


/* Compact homepage prayer strip */
.ppt-strip-widget {
	--ppt-strip-primary: #1748ff;
	--ppt-strip-secondary: #6c10ff;
	--ppt-strip-ink: #101828;
	--ppt-strip-muted: #667085;
	--ppt-strip-line: rgba(16, 24, 40, .11);
	width: 100%;
	font-family: inherit;
	color: var(--ppt-strip-ink);
}

.ppt-strip-widget *,
.ppt-strip-widget *::before,
.ppt-strip-widget *::after {
	box-sizing: border-box;
}

.ppt-strip-loading[hidden],
.ppt-strip-prayers[hidden],
.ppt-strip-next[hidden] {
	display: none !important;
}

.ppt-strip-shell {
	display: grid;
	grid-template-columns: minmax(210px, 1.45fr) minmax(430px, 3fr) minmax(110px, .72fr) auto;
	align-items: stretch;
	gap: 0;
	overflow: hidden;
	border: 1px solid var(--ppt-strip-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(16, 24, 40, .08);
}

.ppt-strip-intro {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 14px 16px;
	background:
		radial-gradient(circle at 0 0, rgba(255, 255, 255, .28), transparent 45%),
		linear-gradient(135deg, var(--ppt-strip-primary), var(--ppt-strip-secondary));
	color: #fff;
}

.ppt-strip-icon {
	display: grid;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, .32);
	border-radius: 50%;
	background: rgba(255, 255, 255, .13);
	font-size: 22px;
}

.ppt-strip-copy {
	min-width: 0;
}

.ppt-strip-eyebrow {
	display: block;
	margin-bottom: 1px;
	color: rgba(255, 255, 255, .72);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.ppt-strip-title {
	display: block;
	overflow: hidden;
	font-size: 17px;
	line-height: 1.15;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ppt-strip-meta {
	display: flex;
	align-items: center;
	gap: 5px;
	overflow: hidden;
	margin-top: 4px;
	color: rgba(255, 255, 255, .78);
	font-size: 10px;
	white-space: nowrap;
}

.ppt-strip-location,
.ppt-strip-hijri {
	overflow: hidden;
	text-overflow: ellipsis;
}

.ppt-strip-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 74px;
	padding: 12px;
	color: var(--ppt-strip-muted);
	font-size: 12px;
}

.ppt-strip-loading.is-error {
	color: #b42318;
}

.ppt-strip-spinner {
	width: 17px;
	height: 17px;
	border: 2px solid rgba(23, 72, 255, .15);
	border-top-color: var(--ppt-strip-primary);
	border-radius: 50%;
	animation: ppt-spin .8s linear infinite;
}

.ppt-strip-loading.is-error .ppt-strip-spinner {
	display: none;
}

.ppt-strip-prayers {
	display: grid;
	grid-template-columns: repeat(5, minmax(72px, 1fr));
	min-width: 0;
}

.ppt-strip-prayer {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 74px;
	padding: 10px 8px;
	border-right: 1px solid var(--ppt-strip-line);
	background: #fff;
	text-align: center;
}

.ppt-strip-prayer span {
	color: var(--ppt-strip-muted);
	font-size: 10px;
	font-weight: 700;
}

.ppt-strip-prayer strong {
	margin-top: 4px;
	font-size: 15px;
	line-height: 1;
	white-space: nowrap;
}

.ppt-strip-prayer.is-next {
	background: linear-gradient(180deg, #f5f3ff, #eef2ff);
}

.ppt-strip-prayer.is-next::before {
	content: "";
	position: absolute;
	top: 0;
	left: 18%;
	right: 18%;
	height: 3px;
	border-radius: 0 0 6px 6px;
	background: linear-gradient(90deg, var(--ppt-strip-primary), var(--ppt-strip-secondary));
}

.ppt-strip-prayer.is-next span,
.ppt-strip-prayer.is-next strong {
	color: var(--ppt-strip-secondary);
}

.ppt-strip-next {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 108px;
	padding: 10px 12px;
	background: var(--ppt-strip-ink);
	color: #fff;
	text-align: center;
}

.ppt-strip-next > span {
	color: rgba(255, 255, 255, .58);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ppt-strip-next-name {
	margin: 3px 0;
	font-size: 14px;
	line-height: 1;
}

.ppt-strip-countdown {
	color: #aebdff;
	font-size: 11px;
	font-weight: 800;
	white-space: nowrap;
}

.ppt-strip-actions {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 11px;
	background: #f8f9fc;
}

.ppt-strip-city-select,
.ppt-strip-location-button,
.ppt-strip-full-link {
	min-height: 36px;
	border-radius: 8px;
	font: inherit;
	font-size: 11px;
	font-weight: 800;
}

.ppt-strip-city-select {
	max-width: 130px;
	padding: 0 28px 0 10px;
	border: 1px solid #d0d5dd;
	background: #fff;
	color: var(--ppt-strip-ink);
	cursor: pointer;
}

.ppt-strip-location-button {
	display: grid;
	flex: 0 0 36px;
	width: 36px;
	padding: 0;
	place-items: center;
	border: 0;
	background: var(--ppt-strip-primary);
	color: #fff;
	cursor: pointer;
	font-size: 15px;
}

.ppt-strip-full-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 0 10px;
	border: 1px solid #d0d5dd;
	background: #fff;
	color: var(--ppt-strip-ink);
	text-decoration: none;
	white-space: nowrap;
}

.ppt-strip-city-select:disabled,
.ppt-strip-location-button:disabled {
	cursor: wait;
	opacity: .58;
}

@media (max-width: 1100px) {
	.ppt-strip-shell {
		grid-template-columns: minmax(205px, 1.2fr) minmax(390px, 2.3fr) minmax(105px, .7fr);
	}
	.ppt-strip-actions {
		grid-column: 1 / -1;
		justify-content: flex-end;
		border-top: 1px solid var(--ppt-strip-line);
	}
}

@media (max-width: 760px) {
	.ppt-strip-shell {
		display: block;
		border-radius: 12px;
	}
	.ppt-strip-intro {
		padding: 13px 14px;
	}
	.ppt-strip-loading {
		min-height: 76px;
	}
	.ppt-strip-prayers {
		display: flex;
		overflow-x: auto;
		scrollbar-width: thin;
	}
	.ppt-strip-prayer {
		flex: 0 0 96px;
		border-bottom: 1px solid var(--ppt-strip-line);
	}
	.ppt-strip-next {
		flex-direction: row;
		justify-content: space-between;
		min-height: 48px;
		padding: 10px 14px;
		text-align: left;
	}
	.ppt-strip-next-name {
		margin: 0 auto 0 7px;
	}
	.ppt-strip-actions {
		justify-content: stretch;
		padding: 9px;
	}
	.ppt-strip-select-wrap {
		flex: 1;
	}
	.ppt-strip-city-select {
		width: 100%;
		max-width: none;
	}
	.ppt-strip-full-link {
		flex: 1;
	}
}


/* Compact Islamic date for header/top bar */
.ppt-islamic-date-inline {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.ppt-islamic-date-inline time,
.ppt-islamic-date-label,
.ppt-islamic-date-icon {
	color: inherit;
}

.ppt-islamic-date-icon {
	font-size: 1.05em;
	line-height: 1;
}

.ppt-islamic-date-error {
	opacity: .78;
	font-size: .92em;
}

@media (max-width: 767px) {
	.ppt-islamic-date-inline {
		font-size: 11px;
	}
}
