/* ============================================================
   GeneLab Results — نئومورفیسم سفید / آبی یخی — RTL
   ============================================================ */
@font-face {
	font-family: 'Vazirmatn';
	src: url('../fonts/Vazirmatn-Regular.woff2') format('woff2');
	font-weight: 400; font-display: swap;
}
@font-face {
	font-family: 'Vazirmatn';
	src: url('../fonts/Vazirmatn-Bold.woff2') format('woff2');
	font-weight: 700; font-display: swap;
}

:root {
	--glr-bg:        #eef4f9;   /* سفید یخی */
	--glr-surface:   #eef4f9;
	--glr-ice:       #a8d8ea;   /* آبی یخی */
	--glr-ice-2:     #7fc4e0;
	--glr-blue:      #5b9bd5;
	--glr-blue-dark: #3d7cb8;
	--glr-text:      #35506b;
	--glr-text-2:    #7d97ad;
	--glr-ok:        #58b89b;
	--glr-err:       #e08a97;
	--glr-warn:      #e6b566;
	--glr-sh-dark:   #cdd9e4;   /* سایه تیره نئومورفیک */
	--glr-sh-light:  #ffffff;   /* سایه روشن نئومورفیک */
	--glr-r:         18px;
}

.glr-wrap, .glr-panel-body, .glr-panel-layout {
	font-family: 'Vazirmatn', Tahoma, sans-serif;
	color: var(--glr-text);
	direction: rtl;
}
.glr-wrap *, .glr-panel-body * { box-sizing: border-box; }

body.glr-panel-body {
	margin: 0; min-height: 100vh;
	background: var(--glr-bg);
}

.glr-ltr { direction: ltr; text-align: left; unicode-bidi: embed; }

/* ---------- کارت نئومورفیک ---------- */
.glr-card {
	background: var(--glr-surface);
	border-radius: calc(var(--glr-r) + 6px);
	box-shadow: 9px 9px 22px var(--glr-sh-dark), -9px -9px 22px var(--glr-sh-light);
	padding: 28px;
}
.glr-card h3 { margin: 0 0 14px; font-size: 1.05rem; }
.glr-card h3 small { color: var(--glr-text-2); font-weight: 400; }

/* ---------- پرتال بیمار ---------- */
.glr-wrap {
	max-width: 560px; margin: 40px auto; padding: 0 14px;
}
.glr-main-card { text-align: center; }
.glr-logo-circle {
	width: 74px; height: 74px; margin: 4px auto 14px;
	border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: var(--glr-surface);
	box-shadow: inset 5px 5px 11px var(--glr-sh-dark), inset -5px -5px 11px var(--glr-sh-light);
}
.glr-logo-sm { width: 44px; height: 44px; margin: 0; flex: 0 0 44px; }
.glr-title { margin: 0 0 4px; font-size: 1.25rem; color: var(--glr-blue-dark); }
.glr-sub { margin: 0 0 18px; color: var(--glr-text-2); font-size: .85rem; }
.glr-foot { text-align: center; color: var(--glr-text-2); font-size: .78rem; margin-top: 16px; }

/* ---------- مراحل ---------- */
.glr-steps { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 20px; }
.glr-step {
	width: 38px; height: 38px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: .9rem; color: var(--glr-text-2);
	background: var(--glr-surface);
	box-shadow: 4px 4px 9px var(--glr-sh-dark), -4px -4px 9px var(--glr-sh-light);
	transition: all .3s;
}
.glr-step.is-active {
	color: #fff;
	background: linear-gradient(135deg, var(--glr-ice-2), var(--glr-blue));
	box-shadow: inset 2px 2px 5px rgba(61,124,184,.4), 4px 4px 10px var(--glr-sh-dark);
}
.glr-step.is-done { color: var(--glr-blue); }
.glr-step-line { width: 34px; height: 3px; border-radius: 2px; background: var(--glr-sh-dark); }

