/* Bayān Coran 11.1 — audit responsive global
   Chargé en dernier : corrige les débordements sans modifier les calculs. */

html{max-width:100%;overflow-x:clip;overflow-y:visible}
body{max-width:100%;overflow-x:clip;overflow-y:visible}
*,*::before,*::after{box-sizing:border-box}
img,video,svg,canvas{max-width:100%}
fieldset{min-width:0}

/* Tous les conteneurs applicatifs doivent pouvoir rétrécir dans une grille/flex. */
:where(main,section,article,aside,nav,header,footer,form,fieldset,details,
  .page,.page-shell,.page-content,.app-shell,.app-main,.view,.view-content,
  .search-panel,.search-results,.analytics-page,.analytics-layout,.analytics-tab-panel,
  .analysis-card,.analysis-section,.research-lab-shell,.research-studio-shell,
  .i11-shell,.i11-panel,.i11-card,.i11-result,.i11-two,.i11-two>article,.i11-two>fieldset,
  .appearance-study,.appearance-occurrence-inspector,.appearance-math-panel,
  .v7-study-drawer,.v7-tab,.v7-study-item){min-width:0;max-width:100%}

/* Les textes et résumés ne doivent jamais imposer la largeur de la page. */
:where(.i11-summary,.i11-heading,.analysis-card,.result-card,.verse-card,.catalog-result-head,
  .appearance-summary,.v7-study-item,.term-profile,.research-lab-shell){overflow-wrap:anywhere;word-break:normal}

/* Champs : Safari iOS respecte parfois la largeur intrinsèque du contenu du select. */
:where(input,select,textarea){min-width:0;max-width:100%}
:where(.i11-shell,.analytics-page,.research-lab-shell,.research-studio-shell,.search-panel) :where(input,select,textarea){width:100%}
button{max-width:100%}

/* Tables/matrices dynamiques : le scroll reste local au tableau. */
.bayaan-table-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;border-radius:inherit}
.bayaan-table-scroll>table{margin:0;min-width:max-content;width:max-content;max-width:none}
.bayaan-table-scroll>table th,.bayaan-table-scroll>table td{white-space:normal;overflow-wrap:anywhere}
#i11QueryResults,#i11PatternResults,.analysis-table-wrap,.analytics-table-wrap,.appearance-table-wrap{min-width:0;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
#i11QueryResults>.analysis-table,#i11PatternResults>.analysis-table{min-width:max-content;width:max-content;max-width:none}

/* Graphes / cartes visuelles. */
:where(.appearance-chart-shell,.i11-heatmap,.i11-surah-heatmap,.chart-shell,.graph-shell,.network-shell){min-width:0;max-width:100%;overflow:hidden}
:where(.appearance-chart-shell,.chart-shell,.graph-shell) svg{display:block;width:100%!important;max-width:100%!important;height:auto}
:where(.appearance-chart-shell,.chart-shell,.graph-shell) canvas{display:block;max-width:100%!important}

/* Dialogues toujours contenus dans le viewport. */
:where(dialog,.i11-word-dialog,.v7-lexicon-dialog){max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}

@media (max-width:900px){
  /* La largeur de la page ne dépend plus d'un enfant desktop. */
  body{width:100%;min-width:0}
  .container,.content-container,.page-container,.analytics-container{width:100%;max-width:100%;min-width:0}

  /* Actions génériques : autoriser le retour à la ligne. */
  :where(.i11-actions,.catalog-actions,.appearance-study-actions,.bulk-result-actions,
    .verse-actions,.surah-toolbar-actions,.v7-inline-actions,.v7-item-actions,.v7-word-actions){min-width:0;flex-wrap:wrap}

  /* Matrices et listes complexes ne poussent plus leur carte. */
  .i11-card,.analysis-card{overflow:hidden}
  .i11-card .bayaan-table-scroll,.analysis-card .bayaan-table-scroll{border-radius:12px}
}

