/* ==========================================================================
   Mode « application installée » — Mon D3D
   --------------------------------------------------------------------------
   Ne s'applique QUE lorsque le dentiste a ajouté Mon D3D à son écran
   d'accueil. Dans le navigateur, rien ne change.

   La classe .d3d-standalone est posée sur <html> par theme.js (avant le
   rendu). On ne s'appuie pas sur @media (display-mode: standalone) seul :
   les anciens iOS ne l'implémentent pas et n'exposent que
   navigator.standalone, que theme.js lit aussi.

   Pourquoi une bande bleu marine en haut : les pages déclarent
   apple-mobile-web-app-status-bar-style = black-translucent, donc sur iPhone
   le contenu passe SOUS l'heure et la batterie, qui sont toujours affichées
   en blanc. Sans cette bande, l'heure deviendrait invisible dès que le
   dentiste passe en thème clair (barre supérieure blanche). La bande fige
   donc un aplat de marque derrière la barre d'état, identique dans les deux
   thèmes — et c'est aussi ce qui donne l'allure d'une vraie app.
   Sur Android, safe-area-inset-top vaut 0 : la bande a une hauteur nulle et
   c'est theme_color (#12214E) qui colore la barre d'état.
   ========================================================================== */

html.d3d-standalone body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: env(safe-area-inset-top, 0px);
    /* EXCEPTION : couleur de marque figée, volontairement identique en thème
       clair et sombre — l'heure de l'iPhone est toujours blanche par-dessus. */
    background: #12214E;
    z-index: 2147483000;
    pointer-events: none;
}

/* Pages d'authentification uniquement (data-pwa-pad sur <body>) : leur carte
   est centrée dans un <body> en flex, sans réserve de safe area. Le shell
   dashboard.html, lui, gère déjà l'encoche sur .top-bar et .app-bar — il ne
   porte pas l'attribut, sinon la réserve serait comptée deux fois. */
html.d3d-standalone body[data-pwa-pad] {
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
}

/* Supprime le rebond élastique du scroll, qui trahit immédiatement une page
   web dans une app. */
html.d3d-standalone,
html.d3d-standalone body {
    overscroll-behavior-y: none;
}
