
:root{--bg:#141118;--panel:rgba(255,255,255,.055);--panel2:rgba(255,255,255,.085);--ink:#fff8e8;--muted:#b8aebf;--gold:#ffc857;--pink:#ff5c8a;--blue:#65d6ff;--green:#83e377;--orange:#ff9f45;--danger:#ff5c5c;--line:rgba(255,255,255,.12);--shadow:0 24px 80px rgba(0,0,0,.36);--radius:24px}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(255,92,138,.22),transparent 28rem),radial-gradient(circle at 80% 12%,rgba(101,214,255,.16),transparent 24rem),linear-gradient(135deg,#0e0c12 0%,#17111d 55%,#221527 100%)}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:290px 1fr;min-height:100vh}.sidebar{padding:28px;border-right:1px solid var(--line);background:rgba(13,10,17,.78);backdrop-filter:blur(14px);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:14px}.brand-badge{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,var(--gold),var(--pink));color:#221527;box-shadow:0 12px 30px rgba(255,92,138,.35)}.brand strong{display:block;font-size:22px;letter-spacing:-.03em}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.nav{display:grid;gap:10px;margin:34px 0}.nav a{padding:14px 16px;border:1px solid var(--line);border-radius:16px;color:var(--muted);background:rgba(255,255,255,.03)}.nav a:hover{color:var(--ink);border-color:rgba(255,200,87,.45);background:rgba(255,200,87,.08)}.side-card{padding:18px;border:1px dashed rgba(255,200,87,.35);border-radius:18px;background:rgba(255,200,87,.06);color:var(--muted);line-height:1.5}.main{padding:32px;max-width:1500px;width:100%}.eyebrow,.tiny-label{color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:900}.hero{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.025)),repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 10px);box-shadow:var(--shadow);margin-bottom:22px}.hero.compact{padding:28px}.hero h1{font-size:clamp(34px,5vw,64px);line-height:.96;margin:10px 0 12px;letter-spacing:-.06em;max-width:860px}.hero.compact h1{font-size:clamp(30px,4vw,48px)}.hero p,.muted{color:var(--muted);line-height:1.55}.primary-btn,.secondary-btn,.danger-btn,button{border:0;cursor:pointer;border-radius:16px;font-weight:900;padding:14px 18px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font:inherit}.primary-btn{background:linear-gradient(135deg,var(--gold),var(--orange));color:#1d1422;box-shadow:0 12px 30px rgba(255,159,69,.25)}.secondary-btn{background:rgba(101,214,255,.12);border:1px solid rgba(101,214,255,.25);color:var(--blue)}.danger-btn{background:rgba(255,92,92,.12);border:1px solid rgba(255,92,92,.35);color:#ffb0b0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin:22px 0}.stat-card,.panel,.figure-card,.line-card,.detail-card,.detail-photo,.retro-form,.auth-card{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:22px}.stat-card span{color:var(--muted);display:block;margin-bottom:10px}.stat-card strong{font-size:34px;letter-spacing:-.04em}.panel{padding:24px;margin-bottom:22px}.panel-header{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:20px}.panel h2{margin:6px 0 0;letter-spacing:-.04em;font-size:28px}.search-panel{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:22px;align-items:center;padding:24px;border:1px solid rgba(101,214,255,.20);background:linear-gradient(135deg,rgba(101,214,255,.10),rgba(255,92,138,.06)),rgba(255,255,255,.045);border-radius:var(--radius);box-shadow:var(--shadow);margin:22px 0}.search-panel h2{margin:6px 0;letter-spacing:-.04em;font-size:28px}.search-panel p{margin:0;color:var(--muted);line-height:1.45}.search-panel input[type=search]{min-height:58px;font-size:18px;border-color:rgba(101,214,255,.28);background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.03))}.line-grid,.figure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px}.line-card{padding:18px;transition:transform .2s,border-color .2s,background .2s}.line-card:hover,.figure-card:hover{transform:translateY(-3px);border-color:rgba(255,200,87,.45);background:var(--panel2)}.line-top,.line-metrics{display:flex;justify-content:space-between;gap:12px}.line-top strong{font-size:20px}.line-top span,.line-metrics small,.figure-info span,.figure-info small{color:var(--muted)}.bar{height:10px;border-radius:99px;overflow:hidden;margin:18px 0;background:rgba(255,255,255,.08)}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--gold),var(--blue));border-radius:inherit}.goal-pill{margin-top:14px;padding:9px 11px;border-radius:999px;font-size:12px;color:var(--gold);background:rgba(255,200,87,.10);border:1px solid rgba(255,200,87,.22)}.figure-card{overflow:hidden;transition:transform .2s,border-color .2s,background .2s}.figure-image{aspect-ratio:4/3;background:linear-gradient(135deg,rgba(255,200,87,.14),rgba(255,92,138,.10));display:grid;place-items:center;overflow:hidden;position:relative}.figure-image img,.detail-photo img,.preview img,.thumb img{width:100%;height:100%;object-fit:cover}.photo-count{position:absolute;right:10px;bottom:10px;border-radius:999px;padding:6px 9px;font-size:12px;color:var(--ink);background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18)}.placeholder{color:var(--muted);border:1px dashed rgba(255,255,255,.24);border-radius:18px;padding:20px}.placeholder.big{min-height:260px;display:grid;place-items:center}.figure-info{padding:16px 16px 8px;display:grid;gap:5px}.figure-info strong{font-size:18px}.tags{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 16px}.tags.large{padding:0;margin:18px 0}.tags span{font-size:12px;border-radius:999px;padding:7px 10px;border:1px solid var(--line)}.tags .ok{background:rgba(131,227,119,.12);color:var(--green);border-color:rgba(131,227,119,.25)}.tags .warn{background:rgba(255,159,69,.12);color:var(--orange);border-color:rgba(255,159,69,.25)}.tags .neutral{background:rgba(255,255,255,.06);color:var(--muted)}.retro-form,.auth-card{padding:24px;margin-bottom:22px}.form-grid,.goal-editor{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px}label{display:grid;gap:8px;color:var(--muted);font-weight:700}.optional{display:inline;color:var(--gold);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}input,textarea,select{width:100%;color:var(--ink);background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px 15px;outline:none;font:inherit}textarea{min-height:120px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:rgba(255,200,87,.55);box-shadow:0 0 0 4px rgba(255,200,87,.08)}.wide{grid-column:1/-1}.toggle-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:16px;border-radius:18px;background:rgba(255,255,255,.035)}.toggle-row input{width:22px;height:22px}.autosave-status{display:inline-flex;align-items:center;border-radius:999px;padding:9px 12px;font-size:12px;color:var(--green);background:rgba(131,227,119,.10);border:1px solid rgba(131,227,119,.22)}.detail-layout{display:grid;grid-template-columns:minmax(280px,520px) 1fr;gap:22px}.detail-card{padding:32px}.detail-card h1{font-size:clamp(38px,5vw,72px);line-height:.92;letter-spacing:-.06em;margin:12px 0}.detail-card p{color:var(--muted)}.detail-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:22px 0}.detail-metrics div,.notes-box{padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.035)}.detail-metrics span{display:block;color:var(--muted);margin-bottom:8px}.detail-metrics strong{font-size:24px}.notes-box{color:var(--muted);line-height:1.6;white-space:pre-wrap}.actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.thumb{aspect-ratio:1/1;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:rgba(0,0,0,.2);position:relative}.thumb form{position:absolute;top:8px;right:8px}.thumb button{padding:8px 10px;border-radius:12px;background:rgba(255,92,92,.8);color:white}.split-panel{display:grid;grid-template-columns:1fr 380px;gap:22px}.image-upload{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.toast{margin-bottom:18px;border:1px solid rgba(131,227,119,.25);color:var(--green);background:rgba(131,227,119,.1);border-radius:18px;padding:14px 16px}.empty{text-align:center;padding:44px;color:var(--muted)}.hidden{display:none!important}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-card{max-width:520px;width:100%}.auth-card h1{font-size:48px;line-height:.92;letter-spacing:-.06em;margin:12px 0 16px}@media(max-width:920px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.hero,.panel-header,.detail-layout,.split-panel{display:block}.primary-btn{margin-top:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.goal-editor,.search-panel{grid-template-columns:1fr}.photo-gallery{grid-template-columns:1fr 1fr}}


/* Mejoras galería detalle */
.detail-layout {
  grid-template-columns: minmax(420px, 42vw) 1fr;
  align-items: start;
}

.detail-gallery {
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 16px;
  position: sticky;
  top: 28px;
}

.detail-gallery .thumb {
  aspect-ratio: 1 / 1.08;
  cursor: zoom-in;
  transition: transform .18s ease, border-color .18s ease;
}

.detail-gallery .thumb:hover {
  transform: translateY(-3px) scale(1.015);
  border-color: rgba(255, 200, 87, .55);
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5, 4, 8, .88);
  backdrop-filter: blur(10px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 34px;
}

.image-modal.open {
  display: flex;
}

.image-modal img {
  max-width: min(1100px, 94vw);
  max-height: 88vh;
  object-fit: contain;
  border-radius: 22px;
  box-shadow: 0 30px 100px rgba(0,0,0,.65);
  border: 1px solid rgba(255,255,255,.18);
}

.image-modal button {
  position: fixed;
  top: 22px;
  right: 22px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: white;
  border: 1px solid rgba(255,255,255,.22);
  font-size: 26px;
  line-height: 1;
}

@media (max-width: 920px) {
  .detail-layout {
    grid-template-columns: 1fr;
  }

  .detail-gallery {
    position: relative;
    top: auto;
    grid-template-columns: repeat(2, 1fr);
  }
}


/* Mejoras objetivos y métricas */
.target-form {
  display: grid;
  grid-template-columns: 1.2fr .6fr .7fr;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.035);
  margin-bottom: 18px;
}

