/* pilar-es · Portal de clientes. Se apoya en los estilos del administrador (admin.css). */

.pt-org{margin:14px 8px 0;padding:12px 14px;border-radius:14px;background:var(--canvas);border:1px solid var(--line)}
.pt-org small{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pt-org b{display:block;margin-top:2px;line-height:1.25}

/* Apps compradas */
.pt-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.pt-app{display:grid;gap:14px;align-content:start;padding:22px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-1);transition:border-color .2s,box-shadow .2s,transform .3s var(--ease)}
.pt-app:hover{border-color:var(--accent-200);box-shadow:var(--shadow-2);transform:translateY(-2px)}
.pt-app header{display:flex;align-items:center;gap:14px}
.pt-app h2{font-size:1.1875rem;letter-spacing:-.02em;margin:0 0 4px}
.pt-app .muted{font-size:.875rem;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pt-app footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.pt-app footer .btn{--h:38px;font-size:.875rem}
.pt-app footer .btn .icon{width:16px;height:16px}
.app-mark.pt-mark,.pt-mark{width:52px;height:52px;border-radius:14px;flex:none;background:var(--accent-50);border:1px solid var(--accent-100);color:var(--accent);display:grid;place-items:center}
.app-mark.app-mark-img.pt-mark{background:transparent;border:0;border-radius:0}
.pt-mark .icon{width:24px;height:24px}
.pt-mark-sm{width:40px!important;height:40px!important;border-radius:11px}
.pt-mark-sm .icon{width:20px;height:20px}
.pt-mark-lg{width:72px!important;height:72px!important;border-radius:18px}
.pt-mark-lg .icon{width:34px;height:34px}
.pt-lic-top{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--text-2);margin-bottom:6px}
.pt-lic-top b{color:var(--text);font-variant-numeric:tabular-nums}
.pt-meter{height:8px;border-radius:999px;background:var(--canvas);overflow:hidden}
.pt-meter i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.pt-meter.is-full i{background:var(--warn)}
.pt-renew{font-size:.8125rem;color:var(--muted);margin:-4px 0 0}
.pt-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.pt-more-card{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:16px;text-decoration:none;color:var(--text);transition:border-color .2s}
.pt-more-card:hover{border-color:var(--accent)}
.pt-more-card b{display:block}.pt-more-card small{color:var(--muted)}
.pt-tables{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.pt-tables li{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;align-items:baseline;font-size:.8125rem;padding:8px 0;border-top:1px solid var(--line)}
.pt-tables li:first-child{border-top:0}
.pt-tables span{color:var(--text-2);word-break:break-word}

/* Abrir una app: «Actualizando archivos» */
.pt-updating{max-width:620px;margin:6vh auto 0;text-align:center;display:grid;justify-items:center;gap:14px;padding:clamp(24px,4vw,44px);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-2)}
.pt-updating h1{font-size:clamp(1.75rem,3.4vw,2.25rem);letter-spacing:-.035em;font-weight:760}
.pt-updating p{color:var(--text-2);max-width:46ch;margin:0}
.pt-progress{width:100%;max-width:420px;height:10px;border-radius:999px;background:var(--canvas);overflow:hidden;margin:8px 0}
.pt-progress i{display:block;height:100%;width:42%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-200),var(--accent));background-size:200% 100%;animation:pt-slide 1.6s ease-in-out infinite alternate,pt-shine 1.2s linear infinite}
@keyframes pt-slide{from{transform:translateX(-30%)}to{transform:translateX(150%)}}
@keyframes pt-shine{to{background-position:-200% 0}}
.pt-steps{list-style:none;padding:0;margin:0 0 8px;display:grid;gap:6px;text-align:left;font-size:.9375rem;color:var(--muted)}
.pt-steps li::before{content:"○";margin-right:10px}
.pt-steps li.is-done{color:var(--ok)}.pt-steps li.is-done::before{content:"✓"}
.pt-steps li.is-now{color:var(--text);font-weight:650}.pt-steps li.is-now::before{content:"●";color:var(--accent)}

/* Contraseña con ojito */
.pt-pw{position:relative}
.pt-pw input{padding-right:52px!important}
.pt-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;border-radius:10px;color:var(--muted);cursor:pointer}
.pt-eye:hover{background:var(--canvas);color:var(--text)}
.pt-eye svg{width:20px;height:20px}
.pt-eye .eye-off{display:none}
.pt-eye[aria-pressed=true] .eye-on{display:none}
.pt-eye[aria-pressed=true] .eye-off{display:block}
.pt-terms{align-items:flex-start;gap:12px}
.pt-terms em{font-style:normal;font-size:.9375rem;font-weight:500;color:var(--text-2);line-height:1.45}
.pt-terms a{font-weight:650}