/* ---------- ورودی‌ها (فرورفته) ---------- */
.glr-label { display: block; text-align: right; font-size: .82rem; margin: 12px 2px 7px; color: var(--glr-text); font-weight: 700; }
.glr-input-wrap {
	border-radius: var(--glr-r);
	box-shadow: inset 5px 5px 10px var(--glr-sh-dark), inset -5px -5px 10px var(--glr-sh-light);
	background: var(--glr-surface);
	padding: 2px;
}
.glr-input {
	width: 100%; border: none; outline: none; background: transparent;
	padding: 13px 16px; font-family: inherit; font-size: .95rem; color: var(--glr-text);
	border-radius: var(--glr-r);
}
.glr-input::placeholder { color: #a9bfd2; }
textarea.glr-input { resize: vertical; }
.glr-select-wrap select { appearance: none; cursor: pointer; }

/* ---------- دکمه‌ها (برجسته) ---------- */
.glr-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%; margin-top: 18px; padding: 13px 22px;
	border: none; cursor: pointer; border-radius: var(--glr-r);
	font-family: inherit; font-size: .95rem; font-weight: 700;
	color: var(--glr-text);
	background: var(--glr-surface);
	box-shadow: 6px 6px 13px var(--glr-sh-dark), -6px -6px 13px var(--glr-sh-light);
	transition: all .18s;
}
.glr-btn:hover { transform: translateY(-1px); }
.glr-btn:active {
	box-shadow: inset 4px 4px 9px var(--glr-sh-dark), inset -4px -4px 9px var(--glr-sh-light);
	transform: translateY(0);
}
.glr-btn-primary {
	color: #fff;
	background: linear-gradient(135deg, var(--glr-ice-2), var(--glr-blue));
	box-shadow: 6px 6px 14px rgba(91,155,213,.35), -5px -5px 12px var(--glr-sh-light);
}
.glr-btn-primary:active { box-shadow: inset 4px 4px 9px rgba(61,124,184,.5); }
.glr-btn-sm { width: auto; margin-top: 0; padding: 10px 18px; font-size: .85rem; }
.glr-btn[disabled] { opacity: .55; cursor: not-allowed; }

.glr-link-btn {
	background: none; border: none; cursor: pointer; font-family: inherit;
	color: var(--glr-blue); font-size: .82rem; padding: 4px 6px;
}
.glr-link-btn[disabled] { color: var(--glr-text-2); cursor: default; }
.glr-back { margin-top: 14px; }

/* ---------- OTP ---------- */
.glr-otp-msg { font-size: .85rem; color: var(--glr-text-2); }
.glr-otp-boxes { display: flex; justify-content: center; gap: 10px; direction: ltr; margin: 16px 0 6px; }
.glr-otp-box {
	width: 48px; height: 56px; text-align: center; font-size: 1.4rem; font-weight: 700;
	font-family: inherit; color: var(--glr-blue-dark);
	border: none; outline: none; border-radius: 14px;
	background: var(--glr-surface);
	box-shadow: inset 4px 4px 9px var(--glr-sh-dark), inset -4px -4px 9px var(--glr-sh-light);
	transition: box-shadow .2s;
}
.glr-otp-box:focus { box-shadow: inset 4px 4px 9px var(--glr-sh-dark), inset -4px -4px 9px var(--glr-sh-light), 0 0 0 2px var(--glr-ice); }
.glr-otp-meta { display: flex; align-items: center; justify-content: space-between; margin: 4px 6px; }
.glr-timer { font-weight: 700; color: var(--glr-blue-dark); font-size: .95rem; }

