/* Tailwind CSS v3 utilities (prefix "tw-", preflight off) used by the popup alerts.
   The page also loads the Tailwind Play CDN; this file is the offline fallback with
   identical values so toasts and dialogs look the same without internet. */
.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}
.tw-inset-0{inset:0}.tw-top-20{top:5rem}.tw-right-4{right:1rem}.tw-bottom-0{bottom:0}.tw-left-0{left:0}
.tw-z-\[2000\]{z-index:2000}.tw-z-\[2100\]{z-index:2100}
.tw-flex{display:flex}.tw-hidden{display:none}.tw-flex-col{flex-direction:column}.tw-flex-1{flex:1 1 0%}.tw-shrink-0{flex-shrink:0}
.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-justify-center{justify-content:center}
.tw-gap-3{gap:.75rem}.tw-gap-2{gap:.5rem}
.tw-w-full{width:100%}.tw-w-9{width:2.25rem}.tw-h-9{height:2.25rem}.tw-w-14{width:3.5rem}.tw-h-14{height:3.5rem}.tw-h-1{height:.25rem}
.tw-w-\[min\(420px\2c calc\(100vw-2rem\)\)\]{width:min(420px,calc(100vw - 2rem))}
.tw-max-w-md{max-width:28rem}.tw-min-w-0{min-width:0}
.tw-mx-auto{margin-left:auto;margin-right:auto}.tw-ml-auto{margin-left:auto}.tw-mt-0\.5{margin-top:.125rem}.tw-mt-2{margin-top:.5rem}.tw-mt-4{margin-top:1rem}.tw-mt-5{margin-top:1.25rem}.tw-mt-6{margin-top:1.5rem}
.tw-p-4{padding:1rem}.tw-p-6{padding:1.5rem}.tw-px-4{padding-left:1rem;padding-right:1rem}.tw-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.tw-overflow-hidden{overflow:hidden}.tw-pointer-events-none{pointer-events:none}.tw-pointer-events-auto{pointer-events:auto}
.tw-rounded-xl{border-radius:.75rem}.tw-rounded-2xl{border-radius:1rem}.tw-rounded-3xl{border-radius:1.5rem}.tw-rounded-full{border-radius:9999px}
.tw-border-0{border-width:0}.tw-border-l-4{border-left-width:4px;border-left-style:solid}
.tw-border-emerald-500{border-color:#10b981}.tw-border-rose-500{border-color:#f43f5e}.tw-border-amber-500{border-color:#f59e0b}.tw-border-sky-500{border-color:#0ea5e9}
.tw-bg-white{background-color:#fff}.tw-bg-slate-100{background-color:#f1f5f9}.tw-bg-slate-900\/50{background-color:rgb(15 23 42/.5)}
.tw-bg-emerald-50{background-color:#ecfdf5}.tw-bg-emerald-100{background-color:#d1fae5}.tw-bg-emerald-500{background-color:#10b981}.tw-bg-emerald-600{background-color:#059669}
.tw-bg-rose-50{background-color:#fff1f2}.tw-bg-rose-100{background-color:#ffe4e6}.tw-bg-rose-500{background-color:#f43f5e}.tw-bg-rose-600{background-color:#e11d48}
.tw-bg-amber-50{background-color:#fffbeb}.tw-bg-amber-100{background-color:#fef3c7}.tw-bg-amber-500{background-color:#f59e0b}
.tw-bg-sky-50{background-color:#f0f9ff}.tw-bg-sky-100{background-color:#e0f2fe}.tw-bg-sky-500{background-color:#0ea5e9}
.tw-bg-blue-100{background-color:#dbeafe}.tw-bg-blue-600{background-color:#2563eb}
.tw-text-white{color:#fff}.tw-text-slate-400{color:#94a3b8}.tw-text-slate-600{color:#475569}.tw-text-slate-700{color:#334155}.tw-text-slate-900{color:#0f172a}
.tw-text-emerald-600{color:#059669}.tw-text-rose-600{color:#e11d48}.tw-text-amber-600{color:#d97706}.tw-text-sky-600{color:#0284c7}.tw-text-blue-600{color:#2563eb}
.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-lg{font-size:1.125rem;line-height:1.75rem}.tw-text-xl{font-size:1.25rem;line-height:1.75rem}.tw-text-2xl{font-size:1.5rem;line-height:2rem}.tw-text-\[0\.95rem\]{font-size:.95rem}
.tw-font-semibold{font-weight:600}.tw-font-bold{font-weight:700}.tw-text-center{text-align:center}.tw-leading-snug{line-height:1.375}
.tw-shadow-2xl{box-shadow:0 25px 50px -12px rgb(0 0 0/.25)}
.tw-ring-1{box-shadow:0 0 0 1px rgb(15 23 42/.06),0 25px 50px -12px rgb(0 0 0/.25)}
.tw-backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-translate-x-8{transform:translateX(2rem)}.tw-translate-x-0{transform:translateX(0)}.tw-scale-95{transform:scale(.95)}.tw-scale-100{transform:scale(1)}
.tw-transition{transition-property:color,background-color,border-color,opacity,box-shadow,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.tw-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.tw-duration-200{transition-duration:200ms}.tw-duration-300{transition-duration:300ms}
.hover\:tw-bg-slate-200:hover{background-color:#e2e8f0}.hover\:tw-bg-rose-700:hover{background-color:#be123c}.hover\:tw-bg-blue-700:hover{background-color:#1d4ed8}
.hover\:tw-bg-emerald-700:hover{background-color:#047857}.hover\:tw-bg-amber-600:hover{background-color:#d97706}.hover\:tw-text-slate-600:hover{color:#475569}

/* dark theme adaptation for the alert components */
[data-theme="dark"] .ap-toast, [data-theme="dark"] .ap-dialog { background-color: #18233F !important; color: #E6ECF7; }
[data-theme="dark"] .ap-toast .ap-t-title, [data-theme="dark"] .ap-dialog .ap-d-title { color: #fff !important; }
[data-theme="dark"] .ap-toast .ap-t-msg, [data-theme="dark"] .ap-dialog .ap-d-msg { color: #AAB6CF !important; }
[data-theme="dark"] .ap-dialog .ap-d-cancel { background-color: #24314F !important; color: #E6ECF7 !important; }
.ap-toast .ap-t-bar { animation-name: apToastBar; animation-timing-function: linear; animation-fill-mode: forwards; }
@keyframes apToastBar { from { width: 100%; } to { width: 0%; } }