.target-list {
  display: grid;
  gap: 12px;
}

.target-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.045);
}

.target-card h3 {
  margin: 8px 0 6px;
  font-size: 22px;
  letter-spacing: -.03em;
}

.target-card p {
  color: var(--muted);
  margin: 0 0 10px;
  line-height: 1.5;
}

.target-card small {
  color: var(--gold);
}

.target-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.target-actions select {
  min-width: 150px;
}

.target-status {
  display: inline-flex;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  border: 1px solid var(--line);
  color: var(--muted);
}

.status-en-búsqueda {
  color: var(--blue);
  border-color: rgba(101,214,255,.35);
  background: rgba(101,214,255,.10);
}

.status-comprado {
  color: var(--green);
  border-color: rgba(131,227,119,.35);
  background: rgba(131,227,119,.10);
}

.status-pausado {
  color: var(--orange);
  border-color: rgba(255,159,69,.35);
  background: rgba(255,159,69,.10);
}

.status-descartado {
  color: var(--danger);
  border-color: rgba(255,92,92,.35);
  background: rgba(255,92,92,.10);
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(320px, 1fr));
  gap: 22px;
}

.wide-panel {
  grid-column: 1 / -1;
}

.bar-chart {
  display: grid;
  gap: 14px;
}

.chart-row {
  display: grid;
  grid-template-columns: minmax(120px, 210px) 1fr auto;
  gap: 12px;
  align-items: center;
}

