:root { --brand: #1b4f9c; --brand-dark: #133a73; }
body { background: #f4f6fa; }
.bg-brand { background: var(--brand); }
.btn-primary { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-hover-bg: var(--brand-dark); --bs-btn-hover-border-color: var(--brand-dark); --bs-btn-active-bg: var(--brand-dark); }
.text-primary { color: var(--brand) !important; }
.auth-bg { background: linear-gradient(135deg, var(--brand) 0%, #0d2547 100%); }
.min-w-0 { min-width: 0; }

.sidebar { width: 250px; background: #fff; }
@media (min-width: 992px) { .sidebar { position: sticky; top: 56px; height: calc(100vh - 56px); overflow-y: auto; flex-shrink: 0; } }
.sidebar .nav-link { color: #344054; padding: .6rem 1.25rem; border-left: 3px solid transparent; }
.sidebar .nav-link i { width: 1.4rem; display: inline-block; }
.sidebar .nav-link:hover { background: #f1f4f9; }
.sidebar .nav-link.active { color: var(--brand); background: #eaf0fa; border-left-color: var(--brand); font-weight: 600; }

.card { border-color: #e4e7ec; }
.stat-card { border-left-width: 4px !important; transition: transform .1s; }
a.stat-card:hover, .tool-card:hover { transform: translateY(-2px); box-shadow: 0 .25rem .75rem rgba(0,0,0,.06); }
.tool-card { transition: transform .1s; }
tr.row-link { cursor: pointer; }

/* Agenda (FullCalendar) */
.fc { --fc-button-bg-color: var(--brand); --fc-button-border-color: var(--brand); --fc-button-hover-bg-color: var(--brand-dark);
      --fc-button-hover-border-color: var(--brand-dark); --fc-button-active-bg-color: var(--brand-dark); --fc-button-active-border-color: var(--brand-dark);
      --fc-today-bg-color: #eaf0fa; }
.fc .fc-toolbar-title { font-size: 1.25rem; }
.fc .fc-toolbar-title::first-letter { text-transform: uppercase; }
.fc a { color: inherit; text-decoration: none; }
.fc .fc-list-day-cushion a { font-weight: 600; }
.fc .fc-button { text-transform: capitalize; }
@media (max-width: 767.98px) {
  #calendar-card .card-body { padding: .5rem; }
  .fc .fc-toolbar { gap: .5rem; }
  .fc .fc-toolbar-title { font-size: 1.05rem; }
  .fc .fc-button { padding: .3rem .55rem; font-size: .85rem; }
  .fc .fc-footer-toolbar { margin-top: .75rem; }
  .fc .fc-list-event-title { white-space: normal; }
  .fc .fc-daygrid-day-frame { min-height: 3.2rem; }
  .fc .fc-daygrid-day-events { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; min-height: 0; }
  .fc .fc-daygrid-event-harness { margin: 0 !important; }
  .fc .fc-daygrid-event { padding: 0; background: none; border: 0; }
  .fc .fc-daygrid-more-link { font-size: .7rem; }
}
.fc-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }

.autocomplete-box { position: absolute; top: 100%; left: 0; right: 0; z-index: 1050; max-height: 320px; overflow-y: auto; }
.sig-preview { height: 80px; display: flex; align-items: center; justify-content: center; }
.sig-preview img { max-height: 76px; }
.sig-canvas { touch-action: none; cursor: crosshair; }
.ratio img.object-fit-cover { width: 100%; height: 100%; object-fit: cover; }
