/* Recortador circular del retrato de perfil (Su Historia Vive). */
.shv-crop-dlg{
  border:0;padding:0;margin:auto;max-width:min(420px,calc(100vw - 28px));
  width:100%;background:var(--surface,#16140f);color:var(--ink,#f4efe6);
  border-radius:18px;box-shadow:0 28px 80px -24px rgba(0,0,0,.55);
}
.shv-crop-dlg::backdrop{background:rgba(8,7,5,.62);backdrop-filter:blur(4px)}
.shv-crop-inner{padding:1.15rem 1.15rem 1.05rem}
.shv-crop-title{
  margin:0 0 .25rem;font-family:var(--serif,Georgia,serif);
  font-size:1.35rem;font-weight:600;letter-spacing:.01em;text-align:center;
}
.shv-crop-sub{
  margin:0 0 1rem;font-size:.82rem;line-height:1.45;color:var(--muted,#9a9286);text-align:center;
}
.shv-crop-stage-wrap{
  display:flex;justify-content:center;margin:0 0 1rem;
}
.shv-crop-stage{
  position:relative;width:280px;height:280px;border-radius:50%;
  overflow:hidden;cursor:grab;touch-action:none;user-select:none;
  border:2px solid var(--gold,#c4a574);
  box-shadow:
    0 0 0 8px color-mix(in srgb, var(--gold,#c4a574) 18%, transparent),
    0 18px 40px -22px rgba(0,0,0,.45);
  background:#1a1814;
}
@media (max-width:360px){
  .shv-crop-stage{width:240px;height:240px}
}
.shv-crop-stage.is-drag{cursor:grabbing}
.shv-crop-stage img{
  position:absolute;left:0;top:0;max-width:none;pointer-events:none;
  transform-origin:0 0;will-change:transform;-webkit-user-drag:none;
}
.shv-crop-zoom{display:grid;gap:.35rem;margin:0 0 1rem}
.shv-crop-zoom label{
  display:flex;justify-content:space-between;gap:.5rem;
  font-size:.75rem;color:var(--muted,#9a9286);
}
.shv-crop-zoom input[type=range]{width:100%;accent-color:var(--gold,#c4a574)}
.shv-crop-actions{
  display:flex;gap:.55rem;justify-content:flex-end;flex-wrap:wrap;
}
.shv-crop-btn{
  font:inherit;font-size:.88rem;border-radius:999px;padding:.55rem 1.15rem;cursor:pointer;
  border:1px solid var(--line,#3a342c);background:transparent;color:var(--ink-soft,#d9d0c3);
}
.shv-crop-btn:hover{border-color:var(--gold,#c4a574);color:var(--ink,#f4efe6)}
.shv-crop-btn.primary{
  background:var(--gold,#c4a574);border-color:var(--gold,#c4a574);color:#1a1408;font-weight:600;
}
.shv-crop-btn.primary:hover{filter:brightness(1.06)}
.shv-crop-btn:disabled{opacity:.45;cursor:wait}

/* Recorte rectangular de aportes (galería 4:3). */
.shv-aporte-crop-stage{
  position:relative;width:min(320px,78vw);aspect-ratio:4/3;border-radius:14px;
  overflow:hidden;cursor:grab;touch-action:none;user-select:none;
  border:2px solid var(--gold,#c4a574);
  box-shadow:0 0 0 6px color-mix(in srgb, var(--gold,#c4a574) 14%, transparent), 0 16px 36px -20px rgba(0,0,0,.45);
  background:#1a1814;
}
.shv-aporte-crop-stage.is-drag{cursor:grabbing}
.shv-aporte-crop-stage img{
  position:absolute;left:0;top:0;max-width:none;pointer-events:none;
  transform-origin:0 0;will-change:transform;-webkit-user-drag:none;
}

/* Modales de colaboración en el memorial */
.shv-colab-dlg{
  border:0;padding:0;margin:auto;max-width:min(480px,calc(100vw - 24px));
  width:100%;background:var(--surface);color:var(--ink);
  border-radius:18px;box-shadow:0 28px 80px -24px rgba(0,0,0,.55);
}
.shv-colab-dlg::backdrop{background:rgba(8,7,5,.58);backdrop-filter:blur(3px)}
.shv-colab-inner{padding:1.2rem 1.15rem 1.05rem}
.shv-colab-title{font-family:var(--serif);font-size:1.35rem;font-weight:600;margin:0 0 .35rem;text-align:center}
.shv-colab-sub{font-size:.82rem;color:var(--muted);margin:0 0 1rem;text-align:center;line-height:1.45}
.shv-colab-field{margin:0 0 .75rem}
.shv-colab-field label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:.35rem}
.shv-colab-field textarea,.shv-colab-field input[type=text]{
  width:100%;font:inherit;font-size:.95rem;color:var(--ink);background:var(--surface-2);
  border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;
}
.shv-colab-field textarea{min-height:7rem;resize:vertical;line-height:1.5}
.shv-colab-preview{
  display:none;margin:0 0 .85rem;border-radius:12px;overflow:hidden;border:1px solid var(--line);
  background:var(--surface-2);aspect-ratio:4/3;
}
.shv-colab-preview.is-on{display:block}
.shv-colab-preview img{display:block;width:100%;height:100%;object-fit:cover}
.shv-colab-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.4rem}
.shv-colab-err{color:#a15b5b;font-size:.82rem;margin:0 0 .5rem}
.shv-colab-row{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin-bottom:.75rem}
