/* Parnova user panel – layout and components on top of Bootstrap 5 (RTL) */

:root {
	--pn-primary: #2456a6;
	--pn-primary-dark: #1b417d;
	--pn-primary-soft: #e8eef9;
	--pn-accent: #2e8b3a;
	--pn-bg: #f4f6fb;
	--pn-border: #e3e7ef;
	--pn-text: #1f2937;
	--pn-muted: #6b7280;
	--pn-sidebar-width: 260px;
	--pn-navbar-height: 64px;

	--bs-primary: var(--pn-primary);
	--bs-primary-rgb: 36, 86, 166;
	--bs-link-color: var(--pn-primary);
	--bs-link-color-rgb: 36, 86, 166;
	--bs-link-hover-color: var(--pn-primary-dark);
	--bs-body-font-family: IRANSans, Tahoma, sans-serif;
	--bs-body-color: var(--pn-text);
	--bs-border-radius: .6rem;
	--bs-border-radius-lg: .9rem;
}

html, body { min-height: 100%; }
body {
	background: var(--pn-bg);
	font-family: var(--bs-body-font-family);
	font-size: .95rem;
	-webkit-text-size-adjust: 100%;
}

/* Bootstrap components in brand color */
.btn-primary {
	--bs-btn-bg: var(--pn-primary);
	--bs-btn-border-color: var(--pn-primary);
	--bs-btn-hover-bg: var(--pn-primary-dark);
	--bs-btn-hover-border-color: var(--pn-primary-dark);
	--bs-btn-active-bg: var(--pn-primary-dark);
	--bs-btn-active-border-color: var(--pn-primary-dark);
	--bs-btn-disabled-bg: var(--pn-primary);
	--bs-btn-disabled-border-color: var(--pn-primary);
}
.btn-outline-primary {
	--bs-btn-color: var(--pn-primary);
	--bs-btn-border-color: var(--pn-primary);
	--bs-btn-hover-bg: var(--pn-primary);
	--bs-btn-hover-border-color: var(--pn-primary);
	--bs-btn-active-bg: var(--pn-primary);
	--bs-btn-active-border-color: var(--pn-primary);
}
.btn { font-weight: 500; }
.form-control, .form-select { padding-top: .55rem; padding-bottom: .55rem; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
	border-color: #8aa6d6;
	box-shadow: 0 0 0 .2rem rgba(36, 86, 166, .15);
}
.form-check-input:checked { background-color: var(--pn-primary); border-color: var(--pn-primary); }
.form-control::placeholder { color: #b3bac6; opacity: 1; }
.ltr { direction: ltr; text-align: left; }
input.ltr::placeholder { text-align: left; }

/* ---------- top navbar ---------- */
.pn-navbar {
	height: var(--pn-navbar-height);
	background: #fff;
	border-bottom: 1px solid var(--pn-border);
	position: sticky;
	top: 0;
	z-index: 1030;
}
.pn-brand img { height: 38px; width: auto; }
.pn-brand span { color: var(--pn-muted); font-size: .85rem; border-inline-start: 1px solid var(--pn-border); padding-inline-start: .75rem; }
.pn-cart-link { position: relative; }
.pn-cart-link .badge { position: absolute; top: -4px; inset-inline-end: -6px; font-size: .65rem; }

/* ---------- sidebar ---------- */
.pn-sidebar { width: var(--pn-sidebar-width); }
@media (min-width: 992px) {
	.pn-sidebar {
		position: fixed;
		top: var(--pn-navbar-height);
		bottom: 0;
		right: 0;
		background: #fff;
		border-inline-end: 1px solid var(--pn-border);
		overflow-y: auto;
	}
	.pn-main { margin-right: var(--pn-sidebar-width); }
}
.pn-menu-title {
	font-size: .75rem;
	color: var(--pn-muted);
	margin: 1.25rem 1rem .4rem;
	font-weight: 500;
}
.pn-menu .nav-link {
	color: var(--pn-text);
	border-radius: .5rem;
	margin: 2px .5rem;
	padding: .6rem .75rem;
	display: flex;
	align-items: center;
	gap: .65rem;
}
.pn-menu .nav-link i { font-size: 1.1rem; color: var(--pn-muted); }
.pn-menu .nav-link:hover { background: var(--pn-bg); }
.pn-menu .nav-link.active { background: var(--pn-primary-soft); color: var(--pn-primary); font-weight: 500; }
.pn-menu .nav-link.active i { color: var(--pn-primary); }

/* ---------- content ---------- */
.pn-main { min-height: calc(100vh - var(--pn-navbar-height)); display: flex; flex-direction: column; }
.pn-content { flex: 1; padding: 1.5rem; max-width: 1200px; width: 100%; }
@media (max-width: 575.98px) { .pn-content { padding: 1rem .75rem; } }
.pn-page-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 1.25rem; display: flex; align-items: center; gap: .5rem; }
.pn-page-title i { color: var(--pn-primary); }
.pn-footer { color: var(--pn-muted); font-size: .8rem; padding: 1rem 1.5rem; text-align: center; }

