:root {
  --ready: #16a34a;
  --attention: #d97706;
  --critical: #dc2626;
  --completed: #64748b;
  --cancelled: #cbd5e1;
}

body { font-size: 0.95rem; }
.navbar .nav-link.active { font-weight: 600; }

.status-badge { font-weight: 500; }
.mini-status i { margin-left: 2px; }

.stat-card { transition: transform .1s ease; }
.stat-card:hover { transform: translateY(-2px); }

.week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  gap: .5rem;
  overflow-x: auto;
}
.week-day {
  background: var(--bs-tertiary-bg);
  border-radius: .5rem;
  padding: .5rem;
  min-height: 160px;
}
.week-day.today { outline: 2px solid var(--bs-primary); }

.session-card {
  background: var(--bs-body-bg);
  border-radius: .4rem;
  border-left: 4px solid var(--bs-secondary);
  padding: .4rem .5rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
}
.session-card:hover { box-shadow: 0 2px 6px rgba(0, 0, 0, .12); }
.session-card.readiness-ready { border-left-color: var(--ready); }
.session-card.readiness-attention { border-left-color: var(--attention); }
.session-card.readiness-critical { border-left-color: var(--critical); }
.session-card.readiness-completed { border-left-color: var(--completed); }
.session-card.readiness-cancelled { border-left-color: var(--cancelled); opacity: .6; }
.session-card .badge { font-size: .65rem; }

.issue-list { padding-left: 1.1rem; }
.columns-2 { columns: 2; column-gap: 2rem; }
@media (max-width: 768px) { .columns-2 { columns: 1; } }

.activity-list { max-height: 520px; overflow-y: auto; }

.avatar {
  width: 36px; height: 36px; border-radius: 50%; object-fit: cover;
  display: inline-flex; align-items: center; justify-content: center;
}
.avatar-lg { width: 64px; height: 64px; }
.avatar-placeholder { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); font-weight: 600; }
.offer-image-preview {
  width: 160px; height: 84px; border-radius: .375rem; object-fit: cover;
  display: inline-flex; align-items: center; justify-content: center;
}
.file-preview {
  width: 40px; height: 40px; border-radius: .375rem;
  display: inline-flex; align-items: center; justify-content: center;
}

/* Form builder */
.fb-field { border: 1px solid var(--bs-border-color); border-radius: .5rem; background: var(--bs-body-bg); }
.fb-field + .fb-field { margin-top: .5rem; }
.fb-field.is-open { border-color: var(--bs-primary); box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .15); }
.fb-field.is-section { background: var(--bs-tertiary-bg); }
.fb-field.dragging { opacity: .4; }
.fb-head { display: flex; align-items: center; gap: .5rem; padding: .5rem .75rem; cursor: pointer; }
.fb-head .fb-grip { cursor: grab; color: var(--bs-secondary-color); }
.fb-head .fb-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-body { border-top: 1px solid var(--bs-border-color); padding: .75rem; }
.fb-palette .btn { text-align: left; }
.email-preview { display: block; width: 100%; height: 560px; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #f4f5f7; }
.offer-image { aspect-ratio: 1200 / 630; object-fit: cover; width: 100%; background: var(--bs-secondary-bg); }

.legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: middle; }

#calendar { min-height: 650px; }
.fc .fc-event { cursor: pointer; }
.fc-event-main .first-badge { font-size: .65rem; }
.fc .fc-daygrid-event { white-space: normal; }

.table-group td { padding-top: .35rem; padding-bottom: .35rem; }

.guest-form .req { color: #c0392b; font-weight: 400; }
.guest-form .form-label { margin-bottom: .2rem; }
.dropzone {
  border: 2px dashed var(--bs-border-color);
  border-radius: .5rem;
  padding: 1.75rem 1rem;
  text-align: center;
  background: var(--bs-body-bg);
  transition: border-color .15s, background .15s;
}
.dropzone.dragging { border-color: var(--bs-primary); background: var(--bs-primary-bg-subtle); }
.asset-bullets { padding-left: 1.25rem; }

.public-page .document-body { max-height: 420px; overflow-y: auto; white-space: normal; }
.signature-input { font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 1.6rem; }
