/* Public UI only: never loaded by the editor. Light colors remain in theme.json.
 * Keep dark tokens screen-only so printed documents retain their light palette. */
.mpf-color-scheme-item[hidden] { display:none!important; }
.mpf-theme-logo { display:block; }
.mpf-theme-logo > img.mpf-theme-logo-dark { display:none; }
.mpf-sde-brand .mpf-theme-logo { width:210px; max-width:100%; }
.mpf-sde-brand img { width:100%; height:auto; }
.mpf-sde-mobile-menu-brand .mpf-theme-logo { width:200px; max-width:100%; }
.mpf-sde-footer-brand .mpf-theme-logo { width:190px; max-width:100%; }
.mpf-sde-footer-brand { mix-blend-mode:normal; }
.mpf-sde-site-footer { padding-top:clamp(1.75rem,4vw,4rem); padding-bottom:clamp(1.75rem,3vw,3rem); }
.mpf-sde-site-footer > .mpf-sde-footer-organizations { max-width:min(100%,1100px); }
.mpf-sde-site-footer > .mpf-sde-footer-row { margin-top:2rem; }
.mpf-sde-footer-logos a { min-height:56px; box-sizing:border-box; }
.mpf-sde-footer-logos .mpf-theme-logo { display:flex; align-items:center; justify-content:center; width:100%; }
.mpf-sde-footer-logos img { max-width:min(100%,155px); max-height:44px; filter:none; }
.mpf-sde-footer-logos .is-consejo img,.mpf-sde-footer-logos .is-mpf-caba img { max-height:34px; }
.mpf-sde-footer-logos .is-derechos-humanos img { max-height:44px; }
@media (max-width:800px) {
	.mpf-sde-brand { flex-basis:165px; }
	.mpf-sde-brand .mpf-theme-logo { width:165px; }
	.mpf-sde-footer-logos img { max-width:min(100%,125px); max-height:38px; }
	.mpf-sde-footer-logos .is-consejo img,.mpf-sde-footer-logos .is-mpf-caba img { max-height:30px; }
	.mpf-sde-footer-logos .is-derechos-humanos img { max-height:38px; }
}
.mpf-color-scheme-toggle {
	display:inline-flex; align-items:center; justify-content:center; flex:none;
	width:44px; height:44px; min-height:44px; padding:10px; box-sizing:border-box;
	border:1px solid var(--wp--preset--color--border); border-radius:50%;
	background:transparent; color:inherit; cursor:pointer;
}
.mpf-color-scheme-toggle:hover { background:var(--wp--preset--color--surface); }
.mpf-color-scheme-icon { width:20px; height:20px; flex:none; background:currentColor; mask:url('vendor/lucide/icons/moon.svg') center/contain no-repeat; }
.mpf-color-scheme-toggle[aria-pressed=true] { color:var(--wp--preset--color--link); border-color:var(--wp--preset--color--link); }
.mpf-color-scheme-toggle[aria-pressed=true] .mpf-color-scheme-icon { mask-image:url('vendor/lucide/icons/sun.svg'); }
/* Reserve room for the added preference at the desktop navigation breakpoint. */
@media (min-width:1051px) and (max-width:1250px) {
	.mpf-sde-site-header > .mpf-sde-header-row,.mpf-sde-header-actions { gap:16px; }
	.mpf-sde-brand img { width:200px; height:auto; }
	.mpf-sde-brand .mpf-theme-logo { width:180px; }
	.mpf-sde-brand .mpf-theme-logo img { width:100%; }
	.mpf-sde-primary-navigation { font-size:.875rem; }
	.mpf-sde-primary-navigation .wp-block-navigation__container { gap:12px; }
}
@media (max-width:1050px) {
	.mpf-sde-primary-navigation .mpf-color-scheme-item { width:auto; align-self:flex-start; margin-top:12px; padding:0; border:0; }
}
@media screen {
	html[data-mpf-color-scheme=light] { color-scheme:light; }
	html[data-mpf-color-scheme=dark] {
		color-scheme:dark;
		--wp--preset--color--canvas:#161a1e;
		--wp--preset--color--surface:#20262c;
		--wp--preset--color--ink:#eeece8;
		--wp--preset--color--muted:#b7b8b9;
		--wp--preset--color--border:#414951;
		--wp--preset--color--accent:#f0807a;
		--wp--preset--color--accent-dark:#f39791;
		--wp--preset--color--primary:#f0807a;
		--wp--preset--color--link:#99c8f2;
		--wp--preset--color--blue:#7daddd;
		--wp--preset--color--hero-blue:#99c8f2;
		--wp--preset--color--navy:#99c8f2;
		--wp--preset--color--navy-dark:#eeece8;
		--wp--preset--color--footer:#161a1e;
		--mpf-dark-tint:#293744;
		--mpf-dark-action:#245d8f;
		--mpf-dark-red-action:#af302f;
		--wp--custom--shadow--card:0 6px 24px rgb(0 0 0 / 18%);
		background:var(--wp--preset--color--canvas);
	}
	html[data-mpf-color-scheme=dark] body { background:var(--wp--preset--color--canvas); color:var(--wp--preset--color--ink); }
	/* Native Gutenberg background utilities carry !important in global styles. */
	html[data-mpf-color-scheme=dark] :is(.has-white-background-color,.has-ink-background-color,.has-navy-dark-background-color) { background-color:var(--wp--preset--color--surface)!important; }
	html[data-mpf-color-scheme=dark] :is(.has-blue-background-color,.has-link-background-color,.has-navy-background-color) { background-color:var(--mpf-dark-action)!important; }
	html[data-mpf-color-scheme=dark] :is(.has-accent-background-color,.has-accent-dark-background-color) { background-color:var(--mpf-dark-red-action)!important; }

	/* The shell, Gutenberg content and navigation inherit the shared tokens. */
	html[data-mpf-color-scheme=dark] .mpf-sde-site-header,
	html[data-mpf-color-scheme=dark] .mpf-desktop-header.is-desktop-scrolled .mpf-sde-site-header,
	html[data-mpf-color-scheme=dark] .mpf-sde-site-footer { background:var(--wp--preset--color--canvas); }
	html[data-mpf-color-scheme=dark] .wp-block-navigation__responsive-container.is-menu-open { background:var(--wp--preset--color--canvas)!important; color:var(--wp--preset--color--ink)!important; }
	html[data-mpf-color-scheme=dark] .mpf-sde-primary-navigation .is-menu-open :is(.wp-block-navigation__responsive-dialog,.mpf-sde-mobile-menu-masthead) { background:var(--wp--preset--color--canvas); }
	html[data-mpf-color-scheme=dark] .wp-block-navigation__submenu-container { background:var(--wp--preset--color--surface); color:var(--wp--preset--color--ink); border-color:var(--wp--preset--color--border); }
	/* Explicit transparent SVG alternatives preserve the primary red/blue mark. */
	html[data-mpf-color-scheme=dark] .mpf-theme-logo > img.mpf-theme-logo-light { display:none; }
	html[data-mpf-color-scheme=dark] .mpf-theme-logo > img.mpf-theme-logo-dark { display:block; }
	html[data-mpf-color-scheme=dark] .is-style-mpf-hero-background,
	html[data-mpf-color-scheme=dark] .mpf-duty::before,
	html[data-mpf-color-scheme=dark] .mpf-home-fiscal::before { display:none; }
	html[data-mpf-color-scheme=dark] :is(.mpf-home-tenders,.mpf-home-fiscal,.mpf-home-building-intro::before,.is-style-mpf-service-card,.is-style-mpf-service-card-featured) { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] .mpf-home-tenders { background:var(--wp--preset--color--surface); }
	html[data-mpf-color-scheme=dark] :is(.is-style-mpf-service-card,.is-style-mpf-service-card-featured) > .wp-block-buttons { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.is-style-mpf-service-card,.is-style-mpf-service-card-featured) .wp-block-image img { filter:brightness(0) invert(.9); }
	html[data-mpf-color-scheme=dark] .mpf-home-social { background:#203a50; }
	html[data-mpf-color-scheme=dark] .mpf-building-person { background:#fff; border-color:#dce1e3; color:#282828; }
	html[data-mpf-color-scheme=dark] .mpf-building-person :is(span,strong) { color:#304d60; }
	html[data-mpf-color-scheme=dark] .mpf-building-stage::before { background:none; }

	/* Filled actions keep dark backgrounds and white foregrounds independently
	 * from the lighter text/link accents. */
	html[data-mpf-color-scheme=dark] :is(.wp-element-button,.wp-block-search__button,.mpf-home-slider-controls button,.mpf-faq-assistant button,.mpf-news-filters button,.mpf-tender-filters button,.mpf-tender-pagination .current) { background:var(--mpf-dark-action); color:#fff; }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-portal-button,.is-style-mpf-accent) .wp-block-button__link { background:var(--mpf-dark-red-action); color:#fff; }
	html[data-mpf-color-scheme=dark] .mpf-sde-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .mpf-sde-mobile-access .wp-block-navigation-item__content { background:var(--mpf-dark-red-action); color:#fff; }
	html[data-mpf-color-scheme=dark] :is(.wp-element-button,.mpf-home-slider-controls button,.mpf-faq-assistant button,.mpf-news-filters button,.mpf-tender-filters button):hover { background:#326fa8; color:#fff; }
	html[data-mpf-color-scheme=dark] .is-style-mpf-service-link .wp-block-button__link { background:transparent; color:var(--wp--preset--color--link); }
	html[data-mpf-color-scheme=dark] .is-style-mpf-service-card-featured .wp-block-button__link { color:#fff; }
	html[data-mpf-color-scheme=dark] .is-style-outline .wp-block-button__link { background:transparent; color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] :is(.wp-block-query-pagination .current,.mpf-news-pagination .current,.mpf-duty-tabs a[aria-current]) { background:var(--mpf-dark-action); color:#fff; border-color:var(--mpf-dark-action); }
	html[data-mpf-color-scheme=dark] :is(.mpf-mobile-nav-item:hover,.mpf-mobile-nav-item[aria-current],.mpf-mobile-nav-item[aria-expanded=true]) { background:var(--mpf-dark-tint); }

	/* Solid dark cards; only transparent library illustrations get white support. */
	html[data-mpf-color-scheme=dark] :is(.mpf-news-card,.mpf-home-news-feature,.mpf-home-news-brief,.mpf-home-news-institutional-card) {
		--news-surface:var(--wp--preset--color--surface); --news-ink:var(--wp--preset--color--ink); --news-border:var(--wp--preset--color--border);
		color:var(--wp--preset--color--ink); background:var(--wp--preset--color--surface); border-color:var(--wp--preset--color--border);
	}
	html[data-mpf-color-scheme=dark] :is(.mpf-news-card-image,.mpf-news-card-image:has(.mpf-news-photo--representative),.mpf-home-news-feature-image,.mpf-home-news-brief-image,.mpf-home-news-institutional-image,.mpf-news-single-image,.mpf-news-gallery-row img,.mpf-news-card--feature .mpf-news-photo,.mpf-news-single-image .mpf-news-photo) { background:var(--wp--preset--color--surface); }
	html[data-mpf-color-scheme=dark] .mpf-news-about { background:var(--mpf-dark-tint); }
	html[data-mpf-color-scheme=dark] .mpf-news-about > span { color:var(--wp--preset--color--link); }
	html[data-mpf-color-scheme=dark] .mpf-news-kind-tabs a[aria-current] { background:var(--mpf-dark-tint); }
	html[data-mpf-color-scheme=dark] :is(.mpf-news-card .mpf-news-photo--representative,.mpf-home-news .mpf-news-photo--representative,.mpf-news-single-image .mpf-news-photo--representative),
	html[data-mpf-color-scheme=dark] :is(.mpf-news-card-image,.mpf-home-news-feature-image,.mpf-home-news-brief-image,.mpf-home-news-institutional-image):has(.mpf-news-photo--representative) { background:#fff; }
	html[data-mpf-color-scheme=dark] .mpf-news-search-submit img { filter:brightness(0) invert(1); }

	/* Duty roster, daily calendar and its modal. */
	html[data-mpf-color-scheme=dark] :is(.mpf-duty-board,.mpf-duty-day) { background:var(--wp--preset--color--surface); }
	html[data-mpf-color-scheme=dark] :is(.mpf-duty-board,.mpf-duty-filters select,.mpf-duty-filters input,.mpf-duty-filters button,.mpf-duty-row,.mpf-duty-month-grid td) { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-duty-day:hover,.mpf-duty-day.is-today,.mpf-duty-day-blank,.mpf-duty-dialog-close:hover) { background:var(--mpf-dark-tint); }
	html[data-mpf-color-scheme=dark] .mpf-duty-filters button:hover { background:var(--mpf-dark-action); color:white; }
	html[data-mpf-color-scheme=dark] :is(.mpf-duty-day.is-today time,.mpf-duty-view-toggle:hover) { background:var(--mpf-dark-action); color:white; }

	/* Map: both the SVG explorer and the HTML around the 3D illustration. */
	html[data-mpf-color-scheme=dark] .mpf-map { color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-main,.mpf-map-viewport,.mpf-map-controls button,.mpf-map-fiscal-controls button,.mpf-map-fiscal-track,.mpf-map-mobile-summary button,.mpf-map-modes button[aria-pressed=true]) { background:var(--wp--preset--color--surface); color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-main,.mpf-map-circuit-browser,.mpf-map-toolbar,.mpf-map-controls button,.mpf-map-details,.mpf-map-fiscals,.mpf-map-fiscal-controls button,.mpf-map-fiscal-track,.mpf-map-no-duty,.mpf-map-mobile-heading,.mpf-map-mobile-summary button,.mpf-map-bottom) { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-eyebrow,.mpf-map-intro>p,.mpf-map-location,.mpf-map-hint,.mpf-map-contact,.mpf-map-team small,.mpf-map-team summary span,.mpf-map-fiscals-heading span,.mpf-map-fiscal-position,.mpf-map-no-duty) { color:var(--wp--preset--color--muted); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-contact a,.mpf-map-location strong,.mpf-map-circuits button[aria-pressed=true]) { color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-source-link,.mpf-map-fiscal-track span) { color:var(--wp--preset--color--link); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-count,.mpf-map-circuits button[aria-pressed=true] .mpf-map-count,.mpf-map-intro h2 em) { color:var(--wp--preset--color--accent); }
	html[data-mpf-color-scheme=dark] :is(.mpf-map-modes,.mpf-map-venue-photo,.mpf-map-bottom,.mpf-map-circuits button:hover,.mpf-map-circuits button[aria-pressed=true]:hover,.mpf-map-controls button:hover) { background:var(--wp--preset--color--canvas); }
	html[data-mpf-color-scheme=dark] .mpf-map-shape { fill:#293744; stroke:#a3b4c4; }
	html[data-mpf-color-scheme=dark] .mpf-map-shape.is-selected { fill:#d54140; stroke:#f39791; }
	html[data-mpf-color-scheme=dark] .mpf-map-shape:is(:hover,:focus-visible,.is-focused) { fill:#486c88; stroke:#99c8f2; }
	html[data-mpf-color-scheme=dark] .mpf-map-labels text:not(.is-selected) { fill:#b7b8b9; }
	html[data-mpf-color-scheme=dark] .mpf-map-three-labels span:not(.is-selected) { color:#b7b8b9; }
	html[data-mpf-color-scheme=dark] .mpf-map-render { filter:brightness(.55); }
	html[data-mpf-color-scheme=dark] .mpf-map-bottom [data-info-toggle] { background:var(--mpf-dark-tint); color:var(--wp--preset--color--link); border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] .mpf-map-bottom [aria-expanded=true] { background:var(--mpf-dark-action); color:#fff; }

	/* BRÚJULA has local tokens; its video player already uses dark surfaces. */
	html[data-mpf-color-scheme=dark] .mpf-brujula { --br-muted:var(--wp--preset--color--muted); --br-blue:var(--wp--preset--color--link); --br-paper:var(--wp--preset--color--canvas); --br-line:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-brujula-route-center,.mpf-brujula-map-node>span,.mpf-brujula-map-node[data-active]>span,.mpf-brujula-video-controls button:hover:not(:disabled)) { background:var(--mpf-dark-tint); border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-brujula-compass-pause,.mpf-brujula-route-orbit,.mpf-brujula-route-list,.mpf-brujula-route,.mpf-brujula-video-controls button) { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] .mpf-brujula .mpf-brujula-button { background:var(--mpf-dark-action); color:#fff; }

	/* Service pages and forms. External official iframes keep their own theme. */
	html[data-mpf-color-scheme=dark] .mpf-virtual-card--denuncia { --card-accent:#8bcba0; }
	html[data-mpf-color-scheme=dark] .mpf-virtual-service-nav a[aria-current] { background:var(--mpf-dark-action); color:#fff; }
	html[data-mpf-color-scheme=dark] .mpf-tender-filters :where(input,select) { color:var(--wp--preset--color--ink); background:var(--wp--preset--color--surface); border-color:var(--wp--preset--color--muted); }
	html[data-mpf-color-scheme=dark] :is(input,textarea)::placeholder { color:var(--wp--preset--color--muted); opacity:1; }
	html[data-mpf-color-scheme=dark] :is(.mpf-virtual-symbol,.mpf-virtual-professionals,.mpf-virtual-help,.mpf-virtual-card-action,.mpf-virtual-back,.mpf-virtual-frame-toolbar,.mpf-faq summary,.mpf-regulations summary) img,
	html[data-mpf-color-scheme=dark] .mpf-tender-icon { filter:brightness(0) invert(.9); }

	/* Shared assistant, including content inserted after the first page load. */
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant-section,.mpf-sde-assistant) { --assistant-red:#f0807a; --assistant-blue:#245d8f; color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] .mpf-sde-assistant-section { background:var(--wp--preset--color--surface); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__panel,.mpf-sde-assistant__messages .is-assistant,.mpf-sde-assistant-faq button,.mpf-sde-assistant__department-picker select) { background:var(--wp--preset--color--surface); color:var(--wp--preset--color--ink); border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__panel>header,.mpf-sde-assistant textarea,.mpf-sde-assistant__close,.mpf-sde-assistant__department-picker label) { color:var(--wp--preset--color--ink); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__panel header small,.mpf-sde-assistant__enter) { color:var(--wp--preset--color--muted); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__content a,.mpf-sde-assistant__content h3,.mpf-sde-assistant__content h4,.mpf-sde-assistant__content th) { color:var(--wp--preset--color--link); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__content code,.mpf-sde-assistant__content blockquote,.mpf-sde-assistant__content th,.mpf-sde-assistant__close:hover,.mpf-sde-assistant-faq button:hover) { background:var(--mpf-dark-tint); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__panel>header,.mpf-sde-assistant__composer,.mpf-sde-assistant__sources,.mpf-sde-assistant__followups,.mpf-sde-assistant__department-picker,.mpf-sde-assistant__table-wrap,.mpf-sde-assistant__content th,.mpf-sde-assistant__content td) { border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant__sources a,.mpf-sde-assistant__followups button,.mpf-sde-assistant__actions a) { color:var(--wp--preset--color--link); background:var(--mpf-dark-tint); border-color:var(--wp--preset--color--border); }
	html[data-mpf-color-scheme=dark] :is(.mpf-sde-assistant form button,.mpf-sde-assistant__department-picker button) { background:var(--mpf-dark-red-action); color:#fff; }
	html[data-mpf-color-scheme=dark] .mpf-sde-assistant__department-picker button:disabled { background:var(--wp--preset--color--border); color:var(--wp--preset--color--muted); }
}
@media print { .mpf-color-scheme-item { display:none!important; } }
