:root {
  --ekibiz-main: #5746e3;
  --ekibiz-dark: #30266f;
  --ekibiz-soft: #f4f1ff;
  --ekibiz-line: #06c755;
  --ekibiz-border: #e8e5f3;
}

body { background: #f7f7fb; color: #242238; }
a { color: var(--ekibiz-main); }
.app-shell { max-width: 1180px; }
.auth-shell { max-width: 760px; }
.navbar-brand { letter-spacing: .02em; }
.navbar-ekibiz { background: linear-gradient(135deg, var(--ekibiz-dark), var(--ekibiz-main)); }
.hero-card { border: 0; border-top: 8px solid var(--ekibiz-main); }
.card { border-color: var(--ekibiz-border); }
.btn-ekibiz {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ekibiz-main);
  --bs-btn-border-color: var(--ekibiz-main);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #4637c8;
  --bs-btn-hover-border-color: #4637c8;
}
.btn-line {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ekibiz-line);
  --bs-btn-border-color: var(--ekibiz-line);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #05ac49;
  --bs-btn-hover-border-color: #05ac49;
}
.form-control:focus, .form-select:focus {
  border-color: var(--ekibiz-main);
  box-shadow: 0 0 0 .25rem rgba(87,70,227,.15);
}
.required { color: var(--bs-danger); margin-left: .2rem; }
.avatar, .logo-thumb {
  object-fit: cover;
  border: 1px solid var(--ekibiz-border);
  background: var(--ekibiz-soft);
}
.avatar { width: 96px; height: 96px; border-radius: 50%; }
.avatar-sm { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; background: var(--ekibiz-soft); }
.logo-thumb { width: 96px; height: 96px; border-radius: 16px; }
.member-card { height: 100%; transition: transform .15s ease, box-shadow .15s ease; }
.member-card:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1.2rem rgba(40,30,90,.09); }
.status-badge { font-weight: 600; }
.status-active { color: #086b34; background: #dff7e8; }
.status-pending { color: #855600; background: #fff1c9; }
.status-inactive, .status-none { color: #5f6270; background: #eceef3; }
.reaction-btn { border-radius: 999px; }
.reaction-btn.active { color: #fff; background: var(--ekibiz-main); border-color: var(--ekibiz-main); }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 1px; background: var(--ekibiz-border); border: 1px solid var(--ekibiz-border); }
.calendar-head, .calendar-day { background: #fff; min-height: 42px; padding: .45rem; }
.calendar-head { min-height: auto; text-align: center; font-weight: 600; background: var(--ekibiz-soft); }
.calendar-day { min-height: 115px; }
.calendar-day.is-muted { background: #fafafd; color: #a3a6b2; }
.calendar-event { display: block; padding: .2rem .35rem; margin-top: .25rem; border-radius: .35rem; background: var(--ekibiz-soft); color: var(--ekibiz-dark); font-size: .75rem; text-decoration: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.stat-card strong { font-size: 1.8rem; }
.table-actions { white-space: nowrap; }
.preserve-lines { white-space: pre-wrap; }
#globalMessage { position: sticky; top: .75rem; z-index: 1080; }

@media (max-width: 767.98px) {
  .calendar-day { min-height: 78px; padding: .25rem; font-size: .8rem; }
  .calendar-event { padding: .1rem .2rem; font-size: .65rem; }
  .desktop-only { display: none; }
}
