/* iTECH CRM responsive layout integrity guard · 2026-09-27 */
html,body{max-width:100%}
body.order-page-body,body.client-page-body,body.request-page-body{overflow-x:hidden}

/* Client card: keep the sticky header and every form control inside viewport. */
body.client-page-body .client-top{
  box-sizing:border-box!important;
  max-width:100vw!important;
  grid-template-columns:auto minmax(0,1fr) minmax(480px,680px)!important;
  overflow:hidden!important;
}
body.client-page-body .client-top>div:not(.client-top-actions){min-width:0!important}
body.client-page-body .client-top-actions{
  display:grid!important;
  grid-template-columns:minmax(130px,1.15fr) minmax(120px,1fr) minmax(105px,.9fr) minmax(90px,.75fr)!important;
  grid-auto-flow:row!important;
  align-items:stretch!important;
  justify-self:stretch!important;
  align-self:center!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  max-width:680px!important;
  height:auto!important;
  overflow:visible!important;
  padding:0!important;
}
body.client-page-body .client-top-actions>*{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:38px!important;
  height:38px!important;
  margin:0!important;
}
body.client-page-body .client-card-more{
  display:block!important;
  position:relative!important;
  padding:0!important;
  overflow:visible!important;
}
body.client-page-body .client-card-more>summary{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  min-height:38px!important;
  padding:7px 10px!important;
}
body.client-page-body .client-card-more>div{
  right:0!important;
  left:auto!important;
  width:min(260px,calc(100vw - 24px))!important;
  min-width:0!important;
  max-width:calc(100vw - 24px)!important;
}
body.client-page-body .client-page,
body.client-page-body .client-page-grid,
body.client-page-body .client-page-main,
body.client-page-body .client-page-side,
body.client-page-body .order-card,
body.client-page-body form,
body.client-page-body label{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
body.client-page-body input,
body.client-page-body select,
body.client-page-body textarea{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}

@media(max-width:1180px){
  body.client-page-body .client-top{
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
  }
  body.client-page-body .client-top>.order-brand{display:none!important}
  body.client-page-body .client-top-actions{
    grid-column:1/-1!important;
    max-width:100%!important;
    grid-template-columns:minmax(130px,1.15fr) minmax(120px,1fr) minmax(105px,.9fr) minmax(90px,.75fr)!important;
  }
}
@media(max-width:760px){
  body.client-page-body .client-top{
    padding:7px 8px!important;
    gap:6px!important;
    overflow:visible!important;
  }
  body.client-page-body .client-top-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    padding:0!important;
  }
  body.client-page-body .client-top-actions>*,
  body.client-page-body .client-top-actions .client-sync-pill{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:38px!important;
    height:38px!important;
  }
}

/* Order card: mobile header = status row + four equal action cells. */
@media(max-width:760px){
  body.order-page-body .order-top{
    box-sizing:border-box!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    width:100%!important;
    max-width:100vw!important;
    height:auto!important;
    min-height:0!important;
    padding:6px 8px!important;
    gap:6px!important;
    overflow:visible!important;
  }
  body.order-page-body .order-top>.order-brand{display:none!important}
  body.order-page-body .order-top>div:not(.order-top-actions){min-width:0!important}
  body.order-page-body .order-top-actions{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    grid-template-rows:auto 36px!important;
    grid-auto-flow:row!important;
    gap:5px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    overflow:visible!important;
    padding:0!important;
  }
  body.order-page-body .order-top-actions .top-status-field{
    grid-column:1/-1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
  }
  body.order-page-body .order-top-actions>button,
  body.order-page-body .order-top-actions>.module-more-actions{
    grid-row:2!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:36px!important;
    min-height:36px!important;
    margin:0!important;
    padding:0 5px!important;
  }
  body.order-page-body .order-top-actions>.module-more-actions{
    display:block!important;
    position:relative!important;
    overflow:visible!important;
  }
  body.order-page-body .order-top-actions>.module-more-actions>summary{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    height:36px!important;
    min-height:36px!important;
    padding:7px 5px!important;
  }
  body.order-page-body .order-top-actions>.module-more-actions>div{
    right:0!important;
    left:auto!important;
    width:min(240px,calc(100vw - 20px))!important;
    min-width:0!important;
    max-width:calc(100vw - 20px)!important;
  }
}

