html {
  font-size: 14px;
  position: relative;
  min-height: 100%;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

:root {
  --psa-green: #78be20;
  --psa-green-dark: #5f9f18;
  --psa-blue-dark: #183153;
  --psa-blue-light: #eef4f9;
  --psa-border: #d7e2ec;
}

body {
  margin-bottom: 60px;
  background-color: var(--psa-blue-light);
  color: var(--psa-blue-dark);
}

a {
  color: var(--psa-green-dark);
}

a:hover {
  color: var(--psa-blue-dark);
}

.btn-primary {
  background-color: var(--psa-green);
  border-color: var(--psa-green);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--psa-green-dark);
  border-color: var(--psa-green-dark);
}

.bg-light {
  background-color: #ffffff !important;
}

.shadow-sm,
.card,
.table-responsive,
.chat-window,
#voice-panel {
  box-shadow: 0 10px 30px rgba(24, 49, 83, 0.08) !important;
}

.chat-window {
  height: 55vh;
  min-height: 320px;
  overflow-y: auto;
  background-color: #f8fbfe;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-color: var(--psa-border) !important;
}

.voice-status-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.chat-loading-inline {
  display: inline-flex;
  align-items: center;
}

.chat-loading-inline .spinner-border,
.form-submit-loading .spinner-border {
  color: var(--psa-green);
}

.form-submit-loading {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--psa-blue-dark);
  font-weight: 600;
}

.chat-bubble {
 max-width: 80%;
 padding: 10px;
 border-radius: 1rem;
 line-height: 1.3;
 word-wrap: break-word;
}

.chat-bubble-text {
  margin: 0;
  white-space: pre-wrap;
}

.chat-bubble-user {
  align-self: flex-end;
  background-color: var(--psa-green);
  color: #fff;
  border-bottom-right-radius: 0.2rem;
}

.chat-bubble-assistant {
  align-self: flex-start;
  background-color: #ffffff;
  border: 1px solid var(--psa-border);
  border-bottom-left-radius: 0.2rem;
}

.chat-bubble-error {
  background-color: #f8d7da;
  border-color: #f5c2c7;
  color: #842029;
}

.preserve-whitespace {
  white-space: pre-wrap;
}

.footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  white-space: nowrap;
  line-height: 60px;
  background-color: #ffffff;
  border-top-color: var(--psa-border) !important;
}