.card { border-color: var(--pn-border); border-radius: var(--bs-border-radius-lg); }
.card-header { background: #fff; border-bottom-color: var(--pn-border); font-weight: 500; padding: .9rem 1.25rem; }
.card-header:first-child { border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0; }
.pn-card-shadow { box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }

.pn-empty { text-align: center; color: var(--pn-muted); padding: 3rem 1rem; }
.pn-empty i { font-size: 2.5rem; display: block; margin-bottom: .75rem; color: #c3cad6; }

/* dashboard tiles */
.pn-tile { display: flex; flex-direction: row; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; color: inherit; text-decoration: none; height: 100%; transition: box-shadow .15s, transform .15s; }
.pn-tile:hover { box-shadow: 0 6px 18px rgba(36, 86, 166, .12); transform: translateY(-1px); color: inherit; }
.pn-tile-icon { width: 48px; height: 48px; border-radius: .75rem; display: grid; place-items: center; font-size: 1.4rem; flex-shrink: 0; background: var(--pn-primary-soft); color: var(--pn-primary); }
.pn-tile-value { font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
.pn-tile-label { color: var(--pn-muted); font-size: .85rem; }

/* store */
.pn-product img { width: 100%; height: 200px; object-fit: contain; background: #fff; border-radius: var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0 0; padding: .75rem; }
.pn-product .card-title { font-size: .95rem; font-weight: 500; min-height: 2.8em; }
.pn-price { font-weight: 700; color: var(--pn-text); }
.pn-price small { font-weight: 400; color: var(--pn-muted); }

/* cart */
.pn-cart-item { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--pn-border); }
.pn-cart-item:last-child { border-bottom: 0; }
.pn-cart-item-name { flex: 1 1 220px; font-weight: 500; }
.pn-qty { display: inline-flex; align-items: center; border: 1px solid var(--pn-border); border-radius: .6rem; overflow: hidden; }
.pn-qty button { border: 0; background: #fff; padding: .35rem .6rem; color: var(--pn-text); min-width: 38px; }
.pn-qty button:hover { background: var(--pn-bg); }
.pn-qty button:disabled { color: #c3cad6; }
.pn-qty .pn-qty-value { min-width: 44px; text-align: center; font-weight: 700; }
.pn-cart-item-total { min-width: 120px; text-align: left; font-weight: 700; }
.pn-summary dl { display: grid; grid-template-columns: 1fr auto; gap: .6rem 1rem; margin: 0; }
.pn-summary dt { font-weight: 400; color: var(--pn-muted); }
.pn-summary dd { margin: 0; text-align: left; }
.pn-summary .pn-summary-final { font-size: 1.1rem; font-weight: 700; color: var(--pn-text); }

/* key/value lists (receipt, profile) */
.pn-kv { display: grid; grid-template-columns: minmax(120px, 35%) 1fr; margin: 0; }
.pn-kv dt, .pn-kv dd { padding: .65rem 1.25rem; margin: 0; border-bottom: 1px solid var(--pn-border); }
.pn-kv dt { color: var(--pn-muted); font-weight: 400; }
.pn-kv dt:last-of-type, .pn-kv dd:last-of-type { border-bottom: 0; }

/* stacked tables on small screens: each row becomes a card */
@media (max-width: 767.98px) {
	.pn-table-stack thead { display: none; }
	.pn-table-stack, .pn-table-stack tbody, .pn-table-stack tr, .pn-table-stack td { display: block; width: 100%; }
	.pn-table-stack tr { border-bottom: 1px solid var(--pn-border); padding: .5rem 0; }
	.pn-table-stack td { border: 0; padding: .3rem 1rem; display: flex; justify-content: space-between; gap: 1rem; text-align: left; }
	.pn-table-stack td::before { content: attr(data-label); color: var(--pn-muted); text-align: right; flex-shrink: 0; }
	.pn-table-stack td[data-label=""]::before { content: none; }
	.pn-table-stack td.pn-td-actions { justify-content: flex-start; }
}

/* test pages */
/* scroll target sits below the sticky navbar and the sticky progress bar */
.pn-question { padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--pn-border); scroll-margin-top: calc(var(--pn-navbar-height) + 4.5rem); }
.pn-question:last-child { border-bottom: 0; }
.pn-question.is-answered .pn-question-no { background: var(--pn-accent); color: #fff; }
.pn-question-no { display: inline-grid; place-items: center; min-width: 30px; height: 30px; border-radius: 50%; background: var(--pn-primary-soft); color: var(--pn-primary); font-weight: 700; font-size: .85rem; margin-inline-end: .5rem; }
.pn-question-text { font-weight: 500; line-height: 1.9; }
.pn-options { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.pn-options .btn { flex: 1 1 auto; min-width: 90px; }
.pn-options-vertical { flex-direction: column; }
.pn-options-vertical .btn { text-align: right; }
.btn-check:checked + .btn-outline-primary { background: var(--pn-primary); color: #fff; }
.pn-test-progress { position: sticky; top: var(--pn-navbar-height); z-index: 10; background: var(--pn-bg); padding: .5rem 0; }
.pn-test-actions { position: sticky; bottom: 0; background: rgba(255, 255, 255, .96); border-top: 1px solid var(--pn-border); padding: .75rem 1rem; z-index: 10; backdrop-filter: blur(4px); }

/* auth pages (login / register) */
.pn-auth { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem .75rem; background: linear-gradient(160deg, #eaf0fa 0%, var(--pn-bg) 55%); }
.pn-auth-card { width: 100%; max-width: 420px; }
.pn-auth-card.pn-auth-wide { max-width: 760px; }
.pn-auth-logo { height: 56px; width: auto; }
.pn-auth .card { box-shadow: 0 10px 30px rgba(36, 86, 166, .08); }

.input-group .btn-toggle-password { border-color: var(--bs-border-color); background: #fff; color: var(--pn-muted); }

@media print {
	.pn-navbar, .pn-sidebar, .pn-footer, .pn-test-actions, .btn { display: none !important; }
	.pn-main { margin: 0 !important; }
	body { background: #fff; }
}
