:root{
  --app-red:#c62828;
  --app-dark:#15181c;
  --app-muted:#667085;
  --app-border:#e8edf4;
  --app-soft:#f7f8fb;
}

*{box-sizing:border-box}

html,body{width:100%;overflow-x:hidden}

body.app-body{
  margin:0;
  min-height:100vh;
  font-family:"Segoe UI",Arial,sans-serif;
  background:#f7f8fb;
  color:#15181c;
  padding:18px;
}

/* Regla base: ninguna imagen puede romper su contenedor */
img{
  max-width:100%;
  height:auto;
}

.app-shell{width:min(1040px,100%);margin:0 auto}
.app-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.app-brand{display:flex;align-items:center;gap:12px;min-width:0}
.app-brand > img{
  width:54px !important;
  height:54px !important;
  max-width:54px !important;
  max-height:54px !important;
  flex:0 0 54px;
  border-radius:16px;
  object-fit:contain;
  background:#fff;
  border:1px solid var(--app-border);
  padding:5px;
}
.app-brand h1{font-size:1.18rem;margin:0;color:#101828;font-weight:850}
.app-brand p{margin:2px 0 0;color:var(--app-muted);font-size:.9rem}

.app-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 13px;
  border-radius:12px;
  background:#fff;
  color:#15181c;
  border:1px solid var(--app-border);
  text-decoration:none;
  font-weight:800;
}

.app-card{
  background:#fff;
  border:1px solid var(--app-border);
  border-radius:18px;
  box-shadow:0 12px 32px rgba(15,23,42,.07);
  overflow:hidden;
  min-width:0;
}
.app-card-pad{padding:18px}
.app-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.app-grid > *{min-width:0}
.app-col-4{grid-column:span 4}
.app-col-5{grid-column:span 5}
.app-col-6{grid-column:span 6}
.app-col-7{grid-column:span 7}
.app-col-8{grid-column:span 8}
.app-col-12{grid-column:span 12}

