/* =========================================================
   Praxis — Configuración del Centro
   Reutiliza las variables --pp-* definidas por el tema Praxis Portal.
   ========================================================= */

.ppc-root { width: 100%; }

.ppc-view { display: none; }
.ppc-view.is-active { display: block; }

/* ---------- Wizard ---------- */

.ppc-intro h2 { margin: 0 0 6px; font-size: 20px; }

.ppc-section {
	background: var(--pp-bg-soft);
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius);
	padding: 22px 24px;
	margin: 18px 0;
}

.ppc-section h3 {
	margin: 0 0 16px;
	font-size: 15px;
}

.ppc-nivel-group {
	border: none;
	margin: 0 0 18px;
	padding: 0;
}
.ppc-nivel-group:last-child { margin-bottom: 0; }

.ppc-nivel-group legend {
	width: 100%;
	padding: 0 0 8px;
	border-bottom: 1px solid var(--pp-border);
	margin-bottom: 10px;
}

.ppc-check-all {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
}

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

.ppc-check {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	cursor: pointer;
}

.ppc-check input,
.ppc-check-all input {
	width: 16px;
	height: 16px;
	accent-color: var(--pp-accent);
	flex-shrink: 0;
}

.ppc-logo-row {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.ppc-logo-preview {
	width: 72px;
	height: 72px;
	border-radius: 14px;
	background: var(--pp-bg);
	border: 1px solid var(--pp-border);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	flex-shrink: 0;
}
.ppc-logo-preview img { width: 100%; height: 100%; object-fit: cover; }
.ppc-logo-placeholder { font-size: 28px; opacity: .6; }

.ppc-logo-field { flex: 1; min-width: 200px; }
.ppc-logo-field input[type="file"] {
	color: var(--pp-text-dim);
	font-size: 13px;
}

/* ---------- Panel central: ya no lleva sidebar anidada, ocupa
   el ancho normal del contenido (los niveles ahora se eligen desde
   la barra lateral real del tema, ver más abajo "Barra lateral"). ---------- */

.ppc-panel {
	width: 100%;
}

.ppc-nivel-panel { display: none; }
.ppc-nivel-panel.is-active { display: block; }

.ppc-nivel-panel-header { margin-bottom: 18px; }
.ppc-nivel-panel-header h2 { margin: 0; font-size: 18px; }

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

.ppc-resumen-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 14px;
	background: var(--pp-bg-soft);
	border: 1px solid var(--pp-border);
	border-radius: 10px;
	font-size: 14px;
}
.ppc-resumen-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--pp-text-dim);
}

/* ---------- Barra lateral real del tema: tarjeta del centro +
   lista de niveles (praxis_sidebar_centro). Los botones de nivel
   reutilizan la clase .pp-nav-item del propio tema (mismo look que
   el resto de la navegación) más .ppc-nivel-btn para poder
   seleccionarlos desde JS. ---------- */

.ppc-side-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 8px;
	padding: 10px 6px 16px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--pp-border);
}

.ppc-side-logo {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--pp-bg);
	border: 1px solid var(--pp-border);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.ppc-side-logo img { width: 100%; height: 100%; object-fit: cover; }

.ppc-side-nombre {
	font-weight: 700;
	font-size: 14px;
	line-height: 1.3;
}

.ppc-side-edit {
	background: none;
	border: 1px solid var(--pp-border);
	color: var(--pp-text-dim);
	font-size: 12px;
	padding: 6px 10px;
	border-radius: 7px;
	cursor: pointer;
}
.ppc-side-edit:hover { color: var(--pp-text); border-color: var(--pp-accent); }

/* ---------- Malla curricular ---------- */

.ppc-malla { margin-top: 4px; }

.ppc-malla-title {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--pp-text-dim);
	margin: 0 0 12px;
}

.ppc-malla-section { margin-bottom: 20px; }
.ppc-malla-section h4 {
	font-size: 14px;
	margin: 0 0 10px;
}

.ppc-malla-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
	margin-bottom: 4px;
}
.ppc-malla-table th,
.ppc-malla-table td {
	text-align: left;
	padding: 9px 12px;
	border-bottom: 1px solid var(--pp-border);
}
.ppc-malla-table th {
	color: var(--pp-text-dim);
	font-weight: 600;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.ppc-malla-table td:first-child {
	color: var(--pp-text-dim);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
.ppc-malla-table tbody tr:last-child td { border-bottom: none; }

.ppc-malla-rama {
	background: var(--pp-bg);
	border: 1px solid var(--pp-border);
	border-radius: 10px;
	padding: 4px 14px;
	margin-bottom: 10px;
}
.ppc-malla-rama[open] { padding-bottom: 10px; }
.ppc-malla-rama summary {
	cursor: pointer;
	padding: 10px 0;
	font-weight: 600;
	font-size: 13.5px;
	list-style: none;
}
.ppc-malla-rama summary::-webkit-details-marker { display: none; }
.ppc-malla-rama summary::before {
	content: '▸';
	display: inline-block;
	margin-right: 8px;
	color: var(--pp-accent);
	transition: transform .15s ease;
}
.ppc-malla-rama[open] summary::before { transform: rotate(90deg); }
.ppc-malla-rama .ppc-malla-table { margin-top: 4px; }

/* ---------- Responsive ---------- */

@media (max-width: 760px) {
	.ppc-nivel-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
