/* estilos base */
body {
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
	margin: 0;
	padding: 0;
	background: #0f172a;
	color: #e2e8f0;
}

header {
	padding: 16px 24px;
	background: #111827;
	border-bottom: 1px solid #1f2937;
}

.container {
	padding: 24px;
	margin: 0 auto;
}

h1 {
	font-size: 20px;
	margin: 0;
}

.grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.card {
	background: #111827;
	border: 1px solid #1f2937;
	border-radius: 10px;
	padding: 16px;
}

.card h2 {
	font-size: 16px;
	margin: 0 0 8px;
	color: #f3f4f6;
}

.meta {
	font-size: 12px;
	color: #9ca3af;
	line-height: 1.6;
}

.status {
	margin-top: 12px;
}

.badge {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 999px;
	font-size: 12px;
}

.badge.ok {
	background: #064e3b;
	color: #a7f3d0;
}

.badge.err {
	background: #7f1d1d;
	color: #fecaca;
}

.truncate {
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

.footer {
	margin-top: 24px;
	font-size: 12px;
	color: #94a3b8;
	text-align: center;
}

a {
	color: #93c5fd;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

/* Reco page theme and components (restaurado) */
.reco-page {
	--bg: #ffffff;
	--text: #0f172a;
	--muted: #475569;
	--border: #cdcfd4;
	--surface: #ffffff;
	--surface-2: #f8fafc;
	--primary: #0ea5e9;
	--primary-600: #0284c7;
	--secondary: #22d3ee;
	--accent: #7c3aed;
	--accent-600: #6d28d9;
	--grad-start: #22d3ee;
	--grad-mid: #38bdf8;
	--grad-end: #7c3aed;
	--shadow: 0 10px 20px rgba(0, 0, 0, .06);
	--shadow-lg: 0 18px 36px rgba(0, 0, 0, .12);
	--card-w: 260px;
	background: var(--bg);
	color: var(--text);
	min-height: 100dvh;
}

.reco-page header {
	padding: 16px 24px;
	background: var(--surface);
	border-bottom: 2px solid var(--border);
	position: sticky;
	top: 0;
	z-index: 20;
}

.reco-page h1 {
	margin: 0;
	font-size: 20px;
}

.reco-page .section {
	margin-bottom: 32px;
}

.reco-page .section h2 {
	margin: 0 0 14px;
	font-size: clamp(18px, 1.2vw + 16px, 28px);
	font-weight: 800;
	letter-spacing: .2px;
	line-height: 1.2;
	background: linear-gradient(90deg, var(--grad-start), var(--grad-mid), var(--grad-end));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	position: relative;
}

.reco-page .section h2::after {
	content: "";
	display: block;
	height: 4px;
	width: 96px;
	margin-top: 8px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--grad-start), var(--grad-end));
}

.reco-page .container {
	max-width: 1240px;
}

.reco-page .reco-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 20px;
}

.reco-page .reco-card {
	background: var(--surface);
	border: 3px solid var(--border);
	border-radius: 14px;
	padding: 12px;
	display: flex;
	flex-direction: column;
	min-width: 240px;
	box-shadow: var(--shadow);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.reco-page .carousel .reco-card {
	flex: 0 0 var(--card-w);
	width: var(--card-w);
}

.reco-page .reco-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
	border-color: #d1d5db;
}

.reco-page .reco-img-wrap {
	width: 100%;
	aspect-ratio: 3/4;
	background: var(--surface-2);
	border: 2px solid var(--border);
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.reco-page .reco-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease, opacity .3s ease;
}

.reco-page .reco-img.lazy {
	opacity: 0.6;
}

.reco-page .reco-img.lazy.loaded {
	opacity: 1;
}

.reco-page .reco-card:hover .reco-img {
	transform: scale(1.05);
}

.reco-page .reco-title {
	margin-top: 10px;
	font-size: 16px;
	font-weight: 800;
	color: var(--text);
}

.reco-page .reco-sub {
	font-size: 13px;
	color: var(--muted);
}

.reco-page .reco-edition,
.reco-page .reco-author {
	margin-top: 6px;
	font-size: 12px;
	display: inline-block;
	background: var(--surface-2);
	color: var(--muted);
	border: 1px solid var(--border);
	border-radius: 999px;
	padding: 4px 10px;
}

.reco-page .reco-edition {
	color: var(--primary-600);
	border-color: rgba(2, 132, 199, .25);
}

