
/* ShiftFlow 14.0.1 – globaler Layout-Fix */

/*
 * Die Sidebar wird bereits durch das Grid der dashboard-shell berücksichtigt.
 * Alte Seiten-CSS-Dateien dürfen deshalb keinen zusätzlichen linken Abstand
 * mehr auf app-main oder Spezial-Main-Elemente setzen.
 */
.dashboard-shell {
  display: grid !important;
  grid-template-columns: 292px minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: 100vw !important;
  min-height: 100vh !important;
  overflow-x: clip !important;
}

.dashboard-shell > .app-sidebar {
  grid-column: 1 !important;
  min-width: 0 !important;
  max-width: 292px !important;
}

.dashboard-shell > .app-main,
.dashboard-shell > main,
.app-main,
.assistant-main,
.smart-assistant-main,
.live-dashboard-main,
.schedule-import-main,
.ai-shift-main,
.reports-main {
  grid-column: 2 !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  margin-left: 0 !important;
  margin-right: 0 !important;

  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Schutz gegen zu breite Kinder in Grid- und Flex-Layouts */
.app-main *,
.assistant-main *,
.smart-assistant-main * {
  min-width: 0;
}

.app-topbar,
.assistant-header {
  width: 100%;
  max-width: 100%;
}

.app-topbar h1,
.assistant-header h1 {
  max-width: 100%;
  overflow-wrap: anywhere;
}

/* ============================================================
   Smart Shift Editor
   ============================================================ */

.editor-layout {
  display: grid !important;
  grid-template-columns:
    minmax(0, 0.95fr)
    minmax(0, 1.05fr) !important;

  width: 100% !important;
  max-width: 100% !important;
  gap: 14px !important;
}

.editor-layout > *,
.editor-results,
.editor-form,
.metric-grid,
.detail-grid,
.template-grid {
  min-width: 0 !important;
  max-width: 100% !important;
}

.editor-form input,
.editor-form select,
.editor-form textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.template-grid button {
  min-width: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1380px) {
  .editor-layout {
    grid-template-columns: 1fr !important;
  }

  .editor-results {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   Chat / Assistant
   ============================================================ */

.assistant-main {
  padding: 34px 34px 90px !important;
}

.assistant-layout {
  grid-template-columns:
    minmax(0, 1.15fr)
    minmax(280px, 0.85fr) !important;

  width: 100%;
  max-width: 100%;
  gap: 18px;
}

.assistant-chat,
.assistant-sidebar,
.assistant-overview,
.message,
.message > div {
  min-width: 0 !important;
  max-width: 100% !important;
}

.chat-messages {
  width: 100%;
  max-width: 100%;
}

.assistant-input {
  width: 100%;
  max-width: 100%;
}

.assistant-input textarea {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 1250px) {
  .assistant-layout {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   Responsive sidebar widths
   ============================================================ */

@media (max-width: 1180px) and (min-width: 901px) {
  .dashboard-shell {
    grid-template-columns: 270px minmax(0, 1fr) !important;
  }

  .dashboard-shell > .app-sidebar {
    max-width: 270px !important;
  }
}

@media (max-width: 900px) {
  .dashboard-shell {
    display: block !important;
    width: 100% !important;
    overflow-x: hidden !important;
  }

  .dashboard-shell > .app-main,
  .dashboard-shell > main,
  .app-main,
  .assistant-main,
  .smart-assistant-main {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }
}

@media (max-width: 760px) {
  .assistant-main {
    padding: 24px 16px 120px !important;
  }

  .time-grid,
  .template-grid,
  .metric-grid,
  .detail-grid {
    grid-template-columns: 1fr !important;
  }
}
