*{box-sizing:border-box}
:root{
  --bg:#f4f4f4;
  --card:#ffffff;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:#dedede;
  --accent:#111;
}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
body{min-height:100vh}
.shell{width:min(620px,100%);margin:0 auto;padding:26px 18px 40px}
.hero{text-align:center;padding:34px 10px 26px}
.badge{font-size:13px;letter-spacing:.22em;font-weight:700;color:#666;margin-bottom:12px}
h1{font-size:clamp(30px,8vw,48px);line-height:1.05;margin:0 0 14px}
.hero p{font-size:18px;color:var(--muted);margin:0}
.card{background:var(--card);border-radius:22px;padding:20px;box-shadow:0 8px 28px rgba(0,0,0,.08)}
button,.button{
  display:flex;align-items:center;justify-content:center;width:100%;
  min-height:62px;border:0;border-radius:14px;margin:0 0 12px;
  font-size:19px;font-weight:700;text-decoration:none;cursor:pointer;
}
.primary{background:#111;color:white}
.secondary{background:#e9e9e9;color:#111}
.whatsapp{background:#dff5e5;color:#174b28}
.dropzone{
  border:2px dashed #c9c9c9;border-radius:14px;padding:22px 14px;text-align:center;
  color:#777;font-size:14px;margin-top:8px;background:#fafafa;
}
.dropzone.drag{border-color:#111;color:#111;background:#f0f0f0}
.status{margin-top:18px;padding:14px;border-radius:12px;background:#f6f6f6}
.progress{height:10px;background:#ddd;border-radius:999px;overflow:hidden;margin:10px 0}
#progressBar{height:100%;width:0;background:#111;transition:width .2s}
.detail,.note{color:#777;font-size:13px}
.note{text-align:center;margin:18px 12px 0}

/* Galería */
.gallery-shell{width:min(1100px,100%);margin:0 auto;padding:18px}
.gallery-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:6px 0 18px;flex-wrap:wrap}
.gallery-head h1{font-size:clamp(26px,5vw,42px);margin:0}
.gallery-actions{display:flex;gap:8px;flex-wrap:wrap}
.gallery-actions a{display:inline-flex;padding:11px 14px;border-radius:10px;background:#111;color:#fff;text-decoration:none;font-weight:700}
.grid{column-count:3;column-gap:6px}
.tile{display:inline-block;width:100%;margin:0 0 6px;background:#eee;overflow:hidden;cursor:pointer;border-radius:4px}
.tile img{width:100%;height:auto;display:block}
.empty{text-align:center;padding:70px 20px;color:#777}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.94);display:none;z-index:50}
.modal.open{display:flex;flex-direction:column}
.modal-top{display:flex;justify-content:space-between;align-items:center;padding:10px;gap:10px}
.modal-top button,.modal-top a{width:auto;min-height:auto;margin:0;padding:10px 14px;border-radius:10px;background:#fff;color:#111;text-decoration:none;font-weight:700;font-size:15px}
.modal-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px}
.modal-body img{max-width:100%;max-height:100%;object-fit:contain}
.nav{position:absolute;top:50%;transform:translateY(-50%);width:48px!important;height:58px;font-size:28px!important;opacity:.85}
.prev{left:8px}.next{right:8px}

@media(max-width:600px){
  .shell{padding:14px}
  .hero{padding:26px 8px 20px}
  .card{padding:14px;border-radius:18px}
  .dropzone{display:none}
  .grid{column-count:2;column-gap:4px}
  .tile{margin-bottom:4px}
  .gallery-shell{padding:10px}
}
