/* FIBRE OPS — mobile-first overrides
   Chargé en dernier afin de corriger les débordements sans réécrire les styles desktop. */

@media (max-width: 760px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body{min-width:0;background-attachment:scroll}
  main{width:100%;max-width:100%;padding:10px 10px calc(96px + env(safe-area-inset-bottom));overflow:visible}
  section.view,.card,.panel,.hero,.stat,.experience-card,.setting-block,.fo-settings-section-grid>*{min-width:0;max-width:100%}
  img,video,canvas{max-width:100%;height:auto}
  svg{max-width:100%}
  input,select,textarea,button{max-width:100%}

  /* Header compact et robuste sur 320–430 px */
  header.top{padding:calc(9px + env(safe-area-inset-top)) 10px 10px;gap:7px}
  .brand-wrap{gap:7px;min-width:0;flex:1}
  .brand-mark{width:30px;height:30px}
  .brand{font-size:15px;letter-spacing:.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-sub{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-actions{gap:5px;flex:none;min-width:0}
  .header-actions .header-icon{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:11px}
  .sync-pill{max-width:108px;min-width:0;padding:6px 8px;gap:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
  .sync-dot{flex:none}

  /* Typographie et cartes */
  .view-head{margin:3px 1px 12px}
  .view-title{font-size:21px;overflow-wrap:anywhere}
  .view-copy{font-size:13px;line-height:1.45;max-width:none}
  .card{padding:13px 12px;border-radius:15px}
  .section-card-title{gap:8px;font-size:14px}
  .experience-card{padding:15px 13px;border-radius:17px;margin-bottom:12px}
  .experience-card h3{font-size:16px}
  .experience-grid,.experience-preferences{grid-template-columns:minmax(0,1fr)!important;gap:10px}
  .experience-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .experience-actions>*{width:100%;min-width:0!important}
  .experience-save-actions{grid-template-columns:minmax(0,1fr)!important;gap:8px}

  /* Formulaires : aucune largeur forcée et cibles tactiles */
  .field{min-width:0}
  .field input:not([type=checkbox]):not([type=radio]):not([type=color]),
  .field select,.field textarea,#histSearch{width:100%;min-width:0;max-width:100%;min-height:48px;font-size:16px;padding:11px 12px}
  .field textarea{min-height:84px}
  .cap-row{flex-wrap:wrap;align-items:stretch}
  .cap-row>*{min-width:0}
  .cap-row input,.cap-row .btn-ghost,.cap-row .btn-soft{flex:1 1 150px}
  .seg{min-width:0;overflow:hidden}
  .seg button{min-width:0;min-height:44px;padding:7px 5px;font-size:13px;white-space:normal;overflow-wrap:anywhere;line-height:1.15}
  .preview{min-width:0;padding:11px 12px}
  .preview .amount{font-size:21px;white-space:nowrap}
  .day-total{min-width:0;padding:11px 12px}
  .day-total .dt-label{min-width:0;overflow-wrap:anywhere}
  .btn-primary,.btn-soft{min-height:50px}
  .btn-ghost{min-height:42px}

  /* Saisie / compléments */
  .intervention-supplement-card{padding:10px}
  .intervention-supplement-grid{grid-template-columns:minmax(0,1fr)!important}
  .intervention-supplement-presets{align-items:stretch}
  .intervention-supplement-chip{min-height:36px}

  /* Dashboard */
  .dash-head{align-items:flex-start;margin-bottom:12px}
  .dash-head h1{font-size:21px}
  .hero{padding:14px 12px;border-radius:18px}
  .hero-amount{font-size:34px;overflow-wrap:anywhere}
  .hero-actions{grid-template-columns:minmax(0,1fr)!important;gap:8px}
  .hero-actions button{white-space:normal!important;min-height:46px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .stat{min-width:0;padding:10px 9px}
  .stat.wide{grid-column:1/-1}
  .stat .k{white-space:normal;line-height:1.2}
  .stat .v{font-size:17px;overflow-wrap:anywhere}
  .panel-head{align-items:flex-start;padding:12px 12px 0}
  .panel-body{padding:11px 12px 13px}
  .chart-cap{align-items:flex-start;flex-direction:column;gap:3px}
  .act{gap:8px}
  .act-main b{overflow-wrap:anywhere}
  .act-amt{font-size:14px;white-space:nowrap}

  /* Historique */
  .filter-bar,.experience-history-tools{align-items:stretch}
  .experience-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .experience-filter-grid label,.experience-filter-grid select{min-width:0}
  .experience-history-tools>*{min-width:0}
  .experience-layout{flex:none}
  .rw{padding:10px 10px 10px 14px}
  .r1{align-items:flex-start;flex-wrap:wrap}
  .r1>*{min-width:0}
  .r2,.r3{min-width:0}
  .r2 .ad,.r3 .ad{min-width:0;overflow-wrap:anywhere;word-break:break-word}
  .experience-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .experience-table{min-width:650px}

  /* Tarifs / typologies : garde les actions dans la largeur du téléphone */
  #tariffRows .tariff-operator{padding:11px}
  #tariffRows .tariff-row,
  #tariffRows .supp-rate-row{min-width:0;grid-template-columns:minmax(0,1fr) minmax(82px,.52fr)!important;gap:7px!important}
  #tariffRows .tariff-add,
  #tariffRows .supp-rate-add{min-width:0;grid-template-columns:minmax(0,1fr) minmax(78px,.48fr) 40px!important;gap:7px!important}
  #tariffRows input,#tariffRows button{min-width:0;max-width:100%}
  .company-type-row{grid-template-columns:minmax(0,1fr)!important}

  /* Modales = bottom sheets sur mobile, pas de carte desktop flottante */
  .modal-overlay{align-items:flex-end;padding:0;overflow:hidden}
  .modal-card{width:100%;max-width:none!important;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);border-radius:20px 20px 0 0;border-left:0;border-right:0;border-bottom:0;padding:15px 12px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}
  .modal-header{position:sticky;top:-15px;z-index:2;margin:-15px -12px 12px;padding:14px 12px 10px;background:var(--surface);align-items:flex-start}
  .modal-header>div{min-width:0;flex:1}
  .modal-title,#interventionSheet h2{font-size:18px!important;overflow-wrap:anywhere}
  .modal-header .btn-ghost{flex:none;min-height:40px;padding:6px 10px}
  .experience-detail-grid{grid-template-columns:minmax(0,1fr)!important;gap:11px}
  .experience-detail-grid .wide{grid-column:auto}
  #interventionSheet .detail-total{font-size:27px}

  /* Réglages */
  .settings-overlay{align-items:flex-end}
  .settings-panel{width:100%;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top) - 10px);border-left:0;border-right:0;padding:14px 11px calc(16px + env(safe-area-inset-bottom))}
  .settings-title{position:sticky;top:-14px;z-index:2;margin:-14px -11px 12px;padding:14px 11px 10px;background:var(--surface);border-bottom:1px solid var(--line)}
  .settings-grid{grid-template-columns:minmax(0,1fr)!important}
  .setting-block.wide{grid-column:auto}
  .setting-row{min-width:0;flex-wrap:wrap;align-items:flex-start}
  .setting-row>*{min-width:0}
  .swatches{gap:8px}
  .sw{width:36px;height:36px}

  /* Page Réglages avancés injectée par le module conformité */
  .fo-settings-page-shell{width:100%;max-width:100%;min-width:0}
  .fo-settings-page-head{padding:calc(10px + env(safe-area-inset-top)) 10px 10px;align-items:flex-start}
  .fo-settings-page-head>div{min-width:0}
  .fo-settings-page-title{font-size:18px;overflow-wrap:anywhere}
  .fo-settings-page-sub{line-height:1.35}
  .fo-settings-page-content{padding:10px}
  .fo-settings-section{margin-bottom:15px}
  .fo-settings-section-grid{grid-template-columns:minmax(0,1fr)!important}
  .fo-settings-section-grid>.setting-block.wide{grid-column:auto}
  .fo-settings-actions{grid-template-columns:minmax(0,1fr)!important}

  /* Navigation basse */
  nav.tabbar{width:100%;max-width:100%;padding:5px 2px calc(5px + env(safe-area-inset-bottom));gap:0}
  .tabbar button{min-width:0;min-height:54px;padding:5px 1px 2px;gap:2px;font-size:10px;line-height:1.05;overflow:hidden}
  .tabbar button span:not(.ico){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar svg{width:19px;height:19px}
  .tabbar .ico{width:44px;height:44px;margin-top:-23px;border-width:3px}
  .tabbar button.primary svg{width:22px;height:22px}
  .tabbar button.active::before{left:22%;right:22%}

  .toast{bottom:calc(84px + env(safe-area-inset-bottom));max-width:calc(100% - 20px);white-space:normal;text-align:center;border-radius:13px}
}

@media (max-width: 430px){
  main{padding-left:8px;padding-right:8px}
  header.top{padding-left:8px;padding-right:8px}
  .brand-sub{display:none}
  .sync-pill{max-width:82px;font-size:10px}
  .stats{grid-template-columns:minmax(0,1fr)}
  .stat.wide{grid-column:auto}
  .experience-filter-grid{grid-template-columns:minmax(0,1fr)}
  .preview,.day-total{align-items:flex-start}
  .preview .amount,.day-total strong{font-size:19px}
  .tabbar button{font-size:9.5px}
  .tabbar svg{width:18px;height:18px}
  #tariffRows .tariff-row,
  #tariffRows .supp-rate-row{grid-template-columns:minmax(0,1fr) minmax(74px,.48fr)!important}
}

@media (max-width: 360px){
  .sync-pill{display:none}
  .header-actions{gap:4px}
  .hero-amount{font-size:31px}
  .preview{flex-direction:column;gap:4px}
  .day-total{flex-direction:column;gap:3px}
  .tabbar button{font-size:9px}
  .tabbar .ico{width:42px;height:42px}
}

/* iOS : évite le zoom auto sur focus et respecte les zones sûres */
@supports (-webkit-touch-callout:none){
  @media (max-width:760px){
    input,select,textarea{font-size:16px!important}
    .modal-card,.settings-panel,.fo-settings-page{padding-bottom:max(env(safe-area-inset-bottom),12px)}
  }
}

@media (prefers-reduced-motion:reduce){
  .modal-card,.settings-panel,.fo-settings-page.active{animation:none!important}
}
