/* ----------------------------------------------------------------
	Estilos propios del area de clientes.
	Se carga al final de comun_header.php (despues del tema) para poder
	sobrescribir sus estilos. Los colores de empresa llegan desde PHP como
	variables CSS (--color-empresa, --color-empresa-2), definidas en linea.
-----------------------------------------------------------------*/

/* ---------- Impresion y utilidades (todas las paginas) ---------- */
@media print {
  .ocultar-al-imprimir {
	display: none;
  }
}

#top-search a, #top-cart a, #side-panel-trigger a {
  width: 100px;
}

#dniabn, #avisos_dni { text-transform: uppercase; }

/* ---------- Tabla "Prescripcion de vida util" ---------- */
.tabvidut{
	background-color: #fff;
	border: 5px solid black;
	border-collapse: collapse;
	color: #000;
}

.tabvidut .titulo{
	text-align: center;
	font-weight: 950;
	font-size: 18px;
	padding: 2px 2px
}

.tabvidut th{
	font-size: 11px;
	font-weight: bolder;
	padding: 2px 3px 0px 3px;
}

.tabvidut td{
	font-size: 9px;
	padding: 2px 3px 2px 6px;
}

.tabvidut .fecha{
	font-size: 13px;
	text-align: center;
	font-weight: bold;
}

.tabvidut .bt{
	border-color: #000;
	border: 3px;
	border-top-style: solid;
}

.tabvidut .bb{
	border-color: #000;
	border: 3px;
	border-bottom-style: solid;
}

.tabvidut .bbr{
	border-color: #000;
	border: 3px;
	border-bottom-style: solid;
	border-right-style: solid;
}

.tabvidut .bl{
	border-color: #000;
	border: 3px;
	border-left-style: solid;
}

.tabvidut .br{
	border-color: #000;
	border: 3px;
	border-right-style: solid;
}

/* ---------- Menu movil, icono de menu y barra lateral ---------- */
.icono-movil { display: none; }
@media (max-width: 991px) {
	#primary-menu a .icono-movil { display: inline-block; width: 22px; margin-right: 10px; text-align: center; }
	.sidebar .menu-lateral-resto { display: none; }
	.container:has(> .sidebar) { display: flex; flex-direction: column; }
	.container:has(> .sidebar) > .sidebar { order: -1; width: 100%; }
	.container:has(> .sidebar) > .postcontent { width: 100%; }
	.sidebar { border-bottom: 0 !important; }
	.sidebar .sidebar-widgets-wrap { margin-right: 0 !important; margin-left: 0 !important; }
	.sidebar .sidebar-widgets-wrap > br { display: none; }
}
#dniabn, #avisos_dni { text-transform: uppercase; }
#primary-menu a .texto-logout { display: none !important; } @media (max-width: 991px) { #primary-menu a .texto-logout { display: inline !important; position: static !important; opacity: 1 !important; visibility: visible !important; } }

/* ---------- Cabecera con foto ($inst_cabecera_imagen) ----------
   La imagen (ruta dinamica) se define en linea en comun_header.php. */
