/* ==========================================================================
   SusAstros | Portal de clientes
   Mismo mundo visual que el resto del sitio (papel, violeta, Bricolage +
   Manrope + DM Mono), pero con cara de espacio de socio, no de escritorio
   de trabajo: menos densidad, más aire, tarjetas más grandes.
   ========================================================================== */

:root{
  --paper:#EDEBF3; --blanco:#FFFFFF; --paper-3:#E3DFEE;
  --rule:#C9C2DD; --rule-2:#A79EC4;
  --ink:#171429; --ink-2:#575074;
  --accent:#5B2BD9; --accent-oscuro:#4720AE; --accent-suave:#EDE6FF;
  --bien:#0F7B57; --bien-suave:#DCF3EA;
  --mal:#B3261E; --mal-suave:#FCE8E6;
  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.026em;line-height:1.15;margin:0}
h1{font-size:clamp(1.7rem,3.4vw,2.3rem)}
h2{font-size:1.3rem}
h3{font-size:1.05rem}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
[hidden]{display:none !important}

/* ---------- Barra superior ---------- */
.barra{position:sticky;top:0;z-index:40;background:rgba(237,235,243,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.barra-in{max-width:1080px;margin-inline:auto;padding:.9rem clamp(1rem,3vw,2rem);display:flex;align-items:center;gap:1.2rem}
.marca{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:1.05rem}
.marca svg{width:26px;height:26px;color:var(--accent)}
.yo{margin-left:auto;display:flex;align-items:center;gap:.9rem;font-size:.9rem;color:var(--ink-2)}
.yo b{color:var(--ink);font-weight:600}

/* ---------- Estructura ---------- */
.hoja{max-width:1080px;margin-inline:auto;padding:clamp(1.6rem,4vw,3rem) clamp(1rem,3vw,2rem)}
.cabeza{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.cabeza p{color:var(--ink-2);font-size:1rem;margin-top:.4rem}
.volver{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-2);text-decoration:none;font-size:.9rem;font-weight:600;margin-bottom:1rem}
.volver:hover{color:var(--accent)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:46px;background:var(--accent);color:#fff;font-family:var(--body);font-weight:700;font-size:.97rem;border:1px solid var(--accent);border-radius:10px;padding:.6rem 1.3rem;cursor:pointer;transition:background .2s var(--ease);text-decoration:none}
.btn:hover:not(:disabled){background:var(--accent-oscuro)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn--fino{background:var(--blanco);color:var(--ink);border-color:var(--rule-2)}
.btn--fino:hover:not(:disabled){background:var(--paper-3)}
.btn--ancho{width:100%}

/* ---------- Categorías y productos comprados ---------- */
.categoria{margin-bottom:2.2rem}
.categoria h2{margin-bottom:.9rem}
.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.tarjeta-prod{display:flex;flex-direction:column;gap:.6rem;background:var(--blanco);border:1px solid var(--rule);border-radius:16px;padding:1.3rem;text-decoration:none;color:var(--ink);transition:border-color .2s var(--ease),transform .15s var(--ease)}
.tarjeta-prod:hover{border-color:var(--accent);transform:translateY(-2px)}
.tarjeta-prod h3{font-size:1.1rem}
.tarjeta-prod p{color:var(--ink-2);font-size:.9rem}
.tarjeta-prod .cant{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-suave);padding:.25rem .55rem;border-radius:999px;align-self:flex-start}

.vacio{background:var(--blanco);border:1px dashed var(--rule-2);border-radius:14px;padding:3rem 1.5rem;text-align:center;color:var(--ink-2)}
.cargando{color:var(--ink-2);padding:2rem 0;text-align:center}
.msg{border-radius:10px;padding:.75rem 1rem;font-size:.92rem;font-weight:600}
.msg--mal{background:var(--mal-suave);color:var(--mal)}
.msg--bien{background:var(--bien-suave);color:var(--bien)}

/* ---------- Unidades de un producto (ej. meses de la agenda) ---------- */
.unidades{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;margin-bottom:2rem}
.unidad-btn{background:var(--blanco);border:1.5px solid var(--rule);border-radius:12px;padding:.9rem;text-align:left;font-family:var(--body);font-weight:700;color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease)}
.unidad-btn:hover{border-color:var(--rule-2)}
.unidad-btn[aria-current=true]{border-color:var(--accent);background:var(--accent-suave);color:var(--accent-oscuro)}

.lectura{background:var(--blanco);border:1px solid var(--rule);border-radius:16px;padding:clamp(1.4rem,3vw,2.4rem)}
.lectura h2{margin-bottom:1rem}
.lectura-cuerpo{font-size:1.02rem;line-height:1.75}
.lectura-cuerpo p{margin-bottom:1rem}
.lectura-cuerpo p:last-child{margin-bottom:0}

/* ---------- Entrar / crear cuenta ---------- */
.entrar{min-height:100svh;display:grid;place-items:center;padding:1.5rem}
.entrar-caja{width:min(100%,400px);background:var(--blanco);border:1px solid var(--rule);border-radius:18px;padding:clamp(1.8rem,4vw,2.6rem);display:flex;flex-direction:column;gap:1.2rem}
.entrar-caja h1{font-size:1.6rem}
.entrar-caja .sub{color:var(--ink-2);font-size:.94rem;margin-top:.3rem}
.campo{display:flex;flex-direction:column;gap:.4rem}
.campo label{font-weight:600;font-size:.92rem}
input[type=text],input[type=email],input[type=password]{font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--blanco);border:1.5px solid var(--rule-2);border-radius:10px;padding:.65rem .8rem;min-height:48px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);width:100%}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,43,217,.15)}
.err{color:var(--mal);font-size:.85rem;font-weight:600;min-height:1.1em}
.pie-entrar{text-align:center;font-size:.9rem;color:var(--ink-2)}
.enlace-fino{font-size:.87rem;text-align:right}

