/* Southern Digital · Portal de clientes. Se apoya en revision.css (paleta clara/oscura, botones, chips, toast) y
   seguimiento.css (anillo de avance y etapas). Celular primero: barra de abajo; desde 900 px, menú lateral. */
:root{--pt-lado:264px;--pt-barra:64px;--info:#7aa7ff}
:root[data-tema="claro"]{--info:#2f63d6}
html.pt-lock,html.pt-lock body{overflow:hidden}
.mono{display:block}

/* ---------- pantallas sin sesión (login, olvidé, invitación) ---------- */
.pt-pub{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.pt-pub-top{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 18px 14px}
.pt-logo{height:24px;display:block}
.pt-pub-main{flex:1;display:flex;align-items:center;justify-content:center;padding:12px 18px 24px}
.pt-pub-caja{width:100%;max-width:400px}
.pt-pub-pie{padding:16px 18px calc(16px + env(safe-area-inset-bottom));text-align:center;color:var(--faint);font-size:12.5px}
.pt-pub-pie p{margin:10px 0 0}
.pt-pub-pie .pt-contacto{justify-content:center}
.pt-titulo{font-size:32px;line-height:1.08;margin:8px 0 8px;font-weight:800}
.pt-bajada{color:var(--ink-2);margin:0 0 18px;font-size:15px}
.pt-aviso{margin:0 0 14px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--line));background:color-mix(in srgb,var(--warn) 9%,var(--surface));font-size:14px}
.pt-form{display:grid;gap:14px}
.pt-campo{display:grid;gap:6px}
.pt-campo > span:first-child{font-size:13px;font-weight:600;color:var(--ink-2)}
.rv-input{width:100%;min-height:50px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-size:16px}
.rv-input:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px var(--lime-soft)}
.rv-input[readonly]{color:var(--muted);background:var(--surface-2)}
.pt-clave{position:relative;display:block}
.pt-clave .rv-input{padding-right:52px}
.pt-ver{position:absolute;right:4px;top:50%;translate:0 -50%;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
.pt-ver svg{width:20px;height:20px}
.pt-ver.on{color:var(--acento)}
.pt-ancho{width:100%;min-height:52px;font-size:16px}
.pt-olvide{justify-self:center;margin-top:2px}
.pt-error{margin:0;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--danger) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 40%,var(--line));color:var(--ink);font-size:14px}
.pt-hint{margin:0;color:var(--muted);font-size:13px}
.pt-hint.ok{color:var(--ok)}
.pt-listo{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--lime-soft);color:var(--acento);margin-bottom:8px}
.pt-listo svg{width:32px;height:32px}
.pt-contacto{display:flex;flex-wrap:wrap;gap:8px}
.pt-contacto .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- marco con sesión ---------- */
.pt-franja{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--lime);color:var(--lime-ink);font-size:13.5px}
.pt-franja svg{width:18px;height:18px;flex:none}
.pt-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 16px;padding-top:env(safe-area-inset-top);background:var(--top-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.con-franja .pt-top{top:44px}
.pt-top-acc{display:flex;gap:8px}
.pt-main{max-width:720px;margin:0 auto;padding:18px 16px calc(var(--pt-barra) + 28px + env(safe-area-inset-bottom))}
.pt-lado{display:none}
.pt-barra{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--top-bg);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.pt-nav-i{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:11.5px;font-weight:600;-webkit-tap-highlight-color:transparent}
.pt-nav-i svg{width:23px;height:23px}
.pt-nav-i.on{color:var(--acento)}
.pt-nav-i.on svg{filter:drop-shadow(0 0 10px var(--lime-soft))}

/* ---------- Inicio ---------- */
.pt-hola{margin:4px 0 18px}
.pt-hola h1{font-size:34px;line-height:1.05;font-weight:800;margin:4px 0 6px}
.pt-hola .pt-bajada{margin:0}
.pt-bienvenida{margin:14px 0 0;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);white-space:pre-line}
.pt-tarjetas{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.pt-tarjeta{min-width:0;display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .2s,transform .2s;-webkit-tap-highlight-color:transparent}
.pt-tarjeta:hover{border-color:var(--line-3)}
.pt-tarjeta:active{transform:scale(.99)}
.pt-t-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2)}
.pt-t-ic svg{width:22px;height:22px}
.pt-tarjeta.lima .pt-t-ic{background:var(--lime-soft);color:var(--acento)}
.pt-tarjeta.info .pt-t-ic{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info)}
.pt-tarjeta.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}
.pt-tarjeta.warn .pt-t-ic{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
.pt-t-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pt-t-txt b{font-size:16px}
.pt-t-txt small{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-t-fl{color:var(--faint)}
.pt-t-fl svg{width:20px;height:20px;display:block}
.pt-aldia{display:flex;gap:14px;align-items:center;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.pt-aldia > svg{flex:none;width:44px;height:44px;padding:10px;border-radius:12px;background:var(--lime-soft);color:var(--acento)}
.pt-aldia div{display:flex;flex-direction:column;gap:2px}
.pt-aldia span{color:var(--muted);font-size:14px}
.pt-nota{display:flex;gap:8px;align-items:center;margin:12px 0 0;color:var(--ink-2);font-size:14px}
.pt-nota svg{width:18px;height:18px;color:var(--info);flex:none}
.pt-sec{margin-top:26px}
.pt-sec > h2,.pt-sec > summary h2{font-size:20px;margin:0 0 10px}
.pt-mini-proys{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.pt-pagos,.pt-main > *{min-width:0}
.pt-mini-p{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.pt-mini-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.pt-mini-t small{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-barrita{display:block;height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.pt-barrita i{display:block;height:100%;width:0;border-radius:inherit;background:var(--acento);transition:width .8s cubic-bezier(.22,.8,.24,1)}
.pt-pct{font:700 14px "JetBrains Mono",monospace;color:var(--ink-2)}
.pt-ayuda .pt-bajada{margin-bottom:10px}

/* ---------- Contenido ---------- */
.pt-rv .rv-hero{margin-top:0}
.pt-hist{margin:0 0 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.pt-hist summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;list-style:none}
.pt-hist summary::-webkit-details-marker{display:none}
.pt-hist summary::after{content:"›";margin-left:auto;color:var(--muted);transition:rotate .2s}
.pt-hist[open] summary::after{rotate:90deg}
.pt-hist-l{display:flex;gap:8px;overflow-x:auto;padding:0 14px 14px;scrollbar-width:thin}
.pt-mes{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);cursor:pointer;font:inherit}
.pt-mes small{color:var(--muted);font-size:12px}
.pt-mes.on{border-color:var(--acento);box-shadow:inset 0 0 0 1px var(--acento)}
.pt-n{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:99px;background:var(--surface-3);color:var(--ink-2);font:700 12px Inter,sans-serif}

/* ---------- Proyectos ---------- */
.pt-proy{padding:18px;border-radius:18px;border:1px solid var(--line);background:var(--surface);margin-bottom:14px}
.pt-proy-cab{display:flex;gap:16px;align-items:center}
.pt-anillo{width:96px;height:96px}
.pt-anillo b{font-size:26px}
.pt-proy-t{min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pt-proy-t h2{font-size:22px;line-height:1.15}
.pt-estado{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:var(--surface-3);color:var(--ink-2)}
.pt-estado.e-activo{background:var(--lime-soft);color:var(--acento)}
.pt-estado.e-pausa{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
.pt-estado.e-entregado{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.pt-dato{font-size:14px;color:var(--ink-2)}
.pt-dato small{color:var(--muted)}
.pt-nec{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.pt-nec h3{font-size:17px;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.pt-nec .pt-hint{margin-bottom:10px}
.pt-nec-l{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pt-nec-l li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.pt-nec-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pt-nec-t b{overflow-wrap:anywhere}
.pt-nec-t small{color:var(--muted);font-size:12.5px}
.pt-subir{cursor:pointer}
.pt-subir.cargando{pointer-events:none;opacity:.7}
.pt-prog{flex-basis:100%;height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.pt-prog i{display:block;height:100%;width:0;background:var(--acento);transition:width .2s}
.pt-nada{margin:6px 0 0;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.pt-nada svg{width:18px;height:18px;color:var(--ok)}
.pt-fases-d{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.pt-fases-d summary{cursor:pointer;font:700 17px "Bricolage Grotesque",sans-serif;padding:4px 0 10px;list-style:none;display:flex;align-items:center}
.pt-fases-d summary::-webkit-details-marker{display:none}
.pt-fases-d summary::after{content:"›";margin-left:auto;color:var(--muted);transition:rotate .2s}
.pt-fases-d[open] summary::after{rotate:90deg}

/* ---------- Pagos ---------- */
.pt-pagos{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.pt-pago{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface)}
.pt-pago.vencido{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--surface))}
.pt-pago.vencido .pt-pago-t small{color:var(--danger)}
.pt-pago.informado .pt-pago-t small{color:var(--info)}
.pt-pago-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.pt-pago-t b{overflow-wrap:anywhere}
.pt-pago-t small{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.pt-pago-t small svg{width:15px;height:15px}
.pt-pago-m{font:800 20px "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.pt-pago-b{grid-column:1/-1;justify-self:stretch}
.pt-transf{padding:18px;border-radius:18px;border:1px solid var(--line);background:var(--surface)}
.pt-datos{display:grid;gap:4px;margin-bottom:10px}
.pt-dato-f{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.pt-dato-f:last-child{border-bottom:0}
.pt-dato-f span{display:flex;flex-direction:column;min-width:0}
.pt-dato-f small{color:var(--muted);font-size:12px}
.pt-dato-f b{font:600 15px "JetBrains Mono",monospace;overflow-wrap:anywhere}
.pt-hist-p summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.pt-hist-p summary::-webkit-details-marker{display:none}
.pt-hist-p summary h2{margin:0}
.pt-hist-p summary::after{content:"›";margin-left:auto;color:var(--muted);font-size:20px;transition:rotate .2s}
.pt-hist-p[open] summary::after{rotate:90deg}
.pt-cobrados{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.pt-cob{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.pt-cob:last-child{border-bottom:0}
.pt-cob span:first-child{display:flex;flex-direction:column;min-width:0}
.pt-cob small{color:var(--muted);font-size:12.5px}
.pt-cob-m{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- panel (informar pago) ---------- */
.pt-velo{position:fixed;inset:0;z-index:50;background:var(--velo);display:grid;align-items:end;justify-items:center}
.pt-hoja{width:100%;max-width:480px;max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line-2);border-radius:22px 22px 0 0;padding:22px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--sombra);animation:pt-sube .22s cubic-bezier(.22,.8,.24,1)}
.pt-hoja h2{font-size:24px;margin:0 0 4px}
.pt-fila2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pt-archivo{position:relative;display:flex;align-items:center;min-height:50px;padding:0 14px;border-radius:12px;border:1px dashed var(--line-3);background:var(--surface-2);color:var(--muted);overflow:hidden}
.pt-archivo input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pt-archivo.lleno{border-style:solid;border-color:var(--acento);color:var(--ink)}
.pt-archivo-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes pt-sube{from{transform:translateY(30px);opacity:0}}

/* aviso discreto en los links sueltos (revision.html y seguimiento.html) cuando el cliente tiene portal: está en revision.css */

/* ---------- compu: menú lateral ---------- */
@media (min-width:900px){
  .pt-top,.pt-barra{display:none}
  .pt-lado{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;width:var(--pt-lado);padding:24px 18px 18px;border-right:1px solid var(--line);background:var(--surface);z-index:20}
  .con-franja .pt-lado{top:40px}
  .pt-lado-logo .pt-logo{height:26px}
  .pt-lado-cli{margin:26px 0 18px;display:flex;flex-direction:column;gap:2px}
  .pt-lado-cli b{font:800 20px/1.15 "Bricolage Grotesque",sans-serif;overflow-wrap:anywhere}
  .pt-lado-nav{display:grid;gap:4px}
  .pt-lado-nav .pt-nav-i{flex-direction:row;max-width:none;gap:12px;padding:11px 12px;font-size:15px;color:var(--ink-2)}
  .pt-lado-nav .pt-nav-i svg{width:21px;height:21px}
  .pt-lado-nav .pt-nav-i:hover{background:var(--surface-2);color:var(--ink)}
  .pt-lado-nav .pt-nav-i.on{background:var(--lime-soft);color:var(--ink);box-shadow:inset 3px 0 0 var(--acento)}
  .pt-lado-nav .pt-nav-i.on svg{color:var(--acento)}
  .pt-lado-pie{margin-top:auto;display:grid;gap:14px}
  .pt-lado-pie .pt-contacto{flex-direction:column}
  .pt-lado-pie .pt-contacto .btn{justify-content:flex-start}
  .pt-lado-u{display:flex;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--line)}
  .pt-lado-u > span{flex:1;min-width:0;display:flex;flex-direction:column}
  .pt-lado-u b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pt-lado-u small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pt-main{margin-left:var(--pt-lado);max-width:none;padding:40px clamp(24px,5vw,64px) 60px}
  .pt-main > *{max-width:820px}
  .pt-hola h1{font-size:42px}
  .pt-tarjetas{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
  .pt-tarjeta{flex-direction:column;align-items:flex-start;padding:20px;min-height:150px}
  .pt-t-fl{margin-top:auto;align-self:flex-end}
  .pt-pagos{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .pt-velo{align-items:center}
  .pt-hoja{border-radius:22px;padding:26px}
  .pt-franja{padding-left:calc(var(--pt-lado) + 16px)}
}
@media (max-width:420px){
  .pt-mini-p{grid-template-columns:minmax(0,1fr) 64px auto;gap:10px}
}
@media (max-width:340px){
  .pt-fila2{grid-template-columns:1fr}
  .pt-mini-p{grid-template-columns:minmax(0,1fr) auto}
  .pt-mini-p .pt-barrita{display:none}
  .pt-proy-cab{flex-direction:column;align-items:flex-start}
}
/* ---------- etapa 2: menú «Más» del celular ---------- */
.pt-barra button.pt-nav-i{border:0;background:none;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.pt-mas{display:grid;gap:6px;margin-top:12px}
.pt-mas-i{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);text-decoration:none;font-weight:600}
.pt-mas-i svg{width:22px;height:22px;color:var(--ink-2)}
.pt-mas-i svg:last-child{margin-left:auto;width:18px;height:18px;color:var(--faint)}
.pt-mas-i.on{border-color:var(--acento)}

/* ---------- Inicio: resumen ---------- */
.pt-resumen{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.pt-res{min-width:0;display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.pt-res > svg{flex:none;width:40px;height:40px;padding:9px;border-radius:12px;background:var(--surface-3);color:var(--ink-2)}
.pt-res > span{min-width:0;display:flex;flex-direction:column;gap:1px}
.pt-res b{font:800 20px "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums}
.pt-res small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- Pedidos ---------- */
.pt-hola-acc{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.pt-filtros{display:flex;gap:6px;margin:0 0 14px}
.pt-tab{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:99px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font:600 14px Inter,sans-serif;cursor:pointer}
.pt-tab.on{background:var(--lime-soft);border-color:var(--acento);color:var(--ink)}
.pt-peds{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.pt-ped{min-width:0;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);text-decoration:none;-webkit-tap-highlight-color:transparent}
.pt-ped.nuevo{border-color:color-mix(in srgb,var(--acento) 55%,var(--line))}
.pt-ped-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pt-ped-t > b{display:flex;align-items:center;gap:8px;font-size:16px;overflow-wrap:anywhere}
.pt-ped-t > small{color:var(--muted);font-size:13px}
.pt-ped-pie{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:4px}
.pt-ped-pie small{color:var(--muted);font-size:12.5px}
.pt-ped-pie .pt-ped-nuevo{color:var(--acento);font-weight:600}
.pt-punto{flex:none;width:9px;height:9px;border-radius:50%;background:var(--acento);box-shadow:0 0 0 3px var(--lime-soft)}
.pt-urg{color:var(--danger);font-weight:700}
.pt-estado.pe-recibido{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info)}
.pt-estado.pe-en_curso{background:var(--lime-soft);color:var(--acento)}
.pt-estado.pe-esperando{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.pt-estado.pe-resuelto{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.pt-volver{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px;color:var(--ink-2);text-decoration:none;font-weight:600;font-size:14px;min-height:40px}
.pt-volver svg{width:18px;height:18px}
.pt-ped-cab h1{font-size:26px;line-height:1.15;font-weight:800;margin:0 0 4px;overflow-wrap:anywhere}
.pt-ped-meta{color:var(--muted);font-size:13.5px;margin:0 0 14px}
.pt-pasos{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.pt-pasos li{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:600}
.pt-pasos i{display:block;height:5px;border-radius:99px;background:var(--surface-3)}
.pt-pasos li.hecho i{background:var(--acento)}
.pt-pasos li.ahora i{background:linear-gradient(90deg,var(--acento) 50%,var(--surface-3) 50%)}
.pt-pasos li.ahora,.pt-pasos li.hecho{color:var(--ink)}
.pt-chat{display:flex;flex-direction:column;gap:10px;padding:6px 0 12px}
.pt-m-dia{align-self:center;margin:6px 0 0;font-size:12px;color:var(--faint);font-weight:600}
.pt-m-est{align-self:center;margin:0;padding:4px 12px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.pt-m-est b{color:var(--ink-2)}
.pt-m{display:flex;gap:8px;align-items:flex-end;max-width:88%}
.pt-m.mio{align-self:flex-end;flex-direction:row-reverse}
.pt-m-av{width:28px;height:28px;border-radius:50%;flex:none}
.pt-m-b{min-width:0;padding:10px 13px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.pt-m.sd .pt-m-b{border-bottom-left-radius:5px}
.pt-m.mio .pt-m-b{background:var(--lime-soft);border-color:color-mix(in srgb,var(--acento) 30%,transparent);border-bottom-right-radius:5px}
.pt-m-q{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px}
.pt-m-b p{margin:0;white-space:pre-line;overflow-wrap:anywhere;font-size:15px}
.pt-m-arch{display:grid;gap:6px;margin-top:8px}
.pt-m-a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:13.5px;min-width:0}
.pt-m-a svg{width:16px;height:16px;flex:none;color:var(--ink-2)}
.pt-m-a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pt-m-a small{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}
a.pt-m-a:hover{border-color:var(--line-3)}
.pt-redactar{position:sticky;bottom:calc(var(--pt-barra) + env(safe-area-inset-bottom) + 6px);z-index:10;margin-top:6px;padding:10px;border-radius:18px;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--sombra);display:grid;gap:8px}
.pt-red-f{display:flex;align-items:flex-end;gap:8px}
.pt-red-f textarea{flex:1;min-height:46px;max-height:180px;resize:none;padding:11px 12px}
.pt-clip{flex:none;width:46px;height:46px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.pt-clip svg{width:20px;height:20px}
.pt-enviar{flex:none;width:46px;height:46px;padding:0;display:grid;place-items:center}
.pt-enviar svg{width:20px;height:20px}
.pt-adjs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pt-adjs:empty{display:none}
.pt-adjs li{display:flex;align-items:center;gap:6px;max-width:100%;padding:4px 4px 4px 10px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);font-size:13px}
.pt-adjs li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pt-adjs small{color:var(--muted)}
.pt-quitar{width:28px;height:28px;border:0;border-radius:50%;background:var(--surface-3);color:var(--ink);cursor:pointer;font-size:16px;line-height:1}
.pt-fs{border:0;margin:0;padding:0;min-width:0}
.pt-fs legend{font-size:13px;font-weight:600;color:var(--ink-2);padding:0;margin-bottom:6px}
.pt-campo small{font-weight:400;color:var(--muted)}
.pt-chips{display:flex;flex-wrap:wrap;gap:6px}
.pt-chip,.pt-seg label{position:relative}
.pt-chip input,.pt-seg input{position:absolute;opacity:0;pointer-events:none}
.pt-chip span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:99px;border:1px solid var(--line-2);background:var(--surface-2);font-size:14px;cursor:pointer}
.pt-chip input:checked + span{background:var(--lime-soft);border-color:var(--acento);color:var(--ink);font-weight:600}
.pt-chip input:focus-visible + span,.pt-seg input:focus-visible + span{outline:2px solid var(--acento);outline-offset:2px}
.pt-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.pt-seg span{display:grid;place-items:center;min-height:42px;border-radius:9px;font-weight:600;font-size:14px;color:var(--ink-2);cursor:pointer}
.pt-seg input:checked + span{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.pt-seg label:last-child input:checked + span{color:var(--danger)}
.pt-area{min-height:120px;padding-top:12px;resize:vertical}
select.rv-input{appearance:auto}

/* ---------- Resultados ---------- */
.pt-r-sel{display:grid;gap:10px;margin:0 0 12px}
.pt-r-mes{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center}
.pt-r-mes .rv-tema{width:44px;height:44px}
.pt-r-mes .rv-tema svg{width:20px;height:20px}
.pt-r-mes .rv-tema[disabled]{opacity:.35;cursor:default}
.pt-r-mes select{text-align:center;font-weight:700}
.pt-r-dest{display:flex;flex-direction:column;gap:4px;padding:20px;margin:0 0 10px;border-radius:20px;background:var(--lime);color:var(--lime-ink)}
.pt-r-dest .mono{opacity:.75;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.pt-r-dest b{font:800 44px/1 "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pt-r-dest .pt-var{align-self:flex-start;background:rgba(0,0,0,.1);color:inherit}
.pt-r-dest .pt-r-ant{color:inherit;opacity:.7}
.pt-r-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pt-r-card{min-width:0;display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.pt-r-card > small{color:var(--muted);font-size:12.5px;font-weight:600}
.pt-r-card b{font:800 24px/1.1 "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pt-var{display:inline-block;align-self:flex-start;padding:1px 8px;border-radius:99px;font:700 12.5px Inter,sans-serif;background:var(--surface-3);color:var(--ink-2)}
.pt-var.bien{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.pt-var.mal{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}
.pt-res small.pt-var{padding:0;background:none;white-space:normal}
.pt-r-ant{color:var(--muted);font-size:12px}
.pt-r-box{padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--surface)}
.pt-r-box .pt-hint{margin:-4px 0 12px}
.pt-embudo{display:grid;gap:10px}
.pt-emb{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t n" "b p";gap:4px 10px;align-items:center}
.pt-emb-t{grid-area:t;font-size:13.5px;color:var(--ink-2)}
.pt-emb b{grid-area:n;font-variant-numeric:tabular-nums}
.pt-emb-b{grid-area:b;height:10px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.pt-emb-b i{display:block;height:100%;width:0;border-radius:inherit;background:var(--acento);transition:width .8s cubic-bezier(.22,.8,.24,1)}
.pt-emb small{grid-area:p;color:var(--muted);font-size:12px;min-width:44px;text-align:right}
.pt-gr{display:flex;align-items:flex-end;gap:2px;height:150px;padding-top:28px}
.pt-gr-c{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;padding:0;border:0;background:none;cursor:pointer;min-width:0}
.pt-gr-b{display:block;width:100%;height:0;border-radius:3px 3px 1px 1px;background:var(--acento);opacity:.85;transition:height .6s cubic-bezier(.22,.8,.24,1)}
.pt-gr-b.cero{height:2px!important;background:var(--line-2)}
.pt-gr-c:hover .pt-gr-b,.pt-gr-c.on .pt-gr-b{opacity:1}
.pt-gr-tt{display:none;position:absolute;bottom:100%;left:50%;translate:-50% -4px;padding:3px 8px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:600;white-space:nowrap;z-index:2;pointer-events:none}
.pt-gr-c:nth-child(-n+4) .pt-gr-tt{left:0;translate:0 -4px}
.pt-gr-c:nth-last-child(-n+4) .pt-gr-tt{left:auto;right:0;translate:0 -4px}
.pt-gr-c:hover .pt-gr-tt,.pt-gr-c.on .pt-gr-tt,.pt-gr-c:focus-visible .pt-gr-tt{display:block}
.pt-gr-ej{display:flex;justify-content:space-between;margin-top:6px;color:var(--faint);font-size:11.5px}
.pt-r-pie{margin-top:16px}

/* ---------- Su web ---------- */
.pt-web{padding:18px;border-radius:18px;border:1px solid var(--line);background:var(--surface);margin-bottom:14px;display:grid;gap:12px}
.pt-web .pt-aviso{margin:0}
.pt-web-cab{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}
.pt-web-cab > div{min-width:0}
.pt-web-cab h2{font-size:22px;line-height:1.15;margin:0;overflow-wrap:anywhere}
.pt-web-cab a{color:var(--ink-2);font-size:14px;overflow-wrap:anywhere}
.pt-web-est{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:99px;font-weight:700;font-size:13px;background:var(--surface-3);color:var(--ink-2)}
.pt-web-est i{width:9px;height:9px;border-radius:50%;background:currentColor}
.pt-web-est.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.pt-web-est.ok i{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent);animation:pt-late 2s ease-in-out infinite}
.pt-web-est.warn{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.pt-web-est.mal{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}
@keyframes pt-late{50%{box-shadow:0 0 0 6px transparent}}
.pt-web-datos{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pt-web-datos div{padding:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);min-width:0}
.pt-web-datos dt{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:3px}
.pt-web-datos dd{margin:0;font-weight:600;font-size:14.5px;overflow-wrap:anywhere}
.pt-web-datos dd small{color:var(--muted);font-weight:400}

@media (min-width:900px){
  .pt-resumen{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .pt-peds{gap:10px}
  .pt-r-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pt-r-dest b{font-size:56px}
  .pt-web-datos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pt-redactar{bottom:16px}
  .pt-gr{height:190px}
}
@media (max-width:340px){
  .pt-r-grid,.pt-web-datos{grid-template-columns:minmax(0,1fr)}
  .pt-r-dest b{font-size:36px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- etapa 3: presupuestos online (portal y link suelto), documentos, Mi plan y perfil ---------- */
.pt-seg.neutro label:last-child input:checked + span{color:var(--ink)}
.pt-check{display:flex;align-items:flex-start;gap:10px;padding:10px 0;font-size:14.5px;line-height:1.45;cursor:pointer}
.pt-check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--acento)}
.pt-caja{padding:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface)}
.pt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pt-lado-perfil{min-width:0;display:flex;flex-direction:column;color:inherit;text-decoration:none;border-radius:10px;padding:2px 4px;margin:-2px -4px}
.pt-lado-perfil:hover,.pt-lado-perfil.on{background:var(--surface-2)}
.pt-top-acc a.rv-tema{display:grid;place-items:center;color:inherit}
.pt-top-acc a.rv-tema.on{color:var(--acento)}
.pt-pago-f,.pt-cob-f{display:inline-flex;align-items:center;gap:6px}
.pt-pago-f svg,.pt-cob-f svg{width:16px;height:16px}
.pt-pago .pt-pago-f{justify-self:start}
.pt-cob{flex-wrap:wrap}
/* presupuesto */
.pz{display:block}
.pz-wrap{max-width:760px;padding-bottom:40px}
.pz-cab{margin:4px 0 16px}
.pz-cab h1{font:800 clamp(28px,7vw,40px)/1.05 "Bricolage Grotesque",sans-serif;margin:6px 0 8px;overflow-wrap:anywhere}
.pz-hl{display:inline-block;padding:0 10px;border-radius:10px;background:var(--lime);color:var(--lime-ink);transform:skewX(-8deg)}
.pz-meta{margin:0 0 10px;color:var(--ink-2);font-size:14.5px}
.pz-cab-f{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pz-cab-f small{color:var(--muted);font-size:13px}
.pz-cab-f .btn svg{width:16px;height:16px;margin-right:6px}
.pz-e.lima{background:var(--lime-soft);color:var(--acento)}
.pz-e.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.pz-e.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.pz-e.mal{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}
.pz-banda{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface-2);font-size:14.5px;line-height:1.45}
.pz-banda.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:color-mix(in srgb,var(--ok) 9%,var(--surface))}
.pz-banda svg{flex:none;width:20px;height:20px;color:var(--ok);margin-top:1px}
.pz-total{padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line-2);display:grid;gap:12px}
.pz-tots{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.pz-tots > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.pz-tots small{color:var(--muted);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.pz-tots b{font:800 clamp(20px,5.6vw,26px) "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.pz-inicio{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:var(--lime);color:var(--lime-ink)}
.pz-inicio span{font-weight:700}
.pz-inicio b{font:800 22px "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums}
.pz-pago{margin:0;color:var(--ink-2);font-size:14px}
.pz-pago span{color:var(--muted)}
.pz-chip{justify-self:start;padding:4px 12px;border-radius:99px;background:var(--lime-soft);color:var(--acento);font-weight:700;font-size:13px}
.pz-svcs{display:grid;gap:10px}
.pz-svc{padding:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface)}
.pz-svc-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.pz-svc-h b{font-size:16px;overflow-wrap:anywhere}
.pz-svc-h span{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.pz-svc-h small{color:var(--muted);font-weight:500;font-size:12.5px}
.pz-items{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.pz-items li{display:flex;gap:8px;font-size:14.5px;line-height:1.45;color:var(--ink-2)}
.pz-items svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--acento)}
.pz-no{margin:12px 0 0;color:var(--muted);font-size:13.5px;line-height:1.5}
.pz-no b{color:var(--ink-2)}
.pz-etapas{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pz-etapas li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.pz-etapas b{font:800 18px "Bricolage Grotesque",sans-serif;color:var(--acento);min-width:44px}
.pz-etapas em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.pz-pasos{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pz-pasos li{display:flex;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.pz-pasos li.hot{border-color:var(--acento);background:var(--lime-soft)}
.pz-n{flex:none;font:700 13px "JetBrains Mono",monospace;color:var(--muted);padding-top:2px}
.pz-pasos p{margin:2px 0 0;color:var(--ink-2);font-size:14px;line-height:1.45}
.pz-conds{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pz-conds li{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-size:14px;line-height:1.45}
.pz-conds span{color:var(--ink-2)}
.pz-acc{position:sticky;bottom:calc(var(--pt-barra, 0px) + env(safe-area-inset-bottom) + 8px);z-index:10;margin-top:22px;padding:12px;border-radius:18px;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--sombra);display:grid;gap:8px;justify-items:center}
.pz-acc .btn.primary{width:100%;min-height:50px;font-size:16px}
.pz-acc-2{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 10px;color:var(--muted);font-size:14px}
.pz-acc-s{position:static;box-shadow:none}
.pz-wrap .pz-acc{bottom:calc(env(safe-area-inset-bottom) + 10px)}
.pz-pie{margin:26px 0 0;text-align:center;color:var(--faint);font-size:12.5px}
/* documentos */
.pt-buscar{display:flex;gap:8px;margin:0 0 10px}
.pt-buscar input{flex:1;min-width:0}
.pt-filtros-scroll{overflow-x:auto;scrollbar-width:none;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.pt-filtros-scroll::-webkit-scrollbar{display:none}
.pt-filtros-scroll .pt-tab{flex:none;white-space:nowrap}
.pt-docs{display:grid;gap:8px}
.pt-doc{min-width:0;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);text-decoration:none;-webkit-tap-highlight-color:transparent}
.pt-doc:hover{border-color:var(--line-3)}
.pt-doc-ext{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--surface-3);color:var(--ink-2);font:800 11px "JetBrains Mono",monospace}
.pt-doc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pt-doc-t b{overflow-wrap:anywhere;font-size:15px}
.pt-doc-t small{color:var(--muted);font-size:12.5px}
.pt-doc-b{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--lime-soft);color:var(--acento)}
.pt-doc-b svg{width:18px;height:18px}
/* Mi plan */
.pt-plan{display:grid;gap:8px}
.pt-plan-s{padding:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface)}
.pt-plan-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.pt-plan-h b{font-size:16px;overflow-wrap:anywhere}
.pt-plan-h span{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.pt-plan-h small{color:var(--muted);font-weight:500;font-size:12.5px}
.pt-plan-s p{margin:8px 0 0;color:var(--ink-2);font-size:14px;line-height:1.5;white-space:pre-line}
.pt-plan-tot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:16px;background:var(--lime);color:var(--lime-ink)}
.pt-plan-tot span{display:flex;flex-direction:column;font-weight:700}
.pt-plan-tot small{font-weight:500;font-size:12.5px;opacity:.8}
.pt-plan-tot b{font:800 clamp(20px,6vw,24px) "Bricolage Grotesque",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (min-width:900px){
  .pz-acc{bottom:16px;grid-template-columns:auto 1fr;justify-items:start;align-items:center}
  .pz-acc .btn.primary{width:auto;padding:0 28px}
  .pz-acc-s{grid-template-columns:auto}
  .pt-docs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
