/* ════════════════════════════════════════════════════════════════
   Portal SpainIsLife — estilos específicos
   (extiende styles.css del dominio principal)
   ════════════════════════════════════════════════════════════════ */

body{padding-top:64px}
body.menu-open .portal-nav-links,body.menu-open .portal-user{display:flex}

/* ─── NAV ─── */
.portal-nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:rgba(4,4,9,.92);backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
}
.portal-nav-inner{
  max-width:1380px;margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto auto;
  gap:24px;align-items:center;padding:11px 24px;
}
.portal-logo{display:flex;align-items:center;gap:14px;color:var(--text)}
.portal-logo img{height:40px;filter:drop-shadow(0 0 12px rgba(255,31,110,.45))}
.portal-logo-name{font-family:'Orbitron',sans-serif;font-weight:900;font-size:.95rem;letter-spacing:.16em;color:#fff}
.portal-logo-sub{font-family:'Orbitron',sans-serif;font-weight:700;font-size:.6rem;color:var(--arma);letter-spacing:.22em;margin-top:3px;text-transform:uppercase}
.portal-logo-sub i{margin-right:4px}

.portal-nav-links{display:flex;list-style:none;gap:8px;justify-content:center;margin:0;padding:0}
.portal-nav-links a{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:8px;
  color:var(--text-2);font-family:'Orbitron',sans-serif;
  font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:all .25s;
}
.portal-nav-links a:hover,.portal-nav-links a.active{background:rgba(255,31,110,.12);color:var(--pink-2)}
.portal-nav-links a i{font-size:.85em}

.portal-user{display:flex;align-items:center;gap:12px}
.portal-user-current{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:8px;
  background:var(--panel);border:1px solid var(--border);
  color:#fff;font-family:'Orbitron',sans-serif;font-size:.78rem;font-weight:700;
}
.portal-user-current i{color:var(--pink-2)}
.portal-logout{
  width:38px;height:38px;border-radius:8px;
  background:var(--panel);border:1px solid var(--border);
  display:grid;place-items:center;color:var(--text-2);
  transition:all .25s;
}
.portal-logout:hover{border-color:#ff5b5b;color:#ff5b5b;box-shadow:0 0 12px rgba(255,77,77,.3)}

.portal-char-switch{position:relative}
.portal-char-switch summary{
  list-style:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 14px;border-radius:8px;
  background:var(--panel);border:1px solid var(--border);
  color:#fff;font-family:'Orbitron',sans-serif;font-size:.78rem;font-weight:700;
}
.portal-char-switch summary::-webkit-details-marker{display:none}
.portal-char-switch summary i:first-child{color:var(--pink-2)}
.portal-char-list{
  position:absolute;top:calc(100% + 8px);right:0;min-width:240px;
  background:rgba(8,8,15,.96);border:1px solid var(--border-strong);
  border-radius:12px;padding:6px;backdrop-filter:blur(14px);
  box-shadow:0 20px 40px rgba(0,0,0,.6);
}
.portal-char-list a{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:8px;
  color:var(--text-2);font-family:'Rajdhani',sans-serif;font-size:.92rem;
  transition:all .2s;
}
.portal-char-list a:hover{background:rgba(255,31,110,.12);color:#fff}
.portal-char-list a.active{background:rgba(255,31,110,.2);color:var(--pink-2);font-weight:700}
.portal-char-list a i{color:var(--muted)}
.portal-char-list a.active i{color:var(--pink)}

.portal-burger{display:none;background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer}

@media (max-width:1100px){
  .portal-nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:rgba(4,4,9,.97);padding:14px;border-bottom:1px solid var(--border)}
  .portal-nav-inner{grid-template-columns:auto 1fr auto}
  .portal-burger{display:block}
}

/* ─── CONTENIDO ─── */
.portal-page{max-width:1380px;margin:0 auto;padding:30px 24px 80px}
.portal-title{
  display:flex;align-items:center;gap:16px;margin-bottom:30px;
}
.portal-title h1{
  font-family:'Orbitron',sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:900;color:#fff;letter-spacing:-.005em;margin:0;
}
.portal-title p{color:var(--muted);font-size:.95rem;margin-top:4px}
.portal-title .ico{
  width:54px;height:54px;border-radius:13px;
  background:linear-gradient(135deg,rgba(255,31,110,.2),rgba(0,231,255,.1));
  border:1px solid var(--border-strong);
  display:grid;place-items:center;color:var(--pink-2);font-size:1.4rem;
}

/* ─── CARDS ─── */
.p-grid{display:grid;gap:18px}
.p-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.p-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.p-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){
  .p-grid.cols-3,.p-grid.cols-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:540px){
  .p-grid.cols-2,.p-grid.cols-3,.p-grid.cols-4{grid-template-columns:1fr}
}

.p-card{
  background:var(--panel);border:1px solid var(--border);
  border-radius:14px;padding:22px;backdrop-filter:blur(12px);
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.p-card:hover{transform:translateY(-3px);border-color:var(--border-strong)}
.p-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.p-card-title{font-family:'Orbitron',sans-serif;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.22em;font-weight:800;display:inline-flex;align-items:center;gap:8px}
.p-card-title i{color:var(--pink-2)}
.p-card-num{
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.9rem;line-height:1;
  background:linear-gradient(120deg,var(--pink),var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.p-card-num.green{background:linear-gradient(120deg,var(--green),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.p-card-num.red{background:linear-gradient(120deg,#ff5b5b,#ff8a8a);-webkit-background-clip:text;background-clip:text;color:transparent}
.p-card-meta{color:var(--muted);font-size:.75rem;margin-top:6px;letter-spacing:.04em}

/* ─── TABLAS ─── */
.p-table-wrap{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  overflow:hidden;backdrop-filter:blur(12px);
}
.p-table{width:100%;border-collapse:collapse}
.p-table th{
  text-align:left;padding:14px 18px;
  background:rgba(255,31,110,.06);border-bottom:1px solid var(--border);
  font-family:'Orbitron',sans-serif;font-size:.7rem;color:var(--pink-2);
  text-transform:uppercase;letter-spacing:.22em;font-weight:800;
}
.p-table td{
  padding:14px 18px;border-bottom:1px solid rgba(255,31,110,.06);
  color:var(--text-2);font-size:.92rem;
}
.p-table tr:hover td{background:rgba(255,31,110,.04)}
.p-table tr:last-child td{border-bottom:0}
.p-table .strong{color:#fff;font-weight:700;font-family:'Orbitron',sans-serif;font-size:.85rem}
.p-table .muted{color:var(--muted);font-size:.78rem}
.p-table .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;font-family:'Orbitron',sans-serif;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.18em}
.p-table .pill.green{background:rgba(57,255,136,.12);color:var(--green);border:1px solid rgba(57,255,136,.4)}
.p-table .pill.red{background:rgba(255,77,77,.12);color:#ff5b5b;border:1px solid rgba(255,77,77,.4)}
.p-table .pill.amber{background:rgba(255,180,65,.14);color:#ffb441;border:1px solid rgba(255,180,65,.4)}
.p-table .pill.cyan{background:rgba(0,231,255,.12);color:var(--cyan);border:1px solid rgba(0,231,255,.4)}

/* ─── FORMS ─── */
.p-form{
  background:var(--panel);border:1px solid var(--border);
  border-radius:14px;padding:30px;backdrop-filter:blur(12px);
}
.p-form-row{margin-bottom:18px}
.p-form-row label{display:block;font-family:'Orbitron',sans-serif;font-size:.7rem;color:var(--pink-2);text-transform:uppercase;letter-spacing:.22em;font-weight:800;margin-bottom:8px}
.p-form-row input,.p-form-row select,.p-form-row textarea{
  width:100%;background:rgba(5,5,12,.6);
  border:1px solid var(--border);border-radius:10px;
  padding:13px 16px;color:#fff;
  font-family:'Rajdhani',sans-serif;font-size:.95rem;
  transition:border-color .25s,box-shadow .25s;
}
.p-form-row input:focus,.p-form-row select:focus,.p-form-row textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,31,110,.15)}
.p-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 22px;border:0;border-radius:10px;cursor:pointer;
  font-family:'Orbitron',sans-serif;font-weight:800;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.16em;
  transition:transform .25s,box-shadow .25s;
}
.p-btn-primary{background:linear-gradient(135deg,var(--pink),var(--pink-3));color:#fff;box-shadow:var(--shadow-pink)}
.p-btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 50px rgba(255,31,110,.6)}
.p-btn-arma{background:linear-gradient(135deg,#3d6f1a,#7ed139);color:#fff;box-shadow:0 0 22px rgba(126,209,57,.5)}
.p-btn-arma:hover{transform:translateY(-2px)}
.p-btn-ghost{background:transparent;border:1px solid var(--border-strong);color:var(--text)}
.p-btn-ghost:hover{border-color:var(--pink);color:var(--pink-2)}
.p-btn-danger{background:linear-gradient(135deg,#a01818,#ff5b5b);color:#fff;box-shadow:0 0 22px rgba(255,77,77,.5)}

/* ─── ALERTAS ─── */
.p-alert{
  padding:14px 18px;border-radius:10px;margin-bottom:18px;
  display:flex;align-items:center;gap:12px;
  border:1px solid;font-size:.92rem;
}
.p-alert.error{background:rgba(255,77,77,.1);border-color:rgba(255,77,77,.4);color:#ff8a8a}
.p-alert.success{background:rgba(57,255,136,.1);border-color:rgba(57,255,136,.4);color:#7eff9e}
.p-alert.info{background:rgba(0,231,255,.1);border-color:rgba(0,231,255,.4);color:#7ee5ff}
.p-alert i{flex-shrink:0;font-size:1.1em}

/* ─── LOGIN ─── */
.login-wrap{
  min-height:calc(100vh - 64px);
  display:grid;place-items:center;padding:40px 20px;
}
.login-card{
  width:100%;max-width:440px;
  background:var(--panel);border:1px solid var(--border-strong);
  border-radius:18px;padding:40px 36px;backdrop-filter:blur(14px);
  box-shadow:0 30px 60px rgba(0,0,0,.5),var(--shadow-pink);
}
.login-card h2{font-family:'Orbitron',sans-serif;text-align:center;font-size:1.6rem;color:#fff;margin-bottom:6px}
.login-card .sub{text-align:center;color:var(--muted);font-size:.95rem;margin-bottom:30px}
.login-card .extra{text-align:center;color:var(--muted);font-size:.85rem;margin-top:24px}
.login-card .extra a{color:var(--pink-2);font-weight:700}
.login-logo{text-align:center;margin-bottom:22px}
.login-logo img{height:60px;filter:drop-shadow(0 0 14px rgba(255,31,110,.5))}

/* ════════════════════════════════════════
   PERSONAJES — Grid de tarjetas
══════════════════════════════════════════ */
.char-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;
}
.char-card{
  position:relative;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:30px 24px;
  text-align:center;
  backdrop-filter:blur(12px);
  transition:transform .35s,border-color .35s,box-shadow .35s;
  overflow:hidden;
}
.char-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:90px;
  background:linear-gradient(135deg,rgba(255,31,110,.18),rgba(0,231,255,.08));
  z-index:0;
}
.char-card.current{border-color:var(--pink);box-shadow:var(--shadow-pink),0 20px 40px rgba(255,31,110,.2)}
.char-card.current::before{background:linear-gradient(135deg,rgba(255,31,110,.3),rgba(0,231,255,.12))}
.char-card.pending::before{background:linear-gradient(135deg,rgba(255,180,65,.18),rgba(255,180,65,.06))}
.char-card.empty,.char-card.locked{opacity:.55}
.char-card.empty::before,.char-card.locked::before{background:linear-gradient(135deg,rgba(133,133,163,.18),rgba(133,133,163,.06))}
.char-card:hover:not(.empty):not(.locked){transform:translateY(-6px);border-color:var(--pink);box-shadow:0 20px 40px rgba(255,31,110,.18)}
.char-current-badge{
  position:absolute;top:14px;right:14px;z-index:2;
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:99px;
  background:var(--green);color:#000;
  font-family:'Orbitron',sans-serif;font-size:.62rem;font-weight:900;
  text-transform:uppercase;letter-spacing:.18em;
  box-shadow:0 0 12px var(--green);
}
.char-avatar{
  position:relative;z-index:1;
  width:96px;height:96px;border-radius:50%;
  margin:0 auto 18px;
  background:linear-gradient(135deg,var(--pink),var(--pink-3));
  display:grid;place-items:center;
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.6rem;color:#fff;
  border:3px solid var(--bg);
  box-shadow:var(--shadow-pink);
}
.char-avatar.pending{background:linear-gradient(135deg,#c08416,#ffb441);box-shadow:0 0 22px rgba(255,180,65,.5)}
.char-avatar.empty,.char-avatar.locked{background:rgba(133,133,163,.2);color:var(--muted);box-shadow:none;border-color:var(--border)}
.char-name{
  position:relative;z-index:1;
  font-family:'Orbitron',sans-serif;
  font-size:1.15rem;color:#fff;font-weight:800;margin-bottom:6px;letter-spacing:.02em;
}
.char-name.muted{color:var(--muted)}
.char-faction{
  position:relative;z-index:1;
  color:var(--pink-2);font-size:.66rem;
  text-transform:uppercase;letter-spacing:.26em;
  font-weight:800;font-family:'Orbitron',sans-serif;
  margin-bottom:18px;
  display:inline-flex;align-items:center;gap:6px;
}
.char-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;
  padding:14px;background:rgba(5,5,12,.5);border:1px solid var(--border);border-radius:10px;
}
.char-stats > div{text-align:center}
.char-stats .lbl{color:var(--muted);font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;font-family:'Orbitron',sans-serif;font-weight:700;margin-bottom:5px}
.char-stats .val{font-family:'Orbitron',sans-serif;font-weight:800;color:#fff;font-size:.85rem}
.char-stats .val.green{background:linear-gradient(120deg,var(--green),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ════════════════════════════════════════
   CASAS — Diseño épico
══════════════════════════════════════════ */
.house-stats-strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-bottom:30px;
}
.house-stat{
  position:relative;display:flex;align-items:center;gap:16px;
  padding:20px 22px;border-radius:14px;
  background:linear-gradient(135deg,rgba(255,31,110,.10),var(--panel));
  border:1px solid var(--border-strong);
  backdrop-filter:blur(12px);
  overflow:hidden;
}
.house-stat::before{
  content:"";position:absolute;top:-30px;right:-30px;width:120px;height:120px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,31,110,.3),transparent 70%);
}
.house-stat .ico{
  width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,var(--pink),var(--pink-3));
  display:grid;place-items:center;color:#fff;font-size:1.15rem;
  box-shadow:var(--shadow-pink);flex-shrink:0;position:relative;z-index:1;
}
.house-stat .info{position:relative;z-index:1}
.house-stat .num{font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.4rem;color:#fff;line-height:1}
.house-stat .lbl{color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.22em;font-weight:700;margin-top:5px;font-family:'Orbitron',sans-serif}

.house-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:24px;
}
.house-card{
  position:relative;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-3));
  border:1px solid var(--border);
  border-radius:20px;
  overflow:hidden;
  backdrop-filter:blur(12px);
  transition:transform .35s,border-color .35s,box-shadow .35s;
  display:flex;flex-direction:column;
}
.house-card:hover{transform:translateY(-6px);border-color:var(--pink);box-shadow:0 30px 60px rgba(255,31,110,.22)}
.house-card.for-sale{border-color:rgba(255,180,65,.55);box-shadow:0 0 28px rgba(255,180,65,.18)}
.house-hero{
  position:relative;
  height:160px;
  background:
    linear-gradient(180deg,rgba(4,4,9,.2) 0%,rgba(4,4,9,.85) 100%),
    radial-gradient(circle at 30% 30%,rgba(255,31,110,.3),transparent 60%),
    linear-gradient(135deg,#1a1a2e,#16213e);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.house-hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,31,110,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,31,110,.04) 1px,transparent 1px);
  background-size:24px 24px;
  mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);
}
.house-hero .icon{
  font-size:4rem;color:var(--pink-2);opacity:.85;
  filter:drop-shadow(0 0 22px rgba(255,31,110,.6));
  z-index:1;
}
.house-hero .number{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.3rem;
  color:rgba(255,255,255,.25);letter-spacing:.04em;
}
.house-hero .for-sale-pill{
  position:absolute;top:14px;right:14px;z-index:2;
  padding:6px 12px;border-radius:99px;
  background:#ffb441;color:#000;
  font-family:'Orbitron',sans-serif;font-size:.6rem;font-weight:900;
  text-transform:uppercase;letter-spacing:.22em;
  box-shadow:0 0 14px rgba(255,180,65,.55);
  display:inline-flex;align-items:center;gap:6px;
}

.house-body{padding:22px;display:flex;flex-direction:column;flex:1}
.house-title{
  font-family:'Orbitron',sans-serif;font-size:1.05rem;color:#fff;font-weight:800;
  margin-bottom:6px;letter-spacing:.02em;
}
.house-sub{
  color:var(--muted);font-size:.78rem;font-family:'Space Grotesk',monospace;
  margin-bottom:18px;display:inline-flex;align-items:center;gap:8px;
}
.house-sub i{color:var(--pink-2)}

.house-stat-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px;
}
.house-pill{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;background:rgba(5,5,12,.6);
  border:1px solid var(--border);border-radius:10px;
  transition:border-color .25s;
}
.house-pill:hover{border-color:var(--pink)}
.house-pill .ico{
  width:32px;height:32px;border-radius:8px;
  background:linear-gradient(135deg,rgba(255,31,110,.2),rgba(0,231,255,.1));
  border:1px solid var(--border-strong);
  display:grid;place-items:center;color:var(--pink-2);font-size:.85rem;flex-shrink:0;
}
.house-pill .text{min-width:0}
.house-pill .text .lbl{color:var(--muted);font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;font-family:'Orbitron',sans-serif;font-weight:700}
.house-pill .text .val{color:#fff;font-family:'Orbitron',sans-serif;font-weight:800;font-size:.85rem;margin-top:2px}

.house-safe{
  background:linear-gradient(135deg,rgba(57,255,136,.10),rgba(0,231,255,.06));
  border:1px solid rgba(57,255,136,.4);border-radius:12px;
  padding:14px 16px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.house-safe .lbl{color:var(--green);font-size:.62rem;text-transform:uppercase;letter-spacing:.22em;font-family:'Orbitron',sans-serif;font-weight:800;display:inline-flex;align-items:center;gap:8px}
.house-safe .val{font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.4rem;background:linear-gradient(120deg,var(--green),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}

.house-actions{display:flex;gap:10px;margin-top:auto}
.house-actions > *{flex:1}

/* Modal/dropdown de venta */
.house-sell-form{
  margin-top:14px;padding:16px;
  background:rgba(255,180,65,.08);border:1px solid rgba(255,180,65,.4);
  border-radius:10px;display:none;
}
.house-card.show-sell .house-sell-form{display:block}
.house-sell-form label{display:block;font-family:'Orbitron',sans-serif;font-size:.62rem;color:#ffb441;text-transform:uppercase;letter-spacing:.22em;font-weight:800;margin-bottom:8px}
.house-sell-form input{width:100%;background:rgba(5,5,12,.6);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:#fff;font-family:'Rajdhani',sans-serif;font-size:.95rem;margin-bottom:10px}
.house-sell-form .actions{display:flex;gap:8px}
.house-sell-form .actions > *{flex:1}

/* ════════════════════════════════════════
   BANCO — Timeline de movimientos
══════════════════════════════════════════ */
.bank-balance{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:30px;
}
.bank-balance .p-card{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgba(57,255,136,.10),var(--panel));
  border:1px solid rgba(57,255,136,.4);
}
.bank-balance .p-card.bank-main{
  background:linear-gradient(135deg,rgba(255,31,110,.10),var(--panel));
  border-color:var(--border-strong);
}
.bank-balance .p-card::before{
  content:"";position:absolute;top:-50px;right:-50px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(57,255,136,.25),transparent 70%);
}
.bank-balance .p-card.bank-main::before{background:radial-gradient(circle,rgba(255,31,110,.3),transparent 70%)}
.bank-balance .p-card-num{font-size:2.4rem}

.bank-account{
  background:linear-gradient(135deg,#1a2233,#0a0e18);
  border:1px solid var(--border-strong);
  border-radius:18px;padding:30px;
  display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center;
  margin-bottom:30px;position:relative;overflow:hidden;
}
.bank-account::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(0,231,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,231,255,.04) 1px,transparent 1px);
  background-size:20px 20px;
}
.bank-account .chip{
  width:60px;height:46px;border-radius:8px;
  background:linear-gradient(135deg,#d4af37,#a8841e);
  position:relative;z-index:1;
  box-shadow:0 4px 14px rgba(212,175,55,.4);
}
.bank-account .chip::before,.bank-account .chip::after{
  content:"";position:absolute;left:8px;right:8px;height:1px;
  background:rgba(0,0,0,.3);
}
.bank-account .chip::before{top:14px}
.bank-account .chip::after{top:30px}
.bank-account .info{position:relative;z-index:1}
.bank-account .lbl{color:rgba(255,255,255,.5);font-size:.65rem;text-transform:uppercase;letter-spacing:.28em;font-family:'Orbitron',sans-serif;font-weight:700;margin-bottom:6px}
.bank-account .num{color:#fff;font-family:'Space Grotesk',monospace;font-size:1.4rem;font-weight:700;letter-spacing:.15em}
.bank-account .holder{color:rgba(255,255,255,.7);font-family:'Orbitron',sans-serif;font-size:.78rem;letter-spacing:.1em;margin-top:8px}
.bank-account .brand{position:relative;z-index:1;font-family:'Orbitron',sans-serif;font-weight:900;color:var(--pink);font-size:1.1rem;letter-spacing:.18em}

.tx-section-title{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:36px 0 18px;
}
.tx-section-title h3{font-family:'Orbitron',sans-serif;color:#fff;font-size:1.15rem;font-weight:800;letter-spacing:.04em;display:inline-flex;align-items:center;gap:10px}
.tx-section-title h3 i{color:var(--pink-2)}
.tx-section-title .pill{padding:5px 12px;border-radius:99px;background:var(--panel);border:1px solid var(--border);font-family:'Orbitron',sans-serif;font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.18em;font-weight:700}

.tx-timeline{
  position:relative;
  padding-left:30px;
}
.tx-timeline::before{
  content:"";position:absolute;left:13px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(180deg,var(--pink),var(--cyan),transparent);
  opacity:.4;
}
.tx-item{
  position:relative;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:12px;padding:16px 18px;margin-bottom:12px;
  display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.tx-item:hover{transform:translateX(4px);border-color:var(--pink);box-shadow:0 8px 22px rgba(255,31,110,.12)}
.tx-item::before{
  content:"";position:absolute;left:-23px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;
  background:var(--bg);border:3px solid var(--pink);
  box-shadow:0 0 12px rgba(255,31,110,.6);
}
.tx-item.income::before{border-color:var(--green);box-shadow:0 0 12px rgba(57,255,136,.6)}
.tx-item.outcome::before{border-color:#ff5b5b;box-shadow:0 0 12px rgba(255,77,77,.6)}
.tx-info{min-width:0}
.tx-concept{color:#fff;font-family:'Orbitron',sans-serif;font-weight:700;font-size:.92rem;margin-bottom:5px;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.74rem}
.tx-meta span{display:inline-flex;align-items:center;gap:5px}
.tx-meta i{color:var(--pink-2)}
.tx-amount{
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:1.15rem;line-height:1;
  text-align:right;flex-shrink:0;
}
.tx-amount.income{background:linear-gradient(120deg,var(--green),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.tx-amount.outcome{background:linear-gradient(120deg,#ff5b5b,#ff8a8a);-webkit-background-clip:text;background-clip:text;color:transparent}
.tx-empty{
  text-align:center;padding:50px 30px;color:var(--muted);
  background:var(--panel);border:1px dashed var(--border-strong);border-radius:14px;
}
.tx-empty .ico{font-size:2.5rem;color:var(--muted);margin-bottom:14px}

@media (max-width:760px){
  .bank-balance{grid-template-columns:1fr}
  .bank-account{grid-template-columns:1fr;text-align:center;justify-items:center}
  .tx-item{grid-template-columns:1fr;gap:8px}
  .tx-amount{text-align:left;font-size:1.3rem}
}

/* ─── FOOTER ─── */
.portal-footer{
  border-top:1px solid var(--border);padding:24px 24px;
  background:rgba(4,4,9,.7);color:var(--muted);
}
.portal-footer-inner{
  max-width:1380px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  font-size:.82rem;letter-spacing:.06em;
}
.portal-footer strong{color:var(--pink-2);font-family:'Orbitron',sans-serif}
.portal-footer-links{display:flex;gap:18px}
.portal-footer-links a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);transition:color .25s}
.portal-footer-links a:hover{color:var(--pink-2)}
