@import 'tailwindcss';
@import '@immich/ui/theme/default.css';
@source "../node_modules/@immich/ui";
/* @import '/usr/ui/dist/theme/default.css'; */

@utility immich-form-input {
  @apply rounded-xl bg-slate-200 px-3 py-3 text-sm focus:border-immich-primary disabled:cursor-not-allowed disabled:bg-gray-400 disabled:text-gray-100 dark:bg-gray-600 dark:text-immich-dark-fg dark:disabled:bg-gray-800 dark:disabled:text-gray-200;
}

@utility immich-form-label {
  @apply font-medium text-gray-500 dark:text-gray-300;
}

@utility immich-scrollbar {
  /* width */
  scrollbar-width: thin;
}

@utility scrollbar-hidden {
  /* Hidden scrollbar */
  /* width */
  scrollbar-width: none;
}

@utility scrollbar-stable {
  scrollbar-gutter: stable both-edges;
}

@utility grid-auto-fit-* {
  grid-template-columns: repeat(auto-fit, minmax(min(calc(var(--spacing) * --value(number)), 100%), 1fr));
}

@utility grid-auto-fill-* {
  grid-template-columns: repeat(auto-fill, minmax(min(calc(var(--spacing) * --value(number)), 100%), 1fr));
}

@custom-variant dark (&:where(.dark, .dark *):not(.light));

@theme inline {
  --color-immich-primary: rgb(var(--immich-primary));
  --color-immich-bg: rgb(var(--immich-bg));
  --color-immich-fg: rgb(var(--immich-fg));
  --color-immich-gray: rgb(var(--immich-gray));
  --color-immich-error: rgb(var(--immich-error));
  --color-immich-success: rgb(var(--immich-success));
  --color-immich-warning: rgb(var(--immich-warning));

  --color-immich-dark-primary: rgb(var(--immich-dark-primary));
  --color-immich-dark-bg: rgb(var(--immich-dark-bg));
  --color-immich-dark-fg: rgb(var(--immich-dark-fg));
  --color-immich-dark-gray: rgb(var(--immich-dark-gray));
  --color-immich-dark-error: rgb(var(--immich-dark-error));
  --color-immich-dark-success: rgb(var(--immich-dark-success));
  --color-immich-dark-warning: rgb(var(--immich-dark-warning));
}

@theme {
  --font-immich-mono: Overpass Mono, monospace;

  --spacing-18: 4.5rem;

  --breakpoint-tall: 800px;
  --breakpoint-2xl: 1535px;
  --breakpoint-xl: 1279px;
  --breakpoint-lg: 1023px;
  --breakpoint-md: 767px;
  --breakpoint-sm: 639px;
  --breakpoint-sidebar: 850px;
}

@layer base {
  :root {
    /* light */
    --immich-primary: 66 80 175;
    --immich-bg: 255 255 255;
    --immich-fg: 0 0 0;
    --immich-error: 229 115 115;
    --immich-success: 129 199 132;
    --immich-warning: 255 183 77;

    /* dark */
    --immich-dark-primary: 172 203 250;
    --immich-dark-bg: 10 10 10;
    --immich-dark-fg: 229 231 235;
    --immich-dark-gray: 33 33 33;
    --immich-dark-error: 211 47 47;
    --immich-dark-success: 56 142 60;
    --immich-dark-warning: 245 124 0;
  }

  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    border-color: rgb(var(--immich-ui-default-border));
  }

  button:not(:disabled),
  [role='button']:not(:disabled) {
    cursor: pointer;
  }
}

@layer utilities {
  @font-face {
    font-family: 'Overpass';
    src: url('$lib/assets/fonts/overpass/Overpass.ttf') format('truetype-variations');
    font-weight: 1 999;
    font-style: normal;
    ascent-override: 106.25%;
    size-adjust: 106.25%;
  }

  @font-face {
    font-family: 'Overpass Mono';
    src: url('$lib/assets/fonts/overpass/OverpassMono.ttf') format('truetype-variations');
    font-weight: 1 999;
    font-style: monospace;
    ascent-override: 106.25%;
    size-adjust: 106.25%;
  }

  :root {
    font-family: 'Overpass', sans-serif;
    /* Used by layouts to ensure proper spacing between navbar and content */
    --navbar-height: calc(4.5rem + 4px);
    --navbar-height-md: calc(4.5rem + 4px - 14px);
  }

  :root.dark {
    color-scheme: dark;
  }

  :root:not(.dark) {
    color-scheme: light;
  }

  html {
    height: 100%;
    width: 100%;
  }

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

  /* Track */
  html::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 16px;
  }

  /* Handle */
  html::-webkit-scrollbar-thumb {
    background: rgba(85, 86, 87, 0.408);
    border-radius: 16px;
  }

  /* Handle on hover */
  html::-webkit-scrollbar-thumb:hover {
    background: #4250afad;
    border-radius: 16px;
  }

  body {
    margin: 0;
    color: #3a3a3a;
  }

  input:focus-visible {
    outline-offset: 0px !important;
    outline: none !important;
  }

  .text-white-shadow {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
  }

  .icon-white-drop-shadow {
    filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.8));
  }
}
