/* Mi cuenta · portal del donante — se apoya en ../css/landing.css (tokens, header, botones, footer) */

.skip{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:var(--purple);padding:10px 16px;border-radius:10px;font-weight:700}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ico{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ── Acceso (login / crear contraseña): foto a sangre + tarjeta ───────────── */
.gate{position:relative;min-height:max(720px,100svh);display:flex;align-items:center;overflow:hidden;background:var(--plum-900);color:#fff}
.gate img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 45%;animation:kb 16s linear forwards}
.gate::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(31,10,28,.9) 0%,rgba(31,10,28,.62) 45%,rgba(31,10,28,.25) 100%)}
.gate::after{content:"";position:absolute;inset:0 0 auto 0;height:200px;z-index:1;background:linear-gradient(180deg,rgba(31,10,28,.75),rgba(31,10,28,0))}
.gate .wrap{position:relative;z-index:2;width:100%;display:grid;gap:36px;align-items:center;padding-top:124px;padding-bottom:64px}
@media(min-width:1024px){.gate .wrap{grid-template-columns:minmax(0,1fr) 440px;gap:64px;padding-top:140px;padding-bottom:88px}}
@media(max-width:767px){.gate{min-height:auto}.gate::before{background:linear-gradient(0deg,rgba(31,10,28,.92) 0%,rgba(31,10,28,.6) 55%,rgba(31,10,28,.45) 100%)}.gate .wrap{padding-top:104px}}
.gate h1{font-size:clamp(2.2rem,4.4vw,3.9rem);font-weight:800;max-width:15ch;margin-top:18px;text-wrap:balance}
.gate .intro{max-width:520px;margin-top:16px;font-size:clamp(1rem,1.35vw,1.15rem);color:rgba(255,255,255,.9)}
.perks{list-style:none;display:grid;gap:14px;margin-top:30px;max-width:520px}
.perks li{display:flex;gap:14px;align-items:flex-start;font-size:15px;color:rgba(255,255,255,.88)}
.perks b{display:block;color:#fff;font-family:var(--display);font-size:16.5px;letter-spacing:-.01em}
.perks .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);color:var(--gold)}
.perks .ic .ico{width:22px;height:22px}
@media(max-width:1023px){.perks{display:none}}

