/* =====================================================================
   OBLIQUE 4.2.0 — expérience mobile, phase 1
   Navigation, dossiers, consultation des boards, articles publics,
   lecteur, validation et discussion. Aucune logique métier n'est dupliquée.
   ===================================================================== */

.mobile-bottom-nav { display: none; }

@media (max-width: 760px) {
  :root {
    --mobile-topbar-height: 52px;
    --mobile-bottom-nav-height: 64px;
  }

  html, body { width: 100%; height: 100%; overflow: hidden; }
  body { overscroll-behavior: none; }
  #app { height: 100dvh; min-height: 100dvh; display: grid; grid-template-rows: var(--mobile-topbar-height) minmax(0,1fr); }

  /* Barre supérieure : identité + chemin courant, sans outils de bureau. */
  .topbar {
    position: relative !important;
    z-index: 210 !important;
    min-height: var(--mobile-topbar-height) !important;
    height: var(--mobile-topbar-height) !important;
    grid-template-columns: 38px minmax(0,1fr) auto !important;
    gap: 8px !important;
    padding: 6px 10px !important;
  }
  .topbar-tree-toggle,
  .oblique-leading-slash,
  .brand-path-slash,
  .path-history-actions,
  .parent-board-button,
  .public-library-button,
  .chat-button,
  .top-actions { display: none !important; }
  .account-button { grid-column: 1 !important; width: 38px !important; height: 38px !important; }
  .oblique-wordmark { display: none !important; }
  .path-navigation {
    grid-column: 2 !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  #board-breadcrumb { display: none !important; }
  #board-title {
    width: 100% !important;
    min-width: 0 !important;
    pointer-events: none !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    text-overflow: ellipsis;
  }
  .oblique-version-badge { grid-column: 3 !important; font-size: 7px !important; white-space: nowrap; }

  /* Navigation principale tactile. */
  .mobile-bottom-nav {
    position: fixed;
    z-index: 260;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(var(--mobile-bottom-nav-height) + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    padding: 0 4px env(safe-area-inset-bottom);
    border-top: 1px solid rgba(17,17,17,.18);
    background: rgba(255,255,255,.97);
    box-shadow: 0 -8px 24px rgba(17,17,17,.08);
  }
  .mobile-bottom-nav button {
    position: relative;
    min-width: 0;
    min-height: 56px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 3px;
    border: 0;
    background: transparent;
    color: #716b63;
    font-family: var(--condensed-font,Arial,sans-serif);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .mobile-bottom-nav button > span { font-size: 19px; line-height: 1; }
  .mobile-bottom-nav button > b { font-size: 7px; letter-spacing: .12em; }
  .mobile-bottom-nav button.active { color: #111; }
  .mobile-bottom-nav button.active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24%;
    right: 24%;
    height: 3px;
    background: var(--accent);
  }
  .mobile-chat-unread {
    position: absolute;
    top: 7px;
    left: calc(50% + 8px);
    min-width: 16px;
    height: 16px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    font: 800 8px var(--ui-font,Arial,sans-serif);
    font-style: normal;
  }
  .mobile-chat-unread.hidden { display: none; }

  .app-body {
    min-height: 0 !important;
    display: block !important;
    overflow: hidden !important;
    padding-bottom: var(--mobile-bottom-nav-height);
  }

  /* Écran Accueil : l'arborescence devient la page principale. */
  .tree-panel {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    border-right: 0 !important;
    box-shadow: none !important;
    background: #fbfaf6 !important;
  }
  #app.tree-collapsed .tree-panel {
    width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .tree-panel-head { min-height: 62px; padding: 13px 14px 10px !important; }
  .tree-panel-title strong { font-size: 11px !important; }
  .tree-panel-title span { font-size: 8px !important; }
  .tree-new-board { min-width: 44px !important; min-height: 44px !important; }
  .tree-search { margin: 0 12px 10px !important; min-height: 42px !important; }
  .element-tree { padding: 4px 8px 90px !important; overflow: auto !important; }
  .tree-row { min-height: 46px !important; border-radius: 8px; }
  .tree-row-menu { min-width: 40px !important; min-height: 40px !important; }
  .tree-panel-footer { display: none !important; }

  body[data-mobile-screen="home"] .tree-panel { display: flex !important; }
  body[data-mobile-screen="home"] .workspace { display: none !important; }
  body:not([data-mobile-screen="home"]) .tree-panel { display: none !important; }

  /* Écran dossier : le canevas libre est rendu comme une liste verticale.
     Les coordonnées x/y et tailles restent intactes dans les données desktop. */
  .workspace { min-height: 0 !important; height: 100% !important; background: #f3f0e9 !important; }
  .canvas-shell,
  .canvas-shell.article-pane-open {
    display: block !important;
    position: relative !important;
    height: 100% !important;
    min-height: 0 !important;
  }
  .tool-rail,
  .connections,
  .marquee,
  .inline-drawing-canvas,
  .inline-drawing-toolbar,
  .selection-toolbar,
  .zoom-controls,
  .folder-drop-hint,
  .connect-hint { display: none !important; }
  .viewport {
    position: relative !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 14px 12px 96px !important;
    border: 0 !important;
    background: #f3f0e9 !important;
    cursor: default !important;
    touch-action: pan-y !important;
  }
  .world {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .board-item {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 84px !important;
    max-height: 220px !important;
    flex: 0 0 auto !important;
    overflow: hidden !important;
    border-radius: 11px !important;
    box-shadow: 0 4px 14px rgba(17,17,17,.07) !important;
    cursor: pointer !important;
    touch-action: pan-y !important;
  }
  .board-item.selected { outline: 1px solid var(--accent) !important; outline-offset: 1px !important; }
  .connect-handle, .resize-handle, .item-edge-resize, .canvas-folder-config { display: none !important; }
  .board-item input.item-title,
  .board-item .canvas-folder-title { pointer-events: none !important; user-select: none !important; }
  .item-header { cursor: pointer !important; min-height: 42px !important; height: auto !important; padding: 9px 11px !important; }
  .item-title { font-size: 15px !important; }
  .article-item { min-height: 130px !important; }
  .article-card-body { min-height: 0 !important; height: auto !important; }
  .article-card-featured { max-height: 116px !important; overflow: hidden !important; }
  .article-card-featured img { width: 100% !important; height: 116px !important; object-fit: cover !important; }
  .article-card-excerpt {
    max-height: 5.4em !important;
    overflow: hidden !important;
    line-height: 1.35 !important;
    -webkit-mask-image: linear-gradient(#000 72%,transparent);
    mask-image: linear-gradient(#000 72%,transparent);
  }
  .article-card-meta, .article-card-keywords { font-size: 8px !important; }
  .note-body, .list-body, .column-body { height: auto !important; max-height: 160px !important; overflow: hidden !important; }
  .canvas-folder-card { min-height: 112px !important; }
  .canvas-folder-icon { transform: scale(.72); transform-origin: center; }

  /* L'article privé devient un écran plein téléphone. L'édition avancée sera
     traitée en phase 2, mais la lecture et les contrôles existants restent accessibles. */
  .article-pane {
    position: fixed !important;
    z-index: 245 !important;
    inset: var(--mobile-topbar-height) 0 var(--mobile-bottom-nav-height) 0 !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    resize: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .article-pane-resizer, .article-pane-window-button { display: none !important; }
  .article-pane-header {
    min-height: 48px !important;
    grid-template-columns: minmax(0,1fr) 46px !important;
    cursor: default !important;
    padding-left: 12px !important;
  }
  .article-pane-mark, .article-pane-section { display: none !important; }
  .article-pane-title { font-size: 13px !important; padding-left: 0 !important; }
  .article-pane-close { width: 46px !important; height: 46px !important; font-size: 26px !important; }
  .article-pane-content { overflow: auto !important; }
  .article-pane-content > .article-body { height: auto !important; min-height: 100% !important; }
  .article-pane-content .article-editor { padding: 24px 18px 70px !important; font-size: 16px !important; line-height: 1.65 !important; }
  .article-pane-content .article-layout { display: block !important; }
  .article-pane-content .article-comments { display: none !important; }

  /* Bibliothèque publique : cartes sur une colonne. */
  .public-library {
    z-index: 230 !important;
    inset: var(--mobile-topbar-height) 0 var(--mobile-bottom-nav-height) !important;
    grid-template-rows: auto minmax(0,1fr) !important;
  }
  .public-library-header {
    min-height: 104px !important;
    grid-template-columns: minmax(0,1fr) 42px !important;
    gap: 8px !important;
    padding: 11px 12px 10px !important;
  }
  .public-library-heading h1 { font-size: 22px !important; }
  .public-library-search {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    min-height: 42px !important;
  }
  .public-library-close { min-width: 42px !important; min-height: 42px !important; }
  .public-library-layout { display: block !important; overflow: hidden !important; }
  .public-library-nav, .public-library-filters, .public-library-font-scale { display: none !important; }
  .public-library-results-shell { height: 100% !important; min-height: 0 !important; }
  .public-library-list {
    height: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 12px 12px 30px !important;
  }
  .public-article-card {
    grid-template-rows: 122px auto !important;
    border-radius: 10px !important;
  }
  .public-article-card > img { height: 122px !important; }
  .public-article-placeholder { min-height: 122px !important; }
  .public-article-card-copy { padding: 13px 14px !important; }
  .public-article-card-copy h2 { font-size: 19px !important; }
  .public-article-card-copy p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }

  /* Lecteur public : plein écran, texte prioritaire et commandes tactiles. */
  .public-reader-dialog {
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    inset: 0 !important;
    border-radius: 0 !important;
  }
  .public-reader-dialog::backdrop { background: #fff !important; }
  .public-reader-header {
    min-height: 74px !important;
    padding: 12px 12px 10px !important;
    border-top-width: 4px !important;
  }
  .public-reader-header h2 { margin: 3px 0 !important; font-size: 24px !important; line-height: 1.06 !important; }
  .public-reader-header .dialog-close { min-width: 44px !important; min-height: 44px !important; }
  .public-reader-toolbar {
    min-height: 44px !important;
    padding: 5px 8px !important;
    gap: 5px !important;
    -webkit-overflow-scrolling: touch;
  }
  .public-review-tool, .public-review-select { min-height: 34px !important; }
  .public-reader-layout { position: relative !important; display: block !important; overflow: hidden !important; }
  .public-annotation-rail { display: none !important; }
  .public-reader-main { height: 100% !important; overflow: auto !important; -webkit-overflow-scrolling: touch; }
  .public-reader-chapo { padding: 15px 18px !important; font-size: 16px !important; }
  .public-reader-body { padding: 24px 18px 80px !important; font-size: 17px !important; line-height: 1.68 !important; text-align: left !important; }
  .public-reader-comments {
    display: none !important;
    position: absolute !important;
    z-index: 20 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: min(48dvh, 430px) !important;
    border: 0 !important;
    border-top: 1px solid rgba(17,17,17,.18) !important;
    box-shadow: 0 -14px 38px rgba(17,17,17,.14) !important;
    background: #f6f3ed !important;
  }
  .public-reader-layout.comments-open .public-reader-comments { display: block !important; }
  .public-reader-status,
  .article-validation-public {
    min-height: 46px !important;
    padding: 8px 10px !important;
    gap: 6px !important;
  }
  .article-validation-action { min-height: 38px !important; margin-left: auto !important; }

  /* Discussion plein écran entre les deux barres de navigation. */
  .chat-drawer {
    z-index: 235 !important;
    inset: var(--mobile-topbar-height) 0 var(--mobile-bottom-nav-height) 0 !important;
    width: 100% !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .chat-drawer-header { min-height: 60px !important; }
  .chat-drawer-header button { min-width: 44px !important; min-height: 44px !important; }
  .chat-recipient-row { grid-template-columns: auto minmax(0,1fr) auto !important; }
  .chat-form textarea { font-size: 16px !important; }
  .chat-form button { min-width: 76px !important; }

  /* Dialogues : largeur sûre et contrôles tactiles. */
  dialog:not(.public-reader-dialog) { max-width: calc(100vw - 18px) !important; }
  .account-dialog { width: calc(100vw - 18px) !important; max-height: calc(100dvh - 28px) !important; }
  .account-dialog form { max-height: calc(100dvh - 28px) !important; overflow: auto !important; }
  .dialog-input, dialog button, dialog select { min-height: 42px; }
  .account-list-row { grid-template-columns: auto minmax(0,1fr) auto !important; }

  /* Le lecteur modal doit rester totalement prioritaire sur la nav mobile. */
  body:has(.public-reader-dialog[open]) .mobile-bottom-nav,
  body[data-mobile-screen="article"] .mobile-bottom-nav { display: none !important; }
  body[data-mobile-screen="article"] .article-pane { bottom: 0 !important; }

  /* Un compte lecteur reste naturellement centré sur l'espace public. */
  body[data-account-role="reader"] .mobile-bottom-nav button[data-mobile-route="home"] { display: none !important; }
  body[data-account-role="reader"] .mobile-bottom-nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* =====================================================================
   OBLIQUE 4.2.1 — mobile rapide : bibliothèque légère + lecteur prioritaire
   ===================================================================== */
@media (max-width: 760px) {
  /* Le loader WordPress ne masque jamais la bibliothèque mobile. */
  .public-library-loader,
  .public-library.is-loading .public-library-loader { display: none !important; }
  .public-library.is-loading .public-library-results-shell { opacity: 1 !important; pointer-events: auto !important; }

  .public-library {
    inset: var(--mobile-topbar-height) 0 var(--mobile-bottom-nav-height) 0 !important;
  }
  .public-library-header {
    min-height: 78px !important;
    height: auto !important;
    grid-template-columns: minmax(0,1fr) 44px !important;
    padding: 8px 10px !important;
  }
  .public-library-heading h1 { font-size: 20px !important; line-height: 1 !important; }
  .public-library-search { min-height: 38px !important; height: 38px !important; }
  .mobile-public-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    overflow-y: auto !important;
    padding: 10px 10px 22px !important;
    contain: content;
  }
  .mobile-public-card {
    display: grid !important;
    grid-template-columns: 104px minmax(0,1fr) !important;
    grid-template-rows: auto !important;
    min-height: 116px !important;
    height: auto !important;
    background: #fff !important;
    border: 1px solid rgba(17,17,17,.14) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: none !important;
    content-visibility: auto;
    contain-intrinsic-size: 116px;
  }
  .mobile-public-card-media {
    width: 104px !important;
    min-height: 116px !important;
    background: #e9e5dc !important;
    overflow: hidden !important;
  }
  .mobile-public-card-media:empty { display: none !important; }
  .mobile-public-card-media:empty + .mobile-public-card-copy { grid-column: 1 / -1 !important; }
  .mobile-public-card-media img { width: 100% !important; height: 100% !important; min-height: 116px !important; object-fit: cover !important; display: block !important; }
  .mobile-public-card-copy { padding: 10px 11px !important; min-width: 0 !important; }
  .mobile-public-card-copy > span { display: block; color: var(--accent); font: 800 7px/1.1 var(--ui-font,Arial,sans-serif); text-transform: uppercase; letter-spacing: .12em; }
  .mobile-public-card-copy h2 { margin: 5px 0 4px !important; font-size: 17px !important; line-height: 1.02 !important; }
  .mobile-public-card-copy small { display: block; font-size: 9px !important; text-decoration: underline; }
  .mobile-public-card-copy p { margin: 7px 0 0 !important; font-size: 11px !important; line-height: 1.35 !important; -webkit-line-clamp: 2 !important; }
  .mobile-public-empty { padding: 30px 16px; text-align: center; }


  /* 4.2.3 — neutralisation explicite des anciennes règles desktop de cartes.
     Ces sélecteurs sont volontairement plus spécifiques que les couches 3.x. */
  #public-library-list.mobile-public-list.public-library-card-mode,
  #public-library-list.mobile-public-list {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    align-content: stretch !important;
    gap: 10px !important;
    width: 100% !important;
  }
  #public-library-list.mobile-public-list .mobile-public-card,
  .public-library-card-mode .mobile-public-card {
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr) !important;
    flex-direction: initial !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 116px !important;
    max-height: none !important;
    zoom: 1 !important;
  }
  #public-library-list.mobile-public-list .mobile-public-card-copy,
  .public-library-card-mode .mobile-public-card .mobile-public-card-copy {
    display: flex !important;
    flex-direction: column !important;
    grid-column: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    overflow: hidden !important;
    padding: 10px 11px !important;
    color: #111 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  #public-library-list.mobile-public-list .mobile-public-card-copy h2,
  #public-library-list.mobile-public-list .mobile-public-card-copy small,
  #public-library-list.mobile-public-list .mobile-public-card-copy p,
  #public-library-list.mobile-public-list .mobile-public-card-copy > span {
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Le dialogue devient une vraie page de lecture. */
  .public-reader-dialog {
    display: none;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  .public-reader-dialog[open] {
    display: grid !important;
    grid-template-rows: auto minmax(0,1fr) auto !important;
  }
  .public-review-shell {
    display: contents !important;
  }
  .public-reader-header {
    min-height: 0 !important;
    padding: 8px 10px 7px !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 42px !important;
    gap: 8px !important;
    align-items: start !important;
  }
  .public-reader-heading { min-width: 0 !important; }
  .public-reader-header h2 {
    margin: 2px 0 4px !important;
    font-size: clamp(20px,6.4vw,27px) !important;
    line-height: .98 !important;
    max-height: none !important;
  }
  #public-reader-section { font-size: 7px !important; }
  #public-reader-author { font-size: 9px !important; padding: 0 !important; min-height: 24px !important; }
  .public-reader-header .dialog-close {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
  .public-reader-toolbar { display: none !important; }

  .public-reader-layout {
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    overflow: hidden !important;
  }
  .public-reader-main {
    height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 72px !important;
  }
  .public-reader-chapo {
    padding: 13px 15px !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
  }
  .public-reader-stage { padding: 0 !important; min-height: 0 !important; }
  .public-reader-stage.has-line-gutter { padding-left: 0 !important; }
  .article-line-gutter,
  .public-reader-ink-layer,
  .public-annotation-rail { display: none !important; }
  .public-reader-body {
    padding: 18px 15px 96px !important;
    font-size: 17px !important;
    line-height: 1.62 !important;
    text-align: left !important;
    min-height: 0 !important;
    contain: layout style;
  }
  .public-reader-body img { max-width: 100% !important; height: auto !important; }

  .public-reader-comments {
    display: none !important;
    position: fixed !important;
    z-index: 1002 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: min(54dvh, 480px) !important;
    max-height: calc(100dvh - 72px) !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #f6f3ed !important;
    border-top: 1px solid #111 !important;
    box-shadow: 0 -12px 32px rgba(0,0,0,.18) !important;
  }
  .public-reader-layout.comments-open .public-reader-comments { display: grid !important; grid-template-rows: 48px minmax(0,1fr); }
  .mobile-comments-sheet-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 12px;
    background: #111;
    color: #fff;
  }
  .mobile-comments-sheet-header strong { font: 800 9px var(--ui-font,Arial,sans-serif); letter-spacing: .1em; }
  .mobile-comments-sheet-header button { width: 44px; height: 44px; min-height: 44px; border: 0; background: transparent; color: #fff; font-size: 25px; }
  .mobile-comments-sheet-list { min-height: 0; overflow-y: auto; padding: 10px 12px 24px; }

  .article-validation-public,
  .public-reader-status,
  .public-ready-for-publication {
    position: static !important;
    min-height: 0 !important;
    padding: 5px 10px !important;
    font-size: 8px !important;
  }
  .article-validation-public {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    border-top: 1px solid rgba(17,17,17,.12) !important;
  }
  .article-validation-public .article-validation-action { display: none !important; }
  .public-reader-status { display: none !important; }

  .mobile-review-actions {
    position: fixed !important;
    z-index: 1001 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: env(safe-area-inset-bottom) !important;
    height: 58px !important;
    display: grid !important;
    grid-template-columns: repeat(3,1fr) !important;
    background: rgba(255,255,255,.98) !important;
    border-top: 1px solid rgba(17,17,17,.2) !important;
  }
  .mobile-review-actions button {
    border: 0 !important;
    border-right: 1px solid rgba(17,17,17,.12) !important;
    background: transparent !important;
    color: #111 !important;
    font: 800 8px var(--ui-font,Arial,sans-serif) !important;
    letter-spacing: .08em !important;
    min-height: 58px !important;
  }
  .mobile-review-actions button:last-child { border-right: 0 !important; }

  .mobile-selection-actions {
    position: fixed;
    z-index: 1010;
    left: 50%;
    bottom: calc(70px + env(safe-area-inset-bottom));
    transform: translateX(-50%);
    display: flex;
    gap: 1px;
    padding: 2px;
    background: #111;
    border-radius: 6px;
    box-shadow: 0 6px 18px rgba(0,0,0,.2);
  }
  .mobile-selection-actions.hidden { display: none !important; }
  .mobile-selection-actions button { min-height: 38px; padding: 0 12px; border: 0; background: #111; color: #fff; font: 800 8px var(--ui-font,Arial,sans-serif); }

  body.mobile-comments-open .mobile-review-actions { display: none !important; }

  /* 4.2.4 — cartes mobiles totalement isolées des layouts desktop. */
  #public-library-list.mobile-public-list {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card {
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr) !important;
    grid-template-rows: minmax(116px, auto) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 116px !important;
    height: auto !important;
    zoom: 1 !important;
    overflow: hidden !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-media {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 104px !important;
    min-width: 104px !important;
    height: 100% !important;
    min-height: 116px !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-body {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 10px 12px !important;
    overflow: hidden !important;
    color: #111 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-media:empty {
    display: none !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-media:empty + .mobile-public-card-body {
    grid-column: 1 / -1 !important;
  }
  .mobile-public-card-body > span {
    display: block !important;
    color: var(--accent) !important;
    font: 800 7px/1.1 var(--ui-font,Arial,sans-serif) !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
  }
  .mobile-public-card-body > h2 {
    display: block !important;
    margin: 5px 0 4px !important;
    font-family: var(--editorial-font) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
  }
  .mobile-public-card-body > small {
    display: block !important;
    margin-top: 1px !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
    text-decoration: underline !important;
  }
  .mobile-public-card-body > p {
    display: -webkit-box !important;
    margin: 7px 0 0 !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    white-space: normal !important;
  }

}

/* 4.2.7 — contrôles mobiles éditoriaux */
@media (max-width: 760px) {
  .public-reader-dialog.mobile-no-maximize .public-reader-maximize,
  .mobile-no-maximize .public-reader-maximize { display: none !important; }

  .mobile-public-status-tabs {
    display: flex !important;
    gap: 6px !important;
    overflow-x: auto !important;
    padding: 8px 10px 10px !important;
    border-bottom: 1px solid rgba(17,17,17,.14) !important;
    scrollbar-width: none;
  }
  .mobile-public-status-tabs::-webkit-scrollbar { display:none; }
  .mobile-public-status-tabs button {
    flex: 0 0 auto !important;
    min-height: 36px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(17,17,17,.22) !important;
    border-radius: 18px !important;
    background: #fff !important;
    color: #111 !important;
    font: 800 7px/1 var(--ui-font,Arial,sans-serif) !important;
    letter-spacing: .07em !important;
    white-space: nowrap !important;
  }
  .mobile-public-status-tabs button.active { background:#111 !important; color:#fff !important; }
  .mobile-public-status-tabs button b { margin-left:4px; font-size:8px; }

  #public-library-list.mobile-public-list > .mobile-public-card {
    grid-template-columns: 104px minmax(0,1fr) 24px !important;
    position: relative !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-body {
    grid-column: 2 !important;
    padding-right: 8px !important;
  }
  #public-library-list.mobile-public-list > .mobile-public-card > .mobile-public-card-media:empty + .mobile-public-card-body {
    grid-column: 1 / 3 !important;
  }
  .mobile-validation-rail {
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: center !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: 16px !important;
    z-index: 2 !important;
  }
  .mobile-validation-rail i {
    display: grid !important;
    place-items: center !important;
    width: 13px !important;
    height: 13px !important;
    border: 1px solid #111 !important;
    background: #fff !important;
    color: #111 !important;
    font: 900 10px/1 Arial,sans-serif !important;
    font-style: normal !important;
  }
  .mobile-validation-rail i.is-checked { background:#fff !important; }
  .mobile-validation-rail.is-complete i { background:#83b989 !important; border-color:#47764d !important; color:#111 !important; }

  .mobile-review-actions {
    grid-template-columns: repeat(4,1fr) !important;
  }
  .article-validation-public .article-validation-remove {
    display: inline-flex !important;
    margin-left: auto !important;
    min-height: 34px !important;
    padding: 0 8px !important;
    font-size: 7px !important;
  }
}


/* OBLIQUE 4.3.0 E26 — MOBILE ERGONOMIQUE */
@media (max-width: 760px) {
  body[data-mobile-screen="public"] #app { grid-template-rows: 0 minmax(0,1fr) !important; }
  body[data-mobile-screen="public"] .topbar { display:none !important; }
  body[data-mobile-screen="public"] .public-library { inset:0 0 var(--mobile-bottom-nav-height) !important; }

  .public-library-header {
    min-height:0 !important; height:auto !important; display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    grid-template-rows:54px auto auto auto !important; gap:0 !important; padding:0 !important;
    background:#fbfaf6 !important; border-bottom:1px solid rgba(17,17,17,.14) !important;
  }
  .public-library-heading,.public-library-close,#public-library-status-tabs,.public-library-wordpress-status-tabs { display:none !important; }
  .e26-mobile-brand,.e26-mobile-public-meta { grid-row:1 !important; display:flex !important; align-items:center !important; min-width:0 !important; padding:0 10px !important; }
  .e26-mobile-brand { grid-column:1 !important; gap:6px !important; }
  .e26-mobile-brand>span { font:italic 700 25px/1 var(--editorial-font) !important; letter-spacing:-.04em !important; }
  .e26-mobile-brand>i { color:var(--accent) !important; font:500 28px/1 var(--editorial-font) !important; }
  .e26-mobile-account { width:30px !important; height:30px !important; padding:0 !important; border:0 !important; border-radius:50% !important; background:#111 !important; color:#fff !important; font:800 9px/1 var(--ui-font,Arial,sans-serif) !important; }
  .e26-mobile-public-meta { grid-column:2 !important; justify-content:flex-end !important; gap:8px !important; }
  .e26-mobile-public-meta>strong { font:800 8px/1.1 var(--ui-font,Arial,sans-serif) !important; letter-spacing:.06em !important; white-space:nowrap !important; }
  .e26-mobile-filter-toggle { min-height:30px !important; padding:0 9px !important; border:1px solid rgba(17,17,17,.24) !important; border-radius:16px !important; background:transparent !important; font:800 7px/1 var(--ui-font,Arial,sans-serif) !important; }

  .mobile-public-status-tabs { grid-column:1/-1 !important; grid-row:2 !important; display:flex !important; gap:5px !important; overflow-x:auto !important; padding:7px 9px !important; border-top:1px solid rgba(17,17,17,.08) !important; border-bottom:0 !important; }
  .mobile-public-status-tabs button { min-height:32px !important; padding:0 9px !important; }
  .public-library-search { display:none !important; grid-column:1/-1 !important; grid-row:3 !important; height:38px !important; min-height:38px !important; margin:4px 9px 6px !important; }
  .e26-mobile-wp-tabs { display:none !important; grid-column:1/-1 !important; grid-row:4 !important; gap:5px !important; overflow-x:auto !important; padding:0 9px 7px !important; }
  .e26-mobile-wp-tabs button { flex:0 0 auto !important; min-height:30px !important; padding:0 8px !important; border:1px solid rgba(17,17,17,.18) !important; border-radius:15px !important; background:#fff !important; font:800 7px/1 var(--ui-font,Arial,sans-serif) !important; }
  .e26-mobile-wp-tabs button.active { background:#111 !important; color:#fff !important; }
  .public-library.e26-filters-open .public-library-search,.public-library.e26-filters-open .e26-mobile-wp-tabs { display:flex !important; }

  #public-library-list.mobile-public-list>.mobile-public-card { grid-template-columns:102px minmax(0,1fr) 26px !important; min-height:108px !important; }
  #public-library-list.mobile-public-list>.mobile-public-card>.mobile-public-card-media { width:102px !important; min-width:102px !important; min-height:108px !important; }
  .mobile-public-card-body>h2 { font-size:16px !important; line-height:1.02 !important; }

  .public-reader-dialog.e26-mobile-review { z-index:900 !important; }
  .e26-mobile-review .public-reader-header { min-height:0 !important; padding:9px 12px 8px !important; grid-template-columns:minmax(0,1fr) 38px 38px !important; gap:3px !important; border-top:3px solid var(--accent) !important; }
  .e26-mobile-review .public-reader-header h2 { margin:3px 0 4px !important; font-size:clamp(21px,6vw,27px) !important; line-height:.98 !important; letter-spacing:-.025em !important; }
  .e26-mobile-review #public-reader-section { font-size:8px !important; letter-spacing:.12em !important; }
  .e26-mobile-review #public-reader-author { font-size:11px !important; }
  .e26-mobile-review .public-reader-maximize,.e26-mobile-review .mobile-validation-rail { display:none !important; }
  .e26-reader-fullscreen,.e26-mobile-review .public-reader-header .dialog-close { width:38px !important; min-width:38px !important; height:38px !important; min-height:38px !important; padding:0 !important; border:0 !important; background:transparent !important; color:#111 !important; font:500 24px/1 Arial,sans-serif !important; }
  .e26-mobile-review .public-reader-toolbar { display:none !important; }

  .e26-reader-chapo { position:relative !important; display:block !important; max-height:5.2em !important; overflow:hidden !important; padding:28px 16px 3px !important; margin:0 !important; background:#fbfaf6 !important; color:#49443e !important; font-size:15px !important; line-height:1.45 !important; cursor:pointer !important; }
  .e26-reader-chapo::before { content:"CHAPÔ"; position:absolute; top:8px; left:16px; color:#111; font:800 8px/1 var(--ui-font,Arial,sans-serif); letter-spacing:.15em; }
  .e26-reader-chapo:not(.is-expanded)::after { content:""; position:absolute; left:0; right:0; bottom:0; height:28px; background:linear-gradient(to bottom,rgba(251,250,246,0),#fbfaf6 88%); pointer-events:none; }
  .e26-reader-chapo.is-expanded { max-height:none !important; }
  .e26-chapo-toggle { display:block !important; width:100% !important; min-height:32px !important; padding:0 16px 8px !important; border:0 !important; border-bottom:1px solid rgba(17,17,17,.13) !important; background:#fbfaf6 !important; color:var(--accent) !important; text-align:left !important; text-decoration:underline !important; font:700 11px/1 var(--editorial-font) !important; }

  .e26-mobile-review .article-validation-public { position:fixed !important; z-index:1002 !important; left:0 !important; right:0 !important; bottom:calc(58px + env(safe-area-inset-bottom)) !important; min-height:44px !important; display:flex !important; align-items:center !important; gap:7px !important; padding:6px 10px !important; border-top:1px solid rgba(17,17,17,.15) !important; background:rgba(251,250,246,.98) !important; box-shadow:0 -5px 14px rgba(17,17,17,.05) !important; }
  .e26-mobile-review .article-validation-public>strong { font:800 8px/1.15 var(--ui-font,Arial,sans-serif) !important; letter-spacing:.08em !important; white-space:nowrap !important; }
  .e26-mobile-review .article-validation-names { display:flex !important; gap:4px !important; min-width:0 !important; overflow-x:auto !important; }
  .e26-mobile-review .article-validation-names span { flex:0 0 auto !important; padding:4px 7px !important; border-radius:12px !important; background:#111 !important; color:#fff !important; font-size:7px !important; }
  .e26-mobile-review .public-reader-main { padding-bottom:112px !important; }
  .e26-mobile-review .mobile-review-actions { z-index:1003 !important; }

  body[data-mobile-screen="chat"] .chat-drawer { z-index:1300 !important; }

  .public-reader-dialog.e26-reading-mode .public-reader-header { min-height:0 !important; height:0 !important; padding:0 !important; border:0 !important; overflow:visible !important; }
  .public-reader-dialog.e26-reading-mode .public-reader-heading,
  .public-reader-dialog.e26-reading-mode .public-reader-header .dialog-close,
  .public-reader-dialog.e26-reading-mode .article-validation-public,
  .public-reader-dialog.e26-reading-mode .mobile-review-actions,
  .public-reader-dialog.e26-reading-mode .mobile-selection-actions { display:none !important; }
  .public-reader-dialog.e26-reading-mode .e26-reader-fullscreen { display:grid !important; place-items:center !important; position:fixed !important; z-index:1500 !important; top:calc(8px + env(safe-area-inset-top)) !important; right:8px !important; width:40px !important; height:40px !important; border-radius:20px !important; background:rgba(251,250,246,.88) !important; box-shadow:0 3px 12px rgba(17,17,17,.12) !important; }
  .public-reader-dialog.e26-reading-mode .public-reader-main { padding-bottom:env(safe-area-inset-bottom) !important; }
  body.e26-reading-mode .mobile-bottom-nav { display:none !important; }
}
