body {
      font-family: 'Inter', sans-serif;
      background: radial-gradient(circle at top left, rgba(129, 140, 248, 0.2) 0, transparent 55%),
        radial-gradient(circle at bottom right, rgba(236, 72, 153, 0.15) 0, transparent 60%),
        linear-gradient(135deg, #667eea 0%, #764ba2 100%);
      min-height: 100vh;
      color: #334155;
      --ui-feedback-primary-from: #6366f1;
      --ui-feedback-primary-to: #8b5cf6;
      --ui-feedback-primary-shadow: rgba(129, 140, 248, 0.24);
      --ui-feedback-primary-shadow-hover: rgba(129, 140, 248, 0.3);
      --ui-feedback-toast-bottom: calc(0.75rem + env(safe-area-inset-bottom));
      --ui-feedback-toast-bottom-mobile: calc(0.75rem + env(safe-area-inset-bottom));
      --ui-feedback-toast-bottom-desktop: 1rem;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-family: 'Plus Jakarta Sans', sans-serif;
      letter-spacing: -0.025em;
      color: #0f172a;
    }

    .glass-card {
      background: rgba(255, 255, 255, 0.98);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border: 1px solid rgba(255, 255, 255, 0.5);
      box-shadow: 0 20px 40px -12px rgba(15, 23, 42, 0.15);
      border-radius: 1.5rem;
      transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .glass-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 22px 55px rgba(15, 23, 42, 0.24);
      border-color: rgba(129, 140, 248, 0.4);
      background: rgba(255, 255, 255, 0.99);
    }


    .chat-bubble {
      padding: 10px 14px;
      border-radius: 16px;
      max-width: 80%;
      margin-bottom: 8px;
      font-size: 0.9rem;
      line-height: 1.4;
      position: relative;
    }

    .chat-bubble.me {
      background: #6366f1;
      color: white;
      align-self: flex-end;
      border-bottom-right-radius: 4px;
    }

    .chat-bubble.them {
      background: #f3f4f6;
      color: #374151;
      align-self: flex-start;
      border-bottom-left-radius: 4px;
    }

    .chat-container {
      display: flex;
      flex-direction: column;
      height: 350px;
      overflow-y: auto;
      padding: 1rem;
      background: #f8fafc;
      border-radius: 12px;
      border: 1px solid #e2e8f0;
    }

    .glass-header {
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(18px);
      border: 1px solid rgba(255, 255, 255, 0.7);
      box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16);
      border-radius: 1.25rem;
    }


    ::-webkit-scrollbar {
      width: 8px;
      height: 8px;
    }

    ::-webkit-scrollbar-track {
      background: rgba(30, 64, 175, 0.08);
    }

    ::-webkit-scrollbar-thumb {
      background: rgba(129, 140, 248, 0.7);
      border-radius: 999px;
    }

    ::-webkit-scrollbar-thumb:hover {
      background: rgba(129, 140, 248, 0.95);
    }

    .nav-btn {
      border-radius: 999px;
      transition: all 0.18s ease;
    }

    .nav-btn:hover {
      background-color: rgba(99, 102, 241, 0.12);
      color: #4f46e5;
    }

    .nav-btn.active {
      background: linear-gradient(to right, #6366f1, #8b5cf6);
      color: white;
      box-shadow: 0 8px 20px rgba(129, 140, 248, 0.4);
    }

    .chart-container canvas {
      border-radius: 1rem;
    }

    .glass-card .loading-spinner,
    .loading-spinner {
      width: 3rem;
      height: 3rem;
      border-radius: 999px;
      border-width: 3px;
      border-style: solid;
      border-color: rgba(129, 140, 248, 0.2);
      border-top-color: #6366f1;
      animation: spin 0.9s linear infinite;
      margin-inline: auto;
    }

    @keyframes spin {
      to {
        transform: rotate(360deg);
      }
    }

    table.min-w-full thead tr th {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-weight: 600;
      font-size: 0.75rem;
      letter-spacing: 0.05em;
      color: #64748b;
      padding-bottom: 1rem;
    }

    table.min-w-full tbody tr {
      transition: background-color 0.2s ease;
      border-bottom: 1px solid #f1f5f9;
    }

    table.min-w-full tbody tr:last-child {
      border-bottom: none;
    }

    table.min-w-full tbody tr:hover {
      background: rgba(248, 250, 252, 0.8);
    }

    table.min-w-full td {
      padding-top: 1.25rem;
      padding-bottom: 1.25rem;
      font-size: 0.9rem;
    }
    .fc-timegrid-slot-label-cushion,
    .fc-col-header-cell-cushion {
      font-size: 0.75rem !important;
    }

    @media (max-width: 768px) {


      .fc-col-header-cell-cushion {
        font-size: 0.75rem !important;

        text-overflow: ellipsis;
        overflow: hidden;
      }


      .fc-timegrid-slot-label-cushion {
        font-size: 0.75rem !important;

      }
    }