
/* ==========================================================================
   Visual cleanup pass
   ========================================================================== */
.brand-txt b { font-size: 14px; letter-spacing: .02em; }
.brand-txt span { color: var(--text-3); letter-spacing: .14em; }
.brand img { height: 30px; opacity: .95; }
.seg button { padding: 5px 12px; white-space: nowrap; }
.seg button span { opacity: .7; margin-left: 2px; }

.app-container { max-width: 640px; }
.step-card { margin-bottom: 16px; }

/* Aligned, compact form controls inside observation cards */
.obs-card .row2 { align-items: end; }
.obs-card .field { margin-bottom: 12px; min-width: 0; }
.obs-card .field > span {
  font-size: 10.5px; letter-spacing: .09em; margin-bottom: 5px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.obs-card .input, .obs-card .textarea, .obs-card .select {
  font-size: 14.5px; min-height: 44px; padding: 10px 12px; border-radius: 10px;
}
.obs-card .select { text-overflow: ellipsis; padding-right: 34px; background-position: right 12px center; }
.obs-card .textarea { min-height: 64px; overflow: hidden; resize: none; }
.raw-textarea, #raw-input { min-height: 110px; font-size: 15px; }
#raw-input::placeholder { font-size: 13.5px; }

/* Card header */
.obs-card-header { gap: 8px; flex-wrap: wrap; }
.obs-card-header .badge-group { margin-left: auto; }
.obs-card-header .eyebrow { margin-bottom: 0; }

/* Sentiment tiles: tidier */
.status-grid { gap: 8px; }
.status-btn { min-height: 64px; padding: 10px 12px; }
.status-btn .badge { display: none; }
.status-btn .sb-title { margin-top: 0; font-size: 14px; }
.status-btn .sb-sub { font-size: 11px; }

/* Footer: primary action fills, secondary sits beside it */
.obs-card-footer { gap: 8px; }
.obs-card-footer .footer-btn-group { flex: 1; flex-wrap: nowrap; min-width: 0; }
.obs-card-footer .footer-btn-group .btn-primary { flex: 1.3; }
.obs-card-footer .footer-btn-group .btn-ghost { flex: 1; }
.obs-card-footer .btn span { overflow: hidden; text-overflow: ellipsis; }
.obs-card-footer .chip { margin: 0; min-height: 36px; }
@media (max-width: 520px) {
  .obs-card-footer .footer-btn-group { flex-wrap: wrap; width: 100%; }
  .obs-card-footer .footer-btn-group .btn { flex: 1 1 100%; }
  .obs-card-footer .chip { width: 100%; }
}

.batch-banner { padding: 12px 16px; }
.batch-banner .btn { width: 100%; }
.reporter-plate { padding: 12px 16px; margin-bottom: 16px; }
.rep-name { font-size: 15px; }
.badge { white-space: nowrap; }
.history-table { min-width: 560px; }
.empty { padding: 28px 16px; }

/* Header: full name on wide screens, short "BotG" on phones */
.brand-txt b i { font-style: normal; font-weight: 600; color: var(--text-2); }
@media (max-width: 520px) {
  .brand-txt b i { display: none; }
  .brand-txt b { font-size: 15px; letter-spacing: .04em; }
  .brand img { height: 26px; }
  .topbar { gap: 8px; padding-left: 12px; padding-right: 12px; }
  .seg button { padding: 5px 9px; }
}

/* Enhanced Contractor Chips */
.quick-contractor-chip.on {
  background: var(--accent) !important;
  color: #000 !important;
  font-weight: 700;
  border-color: var(--accent) !important;
}

/* AI Clarification and Notification animations */
#clarification-card, #offensive-card, #success-card {
  animation: slideInDown 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes slideInDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
