@import "tailwindcss";

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
    background-color: #18181b;
    color: white;
    line-height: 1.6;
  }

  #root {
    height: 100vh;
    width: 100vw;
  }
}

@layer components {
  .sidebar-item {
    display: flex;
    align-items: center;
    cursor: pointer;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-radius: 0.75rem;
    transition: all 0.15s ease-in-out;
  }
  .sidebar-item:hover {
    background-color: #27272a;
  }
  
  .sidebar-icon {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    color: #22d3ee;
  }
  
  .card {
    background-color: #27272a;
    border-radius: 0.5rem;
    padding: 1.5rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.1);
  }
  
  .btn-primary {
    background-color: #0891b2;
    color: white;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-radius: 0.5rem;
    transition: background-color 0.15s ease-in-out;
  }
  .btn-primary:hover {
    background-color: #0e7490;
  }
  
  .btn-secondary {
    background-color: #3f3f46;
    color: white;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    border-radius: 0.5rem;
    transition: background-color 0.15s ease-in-out;
  }
  .btn-secondary:hover {
    background-color: #52525b;
  }
}

@layer utilities {
  .flex {
    display: flex;
  }

  .h-screen {
    height: 100vh;
  }

  .bg-zinc-900 {
    background-color: #18181b;
  }

  .bg-zinc-950 {
    background-color: #09090b;
  }

  .bg-zinc-800 {
    background-color: #27272a;
  }

  .text-white {
    color: white;
  }

  .text-zinc-400 {
    color: #a1a1aa;
  }

  .text-cyan-400 {
    color: #22d3ee;
  }

  .text-blue-400 {
    color: #60a5fa;
  }

  .text-green-400 {
    color: #4ade80;
  }

  .text-red-400 {
    color: #f87171;
  }

  .text-yellow-400 {
    color: #facc15;
  }

  .flex-1 {
    flex: 1;
  }

  .p-6 {
    padding: 1.5rem;
  }

  .p-4 {
    padding: 1rem;
  }

  .p-3 {
    padding: 0.75rem;
  }

  .overflow-auto {
    overflow: auto;
  }

  .w-56 {
    width: 14rem;
  }

  .w-full {
    width: 100%;
  }

  .w-5 {
    width: 1.25rem;
  }

  .w-4 {
    width: 1rem;
  }

  .h-8 {
    height: 2rem;
  }

  .h-5 {
    height: 1.25rem;
  }

  .h-4 {
    height: 1rem;
  }

  .gap-6 {
    gap: 1.5rem;
  }

  .grid {
    display: grid;
  }

  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .space-y-6 > * + * {
    margin-top: 1.5rem;
  }

  .space-y-4 > * + * {
    margin-top: 1rem;
  }

  .space-y-2 > * + * {
    margin-top: 0.5rem;
  }

  .space-y-1 > * + * {
    margin-top: 0.25rem;
  }

  .rounded-r-xl {
    border-top-right-radius: 0.75rem;
    border-bottom-right-radius: 0.75rem;
  }

  .shadow-md {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  }

  .shadow-lg {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.1);
  }

  .text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .font-bold {
    font-weight: 700;
  }

  .mb-2 {
    margin-bottom: 0.5rem;
  }

  .text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .font-semibold {
    font-weight: 600;
  }

  .text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .mr-4 {
    margin-right: 1rem;
  }

  .rounded-lg {
    border-radius: 0.5rem;
  }

  .items-center {
    align-items: center;
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .rounded-xl {
    border-radius: 0.75rem;
  }

  .border {
    border-width: 1px;
  }

  .border-zinc-600 {
    border-color: #52525b;
  }

  .focus\:border-cyan-400:focus {
    border-color: #22d3ee;
  }

  .outline-none {
    outline: 2px solid transparent;
    outline-offset: 2px;
  }

  .hover\:bg-zinc-800:hover {
    background-color: #27272a;
  }

  .transition-all {
    transition: all 0.15s ease-in-out;
  }

  .mr-3 {
    margin-right: 0.75rem;
  }

  .ml-8 {
    margin-left: 2rem;
  }

  .mt-1 {
    margin-top: 0.25rem;
  }
}

/* Responsive grid */
@media (min-width: 768px) {
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}