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

/* Custom styles */
.btn {
    @apply inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500;
}

.btn-secondary {
    @apply inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 dark:border-darkborder dark:text-darktext dark:bg-darksecondary dark:hover:bg-darkborder;
}

.form-input {
    @apply appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm dark:bg-darkbg dark:border-darkborder dark:text-darktext dark:placeholder-darkmuted;
}

.form-label {
    @apply block text-sm font-medium text-gray-700 dark:text-darktext;
}

.form-error {
    @apply mt-2 text-sm text-red-600 dark:text-red-400;
}

.card {
    @apply bg-white overflow-hidden shadow rounded-lg dark:bg-darkcard dark:text-darktext;
}

.card-header {
    @apply px-4 py-5 sm:px-6 dark:bg-darksecondary;
}

.card-body {
    @apply px-4 py-5 sm:p-6;
}

.card-footer {
    @apply px-4 py-4 sm:px-6 bg-gray-50 dark:bg-darksecondary;
}

.alert {
    @apply rounded-md p-4 mb-4 dark:bg-darksecondary dark:text-darktext;
}

.alert-success {
    @apply bg-green-50 text-green-800 dark:bg-green-900 dark:text-green-200;
}

.alert-error {
    @apply bg-red-50 text-red-800 dark:bg-red-900 dark:text-red-200;
}

.alert-warning {
    @apply bg-yellow-50 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200;
}

.alert-info {
    @apply bg-blue-50 text-blue-800 dark:bg-blue-900 dark:text-blue-200;
}

/* Navigation */
.nav-link {
    @apply text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium dark:text-darkmuted dark:hover:bg-darkborder dark:hover:text-darktext;
}

.nav-link-active {
    @apply bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium dark:bg-darkprimary dark:text-darktext;
}

/* Table styles */
.table {
    @apply min-w-full divide-y divide-gray-200 dark:divide-darkborder;
}

.table-header {
    @apply bg-gray-50 dark:bg-darksecondary;
}

.table-header th {
    @apply px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-darkmuted;
}

.table-body {
    @apply bg-white divide-y divide-gray-200 dark:bg-darkcard dark:divide-darkborder;
}

.table-row {
    @apply hover:bg-gray-50 dark:hover:bg-darksecondary;
}

.table-cell {
    @apply px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-darkmuted;
}

/* Badge styles */
.badge {
    @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}

.badge-success {
    @apply bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200;
}

.badge-error {
    @apply bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200;
}

.badge-warning {
    @apply bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200;
}

.badge-info {
    @apply bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200;
}

body {
    @apply bg-gray-100 dark:bg-darkbg dark:text-darktext;
}

