@font-face{
	font-family: 'ITCHandelGothicArabic';
	src: url('../font/Tajawal-Regular.ttf') format('truetype');
}
@font-face{
	font-family: 'Yuzarsif';
	src: url('../font/Yuzarsif-Regular.ttf') format('truetype');
}
@font-face{
	font-family: 'Amiri';
	src: url('../font/Amiri-Regular.ttf') format('truetype');
}

:root{
	--white: #FFF;
	--black: #000;
	--transformBG: #fffaf6;
	--border: rgba(0,0,0,.2);
	--primary: #775347;
	--primaryHover: rgba(119,83,71,.05);
	--secondery: #fdeedb;
	--seconderyHover: #e4d6c5;
	--thirdly: #c79c78;
	--thirdlyHover: #b38c6c;
	--lightGrey: #f8f8f8;
	--margin: 15px;
	--radius: 8px;
	--transition: 0.46s;
}

*,*:before,*:after{
	font-family: 'ITCHandelGothicArabic', serif;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html, body {
	max-width: 100% !important;
	overflow-x: hidden !important;
}

body{
	background-color: var(--transformBG);
	padding-top: 62px !important;
	display: grid;
	grid-template-areas: "header" "main" "footer";
	gap: 0;
	/* page CSS files set gap:var(--margin) after this — we override below */
}

/* Override the gap:var(--margin) set by individual page CSS files.
   We only remove the row-gap between header and main; keep column-gap 0. */
body { row-gap: 0 !important; }

/* ═══════════════════════════════════════════════════════
   #site-header  —  complete reset + rebuild
   All page CSS files have `body header { ... }` rules.
   We use #site-header (ID specificity 0-1-0) which always
   beats `body header` (specificity 0-0-2) to win every
   property battle.
   ═══════════════════════════════════════════════════════ */

/* Hard-reset the old layout that page CSS injects via `body header` */
/* We target only .site-nav and .site-brand — NOT .mobile-drawer/.mobile-overlay
   which need position:fixed. The drawer/overlay are re-asserted below. */
#site-header .site-nav,
#site-header .site-brand,
#site-header .site-actions,
#site-header .site-search {
	transform: none !important;
	float: none !important;
}

#site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 1000 !important;

	/* Flex row: [brand] [nav-center] [actions] */
	display: flex !important;
	align-items: center !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;

	height: 62px !important;
	padding: 0 32px !important;
	margin: 0 !important;

	background: #fff !important;
	border-bottom: 1px solid rgba(119,83,71,.12) !important;
	box-shadow: 0 2px 14px rgba(0,0,0,.05) !important;

	/* kill old grid */
	grid-template-columns: none !important;
	grid-template-rows: none !important;
}

/* ── Brand ─────────────────────────────────────────── */
#site-header .site-brand {
	display: flex !important;
	align-items: center !important;
	gap: 9px !important;
	text-decoration: none !important;
	flex-shrink: 0 !important;
	padding-right: 20px !important;
	margin-right: 4px !important;
	border-right: 1px solid rgba(119,83,71,.14) !important;
	height: 40px !important;
	width: auto !important;
	position: static !important;
}

#site-header .site-logo {
	height: 34px !important;
	width: 34px !important;
	object-fit: contain !important;
	border-radius: 7px !important;
	flex-shrink: 0 !important;
	display: block !important;
}

#site-header .site-title {
	font-family: 'Yuzarsif', serif !important;
	font-size: 19px !important;
	font-weight: 400 !important;
	color: var(--primary) !important;
	white-space: nowrap !important;
	display: inline !important;
}

/* ── Desktop Nav ───────────────────────────────────── */
#site-header .site-nav {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 2px !important;
	flex: 1 !important;
	min-width: 0 !important;
	padding: 0 12px !important;
	height: 100% !important;
	overflow: visible !important;
	position: static !important;
	width: auto !important;
	transform: none !important;
	grid-template-rows: none !important;
	grid-template-columns: none !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

#site-header .nav-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 6px 11px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	color: #5a5a5a !important;
	font-size: 13.5px !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
	position: relative !important;
	height: 34px !important;
	width: auto !important;
	cursor: pointer !important;
	background: transparent !important;
	transition: background .15s, color .15s !important;
}

#site-header .nav-link i {
	font-size: 14px !important;
	flex-shrink: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
}

