/* PD Portal Clientes · colores de marca Proyectos Digitales */
:root {
	--pd-navy: #1B263B; --pd-naranja: #F4A261; --pd-petroleo: #1679A3; --pd-profundo: #0F172A;
	--pd-verde: #568D65; --pd-texto: #2E2E2E; --pd-fondo: #F5F7F6; --pd-blanco: #FFFFFF;
	--pd-linea: #DDE3E1; --pd-gris: #5E6A72; --pd-rojo: #B23A32; --pd-rojo-bg: #F8E1DE;
	--pd-ambar: #8A5A00; --pd-ambar-bg: #FBEFD6; --pd-azul-bg: #E1EEF6; --pd-verde-bg: #E3F0E6;
	--pd-titulo: "Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
	--pd-cuerpo: Arial, "Helvetica Neue", system-ui, sans-serif;
	color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body.pdp { background: var(--pd-fondo); color: var(--pd-texto); font: 16px/1.5 var(--pd-cuerpo); -webkit-text-size-adjust: 100%; }
[hidden] { display: none !important; }
a { color: var(--pd-petroleo); }
h1, h2 { font-family: var(--pd-titulo); color: var(--pd-navy); margin: 0 0 6px; line-height: 1.2; }
h1 { font-size: 22px; font-weight: 700; }
h2 { font-size: 17px; font-weight: 600; }
p { margin: 0 0 8px; }

.pdp-top { background: var(--pd-navy); color: #fff; padding-top: env(safe-area-inset-top, 0px); position: sticky; top: 0; z-index: 10; }
.pdp-top-in { max-width: 720px; margin: 0 auto; padding: 12px max(16px, env(safe-area-inset-right, 0px)) 12px max(16px, env(safe-area-inset-left, 0px)); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pdp-marca { display: block; font: 600 12px var(--pd-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--pd-naranja); }
.pdp-cliente { font: 700 18px var(--pd-titulo); }
.pdp-salir { color: #fff; font-size: 14px; }

.pdp-main { max-width: 720px; margin: 0 auto; padding: 14px max(16px, env(safe-area-inset-right, 0px)) 24px max(16px, env(safe-area-inset-left, 0px)); display: grid; gap: 14px; }
.pdp-card { background: var(--pd-blanco); border: 1px solid var(--pd-linea); border-radius: 12px; padding: 16px; display: grid; gap: 10px; min-width: 0; }
.pdp-muted { color: var(--pd-gris); font-size: 14px; }
.pdp-aviso { background: var(--pd-ambar-bg); color: var(--pd-ambar); padding: 10px 12px; border-radius: 8px; font-size: 14px; margin: 0; }
.pdp-alerta { background: var(--pd-ambar-bg); color: var(--pd-ambar); padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 600; margin: 0; }

.pdp-tabs { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--pd-blanco); border: 1px solid var(--pd-linea); border-radius: 12px; overflow: hidden; position: sticky; top: calc(58px + env(safe-area-inset-top, 0px)); z-index: 5; }
.pdp-tabs button { appearance: none; border: 0; background: none; padding: 10px 4px; font: 600 14px var(--pd-titulo); line-height: 1.2; color: var(--pd-gris); cursor: pointer; border-bottom: 3px solid transparent; }
.pdp-tabs button[aria-selected="true"] { color: var(--pd-navy); border-bottom-color: var(--pd-naranja); }
.pdp-count { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 99px; background: var(--pd-naranja); color: var(--pd-navy); font-size: 12px; }
.pdp-count:empty { display: none; }
.pdp-panel { display: grid; gap: 14px; }

label { font-weight: 600; font-size: 14px; color: var(--pd-navy); }
input[type=text], input[type=password], input[type=email], select, textarea { width: 100%; font: 16px var(--pd-cuerpo); color: var(--pd-texto); background: var(--pd-fondo); border: 1px solid var(--pd-linea); border-radius: 8px; padding: 11px 12px; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible { outline: 2px solid var(--pd-petroleo); outline-offset: 2px; }
.pdp-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; color: var(--pd-texto); }
.pdp-check input { width: 22px; height: 22px; flex: none; margin: 0; }

.pdp-btn { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 18px; border: 0; border-radius: 10px; background: var(--pd-naranja); color: var(--pd-navy); font: 700 16px var(--pd-titulo); text-decoration: none; cursor: pointer; }
.pdp-btn[disabled] { opacity: .6; cursor: default; }
.pdp-btn-sec { background: var(--pd-fondo); border: 1px solid var(--pd-linea); color: var(--pd-navy); }
.pdp-btn-cam { background: var(--pd-navy); color: #fff; }
.pdp-btn-peq { min-height: 42px; font-size: 15px; justify-self: start; }
.pdp-btn input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pdp-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 360px) { .pdp-fotos { grid-template-columns: 1fr; } }
.pdp-fotos label { position: relative; color: inherit; }
.pdp-fotos .pdp-btn-cam { color: #fff; }

.pdp-prev { display: flex; flex-wrap: wrap; gap: 8px; }
.pdp-prev:empty { display: none; }
.pdp-mini { position: relative; width: 86px; height: 86px; border-radius: 8px; overflow: hidden; background: var(--pd-fondo); border: 1px solid var(--pd-linea); }
.pdp-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdp-mini-doc span { display: block; padding: 6px; font-size: 11px; word-break: break-all; }
.pdp-quitar { position: absolute; top: 3px; right: 3px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(15, 23, 42, .75); color: #fff; font-size: 18px; line-height: 26px; cursor: pointer; padding: 0; }

.pdp-progreso { height: 8px; background: var(--pd-fondo); border-radius: 99px; overflow: hidden; }
.pdp-progreso span, .pdp-barra span { display: block; height: 100%; width: 0; background: var(--pd-verde); transition: width .2s; }
.pdp-barra { height: 10px; background: var(--pd-fondo); border-radius: 99px; overflow: hidden; }

.pdp-item { border-top: 1px solid var(--pd-linea); padding-top: 10px; display: grid; gap: 6px; }
.pdp-item:first-child { border-top: 0; padding-top: 0; }
.pdp-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; color: var(--pd-gris); }
.pdp-pill { display: inline-block; padding: 4px 9px; border-radius: 99px; background: var(--pd-fondo); color: var(--pd-navy); font: 600 12px var(--pd-titulo); }
.pdp-st-nuevo, .pdp-st-respondida { background: var(--pd-azul-bg); color: var(--pd-petroleo); }
.pdp-st-revisado { background: var(--pd-ambar-bg); color: var(--pd-ambar); }
.pdp-st-usado, .pdp-st-entregada { background: var(--pd-verde-bg); color: var(--pd-verde); }
.pdp-st-pendiente { background: var(--pd-fondo); color: var(--pd-gris); }
.pdp-pr { text-transform: capitalize; }
.pdp-pr-imprescindible { border-left: 5px solid var(--pd-rojo); }
.pdp-pr-imprescindible .pdp-pr { background: var(--pd-rojo-bg); color: var(--pd-rojo); }
.pdp-pr-importante { border-left: 5px solid var(--pd-naranja); }
.pdp-pr-importante .pdp-pr { background: var(--pd-ambar-bg); color: var(--pd-ambar); }
.pdp-pr-conveniente { border-left: 5px solid var(--pd-petroleo); }
.pdp-pr-conveniente .pdp-pr { background: var(--pd-azul-bg); color: var(--pd-petroleo); }
.pdp-ya { background: var(--pd-fondo); border-radius: 8px; padding: 10px 12px; white-space: pre-wrap; }
.pdp-ya p, .pdp-resp p { margin: 4px 0 0; white-space: pre-wrap; }
.pdp-resp { background: var(--pd-verde-bg); border-radius: 8px; padding: 10px 12px; }
.pdp-responder { display: grid; gap: 8px; border-top: 1px solid var(--pd-linea); padding-top: 10px; }
.pdp-adj { font-weight: 400; font-size: 13px; color: var(--pd-gris); display: grid; gap: 4px; }

.pdp-thumbs { display: flex; flex-wrap: wrap; gap: 6px; }
.pdp-thumbs a { display: block; width: 76px; height: 76px; border-radius: 8px; overflow: hidden; border: 1px solid var(--pd-linea); background: var(--pd-fondo); text-decoration: none; }
.pdp-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdp-doc { display: block; padding: 6px; font-size: 11px; color: var(--pd-navy); word-break: break-all; }

.pdp-login form { display: grid; gap: 8px; }
.pdp-login form p { display: grid; gap: 4px; margin: 0; }
.pdp-login .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.pdp-login input[type=submit] { appearance: none; min-height: 48px; border: 0; border-radius: 10px; background: var(--pd-naranja); color: var(--pd-navy); font: 700 16px var(--pd-titulo); width: 100%; cursor: pointer; }
.pdp-lista-clientes { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pdp-lista-clientes .pdp-btn { width: 100%; }

.pdp-pie { max-width: 720px; margin: 0 auto; padding: 8px max(16px, env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); font-size: 12px; color: var(--pd-gris); }
.pdp-toast { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(18px + env(safe-area-inset-bottom, 0px)); max-width: calc(100% - 32px); background: var(--pd-navy); color: #fff; padding: 12px 16px; border-radius: 10px; font-weight: 600; font-size: 15px; z-index: 50; box-shadow: 0 6px 24px rgba(15, 23, 42, .25); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Resultados */
.pdp-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pdp-kpi { background: var(--pd-fondo); border-radius: 10px; padding: 12px; display: grid; gap: 2px; }
.pdp-kpi-l { font: 600 12px var(--pd-titulo); color: var(--pd-gris); }
.pdp-kpi-v { font: 700 24px var(--pd-titulo); color: var(--pd-navy); font-variant-numeric: tabular-nums; }
.pdp-dif { font-size: 12px; color: var(--pd-gris); }
.pdp-sube { color: var(--pd-verde); font-weight: 700; }
.pdp-baja { color: var(--pd-rojo); font-weight: 700; }
.pdp-span { grid-column: 1 / -1; margin: 0; }
.pdp-peq { font-size: 12px; }
.pdp-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.pdp-cab select { width: auto; max-width: 100%; padding: 8px 10px; font-size: 14px; }
.pdp-graf svg { display: block; width: 100%; height: auto; }
.pdp-scroll { overflow-x: auto; }
.pdp-tabla { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.pdp-tabla th, .pdp-tabla td { padding: 8px 6px; border-bottom: 1px solid var(--pd-linea); text-align: left; }
.pdp-tabla th { font: 600 11px var(--pd-titulo); color: var(--pd-gris); text-transform: uppercase; letter-spacing: .05em; }
.pdp-r { text-align: right !important; white-space: nowrap; }
.pdp-c { text-align: center !important; }
.pdp-pos { display: inline-block; min-width: 42px; text-align: center; padding: 2px 6px; border-radius: 6px; font-weight: 700; }
.pdp-pos-ok { background: var(--pd-verde-bg); color: var(--pd-verde); }
.pdp-pos-medio { background: var(--pd-ambar-bg); color: var(--pd-ambar); }
.pdp-pos-mal { background: var(--pd-rojo-bg); color: var(--pd-rojo); }
.pdp-geo-si { color: var(--pd-verde); font-weight: 700; }
.pdp-geo-no { color: var(--pd-rojo); font-weight: 700; }
.pdp-geo-nd { color: var(--pd-gris); }

/* Para aprobar y opiniones */
.pdp-prop-img { width: 100%; max-width: 100%; max-height: 360px; object-fit: cover; border-radius: 10px; border: 1px solid var(--pd-linea); }
.pdp-prop-texto { white-space: pre-wrap; background: var(--pd-fondo); border-radius: 8px; padding: 12px; font-size: 15px; }
.pdp-prop-pendiente { border-left: 5px solid var(--pd-naranja); }
.pdp-ps-pendiente { background: var(--pd-ambar-bg); color: var(--pd-ambar); }
.pdp-ps-aprobada, .pdp-ps-publicada { background: var(--pd-verde-bg); color: var(--pd-verde); }
.pdp-ps-cambios { background: var(--pd-azul-bg); color: var(--pd-petroleo); }
.pdp-cambios { display: grid; gap: 8px; }
.pdp-btn-wa { background: var(--pd-verde); color: #fff; }
.pdp-resena textarea { font-size: 15px; }

/* Soporte */
.pdp-ticket summary { list-style: none; cursor: pointer; display: grid; gap: 6px; }
.pdp-ticket summary::-webkit-details-marker { display: none; }
.pdp-ticket[open] summary { border-bottom: 1px solid var(--pd-linea); padding-bottom: 10px; }
.pdp-tk-esperando { border-left: 5px solid var(--pd-naranja); }
.pdp-tk-abierto, .pdp-tk-en_curso { border-left: 5px solid var(--pd-petroleo); }
.pdp-tke-abierto, .pdp-tke-en_curso { background: var(--pd-azul-bg); color: var(--pd-petroleo); }
.pdp-tke-esperando { background: var(--pd-ambar-bg); color: var(--pd-ambar); }
.pdp-tke-resuelto, .pdp-tke-cerrado { background: var(--pd-verde-bg); color: var(--pd-verde); }
.pdp-tk-urg { background: var(--pd-rojo-bg); color: var(--pd-rojo); }
.pdp-hilo { display: grid; gap: 8px; }
.pdp-msg { border-radius: 10px; padding: 10px 12px; max-width: 92%; }
.pdp-msg-cliente { background: var(--pd-fondo); justify-self: end; }
.pdp-msg-agencia { background: var(--pd-azul-bg); justify-self: start; }
.pdp-msg-cab { font-size: 12px; color: var(--pd-gris); margin-bottom: 4px; }
.pdp-msg-txt { white-space: pre-wrap; }
.pdp-fotos > div { display: grid; gap: 4px; min-width: 0; }

/* Ideas para crecer */
.pdp-imp-alto { background: var(--pd-verde-bg); color: var(--pd-verde); }
.pdp-imp-medio { background: var(--pd-azul-bg); color: var(--pd-petroleo); }
.pdp-sug-bot { display: flex; flex-wrap: wrap; gap: 8px; }
.pdp-sug-resp { opacity: .92; }
.pdp-resp-sug { background: var(--pd-verde-bg); border-radius: 8px; padding: 8px 12px; margin: 0; }
.pdp-sug details summary { cursor: pointer; color: var(--pd-petroleo); font-weight: 600; font-size: 14px; }

/* Asistente */
.pdp-fab { position: fixed; right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 30; min-height: 52px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--pd-navy); color: #fff; font: 700 16px var(--pd-titulo); box-shadow: 0 6px 20px rgba(15, 23, 42, .3); cursor: pointer; }
.pdp-fab::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--pd-naranja); margin-right: 8px; vertical-align: middle; }
body.pdp-bloq { overflow: hidden; }
.pdp-sheet { position: fixed; inset: 0; z-index: 40; background: rgba(15, 23, 42, .45); display: flex; align-items: flex-end; justify-content: center; }
.pdp-sheet-in { background: var(--pd-blanco); width: 100%; max-width: 720px; max-height: 92vh; border-radius: 16px 16px 0 0; padding: 16px max(16px, env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.pdp-cerrar { appearance: none; border: 1px solid var(--pd-linea); background: var(--pd-fondo); border-radius: 8px; padding: 8px 12px; font: 600 14px var(--pd-titulo); color: var(--pd-navy); cursor: pointer; }
.pdp-chat { flex: 1; min-height: 120px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 4px 0; }
.pdp-bur { max-width: 86%; padding: 10px 12px; border-radius: 14px; white-space: pre-wrap; font-size: 15px; }
.pdp-bur-asistente { background: var(--pd-azul-bg); align-self: flex-start; border-bottom-left-radius: 4px; }
.pdp-bur-cliente { background: var(--pd-navy); color: #fff; align-self: flex-end; border-bottom-right-radius: 4px; }
.pdp-pensando { opacity: .7; font-style: italic; }
.pdp-chat-form { display: grid; gap: 8px; }
.pdp-chat-bot { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.pdp-oyendo { background: var(--pd-rojo-bg) !important; color: var(--pd-rojo) !important; border-color: var(--pd-rojo) !important; }
.pdp-prop-as { border: 2px solid var(--pd-naranja); border-radius: 12px; padding: 12px; display: grid; gap: 8px; max-height: 40vh; overflow-y: auto; }
.pdp-prop-lista { display: grid; gap: 6px; }
.pdp-prop-it { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; color: var(--pd-texto); background: var(--pd-fondo); border-radius: 8px; padding: 8px 10px; }
.pdp-prop-it input { width: 22px; height: 22px; flex: none; margin-top: 2px; }
.pdp-prop-it b { display: block; font-size: 13px; color: var(--pd-navy); }
.pdp-prop-val { display: block; white-space: pre-wrap; }
.pdp-pie { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Aviso fijo (archivos rechazados): no desaparece hasta pulsar «Entendido» */
.pdp-aviso-fijo{position:fixed;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;max-width:560px;margin:0 auto;background:#fff;border:2px solid #B4432F;border-radius:12px;padding:14px 16px;box-shadow:0 8px 24px rgba(27,38,59,.25)}
.pdp-aviso-fijo p{margin:0 0 10px;white-space:pre-line;color:var(--pd-navy,#1B263B)}
textarea[aria-invalid="true"]{border-color:#B4432F;outline:2px solid #B4432F}
