.session-expiry-warning[hidden]{display:none!important}
.session-expiry-warning{position:fixed;right:1rem;bottom:1rem;z-index:1260;width:min(420px,calc(100vw - 2rem));padding:1rem;border:1px solid rgba(var(--bs-warning-rgb),.38);border-radius:14px;background:var(--app-surface-solid,var(--bs-body-bg));color:var(--app-text,var(--bs-body-color));box-shadow:0 20px 48px rgba(15,23,42,.22)}
.session-expiry-warning__row{display:flex;align-items:flex-start;gap:.8rem}
.session-expiry-warning__icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);font-size:1.05rem}
.session-expiry-warning__content{min-width:0;flex:1 1 auto}
.session-expiry-warning__kicker{margin-bottom:.15rem;color:var(--bs-warning-text-emphasis);font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.session-expiry-warning__title{color:var(--app-text,var(--bs-body-color));font-size:.98rem;font-weight:750;line-height:1.35}
.session-expiry-warning__countdown{display:inline-block;min-width:3.4rem;color:var(--bs-danger);font-variant-numeric:tabular-nums;font-weight:800}
.session-expiry-warning__message{margin:.35rem 0 0;color:var(--app-muted,var(--bs-secondary-color));font-size:.82rem;line-height:1.45}
.session-expiry-warning__progress{height:4px;margin:.8rem 0 .85rem;overflow:hidden;border-radius:999px;background:var(--app-border,var(--bs-border-color))}
.session-expiry-warning__progress-bar{display:block;width:100%;height:100%;transform-origin:left center;background:var(--bs-warning);transition:transform .25s linear,background-color .2s ease}
.session-expiry-warning.is-critical .session-expiry-warning__progress-bar{background:var(--bs-danger)}
.session-expiry-warning__actions{display:flex;justify-content:flex-end;gap:.5rem}
.session-expiry-warning__actions .btn{min-height:36px}
.session-expiry-warning__status{min-height:1.2rem;margin-top:.55rem;color:var(--app-muted,var(--bs-secondary-color));font-size:.74rem;text-align:right}
.session-expiry-warning__status.text-danger{color:var(--bs-danger)!important}
[data-bs-theme="dark"] .session-expiry-warning{box-shadow:0 22px 52px rgba(0,0,0,.48)}
@media(max-width:575.98px){.session-expiry-warning{right:.75rem;bottom:.75rem;width:calc(100vw - 1.5rem);padding:.9rem}.session-expiry-warning__actions .btn{width:100%}}