/* Mobile-Optimierung für Login-Seite */
@media (max-width: 640px) {
  .login-viewport {
    min-height: 0 !important;
    height: 100dvh !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .login-box {
    margin-top: 0.5rem !important; /* vorher 1rem, jetzt halbiert */
    margin-bottom: 0 !important;
    space-y: 0.5rem !important;
  }
  .login-box > form {
    margin-top: 0.5rem !important;
  }
  .login-box h1 {
    font-size: 1.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .login-box h2 {
    font-size: 1.125rem !important;
    margin-bottom: 0.5rem !important;
  }
}
@media (max-width: 640px) and (orientation: portrait) {
  nav {
    margin-bottom: 0 !important;
  }
  .login-viewport {
    align-items: flex-start !important;
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
  }
  .login-box {
    margin-top: 3.5rem !important;
    margin-bottom: 6rem !important;
  }
  footer.bg-white,
  footer.bg-white > div {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
    margin-top: 0.5rem !important;
  }
}
@media (max-width: 900px) and (orientation: landscape) {
  .login-box {
    margin-top: 1.5rem !important;
  }
} 
@media (max-width: 640px) {
  /* Benutzername in Navbar ausblenden */
  #userDropdown span {
    display: none !important;
  }
  /* Benutzer-Drop-Down in mobiler Ansicht ausblenden */
  #userDropdown,
  #userDropdownMenu {
    display: none !important;
  }
  /* Header-Container bleibt relativ */
  nav .flex.justify-between.h-16 {
    position: relative !important;
  }
  /* Logo links */
  .flex.items-center > .flex-shrink-0 {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 10;
  }
  /* Sprachauswahl und Benutzer-Dropdown nebeneinander, rechts */
  nav .flex.items-center:last-child {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 1.2rem !important;
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 10;
    width: auto !important;
    min-width: unset !important;
  }
  nav .flex.items-center:last-child > .relative {
    display: flex !important;
    align-items: center !important;
    vertical-align: middle !important;
    height: 100% !important;
    margin: 0 !important;
    width: auto !important;
    min-width: unset !important;
    z-index: 20 !important;
  }
  nav .flex.items-center:last-child > .relative:first-child {
    z-index: 30 !important;
  }
  /* Drop-Downs (Sprache und Benutzer) nebeneinander, nicht übereinander */
  nav .flex.items-center:last-child > .relative {
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
    margin-left: 0.7rem !important;
    margin-right: 0 !important;
    height: 100% !important;
  }
  nav .flex.items-center:last-child > .flex.items-center {
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
    margin-left: 0.7rem !important;
    margin-right: 0 !important;
    height: 100% !important;
  }
  /* Burger-Menü exakt mittig zwischen Logo und Sprachauswahl */
  #mobileMenuButton {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin-left: 0 !important;
    z-index: 20;
    background: none !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0.3em !important;
  }
  #mobileMenuButton svg {
    width: 1.5em !important;
    height: 1.5em !important;
    color: #222 !important;
    background: none !important;
    box-shadow: none !important;
  }
  /* Abstand zwischen Benutzer- und Sprachauswahl-Dropdown erhöhen */
  nav .flex.items-center:last-child > div,
  nav .flex.items-center:last-child > .relative {
    margin-left: 0.7rem !important;
    margin-right: 0 !important;
    display: inline-flex !important;
    vertical-align: middle !important;
  }
  /* Desktop-Menü in Navbar ausblenden */
  .sm\:flex {
    display: none !important;
  }
  /* Aufklapppfeile in Drop-Down-Menüs ausblenden */
  #userDropdown svg,
  #languageDropdown svg {
    display: none !important;
  }
  /* Overlay für das mobile Menü ENTFERNT */
  /* #mobileMenuOverlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 9998;
  }
  #mobileMenu.open ~ #mobileMenuOverlay,
  #mobileMenuOverlay.open {
    display: block !important;
  } */
  /* Mobile Menü sichtbar/unsichtbar: jetzt im Fluss, nicht mehr fixed/overlay */
  #mobileMenu {
    display: none;
    position: static !important;
    top: unset !important;
    left: unset !important;
    height: auto !important;
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
    z-index: auto !important;
    box-shadow: none !important;
    transform: none !important;
    transition: max-height 0.2s cubic-bezier(.4,0,.2,1);
    overflow: hidden;
  }
  #mobileMenu.open {
    display: block !important;
    max-height: 500px !important; /* oder passend zum Inhalt */
  }
  a[href$="/machines/create"] {
    min-width: 0 !important;
    padding-left: 1.1em !important;
    padding-right: 1.1em !important;
    font-size: inherit !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    white-space: nowrap !important;
    overflow: hidden !important;
  }
  a[href$="/machines/create"] i.fa-plus {
    margin-right: 0 !important;
  }
  a[href$="/machines/create"] i.fa-plus ~ * {
    display: none !important;
  }
  a[href$="/machines/create"] i.fa-plus {
    font-size: 1.2em !important;
  }
  a[href$="/machines/create"] {
    color: transparent !important;
  }
  a[href$="/machines/create"] i.fa-plus {
    color: #fff !important;
    filter: none !important;
  }
} 
@media (max-width: 640px) {
  .user-new-label { display: none !important; }
} 
@media (max-width: 640px) {
  /* Hide desktop language dropdown on mobile */
  #desktopLanguageContainer {
    display: none !important;
  }
  
  /* Show mobile language dropdown on mobile */
  #mobileLanguageContainer {
    display: block !important;
  }
  
  /* Mobile language dropdown positioning */
  #mobileLanguageDropdownMenu {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    margin-top: 0.5rem !important;
    z-index: 9999 !important;
  }
}

@media (min-width: 641px) {
  /* Hide mobile language dropdown on desktop */
  #mobileLanguageContainer {
    display: none !important;
  }
  
  /* Show desktop language dropdown on desktop */
  #desktopLanguageContainer {
    display: block !important;
  }
} 