/* Acceso a apps por usuario */
.pt-access{display:grid;gap:8px}
.pt-access-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line-2);border-radius:14px;background:#fff;cursor:pointer}
.pt-access-row input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:0}
.pt-access-row b{display:block;font-size:.9375rem}
.pt-access-row small{color:var(--muted)}
.pt-access-row:has(input:checked){border-color:var(--accent);background:var(--accent-50)}
.pt-access-row.is-blocked{opacity:.55;cursor:not-allowed}
.pt-lic-stat strong{font-size:1.5rem}
.ad-cfg{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.cart-note b{color:inherit}

@media (max-width:980px){.ad-cfg{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pt-progress i{animation:none;width:60%}}

/* Pantallas de acceso y activación en computador: todo el contenido cabe en el alto de la ventana, sin scroll vertical */
@media (min-width:981px){
  .pt .ad-auth{height:100vh;min-height:0;overflow:hidden}
  .pt .ad-auth-art{min-height:0}
  .pt .ad-auth-card{justify-content:center;overflow-y:auto;padding:clamp(12px,3vh,44px) clamp(28px,5vw,64px);gap:clamp(4px,1vh,12px)}
  .pt .ad-auth-card .brand{margin-bottom:clamp(0px,.8vh,10px)}
  .pt .ad-auth-card .brand .logo{height:clamp(26px,4vh,34px);width:clamp(26px,4vh,34px)}
  .pt .ad-auth-card .kicker{margin:0}
  .pt .ad-auth-card h1{font-size:clamp(1.5rem,3.6vh,2.125rem)}
  .pt .ad-auth-card .ad-lead{font-size:clamp(.8125rem,1.8vh,.9375rem);line-height:1.4;margin:0}
  .pt .ad-auth-card .ad-form{gap:clamp(6px,1.5vh,14px);margin-top:clamp(2px,1vh,12px)}
  .pt .ad-auth-card .field{gap:3px}
  .pt .ad-auth-card .field-label-vis{font-size:.8125rem}
  .pt .ad-auth-card input:not([type=checkbox]){min-height:clamp(36px,5.4vh,48px);padding-top:5px;padding-bottom:5px;font-size:.9375rem}
  .pt .ad-auth-card .field-help{font-size:.75rem;line-height:1.3}
  .pt .ad-auth-card .btn-lg{--h:clamp(40px,5.8vh,52px)}
  .pt .ad-auth-card .ad-auth-foot{margin:0;font-size:.8125rem}
  .pt .ad-auth-card .pt-terms em{font-size:.8125rem;line-height:1.35}
  .pt .ad-auth-card .ad-switch span{flex:none}
}

/* Registro, subdominio y aprovisionamiento */
.pt-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.pt-row2{grid-template-columns:1fr}}
.pt-sub{display:flex;align-items:stretch;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.pt-sub:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-50)}
.pt-sub input{border:0!important;box-shadow:none!important;border-radius:0!important;min-width:0;flex:1}
.pt-sub-suffix{display:flex;align-items:center;padding:0 14px;background:var(--canvas);color:var(--text-2);font-weight:650;border-left:1px solid var(--line);white-space:nowrap}
.pt-sub-msg{font-size:.875rem;color:var(--muted);margin:2px 0 0;min-height:1.3em}
.pt-sub-msg.is-ok{color:var(--ok);font-weight:650}
.pt-sub-msg.is-bad{color:var(--bad);font-weight:650}
.pt-sub-preview{margin:0;padding:12px 14px;border-radius:12px;background:var(--accent-50);border:1px solid var(--accent-100);color:var(--accent-800);font-size:.9375rem}
.pt-sub-preview b{word-break:break-all}
.pt-prov{display:grid;gap:18px}
.pt-prov-host{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;background:var(--accent-50);border:1px solid var(--accent-100);color:var(--accent-800);font-size:1.0625rem}
.pt-prov-host .icon{flex:none}
.pt-prov-host b{word-break:break-all}
.pt-progress-lg{max-width:none;height:12px;margin:0}
.pt-progress-lg i{transition:width .7s var(--ease);animation:none;width:8%;background:linear-gradient(90deg,var(--accent),#e23b3b,var(--accent));background-size:200% 100%;animation:pt-shine 1.2s linear infinite}
.pt-prov-steps{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:.9375rem;color:var(--muted)}
.pt-prov-steps li{display:flex;align-items:center;gap:12px}
.pt-prov-steps li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line-2);box-sizing:border-box}
.pt-prov-steps li.is-now{color:var(--text);font-weight:650}
.pt-prov-steps li.is-now::before{border-color:var(--accent);border-top-color:transparent;animation:spin .8s linear infinite}
.pt-prov-steps li.is-done{color:var(--ok)}
.pt-prov-steps li.is-done::before{border-color:var(--ok);background:var(--ok) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
@keyframes spin{to{transform:rotate(360deg)}}
[hidden]{display:none!important}

.pt-row2>.field{margin:0!important}
.pt .ad-auth-card .field+.field{margin-top:0}