#site-header .nav-link span {
	display: inline !important;
	font-size: 13.5px !important;
	max-width: none !important;
	overflow: visible !important;
}

#site-header .nav-link:hover {
	background: rgba(119,83,71,.08) !important;
	color: var(--primary) !important;
}

#site-header .nav-link.active {
	color: var(--primary) !important;
	font-weight: 700 !important;
	background: rgba(199,156,120,.14) !important;
}

#site-header .nav-link.active::after {
	content: '' !important;
	position: absolute !important;
	bottom: -1px !important;
	left: 11px !important;
	right: 11px !important;
	height: 2px !important;
	border-radius: 2px 2px 0 0 !important;
	background: var(--primary) !important;
	display: block !important;
	width: auto !important;
}

#site-header .nav-link--more { color: #888 !important; }
#site-header .nav-link--admin { color: #b56800 !important; font-weight: 600 !important; }

/* ── Actions (search + hamburger) ─────────────────── */
#site-header .site-actions {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 8px !important;
	flex-shrink: 0 !important;
	padding-left: 16px !important;
	margin-left: 4px !important;
	border-left: 1px solid rgba(119,83,71,.14) !important;
	height: 40px !important;
	position: static !important;
}

#site-header .site-search {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 7px !important;
	background: var(--transformBG) !important;
	border: 1.5px solid rgba(119,83,71,.2) !important;
	border-radius: 20px !important;
	padding: 0 13px !important;
	height: 36px !important;
	transition: border-color .18s, box-shadow .18s !important;
	position: static !important;
}

#site-header .site-search:focus-within {
	border-color: var(--thirdly) !important;
	box-shadow: 0 0 0 3px rgba(199,156,120,.18) !important;
	background: #fff !important;
}

#site-header .search-btn {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	cursor: pointer !important;
	color: var(--primary) !important;
	font-size: 13px !important;
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
}

/* override `body header form i { position:absolute; top:30px; left:15px }` from page CSS */
#site-header .site-search i,
#site-header .search-btn i {
	position: static !important;
	top: auto !important;
	left: auto !important;
	font-size: 13px !important;
	display: inline-flex !important;
	align-items: center !important;
}

/* override `body header form input { display:none }` that page CSS sets at mobile */
#site-header .search-input {
	display: block !important;
}

/* override `body header form .phone { display:none/block }` class toggles */
#site-header .site-search .pc { display: none !important; }   /* we don't use .pc/.phone */
#site-header .site-search .phone { display: none !important; }

#site-header .search-input {
	border: none !important;
	background: transparent !important;
	outline: none !important;
	font-size: 13.5px !important;
	width: 155px !important;
	color: #333 !important;
	min-width: 0 !important;
	padding: 0 !important;
	height: auto !important;
}

#site-header .search-input::placeholder { color: #bbb !important; }

/* ── Hamburger ─────────────────────────────────────── */
#site-header .hamburger {
	display: none !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 5px !important;
	width: 38px !important;
	height: 38px !important;
	border: 1.5px solid rgba(119,83,71,.2) !important;
	border-radius: 9px !important;
	background: transparent !important;
	cursor: pointer !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	position: static !important;
}

#site-header .hamburger span {
	display: block !important;
	width: 17px !important;
	height: 2px !important;
	background: var(--primary) !important;
	border-radius: 2px !important;
	transition: transform .26s, opacity .26s !important;
	position: static !important;
}

#site-header .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg) !important; }
#site-header .hamburger.open span:nth-child(2) { opacity: 0 !important; transform: scaleX(0) !important; }
#site-header .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg) !important; }

/* ── Mobile Overlay ────────────────────────────────── */
.mobile-overlay {
	display: none;
	position: fixed !important;
	inset: 0;
	background: rgba(0,0,0,.45);
	z-index: 1100;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}
.mobile-overlay.open { display: block; }

/* ── Mobile Drawer ─────────────────────────────────── */
/* Complete override — this element is inside #site-header
   so we must re-assert all positions */
.mobile-drawer {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	height: 100% !important;
	width: 285px !important;
	background: #fff !important;
	z-index: 1200 !important;
	transform: translateX(-100%) !important;
	transition: transform .3s cubic-bezier(.4,0,.2,1) !important;
	display: flex !important;
	flex-direction: column !important;
	box-shadow: 8px 0 40px rgba(0,0,0,.14) !important;

	/* kill grid from page CSS */
	grid-template-columns: none !important;
	grid-template-rows: none !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	gap: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
}