.reco-page .reco-author {
	background: rgba(14, 165, 233, .10);
	color: var(--primary-600);
	border-color: rgba(2, 132, 199, .35);
}

.reco-page .reco-actions {
	margin-top: auto;
	padding-top: 10px;
}

.reco-page .btn {
	display: block;
	text-align: center;
	padding: 10px 12px;
	color: #ffffff;
	border-radius: 10px;
	text-decoration: none;
	font-size: 13px;
	box-shadow: var(--shadow);
	transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease;
	background: var(--primary);
	border: 1px solid var(--primary);
}

.reco-page .btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--shadow-lg);
	background: var(--primary-600);
	border-color: var(--primary-600);
}

.reco-page .btn:focus {
	outline: none;
	box-shadow: 0 0 0 4px rgba(14, 165, 233, .15);
}

/* Carousel */
.reco-page .carousel {
	position: relative;
}

.reco-page .carousel .viewport {
	overflow: hidden;
}

.reco-page .carousel .track {
	display: flex;
	gap: 16px;
	transition: transform 0.4s ease;
	will-change: transform;
}

.reco-page .carousel .nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: var(--text);
	width: 44px;
	height: 44px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	cursor: pointer;
	z-index: 10;
	box-shadow: var(--shadow);
	border: 1px solid transparent;
	background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, var(--grad-start), var(--grad-end)) border-box;
}

.reco-page .carousel .nav:hover {
	background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(135deg, var(--grad-start), var(--grad-end)) border-box;
}

.reco-page .carousel .prev {
	left: 4px;
}

.reco-page .carousel .next {
	right: 4px;
}

.reco-page .carousel svg {
	width: 20px;
	height: 20px;
}

/* Borrower banner */
.reco-page .borrower-card {
	grid-column: 1 / -1;
	flex-direction: row;
	align-items: center;
	padding: 16px 20px;
	min-height: 88px;
}

.reco-page .reco-card.borrower-card {
	border: 2px solid transparent;
	background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, var(--grad-start), var(--grad-end)) border-box;
	box-shadow: var(--shadow-lg);
}

.reco-page .reco-card.borrower-card .borrower-name {
	font-weight: 800;
	font-size: 20px;
}

.reco-page .reco-card.borrower-card .borrower-tag {
	border-color: rgba(2, 132, 199, .25);
}

.reco-page .history-section .reco-grid {
	gap: 20px;
}

.reco-page .reco-subtitle {
	margin: 10px 0 12px;
	font-size: 14px;
	font-weight: 800;
	color: var(--text);
	position: relative;
	padding-left: 10px;
}

.reco-page .reco-subtitle::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 6px;
	height: 18px;
	border-radius: 3px;
	background: linear-gradient(180deg, var(--grad-start), var(--grad-end));
}

/* Dewey Category Tags */
.reco-page .dewey-tag {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	margin-bottom: 8px;
	letter-spacing: 0.2px;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Colores por categoría Dewey */
.reco-page .dewey-0 { background: #dbeafe; color: #1e40af; } /* Azul - Computación */
.reco-page .dewey-1 { background: #fae8ff; color: #86198f; } /* Magenta - Filosofía */
.reco-page .dewey-2 { background: #fef3c7; color: #92400e; } /* Ámbar - Religión */
.reco-page .dewey-3 { background: #dcfce7; color: #166534; } /* Verde - Sociales */
.reco-page .dewey-4 { background: #fee2e2; color: #991b1b; } /* Rojo - Lenguas */
.reco-page .dewey-5 { background: #e0e7ff; color: #3730a3; } /* Índigo - Básicas */
.reco-page .dewey-6 { background: #ffedd5; color: #9a3412; } /* Naranja - Tecnología */
.reco-page .dewey-7 { background: #f5d0fe; color: #a21caf; } /* Fucsia - Artes */
.reco-page .dewey-8 { background: #cffafe; color: #0e7490; } /* Cyan - Literatura */
.reco-page .dewey-9 { background: #fecdd3; color: #be123c; } /* Rosa - Historia */

@media (max-width: 640px) {
	.reco-page {
		--card-w: 220px;
	}

	.reco-page .container {
		padding: 16px;
	}

	.reco-page .carousel .nav {
		width: 40px;
		height: 40px;
	}

	.reco-page .carousel svg {
		width: 18px;
		height: 18px;
	}
}