/* Nexus-style dashboard */
:root {
  --sidebar-width: 18rem;
}

html {
  font-size: 15px;
  position: relative;
  min-height: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
}

/* Sidebar: light, defined strip */
.nexus-sidebar {
  background: var(--b2, #e5e7eb);
  border-right: 1px solid var(--b3, #d1d5db);
}

.nexus-sidebar .menu li a {
  border-radius: 0.5rem;
  margin: 0 0.5rem;
  transition: background 0.15s, color 0.15s;
}

.nexus-sidebar .menu li a:hover {
  background: var(--p);
  color: var(--pc);
}

.nexus-sidebar .menu li a.active {
  background: var(--p);
  color: var(--pc);
}

/* Topbar */
.nexus-topbar {
  background: var(--b1, #fff);
  border-bottom: 1px solid var(--b3, #e5e7eb);
  min-height: 4rem;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

/* Main content: clean light background */
.nexus-content {
  background: var(--b1, #fff);
  min-height: calc(100vh - 4rem);
}

/* Cards: subtle shadow and border */
.nexus-card {
  border-radius: 0.75rem;
  border: 1px solid var(--b3, #e5e7eb);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s, border-color 0.2s;
}

.nexus-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* Dashboard stat / feature card accent */
.nexus-card .card-title.has-icon {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.nexus-card .card-title .icon-wrap {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Form focus */
.input:focus,
.select:focus,
.textarea:focus {
  outline: 2px solid var(--p);
  outline-offset: 2px;
}

.btn:focus-visible {
  outline: 2px solid var(--p);
  outline-offset: 2px;
}

/* Sidebar collapsed (icon-only) state */
#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar {
  width: 4rem;
  min-width: 4rem;
  margin-inline-start: 0 !important;
  transition-property: margin, width, min-width, top, max-height, border-radius;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-logo {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  width: 0;
  overflow: hidden;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-header {
  justify-content: center;
  padding-inline: 0.5rem;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-collapse-btn {
  margin-inline: 0;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-nav .menu-label {
  display: none;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-nav .menu-item .grow {
  opacity: 0;
  width: 0;
  overflow: hidden;
  white-space: nowrap;
  padding-inline: 0;
  margin: 0;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-nav .menu-item {
  justify-content: center;
  padding-inline: 0;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-nav {
  padding-inline: 0.5rem;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .layout-sidebar-footer {
  display: none;
}

/* FujiPrint submenu: hover/focus-within to expand; collapsed by default */
.sidebar-menu .sidebar-fuji-group .sidebar-fuji-trigger.menu-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  border-radius: inherit;
}

.sidebar-menu .sidebar-fuji-group:hover .sidebar-fuji-trigger.menu-item {
  background-color: color-mix(in oklch, var(--color-base-content) 8%, transparent);
}

.sidebar-menu .sidebar-fuji-group .sidebar-fuji-children .menu-item {
  min-height: 2.25rem;
  padding-block: 0.35rem;
  font-size: 0.9375rem;
}

.sidebar-fuji-group .sidebar-fuji-expand {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.2s ease;
}

#layout-sidebar-collapsed-trigger:not(:checked) ~ #layout-sidebar .sidebar-fuji-group:hover .sidebar-fuji-expand,
#layout-sidebar-collapsed-trigger:not(:checked) ~ #layout-sidebar .sidebar-fuji-group:focus-within .sidebar-fuji-expand {
  grid-template-rows: 1fr;
}

.sidebar-fuji-chevron {
  transition: transform 0.2s ease;
}

.sidebar-fuji-group:hover .sidebar-fuji-chevron,
.sidebar-fuji-group:focus-within .sidebar-fuji-chevron {
  transform: rotate(180deg);
}

/* Collapsed sidebar: flyout to the right on hover / focus-within */
#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group {
  position: relative;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-expand {
  position: absolute;
  left: 100%;
  top: 0;
  margin-left: 0.25rem;
  width: 13.5rem;
  z-index: 80;
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.12));
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group:not(:hover):not(:focus-within) .sidebar-fuji-expand {
  opacity: 0;
  pointer-events: none;
  grid-template-rows: 0fr !important;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group:hover .sidebar-fuji-expand,
#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group:focus-within .sidebar-fuji-expand {
  opacity: 1;
  pointer-events: auto;
  grid-template-rows: 1fr !important;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-expand::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 0;
  bottom: 0;
  width: 12px;
}

#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group:hover .sidebar-fuji-children,
#layout-sidebar-collapsed-trigger:checked ~ #layout-sidebar .sidebar-fuji-group:focus-within .sidebar-fuji-children {
  margin-left: 0;
  margin-top: 0;
  padding: 0.35rem;
  border-left: 0;
  border-radius: 0.5rem;
  background: var(--layout-sidebar-background, var(--b1, #fff));
  border: 1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);
}

/* FujiPrint product mapping: unmapped rows — override table-zebra row backgrounds */
.table tbody tr.fuji-mapping-unmapped td.fuji-mapping-unmapped-cell {
  background-color: color-mix(in oklch, var(--color-warning) 28%, var(--color-base-100)) !important;
}

.table tbody tr.fuji-mapping-unmapped:hover td.fuji-mapping-unmapped-cell {
  background-color: color-mix(in oklch, var(--color-warning) 38%, var(--color-base-100)) !important;
}

/* Schedule Kanban: coloured left border per column (Nexus theme variables) */
.schedule-kanban-border-primary { border-left: 4px solid var(--color-primary); }
.schedule-kanban-border-secondary { border-left: 4px solid var(--color-secondary); }
.schedule-kanban-border-accent { border-left: 4px solid var(--color-accent); }
.schedule-kanban-border-info { border-left: 4px solid var(--color-info); }
.schedule-kanban-border-success { border-left: 4px solid var(--color-success); }
.schedule-kanban-border-warning { border-left: 4px solid var(--color-warning); }
