:root{
  --bordo:#8b1a2a; --bordo-light:#a83040; --crema:#f5f0e8; --crema-dark:#e8e0d0;
  --azul:#8bbdd9; --dark:#1a1a1a; --muted:#5a5a5a;
}
/* Las fuentes se cargan con <link> en mi-viaje.html (como el resto del sitio). */
*{box-sizing:border-box}
body{margin:0;font-family:'Lato',sans-serif;background:var(--crema);color:var(--dark)}
.serif{font-family:'Playfair Display',serif}
.pt-hidden{display:none!important}

/* Login */
.pt-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.pt-login h1{font-family:'Playfair Display',serif;color:var(--bordo);margin:.2em 0}
.pt-login form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;margin-top:16px}
.pt-input{padding:13px 14px;border:1px solid var(--crema-dark);border-radius:12px;font-size:16px;background:#fff}
.pt-btn{background:var(--bordo);color:var(--crema);border:none;border-radius:12px;padding:13px;font-weight:800;font-size:15px;cursor:pointer}
.pt-error{color:var(--bordo);font-size:13px;min-height:18px}

/* App */
.pt-head{background:var(--bordo);color:var(--crema);padding:18px 20px;display:flex;align-items:center;justify-content:space-between}
.pt-logo{letter-spacing:3px;font-weight:900;font-size:12px}
.pt-wrap{max-width:900px;margin:0 auto;padding:16px}
.pt-ticket{background:#fff;border-radius:16px;box-shadow:0 8px 20px rgba(0,0,0,.1);overflow:hidden;margin-bottom:16px}
.pt-route{display:flex;justify-content:center;gap:36px;font-family:'Playfair Display',serif;font-size:26px;padding:16px 16px 2px}
.pt-route .pl{color:var(--bordo);font-size:16px}
.pt-dest{text-align:center;color:var(--bordo);letter-spacing:2px;font-size:12px}
.pt-perf{border-top:2px dashed var(--crema-dark);margin:8px 0}
.pt-tkbot{display:flex;justify-content:space-around;font-size:12px;color:var(--muted);padding:8px 12px}
.pt-tkbot b{display:block;color:var(--dark)}
.pt-stat{background:var(--bordo);color:#fff;text-align:center;font-weight:800;letter-spacing:1.5px;padding:9px;font-size:12px}
.pt-lbl{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--bordo);font-weight:900;margin:18px 0 8px}
.pt-chip{display:inline-block;background:#fff;border:1px solid var(--crema-dark);border-radius:20px;padding:5px 12px;font-size:13px;margin:0 6px 6px 0}
.pt-vch{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--crema-dark);border-radius:12px;padding:11px 13px;margin-bottom:8px}
.pt-dl{margin-left:auto;background:var(--bordo);color:var(--crema);border-radius:9px;padding:6px 12px;font-size:12px;font-weight:700;text-decoration:none}
.pt-block{background:#fff;border:1px solid var(--crema-dark);border-radius:12px;padding:13px;margin-bottom:8px;font-size:14px;line-height:1.6}
.pt-block h3{margin:.2em 0;font-size:14px}
@media(min-width:720px){ .pt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px} .pt-grid .pt-span{grid-column:1/-1} }

.pt-card{background:#fff;border:1px solid var(--crema-dark);border-radius:14px;padding:16px;margin-bottom:14px}
.pt-bal-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.pt-bal-row b{color:var(--bordo)}
.pt-track{height:9px;background:#efe7d8;border-radius:6px;overflow:hidden;margin:6px 0}
.pt-fill{height:100%;background:var(--bordo)}
.pt-bal-sub{font-size:12px;color:var(--muted)}
.pt-puntos{background:var(--bordo);border-color:var(--bordo);color:var(--crema)}
.pt-puntos .pt-lbl{color:#f0c9cf;margin-top:0}
.pt-pts-num{font-family:'Playfair Display',serif;font-size:32px;line-height:1.1}
.pt-pts-eq{font-size:12px;opacity:.92}

/* Balance por pasajero (filas desplegables) */
.pt-dpax{background:#fff;border:1px solid var(--crema-dark);border-radius:12px;margin-bottom:8px;overflow:hidden}
.pt-dpax-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;gap:10px}
.pt-dpax-name{font-weight:700;font-size:14px;display:flex;align-items:center}
.pt-dpax-you{font-size:10px;color:var(--bordo);border:1px solid var(--bordo);border-radius:20px;padding:1px 7px;margin-left:8px;font-weight:700}
.pt-dpax-falta{font-size:13px;font-weight:700;color:var(--bordo);white-space:nowrap}
.pt-dpax-ok{color:#1f7a4d}
.pt-chev{color:#b09b7a;font-size:11px;margin-right:8px;transition:transform .15s;display:inline-block}
.pt-dpax.pt-open .pt-chev{transform:rotate(90deg)}
.pt-dpax-detail{display:none;padding:0 14px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--crema-dark)}
.pt-dpax.pt-open .pt-dpax-detail{display:block}
.pt-dpax-row{display:flex;justify-content:space-between;padding:5px 0}
.pt-dpax-row b{color:var(--dark)}
.pt-dpax-mini{height:6px;background:#efe7d8;border-radius:6px;overflow:hidden;margin:6px 0 2px}
.pt-dpax-mini>div{height:100%;background:var(--bordo)}