.chart-row span {
  color: var(--muted);
  font-weight: 800;
}

.chart-row strong {
  font-size: 13px;
  white-space: nowrap;
}

.chart-track {
  height: 14px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.08);
}

.chart-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--pink), var(--gold), var(--blue));
  min-width: 5px;
}

.mini-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.mini-kpi-grid div {
  padding: 18px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.035);
}

.mini-kpi-grid span {
  display: block;
  color: var(--muted);
  margin-bottom: 8px;
}

.mini-kpi-grid strong {
  font-size: 30px;
}

.brand-grid {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.brand-chip {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--line);
}

.brand-chip span {
  color: var(--muted);
  font-size: 13px;
}

@media (max-width: 920px) {
  .target-form,
  .target-card,
  .metrics-grid,
  .chart-row {
    grid-template-columns: 1fr;
  }

  .target-actions {
    align-items: stretch;
    flex-direction: column;
  }
}


.fx-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border-color: rgba(101,214,255,.22);
  background: linear-gradient(135deg, rgba(101,214,255,.10), rgba(255,200,87,.06)), rgba(255,255,255,.045);
}

.fx-panel h2 {
  margin: 6px 0;
}

.fx-panel strong {
  font-size: clamp(28px, 4vw, 46px);
  white-space: nowrap;
  color: var(--gold);
}

