/*!
 * Biblioteca ITRC - stilurile catalogului public (OPAC).
 *
 * Mutat aici din class-bib-opac.php la 2026-07-20. Erau ~32 KB inline in fiecare
 * pagina: nu puteau fi puse in cache de browser, nici minificate de LiteSpeed, iar
 * in DevTools apareau ca „catalog/:390", fara nume de fisier si fara linie utila.
 * Se incarca doar pe paginile care contin shortcode-ul [biblioteca_opac].
 */

.bib-opac { font-size: 1rem; }
.bib-consimt { display: block; margin: .2em 0 1em; font-size: .85rem; color: var(--bib-muted, #555); line-height: 1.45; }
.bib-consimt input { margin-right: .4em; }

/* panoul de sugestii sta absolut sub bara; bara devine reper de pozitionare */
.bib-sug { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 6px);
	margin: 0; padding: .3em; list-style: none; text-align: left; background: #fff;
	border: 1px solid #ddd3bf; border-radius: 10px;
	box-shadow: 0 18px 40px rgba(10,36,64,.18); max-height: 380px; overflow-y: auto; }
.bib-sug[hidden] { display: none; }
.bib-sug__it { display: block; padding: .5em .65em; border-radius: 6px; cursor: pointer; }
.bib-sug__it:hover, .bib-sug__it.is-activ { background: #f2ecdf; }
.bib-sug__t { display: block; font-family: var(--font-serif, Georgia, serif); font-size: .98rem; color: #14213d; }
.bib-sug__m { display: block; font-size: .8rem; color: #7a8290; margin-top: 1px; }
.bib-sug__tot { border-top: 1px solid #efe8db; margin-top: .25em; padding-top: .6em; font-size: .86rem; color: #a86a2f; }
/* Cautarea e actiunea principala a PAGINII, nu a coloanei din mijloc, deci sta centrata
   peste toate cele trei coloane. Latimea plafonata: un camp de 1300px e greu de folosit
   (cursorul porneste la stanga, butonul e departe), iar panoul de sugestii, care mosteneste
   latimea barei, arata gol cu opt titluri scurte intr-o cutie cat ecranul. */
.bib-search { position: relative; display: flex; gap: .5em;
	max-width: 740px; margin: 0 auto 1.6em;
	background: #fff; padding: .45em; border-radius: 999px;
	border: 1px solid var(--bib-border, #ddd); box-shadow: 0 2px 10px rgba(10,36,64,.06); }
/* Lupa in interiorul campului: spune ce face inputul si dupa ce placeholderul dispare. */
.bib-search input[type=search] { flex: 1; min-width: 0; border: 0; outline: none;
	padding: .62em 1em .62em 2.75em; font-size: 1.05rem;
	background-color: transparent;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23a86a2f' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='8.5' cy='8.5' r='5.75'/%3E%3Cpath d='M12.9 12.9 17 17'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: left .95em center; background-size: 17px 17px; }
.bib-btn { padding: .55em 1.4em; cursor: pointer; border: 0; border-radius: 999px;
	background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff); font-size: .95rem; font-weight: 600;
	transition: transform .15s ease, box-shadow .15s ease; }
.bib-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(10,36,64,.15); }
.bib-btn--full { width: 100%; margin-top: .6em; }
/* Butonul principal de cautare preia accentul temei (arama), ca in hero si overlay. */
.bib-btn--cauta { background: var(--bib-accent, #a86a2f); color: var(--bib-on-accent, #fff); }
.bib-btn--cauta:hover { background: var(--bib-accent-hover, #8f5626); }

.bib-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 2em; align-items: start; }
/* Mockup Anticariat: filtrele stau DIRECT pe foaia deschisa, fara card alb. */
.bib-side { position: sticky; top: 90px; background: transparent; border: 0; border-radius: 0; padding: 0; }
.bib-side__titlu { margin: 0 0 1em; font-family: var(--font-serif, Georgia, serif); font-size: 1.35rem;
	font-weight: 700; color: var(--bib-primary, #0a2440); padding-bottom: .45em;
	border-bottom: 1px solid rgba(10,36,64,.15); }
.bib-side__camp { display: block; margin-bottom: .9em; font-size: .85rem; color: var(--bib-muted, #555); }
.bib-side__camp > span { display: block; margin-bottom: .3em; }
.bib-side__camp select, .bib-side__ani input, .bib-cb__inp { width: 100%; padding: .5em .6em; margin-top: .3em;
	border: 1px solid #ddd3bf; border-radius: 6px; font-size: .92rem; font-family: inherit;
	background: #fff; color: #1c2b3e; transition: border-color .15s ease, box-shadow .15s ease; }
.bib-side__camp select:hover, .bib-cb__inp:hover { border-color: #c4b69c; }
.bib-side__camp select:focus, .bib-side__ani input:focus, .bib-cb__inp:focus {
	outline: none; border-color: #a86a2f; box-shadow: 0 0 0 3px rgba(168,106,47,.15); }
/* chevron propriu: selectul nativ arata altfel pe fiecare sistem, asta il uniformizeaza */
.bib-side__camp select { appearance: none; -webkit-appearance: none; -moz-appearance: none;
	padding-right: 2em; cursor: pointer;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23a86a2f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .7em center; }
.bib-side__ani { display: flex; align-items: center; gap: .4em; }

/* combobox cautabil (imbunatatire progresiva peste selectul nativ) */
.bib-cb { position: relative; margin-top: .3em; }
.bib-cb__inp { margin-top: 0; padding-right: 2em; cursor: text;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23a86a2f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .7em center; }
.bib-cb__lista { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px);
	max-height: 280px; overflow-y: auto; margin: 0; padding: .25em; list-style: none;
	background: #fff; border: 1px solid #ddd3bf; border-radius: 8px;
	box-shadow: 0 14px 34px rgba(10,36,64,.16); }
.bib-cb__lista[hidden] { display: none; }
.bib-cb__opt { padding: .42em .55em; border-radius: 5px; cursor: pointer; font-size: .9rem; color: #1c2b3e; }
.bib-cb__opt:hover, .bib-cb__opt.is-activ { background: #f2ecdf; }
.bib-cb__opt[aria-selected="true"] { color: #a86a2f; font-weight: 600; }
.bib-cb__gol { padding: .5em .55em; font-size: .86rem; color: #8a8578; }
.bib-cb__nativ { display: none; }

/* pills cu filtre active */
.bib-pills { display: flex; flex-wrap: wrap; gap: .5em; margin-bottom: 1em; }
.bib-pill { display: inline-flex; align-items: center; gap: .5em;
	padding: .35em .9em; border-radius: 999px; text-decoration: none;
	background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff);
	font-size: .85rem; font-weight: 500;
	transition: opacity .15s ease, transform .15s ease; }
.bib-pill span { font-size: 1.05em; opacity: .7; }
.bib-pill:hover { opacity: .85; transform: translateY(-1px); color: var(--bib-on-primary, #fff); }
.bib-pill--reset { background: transparent; color: var(--bib-muted, #666);
	border: 1px dashed var(--bib-border, #bbb); }
.bib-pill--reset:hover { color: var(--bib-danger, #a33); border-color: currentColor; background: transparent; }

.bib-results-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1em;
	flex-wrap: wrap; margin-bottom: .4em; }
.bib-colectie { margin: 0 0 .2em; font-size: 1.4rem; }
.bib-count { margin: 0; color: var(--bib-muted, #666); font-size: .92rem; }
.bib-sort label { display: flex; align-items: center; gap: .5em; font-size: .85rem; color: var(--bib-muted, #555); }
.bib-sort select { padding: .35em .5em; border: 1px solid var(--bib-border, #ccc); border-radius: var(--bib-radius, 6px); background: #fff; }

.bib-results { list-style: none; margin: 0; padding: 0; }
.bib-rez { display: flex; align-items: flex-start; justify-content: space-between; gap: 1em;
	padding: 1em .8em; border-bottom: 1px solid var(--bib-border, #e6e6e6); border-radius: var(--bib-radius, 6px);
	transition: background .15s ease; }
.bib-rez:hover { background: var(--bib-surface, #f7f9fc); }
.bib-title { font-weight: 600; font-size: 1.06rem; text-decoration: none; color: var(--bib-primary, #1d3557); }
.bib-title:hover { text-decoration: underline; }
.bib-meta { color: var(--bib-muted, #555); font-size: .9rem; margin-top: .25em; }
.bib-dot { margin: 0 .45em; opacity: .5; }
.bib-badge { flex-shrink: 0; font-size: .78rem; font-weight: 600; padding: .3em .8em; border-radius: 999px; white-space: nowrap; }
.bib-badge--ok { background: rgba(47,125,50,.1); color: var(--bib-success, #1a7a2e); }
.bib-badge--no { background: rgba(192,57,43,.08); color: var(--bib-danger, #a33); }
.bib-rez__badges { display: flex; flex-direction: column; gap: .35em; align-items: flex-end; flex-shrink: 0; }
.bib-motiv { margin-top: .3em; font-size: .82em; color: var(--bib-muted, #5a6b7f); }
.bib-motiv strong { font-weight: 600; color: var(--bib-text, #22303f); }
.bib-badge--regim-1 { background: rgba(10,36,64,.07); color: #0a2440; }
.bib-badge--regim-2 { background: rgba(168,106,47,.14); color: #7a4a26; }
.bib-badge--regim-3 { background: rgba(107,47,47,.10); color: #6b2f2f; }
.bib-badge--regim-4 { background: rgba(0,0,0,.06); color: #555; }
.bib-cota { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .82em; background: rgba(0,0,0,.05); padding: .1em .5em; border-radius: 4px; }
.bib-back-row { margin: 0 0 1.1rem; }
.bib-back {
	display: inline-flex; align-items: center; gap: .55em;
	padding: .5em 1.15em .5em .95em;
	background: #fff; border: 1px solid rgba(0,0,0,.13); border-radius: 999px;
	font-size: .9rem; font-weight: 600; text-decoration: none;
	color: var(--bib-navy, #0a2440);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.bib-back:hover { border-color: rgba(10,36,64,.45); box-shadow: 0 3px 12px rgba(0,0,0,.08); }
.bib-back__sageata { transition: transform .18s ease; }
.bib-back:hover .bib-back__sageata { transform: translateX(-3px); }
.bib-cerere__variante { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; padding: .7em 1em; margin: 0 0 1em; }
.bib-cerere__variante legend { font-weight: 600; font-size: .92em; padding: 0 .4em; }
.bib-cerere__variante label { display: block; margin: .25em 0; font-size: .95em; }
/* finisaj fișă: cardul respiră, exemplarele au ritm */
.bib-carte { box-shadow: 0 6px 24px rgba(10,36,64,.06); }
.bib-ex { transition: background .15s ease; border-radius: 8px; }
.bib-ex:hover { background: rgba(10,36,64,.035); }
.bib-cerere { box-shadow: 0 6px 24px rgba(10,36,64,.06); }
/* finisaj panou listă */
.bib-cos__panou h3 { display: flex; align-items: center; gap: .5em; padding-bottom: .55em; border-bottom: 1px solid rgba(0,0,0,.08); margin-bottom: .7em; }
.bib-cos__panou h3::before { content: "📚"; font-size: 1.05em; }
.bib-cos__lista li { display: flex; align-items: center; gap: .5em; padding: .5em 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.bib-cos__lista li:last-child { border-bottom: 0; }
.bib-cos__titlu { flex: 1; font-size: .92em; line-height: 1.35; }
.bib-cos__lista select { font-size: .82em; max-width: 132px; }
.bib-cos__sterge { background: none; border: 0; cursor: pointer; color: #a33; font-size: 1.1em; padding: 0 .2em; border-radius: 4px; }
.bib-cos__sterge:hover { background: rgba(163,51,51,.1); }
.bib-notifica { background: #fdf6ec; border: 1px solid rgba(168,106,47,.3); border-radius: var(--bib-radius, 10px); padding: 1em 1.25em; margin: 1rem 0; }
.bib-notifica strong { display: block; margin-bottom: .15em; }
.bib-notifica__rand { display: flex; gap: .5em; margin: .6em 0 .4em; max-width: 460px; }
.bib-notifica__rand input { flex: 1; }
.bib-notifica small { color: #6b5942; }
.bib-cos__nota-fisa { font-size: .85em; color: #555; margin: 0 0 .6em; }
.bib-cos--pe-fisa .bib-cos__campuri, .bib-cos--pe-fisa .js-bib-cos-form .bib-consimt { display: none; }
@media (min-width: 1024px) {
	/* fișa cărții: conținut ~8/12 + lista de cereri ~4/12, sticky la scroll */
	/* Fișa + coșul stau in DOUA coloane, dar RAMAN in latimea temei.
	   Varianta veche evada la 1160px prin margini negative, ca sa castige spatiu.
	   Efectul secundar: fisa aparea deplasata fata de antetul temei (titlul „Catalog”,
	   butonul „Inapoi”), care raman la latimea normala. O aliniere gresita e mai
	   suparatoare decat cateva zeci de pixeli in plus de latime. */
	.bib-opac--fisa.are-cos {
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
		gap: 32px; align-items: start;
	}
	.bib-opac--fisa.are-cos .bib-back-row { grid-column: 1 / -1; }
	.bib-opac--fisa.are-cos .bib-fisa-main { min-width: 0; }
	.bib-opac--fisa.are-cos .bib-cos { position: sticky; top: 96px; right: auto; bottom: auto; left: auto; }
	.bib-opac--fisa.are-cos .bib-cos__fab { display: none; }
	.bib-opac--fisa.are-cos .bib-cos__panou { position: static; width: 100%; max-height: calc(100vh - 120px); overflow: auto; box-shadow: 0 10px 34px rgba(0,0,0,.12); }
}
.bib-confirmare { max-width: 560px; margin: 2.5rem auto; text-align: center; padding: 2rem 1.5rem; background: var(--bib-surface, #fff); border: 1px solid rgba(0,0,0,.08); border-radius: var(--bib-radius, 10px); }
.bib-confirmare__icon { width: 52px; height: 52px; margin: 0 auto 1rem; border-radius: 50%; background: rgba(47,125,50,.12); color: #1a7a2e; font-size: 1.6rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.bib-confirmare__titlu { margin: 0 0 1rem; }
.bib-confirmare__lista { list-style: none; margin: 0 0 1rem; padding: 0; }
.bib-confirmare__lista li { padding: .45em 0; border-bottom: 1px solid rgba(0,0,0,.06); font-weight: 600; }
.bib-confirmare__lista li:last-child { border-bottom: 0; }
.bib-confirmare__detalii { margin: 0 0 .6rem; }
.bib-confirmare__nota { color: #555; font-size: .92rem; margin: 0 0 1.4rem; }
.bib-carte__pill.bib-badge--regim-1, .bib-carte__pill.bib-badge--regim-2, .bib-carte__pill.bib-badge--regim-3, .bib-carte__pill.bib-badge--regim-4 { font-weight: 600; }

.bib-empty { padding: 2em; text-align: center; background: var(--bib-surface, #f7f9fc); border-radius: var(--bib-radius, 8px); }
.bib-empty__chips { display: flex; flex-wrap: wrap; gap: .5em; justify-content: center; margin-top: 1em; }
.bib-hint { color: var(--bib-muted, #666); }
/* --- Vitrina de domenii: lista (implicit) si grid (comutabil) --- */
.bib-dom__bara { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.bib-dom__titlu { font-family: var(--font-serif, Georgia, serif); color: #0a2440; font-size: 1.2rem; }
.bib-dom__vederi { display: inline-flex; border: 1px solid #e2dccc; border-radius: 5px; overflow: hidden; }
.bib-dom__v { background: transparent; border: 0; padding: 5px 14px; font: inherit; font-size: .82rem; color: #5a6675; cursor: pointer; }
.bib-dom__v:hover { background: #f2ecdf; }
.bib-dom__v.is-activ { background: #0a2440; color: #fff; }
.bib-dom__item { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; gap: 14px; align-items: baseline;
	padding: 11px 8px; border-top: 1px solid #ece5d6; text-decoration: none; color: inherit; }
.bib-dom__item:last-child { border-bottom: 1px solid #ece5d6; }
.bib-dom__item:hover, .bib-dom__item:focus-visible { background: #f2ecdf; }
.bib-dom__nr { font-family: var(--font-serif, Georgia, serif); font-variant-numeric: oldstyle-nums; font-size: .82rem; color: #b08a4e; }
.bib-dom__nume { display: block; font-family: var(--font-serif, Georgia, serif); font-size: 1.06rem; color: #0a2440; }
.bib-dom__subs { display: block; margin-top: 2px; font-size: .82rem; color: #8a8578; }
.bib-dom__cant { white-space: nowrap; font-size: .82rem; color: #5a6675; }
.bib-dom__cant b { font-family: var(--font-serif, Georgia, serif); font-variant-numeric: oldstyle-nums; font-size: 1.02rem; color: #0a2440; }
.bib-dom__cant i { font-style: normal; color: #a86a2f; margin-left: 5px; }
/* vederea grid: acelasi markup, alta asezare */
.bib-dom.is-grid .bib-dom__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
/* Card = coloana flexibila pe toata inaltimea randului, ca sa pot impinge cifra
   la baza cu margin-top:auto. Fara asta, cifra sta imediat sub subdomenii si
   fiecare card o are la alta inaltime, ceea ce face grila sa para nealiniata. */
.bib-dom.is-grid .bib-dom__item { display: flex; flex-direction: column; height: 100%;
	background: #fff; border: 1px solid #ece5d6; border-radius: 7px;
	padding: 16px 18px 14px; transition: transform .15s ease, box-shadow .15s ease; }
.bib-dom.is-grid .bib-dom__nume { font-size: 1.26rem; line-height: 1.25; }
.bib-dom.is-grid .bib-dom__subs { margin-top: 5px; }
.bib-dom.is-grid .bib-dom__item:hover, .bib-dom.is-grid .bib-dom__item:focus-visible {
	background: #fff; transform: translateY(-3px); box-shadow: 0 12px 26px rgba(10,36,64,.12); }
.bib-dom.is-grid .bib-dom__nr { display: none; }
.bib-dom.is-grid .bib-dom__nume::before { content: ""; display: inline-block; width: 9px; height: 9px;
	border-radius: 2px; background: var(--cop); margin-right: 7px; vertical-align: baseline; }
/* Subsolul cardului: cifra ancorata stanga, sageata impinsa la marginea dreapta. */
/* width:100% e obligatoriu: .bib-dom__cant e un <span>, iar fara latime explicita
   se intinde doar cat continutul, deci linia de sus iese scurta si `space-between`
   n-are pe ce sa distribuie. Verificat in browser. */
.bib-dom.is-grid .bib-dom__cant { display: flex; align-items: baseline; justify-content: space-between;
	gap: .6em; width: 100%; margin-top: auto; padding-top: 8px; border-top: 1px solid #f0ebe0; font-size: .88rem; }
.bib-dom.is-grid .bib-dom__cant b { font-size: 1.16rem; }
.bib-dom.is-grid .bib-dom__cant i { margin-left: 0; }
@media (prefers-reduced-motion: reduce) { .bib-dom.is-grid .bib-dom__item { transition: none; } .bib-dom.is-grid .bib-dom__item:hover { transform: none; } }

.bib-start { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .7em; }
.bib-start__item { display: flex; flex-direction: column; gap: .15em; padding: .8em 1em;
	background: var(--bib-surface, #f7f9fc); border: 1px solid var(--bib-border, #e2e2e2);
	border-left: 3px solid var(--bib-primary, #1d3557); border-radius: var(--bib-radius, 6px);
	text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.bib-start__item:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(10,36,64,.1);
	border-left-color: var(--bib-accent, #a86a2f); }
.bib-start__item span { font-weight: 600; color: var(--bib-primary, #1d3557); text-transform: capitalize; }
.bib-start__item small { color: var(--bib-muted, #777); }

/* ---- HUB: colectiile ca coperti + rail viu (spec HANDOVER-2026-07-17) ---- */
.bib-hub { display: grid; grid-template-columns: minmax(0,1fr) 232px; gap: 1.8em; align-items: start; }
.bib-hub .bib-start { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 24px 20px; }

/* Coperta Anticariat (mockup Claude Design, portat): panza tesuta din 3 straturi
   de gradient, muchia cotorului in al 4-lea, lumina se MUTA la hover prin
   background-position (stratul 1 e dimensionat 230%). Umbre calde, de arama. */
.bib-cop { position: relative; display: flex; flex-direction: column; aspect-ratio: 2/3;
	padding: 20px 16px 17px 27px; border-radius: 3px 8px 8px 3px; text-decoration: none; color: #f3ede2;
	background-color: var(--cop, #14406b);
	background-image:
		linear-gradient(115deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 46%),
		repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, rgba(0,0,0,.025) 1px 2px),
		repeating-linear-gradient(90deg, rgba(0,0,0,.02) 0 1px, transparent 1px 3px),
		linear-gradient(to right, rgba(0,0,0,.30) 0, rgba(0,0,0,.14) 7px, rgba(255,255,255,.20) 9px, rgba(255,255,255,.06) 12px, rgba(0,0,0,0) 18px);
	background-size: 230% 100%, auto, auto, auto; background-position: 0% 0, 0 0, 0 0, 0 0;
	box-shadow: 10px 14px 26px rgba(143,86,38,.22), 3px 5px 10px rgba(143,86,38,.15),
		inset -1px 0 0 rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.14);
	transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1), background-position .5s cubic-bezier(.16,1,.3,1);
	animation: bibCopIn .55s cubic-bezier(.16,1,.3,1) both; }
.bib-cop::before { content: ""; position: absolute; inset: 9px 11px 9px 18px;
	border: 1px solid rgba(243,237,226,.25); border-radius: 2px 5px 5px 2px; pointer-events: none; }
.bib-cop__titlu { position: relative; font-family: var(--font-serif, Georgia, serif); font-weight: 700;
	font-size: 1.08rem; line-height: 1.22; text-transform: capitalize; text-shadow: 0 1px 1px rgba(0,0,0,.45); }
.bib-cop__titlu em { font-style: italic; font-weight: 400; font-size: .72em; opacity: .85; }
.bib-cop__jos { position: relative; margin-top: auto; display: block; }
.bib-cop__jos i { display: block; width: 34px; height: 2px; margin-bottom: 10px;
	background: linear-gradient(90deg, #d9a678, rgba(217,166,120,.3)); }
.bib-cop__jos b { display: block; font-family: var(--font-serif, Georgia, serif); font-variant-numeric: oldstyle-nums;
	font-weight: 600; font-size: 1.35rem; color: rgba(243,237,226,.96); text-shadow: 0 1px 1px rgba(0,0,0,.4); }
.bib-cop__jos small { display: block; font-size: 10px; font-weight: 600; letter-spacing: .18em;
	text-transform: uppercase; color: rgba(243,237,226,.62); margin-top: 3px; }
.bib-cop--mare { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; padding: 32px 26px 26px 44px; }
.bib-cop--mare::before { inset: 13px 15px 13px 26px; }
.bib-cop--mare .bib-cop__titlu { font-size: 1.9rem; }
.bib-cop--mare .bib-cop__jos b { font-size: 2rem; }
.bib-cop:hover, .bib-cop:focus-visible { transform: translateY(-7px);
	box-shadow: 16px 26px 44px rgba(143,86,38,.28), 5px 9px 16px rgba(143,86,38,.17),
		inset -1px 0 0 rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.14);
	background-position: 60% 0, 0 0, 0 0, 0 0; }
@keyframes bibCopIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.bib-cop { animation: none; transition: none; }
	.bib-cop:hover, .bib-cop:focus-visible { transform: none; background-position: 0% 0, 0 0, 0 0, 0 0; }
}
/* Railul TACE: fara carduri albe care concureaza cu copertile; hairline-uri si atat. */
.bib-rail { border-left: 1px solid rgba(10,36,64,.1); padding-left: 1.4em; }
.bib-rail__bloc { background: transparent; border: 0; border-radius: 0; padding: 0 0 1.2em; margin-bottom: 1.2em; }
.bib-rail__bloc h3 { margin: 0 0 .5em; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bib-accent, #a86a2f); }
.bib-rail__bloc ul { margin: 0; padding: 0; list-style: none; }
.bib-rail__bloc li { margin: 0; padding: .5em 0; font-size: .92rem; line-height: 1.35; border-bottom: 1px solid rgba(10,36,64,.1); }
.bib-rail__bloc li:last-child { border-bottom: 0; }
.bib-rail__bloc li a { color: var(--bib-primary, #1d3557); text-decoration: none; }
.bib-rail__bloc li a:hover { color: var(--bib-accent, #a86a2f); text-decoration: underline; }
.bib-rail__cifre { background: #f3ede2; border: 0; border-radius: 4px; padding: 1.1em 1.2em; }
.bib-rail__cifre p { margin: .2em 0 .85em; }
.bib-rail__cifre b { display: block; font-family: var(--font-serif, Georgia, serif); font-size: 1.5rem; color: var(--bib-primary, #0a2440); }
.bib-rail__cifre span { font-size: .85rem; color: #6b5942; }
@media (max-width: 1100px) { .bib-hub { grid-template-columns: 1fr; } }

/* ---- filtre rafinate: etichete tip eyebrow, focus pe accent, segmented control ---- */
.bib-side__camp { font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; font-weight: 600; }
/* Eticheta campului e uppercase cu tracking; CONTINUTUL controalelor nu trebuie sa
   mosteneasca asta. Combobox-ul (input + lista) intra si el aici, altfel optiunile
   apar cu majuscule si spatiate, adica tipatoare. */
.bib-side__camp select, .bib-side__ani input,
.bib-cb__inp, .bib-cb__lista, .bib-cb__opt, .bib-cb__gol { text-transform: none; letter-spacing: 0; font-weight: 400; }
.bib-side__camp select:focus-visible, .bib-side__ani input:focus-visible { outline: 2px solid var(--bib-accent, #a86a2f); outline-offset: 1px; }
.bib-seg { display: flex; border: 1px solid var(--bib-border, #ccc); border-radius: 999px; overflow: hidden; background: #fff; margin-top: .35em; }
.bib-seg label { flex: 1; margin: 0; position: relative; }
.bib-seg input { position: absolute; opacity: 0; pointer-events: none; }
.bib-seg span { display: block; text-align: center; padding: .5em .2em; font-size: .72rem; cursor: pointer;
	color: var(--bib-muted, #555); text-transform: none; letter-spacing: 0; }
.bib-seg input:checked + span { background: var(--bib-primary, #0a2440); color: #fff; font-weight: 600; }
.bib-seg input:focus-visible + span { outline: 2px solid var(--bib-accent, #a86a2f); outline-offset: -2px; }

/* === Paginare premium (rezultate Catalog) ===
   Doua etaje: intervalul „25-48 din 5.969” sus, navigarea jos. Marginile („Înapoi”
   / „Înainte”) raman mereu prezente - dezactivate, nu ascunse - ca randul sa nu-si
   schimbe latimea la fiecare pas. */
.bib-pager { margin-top: 2em; display: flex; flex-direction: column; align-items: center; gap: .7em; }
.bib-pager__info { margin: 0; font-size: .9rem; color: var(--bib-muted, #6b7280); letter-spacing: .01em; }
.bib-pager__info strong { color: var(--bib-primary, #1d3557); font-variant-numeric: tabular-nums; }

.bib-pager__nav { display: flex; align-items: center; gap: .5em; flex-wrap: wrap; justify-content: center; }
.bib-pager__pages { display: flex; align-items: center; gap: .3em; }

.bib-pager a, .bib-pager__cur, .bib-pager__edge {
	min-width: 2.4em; height: 2.4em; padding: 0 .55em;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: .95rem; font-variant-numeric: tabular-nums; border-radius: 8px;
	text-decoration: none; border: 1px solid rgba(29,53,87,.16);
	color: var(--bib-primary, #1d3557); background: #fff;
	transition: border-color .2s ease, background-color .2s ease, color .2s ease, transform .12s ease; }
.bib-pager a:hover { border-color: var(--bib-primary, #1d3557); background: rgba(29,53,87,.05); transform: translateY(-1px); }
.bib-pager a:active { transform: translateY(0); }

.bib-pager__cur { background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff);
	border-color: transparent; font-weight: 600; box-shadow: 0 3px 10px -4px rgba(29,53,87,.5); }

.bib-pager__edge { gap: .4em; padding: 0 .9em; font-weight: 500; white-space: nowrap; }
.bib-pager__edge.is-off { opacity: .38; cursor: default; background: #f6f6f4; border-style: dashed; }

.bib-pager__dots { padding: 0 .25em; color: var(--bib-muted, #9ca3af); letter-spacing: .05em; }

@media (max-width: 560px) {
	/* pe telefon, numerele intermediare ocupa prea mult; ramane esentialul:
	   „Înapoi”, pagina curenta, „Înainte”, plus intervalul de sus. */
	.bib-pager__pages a, .bib-pager__pages .bib-pager__dots { display: none; }
	.bib-pager__pages .bib-pager__cur { display: inline-flex; }
}
@media (prefers-reduced-motion: reduce) {
	.bib-pager a { transition: none; }
	.bib-pager a:hover { transform: none; }
}

.bib-back { text-decoration: none; }

/* fișa cărții */
.bib-carte { background: #fff; border: 1px solid var(--bib-border, #e4e4e4);
	border-radius: 12px; box-shadow: 0 3px 14px rgba(10,36,64,.06); overflow: hidden; margin-bottom: 1.6em; }
.bib-carte__head { padding: 1.4em 1.5em 1.1em; border-bottom: 1px solid var(--bib-border, #eee);
	background: linear-gradient(180deg, var(--bib-surface, #f8fafc), #fff); }
.bib-carte__titlu { margin: 0 0 .25em; font-size: 1.55rem; line-height: 1.25; }
.bib-carte__autori { margin: 0 0 .7em; color: var(--bib-muted, #555); font-size: 1.02rem; }
.bib-carte__pills { display: flex; flex-wrap: wrap; gap: .4em; }
.bib-carte__pill { padding: .2em .75em; border-radius: 999px; font-size: .8rem; font-weight: 600;
	background: rgba(31,84,137,.08); color: var(--bib-primary, #1d3557); }
.bib-carte__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: .8em 1.6em; margin: 0; padding: 1.1em 1.5em; }
.bib-carte__meta dt { font-size: .75rem; font-weight: 600; text-transform: uppercase;
	letter-spacing: .06em; color: var(--bib-muted, #888); margin-bottom: .15em; }
.bib-carte__meta dd { margin: 0; }

/* exemplarele - rânduri grupate */
.bib-sectiune { display: flex; align-items: center; gap: .5em; margin: 1.4em 0 .6em; }
.bib-sectiune__nr { font-size: .95rem; font-weight: 700; padding: .15em .7em; border-radius: 999px;
	background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff); }
.bib-exemplare { display: flex; flex-direction: column; gap: .4em; }
.bib-ex { display: flex; align-items: center; gap: 1em; flex-wrap: wrap;
	padding: .7em 1em; background: #fff; border: 1px solid var(--bib-border, #e6e6e6);
	border-radius: var(--bib-radius, 8px); }
.bib-ex__cota { font-family: ui-monospace, monospace; font-size: .85rem; font-weight: 600;
	padding: .15em .6em; border-radius: 6px; background: var(--bib-surface, #f4f6f9); }
.bib-ex__stare { font-size: .78rem; font-weight: 600; padding: .2em .7em; border-radius: 999px; }
.bib-ex__stare--ok { background: rgba(47,125,50,.1); color: var(--bib-success, #1a7a2e); }
.bib-ex__stare--warn { background: rgba(217,163,0,.14); color: #8a6a00; }
.bib-ex__stare--no { background: rgba(192,57,43,.1); color: var(--bib-danger, #a33); }
.bib-ex__stare--alt { background: rgba(0,0,0,.05); color: var(--bib-muted, #666); }
.bib-ex__regim { font-size: .88rem; color: var(--bib-muted, #555); }
.bib-ex__detalii { font-size: .85rem; color: var(--bib-muted, #888); margin-left: auto; }
.bib-ex__nr { font-size: 1rem; font-weight: 700; padding: .1em .6em; border-radius: 999px;
	background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff); }

/* filtrul de disponibilitate */
.bib-check { display: flex; align-items: center; gap: .5em; margin: .2em 0 .9em;
	font-size: .88rem; color: var(--bib-muted, #555); cursor: pointer; }
.bib-check input { width: 1.05em; height: 1.05em; accent-color: var(--bib-primary, #1d3557); }

/* rezervarea */
.bib-cerere { margin-top: 2em; padding: 1.4em 1.5em; background: #fff;
	border: 1px solid var(--bib-border, #e4e4e4); border-radius: 12px;
	box-shadow: 0 3px 14px rgba(10,36,64,.06); }
.bib-cerere__titlu { margin: 0 0 .3em; font-size: 1.25rem; }
.bib-cerere__tipuri { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: .7em; margin: 1em 0; }
.bib-tip input { position: absolute; opacity: 0; }
.bib-tip__card { display: block; padding: .9em 1.1em; border: 1.5px solid var(--bib-border, #ddd);
	border-radius: var(--bib-radius, 8px); cursor: pointer;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.bib-tip__card strong { display: block; margin-bottom: .15em; color: var(--bib-primary, #1d3557); }
.bib-tip__card small { color: var(--bib-muted, #666); }
.bib-tip input:checked + .bib-tip__card { border-color: var(--bib-primary, #1d3557);
	background: var(--bib-surface, #f5f8fc); box-shadow: 0 0 0 1px var(--bib-primary, #1d3557) inset; }
.bib-tip input:focus-visible + .bib-tip__card { outline: 2px solid var(--bib-primary, #1d3557); outline-offset: 2px; }

/* lista de cereri (coșul) */
.bib-cerere__actiuni { display: flex; gap: .7em; flex-wrap: wrap; }
.bib-btn--secundar { background: transparent; color: var(--bib-primary, #1d3557);
	border: 1.5px solid var(--bib-primary, #1d3557); }
.bib-cos { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 300; }
.bib-cos__fab { display: flex; align-items: center; gap: .5em; cursor: pointer;
	padding: .7em 1.2em; border: 0; border-radius: 999px;
	background: var(--bib-primary, #1d3557); color: var(--bib-on-primary, #fff);
	font-size: .95rem; font-weight: 600; box-shadow: 0 6px 20px rgba(10,36,64,.3);
	transition: transform .15s ease; }
.bib-cos__fab:hover { transform: translateY(-2px); }
.bib-cos__nr { background: #fff; color: var(--bib-primary, #1d3557);
	border-radius: 999px; padding: 0 .55em; font-weight: 700; }
.bib-cos__panou { position: absolute; right: 0; bottom: calc(100% + .8rem);
	width: min(380px, calc(100vw - 2.4rem));
	background: #fff; border: 1px solid var(--bib-border, #ddd); border-radius: 12px;
	box-shadow: 0 12px 40px rgba(10,36,64,.2); padding: 1.1em;
	max-height: 70vh; overflow-y: auto; }
.bib-cos__panou h3 { margin: 0 0 .7em; font-size: 1.05rem; }
.bib-cos__lista { list-style: none; margin: 0 0 1em; padding: 0; }
.bib-cos__lista li { display: grid; grid-template-columns: 1fr auto auto; gap: .5em;
	align-items: center; padding: .45em 0; border-bottom: 1px solid var(--bib-border, #eee); }
.bib-cos__titlu { font-size: .88rem; font-weight: 600; line-height: 1.3; }
.bib-cos__lista select { font-size: .8rem; padding: .25em .3em;
	border: 1px solid var(--bib-border, #ccc); border-radius: 6px; }
.bib-cos__sterge { border: 0; background: transparent; color: var(--bib-danger, #a33);
	font-size: 1.2rem; cursor: pointer; line-height: 1; padding: .1em .3em; }
.bib-cos__campuri { display: grid; gap: .6em; margin-bottom: .8em; }
.bib-cos__campuri label { display: flex; flex-direction: column; gap: .25em;
	font-size: .82rem; color: var(--bib-muted, #555); }
.bib-cos__campuri input { padding: .45em .55em; border: 1px solid var(--bib-border, #ccc);
	border-radius: 6px; font-size: .92rem; }
.bib-cerere__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8em 1.2em; margin-bottom: 1em; }
.bib-cerere__grid label { display: flex; flex-direction: column; gap: .3em; font-size: .88rem; color: var(--bib-muted, #555); }
.bib-cerere__grid input { padding: .5em .6em; border: 1px solid var(--bib-border, #ccc); border-radius: var(--bib-radius, 6px); font-size: .95rem; }
.bib-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.bib-notice { margin-top: 1.5em; padding: .8em 1em; border-radius: var(--bib-radius, 6px); }
.bib-notice--ok { background: #eef7ee; color: var(--bib-success, #1a7a2e); border: 1px solid currentColor; }
.bib-notice--err { background: #fcf0f1; color: var(--bib-danger, #a33); border: 1px solid currentColor; }

@media (max-width: 820px) {
	.bib-layout { grid-template-columns: 1fr; }
	.bib-side { position: static; }
	.bib-search { flex-direction: column; border-radius: var(--bib-radius, 10px); }
}
