/* Card Inspector — modular UI */
body.card-inspector-open{
  overflow:hidden !important;
}

body.card-hold-pending .drag-ghost{
  visibility:hidden !important;
}

body.game-dragging.card-hold-pending .drag-ghost,
body.game-dragging .drag-ghost{
  visibility:visible !important;
  opacity:1 !important;
  display:block !important;
}

body.card-hold-pending .hand-card.drag-source{
  opacity:1 !important;
}

body.game-dragging .hand-card.drag-source{
  opacity:0 !important;
}

.card-inspector{
  position:fixed;
  inset:0;
  z-index:30000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(2,6,16,.86);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}

.card-inspector.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.card-inspector-dialog{
  position:relative;
  display:grid;
  grid-template-columns:minmax(300px,390px) minmax(280px,390px);
  gap:24px;
  width:min(850px,calc(100vw - 40px));
  max-height:calc(100vh - 40px);
  padding:22px;
  overflow:auto;
  border:1px solid rgba(255,255,255,.18);
  border-radius:26px;
  background:
    radial-gradient(circle at 22% 10%,rgba(90,145,255,.18),transparent 34%),
    linear-gradient(145deg,rgba(24,32,53,.98),rgba(8,12,24,.98));
  box-shadow:0 34px 100px rgba(0,0,0,.72);
  transform:translateY(16px) scale(.96);
  transition:transform .22s cubic-bezier(.2,.8,.2,1);
}

.card-inspector.open .card-inspector-dialog{
  transform:translateY(0) scale(1);
}

.card-inspector-close{
  position:absolute;
  z-index:5;
  top:12px;
  right:12px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#fff;
  background:rgba(5,9,18,.78);
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

.card-inspector-close:hover{
  background:rgba(255,255,255,.14);
}

.card-inspector-side{
  position:fixed;
  z-index:2;
  top:50%;
  width:150px;
  height:212px;
  padding:0;
  border:0;
  border-radius:17px;
  background:transparent;
  cursor:pointer;
  transform:translateY(-50%);
  transition:
    opacity .18s ease,
    transform .18s ease,
    filter .18s ease;
}

.card-inspector-side[hidden]{
  display:none !important;
}

.card-inspector-side-prev{
  left:max(18px,calc(50vw - 590px));
}

.card-inspector-side-next{
  right:max(18px,calc(50vw - 590px));
}

.card-inspector-side:hover{
  filter:brightness(1.12);
}

.card-inspector-side-prev:hover{
  transform:translateY(-50%) translateX(-4px) scale(1.025);
}

.card-inspector-side-next:hover{
  transform:translateY(-50%) translateX(4px) scale(1.025);
}

.card-inspector-side-card{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.16);
  border-radius:17px;
  background:#101827;
  box-shadow:0 22px 54px rgba(0,0,0,.56);
  opacity:.76;
}

.card-inspector-side-card.spell{
  border-color:rgba(125,210,255,.24);
}

.card-inspector-side-art{
  position:absolute;
  inset:0;
}

.card-inspector-side-art img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.card-inspector-side-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.22) 42%,rgba(0,0,0,.84)),
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.72));
}

.card-inspector-side-arrow{
  position:absolute;
  z-index:2;
  top:50%;
  left:50%;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:#edf7ff;
  background:rgba(5,9,18,.7);
  box-shadow:0 12px 30px rgba(0,0,0,.42);
  font-size:36px;
  line-height:1;
  transform:translate(-50%,-50%);
}

.card-inspector-side-info{
  position:absolute;
  z-index:2;
  left:10px;
  right:10px;
  bottom:10px;
  display:block;
  color:#fff;
  text-align:left;
  text-shadow:0 2px 5px rgba(0,0,0,.92);
}