@media (max-width: 920px) {
  .fx-panel {
    display: block;
  }
}


/* RetroVault v4.3 - público, valuación e imágenes */
.positive { color: var(--green) !important; }
.negative { color: var(--danger) !important; }

.public-shell {
  width: min(1480px, calc(100% - 40px));
  margin: 0 auto;
  padding: 40px 0 24px;
}

.public-hero {
  padding: 44px;
  border: 1px solid var(--line);
  border-radius: 32px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,.025)),
    repeating-linear-gradient(45deg, rgba(255,255,255,.025) 0 2px, transparent 2px 10px);
  box-shadow: var(--shadow);
  margin-bottom: 24px;
}

.public-hero h1 {
  font-size: clamp(42px, 7vw, 88px);
  line-height: .9;
  letter-spacing: -.07em;
  margin: 12px 0;
  max-width: 1000px;
}

.public-hero p {
  color: var(--muted);
  max-width: 780px;
  line-height: 1.55;
}

.public-stats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 22px;
}

.public-stats span {
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.05);
  color: var(--muted);
  font-size: 13px;
}

.public-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
}

.public-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255,255,255,.055);
  box-shadow: var(--shadow);
  transition: transform .18s ease, border-color .18s ease;
}

.public-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255,200,87,.45);
}

.public-photo {
  aspect-ratio: 4 / 3.3;
  overflow: hidden;
  background: rgba(0,0,0,.22);
}

.public-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.public-info {
  padding: 18px;
}

.public-info > span {
  color: var(--gold);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 900;
}

.public-info h2 {
  margin: 8px 0;
  font-size: 24px;
  letter-spacing: -.04em;
}

.public-info p {
  color: var(--muted);
  line-height: 1.45;
  margin: 0 0 14px;
}

.public-footer {
  color: var(--muted);
  text-align: center;
  padding: 28px;
  font-size: 13px;
}


/* RetroVault v4.4 - colección pública premium */
.public-v2 {
  width: min(1560px, calc(100% - 36px));
}

.public-hero-v2 {
  display: grid;
  grid-template-columns: 1fr minmax(220px, 360px);
  gap: 28px;
  align-items: stretch;
  position: relative;
  overflow: hidden;
}

.public-hero-v2::before {
  content: "";
  position: absolute;
  inset: -2px;
  background:
    radial-gradient(circle at 15% 20%, rgba(255, 200, 87, .18), transparent 30rem),
    radial-gradient(circle at 80% 10%, rgba(101, 214, 255, .16), transparent 26rem);
  pointer-events: none;
}

.public-hero-v2 > * {
  position: relative;
  z-index: 1;
}

.public-hero-card {
  min-height: 260px;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.16);
  background:
    linear-gradient(135deg, rgba(255, 200, 87, .18), rgba(255, 92, 138, .10)),
    rgba(0,0,0,.18);
  display: grid;
  align-content: center;
  padding: 28px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.20);
}

.public-hero-card span {
  color: var(--gold);
  font-weight: 900;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
}

.public-hero-card strong {
  font-size: clamp(42px, 6vw, 74px);
  line-height: .82;
  letter-spacing: -.08em;
  margin: 14px 0;
}

.public-hero-card small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
}

.public-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 420px) 1fr;
  gap: 22px;
  align-items: center;
  padding: 24px;
  border: 1px solid rgba(101,214,255,.20);
  background: linear-gradient(135deg, rgba(101,214,255,.10), rgba(255,92,138,.06)), rgba(255,255,255,.045);
  border-radius: 28px;
  box-shadow: var(--shadow);
  margin: 22px 0;
}

.public-toolbar h2 {
  margin: 6px 0 0;
  letter-spacing: -.04em;
}

.public-toolbar input {
  min-height: 58px;
  font-size: 18px;
  border-color: rgba(101,214,255,.28);
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
}

