/* LeCastle modal system v2 — shared visual language for every dialog */
[id$="-modal"].fixed.inset-0{
  --lm-surface:#171620;
  --lm-surface-2:rgba(255,255,255,.045);
  --lm-stroke:rgba(255,255,255,.095);
  --lm-text:#f4f2f8;
  --lm-muted:#9b96a8;
  --lm-accent:#9c7cff;
  padding:clamp(12px,3vw,34px);
  overflow:hidden;
  background:rgba(5,5,9,.76) !important;
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  isolation:isolate;
}
[id$="-modal"].fixed.inset-0::before,
[id$="-modal"].fixed.inset-0::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:42vw;
  height:42vw;
  min-width:340px;
  min-height:340px;
  border-radius:50%;
  filter:blur(70px);
  opacity:.16;
  pointer-events:none;
}
[id$="-modal"].fixed.inset-0::before{ top:-24%; right:-10%; background:#7148ed; }
[id$="-modal"].fixed.inset-0::after{ bottom:-30%; left:-14%; background:#3159bd; opacity:.1; }

[id$="-modal"].fixed.inset-0 > div:first-child{
  position:relative;
  z-index:1;
  overflow:hidden;
  margin:0 !important;
  border:1px solid var(--lm-stroke) !important;
  border-radius:22px !important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.035),transparent 32%),
    var(--lm-surface) !important;
  color:var(--lm-text);
  box-shadow:0 30px 90px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.04) !important;
}
[id$="-modal"]:not(.hidden) > div:first-child{ animation:lmEnter .2s cubic-bezier(.2,.8,.2,1); }
@keyframes lmEnter{ from{ opacity:0; transform:translateY(12px) scale(.985); } to{ opacity:1; transform:none; } }

/* Header areas */
[id$="-modal"] > div:first-child > .border-b,
[id$="-modal"] > div:first-child > .p-6:first-child,
[id$="-modal"] > div:first-child > .p-4:first-child{
  border-color:var(--lm-stroke) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.026),transparent);
}
[id$="-modal"] h3{
  color:var(--lm-text) !important;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.015em;
}
[id$="-modal"] h3.text-xl{ font-size:19px !important; }
[id$="-modal"] h3.text-lg{ font-size:17px !important; }
[id$="-modal"] p.text-gray-400,[id$="-modal"] .text-gray-400{ color:var(--lm-muted) !important; }

/* Close icon buttons */
[id$="-modal"] button.w-8.h-8.rounded-full{
  flex:0 0 34px;
  width:34px !important;
  height:34px !important;
  border:1px solid var(--lm-stroke);
  border-radius:11px !important;
  background:rgba(255,255,255,.038);
  color:#a7a2b2;
}
[id$="-modal"] button.w-8.h-8.rounded-full:hover{
  border-color:rgba(248,113,113,.25);
  background:rgba(239,68,68,.11) !important;
  color:#fecaca;
}

