/* Final desktop layout corrections; mobile remains controlled separately. */
html,body{width:100%;max-width:100%;overflow-x:hidden!important}
body{scrollbar-width:none}
body::-webkit-scrollbar{display:none;width:0;height:0}
.app-shell{width:100%;max-width:100%;overflow:hidden!important}
.main,.topbar,.content,#view{box-sizing:border-box;min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
.rent-compact-page,.schedule-compact-page,.subscription-compact-page,.bill-compact-page{
  min-width:0!important;max-width:100%!important;overflow-x:hidden!important;scrollbar-width:none
}
.rent-compact-page::-webkit-scrollbar,.schedule-compact-page::-webkit-scrollbar,
.subscription-compact-page::-webkit-scrollbar,.bill-compact-page::-webkit-scrollbar,
.compact-scroll::-webkit-scrollbar,.scheduled-scroll::-webkit-scrollbar{display:none;width:0;height:0}
.compact-scroll,.scheduled-scroll{scrollbar-width:none}
@media (min-width: 769px) {
  .main { width: auto !important; min-width: 0; max-width: calc(100% - 238px) !important; }
  .topbar, .content, #view { width: 100%; min-width: 0; }
  .content { max-width: 1680px !important; margin: 0 auto !important; padding: 24px clamp(24px, 2vw, 36px) 80px !important; }
  .transaction-compact-page, .bill-compact-page, .rent-compact-page, .schedule-compact-page,
  .subscription-compact-page, .pantry-page, .trip-page, .splitwise-page, .budget-page,
  .goal-page, .reports-page, .settings-page { width: 100%; max-width: none !important; margin-inline: 0 !important; }
  #view.module-page,
  #view.module-transactions,
  #view.module-bills { width: 100% !important; max-width: none !important; margin: 0 !important; }

  /* Transactions stay a single wide ledger and use the browser scroll only. */
  .transaction-compact-page .card, .transaction-compact-page .transaction-card,
  .transaction-compact-page .transaction-compact-card { width: 100%; overflow: hidden !important; }
  .transaction-compact-page .transaction-compact-list, .transaction-compact-page .transaction-list,
  .transaction-compact-page .compact-scroll { max-height: none !important; height: auto !important; overflow: visible !important; }
  .transaction-compact-page .transaction-compact-filters, .transaction-compact-page .transaction-filters {
    display: grid !important; grid-template-columns: minmax(280px, 1.7fr) repeat(5, minmax(145px, 1fr)) !important;
    gap: 10px !important; align-items: center;
  }
  #view.module-transactions .transaction-card { width: 100% !important; overflow: hidden !important; }
  #view.module-transactions .transaction-compact-list {
    max-height: none !important; height: auto !important; overflow: visible !important; scrollbar-width: none;
  }
  #view.module-transactions .transaction-compact-list::-webkit-scrollbar { display: none; width: 0; height: 0; }
  #view.module-transactions .transaction-filters {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.7fr) repeat(5, minmax(145px, 1fr)) !important;
    gap: 10px !important;
  }

  /* Override the older global three-column rule on Bills & Reminders. */
  .bill-compact-page .bill-compact-grid {
    display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important; align-items: stretch !important; width: 100% !important;
  }
  .bill-compact-page .bill-compact-grid > * { min-width: 0; width: 100%; height: 390px; max-height: 390px; margin: 0 !important; }
  .bill-compact-page .bill-compact-grid .compact-scroll, .bill-compact-page .bill-compact-grid .bill-list {
    max-height: 270px; overflow-y: auto; overflow-x: hidden;
  }
  .bill-compact-page .compact-filters { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  #view.module-bills .bill-compact-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important; width: 100% !important; align-items: stretch !important;
  }
  #view.module-bills .bill-compact-grid > .cardx {
    width: 100% !important; min-width: 0 !important; height: 390px !important;
    max-height: 390px !important; margin: 0 !important;
  }
  #view.module-bills .bill-filters { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }

  /* Consistent compact module cards. Keep wheel/touch scrolling but hide rails. */
  .rent-compact-grid,.schedule-compact-grid,.subscription-compact-grid,
  .recurring-compact-grid,.scheduled-transfer-grid{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;align-items:start!important;width:100%!important;max-width:1080px!important
  }
  .rent-compact-grid>.cardx,.schedule-compact-grid>.cardx,.subscription-compact-grid>.cardx,
  .recurring-compact-grid>.cardx,.scheduled-transfer-grid>.cardx{
    width:100%!important;min-width:0!important;height:330px!important;max-height:330px!important;
    overflow:hidden!important;margin:0!important
  }
  .scheduled-scroll{height:258px!important;overflow-y:auto!important;overflow-x:hidden!important}
  .rent-compact-page .compact-scroll,.schedule-compact-page .compact-scroll,
  .subscription-compact-page .compact-scroll,.bill-compact-page .compact-scroll{
    overflow-y:auto!important;overflow-x:hidden!important
  }
}

