/* JUNTO Personas 2.0 — Scoped styles: no changes to Planes or Gamer */
.j40-page{max-width:560px;margin:0 auto;padding:0 0 22px;color:#f5e8f6}
.j40-header{text-align:center;padding:26px 15px 22px;background:radial-gradient(ellipse at top,#673657 0%,#37243b 48%,transparent 90%);border-radius:22px}
.j40-header>span{font-size:10px;font-weight:800;letter-spacing:2.2px;color:#ffabc9}
.j40-header h1{font-size:clamp(24px,6vw,34px);line-height:1.12;margin:12px 0 9px}
.j40-header h1 span{color:#ff85b4}
.j40-header p{font-size:13px;line-height:1.6;color:#decedf;max-width:300px;margin:0 auto}
.j40-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border:1px solid #6f5673;background:#201b2b;padding:5px;border-radius:16px;margin:16px 0}
.j40-tabs button{padding:12px 3px;border-radius:12px;background:transparent;color:#d1bbd4;font-weight:700;font-size:12px;line-height:1.25}
.j40-tabs button.selected{background:#91517f;color:#fff;box-shadow:0 2px 12px #b367a34a}
.j40-tabs button:focus-visible,.j40-action:focus-visible{outline:3px solid #ffd1e9;outline-offset:3px}
.j40-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:11px 0}
.j40-filter{display:flex;align-items:center;gap:7px;font-size:12px;color:#e0cadf}
.j40-filter input{accent-color:#d78cb6}
.j40-hint{font-size:12px;color:#d5c3d8;line-height:1.5;margin:12px 3px}
.j40-card{width:100%;max-width:435px;margin:16px auto;overflow:hidden;border:1px solid #6a506e;border-radius:27px;background:#211b2c;box-shadow:0 16px 42px #09060d64;touch-action:pan-y;user-select:none}
.j40-picture{height:clamp(300px,75vw,465px);position:relative;background:linear-gradient(145deg,#3e2b49,#9a547c 60%,#3d2346);overflow:hidden}
.j40-picture>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.j40-placeholder{height:100%;display:flex;align-items:center;justify-content:center;font-size:115px;color:#f0c9dc;background:linear-gradient(145deg,#452a5b,#ab688d)}
.j40-photo-shade{pointer-events:none;position:absolute;inset:30% 0 0;background:linear-gradient(transparent,rgba(15,10,24,.92))}
.j40-photo-label{position:absolute;bottom:17px;left:19px;right:19px;text-shadow:0 2px 7px #130e15c0}
.j40-photo-label h3{font-size:clamp(23px,6vw,29px);line-height:1.15;margin:0 0 7px;color:#fff}
.j40-photo-label p{margin:0 0 10px;font-size:13px;color:#f1e1f1}
.j40-pill{display:inline-block;background:#7a436cdd;border:1px solid #f2b4d577;padding:7px 11px;border-radius:30px;font-size:11px;font-weight:750;color:#fff;text-shadow:none}
.j40-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#58e6a6;vertical-align:middle;margin-left:5px;box-shadow:0 0 8px #58e6a6}
.j40-bio{margin:0;padding:17px 20px 5px;color:#e9dae9;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;overflow:auto}
.j40-actions{display:flex;justify-content:center;align-items:center;gap:17px;padding:16px 14px 20px}
.j40-action{border-radius:50%;height:57px;min-width:57px;border:1px solid #72577a;background:#33283d;color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s,box-shadow .18s}
.j40-action:hover{transform:translateY(-3px)}
.j40-heart{background:#a64378;border-color:#e1a2c6;color:#fff;box-shadow:0 5px 18px #df58974d}
.j40-heart span{font-size:12px;font-weight:700;margin-left:7px}
.j40-received .j40-card{max-width:360px}
.j40-received .j40-action{width:auto;border-radius:999px;padding:0 20px}
.j40-no{color:#f9b3c8}
.j40-letter{color:#cdbdff}
.j40-count{text-align:center;font-size:12px;color:#cdb5d0;margin:6px 0 20px}
.j40-empty{padding:25px 15px;border:1px dashed #7d6485;border-radius:17px;background:#322637;color:#e1cfe2;text-align:center;font-size:13px;line-height:1.6;margin:12px 0}
.j40-notice{font-size:12px;text-align:center;color:#d6b6d9}
.j40-safety{border-top:1px solid #58445f;margin:24px 0 0;padding:17px 8px;color:#c8b6ce;font-size:11px;line-height:1.6}
.j40-page h3{font-size:18px;margin:20px 0 13px}
.j40-request{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:start;border:1px solid #594662;border-radius:16px;padding:12px;margin:10px 0;background:#292131}
.j40-mini{width:54px;height:54px;border-radius:50%;background:#593b61;overflow:hidden;display:grid;place-items:center}
.j40-mini img{height:100%;width:100%;object-fit:cover}
.j40-mini .j40-placeholder{font-size:30px;width:100%}
.j40-request strong{display:block;font-size:14px;margin:5px 0;color:#f6e5f7}
.j40-intro-preview{font-size:12px;line-height:1.55;color:#ddcbdc;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}
.j40-request-actions{display:flex;flex-wrap:wrap;gap:8px;margin:9px 0 0}
.j40-request-actions .btn{font-size:11px;padding:9px 12px;min-height:34px}
.j40-modal{width:min(94vw,440px);border:1px solid #86678f;border-radius:21px;background:#282134;color:#f9edfa;padding:23px;box-shadow:0 20px 70px #0009}
.j40-modal::backdrop{background:#09050cba;backdrop-filter:blur(4px)}
.j40-modal h2{font-size:21px;margin:0 0 8px}
.j40-modal p{font-size:13px;color:#e2cfe4;line-height:1.5}
.j40-modal textarea{width:100%;min-height:105px;border:1px solid #7b627f;border-radius:13px;box-sizing:border-box;background:#15121d;color:#fff;padding:12px;font:inherit;resize:vertical}
.j40-modal small{font-size:11px;display:block;margin-top:7px;color:#c5b1c9}
.j40-modal-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.j40-modal .j40-error{color:#ffb3bd}
@media(max-width:380px){.j40-tabs button{font-size:11px}.j40-actions{gap:12px}.j40-action{height:52px;min-width:52px}.j40-card{border-radius:20px}}
@media(prefers-reduced-motion:reduce){.j40-action{transition:none}}

/* Personas: perfil protagonista, controles suaves y secundarios */
.j40-page{padding-top:0}
.j40-header{padding:10px 7px 2px;background:none;border:0;text-align:left;border-radius:0}
.j40-header>span{font-size:9px;letter-spacing:1.8px;color:#caa6c1}
.j40-header h1{font-size:clamp(20px,5.6vw,25px);margin:4px 0 10px;font-weight:760;line-height:1.2}
.j40-header h1 span{font-size:.78em}
.j40-card{margin:6px auto 8px;border-color:#604862;box-shadow:0 5px 22px #09060d38;border-radius:22px}
.j40-picture{height:clamp(310px,82vw,490px)}
.j40-tabs{display:flex;align-items:center;gap:5px;overflow-x:auto;border:0;border-radius:12px;padding:5px 2px;margin:8px 0 14px;background:transparent;scrollbar-width:none}
.j40-tabs::-webkit-scrollbar{display:none}
.j40-tabs button{flex:0 0 auto;min-width:auto;white-space:nowrap;font-size:11px;border:1px solid #5b435d;border-radius:999px;background:#2d2233;padding:10px 13px;color:#e1ccdf;box-shadow:none}
.j40-tabs button.selected{border-color:#b27b9c;background:#69435e;color:#fff;box-shadow:none}
.j40-toolbar{margin:5px 0 4px}
.j40-toolbar .btn{font-size:11px;padding:7px 12px;background:#362a40}
.j40-filter{margin:0;font-size:11px}
.j40-hint{margin:8px 2px;color:#c4b3c5}
.j40-count{margin:0;color:#bba8bf}
.j40-safety{font-size:10px;opacity:.68;margin-top:15px;padding:12px 3px}
.j40-admin-tabs{display:flex}
.j40-received .j40-card{margin-top:10px}
