/*
 * Repositorio Clínico — base structural styles.
 * Low specificity, no !important: the active theme always wins.
 * Loaded in BOTH design modes so the layout never looks broken.
 */

.rc-app { --rc-gap: 1rem; font: inherit; color: inherit; }
.rc-app *,
.rc-app *::before,
.rc-app *::after { box-sizing: border-box; }

/* Hide the no-JS fallback once the app has initialised. */
.rc-app.rc-ready .rc-fallback { display: none; }
.rc-fallback-list { list-style: none; margin: 0; padding: 0; }
.rc-fallback-list li { margin: 0 0 .75rem; }

/* Toolbar */
.rc-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rc-gap);
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--rc-gap);
}
.rc-search { position: relative; flex: 1 1 260px; }
.rc-search-input { width: 100%; font: inherit; padding: .5rem .75rem; }
.rc-controls { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.rc-controls select { font: inherit; padding: .4rem .5rem; }
.rc-view-toggle { display: inline-flex; }
.rc-view-btn { font: inherit; cursor: pointer; padding: .35rem .6rem; line-height: 1; }

/* Suggestions dropdown */
.rc-suggest {
	position: absolute;
	z-index: 30;
	left: 0; right: 0;
	margin: .25rem 0 0;
	padding: 0;
	list-style: none;
	max-height: 320px;
	overflow: auto;
}
.rc-suggest[hidden] { display: none; }
.rc-suggest-item { padding: .5rem .75rem; cursor: pointer; }
.rc-suggest-tag { margin-right: .35rem; }

/* Body layout */
.rc-body { display: grid; grid-template-columns: 240px 1fr; gap: calc(var(--rc-gap) * 1.5); align-items: start; }
.rc-filters-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.rc-clear { font: inherit; cursor: pointer; background: none; border: 0; padding: 0; text-decoration: underline; }
.rc-facet { margin-bottom: 1.25rem; }
.rc-facet-title { margin: 0 0 .4rem; font-size: .95em; }
.rc-facet-list { list-style: none; margin: 0; padding: 0; }
.rc-facet-item label { display: flex; align-items: center; gap: .4rem; padding: .15rem 0; cursor: pointer; }
.rc-facet-label { flex: 1; }
.rc-facet-count { opacity: .6; font-size: .85em; }
.rc-facet-empty { opacity: .45; }

.rc-filters-toggle { display: none; font: inherit; cursor: pointer; margin-bottom: .75rem; padding: .45rem .75rem; }

.rc-count { margin: 0 0 .75rem; opacity: .8; font-size: .9em; }

/* Results */
.rc-results.rc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--rc-gap); }
.rc-results.rc-list { display: flex; flex-direction: column; gap: .6rem; }
.rc-card { display: flex; flex-direction: column; gap: .5rem; padding: 1rem; }
.rc-card-title { margin: 0; font-size: 1.05em; line-height: 1.3; }
.rc-card-desc { margin: 0; font-size: .9em; }
.rc-card-head { display: flex; flex-wrap: wrap; gap: .35rem; }
.rc-card-tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.rc-card-meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .82em; opacity: .8; margin-top: auto; }
.rc-card-foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.rc-badge, .rc-tag, .rc-acceso { display: inline-block; font-size: .75em; padding: .12rem .5rem; line-height: 1.5; }
.rc-btn { font: inherit; text-decoration: none; display: inline-block; }

/* List view tweak */
.rc-results.rc-list .rc-card { flex-direction: row; flex-wrap: wrap; align-items: baseline; }
.rc-results.rc-list .rc-card-title { flex: 1 1 100%; }

/* Pager */
.rc-pager { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: center; margin-top: 1.5rem; }
.rc-page { font: inherit; cursor: pointer; padding: .35rem .6rem; }
.rc-page[disabled] { cursor: default; opacity: .5; }
.rc-ellipsis { padding: .35rem .3rem; }

.rc-empty { padding: 2rem 0; text-align: center; opacity: .8; }

/* Gating (auto-declaración de profesional sanitario) */
.rc-gate { display: flex; justify-content: center; padding: 2rem 1rem; }
.rc-gate-panel { max-width: 480px; width: 100%; text-align: center; padding: 1.5rem; }
.rc-gate-icon { font-size: 2rem; line-height: 1; margin-bottom: .5rem; }
.rc-gate-title { margin: 0 0 .5rem; }
.rc-gate-text { margin: 0 0 1rem; font-size: .95em; }
.rc-gate-actions { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; }
.rc-gate-btn { font: inherit; cursor: pointer; padding: .55rem 1rem; }
.rc-gate-declined { margin: 0 0 1rem; }

/* Responsive */
@media (max-width: 782px) {
	.rc-body { grid-template-columns: 1fr; }
	.rc-filters {
		display: none;
		grid-row: 2;
	}
	.rc-filters.is-open { display: block; }
	.rc-filters-toggle { display: inline-block; }
}