#header.transparent-header { background: transparent !important; border-bottom: 0 !important; }
#header.transparent-header:not(.sticky-header) #header-wrap { background: transparent !important; box-shadow: none; }
#header.transparent-header:not(.sticky-header) #logo { background: transparent; box-shadow: none; }
#header #logo a.logo-cabecera { display: none; }
#header.transparent-header:not(.sticky-header) #logo a.logo-cabecera { display: block; }
#header.transparent-header:not(.sticky-header) #logo a.standard-logo, #header.transparent-header:not(.sticky-header) #logo a.retina-logo { display: none !important; }
#header.transparent-header + #page-title,
#header.transparent-header + #slider { top: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 100px !important; }
#header.transparent-header { position: absolute !important; left: 0; right: 0; width: 100%; z-index: 199; }
#header.transparent-header + #page-title { position: relative; min-height: 230px; background-color: #1d4f86 !important; background-position: center; background-size: cover; background-repeat: no-repeat; }
#header.transparent-header + #page-title:before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(180deg, rgba(0,27,60,.55) 0%, rgba(0,27,60,0) 45%), linear-gradient(90deg, rgba(0,27,60,.62) 0%, rgba(0,27,60,.12) 70%); }
#header.transparent-header + #page-title .container { position: relative; padding-top: 30px; }
#header.transparent-header + #page-title h1 { color: #fff !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
#header.transparent-header:not(.sticky-header) #primary-menu-trigger i { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.7); }
@media (max-width: 991px) {
	#header.transparent-header #primary-menu-trigger { left: auto; right: 0; top: 20px; }
	#header.transparent-header #primary-menu-trigger.menu-abierto i:before { content: "\e6c9"; }
	#header.transparent-header #logo { padding-right: 45px; box-sizing: border-box; }
	#header.transparent-header #logo img { max-width: calc(100% - 50px); height: auto; }
	#header.transparent-header #primary-menu > ul { background: #fff !important; box-shadow: 0 6px 14px rgba(0,0,0,.25); margin-top: 10px !important; margin-bottom: 0 !important; }
	#header.transparent-header #primary-menu > ul + ul { margin-top: 0 !important; box-shadow: 0 8px 14px rgba(0,0,0,.25); }
	#header.transparent-header #primary-menu > ul + ul:not(.pull-right-fix) { border-top: 0; }
	#header.transparent-header #primary-menu > ul > li > a { padding-left: 20px !important; padding-right: 20px !important; }
	#header.transparent-header #primary-menu > ul > li > a { color: #444 !important; text-shadow: none !important; }
	#header.transparent-header #primary-menu > ul > li > a i { color: #444 !important; text-shadow: none !important; }
}
@media (min-width: 992px) and (max-width: 1199px) {
	#header.transparent-header #logo img { max-width: 250px; height: auto; }
	#header.transparent-header #primary-menu > ul > li > a { padding-left: 8px; padding-right: 8px; letter-spacing: 0; }
}
@media (min-width: 992px) {
	#header.transparent-header:not(.sticky-header) #primary-menu > ul > li > a { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
	#header.transparent-header:not(.sticky-header) #primary-menu > ul > li:hover > a { color: #fff; opacity: .8; }
	#header.transparent-header:not(.sticky-header) #primary-menu ul.pull-right a i { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
}

/* ---------- Cortes programados y averias (cortes.php y cortes-y-averias.php) ---------- */
.cortes-intro {
	padding: 0px 0px 10px 0px;
	margin-bottom: 30px;
}
.cortes-intro p {
	font-size: 15px;
	color: #555;
	line-height: 1.7;
	margin: 0;
}
.cortes-intro p + p { margin-top: 12px; }

