.spinner-indicator{
    display:none;
    opacity:0;
    transition: opacity 500ms ease-in;
}
.htmx-request .spinner-indicator{
    display:inline;
    opacity:1;
}
.htmx-request.spinner-indicator{
    display:inline;
    opacity:1;
}

.level-0 { font-weight: bold; }
.level-1 { font-weight: lighter; }

.table-custom {
    background-color: #fefefe;
    border-color: #e0e0e0;
}

.table-custom thead th {
    background-color: #f1f1f1;
    color: #333;
    border-color: #e0e0e0;
}


.table-custom tbody tr {
    transition: background-color 1s ease; 
}


.table-custom tbody tr:nth-child(even) {
    background-color: #fafafa;
}


.table-custom tbody tr:nth-child(odd) {
    background-color: #ffffff;
}


.table-custom tbody tr:hover {
    background-color: #e0e0e0 !important;
}

.card-text {
    margin-bottom: 2px !important;
}

  .fc {
    border-color: black;
  }
  .fc-col-header-cell a {
    color: black !important;
    text-decoration: none !important;
  }
  .fc-daygrid-day-number {
    font-size: larger;
    color: black;
    text-decoration: none;
  }
  .fc-daygrid-day-top {
    text-decoration: none;
  }
  .fc-daygrid-event {
    text-decoration: none;
  }
  .fc-header-toolbar {
    justify-content: center !important;
    gap: 5px;
  }

  /* Mobile responsiveness */
  @media (max-width: 768px) {
    .fc {
      font-size: 0.9em;
    }
    .fc-header-toolbar {
      flex-direction: column;
      gap: 10px;
    }
    .fc-toolbar-chunk {
      display: flex;
      justify-content: center;
    }
    .fc-button {
      font-size: 0.8em;
      padding: 0.5em 0.8em;
    }
    .fc-daygrid-day-number {
      font-size: medium;
    }
    /* Hide "all day" in list view */
    .fc-list-event-time,
    .fc-list-event-dot {
      display: none;
    }
  }

  @media (max-width: 480px) {
    .fc {
      font-size: 0.8em;
    }
    .fc-button {
      font-size: 0.7em;
      padding: 0.4em 0.6em;
    }
  }

     .min-vh-100 {
        min-height: 100vh;
    }
    
    .card {
        border: none;
        border-radius: 1rem;
    }
    
    .card-body {
        border-radius: 1rem;
    }
    
    .input-group-text {
        background-color: #f8f9fa;
        border-color: #dee2e6;
    }
    
    .form-control:focus {
        border-color: #0d6efd;
        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    }
    
    .btn-primary {
        background-color: #0d6efd;
        border-color: #0d6efd;
    }
    
    .btn-primary:hover {
        background-color: #0b5ed7;
        border-color: #0a58ca;
    }
    
    .form-check-input:checked {
        background-color: #0d6efd;
        border-color: #0d6efd;
    }
    
    .form-check-input:focus {
        border-color: #0d6efd;
        box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    }
    
    /* Адаптивность для мобильных устройств */
    @media (max-width: 768px) {
        .card-body {
            padding: 2rem 1.5rem !important;
        }
        
        .h3 {
            font-size: 1.5rem;
        }
        
        .btn-lg {
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
        }
    }

    /* logout */

     .min-vh-100 {
        min-height: 100vh;
    }
    
    .card {
        border-radius: 1.5rem;
        transition: box-shadow 0.2s ease-in-out;
    }

    .card:hover {
        /* no hover effect */
    }
    
    .bg-success {
        background: linear-gradient(135deg, #28a745 0%, #20c997 100%) !important;
    }
    
    .btn-primary {
        background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%);
        border: none;
        transition: all 0.3s ease;
    }
    
    .btn-primary:hover {
        background: linear-gradient(135deg, #0b5ed7 0%, #0a58ca 100%);
    }

    .btn-outline-secondary:hover {
        /* no hover effect */
    }
    
    .shadow {
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
    }
    
    /* Анимация появления */
    @keyframes fadeInUp {
        from {
            opacity: 0;
            transform: translateY(30px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    
    .card {
        animation: fadeInUp 0.6s ease-out;
    }
    
    /* Адаптивность для мобильных устройств */
    @media (max-width: 768px) {
        .card-body {
            padding: 2rem 1.5rem !important;
        }
        
        .h3 {
            font-size: 1.5rem;
        }
        
        .btn-lg {
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
        }
        
        .bg-success {
            width: 60px !important;
            height: 60px !important;
        }
        
        .fa-3x {
            font-size: 2rem !important;
        }
    }

    /* landing */

     .bg-gradient-primary {
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    }
    
    .min-vh-100 {
        min-height: 100vh;
    }
    
    .opacity-75 {
        opacity: 0.75;
    }
    
    /* Адаптивность для мобильных устройств */
    @media (max-width: 768px) {
        .display-3 {
            font-size: 2.5rem;
        }

        .display-5 {
            font-size: 2rem;
        }

        .display-6 {
            font-size: 1.75rem;
        }

        .btn-lg {
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
        }
    }

    /* Mobile order cards */
    @media (max-width: 767px) {
        .card {
            border: 1px solid #e0e0e0;
            border-radius: 0.5rem;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            transition: box-shadow 0.2s ease;
        }

        .card:hover {
            box-shadow: 0 4px 8px rgba(0,0,0,0.15);
        }

        .card-body {
            padding: 1rem;
        }

        .card-title {
            font-size: 1.1rem;
            margin-bottom: 0.75rem;
        }

        .card-text {
            font-size: 0.9rem;
            margin-bottom: 2px !important;
        }

        .card-text strong {
            font-weight: 600;
        }
    }
/* Dashboard / Sidebar enhancements */
.table-dashboard{
  background:#fff;
  border:1px solid #e9ecef;
  border-radius:.75rem;
  overflow:hidden;
}
.table-dashboard thead th{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#6c757d;
  background:#f8f9fa;
  border-bottom:1px solid #e9ecef !important;
  white-space:nowrap;
}
.table-dashboard tbody td{
  border-top:1px solid #f1f3f5 !important;
  vertical-align:middle;
}
.table-dashboard tbody tr:hover{
  background-color:#f6f8fb;
}
.table-dashboard .badge{
  font-weight:600;
}
.table-dashboard .form-check-input{
  cursor:pointer;
}
#selectionBar{
  position:sticky;
  bottom:0;
  box-shadow:0 -2px 8px rgba(0,0,0,.04);
}

/* Toolbar tweaks (filters / actions) */
.btn-toolbar .btn{
  border-radius:.5rem;
}
.btn-toolbar .btn-outline-secondary{
  background:#fff;
  border-color:#e9ecef;
  color:#495057;
}
.btn-toolbar .btn-outline-secondary:hover{
  background:#f3f5f8;
  border-color:#dfe3e7;
}

/* Sidebar minor polish to match layout */
.sh-sidebar .sidebar-link{
  font-weight:500;
}
.sh-sidebar .sidebar-link .badge{
  font-size:.65rem;
}

/* Utilities close to reference UI */
.bg-success-subtle{ background-color:#d1e7dd !important; }
.bg-danger-subtle{ background-color:#f8d7da !important; }
.bg-warning-subtle{ background-color:#fff3cd !important; }
.bg-primary-subtle{ background-color:#cfe2ff !important; }
.bg-secondary-subtle{ background-color:#e2e3e5 !important; }