.ekos-dialog[hidden] { display: none !important; }
.ekos-dialog { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: 1.25rem; opacity: 0; transition: opacity .18s ease; font-family: inherit; }
.ekos-dialog.is-open { opacity: 1; }
.ekos-dialog__backdrop { position: absolute; inset: 0; background: rgba(4, 10, 24, .66); backdrop-filter: blur(12px); }
.ekos-dialog__card { position: relative; width: min(100%, 430px); overflow: hidden; padding: 1.65rem; border: 1px solid color-mix(in srgb, var(--color-primary, #1677ff) 24%, rgba(255,255,255,.2)); border-radius: 22px; background: color-mix(in srgb, var(--bg-surface, #fff) 94%, transparent); color: var(--text-primary, #111827); box-shadow: 0 30px 90px rgba(0, 20, 60, .28); transform: translateY(14px) scale(.975); transition: transform .22s cubic-bezier(.22,.9,.3,1); }
.ekos-dialog.is-open .ekos-dialog__card { transform: none; }
.ekos-dialog__accent { position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, #0066ff, #48a7ff, #8bc7ff); }
.ekos-dialog--danger .ekos-dialog__accent { background: linear-gradient(90deg, #ef4444, #fb7185, #fdba74); }
.ekos-dialog__icon { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 1rem; border-radius: 16px; color: #1677ff; background: rgba(22,119,255,.1); }
.ekos-dialog--danger .ekos-dialog__icon { color: #ef4444; background: rgba(239,68,68,.1); }
.ekos-dialog--success .ekos-dialog__icon { color: #10b981; background: rgba(16,185,129,.1); }
.ekos-dialog__icon svg, .ekos-toast__icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ekos-dialog__eyebrow { margin: 0 0 .35rem; color: var(--text-muted, #64748b); font-size: .66rem; font-weight: 800; letter-spacing: .16em; }
.ekos-dialog__copy h2 { margin: 0; font-size: 1.28rem; line-height: 1.25; }
.ekos-dialog__copy > p:last-child { margin: .7rem 0 0; color: var(--text-muted, #64748b); font-size: .92rem; line-height: 1.6; }
.ekos-dialog__actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1.45rem; }
.ekos-dialog__button { min-height: 42px; padding: .7rem 1rem; border: 0; border-radius: 11px; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; transition: transform .16s ease, filter .16s ease, background .16s ease; }
.ekos-dialog__button:hover { transform: translateY(-1px); }
.ekos-dialog__button--ghost { color: var(--text-secondary, #475569); background: var(--bg-secondary, #eef2f7); }
.ekos-dialog__button--primary { color: #fff; background: linear-gradient(135deg, #0066ff, #258cff); box-shadow: 0 10px 24px rgba(0,102,255,.22); }
.ekos-dialog--danger .ekos-dialog__button--primary { background: linear-gradient(135deg, #e53935, #fb5b68); box-shadow: 0 10px 24px rgba(239,68,68,.22); }
.ekos-dialog-open { overflow: hidden; }
.ekos-toast-stack { position: fixed; z-index: 21000; top: 1.1rem; right: 1.1rem; width: min(390px, calc(100vw - 2rem)); display: grid; gap: .65rem; pointer-events: none; }
.ekos-toast { display: grid; grid-template-columns: 38px 1fr auto; gap: .75rem; align-items: center; padding: .78rem .85rem; border: 1px solid rgba(0,102,255,.16); border-radius: 15px; color: var(--text-primary, #111827); background: color-mix(in srgb, var(--bg-surface, #fff) 95%, transparent); box-shadow: 0 18px 48px rgba(0,20,60,.2); backdrop-filter: blur(14px); pointer-events: auto; opacity: 0; transform: translateY(-10px) scale(.98); transition: opacity .2s ease, transform .2s ease; }
.ekos-toast.is-visible { opacity: 1; transform: none; }
.ekos-toast__icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #1677ff; background: rgba(22,119,255,.1); }
.ekos-toast--success .ekos-toast__icon { color: #10b981; background: rgba(16,185,129,.1); }
.ekos-toast--error .ekos-toast__icon { color: #ef4444; background: rgba(239,68,68,.1); }
.ekos-toast__icon svg { width: 19px; height: 19px; }
.ekos-toast__message { font-size: .84rem; font-weight: 650; line-height: 1.4; }
.ekos-toast button { border: 0; padding: .25rem; color: var(--text-muted, #64748b); background: transparent; font-size: 1.25rem; cursor: pointer; }
@media (max-width: 600px) {
  .ekos-dialog { align-items: end; padding: .7rem; }
  .ekos-dialog__card { width: 100%; border-radius: 22px; padding: 1.35rem; transform: translateY(30px); }
  .ekos-dialog__actions { flex-direction: column-reverse; }
  .ekos-dialog__button { width: 100%; }
  .ekos-toast-stack { inset: .75rem .75rem auto; width: auto; }
}
