/* V2.8 - lisibilite erreurs + socle mobile */
html,body{
  max-width:100%;
  overflow-x:hidden;
}

.toast{
  z-index:2147483647!important;
  max-width:min(440px,calc(100vw - 24px))!important;
}

.v28-inline-error,
.v28-inline-success{
  display:grid;
  gap:4px;
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:12px;
  font-weight:800;
  line-height:1.35;
}

.v28-inline-error{
  background:#fef2f2;
  border:1px solid #fecaca;
  color:#991b1b;
}

.v28-inline-success{
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  color:#166534;
}

.v28-inline-error span,
.v28-inline-success span{
  font-size:13px;
  font-weight:700;
}

@media (hover:none){
  button:hover{
    transform:none!important;
    box-shadow:none!important;
  }
}

@media (max-width:760px){
  body{
    background:#f4f7fb!important;
  }

  button,input,select,textarea{
    font-size:16px!important;
  }

  button.small,
  .small{
    font-size:13px!important;
  }

  .main{
    width:100%!important;
    max-width:100vw!important;
    padding:10px!important;
    overflow-x:hidden!important;
  }

  .top{
    gap:8px!important;
    margin-bottom:10px!important;
  }

  .top h1{
    font-size:22px!important;
    line-height:1.15!important;
  }

  .subtitle{
    font-size:13px!important;
    line-height:1.3!important;
  }

  .card,.subcard{
    padding:12px!important;
    border-radius:14px!important;
    margin-bottom:10px!important;
  }

  .toolbar,
  .btnrow,
  .week-nav,
  .service-picker,
  .period-head-actions,
  .filterbar,
  .alert-admin-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    align-items:stretch!important;
  }

  .toolbar > *,
  .btnrow > *,
  .week-nav > *,
  .service-picker > *,
  .period-head-actions > *,
  .filterbar > *,
  .alert-admin-actions > *{
    width:100%!important;
    min-width:0!important;
  }

  .topbar{
    min-height:54px!important;
    padding:8px 10px!important;
  }

  .topbar-title,
  .topbar-brand-text{
    min-width:0!important;
  }

  .topbar-brand-text strong,
  .topbar-brand-text span{
    display:block!important;
    max-width:calc(100vw - 130px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .modal-back{
    padding:0!important;
    place-items:stretch!important;
    align-items:stretch!important;
  }

  .modal-back .modal{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }

  .modal-back .modal-head{
    min-height:54px!important;
    padding:9px 10px!important;
  }

  .modal-back .modal-head h2{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:18px!important;
  }

  .modal-back .modal-body{
    padding:10px!important;
    max-height:calc(100dvh - 54px)!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .clean-tabs,
  .tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    gap:6px!important;
    padding-bottom:4px!important;
    scrollbar-width:none;
  }

  .clean-tabs::-webkit-scrollbar,
  .tabs::-webkit-scrollbar{
    display:none;
  }

  .clean-tabs button,
  .tabs button,
  .tab{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  .clean-sheet .sheet-savebar{
    position:sticky!important;
    top:0!important;
    z-index:12!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin:-10px -10px 10px!important;
    padding:8px 10px!important;
  }

  .clean-sheet .sheet-savebar .clean-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }

  .completion-banner,
  [data-clean-completion]{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  .service-summary{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .mini-kpi{
    padding:8px!important;
    border-radius:12px!important;
  }

  .mini-kpi b{
    font-size:16px!important;
    line-height:1.05!important;
  }

  .mini-kpi span{
    font-size:10px!important;
    line-height:1.05!important;
  }

  .person-card{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr)!important;
    align-items:center!important;
    gap:9px!important;
    padding:10px!important;
  }

  .person-card .avatar{
    width:38px!important;
    height:38px!important;
    border-radius:13px!important;
    font-size:20px!important;
  }

  .person-card .pc-main{
    min-width:0!important;
  }

  .person-card .pc-main b,
  .person-card .pc-main span{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .person-card > button,
  .person-card > a{
    grid-column:1/-1!important;
    width:100%!important;
  }

  .table-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }

  .v1208-alert-group .alert-family-head{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }

  .alert-family-name,
  .alert-family-count,
  .alert-mandatory-count,
  .alert-head-actions{
    min-width:0!important;
    width:100%!important;
  }

  .alert-head-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }

  .alert-head-actions button{
    width:100%!important;
  }
}