@media (min-width: 769px) and (max-width: 1120px) {
  .transaction-compact-page .transaction-compact-filters, .transaction-compact-page .transaction-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .bill-compact-page .bill-compact-grid { grid-template-columns: 1fr !important; }
  #view.module-bills .bill-compact-grid { grid-template-columns: 1fr !important; }
  .bill-compact-page .bill-compact-grid > * { height: auto; min-height: 360px; max-height: none; }
  #view.module-bills .bill-compact-grid > .cardx { height: auto !important; min-height: 360px; max-height: none !important; }
}

/* 2026-08-21: viewport-safe desktop shell and uniform compact modules. */
html,body{inline-size:100%;max-inline-size:100%;overflow-x:clip!important}
.app-shell{grid-template-columns:238px minmax(0,1fr)!important;inline-size:100%!important;max-inline-size:100%!important;overflow:hidden!important}
.main{inline-size:100%!important;max-inline-size:100%!important;min-inline-size:0!important;overflow-x:clip!important}
.topbar,.content,#view,#view>*{min-inline-size:0!important;max-inline-size:100%!important}
.content,#view{overflow-x:clip!important}
.cardx,.schedule-compact-grid>* ,.bill-compact-grid>* ,.rent-compact-grid>*{min-inline-size:0!important}

/* Keep touch/wheel scrolling where a list needs it, without drawing extra rails. */
.schedule-directory,.scheduled-scroll,.compact-scroll,.bill-compact-list,
.rent-compact-page [class*="scroll"],.subscription-compact-page [class*="scroll"],
.bill-compact-page [class*="scroll"]{scrollbar-width:none!important;overflow-x:hidden!important}
.schedule-directory::-webkit-scrollbar,.scheduled-scroll::-webkit-scrollbar,.compact-scroll::-webkit-scrollbar,
.bill-compact-list::-webkit-scrollbar,.rent-compact-page [class*="scroll"]::-webkit-scrollbar,
.subscription-compact-page [class*="scroll"]::-webkit-scrollbar,.bill-compact-page [class*="scroll"]::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

@media (min-width:769px){
  .main{max-inline-size:calc(100% - 238px)!important}
  .content{inline-size:100%!important;max-inline-size:none!important;margin:0!important;padding:24px 28px 72px!important}
  .schedule-compact-head,.bill-compact-head,.rent-compact-head{inline-size:100%!important;max-inline-size:none!important}
  .schedule-compact-grid,.rent-compact-grid,.subscription-compact-grid,
  .recurring-compact-grid,.scheduled-transfer-grid{inline-size:100%!important;max-inline-size:1080px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .schedule-compact-grid>.cardx,.rent-compact-grid>.cardx,.subscription-compact-grid>.cardx,
  .recurring-compact-grid>.cardx,.scheduled-transfer-grid>.cardx{block-size:318px!important;max-block-size:318px!important}
  .schedule-directory,.scheduled-scroll{max-block-size:238px!important;overflow-y:auto!important}
  .bill-compact-page .bill-compact-grid,#view.module-bills .bill-compact-grid{inline-size:100%!important;max-inline-size:1080px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bill-compact-page .bill-compact-grid>.cardx,#view.module-bills .bill-compact-grid>.cardx{block-size:330px!important;max-block-size:330px!important}
  .bill-compact-page .bill-compact-list,.bill-compact-page .compact-scroll{max-block-size:235px!important;overflow-y:auto!important}
}