.app-title{font-size:1.35rem;font-weight:900;margin:0 0 6px;color:#101828}
.app-muted{color:var(--app-muted)}
.app-form{display:grid;gap:12px}
.app-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:var(--app-muted);margin-bottom:5px}
.app-input,.app-select{width:100%;border:1px solid #d0d5dd;border-radius:13px;padding:12px 13px;background:#fff;color:#101828;font:inherit}

.app-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:13px;
  background:var(--app-red);
  color:#fff;
  padding:12px 14px;
  font-weight:850;
  text-decoration:none;
  cursor:pointer;
}
.app-btn.secondary{background:#15181c}
.app-btn.ghost{background:#fff;color:#15181c;border:1px solid var(--app-border)}
.app-btn:disabled{opacity:.55;cursor:not-allowed}

.app-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.app-stats-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-stat{background:#f8fafc;border:1px solid #edf1f7;border-radius:14px;padding:12px;text-align:center}
.app-stat span{display:block;color:var(--app-muted);font-size:.76rem;text-transform:uppercase;font-weight:850}
.app-stat strong{display:block;color:#101828;font-size:1.35rem;margin-top:4px}

.app-list{display:grid;gap:10px}
.app-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#f8fafc;
  border:1px solid #edf1f7;
  border-radius:14px;
  padding:12px;
  color:inherit;
  min-width:0;
}
button.app-row{width:100%;font:inherit}
.app-row-main{display:flex;align-items:center;gap:10px;min-width:0}
.app-row-main > div{min-width:0}
.app-logo{width:34px;height:34px;object-fit:contain;border-radius:9px;background:#fff;border:1px solid var(--app-border);padding:3px;flex:0 0 auto}
.app-avatar{width:76px;height:76px;border-radius:20px;object-fit:cover;background:#15181c;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.6rem}
.app-mini-avatar{width:36px;height:36px;border-radius:999px;object-fit:cover;background:#15181c;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.85rem;flex:0 0 36px}
.app-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 9px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:.78rem;font-weight:850;white-space:nowrap}

.app-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.app-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:#e8edf4}

.app-matchday-list{display:grid;gap:14px}
.app-matchday-group{display:grid;gap:10px}
.app-matchday-time{display:inline-flex;align-items:center;width:max-content;min-height:30px;padding:5px 10px;border-radius:999px;background:#15181c;color:#fff;font-weight:900;font-size:.86rem}
.app-match-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(92px,130px) minmax(0,1fr);
  gap:10px;
  align-items:center;
  border:1px solid #edf1f7;
  border-radius:16px;
  background:#fff;
  padding:12px;
}
.app-match-team{display:grid;justify-items:center;gap:7px;text-align:center;min-width:0}
.app-match-team img,.app-match-team span{width:44px;height:44px;border-radius:12px;object-fit:contain;background:#f8fafc;border:1px solid var(--app-border);padding:5px}
.app-match-team span{display:flex;align-items:center;justify-content:center;font-weight:900;color:#101828}
.app-match-team strong{font-size:.9rem;line-height:1.15;overflow-wrap:anywhere}
.app-match-center{display:grid;justify-items:center;gap:4px;text-align:center;color:#475467;min-width:0}
.app-match-center strong{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:36px;padding:6px 10px;border-radius:12px;background:#fee2e2;color:#991b1b;font-size:1.05rem}
.app-match-center span,.app-match-center small{overflow-wrap:anywhere}

.app-data-team{display:flex;align-items:center;gap:9px;min-width:0;text-align:left}
.app-data-team img,.app-data-team span{width:34px;height:34px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid var(--app-border);padding:4px;flex:0 0 34px}
.app-data-team span{display:flex;align-items:center;justify-content:center;font-weight:900;color:#101828;background:#f8fafc}
.app-data-team strong{overflow-wrap:anywhere}
.app-data-score{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:30px;border-radius:10px;background:#fee2e2;color:#991b1b;font-weight:900}
.app-table-card{border-radius:16px;border:1px solid var(--app-border);overflow:hidden;background:#fff}
.app-table-card table{margin-bottom:0}
.app-table-card thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.app-table-card tbody td{vertical-align:middle}

.app-game-form{display:grid;grid-template-columns:1fr 64px 64px auto;gap:8px;align-items:center}
.app-score-input{width:64px;text-align:center}

/* Zona AR / QR */
.app-hunt-ar{
  position:relative;
  width:100%;
  min-height:320px;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(145deg,#15181c,#323946);
  border:1px solid #303846;
  display:flex;
  align-items:center;
  justify-content:center;
}
.app-hunt-ar video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
}
.app-hunt-ar.has-camera video{opacity:1}
.app-ar-3d-canvas{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:0;
}
.app-hunt-ar.has-3d .app-ar-3d-canvas{opacity:1}
.app-hunt-ar.has-3d-live .app-ar-3d-canvas{opacity:1}
.app-hunt-ar.has-3d-live .app-hunt-overlay{
  position:absolute;
  left:12px;
  right:12px;
  top:12px;
  width:auto;
  min-height:0;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  padding:10px 12px 10px 64px;
  border-radius:16px;
  background:rgba(21,24,28,.72);
  box-shadow:0 14px 32px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
}
.app-hunt-ar.has-3d-live .app-hunt-overlay img,
.app-hunt-ar.has-3d-live #arItemImage{
  position:absolute;
  left:10px;
  top:50%;
  width:42px !important;
  height:42px !important;
  max-width:42px !important;
  max-height:42px !important;
  padding:4px;
  border-radius:12px;
  transform:translateY(-50%);
}
.app-hunt-ar.has-3d-live .app-hunt-overlay strong{font-size:.94rem;line-height:1.15}
.app-hunt-ar.has-3d-live .app-hunt-overlay span{font-size:.78rem;line-height:1.2}
.app-hunt-ar.has-2d-live .app-hunt-overlay{
  left:50%;
  right:auto;
  top:35%;
  width:min(230px,72%);
  min-height:154px;
  transform:translate(-50%,-50%);
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px 14px 12px;
  background:rgba(21,24,28,.38);
}
.app-hunt-ar.has-2d-live .app-hunt-overlay img,
.app-hunt-ar.has-2d-live #arItemImage{
  position:static;
  width:88px !important;
  height:88px !important;
  max-width:88px !important;
  max-height:88px !important;
  transform:none;
  animation:huntPeek2d 1.8s ease-in-out infinite;
}
.app-ar-hide-prop{
  position:absolute;
  z-index:3;
  width:118px;
  height:82px;
  transform:translateX(-50%);
  pointer-events:none;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.24));
}
.app-ar-hide-prop.bush{
  border-radius:50% 50% 36% 36%;
  background:
    radial-gradient(circle at 24% 44%, #2f9e44 0 22px, transparent 23px),
    radial-gradient(circle at 50% 28%, #40c057 0 30px, transparent 31px),
    radial-gradient(circle at 76% 48%, #2b8a3e 0 24px, transparent 25px),
    linear-gradient(180deg,#37b24d,#1f7a35);
}
.app-ar-hide-prop.cone{
  width:82px;
  height:96px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.9) 0 10%,transparent 10% 30%,rgba(255,255,255,.9) 30% 42%,transparent 42% 100%),
    linear-gradient(160deg,#ff922b,#e8590c);
  clip-path:polygon(50% 0,82% 78%,100% 100%,0 100%,18% 78%);
}
.app-ar-hide-prop.sign{
  width:128px;
  height:82px;
  background:
    linear-gradient(90deg, transparent 47%, #8b5e34 47% 53%, transparent 53%),
    linear-gradient(180deg,#c62828 0 54%,#fff 54% 100%);
  border:3px solid rgba(255,255,255,.72);
  border-radius:14px;
}
.app-ar-tap-hint{
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:4;
  transform:translateX(-50%);
  max-width:calc(100% - 28px);
  padding:9px 12px;
  border-radius:999px;
  background:rgba(21,24,28,.84);
  color:#fff;
  font-weight:850;
  font-size:.9rem;
  text-align:center;
  box-shadow:0 14px 28px rgba(0,0,0,.22);
  pointer-events:none;
}
.app-hunt-ar.is-hiding:not(.has-3d-live) .app-hunt-overlay{opacity:.64}
.app-hunt-ar:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:16px;
  box-shadow:0 0 0 999px rgba(0,0,0,.08);
  pointer-events:none;
}

/* Corrección crítica: la imagen del overlay queda limitada */
.app-hunt-overlay{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:8px;
  width:100%;
  max-width:100%;
  min-width:0;
  color:#fff;
  padding:18px;
}
.app-hunt-overlay img,
#arItemImage{
  display:block;
  width:clamp(82px,22vw,118px) !important;
  height:clamp(82px,22vw,118px) !important;
  max-width:32vw !important;
  max-height:24vh !important;
  object-fit:contain;
  border-radius:22px;
  background:#fff;
  padding:10px;
  box-shadow:0 18px 44px rgba(0,0,0,.24);
}
.app-hunt-overlay strong{font-size:1.15rem;max-width:100%;overflow-wrap:anywhere}
.app-hunt-overlay span{color:#d7dde6;max-width:100%;overflow-wrap:anywhere}
.app-hunt-overlay.is-live img{animation:huntPop .45s ease-out}
.app-hunt-ar .app-btn{position:absolute;right:14px;bottom:14px;z-index:3}

.app-hunt-tools{display:grid;gap:10px;margin-top:12px}
.app-scan-status{background:#f8fafc;border:1px solid #edf1f7;border-radius:14px;padding:11px 12px;color:#475467;font-size:.92rem}
.app-manual-capture{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.app-ar-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.app-ar-found{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  background:#15181c;
  color:#fff;
  border-radius:16px;
  padding:10px;
}
.app-ar-found img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:14px;padding:6px}
.app-ar-found strong{display:block;overflow-wrap:anywhere}
.app-ar-found span{display:block;color:#d0d5dd;font-size:.86rem;margin-top:2px}
.app-ar-found .app-btn{white-space:nowrap}

/* Álbum */
.app-hunt-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:12px;
}
.app-hunt-club-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 0 12px;
  margin-bottom:4px;
}
.app-hunt-club-tabs button{
  flex:0 0 auto;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#fff;
  color:#15181c;
  padding:8px 11px;
  font-weight:850;
  cursor:pointer;
}
.app-hunt-club-tabs button.is-active{background:#15181c;color:#fff;border-color:#15181c}
.app-hunt-club-tabs span{opacity:.75;margin-left:4px}
.app-hunt-card{
  background:#f8fafc;
  border:1px solid #edf1f7;
  border-radius:16px;
  overflow:hidden;
  min-width:0;
  transition:opacity .2s ease, filter .2s ease, border-color .2s ease;
}
.app-hunt-card.is-captured{border-color:#bbf7d0;background:#f0fdf4}
.app-hunt-card.is-locked,
.app-hunt-card:not(.is-captured){
  background:rgba(248,250,252,.38);
  border-color:rgba(208,213,221,.8);
  border-style:dashed;
  opacity:.58;
  filter:grayscale(1) saturate(.15);
}
.app-hunt-image-wrap{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  background:#fff;
  overflow:hidden;
}
.app-hunt-image-wrap img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
}
.app-hunt-card.is-locked .app-hunt-image-wrap img,
.app-hunt-card:not(.is-captured) .app-hunt-image-wrap img{
  opacity:.24;
  transform:scale(.78);
}
.app-hunt-status{
  position:absolute;
  left:10px;
  top:10px;
  border-radius:999px;
  background:rgba(21,24,28,.86);
  color:#fff;
  padding:5px 8px;
  font-size:.72rem;
  font-weight:850;
}
.app-hunt-card.is-captured .app-hunt-status{background:#16a34a}
.app-hunt-card-body{padding:12px;display:grid;gap:6px}
.app-hunt-card-body strong{overflow-wrap:anywhere}
.app-hunt-card.is-locked .app-hunt-clue,
.app-hunt-card:not(.is-captured) .app-hunt-clue{background:rgba(255,255,255,.6)}
.app-hunt-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.app-hunt-clue{background:#fff;border:1px solid #edf1f7;border-radius:12px;padding:9px;color:#475467;font-size:.9rem}

.app-footer {
  width: 100%;
  padding: 14px 16px;
  background: rgba(8, 12, 18, 0.96);
  color: #ffffff;
  text-align: center;
  font-size: 13px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.footer-club {
  display: flex;
  flex-direction: column;
  gap: 3px;
  opacity: 0.9;
}

.app-version-note {
  font-size: 11px;
  opacity: 0.7;
}

.footer-gst {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 12px;
  color: #cfd8dc;
}

.footer-gst-logo {
  height: 26px;
  width: auto;
  object-fit: contain;
  display: block;
}

.footer-gst a {
  color: #35d39a;
  text-decoration: none;
  font-weight: 600;
}

.footer-gst a:hover {
  text-decoration: underline;
}

@media (max-width: 480px) {
  .app-footer {
    padding: 12px 10px;
    font-size: 12px;
  }

  .footer-gst {
    font-size: 11px;
    line-height: 1.4;
  }

  .footer-gst-logo {
    height: 5px;
  }
}

@keyframes huntPop{0%{transform:scale(.72);opacity:.5}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes huntPeek2d{0%,100%{transform:translateY(0) scale(.96)}50%{transform:translateY(-12px) scale(1.04)}}

.app-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px}
.app-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:14px;padding:12px}
.hidden{display:none !important}

@media (max-width:760px){
  body.app-body{padding:14px}
  .app-top{align-items:flex-start;flex-direction:column}
  .app-brand > img{width:44px !important;height:44px !important;max-width:44px !important;max-height:44px !important;flex-basis:44px;border-radius:14px}
  .app-title{font-size:1.15rem}
  .app-col-4,.app-col-5,.app-col-6,.app-col-7,.app-col-8,.app-col-12{grid-column:span 12}
  .app-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-game-form{grid-template-columns:1fr 58px 58px}
  .app-game-form .app-btn{grid-column:1/-1}
  .app-hunt-ar{min-height:240px}
  .app-hunt-overlay{padding:14px;gap:6px}
  .app-hunt-overlay img,
  #arItemImage{
    width:76px !important;
    height:76px !important;
    max-width:24vw !important;
    max-height:18vh !important;
    border-radius:18px;
    padding:7px;
  }
  .app-hunt-overlay strong{font-size:1rem}
  .app-hunt-overlay span{font-size:.86rem}
  .app-hunt-ar .app-btn{right:12px;bottom:12px;padding:10px 12px}
  .app-manual-capture{grid-template-columns:1fr}
  .app-ar-actions{grid-template-columns:1fr}
  .app-ar-found{grid-template-columns:56px minmax(0,1fr);align-items:start}
  .app-ar-found img{width:56px;height:56px}
  .app-ar-found .app-btn{grid-column:1/-1;width:100%}
  .app-hunt-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
  .app-match-card{grid-template-columns:1fr;gap:12px}
  .app-match-center{order:-1}
}

@media (max-width:420px){
  .app-hunt-grid{grid-template-columns:1fr}
}
