@property --rmsp-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
/* RMSP R3 Custom Modal System R1
   Replaces native browser alert/confirm dialogs with theme-aware RMSP modals.
   Real money mode -> approved blue/purple family.
   Dummy money mode -> red/crimson family.
*/
.rmsp-modal-root{position:fixed;inset:0;z-index:10000;pointer-events:none}
.rmsp-modal-root.open{pointer-events:auto}
.rmsp-modal-backdrop{position:absolute;inset:0;background:rgba(2,5,13,.72);backdrop-filter:blur(10px) saturate(1.08);opacity:0;animation:rmspModalBackdropIn .24s ease forwards}
.rmsp-modal-stage{position:absolute;inset:0;display:grid;place-items:center;padding:22px;overflow:auto}
.rmsp-modal-shell{
  --modal-accent:var(--purple2,#7658ff);
  --modal-accent-2:var(--cyan,#40d8ff);
  --modal-glow:rgba(112,82,255,.28);
  position:relative;width:min(590px,94vw);max-height:min(84vh,760px);overflow:auto;
  border:1px solid color-mix(in srgb,var(--modal-accent) 40%,var(--line));
  border-radius:22px;background:
    radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--modal-accent) 15%,transparent),transparent 32%),
    radial-gradient(circle at 100% 18%,color-mix(in srgb,var(--modal-accent-2) 11%,transparent),transparent 34%),
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,black),color-mix(in srgb,var(--bg2) 97%,black));
  color:var(--text);box-shadow:0 35px 110px rgba(0,0,0,.58),0 0 55px var(--modal-glow),inset 0 1px 0 rgba(255,255,255,.04);
  opacity:0;transform:translateY(24px) scale(.93);animation:rmspModalShellIn .42s cubic-bezier(.16,.84,.24,1) forwards;
  isolation:isolate
}
html[data-theme="light"] .rmsp-modal-shell{
  background:
    radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--modal-accent) 10%,transparent),transparent 32%),
    radial-gradient(circle at 100% 18%,color-mix(in srgb,var(--modal-accent-2) 8%,transparent),transparent 34%),
    linear-gradient(180deg,var(--surface),var(--surface2));
  box-shadow:0 28px 80px rgba(43,32,80,.16),0 0 38px var(--modal-glow),inset 0 1px 0 rgba(255,255,255,.7)
}
html[data-money-mode="dummy"] .rmsp-modal-shell{
  --modal-accent:#ff3d64;--modal-accent-2:#ff7c8f;--modal-glow:rgba(255,42,82,.26);
  background:
    radial-gradient(circle at 14% 0%,rgba(255,45,86,.16),transparent 34%),
    radial-gradient(circle at 100% 12%,rgba(160,8,40,.17),transparent 36%),
    linear-gradient(180deg,rgba(31,7,12,.985),rgba(16,3,7,.99))
}
html[data-theme="light"][data-money-mode="dummy"] .rmsp-modal-shell{
  background:
    radial-gradient(circle at 14% 0%,rgba(220,30,69,.12),transparent 34%),
    radial-gradient(circle at 100% 12%,rgba(255,92,119,.09),transparent 36%),
    linear-gradient(180deg,#fffafb,#fff1f4)
}
.rmsp-modal-shell::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--rmsp-angle,0deg),transparent 0 13%,var(--modal-accent) 18%,transparent 26% 61%,var(--modal-accent-2) 69%,transparent 78%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.72;animation:rmspModalBorderOrbit 6s linear infinite;pointer-events:none;z-index:5}
.rmsp-modal-shell::after{content:"";position:absolute;inset:1px;border-radius:20px;background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.045) 34%,transparent 48%);transform:translateX(-120%);animation:rmspModalSheen 4.8s ease-in-out infinite;pointer-events:none;z-index:-1}
.rmsp-modal-grid{position:absolute;inset:0;border-radius:inherit;overflow:hidden;opacity:.16;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.rmsp-modal-particles{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.rmsp-modal-particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--modal-accent);box-shadow:0 0 13px var(--modal-accent);opacity:.4;animation:rmspModalParticleFloat var(--dur,5s) ease-in-out infinite var(--delay,0s)}
.rmsp-modal-particle:nth-child(even){background:var(--modal-accent-2);box-shadow:0 0 13px var(--modal-accent-2)}
.rmsp-modal-head{position:relative;display:flex;align-items:flex-start;gap:14px;padding:22px 22px 12px;z-index:2}
.rmsp-modal-icon-wrap{position:relative;width:58px;height:58px;flex:0 0 58px}
.rmsp-modal-icon-ring{position:absolute;inset:-4px;border:1px solid color-mix(in srgb,var(--modal-accent) 44%,transparent);border-radius:19px;animation:rmspModalRing 2.5s ease-in-out infinite}
.rmsp-modal-icon{position:absolute;inset:4px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--modal-accent) 42%,var(--line));border-radius:15px;background:linear-gradient(180deg,color-mix(in srgb,var(--modal-accent) 13%,var(--surface2)),color-mix(in srgb,var(--modal-accent) 4%,var(--surface)));box-shadow:0 0 26px var(--modal-glow),inset 0 1px 0 rgba(255,255,255,.06);font-size:22px;color:var(--modal-accent);text-shadow:0 0 18px var(--modal-glow)}
.rmsp-modal-copy{min-width:0;flex:1}
.rmsp-modal-kicker{font-size:6px;font-weight:800;letter-spacing:.16em;color:var(--modal-accent);text-transform:uppercase}
.rmsp-modal-title{margin:4px 0 7px;font-size:20px;line-height:1.2;font-weight:900;letter-spacing:.015em;color:var(--text)}
.rmsp-modal-message{color:var(--soft);font-size:9px;line-height:1.7;white-space:pre-line}
.rmsp-modal-close{flex:0 0 32px;width:32px;height:32px;border:1px solid var(--line2);border-radius:10px;background:var(--surface2);color:var(--muted);font-size:15px;cursor:pointer;transition:.22s ease}
.rmsp-modal-close:hover{color:var(--text);border-color:var(--modal-accent);transform:rotate(90deg) scale(1.05);box-shadow:0 0 20px var(--modal-glow)}
.rmsp-modal-body{position:relative;padding:0 22px 13px;z-index:2}
.rmsp-modal-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rmsp-modal-pill{padding:5px 8px;border:1px solid color-mix(in srgb,var(--modal-accent) 23%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--modal-accent) 6%,var(--surface2));font-size:6px;font-weight:700;letter-spacing:.07em;color:var(--soft)}
.rmsp-modal-details{margin-top:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface2) 88%,transparent);color:var(--muted);font-size:7px;line-height:1.65}
.rmsp-modal-actions{position:relative;display:flex;justify-content:flex-end;gap:7px;padding:4px 22px 22px;z-index:2}
.rmsp-modal-btn{min-width:104px;height:38px;padding:0 14px;border:1px solid var(--line2);border-radius:11px;background:linear-gradient(180deg,var(--surface2),var(--surface));color:var(--soft);font-size:7px;font-weight:900;letter-spacing:.06em;cursor:pointer;transition:.2s ease;position:relative;overflow:hidden}
.rmsp-modal-btn:hover{transform:translateY(-2px);color:var(--text);border-color:color-mix(in srgb,var(--modal-accent) 45%,var(--line2));box-shadow:0 10px 28px rgba(0,0,0,.24)}
.rmsp-modal-btn.primary{border-color:color-mix(in srgb,var(--modal-accent) 58%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--modal-accent) 92%,white 8%),color-mix(in srgb,var(--modal-accent) 68%,black));color:#fff;box-shadow:0 0 24px var(--modal-glow),inset 0 1px 0 rgba(255,255,255,.15);animation:rmspModalPrimaryPulse 2.5s ease-in-out infinite}
.rmsp-modal-btn.primary::after{content:"";position:absolute;top:0;bottom:0;width:30%;left:-45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:skewX(-20deg);animation:rmspModalBtnSweep 3.2s ease-in-out infinite}
.rmsp-modal-type-warning .rmsp-modal-icon{color:#ffc15b}
.rmsp-modal-type-error .rmsp-modal-icon{color:#ff5775}
.rmsp-modal-type-success .rmsp-modal-icon{color:#20e0a0}
.rmsp-modal-type-locked .rmsp-modal-icon{color:var(--modal-accent)}
.rmsp-modal-type-error{animation:rmspModalShellIn .42s cubic-bezier(.16,.84,.24,1) forwards,rmspModalMicroShake .34s ease .34s}
.rmsp-modal-exit .rmsp-modal-backdrop{animation:rmspModalBackdropOut .18s ease forwards}
.rmsp-modal-exit .rmsp-modal-shell{animation:rmspModalShellOut .2s ease forwards}

@keyframes rmspModalBackdropIn{to{opacity:1}}
@keyframes rmspModalBackdropOut{from{opacity:1}to{opacity:0}}
@keyframes rmspModalShellIn{0%{opacity:0;transform:translateY(24px) scale(.93);filter:blur(8px)}65%{opacity:1;transform:translateY(-3px) scale(1.012);filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes rmspModalShellOut{to{opacity:0;transform:translateY(12px) scale(.975);filter:blur(3px)}}
@keyframes rmspModalBorderOrbit{to{--rmsp-angle:360deg}}
@keyframes rmspModalSheen{0%,55%{transform:translateX(-130%)}75%,100%{transform:translateX(130%)}}
@keyframes rmspModalRing{0%,100%{transform:scale(.94);opacity:.35}50%{transform:scale(1.08);opacity:.9;box-shadow:0 0 25px var(--modal-glow)}}
@keyframes rmspModalParticleFloat{0%,100%{transform:translate3d(0,0,0) scale(.7);opacity:.18}50%{transform:translate3d(var(--dx,10px),var(--dy,-18px),0) scale(1.15);opacity:.7}}
@keyframes rmspModalPrimaryPulse{0%,100%{box-shadow:0 0 18px var(--modal-glow)}50%{box-shadow:0 0 34px var(--modal-glow)}}
@keyframes rmspModalBtnSweep{0%,50%{left:-45%}75%,100%{left:120%}}
@keyframes rmspModalMicroShake{0%,100%{margin-left:0}25%{margin-left:-4px}50%{margin-left:3px}75%{margin-left:-2px}}
@media(max-width:620px){.rmsp-modal-stage{padding:12px}.rmsp-modal-shell{border-radius:17px}.rmsp-modal-head{padding:17px 15px 10px;gap:10px}.rmsp-modal-body{padding:0 15px 11px}.rmsp-modal-actions{padding:4px 15px 17px;flex-direction:column-reverse}.rmsp-modal-btn{width:100%}.rmsp-modal-icon-wrap{width:48px;height:48px;flex-basis:48px}.rmsp-modal-title{font-size:17px}}
@media(prefers-reduced-motion:reduce){.rmsp-modal-shell,.rmsp-modal-backdrop,.rmsp-modal-shell::before,.rmsp-modal-shell::after,.rmsp-modal-icon-ring,.rmsp-modal-particle,.rmsp-modal-btn.primary,.rmsp-modal-btn.primary::after{animation:none!important}.rmsp-modal-shell,.rmsp-modal-backdrop{opacity:1;transform:none}}