@media (max-width:760px){
  /* Espacement mobile cohérent. */
  .i11-shell{gap:12px}
  .i11-card{padding:14px 12px;border-radius:16px}
  .i11-hero{padding:15px 13px;border-radius:17px;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .i11-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin-bottom:10px}
  .i11-heading>*{min-width:0}
  .i11-heading h3{font-size:clamp(1.25rem,6vw,1.7rem);line-height:1.16}
  .i11-heading p{max-width:100%}

  /* Sous-onglets : une barre horizontale indépendante, pas de débordement de page. */
  .i11-tabs,.analytics-tabs,.v7-tabs{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
  .i11-tabs button,.analytics-tabs button,.v7-tabs button{flex:0 0 auto;scroll-snap-align:start}

  /* Intelligence 11 : tous les groupes desktop se replient réellement. */
  .i11-scope-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:10px!important}
  .i11-scope-row>*{min-width:0!important;width:100%!important;max-width:100%!important}
  .i11-scope-row label{display:grid!important;grid-template-columns:minmax(0,1fr);gap:6px}
  .i11-scope-row button{width:100%;min-height:46px;white-space:normal;text-align:center;justify-content:center}

  .i11-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  .i11-actions>*{min-width:0!important;width:100%!important;white-space:normal!important;line-height:1.2;justify-content:center;text-align:center}
  .i11-actions>*:only-child{grid-column:1/-1}

  /* Ligne de termes : 2 colonnes compactes, jamais une grille desktop de 10 champs. */
  .i11-term-row{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;align-items:end}
  .i11-term-row>*{min-width:0!important;max-width:100%}
  .i11-term-row label:first-of-type{grid-column:2/-1!important}
  .i11-term-row label input,.i11-term-row label select{width:100%;min-width:0}
  .i11-term-row [data-remove]{grid-column:auto!important;justify-self:end}

  .i11-two{grid-template-columns:minmax(0,1fr)!important}
  .i11-two>article,.i11-two>fieldset{padding:12px;min-width:0}
  .i11-dl{grid-template-columns:minmax(88px,auto) minmax(0,1fr)}
  .i11-dl dd{overflow-wrap:anywhere}
  .i11-lexical-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .i11-big-ar{font-size:clamp(1.8rem,9vw,2.2rem);max-width:100%;overflow-wrap:anywhere}
  .i11-result header{flex-wrap:wrap}
  .i11-result p,.i11-verse-ar{font-size:clamp(1.25rem,7vw,1.55rem);line-height:2.05}
  .i11-summary{font-size:.95rem;line-height:1.5}

  /* Heatmaps : étiquettes plus petites, zone de données flexible. */
  .i11-heat-row{grid-template-columns:58px minmax(0,1fr)!important;gap:7px}
  .i11-heat-row>div{min-width:0;max-width:100%;grid-template-columns:repeat(30,minmax(2px,1fr))!important}
  .i11-surah-heatmap{grid-template-columns:minmax(0,1fr)!important}
  .i11-surah-map{max-width:100%;overflow:auto}
  .i11-surah-map-row{grid-template-columns:30px minmax(0,1fr)}

  /* Analyses historiques / laboratoire d'apparitions. */
  .word-gap-options,.word-gap-pickers,.letter-controls,.catalog-toolbar,
  .appearance-quick-add,.appearance-options,.appearance-study-toolbar,
  .advanced-occurrence-filters{grid-template-columns:minmax(0,1fr)!important}
  .word-gap-options>*,.word-gap-pickers>*,.letter-controls>*,.catalog-toolbar>*,
  .appearance-quick-add>*,.appearance-options>*,.appearance-study-toolbar>*,
  .advanced-occurrence-filters>*{min-width:0!important;max-width:100%;grid-column:auto!important}
  .word-gap-ref-row{grid-template-columns:minmax(0,1fr)!important}
  .appearance-term-cards{grid-template-columns:minmax(0,1fr)!important}
  .appearance-summary-metrics,.word-gap-metrics,.letter-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .appearance-math-grid{grid-template-columns:minmax(0,1fr)!important}
  .appearance-mini-bar{grid-template-columns:56px minmax(0,1fr) 54px!important;gap:6px}

  /* Boutons de formulaire longs (cas de la capture). */
  .primary-button,.secondary-button{white-space:normal;line-height:1.2}

  /* Recherche / filtres : aucun select ne dépasse à cause de son libellé. */
  .filters-row,.search-control-group,.search-utility-row,.analytics-controls,
  .verse-similarity-controls{min-width:0;max-width:100%}
  .filters-row>*,.search-control-group>*,.search-utility-row>*,.analytics-controls>*,
  .verse-similarity-controls>*{min-width:0;max-width:100%}

  /* Cartes résultats et arabe. */
  .verse-card,.result-card,.term-profile,.occurrence-navigator{max-width:100%;min-width:0}
  .arabic-verse,.verse-arabic,.i11-verse-ar{overflow-wrap:normal;word-break:normal}

  /* Le bouton flottant ne masque plus un quart de la carte sur iPhone. */
  .scroll-to-top{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;padding:0!important;right:10px!important;bottom:84px!important;gap:0!important;justify-content:center!important;font-size:0!important;border-radius:50%!important}
  .scroll-to-top span{font-size:23px!important;margin:0!important}

  /* Dialogues plein écran utile, safe-area incluse. */
  .i11-word-dialog,.v7-lexicon-dialog{width:100vw!important;max-width:100vw!important;height:100dvh;max-height:100dvh!important;margin:0;border-radius:0!important}
}

