.session-timeout-warning[hidden] {
  display: none !important;
}

.session-timeout-warning {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(24, 27, 36, 0.68);
}

.session-timeout-card {
  width: min(32rem, 100%);
  padding: 1.4rem;
  border: 1px solid #c9c5ce;
  border-radius: 0.65rem;
  background: #fcfbfd;
  color: #2f3340;
  box-shadow: 0 18px 50px rgba(20, 22, 30, 0.28);
}

.session-timeout-card h2 {
  margin: 0.15rem 0 0.7rem;
  color: #4d365f;
  font-size: 1.4rem;
}

.session-timeout-card p {
  color: #555b69;
}

.session-timeout-eyebrow {
  margin: 0;
  color: #70737d !important;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.session-timeout-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.session-timeout-actions form {
  margin: 0;
}

.session-timeout-actions button {
  min-height: 2.5rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid #b8b6be;
  border-radius: 0.35rem;
  background: #fcfbfd;
  color: #2f3340;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.session-timeout-actions button.primary {
  border-color: #4d365f;
  background: #654a7b;
  color: white;
}

.session-timeout-actions button:focus-visible {
  outline: 3px solid rgba(101, 74, 123, 0.32);
  outline-offset: 2px;
}

.session-timeout-note {
  margin: 0.85rem 0 0;
  font-size: 0.82rem;
}

@media (prefers-color-scheme: dark) {
  .session-timeout-card {
    border-color: #555967;
    background: #252833;
    color: #f1ecf4;
  }

  .session-timeout-card h2 {
    color: #f1ecf4;
  }

  .session-timeout-card p {
    color: #d8dbe4;
  }

  .session-timeout-eyebrow {
    color: #b8bdc9 !important;
  }

  .session-timeout-actions button {
    border-color: #737887;
    background: #313441;
    color: #f1ecf4;
  }

  .session-timeout-actions button.primary {
    border-color: #a58aba;
    background: #76578c;
  }
}
