/*
 * macOS Aqua — Dock layout paradigm flex (Z1).
 * Rangée flex ; icônes en px ; chrome pill en %.
 * Tuiles collées (macOS) ; shrink uniforme si débordement (écran / transients).
 * Interdit runtime : position absolute + left% par icône.
 * Moteur : dock-layout-fit.js · magnify : dock-magnify.js (Grafikart).
 */

/* Défauts fit (JS surcharge au runtime) — contrat validate-css-variables */
body.macos-aqua {
    --mac-dock-fit-pill-left: var(--mac-dock-pill-left, 22.65625%);
    --mac-dock-fit-pill-right: var(--mac-dock-pill-right, 1.5625%);
    --mac-dock-fit-pill-bottom: var(--mac-dock-pill-bottom, 1.25%);
    --mac-dock-fit-y: var(--mac-dock-y, 96.875%);
    --mac-dock-icon-fit: var(--mac-dock-icon, 40px);
    --mac-dock-fit-scale: 1;
    --mac-dock-fit-offset-x: 0%;
    --mac-dock-fit-mode: flex;
}

/*
 * Paradigme commun — footer fullscreen (skin) + rangée flex en bas.
 * Spécificité volontairement forte pour passer devant body#macos-* footer { display:block }.
 */
body.macos-aqua footer[data-mac-dock-layout] {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-end;
    justify-content: center;
    overflow: visible;
    padding-bottom: calc(var(--mac-dock-fit-pill-bottom, 1.25%) + 8px);
    box-sizing: border-box;
    pointer-events: none;
    z-index: 8500 !important;
}

body.macos-aqua#macos-high-sierra footer[data-mac-dock-layout],
body.macos-aqua#macos-mojave footer[data-mac-dock-layout],
body.macos-aqua#macos-catalina footer[data-mac-dock-layout],
body.macos-aqua#macos-big-sur footer[data-mac-dock-layout],
body.macos-aqua#macos-monterey footer[data-mac-dock-layout],
body.macos-aqua#macos-ventura footer[data-mac-dock-layout],
body.macos-aqua#macos-sonoma footer[data-mac-dock-layout],
body.macos-aqua#macos-sequoia footer[data-mac-dock-layout],
body.macos-aqua#macos-tahoe footer[data-mac-dock-layout] {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-end;
    justify-content: center;
    overflow: visible;
    padding-bottom: calc(var(--mac-dock-fit-pill-bottom, 1.25%) + 8px);
    box-sizing: border-box;
    pointer-events: none;
    z-index: 8500 !important;
}

body.macos-aqua footer[data-mac-dock-layout] > a,
body.macos-aqua[data-mac-dock-autohide="true"] footer[data-mac-dock-layout] > a {
    position: relative;
    top: auto;
    left: auto;
    display: flex;
    flex-flow: column nowrap;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    overflow: visible;
    width: var(--mac-dock-icon-fit, var(--mac-dock-icon, 40px));
    height: var(--mac-dock-icon-fit, var(--mac-dock-icon, 40px));
    margin: 0;
    padding: 0;
    background: transparent;
    transform: none;
    transform-origin: center bottom;
    pointer-events: auto;
    z-index: 2;
    will-change: width, height;
}

body.macos-aqua footer[data-mac-dock-layout] > a > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform-origin: center bottom;
    pointer-events: auto;
}

/*
 * Séparateur tray : trait ~1 px dans la pill (pas une boîte icon-sized).
 * align-self:flex-end — ¬center dans un footer 100vh (trait flottant au milieu).
 * transform:none !important écrase le rotate(90deg) legacy skin (var(--hr)).
 */
body.macos-aqua footer[data-mac-dock-layout] > hr,
body.macos-aqua[data-mac-dock-autohide="true"] footer[data-mac-dock-layout] > hr,
body.macos-aqua[id^="macos-"] footer[data-mac-dock-layout] > hr {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    display: block;
    flex: 0 0 auto;
    align-self: flex-end !important;
    box-sizing: border-box;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    height: calc(var(--mac-dock-icon-fit, var(--mac-dock-icon, 40px)) * 0.55) !important;
    margin: 0 calc(var(--mac-dock-icon-fit, var(--mac-dock-icon, 40px)) * 0.18) calc(var(--mac-dock-icon-fit, var(--mac-dock-icon, 40px)) * 0.22);
    padding: 0;
    border: 0;
    border-radius: 1px;
    background: var(--hrmac, rgba(255, 255, 255, 0.55));
    opacity: 0.85;
    transform: none !important;
    transform-origin: center center;
    pointer-events: none;
    z-index: 1;
    will-change: width, height, margin;
    overflow: hidden;
}

body.macos-aqua footer[data-mac-dock-layout] > hr[data-mac-dock-sep="running"][hidden] {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0;
    border: 0;
    overflow: hidden;
}

/*
 * Hover/actif : ¬scale CSS (la boîte doit égaler le glyphe).
 * ¬forcer width/height au repos — sous mag la taille inline JS (BASE×scale) prime.
 */
body.macos-aqua footer[data-mac-dock-layout] > a:hover,
body.macos-aqua footer[data-mac-dock-layout] > a:active,
body.macos-aqua footer[data-mac-dock-layout] > a.scale-effect,
body.macos-aqua.mac-dock-magnify-enabled footer[data-mac-dock-layout] > a:hover,
body.macos-aqua.mac-dock-magnify-enabled footer[data-mac-dock-layout] > a:active,
body.macos-aqua.mac-dock-magnify-enabled footer[data-mac-dock-layout] > a.scale-effect {
    margin: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
}

/*
 * Pill plein-écran : insets % (défauts Z2 · JS affine sur bbox flex).
 */
body.macos-aqua footer::before {
    left: var(--mac-dock-fit-pill-left);
    right: var(--mac-dock-fit-pill-right);
    bottom: var(--mac-dock-fit-pill-bottom);
}
