/* ═══════════════════════════════════════════════════════════
   Haika — Notice (مزایده و مناقصه)
═══════════════════════════════════════════════════════════ */

/* ───── LIST CONTAINER ───── */
.cbn-notice-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* ───── CARD — Uniform height; content fits via internal padding.
   Use min-height (not fixed) so badges/text never get cropped. */
.cbn-notice-card {
	background: var(--cb-bg-2);
	border: 1px solid var(--cb-border);
	border-right: 4px solid var(--cb-acc, var(--cb-steel));
	border-radius: var(--cb-r-md);
	padding: 1.35rem 1.6rem 1.35rem 1.5rem;
	display: grid;
	grid-template-columns: 1fr 168px;
	column-gap: 1.5rem;
	row-gap: 0;
	transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease;
	position: relative;
	min-height: 200px;       /* uniform minimum */
	overflow: visible;       /* allow badges to render fully */
}
.cbn-notice-card::before {
	/* clip wrapper for the animated top-edge line (so it doesn't bleed) */
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	border-radius: inherit;
	pointer-events: none;
	overflow: hidden;
	z-index: 1;
}
.cbn-notice-card::after {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--cb-acc) 60%, transparent), transparent);
	transform: scaleX(0);
	transition: transform .4s ease;
}
.cbn-notice-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 38px rgba(0,0,0,.28),
	            0 0 22px color-mix(in srgb, var(--cb-acc) 10%, transparent);
}
.cbn-notice-card:hover::after { transform: scaleX(1); }

.cbn-notice-card__main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .55rem;
	position: relative;
	z-index: 2;
}
.cbn-notice-card__head {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap; /* wrap badges to next line on narrow screens, never clip */
	margin: 0;
	min-width: 0;
}
.cbn-notice-card__type {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	background: color-mix(in srgb, var(--cb-acc) 15%, transparent);
	border: 1px solid color-mix(in srgb, var(--cb-acc) 32%, transparent);
	color: var(--cb-acc);
	padding: .22rem .75rem;
	border-radius: 100px;
	font-size: .7rem;
	font-weight: 700;
	white-space: nowrap;
}
.cbn-notice-card__status {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .22rem .7rem;
	border-radius: 100px;
	font-size: .68rem;
	font-weight: 700;
	white-space: nowrap;
}
.cbn-notice-card__title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.55;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbn-notice-card__title a { color: var(--cb-highlight); transition: color var(--cb-tr-fast); }
.cbn-notice-card__title a:hover { color: var(--cb-acc); }

.cbn-notice-card__meta {
	display: flex;
	gap: 1.1rem;
	flex-wrap: nowrap;
	font-size: .74rem;
	color: var(--cb-muted);
	margin: 0;
	min-height: 1.2em; /* reserve space even when empty */
	overflow: hidden;
}
.cbn-notice-card__meta > span {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbn-notice-card__meta svg { opacity: .7; flex-shrink: 0; }

.cbn-notice-card__excerpt {
	font-size: .82rem;
	color: var(--cb-text-body);
	line-height: 1.7;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cbn-notice-card__actions {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	min-width: 160px;
	justify-content: center;
	align-self: center;
	position: relative;
	z-index: 2;
}
.cbn-notice-card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .65rem 1rem;
	border-radius: var(--cb-r-sm);
	font-size: .82rem;
	font-weight: 700;
	transition: all var(--cb-tr-fast);
	white-space: nowrap;
}
.cbn-notice-card__btn--view {
	background: var(--cb-acc);
	color: #0d1117;
}
.cbn-notice-card__btn--view:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px color-mix(in srgb, var(--cb-acc) 35%, transparent);
	color: #0d1117;
}
.cbn-notice-card__btn--pdf {
	background: rgba(255,255,255,.04);
	color: var(--cb-text);
	border: 1px solid var(--cb-border);
}
.cbn-notice-card__btn--pdf:hover {
	background: color-mix(in srgb, var(--cb-acc) 18%, transparent);
	border-color: color-mix(in srgb, var(--cb-acc) 40%, transparent);
	color: var(--cb-acc);
}

/* ═══════════════════════════════════════════════════════════
   SINGLE NOTICE
═══════════════════════════════════════════════════════════ */
.cbn-notice-single {
	max-width: 920px;
	margin: 0 auto;
	padding: 3rem 0;
}
.cbn-notice-single__header { text-align: center; margin-bottom: 2rem; }
.cbn-notice-single__type {
	display: inline-block;
	background: color-mix(in srgb, var(--cb-acc) 14%, transparent);
	border: 1px solid color-mix(in srgb, var(--cb-acc) 32%, transparent);
	color: var(--cb-acc);
	padding: .35rem 1rem;
	border-radius: 100px;
	font-size: .72rem;
	font-weight: 700;
	margin-bottom: 1rem;
}
.cbn-notice-single__title {
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	font-weight: 900;
	line-height: 1.3;
	margin-bottom: 1.2rem;
	color: var(--cb-text);
}
.cbn-notice-single__status-row { margin-top: .8rem; }
.cbn-notice-single__status {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .45rem 1.1rem;
	border-radius: 100px;
	font-size: .82rem;
	font-weight: 700;
	border: 1px solid currentColor;
}

