.glimm-dialog, .glimm-toast, .glimm-toast-light {
  --glimm-accent: #a8dcff;
  --glimm-warm: #f25b9e;
  --glimm-tail: #70e2b9;
}
:is(.glimm-dialog, .glimm-toast, .glimm-toast-light)[data-tone=warning] { --glimm-accent:#ffdc9a; --glimm-warm:#ff9b67; --glimm-tail:#ffd989; }
:is(.glimm-dialog, .glimm-toast, .glimm-toast-light)[data-tone=error] { --glimm-accent:#ffc0cb; --glimm-warm:#f7638c; --glimm-tail:#fba897; }
.glimm-dialog {
  position: fixed; inset: max(12px, env(safe-area-inset-top)) 0 auto;
  margin: 0 auto; width: min(460px, calc(100vw - 24px)); max-width: none;
  padding: 0; overflow: visible; border: 0; background: transparent; color: #fff;
  font-family: system-ui,sans-serif;
}
.glimm-dialog[data-tone=success] { inset: 0; margin: auto; height: fit-content; }
.glimm-dialog[data-tone=success]::backdrop { backdrop-filter: blur(4px); }
.glimm-dialog::backdrop { background: #1317211a; animation: glimm-dim 800ms ease-out both; }
.glimm-card, .glimm-toast {
  position: relative; isolation: isolate; box-sizing: border-box;
  border: 1px solid #ffffff36 !important; border-radius: 13px !important;
  color: #f8f9fc !important; background: linear-gradient(110deg,#43454e,#303640 68%,#383c46) !important;
  box-shadow: 0 5px 18px #18243345, 0 0 30px color-mix(in srgb,var(--glimm-accent),transparent 65%) !important;
}
.glimm-card { padding: 14px 42px 14px 14px; max-height: min(78vh, 620px); max-height: min(78dvh, 620px); overflow: auto; }
.glimm-card > :is(div,section):not(.glimm-close) {
  padding: 0 !important; background: none !important; border: 0 !important;
  box-shadow: none !important; text-align: left !important; border-radius: 0 !important;
}
.glimm-card :is(h2,h3) { font: 650 16px/1.35 system-ui,sans-serif !important; margin: 0 0 4px; color: #fff !important; }
.glimm-card p { font: 400 13px/1.45 system-ui,sans-serif !important; color:#edf0f5 !important; margin: 5px 0; }
.glimm-card :is(a,button):not(.glimm-close) {
  display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 6px 13px;
  color: #fff !important; background: #ffffff13 !important; border: 1px solid #ffffff45 !important;
  border-radius: 8px !important; box-shadow:none !important; font: 600 13px/1.25 system-ui,sans-serif;
}
.glimm-card :is(a,button):not(.glimm-close):hover { background:#ffffff29 !important; }
.glimm-card a { margin: 4px 6px 0 0; }
.glimm-card .glimm-legacy-icon, .glimm-icon {
  display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px;
  margin: 0; border-radius: 7px; color: #354052; background: linear-gradient(#fff,#bdc8d8);
  box-shadow: inset 0 1px 2px #fff, 0 2px 5px #0006;
}
.glimm-card .glimm-legacy-icon { float:left; margin-right: 10px; margin-bottom: 5px; }
.glimm-legacy-icon svg,.glimm-icon svg { width: 19px; height: 19px; }
.glimm-card .glimm-legacy-actions { clear: both; display:flex; flex-wrap:wrap; gap: 7px; margin-top: 12px; }
.glimm-card .glimm-legacy-note { color:#edf0f5; background:#ffffff0b; border-radius:7px; margin: 8px 0; padding: 8px; font-size: 13px; }
.glimm-close, .glimm-toast [toast-close] {
  position: absolute; z-index:1; right: 9px; top: 9px; width: 28px; height: 28px;
  padding:0; border: 0; border-radius: 6px; background: #ffffff10; color:#fff !important; cursor:pointer;
  opacity:1 !important; display:grid; place-items:center; font: 20px/1 system-ui;
}
.glimm-close:focus-visible, .glimm-toast :focus-visible, .glimm-card :focus-visible { outline:2px solid #cbe6ff; outline-offset:2px; }
.glimm-viewport {
  position: fixed !important; z-index: 130 !important; inset: max(12px,env(safe-area-inset-top)) auto auto 50% !important;
  width: min(410px, calc(100vw - 24px)) !important; max-width: none !important; padding: 0 !important;
  transform: translateX(-50%); pointer-events:none; gap: 8px;
}
.glimm-toast { overflow: visible !important; pointer-events:auto; padding: 11px 42px 11px 10px !important; gap:10px; margin:0 !important; }
.glimm-toast > .glimm-toast-copy { flex:1; margin:0 !important; min-width:0; }
.glimm-toast .glimm-toast-copy > * { color:#f8f9fc !important; }
.glimm-toast [toast-close] { margin:0 !important; }
.glimm-toast button:not([toast-close]) { color:#fff !important; border-color:#ffffff65 !important; }
.glimm-light {
  position:absolute; z-index:-1; pointer-events:none; top:-48px; left:50%; width:min(115vw,1050px); height: max(76vh,390px);
  translate:-50% 0; overflow:hidden; opacity:0; animation:glimm-field 1500ms ease-out both;
}
.glimm-dialog .glimm-light, .glimm-toast-light {
  position: fixed; inset: 0; width: 100%; height: 100%; translate: none;
  animation: glimm-field-full 1400ms linear both;
}
.glimm-light::before {
  content:''; position:absolute; inset:-34% 5% auto; height: 53%;
  background: radial-gradient(ellipse at 50% 23%,var(--glimm-accent),transparent 57%),
    radial-gradient(ellipse at 65% 50%,#a575f4,transparent 64%),
    radial-gradient(ellipse at 44% 62%,var(--glimm-warm),transparent 61%),
    radial-gradient(ellipse at 50% 87%,var(--glimm-tail),transparent 68%);
  filter: blur(26px); animation:glimm-sweep 1400ms cubic-bezier(.18,.67,.25,1) both;
}
.glimm-toast-light { z-index:129; }
.glimm-dialog .glimm-light::before, .glimm-toast-light::before { animation: glimm-sweep-full 1400ms cubic-bezier(.22,.42,.38,1) both; }
@keyframes glimm-sweep-full {
  from { transform: translateY(-18%) scale(.68,.48); }
  to { transform: translateY(270%) scale(1.18,.58); }
}
@keyframes glimm-field-full {
  0%, 100% { opacity: 0; }
  22% { opacity: .85; }
  78% { opacity: .52; }
}
.glimm-dialog[open] .glimm-card,.glimm-toast[data-state=open] { animation:glimm-drop 560ms cubic-bezier(.21,.79,.3,1) both !important; }
.glimm-dialog[open][data-tone=success] .glimm-card {
  animation-name: glimm-drop-center !important;
}
@keyframes glimm-drop-center {
  0% { opacity:0; transform:translateY(calc(-50dvh - 55%)) scale(.87,.73); filter:blur(4px); }
  53% { opacity:1; transform:translateY(5px) scale(1.035,.96); filter:blur(0); }
  73% { transform:translateY(-2px) scale(.994,1.018); }
  100% { transform:translateY(0) scale(1); }
}
.glimm-toast[data-state=closed] { animation:glimm-out 200ms ease-in both !important; }
@keyframes glimm-drop {
  0% { opacity:0; transform:translateY(-112%) scale(.87,.73); filter:blur(4px); }
  53% { opacity:1; transform:translateY(5px) scale(1.035,.96); filter:blur(0); }
  73% { transform:translateY(-2px) scale(.994,1.018); }
  100% { transform:translateY(0) scale(1); }
}
@keyframes glimm-field { 0%,100% {opacity:0} 24% {opacity:.91} 63% {opacity:.47} }
@keyframes glimm-sweep { 0% {transform:translateY(-18%) scale(.68,.48)} 42% {transform:translateY(95%) scale(1,.92)} 100% {transform:translateY(245%) scale(1.18,.48)} }
@keyframes glimm-dim { from {opacity:0} 35% {opacity:1} to {opacity:.4} }
@keyframes glimm-out { to {opacity:0;transform:translateY(-12px) scale(.98)} }
@media(prefers-reduced-motion:reduce) {
  .glimm-dialog::backdrop,.glimm-dialog[open] .glimm-card,.glimm-toast[data-state] { animation:none !important; }
  .glimm-light { display:none; }
}