.card-inspector-side-info strong{
  display:block;
  overflow:hidden;
  font-size:13px;
  line-height:1.08;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.card-inspector-side-info small{
  display:block;
  overflow:hidden;
  margin-top:3px;
  color:#b8c9df;
  font-size:9px;
  font-weight:850;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.inspect-card{
  position:relative;
  width:100%;
  aspect-ratio:3 / 4;
  overflow:hidden;
  border:3px solid rgba(255,217,104,.78);
  border-radius:28px;
  background:#101827;
  box-shadow:
    0 22px 55px rgba(0,0,0,.58),
    0 0 34px rgba(255,212,90,.16);
}

.inspect-card.spell{
  border-color:rgba(125,210,255,.82);
  box-shadow:
    0 22px 55px rgba(0,0,0,.58),
    0 0 34px rgba(89,194,255,.18);
}

.inspect-card-art{
  position:absolute;
  inset:0 0 37%;
  overflow:hidden;
  background:linear-gradient(145deg,#263a65,#111a2d);
}

.inspect-card-art::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 56%,rgba(8,12,24,.96));
}

.inspect-card-art img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.inspect-card-cost{
  position:absolute;
  z-index:2;
  top:16px;
  left:16px;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:3px solid rgba(255,255,255,.72);
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,#5a7cff,#263568);
  box-shadow:0 8px 18px rgba(0,0,0,.46);
  font-size:28px;
  font-weight:900;
}

.inspect-card-body{
  position:absolute;
  z-index:2;
  inset:auto 0 0;
  min-height:43%;
  padding:22px 22px 20px;
  color:#f8fbff;
  background:linear-gradient(180deg,rgba(10,15,28,.15),rgba(10,15,28,.98) 22%);
}

.inspect-card-name{
  padding-right:70px;
  font-size:30px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:.01em;
}

.inspect-card-type{
  margin-top:7px;
  color:#9eb5d4;
  font-size:14px;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.inspect-card-description{
  margin-top:17px;
  color:#dce7f5;
  font-size:16px;
  line-height:1.48;
}

.inspect-card-stats{
  position:absolute;
  z-index:3;
  right:16px;
  bottom:16px;
  display:flex;
  gap:10px;
}

.inspect-stat{
  min-width:58px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0 12px;
  border:2px solid rgba(255,255,255,.55);
  border-radius:16px;
  color:#fff;
  background:rgba(7,11,21,.9);
  font-size:20px;
  font-weight:900;
}

.inspect-stat.attack{
  color:#ff6e65;
}

.inspect-stat.health{
  color:#71e896;
}

.inspect-details{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:16px 6px;
  color:#f7faff;
}

.inspect-eyebrow{
  color:#8fa8ca;
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.inspect-title{
  margin:8px 0 0;
  font-size:38px;
  line-height:1.05;
}

.inspect-rule-box{
  margin-top:22px;
  padding:18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(255,255,255,.055);
}

.inspect-rule-box h3{
  margin:0 0 9px;
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#9fb6d5;
}

.inspect-rule-box p{
  margin:0;
  color:#e7eef8;
  font-size:17px;
  line-height:1.55;
}

.inspect-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}

.inspect-meta-item{
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:15px;
  background:rgba(0,0,0,.18);
}

.inspect-meta-item span{
  display:block;
  color:#8298b7;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.inspect-meta-item strong{
  display:block;
  margin-top:5px;
  color:#fff;
  font-size:18px;
}

.inspect-hint{
  margin-top:18px;
  color:#8095b2;
  font-size:13px;
  line-height:1.45;
}

@media(max-width:760px){
  .card-inspector{
    padding:10px;
  }

  .card-inspector-dialog{
    grid-template-columns:1fr;
    width:min(430px,calc(100vw - 18px));
    max-height:calc(100dvh - 18px);
    gap:10px;
    padding:12px;
    touch-action:pan-y;
  }

  .card-inspector-side{
    top:auto;
    bottom:12px;
    width:86px;
    height:120px;
    transform:none;
  }

  .card-inspector-side:hover,
  .card-inspector-side-prev:hover,
  .card-inspector-side-next:hover{
    transform:none;
  }

  .card-inspector-side-prev{
    left:12px;
  }

  .card-inspector-side-next{
    right:12px;
  }

  .card-inspector-side-arrow{
    width:34px;
    height:34px;
    font-size:28px;
  }

  .card-inspector-side-info{
    display:none;
  }

  .inspect-card{
    width:min(100%,320px);
    margin:auto;
  }

  .inspect-details{
    padding:8px 4px 12px;
  }

  .inspect-title{
    font-size:30px;
  }
}

@media(max-width:430px), (max-height:700px){
  .card-inspector{
    padding:8px;
  }

  .card-inspector-dialog{
    width:calc(100vw - 12px);
    max-height:calc(100dvh - 12px);
    padding:10px;
    gap:8px;
    border-radius:18px;
  }

  .inspect-card{
    width:min(100%,286px);
  }

  .inspect-card-cost{
    width:44px !important;
    height:44px !important;
    font-size:22px !important;
  }

  .inspect-card-body{
    padding:18px 16px 15px !important;
  }

  .inspect-card-name{
    font-size:24px !important;
  }

  .inspect-card-type{
    font-size:10px !important;
  }

  .inspect-card-description{
    margin-top:10px !important;
    font-size:12px !important;
    line-height:1.38 !important;
  }

  .inspect-card-stats{
    right:10px !important;
    bottom:10px !important;
    gap:6px !important;
  }

  .inspect-stat{
    min-width:44px !important;
    height:36px !important;
    padding:0 8px !important;
    border-radius:12px !important;
    font-size:15px !important;
  }

  .inspect-details{
    max-height:30dvh;
    overflow:auto;
    padding:6px 2px 8px;
  }

  .inspect-title{
    font-size:24px !important;
  }

  .inspect-rule-box{
    margin-top:10px !important;
    padding:12px !important;
    border-radius:14px !important;
  }

  .inspect-rule-box p{
    font-size:13px !important;
    line-height:1.42 !important;
  }

  .inspect-meta{
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:10px;
  }

  .inspect-meta-item{
    padding:9px 10px;
  }

  .inspect-meta-item strong{
    font-size:14px;
  }

  .card-inspector-side{
    width:66px;
    height:92px;
    bottom:8px;
  }

  .card-inspector-side-arrow{
    width:30px;
    height:30px;
    font-size:24px;
  }
}