.public-line-nav {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0 28px;
}

.public-line-nav a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.055);
  color: var(--ink);
  font-weight: 800;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.public-line-nav a:hover {
  transform: translateY(-2px);
  border-color: rgba(255,200,87,.45);
  background: rgba(255,200,87,.09);
}

.public-line-nav small {
  color: var(--gold);
}

.public-line-section {
  margin: 34px 0;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 32px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
    rgba(0,0,0,.12);
  box-shadow: var(--shadow);
}

.public-line-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  margin-bottom: 20px;
}

.public-line-header h2 {
  font-size: clamp(30px, 5vw, 54px);
  letter-spacing: -.06em;
  margin: 8px 0 0;
}

.public-line-header strong {
  color: var(--gold);
  border: 1px solid rgba(255,200,87,.24);
  background: rgba(255,200,87,.09);
  border-radius: 999px;
  padding: 10px 14px;
  white-space: nowrap;
}

.public-grid-v2 {
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 20px;
}

.public-card-v2 {
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.025)),
    rgba(0,0,0,.20);
}

.public-photo-v2 {
  aspect-ratio: 4 / 3.6;
  position: relative;
  cursor: zoom-in;
}

.public-photo-v2 img {
  transition: transform .32s ease, filter .32s ease;
}

.public-card-v2:hover .public-photo-v2 img {
  transform: scale(1.055);
  filter: saturate(1.08) contrast(1.03);
}

.zoom-hint {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.20);
  background: rgba(0,0,0,.52);
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  backdrop-filter: blur(8px);
}

.public-info-v2 {
  padding: 20px;
}

.public-info-v2 h3 {
  margin: 8px 0;
  font-size: 28px;
  letter-spacing: -.05em;
  line-height: 1;
}

.public-empty {
  border: 1px solid var(--line);
  border-radius: 28px;
  background: rgba(255,255,255,.045);
}

.public-footer-v2 {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,.10);
  margin-top: 34px;
}

.public-footer-v2 strong {
  color: var(--gold);
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5, 4, 8, .90);
  backdrop-filter: blur(10px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 34px;
}

.image-modal.open {
  display: flex;
}

.image-modal img {
  max-width: min(1200px, 94vw);
  max-height: 88vh;
  object-fit: contain;
  border-radius: 22px;
  box-shadow: 0 30px 100px rgba(0,0,0,.65);
  border: 1px solid rgba(255,255,255,.18);
}

.image-modal button {
  position: fixed;
  top: 22px;
  right: 22px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: white;
  border: 1px solid rgba(255,255,255,.22);
  font-size: 26px;
  line-height: 1;
}

@media (max-width: 920px) {
  .public-hero-v2,
  .public-toolbar {
    grid-template-columns: 1fr;
  }

  .public-hero-card {
    min-height: 190px;
  }

  .public-line-header {
    display: block;
  }

  .public-line-header strong {
    display: inline-flex;
    margin-top: 14px;
  }
}


/* RetroVault v4.5 - modal público con ficha lateral */
.public-info-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background: rgba(5, 4, 8, .90);
  backdrop-filter: blur(12px);
}

.public-info-modal.open {
  display: flex;
}

.public-info-modal-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(320px, 820px) minmax(300px, 420px);
  gap: 0;
  width: min(1240px, 96vw);
  max-height: 90vh;
  overflow: hidden;
  border-radius: 30px;
  border: 1px solid rgba(255,255,255,.16);
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.025)),
    #111018;
  box-shadow: 0 34px 120px rgba(0,0,0,.72);
}

.public-info-modal-photo {
  min-height: 540px;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,200,87,.10), transparent 24rem),
    rgba(0,0,0,.28);
  display: grid;
  place-items: center;
  padding: 26px;
}

.public-info-modal-photo img {
  max-width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 80px rgba(0,0,0,.42);
}

.public-info-modal-side {
  padding: 34px;
  border-left: 1px solid rgba(255,255,255,.10);
  background:
    linear-gradient(180deg, rgba(255,200,87,.075), rgba(255,92,138,.035)),
    rgba(255,255,255,.035);
  overflow-y: auto;
}