/* ---------- اعلان ---------- */
.glr-alert {
	margin: 12px 0; padding: 11px 15px; border-radius: 14px; font-size: .84rem; text-align: right;
	background: var(--glr-surface);
	box-shadow: inset 3px 3px 7px var(--glr-sh-dark), inset -3px -3px 7px var(--glr-sh-light);
	border-right: 4px solid var(--glr-err); color: #b06471;
}
.glr-alert.is-ok { border-right-color: var(--glr-ok); color: #3d8a72; }
.glr-alert.is-warn { border-right-color: var(--glr-warn); color: #a8823f; }

/* ---------- نتایج بیمار ---------- */
.glr-result-item {
	text-align: right; margin-bottom: 16px; padding: 18px;
	border-radius: var(--glr-r);
	box-shadow: 5px 5px 12px var(--glr-sh-dark), -5px -5px 12px var(--glr-sh-light);
}
.glr-result-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px; }
.glr-result-head b { color: var(--glr-blue-dark); }
.glr-result-date { font-size: .75rem; color: var(--glr-text-2); }
.glr-result-note { font-size: .8rem; color: var(--glr-text-2); margin: 8px 0 0; }
.glr-file-row {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	margin-top: 10px; padding: 10px 14px; border-radius: 14px;
	background: var(--glr-surface);
	box-shadow: inset 3px 3px 7px var(--glr-sh-dark), inset -3px -3px 7px var(--glr-sh-light);
	font-size: .82rem;
}
.glr-file-name { display: flex; align-items: center; gap: 8px; overflow: hidden; }
.glr-file-name span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.glr-dl-btn {
	flex: 0 0 auto; border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: .78rem;
	color: #fff; padding: 8px 16px; border-radius: 11px;
	background: linear-gradient(135deg, var(--glr-ice-2), var(--glr-blue));
	box-shadow: 3px 3px 8px rgba(91,155,213,.4);
}
.glr-dl-btn:active { box-shadow: inset 2px 2px 5px rgba(61,124,184,.5); }

/* ---------- اسپینر ---------- */
.glr-spinner {
	width: 17px; height: 17px; border-radius: 50%;
	border: 2.5px solid rgba(255,255,255,.4); border-top-color: #fff;
	animation: glr-spin .7s linear infinite;
}
@keyframes glr-spin { to { transform: rotate(360deg); } }

/* ============================================================
   پنل مدیریت مستقل
   ============================================================ */
.glr-login-wrap { margin-top: 8vh; }

.glr-panel-layout {
	display: flex; gap: 22px; align-items: flex-start;
	max-width: 1560px; width: 96%; margin: 26px auto; padding: 0 16px;
}
.glr-side {
	flex: 0 0 235px; position: sticky; top: 20px;
	background: var(--glr-surface); border-radius: calc(var(--glr-r) + 6px);
	box-shadow: 9px 9px 22px var(--glr-sh-dark), -9px -9px 22px var(--glr-sh-light);
	padding: 18px;
}
.glr-side-head { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; font-size: .85rem; }
.glr-side-head small { color: var(--glr-text-2); }
.glr-nav { display: flex; flex-direction: column; gap: 9px; }
.glr-nav-item {
	display: flex; align-items: center; gap: 9px;
	padding: 11px 14px; border-radius: 14px;
	text-decoration: none; color: var(--glr-text); font-size: .87rem; font-weight: 700;
	background: var(--glr-surface);
	box-shadow: 4px 4px 9px var(--glr-sh-dark), -4px -4px 9px var(--glr-sh-light);
	transition: all .18s;
}
.glr-nav-item:hover { transform: translateX(-2px); color: var(--glr-blue-dark); }
.glr-nav-item.is-active {
	color: #fff; background: linear-gradient(135deg, var(--glr-ice-2), var(--glr-blue));
	box-shadow: inset 3px 3px 7px rgba(61,124,184,.4);
}
.glr-nav-item.is-danger { color: #b06471; }
.glr-main { flex: 1 1 auto; min-width: 0; }

/* ---------- جدول ---------- */
.glr-card-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 6px; }
.glr-search { display: flex; gap: 8px; align-items: center; }
.glr-search .glr-input {
	width: 260px; padding: 9px 14px; font-size: .82rem;
	box-shadow: inset 4px 4px 8px var(--glr-sh-dark), inset -4px -4px 8px var(--glr-sh-light);
	border-radius: 12px;
}
.glr-table-wrap { overflow-x: auto; margin-top: 12px; border-radius: 14px; }
.glr-table { width: 100%; border-collapse: separate; border-spacing: 0 8px; font-size: .82rem; }
.glr-table th { text-align: right; color: var(--glr-text-2); font-size: .75rem; padding: 4px 12px; white-space: nowrap; }
.glr-table td {
	background: var(--glr-surface); padding: 11px 12px; vertical-align: middle;
	box-shadow: 3px 3px 8px var(--glr-sh-dark), -3px -3px 8px var(--glr-sh-light);
}
.glr-table td:first-child { border-radius: 0 13px 13px 0; }
.glr-table td:last-child { border-radius: 13px 0 0 13px; }
.glr-empty { text-align: center; color: var(--glr-text-2); padding: 26px !important; }

.glr-badge {
	display: inline-block; padding: 3px 11px; border-radius: 20px; font-size: .72rem; font-weight: 700;
	color: var(--glr-text-2);
	box-shadow: inset 2px 2px 5px var(--glr-sh-dark), inset -2px -2px 5px var(--glr-sh-light);
}
.glr-badge.is-green { color: var(--glr-ok); }
.glr-badge.is-blue { color: var(--glr-blue); }
.glr-badge.is-red { color: var(--glr-err); }

/* تیک وصول پیامک */
.glr-sms-cell { font-weight: 700; white-space: nowrap; }
.glr-tick-1 { color: var(--glr-text-2); }
.glr-tick-2 { color: var(--glr-ok); letter-spacing: -3px; }
.glr-x { color: var(--glr-err); }

.glr-actions { white-space: nowrap; }
.glr-inline { display: inline-block; margin: 0 2px; }
.glr-icon-btn {
	border: none; cursor: pointer; font-size: .95rem; padding: 7px 9px; border-radius: 11px;
	background: var(--glr-surface);
	box-shadow: 3px 3px 7px var(--glr-sh-dark), -3px -3px 7px var(--glr-sh-light);
	transition: all .15s;
}
.glr-icon-btn:active { box-shadow: inset 2px 2px 5px var(--glr-sh-dark), inset -2px -2px 5px var(--glr-sh-light); }
.glr-icon-btn.is-danger:hover { box-shadow: 3px 3px 7px rgba(224,138,151,.4), -3px -3px 7px var(--glr-sh-light); }

.glr-pager { display: flex; gap: 8px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.glr-page {
	min-width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 11px; text-decoration: none; color: var(--glr-text); font-size: .82rem; font-weight: 700;
	box-shadow: 3px 3px 8px var(--glr-sh-dark), -3px -3px 8px var(--glr-sh-light);
}
.glr-page.is-active { color: #fff; background: linear-gradient(135deg, var(--glr-ice-2), var(--glr-blue)); }

/* ---------- فرم پنل ---------- */
.glr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; margin-top: 10px; }
.glr-span-2 { grid-column: span 2; }
.glr-btn-bottom { display: flex; align-items: flex-end; }
.glr-add-inline { display: flex; gap: 10px; align-items: center; margin: 14px 0 4px; }
.glr-grow { flex: 1 1 auto; }

/* ---------- دراپ‌زون آپلود ---------- */
.glr-dropzone {
	position: relative; margin-top: 4px; padding: 26px 16px; text-align: center;
	border-radius: var(--glr-r); cursor: pointer;
	box-shadow: inset 5px 5px 11px var(--glr-sh-dark), inset -5px -5px 11px var(--glr-sh-light);
	transition: box-shadow .2s;
}
.glr-dropzone.is-drag { box-shadow: inset 5px 5px 11px var(--glr-sh-dark), inset -5px -5px 11px var(--glr-sh-light), 0 0 0 2px var(--glr-ice); }
.glr-dropzone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.glr-dz-icon { font-size: 1.7rem; }
.glr-dz-inner p { margin: 6px 0 3px; font-size: .87rem; font-weight: 700; }
.glr-dz-inner small { color: var(--glr-text-2); font-size: .73rem; }
.glr-dz-list { list-style: none; margin: 10px 0 0; padding: 0; text-align: right; position: relative; z-index: 2; }
.glr-dz-list li {
	display: flex; justify-content: space-between; font-size: .78rem; padding: 7px 12px; margin-top: 6px;
	border-radius: 10px; background: var(--glr-surface);
	box-shadow: 2px 2px 6px var(--glr-sh-dark), -2px -2px 6px var(--glr-sh-light);
}

/* ============================================================
   حالت embedded — پنل داخل قالب سایت
   ============================================================ */
.glr-embed {
	font-family: 'Vazirmatn', Tahoma, sans-serif;
	color: var(--glr-text);
	direction: rtl;
	background: var(--glr-bg);
	border-radius: 24px;
	padding: 10px 0 26px;
	margin: 10px 0;
}
.glr-embed * { box-sizing: border-box; }
.glr-embed .glr-panel-layout { width: 100%; max-width: none; margin: 16px auto; }
.glr-embed .glr-login-wrap { margin-top: 24px; }

/* ---------- موبایل ---------- */
@media (max-width: 860px) {
	.glr-panel-layout { flex-direction: column; }
	.glr-side { position: static; flex: none; width: 100%; }
	.glr-nav { flex-direction: row; flex-wrap: wrap; }
	.glr-nav-item { flex: 1 1 40%; justify-content: center; }
	.glr-form-grid { grid-template-columns: 1fr; }
	.glr-span-2 { grid-column: span 1; }
	.glr-otp-box { width: 42px; height: 50px; }
	.glr-search .glr-input { width: 100%; }
}
