/* TSUBOMI App Shell V18 — dernière couche visuelle publique. */
:root{--tsb-app-edge:clamp(10px,2.2vw,18px)}
html,body{inline-size:100%;max-inline-size:100%;overflow-x:hidden}
.site-header{z-index:1000}
.header-inner{min-width:0}
.main-nav{min-width:0}
.main-nav a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* Grand écran : les rubriques sont visibles directement. Le bouton Menu disparaît. */
@media (min-width:1240px){
  html .mobile-toggle{display:none!important}
  html .header-inner{display:flex!important;align-items:center!important;gap:14px!important}
  html .brand{flex:0 0 auto!important;max-width:190px!important}
  html .main-nav,
  html.adaptive-menu .main-nav,
  html.adaptive-menu .main-nav:not(.open){
    display:flex!important;visibility:visible!important;pointer-events:auto!important;
    position:static!important;inset:auto!important;width:auto!important;height:auto!important;
    flex:1 1 auto!important;min-width:0!important;max-height:none!important;
    flex-direction:row!important;align-items:center!important;gap:4px!important;
    padding:0!important;margin:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;overflow:visible!important;
  }
  html .main-nav a{padding:9px 10px!important;font-size:clamp(.79rem,.78vw,.94rem)!important;white-space:nowrap!important}
  html .header-actions{flex:0 0 auto!important}
}

/* Écran intermédiaire et mobile : un seul panneau, stable et entièrement dans le viewport. */
@media (max-width:1239px){
  html.adaptive-menu .mobile-toggle,
  .mobile-toggle{display:inline-flex!important;align-items:center;justify-content:center}
}
@media (max-width:919px){
  .header-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,auto)!important}
  .main-nav,.main-nav.open{
    left:max(var(--tsb-app-edge),env(safe-area-inset-left))!important;
    right:max(var(--tsb-app-edge),env(safe-area-inset-right))!important;
    top:var(--tsb-simple-nav-top,74px)!important;
    width:auto!important;
    max-height:calc(var(--visual-vh,100vh) - var(--tsb-simple-nav-top,74px) - max(12px,env(safe-area-inset-bottom)))!important;
    border-radius:18px!important;
    transform:none!important;-webkit-transform:none!important;
  }
  .main-nav.open{overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch}
  body.tsb-menu-open{position:fixed!important;left:0!important;right:0!important;top:var(--tsb-menu-scroll,0px)!important;width:100%!important;overflow:hidden!important;overscroll-behavior:none!important}
  body.tsb-menu-open>main,body.tsb-menu-open>[data-site-footer]{touch-action:none}
}
@media (max-width:560px){
  .header-inner{width:calc(100% - 12px)!important;gap:6px!important}
  .brand{max-width:34vw!important}
  .mobile-toggle,.cortex-search-button{min-height:46px!important;padding:9px 11px!important}
  .cortex-search-button{max-width:38vw!important}
}
@media (max-width:390px){
  .brand{font-size:1rem!important;max-width:31vw!important}
  .brand-logo{width:26px!important;height:26px!important}
  .mobile-toggle,.cortex-search-button{font-size:.92rem!important;padding-inline:9px!important}
}

/* Installation et préférences : simples, tactiles, sans vocabulaire technique. */
.app-v18-settings{display:grid;gap:14px}
.app-v18-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.07)}
.app-v18-row:first-child{border-top:0}
.app-v18-row strong{display:block;margin-bottom:4px}.app-v18-row small{display:block;color:var(--muted);line-height:1.45}
.app-v18-toggle{appearance:none;-webkit-appearance:none;width:50px;height:30px;border-radius:999px;border:1px solid var(--line);background:#23232c;position:relative;cursor:pointer;flex:0 0 auto}
.app-v18-toggle:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .16s ease}
.app-v18-toggle:checked{background:var(--accent);border-color:transparent}.app-v18-toggle:checked:after{transform:translateX(20px)}
.app-v18-select{min-width:190px;max-width:100%;border:1px solid var(--line);background:#17171f;color:#fff;border-radius:12px;padding:10px 12px}
.app-platform-downloads{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
.app-platform-downloads .btn[hidden]{display:none!important}
.app-pulse{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.app-pulse>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.app-pulse strong{display:block;font-size:.82rem}.app-pulse span{font-size:.78rem;color:var(--muted)}
.app-safe-note{padding:12px 14px;border-radius:14px;background:rgba(61,220,151,.08);border:1px solid rgba(61,220,151,.18);color:#d9ffec}
@media(max-width:680px){.app-v18-row{grid-template-columns:1fr}.app-v18-row>.app-v18-toggle,.app-v18-row>.app-v18-select{justify-self:start}.app-pulse{grid-template-columns:1fr}.app-platform-downloads{display:grid}.app-platform-downloads .btn{width:100%;text-align:center}}

/* V18.0.1 — correctif menu mobile/petit écran.
   Un seul moteur pilote le panneau ; mêmes seuils CSS et JavaScript. */
@media (min-width:1240px){
  html.adaptive-menu .mobile-toggle{display:none!important}
}
@media (max-width:1239px){
  html .main-nav,
  html.adaptive-menu .main-nav,
  html.adaptive-menu .main-nav:not(.open){
    position:fixed!important;
    z-index:1400!important;
    left:max(var(--tsb-app-edge),env(safe-area-inset-left))!important;
    right:max(var(--tsb-app-edge),env(safe-area-inset-right))!important;
    top:var(--tsb-simple-nav-top,74px)!important;
    width:auto!important;
    height:auto!important;
    max-height:calc(100vh - var(--tsb-simple-nav-top,74px) - 16px)!important;
    max-height:calc(100dvh - var(--tsb-simple-nav-top,74px) - max(16px,env(safe-area-inset-bottom)))!important;
    margin:0!important;
    padding:10px!important;
    border:1px solid var(--line)!important;
    border-radius:18px!important;
    background:#111118!important;
    box-shadow:0 22px 70px rgba(0,0,0,.56)!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:4px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    transform:none!important;
    -webkit-transform:none!important;
  }
  html .main-nav[hidden],
  html.adaptive-menu .main-nav[hidden]{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  html .main-nav.open:not([hidden]),
  html.adaptive-menu .main-nav.open:not([hidden]){
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  html .main-nav a,
  html.adaptive-menu .main-nav a{
    display:flex!important;
    align-items:center!important;
    min-height:48px!important;
    padding:12px 14px!important;
    border-radius:12px!important;
    white-space:normal!important;
    font-size:1rem!important;
    line-height:1.25!important;
    touch-action:manipulation!important;
  }
  html .main-nav a.active{background:rgba(242,11,136,.16)!important}
  .mobile-toggle{touch-action:manipulation!important;user-select:none!important;-webkit-user-select:none!important}
}
@media (max-width:430px){
  html .main-nav,
  html.adaptive-menu .main-nav{left:max(8px,env(safe-area-inset-left))!important;right:max(8px,env(safe-area-inset-right))!important;border-radius:16px!important}
}