.public-info-modal-side h2 {
  font-size: clamp(34px, 4vw, 58px);
  line-height: .92;
  letter-spacing: -.06em;
  margin: 12px 0 24px;
}

.public-modal-meta {
  display: grid;
  gap: 12px;
}

.public-modal-meta div {
  padding: 14px 15px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.16);
}

.public-modal-meta span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 5px;
}

.public-modal-meta strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
}

.public-modal-tags {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 22px;
}

.public-modal-tags span {
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255,200,87,.10);
  border: 1px solid rgba(255,200,87,.22);
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
}

.public-info-modal-close {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 18px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: white;
  border: 1px solid rgba(255,255,255,.22);
  font-size: 28px;
  line-height: 1;
}

@media (max-width: 920px) {
  .public-info-modal {
    padding: 16px;
    align-items: stretch;
  }

  .public-info-modal-card {
    grid-template-columns: 1fr;
    overflow-y: auto;
    max-height: 94vh;
  }

  .public-info-modal-photo {
    min-height: 330px;
    padding: 18px;
  }

  .public-info-modal-photo img {
    max-height: 52vh;
  }

  .public-info-modal-side {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.10);
    padding: 24px;
  }
}

.auth-signature {
  margin-top: 18px;
  text-align: center;
  font-size: 12px;
}

.public-profile-link-panel {
  border-color: rgba(101, 214, 255, .25);
  background: linear-gradient(135deg, rgba(101, 214, 255, .10), rgba(255, 92, 138, .06)), var(--panel);
}

.public-profile-count {
  padding: 9px 12px;
  border: 1px solid rgba(131, 227, 119, .25);
  border-radius: 999px;
  color: var(--green);
  background: rgba(131, 227, 119, .10);
  font-size: 12px;
  font-weight: 900;
}

.public-profile-url-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.public-profile-url-row input {
  color: var(--blue);
  border-color: rgba(101, 214, 255, .28);
}

.public-profile-figure-list {
  display: grid;
  gap: 12px;
}

.public-profile-figure-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .035);
}

.public-profile-figure-row div {
  display: grid;
  gap: 5px;
}

.public-profile-figure-row span {
  color: var(--muted);
  font-size: 13px;
}

.public-profile-next p {
  margin-bottom: 0;
}

.listing-settings {
  padding: 22px;
  border: 1px solid rgba(101, 214, 255, .24);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(101, 214, 255, .08), rgba(255, 200, 87, .05));
}

.listing-settings-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.listing-settings-header h2 {
  margin: 6px 0 0;
}

.private-data-note,
.contact-privacy-note {
  color: var(--gold);
  font-size: 12px;
  line-height: 1.45;
}

.public-profile-form {
  padding: 0;
  margin: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.profile-listing-tags {
  display: flex !important;
  grid-auto-flow: initial;
  gap: 7px !important;
  flex-wrap: wrap;
  margin-top: 5px;
}

.profile-listing-tags span,
.tags .offer-tag,
.tags .status-tag {
  width: fit-content;
  padding: 6px 9px;
  border: 1px solid rgba(101, 214, 255, .28);
  border-radius: 999px;
  color: var(--blue);
  background: rgba(101, 214, 255, .10);
  font-size: 11px;
  font-weight: 800;
}

.tags .status-tag {
  color: var(--gold);
  border-color: rgba(255, 200, 87, .28);
  background: rgba(255, 200, 87, .10);
}

.public-asking-price {
  display: grid;
  gap: 4px;
  margin: 0 16px 16px;
  padding: 14px;
  border: 1px solid rgba(131, 227, 119, .24);
  border-radius: 16px;
  background: rgba(131, 227, 119, .08);
}

.public-asking-price span,
.public-asking-price small {
  color: var(--muted);
  font-size: 11px;
}

.public-asking-price strong {
  color: var(--green);
  font-size: 21px;
}

.public-contact-btn {
  margin: 0 16px 16px;
}

.public-modal-contact {
  margin-top: 18px;
}

@media (max-width: 640px) {
  .public-profile-url-row {
    grid-template-columns: 1fr;
  }

  .public-profile-figure-row {
    align-items: stretch;
    flex-direction: column;
  }

  .listing-settings-header {
    display: grid;
  }
}



/* RetroVault v4.6 - modal privado simple */
.private-image-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 34px;
  background: rgba(5, 4, 8, .90);
  backdrop-filter: blur(10px);
}