.cortes-search-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: flex-end;
}
.cortes-field { flex: 1 1 220px; }
.cortes-field label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #333;
	margin-bottom: 6px;
}
.cortes-field select {
	width: 100%;
	font-size: 14px;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	color: #333;
}
.cortes-field select:disabled {
	background: #f2f2f2;
	color: #aaa;
}
.cortes-btn-buscar {
	background: var( --color-empresa );
	color: #fff;
	border: none;
	border-radius: 4px;
	padding: 11px 28px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
}
.cortes-btn-buscar:disabled { background: #ccc; cursor: not-allowed; }
.cortes-search-hint {
	font-size: 13px;
	color: #777;
	margin-top: 14px;
	margin-bottom: 0;
}

.cortes-results-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}
.cortes-results-header h3 { font-size: 17px; margin: 0; }
.cortes-reset-link {
	margin-left: auto;
	font-size: 13px;
	color: #777;
	text-decoration: underline;
	cursor: pointer;
	background: none;
	border: none;
}
.cortes-reset-link:hover { color: #333; }

.cortes-date-group { margin-bottom: 35px; }
.cortes-date-label { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.cortes-date-label .cortes-pill {
	background: #444;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 5px 14px;
	border-radius: 99px;
	white-space: nowrap;
}
.cortes-date-label .cortes-pill.hoy { background: var( --color-empresa ); color: #1a1a1a; }
.cortes-date-label hr { flex: 1; border: none; border-top: 1px solid #e6e6e6; margin: 0; }
.cortes-date-label .cortes-cnt { font-size: 13px; color: #777; white-space: nowrap; }

.cortes-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 768px) { .cortes-cards { grid-template-columns: 1fr; } }

.cortes-card {
	background: #fff;
	border-radius: 4px;
	box-shadow: 0 2px 10px rgba(0,0,0,.07);
	border-top: 3px solid var( --color-corte, var( --color-empresa ) );
	overflow: hidden;
}
.cortes-card.tipo-corte { border-top-color: var( --color-corte, var( --color-empresa ) ); }
.cortes-card.tipo-averia { border-top-color: var( --color-averia, #d9534f ); }
.cortes-leyenda { display: none; gap: 18px; margin-top: 10px; font-size: 13.5px; color: #555; }
.cortes-leyenda.visible { display: flex; flex-wrap: wrap; }
.cortes-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.cortes-leyenda i { width: 12px; height: 12px; border-radius: 50%; border: 1px solid #444; display: inline-block; }
.cortes-leyenda .ley-corte i { background: var( --color-corte, var( --color-empresa ) ); }
.cortes-leyenda .ley-averia i { background: var( --color-averia, #d9534f ); }

.cortes-card-head {
	padding: 16px 18px 12px;
	border-bottom: 1px solid #f2f2f2;
	display: flex;
	align-items: flex-start;
	gap: 14px;
}
.cortes-time-block {
	background: #f4f4f4;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 7px 13px;
	text-align: center;
	flex-shrink: 0;
	min-width: 80px;
}
.cortes-time-block .cortes-time { font-size: 14px; font-weight: 700; color: #222; line-height: 1.5; white-space: nowrap; }
.cortes-time-block .cortes-duration { font-size: 12px; color: #666; margin-top: 2px; }
.cortes-zone-info h4 { font-size: 16px; font-weight: 700; color: #1a1a1a; line-height: 1.3; margin: 0; }
.cortes-zone-info .cortes-centro { font-size: 13.5px; color: #777; margin-top: 4px; }

.cortes-card-body { padding: 14px 18px 16px; }
.cortes-meta-row { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 12px; }
.cortes-meta-item { display: flex; align-items: center; gap: 5px; font-size: 13.5px; color: #777; }
.cortes-meta-item strong { color: #1a1a1a; font-weight: 600; }

.cortes-calles-toggle {
	background: none;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 7px 13px;
	font-size: 13.5px;
	color: #777;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}
.cortes-calles-toggle:hover { background: #f8f8f0; border-color: var( --color-empresa ); color: #1a1a1a; }
.cortes-arrow { transition: transform .2s; display: inline-block; }
.cortes-calles-toggle[aria-expanded="true"] .cortes-arrow { transform: rotate(180deg); }
.cortes-calles-list {
	display: none;
	margin-top: 8px;
	padding: 10px 13px;
	background: #fafaf5;
	border: 1px solid #eee;
	border-radius: 4px;
	font-size: 13.5px;
	color: #777;
	line-height: 1.85;
}
.cortes-calles-list.open { display: block; }
.cortes-calle-match { background: #fff6b0; padding: 0 2px; border-radius: 2px; }

.cortes-state-box {
	max-width: 560px;
	margin: 30px auto;
	text-align: center;
	padding: 35px;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 4px;
	box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
.cortes-state-box .cortes-icon { font-size: 42px; margin-bottom: 12px; }
.cortes-state-box h2 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.cortes-state-box p { font-size: 14.5px; color: #777; margin: 0; line-height: 1.6; }
.cortes-loading-box { text-align: center; padding: 35px; color: #777; font-size: 14.5px; }

.cortes-warning-band {
	background: #f0f0f0;
	color: #333;
	font-size: 13.5px;
	font-weight: 600;
	text-align: center;
	padding: 10px 16px;
	border-radius: 4px;
	margin-top: 25px;
}

.cortes-cups-afectados {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 12px;
	font-size: 13px;
	color: #777;
}
.cortes-cups-afectados .cortes-cups-label { color: #777; }
.cortes-cups-afectados .cortes-cups-chip {
	background: #f5f5e0;
	color: #4a5a10;
	font-weight: 600;
	font-size: 12px;
	padding: 3px 9px;
	border-radius: 99px;
	white-space: nowrap;
}

/* Mapa de cortes: va aqui, despues de responsive.css, para ganar por orden de cascada */
/* CSS crítico del mapa, inyectado en el footer para cargar
   DESPUÉS de responsive.css y ganar por orden de cascada.
   Se aplica a ambos mapas mediante la clase .cortes-mapa-box */
.cortes-mapa-box {
	height: 420px !important;
	width: 100% !important;
	position: relative !important;
	overflow: hidden !important;
	border-radius: 4px;
	z-index: 1;
}
.cortes-mapa-box .leaflet-container {
	height: 100% !important;
	width: 100% !important;
	position: relative !important;
	overflow: hidden !important;
	background: #ddd;
	font-family: inherit;
}
.cortes-mapa-box .leaflet-pane,
.cortes-mapa-box .leaflet-map-pane,
.cortes-mapa-box .leaflet-tile-pane,
.cortes-mapa-box .leaflet-tile-container,
.cortes-mapa-box .leaflet-overlay-pane,
.cortes-mapa-box .leaflet-marker-pane,
.cortes-mapa-box .leaflet-popup-pane,
.cortes-mapa-box .leaflet-zoom-animated {
	margin: 0 !important;
	padding: 0 !important;
}
.cortes-mapa-box img.leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	min-width: 0 !important;
	min-height: 0 !important;
	width: 256px !important;
	height: 256px !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.cortes-mapa-box .leaflet-marker-icon {
	max-width: none !important;
}

/* ---- Fase 2: clases que sustituyen estilos en linea repetidos ---- */
.t-centro{text-align:center!important}
.t-derecha{text-align:right!important}
.t-izq{text-align:left!important}
.hr-claro{border-color:#ddd}
.caja-gris{padding:25px!important;background-color:#f8f8f8;border-radius:2px}
.caja-gris.caja-baja{padding:15px 25px!important}
.caja-ancha{min-width:380px}
.mt-30{margin-top:30px}
.caja-form{padding:35px!important;border-radius:2px;max-width:600px}
.label-normal{font-weight:normal;margin:0}
th.col-40{width:40px}
.color-empresa{color:var(--color-empresa)!important}
.color-empresa-2{color:var(--color-empresa-2)!important}
.color-ok{color:#006619!important}
.color-error{color:#b30000!important}
.color-tenue{color:#ccc}
.negrita{font-weight:bolder}
.aviso-acepto{display:flex;align-items:flex-start;gap:10px}
input.aviso-check{width:18px;height:18px;margin:3px 0 0 0;flex-shrink:0}
label.aviso-label{text-transform:none;letter-spacing:normal;font-weight:400;font-size:14px;line-height:1.5;margin:0;color:#555;cursor:pointer}
small.aviso-mas{display:block;margin-top:6px;padding-left:28px;font-size:13px;color:#777}

/* Grosor del borde izquierdo de los recuadros ($inst_borde_recuadros en comun_instalacion.php; 0 = sin borde) */
.title-block { border-left-width: var( --borde-recuadros, 7px ); }
