body {
  font-family: system-ui, sans-serif;
  background-color: #f4f4f4;
  color: #333;
  margin: 0;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #555;
}

p {
  margin: 0 auto 10px;
  max-width: 600px;
  text-align: center;
}

button {
  padding: 10px 20px;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s;
  
  margin-top: 20px;
}

button:hover {
  background-color: #0056b3;
}

#btnWrap .spin { display: none }
#btnWrap.loading .spin { display: block }
#btnWrap.loading button { display: none }

.spin {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-top: 4px solid #007bff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 20px auto;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

#msgs {
  font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
  width: 100%;
  max-width: 600px;
  margin-top: 20px;
}

.msg {
  padding: 10px;
  border-radius: 4px;
  margin-bottom: 10px;
  white-space: pre-wrap;
}

.msg.info {
  background-color: #d1ecf1;
  color: #0c5460;
  border: 1px solid #bee5eb;
}

.msg.success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.msg.error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.msg.warning {
  background-color: #fff3cd;
  color: #856404;
  border: 1px solid #ffeeba;
}

#pwOv {
  position: fixed;
  flex-direction: column;
  pointer-events: none;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(5px);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  z-index: 1000;
  transition: opacity 0.3s;
}

#pwOv.active {
  opacity: 1;
  pointer-events: auto;
}

#pwIn {
  padding: 20px;
  background-color: #0000004a;
  border-radius: 4px;
  box-shadow: 0px 2px 10px rgb(255 255 255 / 41%);
  color: #fff;
  max-width: 230px;
  width: 100%;
  text-align: center;
  margin: 20px 0;
  outline: none;
  border: 0;
  font-size: 20px;
}

#browserWarning {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
  padding: 10px;
  border-radius: 4px;
  margin-top: 20px;
}