.mobile-drawer.open {
	transform: translateX(0) !important;
}

.drawer-header {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 16px 14px 12px !important;
	border-bottom: 1px solid rgba(119,83,71,.12) !important;
	flex-shrink: 0 !important;
	background: linear-gradient(135deg, rgba(199,156,120,.08), transparent) !important;
	width: 100% !important;
	position: static !important;
}

.drawer-logo {
	height: 32px !important;
	width: 32px !important;
	object-fit: contain !important;
	border-radius: 7px !important;
	flex-shrink: 0 !important;
	display: block !important;
}

.drawer-title {
	font-family: 'Yuzarsif', serif !important;
	font-size: 17px !important;
	color: var(--primary) !important;
	flex: 1 !important;
	display: inline !important;
}

.drawer-close {
	background: none !important;
	border: none !important;
	font-size: 22px !important;
	cursor: pointer !important;
	color: #aaa !important;
	line-height: 1 !important;
	padding: 5px 7px !important;
	border-radius: 7px !important;
	transition: background .15s !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: static !important;
}

.drawer-close:hover { background: rgba(0,0,0,.06) !important; color: #555 !important; }

.drawer-search {
	padding: 10px 12px !important;
	border-bottom: 1px solid rgba(119,83,71,.08) !important;
	flex-shrink: 0 !important;
	display: block !important;
	position: static !important;
}

.drawer-search-wrap {
	display: flex !important;
	width: 100%;
	flex-direction: row !important;
	align-items: center !important;
	gap: 8px !important;
	background: var(--transformBG) !important;
	border: 1px solid rgba(119,83,71,.15) !important;
	border-radius: 10px !important;
	padding: 8px 12px !important;
}

.drawer-search-wrap i {
	color: var(--primary) !important;
	font-size: 13px !important;
	flex-shrink: 0 !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
}

.drawer-search-wrap input {
	display: block !important;
	pointer-events: auto !important;
	-webkit-user-select: text !important;
	user-select: text !important;
	border: none !important;
	background: transparent !important;
	outline: none !important;
	font-size: 13.5px !important;
	width: 100% !important;
	color: #333 !important;
	padding: 0 !important;
	height: auto !important;
}

/* THE critical fix: drawer-nav must not inherit `body header nav` rules */
.drawer-nav {
	flex: 1 !important;
	overflow-y: auto !important;
	padding: 8px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	position: static !important;
	width: 100% !important;
	height: auto !important;
	transform: none !important;       /* kill translate(-280px) from body header nav */
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	grid-template-rows: none !important;
	grid-template-columns: none !important;
	z-index: auto !important;
}

.drawer-link {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 11px 13px !important;
	border-radius: 10px !important;
	text-decoration: none !important;
	color: #444 !important;
	font-size: 14px !important;
	transition: background .15s, color .15s !important;
	flex-shrink: 0 !important;
	width: 100% !important;
	height: auto !important;
	cursor: pointer !important;
	position: static !important;
	background: transparent !important;
}

.drawer-link i {
	font-size: 16px !important;
	color: var(--thirdly) !important;
	width: 22px !important;
	text-align: center !important;
	flex-shrink: 0 !important;
	position: static !important;
	top: auto !important;
	left: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.drawer-link:hover {
	background: var(--secondery) !important;
	color: var(--primary) !important;
}

.drawer-link:hover i { color: var(--primary) !important; }

.drawer-divider {
	height: 1px !important;
	background: rgba(119,83,71,.1) !important;
	margin: 5px 4px !important;
	flex-shrink: 0 !important;
	display: block !important;
	width: auto !important;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
   ═══════════════════════════════════════════════════════ */

/* 1300px: tighten */
@media (max-width: 1300px) {
	#site-header { padding: 0 24px !important; }
	#site-header .nav-link { padding: 6px 9px !important; font-size: 13px !important; }
	#site-header .search-input { width: 130px !important; }
}

/* 1080px: icons only */
@media (max-width: 1080px) {
	#site-header .nav-link span { display: none !important; }
	#site-header .nav-link { padding: 8px 10px !important; border-radius: 10px !important; height: 36px !important; }
	#site-header .nav-link i { font-size: 17px !important; }
	#site-header .nav-link.active::after { display: none !important; }
	#site-header .site-title { font-size: 17px !important; }
	#site-header .search-input { width: 110px !important; }
}

/* 820px: collapse nav → drawer */
@media (max-width: 820px) {
	#site-header { padding: 0 16px !important; }
	#site-header .site-nav { display: none !important; }
	#site-header .hamburger { display: flex !important; }
	/* remove separators on mobile */
	#site-header .site-brand {
		border-right: none !important;
		padding-right: 0 !important;
		margin-right: 0 !important;
		height: auto !important;
	}
	#site-header .site-actions {
		border-left: none !important;
		padding-left: 0 !important;
		margin-left: auto !important;
		height: auto !important;
	}
	/* hide search on mobile — translate widget shows instead */
	#site-header .site-search { display: none !important; }
}

/* 600px: compact */
@media (max-width: 600px) {
	#site-header { height: 56px !important; padding: 0 14px !important; }
	#site-header .site-logo { height: 28px !important; width: 28px !important; }
	#site-header .site-title { font-size: 15px !important; }
	#site-header .hamburger { width: 36px !important; height: 36px !important; }
}

/* 420px: hide site title */
@media (max-width: 420px) {
	#site-header .site-title { display: none !important; }
}

/* ═══════════════════════════════════════════════════════
   MAIN  (shared)
   ═══════════════════════════════════════════════════════ */
body main {
	grid-area: main;
	height: auto;
	margin: 10px 12.5% 25px 12.5%;
}

/* ── Option buttons (icon + label) ── */
.opt-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 11px;
	border-radius: 999px;
	border: 1px solid rgba(119,83,71,.15);
	background: var(--white);
	color: #555;
	font-size: 12.5px;
	font-family: 'ITCHandelGothicArabic', serif;
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
	white-space: nowrap;
	text-decoration: none;
}
.opt-btn i {
	font-size: 13px;
	flex-shrink: 0;
}
.opt-btn:hover {
	background: var(--secondery);
	border-color: var(--thirdly);
	color: var(--primary);
}
.opt-btn.report {
	color: #b94a48;
	border-color: rgba(185,74,72,.2);
}
.opt-btn.report:hover {
	background: rgba(185,74,72,.08);
	border-color: #b94a48;
}