.cbn-notice-single__info {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	background: var(--cb-bg-2);
	border: 1px solid var(--cb-border);
	border-radius: var(--cb-r-md);
	overflow: hidden;
	margin-bottom: 2.5rem;
}
.cbn-notice-single__info-cell {
	padding: 1.2rem 1.4rem;
	border-left: 1px solid var(--cb-border);
	text-align: center;
}
.cbn-notice-single__info-cell:last-child { border-left: none; }
.cbn-notice-single__info-cell small {
	display: block;
	font-size: .7rem;
	color: var(--cb-muted);
	margin-bottom: .35rem;
	letter-spacing: .04em;
}
.cbn-notice-single__info-cell strong {
	font-size: 1rem;
	color: var(--cb-text);
	font-weight: 700;
}

.cbn-notice-single__body {
	font-size: 1rem;
	line-height: 2.1;
	color: var(--cb-text-body);
	margin-bottom: 2.5rem;
}

.cbn-notice-single__pdf {
	background: var(--cb-bg-2);
	border: 1px solid color-mix(in srgb, var(--cb-acc) 24%, transparent);
	border-right: 4px solid var(--cb-acc);
	border-radius: var(--cb-r-md);
	padding: 1.5rem 1.6rem;
}
.cbn-notice-single__pdf h4 {
	font-size: 1rem;
	color: var(--cb-acc);
	margin-bottom: 1rem;
}
.cbn-notice-single__pdf-actions {
	display: flex;
	gap: .6rem;
	flex-wrap: wrap;
	margin-bottom: 1.2rem;
}
.cbn-notice-single__pdf-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 1.3rem;
	background: var(--cb-acc);
	color: #0d1117 !important;
	border-radius: 100px;
	font-weight: 700;
	font-size: .9rem;
	border: none;
	cursor: pointer;
	font-family: inherit;
	transition: transform var(--cb-tr-fast), box-shadow var(--cb-tr-fast);
}
.cbn-notice-single__pdf-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px color-mix(in srgb, var(--cb-acc) 40%, transparent);
}
.cbn-notice-single__pdf-btn--alt {
	background: transparent;
	color: var(--cb-acc) !important;
	border: 1px solid color-mix(in srgb, var(--cb-acc) 40%, transparent);
}
.cbn-notice-single__pdf-btn--alt:hover {
	background: color-mix(in srgb, var(--cb-acc) 20%, transparent);
	box-shadow: none;
}
.cbn-notice-single__pdf-embed iframe {
	width: 100%;
	height: 720px;
	border: none;
	border-radius: var(--cb-r-sm);
	background: #fff;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 820px) {
	.cbn-notice-card {
		grid-template-columns: 1fr;
		height: 260px;          /* EXACT height = perfectly uniform */
		min-height: 0;
		row-gap: .8rem;
		padding: 1.1rem 1.3rem;
		overflow: hidden;       /* trim any rare excess */
	}
	/* Make the main column take the available height and let actions row sit at bottom */
	.cbn-notice-card__main {
		min-height: 0;
		flex: 1;
		overflow: hidden;
	}
	.cbn-notice-card__head {
		flex-wrap: nowrap;       /* no wrap on mobile to keep height predictable */
		overflow: hidden;
	}
	.cbn-notice-card__head > * {
		flex-shrink: 1;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.cbn-notice-card__title {
		-webkit-line-clamp: 2;
	}
	.cbn-notice-card__excerpt {
		-webkit-line-clamp: 2;
	}
	.cbn-notice-card__actions {
		flex-direction: row;
		min-width: 0;
		align-self: stretch;
		flex-shrink: 0;
	}
	.cbn-notice-card__actions .cbn-notice-card__btn { flex: 1; }
}
@media (max-width: 520px) {
	.cbn-notice-card {
		height: 250px;          /* slightly tighter on small mobiles */
		padding: 1rem 1.15rem;
	}
	.cbn-notice-card__title { font-size: .95rem; }
	.cbn-notice-card__excerpt { -webkit-line-clamp: 2; font-size: .78rem; }
}
@media (max-width: 600px) {
	.cbn-notice-single__info { grid-template-columns: 1fr; }
	.cbn-notice-single__info-cell {
		border-left: none;
		border-bottom: 1px solid var(--cb-border);
		text-align: right;
		padding: .8rem 1.2rem;
	}
	.cbn-notice-single__info-cell:last-child { border-bottom: none; }
	.cbn-notice-single__pdf-embed iframe { height: 420px; }
}