/* ---------- Contraseña con mostrar/ocultar ---------- */
.campo-pass{position:relative}
.campo-pass input{padding-right:2.8rem}
.btn-ojo{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:none;border:0;color:var(--ink-2);cursor:pointer;padding:0;border-radius:8px}
.btn-ojo:hover{background:var(--paper-3);color:var(--ink)}

/* ---------- Admin (productos y contenido) ---------- */
.panel-admin{background:var(--blanco);border:1px solid var(--rule);border-radius:16px;padding:clamp(1.2rem,3vw,1.8rem);margin-bottom:1.6rem}
.panel-admin h2{margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
select,textarea{font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--blanco);border:1.5px solid var(--rule-2);border-radius:10px;padding:.65rem .8rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
select{min-height:48px}
textarea{min-height:140px;width:100%;resize:vertical;font-family:var(--mono);font-size:.92rem}
select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,43,217,.15)}
.tabla-admin{width:100%;border-collapse:collapse}
.tabla-admin th,.tabla-admin td{padding:.6rem .7rem;text-align:left;border-bottom:1px solid var(--rule);font-size:.92rem}
.tabla-admin th{color:var(--ink-2);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.tabla-admin tr:last-child td{border-bottom:0}
.tabla-admin tr:hover td{background:var(--paper)}
.fila-clic{cursor:pointer}
.envoltura-tabla{overflow-x:auto}
.form-admin{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--rule)}
.form-admin .campo--ancho{grid-column:1/-1}
.form-admin .acciones{grid-column:1/-1;display:flex;gap:.6rem;flex-wrap:wrap}
.palanca{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--ink-2);cursor:pointer;user-select:none}
.palanca input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}
.etq-admin{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .5rem;border-radius:999px;background:var(--accent-suave);color:var(--accent-oscuro)}
.etq-admin--apagado{background:var(--paper-3);color:var(--ink-2)}

@media (max-width:640px){
  .yo span.solo-desktop{display:none}
  .rejilla,.unidades{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms !important}}