@media (max-width: 600px) {
	.opt-btn span { display: none; }
	.opt-btn { padding: 6px 8px; gap: 0; border-radius: 8px; }
	.opt-btn i { font-size: 15px; }
}

/* ── Filter bar overflow system ── */
/* On desktop: hidden chips are collapsed; JS adds .fb-collapsed class */
body main .filter-bar.fb-collapsed .filter-chip.fb-hidden {
	display: none !important;
}

/* The "＋ N" more button */
body main .filter-bar .fb-more-btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
	flex-shrink: 0;
	padding: 7px 14px;
	height: 34px;
	border-radius: 999px;
	border: 1.5px dashed rgba(119,83,71,.35);
	background: transparent;
	color: var(--primary);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background .18s, border-color .18s;
}
body main .filter-bar .fb-more-btn:hover {
	background: var(--secondery);
	border-color: var(--primary);
}

/* Dropdown panel that appears below the filter-bar */
body main .fb-dropdown {
	display: none;
	flex-wrap: wrap;
	gap: 8px;
	padding: 12px 14px;
	margin-top: 6px;
	background: var(--white);
	border: 1px solid rgba(119,83,71,.14);
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(119,83,71,.1);
}
body main .fb-dropdown.open {
	display: flex;
}

/* On mobile: no JS logic needed — full scroll */
@media (max-width: 820px) {
	body main .filter-bar.fb-collapsed .filter-chip.fb-hidden {
		display: inline-flex !important;
	}
	body main .filter-bar .fb-more-btn {
		display: none !important;
	}
	body main .fb-dropdown {
		display: none !important;
	}
}

/* ═══════════════════════════════════════════════════════
   FOOTER  (shared)
   ═══════════════════════════════════════════════════════ */
body footer {
	grid-area: footer;
	display: grid;
	grid-template-rows: auto auto;
	height: auto;
	width: 100%;
	background-color: var(--primary);
	color: var(--white);
	padding: var(--margin);
	font-size: 16px;
}