.private-image-modal.open {
  display: flex;
}

.private-image-modal img {
  max-width: min(1200px, 94vw);
  max-height: 88vh;
  object-fit: contain;
  border-radius: 22px;
  box-shadow: 0 30px 100px rgba(0,0,0,.65);
  border: 1px solid rgba(255,255,255,.18);
}

.private-image-modal button {
  position: fixed;
  top: 22px;
  right: 22px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: white;
  border: 1px solid rgba(255,255,255,.22);
  font-size: 26px;
  line-height: 1;
}

.detail-gallery .thumb img,
.photo-gallery .thumb img {
  cursor: zoom-in;
}


/* RetroVault v4.7 - Centro de backups */
.backup-hero {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 28px;
  align-items: stretch;
}

.backup-shield {
  min-height: 190px;
  padding: 24px;
  display: grid;
  align-content: center;
  border-radius: 26px;
  border: 1px solid rgba(101, 214, 255, .25);
  background:
    radial-gradient(circle at 30% 20%, rgba(101, 214, 255, .18), transparent 70%),
    linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
}

.backup-shield span,
.backup-shield small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
  font-weight: 800;
}

.backup-shield strong {
  color: var(--gold);
  font-size: 76px;
  line-height: .9;
  letter-spacing: -.08em;
  margin: 10px 0;
}

.backup-stats {
  margin-bottom: 22px;
}

.backup-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr .85fr;
  gap: 20px;
  align-items: stretch;
}

.backup-option {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 330px;
}

.backup-option-main {
  border-color: rgba(255, 200, 87, .30);
  background:
    linear-gradient(135deg, rgba(255, 200, 87, .10), rgba(101, 214, 255, .05)),
    rgba(255,255,255,.045);
}

.backup-option h2 {
  margin: 8px 0 12px;
  font-size: 30px;
  letter-spacing: -.04em;
}

.backup-option p {
  color: var(--muted);
  line-height: 1.55;
}

.backup-content-list {
  display: grid;
  gap: 8px;
  margin: 20px 0;
}

.backup-content-list span {
  padding: 9px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.09);
  background: rgba(0,0,0,.12);
}

.backup-download-btn {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.backup-security {
  margin-top: 22px;
  display: grid;
  grid-template-columns: minmax(260px, .7fr) 1.3fr;
  gap: 24px;
  align-items: center;
}

.backup-security h2 {
  margin: 7px 0 0;
}

.backup-security p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.backup-generated {
  text-align: center;
  color: var(--muted);
  font-size: 12px;
  margin-top: 18px;
}

@media (max-width: 1050px) {
  .backup-grid {
    grid-template-columns: 1fr 1fr;
  }

  .backup-option-main {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .backup-hero,
  .backup-grid,
  .backup-security {
    grid-template-columns: 1fr;
  }

  .backup-shield {
    min-height: 150px;
  }

  .backup-option-main {
    grid-column: auto;
  }

  .backup-option {
    min-height: auto;
  }
}

/* RetroVault v5.1 - perfil público completo */

.profile-editor-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.profile-avatar-editor {
  display: grid;
  gap: 14px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, .035);
}

.profile-avatar-preview,
.public-collector-avatar {
  overflow: hidden;
  border-radius: 50%;
  border: 1px solid rgba(255, 200, 87, .32);
  background:
    radial-gradient(
      circle at 30% 20%,
      rgba(255, 200, 87, .22),
      transparent 60%
    ),
    rgba(255, 255, 255, .06);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .28);
}

.profile-avatar-preview {
  width: 170px;
  height: 170px;
  margin: 0 auto;
}

.profile-avatar-preview img,
.public-collector-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-avatar-preview span,
.public-collector-avatar span {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--gold);
  font-weight: 950;
}

.profile-avatar-preview span {
  font-size: 70px;
}