/* Form controls */
[id$="-modal"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select){
  border:1px solid var(--lm-stroke) !important;
  border-radius:12px !important;
  outline:0;
  background:rgba(255,255,255,.045) !important;
  color:var(--lm-text) !important;
  box-shadow:inset 0 1px rgba(255,255,255,.018);
  transition:border-color .15s,box-shadow .15s,background .15s;
}
[id$="-modal"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select):focus{
  border-color:rgba(156,124,255,.6) !important;
  background:rgba(255,255,255,.057) !important;
  box-shadow:0 0 0 3px rgba(139,92,246,.11) !important;
}
[id$="-modal"] :where(input,textarea)::placeholder{ color:#716c7c !important; }
[id$="-modal"] select option{ background:#1a1923; color:#f4f2f8; }
[id$="-modal"] label{ color:#c5c1cf; }

/* Section cards and lists */
[id$="-modal"] :where(.bg-dark-700,.bg-dark-700\/30,.bg-dark-700\/50,.bg-dark-900){
  border-color:var(--lm-stroke) !important;
}
[id$="-modal"] .bg-dark-700:not(button),
[id$="-modal"] .bg-dark-700\/30,
[id$="-modal"] .bg-dark-700\/50{
  background:rgba(255,255,255,.042) !important;
}
[id$="-modal"] .bg-dark-900{ background:rgba(5,5,9,.34) !important; }
[id$="-modal"] [class*="rounded-xl"],[id$="-modal"] [class*="rounded-lg"]{ border-color:var(--lm-stroke); }
[id$="-modal"] .divide-y > :not([hidden]) ~ :not([hidden]){ border-color:var(--lm-stroke); }

/* Primary and secondary actions */
[id$="-modal"] button[class*="bg-accent"],
[id$="-modal"] button[class*="bg-purple"]{
  border:1px solid rgba(190,167,255,.18);
  background:linear-gradient(145deg,#9373f4,#6749d6) !important;
  box-shadow:0 8px 22px rgba(91,58,198,.19);
}
[id$="-modal"] button[class*="bg-green"]{ border:1px solid rgba(74,222,128,.16); background:linear-gradient(145deg,#269b5d,#177345) !important; }
[id$="-modal"] button[class*="bg-blue"]{ border:1px solid rgba(96,165,250,.16); background:linear-gradient(145deg,#3479d8,#2555a7) !important; }
[id$="-modal"] button[class*="bg-red"]{ border:1px solid rgba(248,113,113,.16); background:linear-gradient(145deg,#c93f4c,#982d3c) !important; }
[id$="-modal"] button[class*="bg-dark-600"],
[id$="-modal"] button[class*="bg-dark-700"]{
  border:1px solid var(--lm-stroke);
  background:rgba(255,255,255,.05) !important;
}
[id$="-modal"] button:not(:disabled){ transition:filter .14s,transform .14s,border-color .14s; }
[id$="-modal"] button:not(:disabled):hover{ filter:brightness(1.1); transform:translateY(-1px); }
[id$="-modal"] button:not(:disabled):active{ transform:scale(.985); }

/* Tabs */
[id$="-modal"] [class*="border-b-2"]{
  border-radius:10px 10px 0 0;
  transition:color .14s,background .14s,border-color .14s;
}
[id$="-modal"] [class*="border-b-2"]:hover{ background:rgba(255,255,255,.035); }
[id$="-modal"] .border-accent-500{ border-color:var(--lm-accent) !important; color:#d8cdff !important; }

/* Scroll areas */
[id$="-modal"] [class*="overflow-y-auto"]{ overscroll-behavior:contain; scrollbar-gutter:stable; }
[id$="-modal"] ::-webkit-scrollbar{ width:7px; height:7px; }
[id$="-modal"] ::-webkit-scrollbar-thumb{ border-radius:99px; background:rgba(255,255,255,.13); }
[id$="-modal"] ::-webkit-scrollbar-track{ background:transparent; }

/* Image/object previews */
#texture-modal img,#inventory-info-modal img,#notecard-modal img{
  border-radius:12px;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.23));
}
#pay-modal > div:first-child,#tp-offer-modal > div:first-child,#group-invite-modal > div:first-child,#remove-friend-modal > div:first-child{ max-width:410px; }

@media (max-width:768px){
  [id$="-modal"].fixed.inset-0{ align-items:flex-end !important; padding:0 !important; }
  [id$="-modal"].fixed.inset-0 > div:first-child{
    width:100% !important;
    max-width:none !important;
    max-height:calc(100dvh - 18px) !important;
    margin:0 !important;
    border-right:0 !important;
    border-bottom:0 !important;
    border-left:0 !important;
    border-radius:22px 22px 0 0 !important;
    padding-bottom:max(10px,env(safe-area-inset-bottom));
  }
  [id$="-modal"].fixed.inset-0 > div:first-child::before{
    content:"";
    display:block;
    width:38px;
    height:4px;
    margin:8px auto -2px;
    border-radius:99px;
    background:rgba(255,255,255,.16);
  }
  [id$="-modal"] h3.text-xl{ font-size:18px !important; }
  [id$="-modal"] :where(input,textarea,select){ font-size:16px !important; }
}

@media (prefers-reduced-motion:reduce){
  [id$="-modal"]:not(.hidden) > div:first-child{ animation:none; }
  [id$="-modal"] button,[id$="-modal"] :where(input,textarea,select){ transition:none !important; }
}