body footer .guide {
	margin-left: 12.5%;
	margin-right: 12.5%;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
	gap: var(--margin);
}

body footer .guide .information { max-width: 100%; }
body footer .guide div { flex-grow: 1; }
body footer .guide div p { font-size: 16px; }
body footer .guide div h4 { font-size: 17px; margin: 6px 0; }

body footer .guide div .links {
	margin-left: 6px;
	display: grid;
	gap: 3.5px;
	width: 100%;
}

body footer .guide div .links a {
	text-decoration: none;
	font-size: 15px;
	color: var(--white);
}

body footer hr {
	margin-left: 12.5%;
	margin-right: 12.5%;
	height: 0.001rem;
	color: grey;
	margin-top: 30px;
	margin-bottom: 10px;
}

body footer .copyright {
	margin-left: 12.5%;
	margin-right: 12.5%;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: var(--margin);
}

body footer .copyright .social {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: var(--margin);
	font-size: 22px;
}

body footer .copyright .social a {
	text-decoration: none;
	color: var(--white);
	cursor: pointer;
	transition: var(--transition);
}

body footer .copyright .social a:hover {
	color: var(--thirdly);
}

@media (max-width: 768px) {
	body main {
		margin: 0 var(--margin) 20px var(--margin);
		overflow: hidden;
	}
	body main h2 { font-size: 24px; }
	body footer .guide,
	body footer hr,
	body footer .copyright {
		margin: var(--margin) var(--margin) 0 var(--margin);
	}
}

/* ═══════════════════════════════════════════════════════
   SweetAlert2 — global responsive polish
   ═══════════════════════════════════════════════════════ */
.swal2-popup {
    width: clamp(300px, 88vw, 520px) !important;
    padding: 24px 28px !important;
    border-radius: 16px !important;
    font-family: 'ITCHandelGothicArabic', serif !important;
}

.swal2-title {
    font-size: clamp(16px, 3.5vw, 21px) !important;
    font-weight: 700 !important;
    color: #333 !important;
    padding: 0 0 8px 0 !important;
}

.swal2-html-container {
    font-size: clamp(13px, 2.5vw, 15px) !important;
    color: #555 !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
}

.swal2-input,
.swal2-textarea,
.swal2-select {
    width: 100% !important;
    box-sizing: border-box !important;
    font-family: 'ITCHandelGothicArabic', serif !important;
    font-size: 14px !important;
    border: 1.5px solid rgba(119,83,71,.2) !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    margin: 6px 0 !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color .18s !important;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
    border-color: #c79c78 !important;
    box-shadow: 0 0 0 3px rgba(199,156,120,.15) !important;
}

.swal2-textarea {
    min-height: 100px !important;
    resize: vertical !important;
}

.swal2-actions {
    gap: 10px !important;
    margin-top: 18px !important;
    flex-wrap: wrap !important;
}

.swal2-confirm {
    background-color: #775347 !important;
    border-radius: 999px !important;
    padding: 9px 24px !important;
    font-size: 14px !important;
    font-family: 'ITCHandelGothicArabic', serif !important;
    box-shadow: none !important;
}

.swal2-cancel {
    background-color: #fdeedb !important;
    color: #775347 !important;
    border-radius: 999px !important;
    padding: 9px 24px !important;
    font-size: 14px !important;
    font-family: 'ITCHandelGothicArabic', serif !important;
    box-shadow: none !important;
}