/* Request card: grid children may never use intrinsic width to stretch mobile page. */
body.request-page-body .request-page,
body.request-page-body .request-layout,
body.request-page-body .request-sheet,
body.request-page-body .request-help{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}
@media(max-width:820px){
  body.request-page-body .request-page{width:100%!important;padding:16px 10px!important}
  body.request-page-body .request-layout{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
  }
  body.request-page-body .request-layout>.request-sheet,
  body.request-page-body .request-layout>.request-help{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.request-page-body .request-sheet>*,
  body.request-page-body .request-help>*{
    box-sizing:border-box!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.request-page-body input,
  body.request-page-body select,
  body.request-page-body textarea{
    box-sizing:border-box!important;
    min-width:0!important;
    max-width:100%!important;
  }
}

/* Native details must stay closed. Older generic grid rules were forcing hidden menu bodies visible. */
.module-more-actions:not([open])>div,
.orders-more-actions:not([open])>div{display:none!important}
.module-more-actions[open]>div,
.orders-more-actions[open]>div{display:grid!important}

/* Order side cards: action groups stay inside the narrow right rail. */
body.order-page-body .provider-payment-box{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;flex-wrap:wrap!important}
body.order-page-body .provider-payment-actions{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  gap:6px!important;
  overflow:visible!important;
}
body.order-page-body .provider-payment-actions>*{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
@media(max-width:760px){
  body.order-page-body .order-top-actions .top-status-field{grid-column:1/-1!important;grid-row:1!important}
  body.order-page-body #openPrint{grid-column:1!important;grid-row:2!important}
  body.order-page-body #deliverOrder{grid-column:2!important;grid-row:2!important}
  body.order-page-body .order-top-actions>.order-top-more{grid-column:3!important;grid-row:2!important}
  body.order-page-body #saveOrder{grid-column:4!important;grid-row:2!important}
}

/* Request decisions: keep action buttons as one contained unit, not Interface-OS card columns. */
body.request-page-body .request-actions-block{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
}
body.request-page-body .request-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding:0!important;
  overflow:visible!important;
}
body.request-page-body .request-actions>button{
  flex:1 1 150px!important;
  box-sizing:border-box!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:42px!important;
}
body.request-page-body #requestNotice{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:21px!important;
  margin-top:8px!important;
  padding:0!important;
  overflow:visible!important;
}
@media(max-width:620px){
  body.request-page-body .request-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.request-page-body .request-actions>button{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}

/* CRM orders workspace: five actions fit in two rows on phones, without a hidden horizontal third column. */
@media(max-width:620px){
  body:not(.order-page-body):not(.client-page-body):not(.request-page-body) .orders-main-actions{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    gap:7px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  body:not(.order-page-body):not(.client-page-body):not(.request-page-body) .orders-main-actions>*{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body:not(.order-page-body):not(.client-page-body):not(.request-page-body) .orders-more-actions{
    position:relative!important;
  }
  body:not(.order-page-body):not(.client-page-body):not(.request-page-body) .orders-more-actions>summary{
    width:100%!important;
    min-width:0!important;
  }
  body:not(.order-page-body):not(.client-page-body):not(.request-page-body) .orders-more-actions>div{
    left:auto!important;
    right:0!important;
    width:min(240px,calc(100vw - 30px))!important;
    min-width:0!important;
    max-width:calc(100vw - 30px)!important;
  }

  body.order-page-body .order-top-actions>.order-top-more>div{
    left:0!important;
    right:auto!important;
    width:min(220px,calc(100vw - 20px))!important;
    max-width:calc(100vw - 20px)!important;
  }

  body.request-page-body .request-actions>button{
    height:auto!important;
    min-height:42px!important;
    padding:9px 8px!important;
    line-height:1.2!important;
  }
}

/* 2026-09-30 — global button/layout containment guard */
body:not(.login-body) button,
body:not(.login-body) a.primary,
body:not(.login-body) a.ghost,
body:not(.login-body) a.open{
  box-sizing:border-box;
  max-width:100%;
}
.panel-head,.toolbar,.actions,.row-actions,.client-row-actions,.section-tools,
.docs-head-actions,.order-card-head,.modal-head,.developer-portals,
.chat-media-tools,.owner-b2b-media-tools{
  min-width:0;
  max-width:100%;
}
.panel-head,.toolbar,.actions,.row-actions,.client-row-actions,.section-tools,
.docs-head-actions,.order-card-head{
  flex-wrap:wrap;
}
.panel-head>*,.toolbar>*,.actions>*,.row-actions>*,.client-row-actions>*,
.section-tools>*,.docs-head-actions>*,.order-card-head>*{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.actions>button,.actions>a,.row-actions>button,.row-actions>a,
.client-row-actions>button,.client-row-actions>a,
.docs-head-actions>button,.docs-head-actions>a{
  min-width:0;
  max-width:100%;
}
.client-row-actions,.row-actions{align-items:center}
.client-row-actions>*{white-space:normal}
.section-tools input{min-width:160px;flex:1 1 240px}
.section-tools select,.section-tools .ui-select{min-width:130px;flex:0 1 220px}
.section-tools button{flex:0 1 auto}
.modal .actions,.crm-dialog-card .actions,.ui-command-actions{
  flex-wrap:wrap;
  min-width:0;
}
.modal .actions>*,.crm-dialog-card .actions>*,.ui-command-actions>*{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.owner-tabs{min-width:0;max-width:100%}
.owner-tabs button{min-width:0;max-width:100%;white-space:normal}
.integration-grid,.settings-grid,.mini-cards{min-width:0;max-width:100%}
.integration-grid>article,.settings-grid>article,.mini-cards>article{min-width:0;max-width:100%;box-sizing:border-box}
.integration-grid button,.settings-grid button{max-width:100%;white-space:normal}
.chat-send-row>*{min-width:0;max-width:100%;box-sizing:border-box}
.developer-portals>*{min-width:0;max-width:100%;box-sizing:border-box}

@media(max-width:900px){
  .panel-head{align-items:stretch}
  .panel-head>.toolbar{width:100%}
  .developer-portals{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .actions:not(.request-actions):not(.order-bulk-actions):not(.delivery-checkout-actions),
  .row-actions,.client-row-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px!important;
    width:100%;
  }
  .actions:not(.request-actions):not(.order-bulk-actions):not(.delivery-checkout-actions)>*,
  .row-actions>*,.client-row-actions>*{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
  }
  .section-tools{
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    width:100%;
  }
  .section-tools input,.section-tools select,.section-tools .ui-select,.section-tools button{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .developer-portals{grid-template-columns:1fr!important}
  .modal .actions,.crm-dialog-card .actions,.ui-command-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:390px){
  .actions:not(.request-actions):not(.order-bulk-actions):not(.delivery-checkout-actions),
  .row-actions,.client-row-actions,
  .modal .actions,.crm-dialog-card .actions,.ui-command-actions{
    grid-template-columns:1fr!important;
  }
}


/* 2026-09-30 — complete CRM button guard */
:where(button,a.primary,a.ghost,a.danger,a.open,[role="button"],summary.ui-engine-button){
  box-sizing:border-box!important;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
:where(button,a.primary,a.ghost,a.danger,a.open,[role="button"]).ui-engine-button{
  position:relative;
}
.ui-layout-group{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}
.ui-layout-group>*{
  box-sizing:border-box!important;
  min-width:0;
  max-width:100%;
}
.ui-layout-group.ui-auto-contain{
  flex-wrap:wrap!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.ui-layout-group.ui-auto-contain>button,
.ui-layout-group.ui-auto-contain>a,
.ui-layout-group.ui-auto-contain>summary,
.ui-layout-group.ui-auto-contain>.ui-select{
  flex:1 1 auto;
  min-width:0!important;
  max-width:100%!important;
}
.ui-select-trigger,.ui-select-option{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}
.ui-select-trigger .ui-select-value,
.ui-layout-button>span,
.ui-layout-button>b,
.ui-layout-button>small{
  min-width:0;
  max-width:100%;
}
.ui-details-panel,
.ui-select-portal,
.notification-popover,
.module-more-actions>div,
.orders-more-actions>div{
  box-sizing:border-box!important;
  max-width:calc(100vw - 16px)!important;
}
@media(max-width:760px){
  :where(button,a.primary,a.ghost,a.danger,a.open,[role="button"]).ui-layout-button{
    line-height:1.15;
  }
  .ui-layout-group.ui-auto-contain{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-items:stretch!important;
    gap:6px!important;
  }
  .ui-layout-group.ui-auto-contain>*{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}
@media(max-width:430px){
  .ui-layout-group.ui-auto-contain{
    grid-template-columns:1fr!important;
  }
}
