/*
  RUYA MONTHLY MENU - DESKTOP FINAL V1

  IMPORTANT:
  - Mobile menu CSS is untouched.
  - Overlay positioning model is not replaced.
  - Only desktop fine-pointer devices.
*/

@media
  (min-width: 1024px)
  and (hover: hover)
  and (pointer: fine) {

  /*
    Admin sidebar:
    1024-1499 -> ~258px
    >=1500    -> ~270px

    ModalBack lives in admin content area, therefore visual viewport
    centre is half-sidebar-width to the left.
  */
  body.ruyaMenuImportOpen {
    --ruya-menu-sidebar-width: 258px;
    overflow: hidden !important;
  }

  /*
    Existing overlay stays where the application created it.
    We only change bottom-sheet alignment to desktop modal alignment.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportBack {
    align-items: center !important;
    justify-content: center !important;

    padding: 28px 32px !important;

    overflow: hidden !important;
  }

  /*
    Desktop workspace.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportSheet {
    width: min(1180px, calc(100vw - 100px)) !important;
    max-width: 1180px !important;

    height: min(820px, calc(100vh - 64px)) !important;
    max-height: calc(100vh - 64px) !important;

    margin: 0 !important;

    /*
      Content area is centred after the sidebar.
      Move only the sheet by half sidebar width.
      DO NOT reposition ModalBack.
    */
    transform:
      translateX(
        calc(var(--ruya-menu-sidebar-width) / -2)
      ) !important;

    display: flex !important;
    flex-direction: column !important;

    overflow: hidden !important;

    border-radius: 22px !important;

    background: #fff !important;

    box-shadow:
      0 24px 70px rgba(16,31,58,.20),
      0 3px 12px rgba(16,31,58,.08) !important;
  }

  /*
    Bottom-sheet handle is unnecessary on desktop.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportHandle {
    display: none !important;
  }

  /*
    HEADER
  */
  body.ruyaMenuImportOpen .ruyaMenuImportHeader {
    position: relative !important;
    top: auto !important;

    flex: 0 0 auto !important;

    min-height: 76px !important;

    padding: 17px 22px 15px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 20px !important;

    background: #fff !important;

    border-bottom:
      1px solid #e9edf3 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportHeader small {
    margin: 0 0 3px !important;

    font-size: 9px !important;
    letter-spacing: .12em !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportHeader h3 {
    margin: 0 !important;

    font-size: 18px !important;
    line-height: 1.2 !important;

    font-weight: 650 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportHeader p {
    margin: 3px 0 0 !important;

    font-size: 10.5px !important;
    line-height: 1.35 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportHeader > button {
    width: 38px !important;
    height: 38px !important;

    flex: 0 0 38px !important;

    border-radius: 11px !important;

    font-size: 20px !important;
  }

  /*
    BODY
    Only preview table will scroll.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportBody {
    flex: 1 1 auto !important;

    min-height: 0 !important;
    min-width: 0 !important;

    display: flex !important;
    flex-direction: column !important;

    gap: 9px !important;

    padding: 14px 18px !important;

    overflow: hidden !important;
  }

  /*
    FILE PICKER
    Desktop compact horizontal row.
  */
  body.ruyaMenuImportOpen .ruyaMenuFileDrop {
    flex: 0 0 auto !important;

    width: 100% !important;

    min-height: 70px !important;
    height: 70px !important;

    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 10px 15px !important;

    display: grid !important;

    grid-template-columns:
      44px
      minmax(0,1fr) !important;

    grid-template-rows:
      auto
      auto !important;

    column-gap: 12px !important;
    row-gap: 1px !important;

    align-items: center !important;

    text-align: left !important;

    border-radius: 14px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuFileDrop > span {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;

    width: 40px !important;
    height: 40px !important;

    display: grid !important;
    place-items: center !important;

    margin: 0 !important;

    font-size: 23px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuFileDrop > b {
    grid-column: 2 !important;
    grid-row: 1 !important;

    align-self: end !important;

    margin: 0 !important;

    font-size: 13px !important;
    line-height: 1.2 !important;

    font-weight: 650 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuFileDrop > small {
    grid-column: 2 !important;
    grid-row: 2 !important;

    align-self: start !important;

    margin: 0 !important;

    font-size: 9.5px !important;
    line-height: 1.25 !important;
  }

  /*
    SELECTED FILE
  */
  body.ruyaMenuImportOpen .ruyaMenuSelectedFile {
    flex: 0 0 auto !important;

    min-height: 48px !important;

    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 7px 10px !important;

    border-radius: 12px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuSelectedFile > span {
    width: 32px !important;
    height: 32px !important;

    flex: 0 0 32px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuSelectedFile b {
    font-size: 10.5px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuSelectedFile small {
    font-size: 9px !important;
  }

  /*
    SUMMARY CHIPS
  */
  body.ruyaMenuImportOpen .ruyaMenuPreviewSummary {
    flex: 0 0 auto !important;

    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;

    gap: 7px !important;

    min-height: 36px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewSummary > * {
    margin: 0 !important;

    white-space: nowrap !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewSummary b,
  body.ruyaMenuImportOpen
  .ruyaMenuPreviewSummary span {
    padding: 7px 10px !important;

    border-radius: 9px !important;

    font-size: 10.5px !important;
    line-height: 1.2 !important;
  }

  /*
    DESKTOP TABLE AREA
  */
  body.ruyaMenuImportOpen .ruyaMenuPreviewDesktop {
    flex: 1 1 0 !important;

    min-width: 0 !important;
    min-height: 0 !important;

    display: flex !important;

    overflow: hidden !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop
  .ruyaMenuPreviewScrollable {
    flex: 1 1 0 !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 0 !important;
    min-height: 0 !important;

    max-height: none !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    border:
      1px solid #e4e9f1 !important;

    border-radius: 13px !important;

    overscroll-behavior: contain !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop table {
    width: 100% !important;

    min-width: 0 !important;

    table-layout: fixed !important;

    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  /*
    Date = fixed.
    3 meals share remaining width.
  */
  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop th:first-child,
  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop td:first-child {
    width: 132px !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop th:not(:first-child),
  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop td:not(:first-child) {
    width:
      calc((100% - 132px) / 3) !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop thead {
    position: sticky !important;

    top: 0 !important;

    z-index: 4 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop th {
    height: 38px !important;

    padding: 8px 9px !important;

    background: #f7f9fc !important;

    border-bottom:
      1px solid #e4e9f1 !important;

    font-size: 10px !important;
    font-weight: 700 !important;

    text-align: left !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop td {
    min-width: 0 !important;

    padding: 5px 7px !important;

    border-bottom:
      1px solid #edf0f5 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop input {
    box-sizing: border-box !important;

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

    height: 36px !important;
    min-height: 36px !important;

    padding: 6px 8px !important;

    border-radius: 8px !important;

    font-size: 10px !important;
  }

  /*
    MOBILE PREVIEW MUST NEVER APPEAR ON DESKTOP.
  */
  body.ruyaMenuImportOpen .ruyaMenuPreviewMobile {
    display: none !important;
  }

  /*
    FOOTER ALWAYS VISIBLE
  */
  body.ruyaMenuImportOpen .ruyaMenuImportFooter {
    position: relative !important;
    bottom: auto !important;

    flex: 0 0 auto !important;

    width: 100% !important;

    min-height: 64px !important;

    box-sizing: border-box !important;

    display: grid !important;

    grid-template-columns:
      180px
      360px !important;

    justify-content: center !important;
    align-items: center !important;

    gap: 11px !important;

    padding: 10px 18px 12px !important;

    border-top:
      1px solid #e7ebf2 !important;

    background: #fff !important;

    box-shadow:
      0 -8px 22px rgba(20,35,64,.04) !important;

    z-index: 5 !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportFooter button,
  body.ruyaMenuImportOpen
  .ruyaMenuImportFooter .btn {
    width: 100% !important;

    min-height: 40px !important;
    height: 40px !important;

    margin: 0 !important;

    border-radius: 10px !important;

    font-size: 10.5px !important;
  }
}

/*
  Wider desktop sidebar variant.
*/
@media
  (min-width: 1500px)
  and (hover: hover)
  and (pointer: fine) {

  body.ruyaMenuImportOpen {
    --ruya-menu-sidebar-width: 270px;
  }
}

/* RUYA_MENU_DESKTOP_AUTO_HEIGHT_V2 */
@media
  (min-width: 1024px)
  and (hover: hover)
  and (pointer: fine) {

  /*
    Sabit 820px yüksekliği kaldır.
    İçerik azsa modal kompakt kalsın.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportSheet {
    height: auto !important;

    max-height: calc(100vh - 70px) !important;

    min-height: 0 !important;
  }

  /*
    Body artık boş alanı doldurmak için uzamayacak.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportBody {
    flex: 0 1 auto !important;

    min-height: 0 !important;
    max-height: calc(100vh - 205px) !important;

    overflow: hidden !important;
  }

  /*
    Önizleme yokken ekstra yükseklik üretme.
  */
  body.ruyaMenuImportOpen .ruyaMenuPreviewDesktop {
    flex: 0 1 auto !important;

    min-height: 0 !important;

    overflow: hidden !important;
  }

  /*
    Önizleme varsa tablo en fazla bu kadar büyüsün.
    Sonrası sadece tablo içinde scroll.
  */
  body.ruyaMenuImportOpen
  .ruyaMenuPreviewDesktop
  .ruyaMenuPreviewScrollable {
    height: auto !important;

    max-height: min(
      470px,
      calc(100vh - 330px)
    ) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  /*
    Footer her durumda modalın hemen altında görünür.
  */
  body.ruyaMenuImportOpen .ruyaMenuImportFooter {
    flex: 0 0 auto !important;

    position: relative !important;
    bottom: auto !important;

    min-height: 62px !important;
  }
}

/* RUYA_MENU_DESKTOP_PREVIEW_FOOTER_V3 */
@media
  (min-width: 1024px)
  and (hover: hover)
  and (pointer: fine) {

  /*
    Dosya seçildiğinde modal ekranı aşmasın.
    Header + içerik + footer aynı viewport içinde.
  */
  body.ruyaMenuImportOpen
  .ruyaMenuImportSheet:has(.ruyaMenuSelectedFile) {
    max-height: calc(100vh - 90px) !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportSheet:has(.ruyaMenuSelectedFile)
  .ruyaMenuImportBody {
    flex: 0 1 auto !important;

    min-height: 0 !important;
    max-height: calc(100vh - 245px) !important;

    overflow: hidden !important;
  }

  /*
    Asıl scroll yalnız yemek tablosunda.
  */
  body.ruyaMenuImportOpen
  .ruyaMenuImportSheet:has(.ruyaMenuSelectedFile)
  .ruyaMenuPreviewDesktop {
    flex: 0 1 auto !important;

    min-height: 0 !important;

    overflow: hidden !important;
  }

  body.ruyaMenuImportOpen
  .ruyaMenuImportSheet:has(.ruyaMenuSelectedFile)
  .ruyaMenuPreviewDesktop
  .ruyaMenuPreviewScrollable {
    height: auto !important;

    max-height: min(
      340px,
      calc(100vh - 405px)
    ) !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  /*
    Footer daima görünür.
  */
  body.ruyaMenuImportOpen
  .ruyaMenuImportSheet:has(.ruyaMenuSelectedFile)
  .ruyaMenuImportFooter {
    position: relative !important;
    bottom: auto !important;

    flex: 0 0 auto !important;

    display: grid !important;

    visibility: visible !important;
    opacity: 1 !important;

    min-height: 62px !important;

    z-index: 20 !important;
  }
}