@media (max-width:560px){
  /* À la largeur d'un petit iPhone, privilégier une colonne réellement lisible. */
  .i11-actions{grid-template-columns:minmax(0,1fr)!important}
  .i11-term-row{grid-template-columns:minmax(0,1fr)!important;padding:10px!important}
  .i11-term-label{justify-self:start!important}
  .i11-term-row label:first-of-type,.i11-term-row [data-remove]{grid-column:auto!important}
  .i11-term-row [data-remove]{justify-self:stretch;width:100%}
  .i11-word-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .appearance-summary-metrics,.word-gap-metrics,.letter-metrics{grid-template-columns:minmax(0,1fr)!important}
  .analysis-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .i11-shell .analysis-metrics article{min-width:0!important}
  .catalog-actions,.appearance-study-actions{display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px}
  .catalog-actions>*,.appearance-study-actions>*{width:100%;min-width:0}
}

@media (max-width:390px){
  .i11-card{padding:12px 10px}
  .i11-word-grid{grid-template-columns:minmax(0,1fr)!important}
  .analysis-metrics{grid-template-columns:minmax(0,1fr)!important}
  .i11-dl{grid-template-columns:minmax(0,1fr)}
  .i11-dl dt{margin-top:4px}
  .i11-dl dd{padding-bottom:4px}
}

/* Paysage mobile : conserver la barre basse et exploiter l'espace horizontal. */
@media (max-height:520px) and (orientation:landscape){
  .scroll-to-top{bottom:68px!important}
  .i11-word-dialog,.v7-lexicon-dialog{height:100dvh;max-height:100dvh!important}
  .i11-tabs,.analytics-tabs{position:relative;top:auto}
}

/* Compléments audit : Research Lab / Studio / Travail. */
@media (max-width:760px){
  .i11-summary,.v90-result-summary{white-space:normal!important;max-width:100%}
  #v90ResearchLab{max-width:100%;min-width:0;overflow:hidden}
  .v90-lab-head{display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px!important}
  .v90-lab-scope,.v90-form-grid,.v90-weight-grid,.v90-two-col,.v90-group-compare,
  .v90-entity-grid,.v90-analysis-columns,.v90-distance-grid{grid-template-columns:minmax(0,1fr)!important}
  .v90-lab-scope>*{min-width:0;max-width:100%;grid-column:auto!important}
  .v90-lab-scope button{width:100%}
  .v90-query-rules{grid-template-columns:minmax(0,1fr)!important}
  .v90-query-term{max-width:100%;min-width:0}
  .v90-query-term label{min-width:0!important}
  .v90-query-term :where(input,select){width:100%;min-width:0}
  .v90-query-toolbar{max-width:100%;min-width:0;gap:8px}
  .v90-query-toolbar>*{min-width:0;white-space:normal}
  .v90-kwic{max-width:100%;overflow-x:auto}
  .v90-kwic button{min-width:520px}
  .v90-distribution button{grid-template-columns:minmax(0,1fr)!important}
  .v90-saved article{grid-template-columns:minmax(0,1fr)!important;align-items:stretch}
  .v90-saved article button{width:100%}
  .v90-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v90-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v90-set-analysis>header{display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px}
  .v90-set-analysis>header>div{min-width:0;max-width:100%}
  .v90-matrix-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .v90-graph{max-width:100%;height:auto}

  .v7-study-drawer{max-width:100vw;overflow-x:hidden}
  .v7-study-item header{flex-wrap:wrap}
  .v7-selection-toolbar{align-items:stretch}
  .v7-selection-toolbar>*{min-width:0;max-width:100%}
  .v7-stat-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .v7-word-card{max-width:100%;min-width:0}
  .v7-word-card>*{min-width:0}
  .v7-note-head-actions,.v7-rich-toolbar{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media (max-width:480px){
  .v90-lab-scope{grid-template-columns:minmax(0,1fr)!important}
  .v90-query-toolbar{grid-template-columns:minmax(0,1fr)!important}
  .v90-query-toolbar>*{grid-column:auto!important;width:100%}
  .v90-pair-gap{grid-template-columns:minmax(0,1fr)!important}
  .v90-pair-gap>*{grid-column:auto!important}
  .v90-metric-grid,.v90-score-grid{grid-template-columns:minmax(0,1fr)!important}
  .v7-stat-summary{grid-template-columns:minmax(0,1fr)!important}
}

/* Navigation ultra-étroite : 6 entrées réellement contenues dans 320–360 px. */
@media (max-width:360px){
  .main-nav.app-local-nav{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    justify-content:stretch!important;
    overflow:hidden!important;
    padding-inline:2px!important;
  }
  .main-nav.app-local-nav .nav-button{
    width:auto!important;min-width:0!important;max-width:none!important;padding-inline:0!important;
  }
  .main-nav.app-local-nav .nav-label-mobile{font-size:8px!important;letter-spacing:-.035em!important}
}
