/* All the menu in the side column, icon and name (2026-11-11, owner: « all
   menus in the side bar … icon and text », then « menu stays left »):
   computers only; the header keeps the logo and the language; « Mon
   espace » has its own layout (gsc-takeover). */
@media (min-width: 992px) {
  html:root { --dock-w: 88px; }
  html:not(.gsc-takeover) body .header .nav-primary { display: none !important; }
  /* The logo at the top of the column (owner). */
  html body .ec-dock__logo { display: flex !important; justify-content: center; height: 72px; flex: none; }
  /* Entries from the top, a name under each icon. */
  html body .ec-dock__list:not(.ec-dock__mine) { margin-block: .4rem 0 !important; }
  html body .ec-dock__list { padding: 0 .4rem !important; }
  html body .ec-dock__list a { flex-direction: column !important; justify-content: center !important; gap: .2rem !important; min-height: 60px !important; padding: .45rem .15rem !important; }
  html body .ec-dock__list a .gc-oi { width: 23px; height: 23px; }
  .ec-dock__short { display: block; max-width: 100%; overflow: hidden; color: inherit; font-size: .66rem; font-weight: 700; line-height: 1.15; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
  html body .ec-dock__list a.is-active::before { left: -.4rem !important; }
  html body .ec-dock__badge { top: .3rem !important; right: .9rem !important; }
  html body .ec-dock__tip { display: none !important; }
  html body .ec-dock__search { margin: .5rem .45rem .3rem !important; }
  html body .ec-dock__account { padding: .6rem .4rem .8rem !important; }
}
@media (min-width: 992px) {
  /* The language in the column, its list opening beside it (owner). */
  html body .ec-dock .ec-dock__lang { position: relative; display: flex; justify-content: center; margin: .3rem .4rem .2rem; }
  html body .ec-dock .ec-dock__lang .lang-menu__toggle { width: 100%; justify-content: center; min-height: 40px; padding: 0 .4rem !important; border-radius: 12px !important; background: #eef2f7 !important; color: #0b2a45 !important; font-size: .74rem !important; }
  html body .ec-dock .ec-dock__lang .lang-menu__list { position: absolute !important; top: auto !important; bottom: 0 !important; left: calc(100% + .5rem) !important; right: auto !important; min-width: 180px; }
}
/* « GovCheck by CERC » under the logo in the column; the header, now empty,
   gone on computers (2026-11-11, owner). */
@media (min-width: 992px) {
  html:not(.gsc-takeover):root { --header-h: 0px; }
  html:not(.gsc-takeover) body header.header { display: none !important; }
  html:not(.gsc-takeover) main { padding-top: 0 !important; }
  html:root body .ec-dock .ec-dock__logo { flex-direction: column !important; align-items: center; gap: .3rem; height: auto !important; padding: .8rem .2rem .6rem !important; text-decoration: none; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__mark { width: 44px !important; height: 44px !important; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__brand { display: flex !important; flex-direction: column; align-items: center; gap: .15rem; line-height: 1; }
  html:root body .ec-dock .ec-dock__logo .logo__name { color: #0b2a45; font-size: .98rem; font-weight: 800; letter-spacing: -.01em; }
  html:root body .ec-dock .ec-dock__logo .ec-logo__accent { color: #0077be; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__tag { color: #5f6672; font-size: .5rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
}
@media (min-width: 992px) {
  html body .ec-dock__list a { min-height: 52px !important; padding: .32rem .15rem !important; gap: .15rem !important; }
  html body .ec-dock__list a .gc-oi { width: 21px; height: 21px; }
  html body .ec-dock__search { margin: .35rem .45rem .2rem !important; }
  html body .ec-dock__search input { min-height: 34px !important; }
  html:root body .ec-dock .ec-dock__logo { padding: .6rem .2rem .45rem !important; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__mark { width: 40px !important; height: 40px !important; }
  html body .ec-dock .ec-dock__lang { margin: .2rem .4rem .1rem; }
  html body .ec-dock__account { padding: .4rem .4rem .6rem !important; }
  html body .ec-dock__login.btn { width: 40px !important; height: 40px !important; }
}
/* Icon and name on one row, more space (2026-11-11, owner). */
@media (min-width: 992px) {
  html:root { --dock-w: 224px; }
  html:root body .ec-dock .ec-dock__logo { flex-direction: row !important; justify-content: flex-start !important; gap: .6rem; padding: 1rem 1.1rem .8rem !important; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__brand { align-items: flex-start; }
  html:root body .ec-dock .ec-dock__logo .logo__name { font-size: 1.35rem; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__tag { font-size: .58rem; }
  html body .ec-dock__list { padding: 0 .75rem !important; }
  html body .ec-dock__list:not(.ec-dock__mine) { margin-block: .6rem 0 !important; }
  html body .ec-dock__list li + li { margin-top: .3rem; }
  html body .ec-dock__list a { flex-direction: row !important; justify-content: flex-start !important; gap: .85rem !important; min-height: 46px !important; padding: .55rem .85rem !important; border-radius: 12px !important; }
  html body .ec-dock__list a .gc-oi { width: 22px; height: 22px; flex: none; }
  .ec-dock__short { overflow: visible; font-size: .95rem; font-weight: 600; text-align: left; white-space: nowrap; }
  html body .ec-dock__list a.is-active .ec-dock__short { font-weight: 800; }
  html body .ec-dock__list a.is-active::before { left: -.75rem !important; top: 10px !important; bottom: 10px !important; }
  html body .ec-dock__badge { position: static !important; width: .55rem; min-width: .55rem; height: .55rem; margin-left: auto; }
  /* Search with its text. */
  html body .ec-dock__search { margin: .5rem .75rem .4rem !important; }
  html body .ec-dock__search input { min-height: 40px !important; padding: .45rem .7rem .45rem 2.2rem !important; color: #0b2a45 !important; cursor: text !important; }
  html body .ec-dock__search input::placeholder { color: #6b7f92 !important; }
  html body .ec-dock__search .fa-icon, html body .ec-dock__search .gc-oi { left: .75rem !important; transform: translateY(-50%) !important; }
  html body .ec-dock__search:focus-within label { position: relative !important; left: auto !important; top: auto !important; width: auto !important; }
  html body .ec-dock__results { left: calc(var(--dock-w) + .5rem) !important; }
  html body .ec-dock .ec-dock__lang { margin: .6rem .75rem .3rem; }
  html body .ec-dock .ec-dock__lang .lang-menu__toggle { justify-content: flex-start; min-height: 42px; padding: 0 .9rem !important; font-size: .85rem !important; }
  html body .ec-dock__account { display: flex; justify-content: flex-start; padding: .6rem .75rem .9rem !important; }
}
/* Clearer menu (2026-11-11, owner: « le menu est vague »): dark names,
   colour on the icons only, firmer hover and active states. */
@media (min-width: 992px) {
  html body .ec-dock .ec-dock__list a .ec-dock__short { color: #0b2a45 !important; font-weight: 650; }
  html body .ec-dock .ec-dock__list a:hover { background: #eef2f7 !important; }
  html body .ec-dock .ec-dock__list a.is-active { background: #e1effa !important; box-shadow: inset 0 0 0 1px #c7def2; }
  html body .ec-dock .ec-dock__list a.is-active .ec-dock__short { color: #0b2a45 !important; font-weight: 800; }
  html body .ec-dock .ec-dock__list a .gc-oi { stroke-width: 2 !important; }
  html body .ec-dock { border-right: 1px solid #dfe5ec !important; box-shadow: 1px 0 0 rgba(11, 42, 69, .03); }
}
/* Dots at the end of the row; compact rows; the list scrolls in the column
   on short screens (2026-11-11, owner's screenshot). */
@media (min-width: 992px) {
  html body .ec-dock { display: flex !important; flex-direction: column !important; overflow: hidden !important; }
  html body .ec-dock > .ec-dock__logo, html body .ec-dock > .ec-dock__search, html body .ec-dock > .ec-dock__lang, html body .ec-dock > .ec-dock__account { flex: none; }
  html body .ec-dock__list:not(.ec-dock__mine) { flex: 1 1 auto !important; min-height: 0; overflow-y: auto !important; overflow-x: hidden; scrollbar-width: thin; }
  html body .ec-dock__mine { flex: none !important; max-height: 30vh; overflow-y: auto; }
  html body .ec-dock__list li + li { margin-top: .15rem; }
  html body .ec-dock__list a { min-height: 42px !important; padding: .45rem .8rem !important; }
  html body .ec-dock__list a .gc-oi, html body .ec-dock__list a .fa-icon, html body .ec-dock__list a img { order: 0; }
  html body .ec-dock__list a .ec-dock__short { order: 1; }
  html body .ec-dock__list a .ec-dock__badge { order: 2; margin-left: auto !important; }
}
/* No scrolling: the rows share the column's height, all always visible
   (2026-11-11, owner: « fixed menu with all »). */
@media (min-width: 992px) {
  html body .ec-dock__list:not(.ec-dock__mine) { display: flex !important; flex-direction: column; overflow: hidden !important; margin-block: .3rem 0 !important; }
  html body .ec-dock__list:not(.ec-dock__mine) > li { flex: 1 1 0; min-height: 0; max-height: 46px; margin-top: 0 !important; display: flex; }
  html body .ec-dock__list:not(.ec-dock__mine) > li > a { flex: 1; min-height: 0 !important; height: auto; padding-block: 0 !important; margin-block: 1px; }
  html body .ec-dock__mine { max-height: none; overflow: visible; }
}
@media (min-width: 992px) and (max-height: 700px) {
  html:root body .ec-dock .ec-dock__logo { padding: .5rem 1rem .4rem !important; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__mark { width: 34px !important; height: 34px !important; }
  html body .ec-dock__search { margin: .25rem .75rem .2rem !important; }
  html body .ec-dock__search input { min-height: 32px !important; }
  html body .ec-dock .ec-dock__lang { margin: .25rem .75rem .15rem; }
  html body .ec-dock .ec-dock__lang .lang-menu__toggle { min-height: 34px; }
  html body .ec-dock__account { padding: .3rem .75rem .45rem !important; }
  html body .ec-dock__login.btn { width: 36px !important; height: 36px !important; }
  .ec-dock__short { font-size: .88rem; }
}
/* Narrower column (2026-11-11, owner: « lateral menu is wide »). */
@media (min-width: 992px) {
  html:root { --dock-w: 184px; }
  html:root body .ec-dock .ec-dock__logo { padding: .8rem .8rem .6rem !important; gap: .5rem; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__mark { width: 36px !important; height: 36px !important; }
  html:root body .ec-dock .ec-dock__logo .logo__name { font-size: 1.12rem; }
  html body .ec-dock__list { padding: 0 .5rem !important; }
  html body .ec-dock__list a { gap: .6rem !important; padding-inline: .6rem !important; }
  html body .ec-dock__list a .gc-oi { width: 20px; height: 20px; }
  .ec-dock__short { font-size: .86rem; }
  html body .ec-dock__list a.is-active::before { left: -.5rem !important; }
  html body .ec-dock__search { margin-inline: .5rem !important; }
  html body .ec-dock .ec-dock__lang { margin-inline: .5rem; }
  html body .ec-dock__account { padding-inline: .5rem !important; }
}
/* Folded to the logo and icons; it unrolls over the page on mouse-over or
   keyboard focus (2026-11-11, owner: « only the logo; with the mouse it
   unrolls »). */
@media (min-width: 992px) {
  html:root { --dock-w: 72px; }
  html body .ec-dock { width: var(--dock-w) !important; overflow: hidden !important; z-index: 140 !important; transition: width .22s ease, box-shadow .22s ease; }
  html body .ec-dock:hover, html body .ec-dock:focus-within { width: 232px !important; box-shadow: 10px 0 28px rgba(11, 42, 69, .16); }
  html body .ec-dock > * { width: 232px; flex-shrink: 0; }
  /* Folded: the mark centred, the names hidden. */
  html:root body .ec-dock .ec-dock__logo { padding-left: 14px !important; }
  html:root body .ec-dock .ec-dock__logo .ec-dock__mark { width: 44px !important; height: 44px !important; }
  html body .ec-dock .ec-dock__brand, html body .ec-dock .ec-dock__short, html body .ec-dock .ec-dock__badge { opacity: 0; transition: opacity .15s ease; }
  html body .ec-dock:is(:hover, :focus-within) :is(.ec-dock__brand, .ec-dock__short, .ec-dock__badge) { opacity: 1; transition-delay: .06s; }
  html body .ec-dock__list { padding: 0 8px !important; }
  html body .ec-dock__list a { padding-left: 17px !important; gap: .85rem !important; }
  html body .ec-dock__list a.is-active::before { left: -8px !important; }
  html body .ec-dock__search { margin: .4rem 8px .3rem !important; width: auto; }
  html body .ec-dock:not(:hover):not(:focus-within) .ec-dock__search input { width: 56px !important; padding-right: 0 !important; color: transparent !important; cursor: pointer !important; }
  html body .ec-dock:not(:hover):not(:focus-within) .ec-dock__search input::placeholder { color: transparent !important; }
  html body .ec-dock__search .fa-icon, html body .ec-dock__search .gc-oi { left: 18px !important; }
  html body .ec-dock .ec-dock__lang { margin: .3rem 8px .2rem; width: auto; }
  html body .ec-dock:not(:hover):not(:focus-within) .ec-dock__lang .lang-menu__toggle { width: 56px; padding: 0 0 0 16px !important; overflow: hidden; }
  html body .ec-dock__account { justify-content: flex-start !important; padding-left: 14px !important; }
}
@media (min-width: 992px) { html body .ec-dock__account .ec-dock__login.btn { margin: 0 !important; } }
/* The page moves aside when the menu unrolls, nothing hidden (2026-11-11,
   owner: « when the menu unrolls it hides the other part »). */
@media (min-width: 992px) {
  html:not(.gsc-takeover) body:has(.ec-dock) { transition: padding-left .22s ease; }
  html:not(.gsc-takeover) body:has(.ec-dock:is(:hover, :focus-within)) { padding-left: 232px !important; }
  html body .ec-dock:hover, html body .ec-dock:focus-within { box-shadow: none !important; }
}
/* The full names (2026-11-11, owner): a wider unrolled menu. */
@media (min-width: 992px) {
  html body .ec-dock > * { width: 272px; }
  html body .ec-dock:hover, html body .ec-dock:focus-within { width: 272px !important; }
  html:not(.gsc-takeover) body:has(.ec-dock:is(:hover, :focus-within)) { padding-left: 272px !important; }
  html body .ec-dock .ec-dock__short { font-size: .9rem; }
}
/* GovCheck Beta badge (2026-11-11, owner): every page of /beta. */
body::after { content: "Version Beta"; position: fixed; z-index: 9999; right: 14px; bottom: 14px; padding: .35rem .8rem; border-radius: 999px; background: #f2c200; color: #003a63; font: 800 .78rem/1.2 var(--font-body, sans-serif); letter-spacing: .04em; box-shadow: 0 4px 12px rgba(0, 0, 0, .2); pointer-events: none; }
@media (max-width: 767.98px) { body::after { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); } }