.avatar-remove-row {
  margin-top: 2px;
}

.profile-contact-section {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.profile-form-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 24px;
}

.public-collector-heading {
  display: grid;
  gap: 18px;
}

.public-collector-identity {
  display: flex;
  align-items: center;
  gap: 18px;
}

.public-collector-avatar {
  flex: 0 0 auto;
  width: 92px;
  height: 92px;
}

.public-collector-avatar span {
  font-size: 38px;
}

.public-collector-identity h1 {
  margin-top: 5px;
}

.public-collector-location {
  margin: 8px 0 0 !important;
  color: var(--gold) !important;
  font-size: 14px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .profile-editor-layout {
    grid-template-columns: 1fr;
  }

  .profile-avatar-editor {
    max-width: none;
  }

  .public-collector-identity {
    align-items: flex-start;
  }

  .public-collector-avatar {
    width: 72px;
    height: 72px;
  }
}

/* RetroVault v5.2 - dirección pública personalizada */

.public-slug-field {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(0, 0, 0, .14);
}

.public-slug-field span {
  display: flex;
  align-items: center;
  padding: 0 14px;
  color: var(--gold);
  background: rgba(255, 200, 87, .08);
  border-right: 1px solid var(--line);
  font-weight: 800;
  white-space: nowrap;
}

.public-slug-field input {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-width: 0;
}

@media (max-width: 520px) {
  .public-slug-field {
    display: block;
  }

  .public-slug-field span {
    min-height: 42px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}

/* RetroVault v5.3 - contacto público */

.public-profile-contact-action {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 20px;
}

.public-profile-contact-action small {
  color: var(--muted);
  font-size: 13px;
}

.public-contact-btn,
.public-modal-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
  text-decoration: none;
}

.public-modal-contact.hidden {
  display: none !important;
}

.public-info-modal-side .public-modal-contact {
  width: 100%;
  margin-top: 22px;
}


/* RetroVault v5.4 - navegación Mi espacio */

.nav > a.active {
  color: var(--ink);
  border-color: rgba(255, 200, 87, .55);
  background:
    linear-gradient(
      135deg,
      rgba(255, 200, 87, .12),
      rgba(255, 159, 69, .055)
    );
}

.nav-group {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .03);
}

.nav-group[open] {
  border-color: rgba(255, 200, 87, .30);
  background: rgba(255, 200, 87, .035);
}

.nav-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  color: var(--muted);
  font-weight: 800;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition:
    color .18s ease,
    background .18s ease;
}

.nav-group summary::-webkit-details-marker {
  display: none;
}

.nav-group summary:hover {
  color: var(--ink);
  background: rgba(255, 200, 87, .07);
}

.nav-group[open] summary {
  color: var(--gold);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.nav-group-arrow {
  display: inline-flex;
  transition: transform .2s ease;
  font-size: 18px;
  line-height: 1;
}

.nav-group[open] .nav-group-arrow {
  transform: rotate(180deg);
}

.nav-submenu {
  display: grid;
  gap: 7px;
  padding: 9px;
}

.nav-submenu a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 11px 12px;
  border: 1px solid transparent;
  border-radius: 13px;
  color: var(--muted);
  background: transparent;
  transition:
    color .18s ease,
    border-color .18s ease,
    background .18s ease;
}

.nav-submenu a:hover {
  color: var(--ink);
  border-color: rgba(255, 255, 255, .10);
  background: rgba(255, 255, 255, .045);
}

.nav-submenu a.active {
  color: var(--ink);
  border-color: rgba(255, 200, 87, .40);
  background:
    linear-gradient(
      135deg,
      rgba(255, 200, 87, .12),
      rgba(255, 159, 69, .055)
    );
}

.nav-submenu-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 10px;
  color: var(--gold);
  background: rgba(255, 200, 87, .09);
  font-size: 15px;
  font-weight: 900;
}

.nav-submenu strong {
  display: block;
  color: inherit;
  font-size: 13px;
  line-height: 1.2;
}

.nav-submenu small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.25;
}

.nav-logout {
  margin-top: 4px;
}

@media (max-width: 920px) {
  .nav-group {
    width: 100%;
  }
}