.swal2-cancel:hover { background-color: #e4d6c5 !important; }

.swal2-icon {
    margin: 0 auto 14px !important;
    width: 54px !important;
    height: 54px !important;
}

.swal2-icon .swal2-icon-content { font-size: 28px !important; }

/* Toast */
.swal2-toast { width: auto !important; }
.swal2-toast .swal2-popup {
    width: auto !important;
    min-width: 220px !important;
    max-width: 340px !important;
    padding: 12px 18px !important;
    border-radius: 999px !important;
}

@media (max-width: 480px) {
    .swal2-popup {
        width: 92vw !important;
        padding: 18px 16px !important;
        border-radius: 14px !important;
    }
    .swal2-actions {
        flex-direction: column !important;
        width: 100% !important;
    }
    .swal2-confirm,
    .swal2-cancel {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* ═══════════════════════════════════════════════════════
   1. FOCUS STATES — accessibility :focus-visible rings
   ═══════════════════════════════════════════════════════ */
.opt-btn:focus-visible,
.filter-chip:focus-visible,
.nav-link:focus-visible,
.drawer-link:focus-visible,
.fb-more-btn:focus-visible,
.inv-type-btn:focus-visible,
.pagination a:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2.5px solid var(--primary) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 4px rgba(119,83,71,.15) !important;
}

/* Remove default outlines only when focus-visible is supported */
@supports selector(:focus-visible) {
    *:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
}

/* ═══════════════════════════════════════════════════════
   2. SKELETON LOADING — shimmer animation
   ═══════════════════════════════════════════════════════ */
@keyframes skeleton-shimmer {
    0%   { background-position: -600px 0; }
    100% { background-position: 600px 0; }
}

.skeleton-box {
    display: block;
    border-radius: var(--radius);
    background: linear-gradient(90deg, #ede8e3 25%, #f5f0eb 50%, #ede8e3 75%);
    background-size: 1200px 100%;
    animation: skeleton-shimmer 1.6s infinite linear;
}

.skeleton-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: var(--margin);
    border: 1px solid rgba(119,83,71,.08);
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.skeleton-card .sk-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
}

.skeleton-card .sk-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.skeleton-card .sk-line {
    height: 13px;
    border-radius: 6px;
}

.skeleton-card .sk-line.wide  { width: 100%; }
.skeleton-card .sk-line.mid   { width: 70%; }
.skeleton-card .sk-line.short { width: 45%; }

/* Grid skeleton for names.php */
.skeleton-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--margin);
}

.skeleton-grid .sk-tile {
    background: var(--white);
    border-radius: var(--radius);
    padding: var(--margin);
    border: 1px solid rgba(119,83,71,.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
}

.skeleton-grid .sk-tile .sk-circle {
    width: 52px;
    height: 52px;
    border-radius: 50%;
}

/* Card skeleton for allArticles.php */
.skeleton-article {
    background: var(--white);
    border-radius: var(--radius);
    border: 1px solid rgba(119,83,71,.08);
    overflow: hidden;
}

.skeleton-article .sk-img {
    width: 100%;
    height: 170px;
    border-radius: 0;
}

.skeleton-article .sk-content {
    padding: var(--margin);
    display: flex;
    flex-direction: column;
    gap: 9px;
}

/* Article skeleton grid */
.skeleton-article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--margin);
}

/* Hide/show skeleton vs real content */
.skeleton-wrap.hidden { display: none !important; }
.real-content.hidden { display: none !important; }

/* ═══════════════════════════════════════════════════════
   3. EMPTY STATES
   ═══════════════════════════════════════════════════════ */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
    gap: 14px;
}

.empty-state .es-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--secondery);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}

.empty-state .es-icon i {
    font-size: 30px;
    color: var(--thirdly);
}

.empty-state h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--primary);
}

.empty-state p {
    font-size: 14px;
    color: #888;
    max-width: 280px;
    line-height: 1.6;
}

.empty-state .es-action {
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 22px;
    border-radius: 999px;
    background: var(--primary);
    color: var(--white);
    font-size: 13.5px;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: background .18s;
}

.empty-state .es-action:hover { background: var(--thirdlyHover); }

/* ═══════════════════════════════════════════════════════
   4. SCROLL TO TOP BUTTON
   ═══════════════════════════════════════════════════════ */
#scroll-top-btn {
    position: fixed;
    bottom: 28px;
    right: 24px;
    z-index: 900;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--primary);
    color: var(--white);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    box-shadow: 0 4px 16px rgba(119,83,71,.35);
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .25s, transform .25s, background .18s;
}

#scroll-top-btn.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

#scroll-top-btn:hover { background: var(--thirdly); }

@media (max-width: 600px) {
    #scroll-top-btn { bottom: 18px; right: 14px; width: 38px; height: 38px; }
}

/* ═══════════════════════════════════════════════════════
   5. READING PROGRESS BAR (surah.php)
   ═══════════════════════════════════════════════════════ */
#reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0%;
    background: linear-gradient(90deg, var(--primary), var(--thirdly));
    z-index: 1100;
    transition: width .1s linear;
    pointer-events: none;
}