.panel{background:#fff;color:var(--ink);border-radius:26px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55);padding:28px}
@media(min-width:768px){.panel{padding:36px}}
.panel .kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--purple)}
.panel .kicker .ico{width:16px;height:16px}
.panel h2{font-size:clamp(1.6rem,2.4vw,2rem);color:var(--plum-900);margin-top:10px}
.panel .sub{color:var(--ink-soft);margin-top:6px;font-size:15px}
.panel form{margin-top:22px}
.field{display:block;margin-bottom:14px}
.field>span:first-child{display:block;font-size:13px;font-weight:700;color:var(--ink-soft);margin-bottom:7px}
.panel .input{display:flex;align-items:center;gap:10px;border:2px solid var(--line);border-radius:12px;padding:0 14px;background:#fff;transition:border-color .2s}
.panel .input:focus-within{border-color:var(--purple)}
.input>.ico{width:19px;height:19px;color:var(--ink-mute)}
.input input{flex:1;min-width:0;border:0;outline:0;padding:13px 0;font:inherit;font-size:15.5px;background:transparent;color:var(--ink)}
.input input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #fff inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink)}
.input input::placeholder{color:var(--ink-mute)}
.input button{border:0;background:none;cursor:pointer;color:var(--ink-mute);display:grid;place-items:center;padding:6px;border-radius:8px}
.input button:hover,.input button[aria-pressed="true"]{color:var(--purple)}
.input button .ico{width:19px;height:19px}
.panel .btn{width:100%;margin-top:6px}
.msg{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:12px 14px;font-size:14px;margin-top:18px}
.msg .ico{width:18px;height:18px;margin-top:2px}
.msg.err{background:#fef2f2;color:#b91c1c}
.msg.ok{background:var(--green-soft);color:#33502a}
.forgot{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.forgot summary{cursor:pointer;list-style:none;font-size:14px;font-weight:700;color:var(--purple);display:inline-flex;align-items:center;gap:6px}
.forgot summary::-webkit-details-marker{display:none}
.forgot summary::after{content:"→";transition:transform .3s var(--ease)}
.forgot[open] summary::after{transform:rotate(90deg)}
.forgot p{font-size:14px;color:var(--ink-soft);margin:10px 0 12px}
.forgot .row{display:flex;gap:8px;flex-wrap:wrap}
.forgot .row .input{flex:1 1 200px}
.forgot .row .btn{width:auto;margin:0;padding:13px 20px;font-size:15px;background:var(--plum-100);color:var(--purple);box-shadow:none}
.forgot .row .btn:hover{background:var(--plum-200)}
.alt{margin-top:18px;font-size:14px;color:var(--ink-soft);text-align:center}
.alt a{color:var(--purple);font-weight:700}
.secure{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--ink-mute)}
.secure .ico{width:15px;height:15px}

/* ── Panel del donante ───────────────────────────────────────────────────── */
.hero.dash{min-height:440px}
.hero.dash .wrap{padding-bottom:120px}
.hero.dash h1{max-width:20ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
@media(min-width:1024px){.hero.dash{min-height:480px}.hero.dash .wrap{padding-bottom:136px}}

.kpis{position:relative;z-index:5;display:grid;gap:14px;margin-top:-84px}
@media(min-width:720px){.kpis{grid-template-columns:repeat(3,1fr);gap:18px}}
.kpi{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--soft);padding:20px 22px}
.kpi .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:none}
.kpi .ic .ico{width:26px;height:26px}
.kpi b{display:block;font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--plum-900)}
.kpi span{display:block;font-size:13.5px;font-weight:600;color:var(--ink-soft);margin-top:3px}

.dash-body{padding:48px 0 80px;display:grid;gap:22px}
@media(min-width:1024px){.dash-body{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:28px}.dash-body .history{grid-column:1/-1}}
.box{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px}
@media(min-width:768px){.box{padding:30px}}
.box h2{font-size:clamp(1.4rem,2.2vw,1.8rem);color:var(--plum-900);margin-top:12px}
.box .note{color:var(--ink-soft);font-size:14.5px;margin-top:6px}

.bars{list-style:none;display:grid;gap:18px;margin-top:22px}
.bars .top-row{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.bars .name{display:flex;align-items:center;gap:10px;font-weight:600;min-width:0}
.bars .dot{width:10px;height:10px;border-radius:50%;flex:none}
.bars .sum{font-family:var(--display);font-weight:700;white-space:nowrap}
.bars .track{height:10px;border-radius:99px;background:var(--plum-100);margin-top:8px;overflow:hidden}
.bars .fill{height:100%;border-radius:99px;transform-origin:left;animation:grow 1.4s var(--ease) both}
@keyframes grow{from{transform:scaleX(0)}}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px 12px;color:var(--ink-soft)}
.empty .ic{width:56px;height:56px;border-radius:18px;background:var(--plum-50);color:var(--purple);display:grid;place-items:center}
.empty .ic .ico{width:26px;height:26px}

.give-card{position:relative;overflow:hidden;border-radius:24px;color:#fff;background:var(--purple);padding:28px;min-height:100%}
.give-card img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.give-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(31,10,28,.94) 0%,rgba(31,10,28,.78) 45%,rgba(31,10,28,.25) 100%)}
.give-card>*:not(img){position:relative;z-index:2}
.give-card{display:flex;flex-direction:column;justify-content:flex-end;min-height:340px}
.give-card h2{font-size:1.7rem;margin-top:12px;max-width:16ch}
.give-card p{color:rgba(255,255,255,.88);margin-top:8px;font-size:15px}
.give-card .btn{margin-top:18px;align-self:flex-start}

.history .head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}
.history select{border:2px solid var(--line);border-radius:12px;padding:11px 38px 11px 14px;font:inherit;font-weight:600;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236D2077' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/16px;appearance:none;cursor:pointer;color:var(--ink)}
.history select:focus{border-color:var(--purple);outline:0}
.tbl{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;font-size:15px}
.tbl th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);padding:0 14px 12px;border-bottom:1px solid var(--line)}
.tbl td{padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background .2s}
.tbl tbody tr:hover{background:var(--plum-50)}
.tbl .money{font-family:var(--display);font-weight:700;white-space:nowrap}
.tbl .prog{font-weight:600}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:700;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--green-soft);color:var(--green)}
.pill.wait{background:#FCF3DC;color:#9a6d0c}
.pill.bad{background:#fef2f2;color:#b91c1c}
.pill.off{background:var(--paper-warm);color:var(--ink-soft)}
.rcpt{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--blue);white-space:nowrap}
.rcpt .ico{width:17px;height:17px}
.rcpt:hover{text-decoration:underline}
.muted{color:var(--ink-mute)}
/* Móvil: cada donación como tarjeta */
@media(max-width:719px){
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{border:1px solid var(--line);border-radius:16px;padding:6px 16px;margin-top:12px}
  .tbl td{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line);text-align:right}
  .tbl td::before{content:attr(data-label);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);text-align:left}
  .tbl tr td:last-child{border-bottom:0}
}
.pager{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft)}
.pager a,.pager span.off{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--line);border-radius:10px;padding:8px 14px;font-weight:700}
.pager a{color:var(--purple)}.pager a:hover{border-color:var(--purple)}
.pager span.off{opacity:.45}
