/* ============================================================================
   dc-bottom-nav.css — SINGLE SOURCE OF TRUTH for the visitor bottom navigation.
   Lock marker: 20260614_dc_bottom_nav_v15_consolidated

   Scope: body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav
   - One dock for every visitor surface (guest home, public feed, contests,
     profile, ...), every device (desktop / mobile / tablet) and every mode
     (browser / installed PWA) and orientation.
   - Button width is computed at runtime by dc-bottom-nav.js via
     --dc-bottom-nav-cell-w, so a single rule covers all viewport widths.

   Out of scope (NOT styled here):
   - admin bottom nav — same dc-bottom-nav chrome (§16); legacy .admin-mobile-bottom-nav alias kept for compat
   - auth pages (nav not rendered)
   - comments composer
   Companion files keep ONLY what is listed:
   - dc-responsive.css        -> tokens + content reserve
   - feed-v2-shell.css        -> feed reserve vars + z-index
   - dc-mobile-pwa-shell.css  -> PWA safe-area padding
   ============================================================================ */

/* ---- 1. Tokens ---------------------------------------------------------- */
:root{
  --dc-bottom-nav-max-width:min(100%,430px);
  --dc-bottom-nav-gap:6px;
  --dc-bottom-nav-padding-x:10px;
  --dc-bottom-nav-safe-bottom:env(safe-area-inset-bottom,0px);
  --dc-bottom-nav-padding-bottom:var(--dc-bottom-nav-safe-bottom);
  --dc-bottom-nav-item-min-height:48px;
  --dc-bottom-nav-item-h:50px;
  --dc-bottom-nav-cell-w:72px;
  --dc-bottom-nav-columns:5;
  --dc-bottom-nav-rows:1;
  --dc-bottom-nav-z-index:99999;
  --dc-bottom-nav-bar-h:50px;
  --dc-bottom-nav-legal-h:16px;
  --dc-bottom-nav-shell-h:76px;
  --dc-bottom-nav-mobile-reserve:76px;
  --dc-bottom-nav-desktop-reserve:calc(var(--dc-bottom-nav-shell-h) + 12px + var(--dc-bottom-nav-safe-bottom));
  --dc-bottom-nav-desktop-wrap-reserve:calc(120px + var(--dc-bottom-nav-legal-h));
  --dc-pwa-dock-shift:0px;
  --dc-bottom-nav-bg:linear-gradient(180deg,rgba(16,16,16,.98),rgba(0,0,0,1));
  --dc-bottom-nav-border-top:1px solid rgba(255,138,0,.30);
  --dc-bottom-nav-shadow:0 -10px 32px rgba(0,0,0,.42);
}

body.feed-v2-surface{
  --dc-bottom-nav-max-width:min(100%,430px);
}

/* ---- 1b. PWA dock shift — CSS auto-correcting (no JS lag) ----------------
   iOS standalone under-reports window.innerHeight on a cold start / fresh
   navigation, so a `bottom:0` nav lands a few px above the real screen bottom.
   The old fix wrote the gap into translateY from JS; but when iOS later grows
   innerHeight (often WITHOUT a resize event) the stale transform overshot the
   nav BELOW the screen for a frame before the rAF glue corrected it — the
   visible down-then-up jump (most noticeable Feed -> Home, which relayouts).
   Expressing the shift purely in CSS viewport units lets the browser keep it
   correct in the SAME reflow the viewport settles in: 100dvh tracks the live
   (layout) viewport that `bottom:0` is relative to, 100lvh stays the full
   screen, so their delta is the exact gap and collapses to 0 with zero lag. */
/* The display-mode query is evaluated at first paint (no wait for the JS body
   class), so the dock renders already-correct on a PWA cold start. */
@media (display-mode: standalone), (display-mode: fullscreen){
  @supports (height: 100dvh) and (height: 100lvh){
    body.user-mode:not(.admin-mode):not(.auth-mode) nav.user-bottom-nav.dc-bottom-nav:not(.dc-bottom-nav--composer-slot){
      /* Was calc(100lvh - 100dvh): WRONG SIGN — it pushed the dock DOWN by the
         viewport delta, so when iOS settles 100lvh>100dvh the nav landed ~59px
         BELOW the visible bottom = the dark strip. bottom:0 is already relative
         to the dynamic (visible) viewport, so no shift is needed. */
      --dc-pwa-dock-shift:0px;
    }
    /* Keyboard open: the visual viewport collapses, which would inflate the dvh
       delta — pin the dock so it never lurches while typing. */
    body.dc-keyboard-open.user-mode:not(.admin-mode):not(.auth-mode) nav.user-bottom-nav.dc-bottom-nav:not(.dc-bottom-nav--composer-slot){
      --dc-pwa-dock-shift:0px;
    }
    /* Admin dock: no lvh−dvh translateY — iOS PWA pushed it below the screen; JS settle uses bottom:0. */
    body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin{
      --dc-pwa-dock-shift:0px;
    }
  }
}

/* Landscape phone PWA — lvh−dvh shift floats the dock above the bottom edge */
@media (display-mode: standalone) and (orientation: landscape) and (max-height: 520px),
(display-mode: fullscreen) and (orientation: landscape) and (max-height: 520px){
  @supports (height: 100dvh) and (height: 100lvh){
    body.user-mode:not(.admin-mode):not(.auth-mode) nav.user-bottom-nav.dc-bottom-nav:not(.dc-bottom-nav--composer-slot){
      --dc-pwa-dock-shift:0px;
    }
  }
}

/* ---- 2. Container dock — every visitor surface / device / orientation --- */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav:not(.dc-bottom-nav--composer-slot){
  position:fixed!important;
  left:0!important;
  right:0!important;
  top:auto!important;
  bottom:0!important;
  transform:translate3d(0,var(--dc-pwa-dock-shift,0px),0)!important;
  -webkit-transform:translate3d(0,var(--dc-pwa-dock-shift,0px),0)!important;
  isolation:isolate!important;
  z-index:var(--dc-bottom-nav-z-index)!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-end!important;
  gap:0!important;
  height:auto!important;
  min-height:calc(76px + var(--dc-bottom-nav-padding-bottom,0px))!important;
  max-height:none!important;
  overflow:visible!important;
  padding:4px 10px var(--dc-bottom-nav-padding-bottom)!important;
  background:var(--dc-bottom-nav-bg)!important;
  border-top:var(--dc-bottom-nav-border-top)!important;
  border-left:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-radius:0!important;
  box-shadow:var(--dc-bottom-nav-shadow)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* ---- 3. Composer slot — transparent anchor (feed thread supplies chrome) - */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--composer-slot{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:0!important;
  min-height:0!important;
}

/* ---- 4. Bar — flex row, auto-fit (cell width from dc-bottom-nav.js) ------ */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-content:flex-start!important;
  align-items:stretch!important;
  gap:var(--dc-bottom-nav-gap,6px)!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  grid-template-columns:none!important;
}

/* Single row unless dc-bottom-nav.js flags --multirow */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav:not(.dc-bottom-nav--multirow) .dc-bottom-nav__bar{
  flex-wrap:nowrap!important;
}

/* ---- 5. Tabs (a + button.dc-bottom-nav__more both carry .dc-bottom-nav__tab) */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab{
  position:relative!important;
  box-sizing:border-box!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  flex:0 0 var(--dc-bottom-nav-cell-w,72px)!important;
  width:var(--dc-bottom-nav-cell-w,72px)!important;
  min-width:0!important;
  max-width:var(--dc-bottom-nav-cell-w,72px)!important;
  height:auto!important;
  min-height:var(--dc-bottom-nav-item-h,50px)!important;
  max-height:none!important;
  margin:0!important;
  padding:7px 2px 5px!important;
  border:none!important;
  border-radius:12px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  color:rgba(255,255,255,.62)!important;
  font:inherit!important;
  font-size:10px!important;
  font-weight:700!important;
  line-height:1.1!important;
  letter-spacing:.01em!important;
  text-decoration:none!important;
  overflow:hidden!important;
  cursor:pointer!important;
  -webkit-tap-highlight-color:transparent!important;
  touch-action:manipulation!important;
}

/* active underline indicator */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab::before{
  content:""!important;
  position:absolute!important;
  top:3px!important;
  left:50%!important;
  width:20px!important;
  height:2px!important;
  margin:0!important;
  border-radius:999px!important;
  background:#ff9a2f!important;
  transform:translateX(-50%)!important;
  opacity:0!important;
  transition:opacity .16s ease!important;
}

body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab.nav-current,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab.is-sheet-open{
  color:#ffb347!important;
  background:transparent!important;
}

body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab.nav-current::before,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab.is-sheet-open::before{
  opacity:1!important;
}

body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab:active{
  background:rgba(255,255,255,.04)!important;
  transform:none!important;
}

/* icon */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar .dc-bottom-nav__icon{
  width:24px!important;
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  flex:0 0 24px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:inherit!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar .dc-bottom-nav__icon svg{
  width:22px!important;
  height:22px!important;
  fill:currentColor!important;
  display:block!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar .nav-live-link .dc-bottom-nav__icon svg path[stroke]{
  stroke:currentColor!important;
  fill:none!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.live-is-active .dc-bottom-nav__bar .nav-live-link .dc-bottom-nav__icon{
  color:#ff9a2f!important;
  animation:dcBottomNavLiveIconPulse 1.4s ease-in-out infinite;
}
@keyframes dcBottomNavLiveIconPulse{
  0%,100%{filter:drop-shadow(0 0 0 rgba(255,138,47,0));opacity:1;}
  50%{filter:drop-shadow(0 0 6px rgba(255,138,47,.55));opacity:.92;}
}

/* label */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab .dc-bottom-nav__label,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab .nav-label{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:11px!important;
  max-height:11px!important;
  line-height:11px!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  color:inherit!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* ---- 6. Multi-row (dc-bottom-nav.js sets --multirow when rows > 1) ------- */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--multirow .dc-bottom-nav__bar > .dc-bottom-nav__tab{
  min-height:44px!important;
  padding:4px 2px 3px!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--multirow .dc-bottom-nav__bar .dc-bottom-nav__icon{
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--multirow .dc-bottom-nav__bar .dc-bottom-nav__icon svg{
  width:20px!important;
  height:20px!important;
}

/* ---- 7. live / contests pulse dot --------------------------------------- */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .live-dot,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .contests-dot{
  display:none!important;
  position:absolute!important;
  top:8px!important;
  right:calc(50% - 18px)!important;
  left:auto!important;
  width:7px!important;
  height:7px!important;
  transform:none!important;
  border-radius:50%!important;
  background:#00d56f!important;
  box-shadow:0 0 0 2px rgba(0,0,0,.75),0 0 10px rgba(0,213,111,.85)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.live-is-active .nav-live-link .live-dot,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.contests-has-new .nav-contests-link .contests-dot{
  display:block!important;
  animation:dcBottomNavLiveDotPulse 1s ease-in-out infinite!important;
}
@keyframes dcBottomNavLiveDotPulse{
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:.25;transform:scale(.72);}
}

/* ---- 8. Legal row (single authority) ------------------------------------ */
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  width:100%!important;
  flex:0 0 auto!important;
  margin:4px 0 0!important;
  padding:0!important;
  font-size:9px!important;
  line-height:1.2!important;
  font-weight:400!important;
  letter-spacing:.01em!important;
  color:rgba(255,255,255,.34)!important;
  white-space:nowrap!important;
  pointer-events:auto!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal span,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a{
  display:inline!important;
  flex:none!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  font-size:9px!important;
  line-height:1.2!important;
  font-weight:400!important;
  text-decoration:none!important;
  transform:none!important;
  -webkit-tap-highlight-color:transparent!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal span{
  color:inherit!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a{
  color:rgba(255,214,168,.5)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a:hover,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a:active,
body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a:focus{
  color:rgba(255,214,168,.78)!important;
  text-decoration:none!important;
}

/* ---- 9. "Ещё" sheet ----------------------------------------------------- */
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet{
  position:fixed;
  inset:0;
  z-index:calc(var(--dc-bottom-nav-z-index) + 2);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  pointer-events:none;
  visibility:hidden;
  opacity:0;
  transition:opacity .22s ease,visibility .22s ease;
}
body.user-mode.dc-nav-sheet-open:not(.auth-mode):not(.admin-mode){
  overflow:hidden!important;
}
body.user-mode.dc-nav-sheet-open:not(.auth-mode):not(.admin-mode) .dc-nav-sheet{
  pointer-events:auto;
  visibility:visible;
  opacity:1;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__backdrop{
  position:absolute;
  inset:0;
  border:0;
  margin:0;
  padding:0;
  background:rgba(0,0,0,.62);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  cursor:pointer;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__panel{
  position:relative;
  width:100%;
  max-width:min(520px,100%);
  max-height:min(90dvh,100%);
  overflow-x:hidden;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  border-radius:22px 22px 0 0;
  background:linear-gradient(180deg,rgba(30,30,30,.99),rgba(10,10,10,.99));
  border:1px solid rgba(255,138,0,.22);
  border-bottom:0;
  box-shadow:0 -18px 48px rgba(0,0,0,.45);
  transform:translateY(110%);
  transition:transform .28s cubic-bezier(.22,1,.36,1);
  padding:8px 16px calc(12px + var(--dc-bottom-nav-padding-bottom,env(safe-area-inset-bottom,0px)));
  touch-action:pan-y;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__panel::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}
body.user-mode.dc-nav-sheet-open:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__panel{
  transform:translateY(0);
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__handle{
  width:42px;
  height:4px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  margin:2px auto 8px;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px;
  padding:0;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__user-name{
  margin:0!important;
  padding:0!important;
  flex:1 1 auto;
  min-width:0;
  font-size:20px!important;
  line-height:1.15!important;
  font-weight:400!important;
  color:#fff!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__user-name--guest{
  color:rgba(255,255,255,.88)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__close{
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  flex:0 0 36px;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-banner{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:16px;
  text-decoration:none;
  color:#fff;
  background:linear-gradient(135deg,rgba(255,70,70,.18),rgba(255,138,0,.12));
  border:1px solid rgba(255,120,80,.34);
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-copy strong,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-banner strong{
  display:block;
  font-size:14px;
  line-height:1.2;
  font-weight:400!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-copy small,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-banner small{
  display:block;
  margin-top:2px;
  font-size:12px;
  line-height:1.3;
  color:rgba(255,255,255,.68);
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__live-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#00d56f;
  box-shadow:0 0 0 2px rgba(0,0,0,.75),0 0 12px rgba(0,213,111,.9);
  animation:dcBottomNavLiveDotPulse 1s ease-in-out infinite;
  flex:0 0 10px;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__section{
  margin-bottom:10px;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__section:last-of-type{
  margin-bottom:0;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__section-title{
  margin:0 0 6px!important;
  padding:0 2px!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  color:rgba(255,255,255,.42)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__links{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__section--url{
  margin-bottom:10px;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  min-height:52px!important;
  width:100%!important;
  padding:9px 11px!important;
  border-radius:16px!important;
  text-align:left!important;
  text-decoration:none!important;
  color:#fff!important;
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:none!important;
  transform:none!important;
  box-sizing:border-box!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item:hover,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item:active{
  border-color:rgba(255,138,0,.42)!important;
  background:rgba(255,138,0,.08)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item.nav-current{
  border-color:rgba(255,138,0,.62)!important;
  background:linear-gradient(180deg,rgba(255,138,0,.14),rgba(255,138,0,.05))!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item--danger{
  color:#ffc9c9!important;
  border-color:rgba(255,80,80,.24)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item.dc-nav-sheet__item--profile,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__item.nav-profile-link{
  align-items:flex-start!important;
  min-height:0!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:#ffd391;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__icon svg{
  width:20px;
  height:20px;
  fill:currentColor;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__copy,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__copy--profile{
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
  min-width:0!important;
  flex:1 1 auto!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__copy--profile{
  gap:0!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__label{
  display:block!important;
  line-height:1.2!important;
  font-size:14px;
  font-weight:400!important;
  color:#fff;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__desc{
  display:block!important;
  line-height:1.35!important;
  word-break:break-word!important;
  font-size:12px;
  color:rgba(255,255,255,.56);
  font-weight:400!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__profile-split{
  display:block;
  width:100%;
  height:1px;
  margin:8px 0 6px;
  background:rgba(255,255,255,.1);
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__balance-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  width:100%;
  font-size:12px;
  line-height:1.35;
  font-weight:400!important;
  color:rgba(255,255,255,.62);
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__balance-label{
  font-weight:400!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__balance-value{
  color:rgba(255,214,168,.9);
  white-space:nowrap;
  font-weight:400!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__docs-box{
  padding:0!important;
  border-radius:16px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  background:rgba(255,255,255,.045)!important;
  box-sizing:border-box!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__links--url{
  display:flex!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:0!important;
  padding:8px 12px!important;
  margin:0!important;
  width:100%!important;
  text-align:left!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link{
  display:block!important;
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:7px 2px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:700!important;
  text-align:left!important;
  text-decoration:underline!important;
  text-underline-offset:2px!important;
  text-decoration-color:rgba(255,179,71,.35)!important;
  color:rgba(255,179,71,.92)!important;
  box-sizing:border-box!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link + .dc-nav-sheet__url-link{
  border-top:1px solid rgba(255,255,255,.06)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link:hover,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link:active,
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link:focus-visible{
  color:#ffd391!important;
  text-decoration-color:rgba(255,211,145,.72)!important;
  background:transparent!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__url-link.nav-current{
  color:#fff!important;
  text-decoration-color:rgba(255,255,255,.45)!important;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__foot{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:center;
}
body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__foot .dc-bottom-legal{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0;
  font-size:10px;
  gap:16px;
  width:100%;
  text-align:center;
}

/* ---- 10. comments page: nav fully hidden -------------------------------- */
body.comments-mode.user-mode:not(.auth-mode):not(.admin-mode) .user-bottom-nav,
html body.comments-mode.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.comments-mode .dc-bottom-legal{
  display:none!important;
}

/* ---- 11. Content reserve for legacy non-shell pages --------------------- */
body.user-mode:not(.auth-mode):not(.admin-mode):not(.dc-shell-open):not(.contest-user-hub-page){
  padding-bottom:max(var(--dc-bottom-nav-mobile-reserve),env(safe-area-inset-bottom,0px))!important;
}

/* ---- 12. Short landscape: denser tabs ----------------------------------- */
@media (orientation:landscape) and (max-height:520px){
  body.user-mode:not(.auth-mode):not(.admin-mode){
    --dc-bottom-nav-item-h:44px;
    --dc-bottom-nav-legal-h:12px;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab{
    padding:4px 2px 3px!important;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--dense .dc-bottom-nav__bar > .dc-bottom-nav__tab .dc-bottom-nav__label,
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav.dc-bottom-nav--dense .dc-bottom-nav__bar > .dc-bottom-nav__tab .nav-label{
    font-size:9px!important;
    line-height:1.1!important;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal{
    font-size:7px!important;
    gap:12px!important;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal span,
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-legal a{
    font-size:7px!important;
  }
}

/* ---- 13. Very narrow phones --------------------------------------------- */
@media (max-width:360px){
  body.user-mode:not(.auth-mode):not(.admin-mode){
    --dc-bottom-nav-gap:4px;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab .dc-bottom-nav__label,
  body.user-mode:not(.auth-mode):not(.admin-mode) nav.user-bottom-nav.dc-bottom-nav .dc-bottom-nav__bar > .dc-bottom-nav__tab .nav-label{
    font-size:9px!important;
  }
}

/* ---- 14. Desktop sheet centering ---------------------------------------- */
@media (min-width:900px){
  body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet{
    align-items:center;
  }
  body.user-mode:not(.auth-mode):not(.admin-mode) .dc-nav-sheet__panel{
    border-radius:22px;
    border-bottom:1px solid rgba(255,138,0,.22);
    margin-bottom:24px;
    max-height:none;
    overflow:hidden;
  }
}

/* ---- 15. PWA: keep dock flush to bottom, safe-area inside padding -------- */
body.dc-runtime-pwa nav.user-bottom-nav.dc-bottom-nav,
body.dc-runtime-pwa nav.dc-bottom-nav--admin,
body.dc-pwa-standalone nav.user-bottom-nav.dc-bottom-nav,
body.dc-pwa-standalone nav.dc-bottom-nav--admin,
html body.dc-runtime-pwa nav.user-bottom-nav.dc-bottom-nav,
html body.dc-runtime-pwa nav.dc-bottom-nav--admin,
html body.dc-pwa-standalone nav.user-bottom-nav.dc-bottom-nav,
html body.dc-pwa-standalone nav.dc-bottom-nav--admin,
html.dc-pwa-emulate body.user-mode nav.user-bottom-nav.dc-bottom-nav,
html.dc-pwa-emulate body.admin-mode nav.dc-bottom-nav--admin{
  bottom:0!important;
  left:0!important;
  right:0!important;
  top:auto!important;
  /* dock vertical position is owned solely by §2 (transform uses --dc-pwa-dock-shift=0);
     no duplicate transform here — it used to race the §2 rule + JS and lift the dock. */
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  min-height:0!important;
  height:auto!important;
  padding-bottom:var(--dc-bottom-nav-padding-bottom)!important;
}

/* DREAMCARS v15 lock marker: 20260614_dc_bottom_nav_v15_consolidated */

body.dc-shell-nav-loading #dcShellMain {
  pointer-events: none;
}

body.dc-shell-nav-loading:not(.feed-v2-surface) #dcShellMain {
  opacity: 0.88;
  transition: opacity 100ms ease;
}

body.dc-shell-nav-loading.feed-v2-surface #dcShellMain {
  opacity: 1;
}

body.dc-shell-nav-loading nav.user-bottom-nav.dc-bottom-nav {
  pointer-events: auto;
}

/* ---- 16. Admin bottom nav — unified dc-bottom-nav chrome ---------------- */
body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:var(--dc-bottom-nav-z-index)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:4px 10px var(--dc-bottom-nav-padding-bottom)!important;
  background:var(--dc-bottom-nav-bg)!important;
  border-top:var(--dc-bottom-nav-border-top)!important;
  box-shadow:var(--dc-bottom-nav-shadow)!important;
  box-sizing:border-box!important;
  transform:none!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:var(--dc-bottom-nav-gap,6px)!important;
  width:100%!important;
  max-width:var(--dc-bottom-nav-max-width)!important;
  margin:0 auto!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 var(--dc-bottom-nav-cell-w,72px)!important;
  width:var(--dc-bottom-nav-cell-w,72px)!important;
  min-width:0!important;
  max-width:var(--dc-bottom-nav-cell-w,72px)!important;
  min-height:var(--dc-bottom-nav-item-h,50px)!important;
  padding:6px 4px 4px!important;
  border-radius:12px!important;
  color:rgba(255,255,255,.78)!important;
  text-decoration:none!important;
  background:transparent!important;
  border:none!important;
  box-sizing:border-box!important;
  -webkit-tap-highlight-color:transparent!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab .dc-bottom-nav__icon,
body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab .admin-mobile-nav-icon{
  display:block!important;
  font-size:18px!important;
  line-height:1!important;
  margin-bottom:2px!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab .dc-bottom-nav__label,
body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab .nav-label{
  display:block!important;
  font-size:9px!important;
  line-height:1.1!important;
  font-weight:500!important;
  text-align:center!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:100%!important;
  white-space:nowrap!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab.nav-current{
  color:#ffb347!important;
  background:rgba(255,138,0,.12)!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab:active{
  transform:scale(.96)!important;
}

@media (min-width:1024px) and (hover:hover) and (pointer:fine){
  body.admin-mode nav.dc-bottom-nav--admin,
  body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin.admin-mobile-bottom-nav,
  body.admin-mode.admin-mobile-shell nav.admin-mobile-bottom-nav.dc-bottom-nav--admin{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* Touch / phone / tablet — admin dock must stay visible (iOS Safari + PWA). */
@media (pointer:coarse),(hover:none){
  body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin,
  body.admin-mode.admin-mobile-shell nav.admin-mobile-bottom-nav.dc-bottom-nav--admin{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
    bottom:0!important;
    clip-path:none!important;
    height:auto!important;
    max-height:none!important;
    width:100%!important;
    max-width:100%!important;
  }
  body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar,
  body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab,
  body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > a{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
  }
}

/* Legacy flat-grid alias — site-visual targeted direct <a> children; unified shell uses __bar */
@media (max-width:767px){
body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin.admin-mobile-bottom-nav,
body.admin-mode.admin-mobile-shell nav.admin-mobile-bottom-nav.dc-bottom-nav--admin{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:unset!important;
  grid-template-rows:unset!important;
}
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > .dc-bottom-nav__tab,
body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin .dc-bottom-nav__bar > a{
  display:flex!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin[data-dc-nav-count="6"] .dc-bottom-nav__bar{
  justify-content:stretch!important;
  max-width:100%!important;
}

body.admin-mode.admin-mobile-shell nav.dc-bottom-nav--admin[data-dc-nav-count="6"] .dc-bottom-nav__bar > .dc-bottom-nav__tab{
  flex:1 1 0!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}

/* Admin support unread dot (polled by admin-support-alerts.js) */
body.admin-mode nav.dc-bottom-nav--admin .admin-mobile-nav-icon{
  position:relative!important;
}
body.admin-mode nav.dc-bottom-nav--admin .admin-support-nav-dot{
  display:none!important;
  position:absolute!important;
  top:-2px!important;
  right:-4px!important;
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  background:#00d56f!important;
  box-shadow:0 0 0 2px rgba(0,0,0,.75),0 0 10px rgba(0,213,111,.85)!important;
  pointer-events:none!important;
}
body.admin-mode nav.dc-bottom-nav--admin.admin-support-has-unread .admin-support-nav-dot:not([hidden]){
  display:block!important;
  animation:dcBottomNavLiveDotPulse 1s ease-in-out infinite!important;
}

/* DREAMCARS admin nav lock marker: 20260617_dc_bottom_nav_admin_v2 */

/* PWA app-menu cleanup ("Ещё" sheet):
   - "Установить приложение" disappears once the app is installed (standalone).
   - "Уведомления" is removed from the menu entirely — it moved to the header bell. */
body.dc-pwa-standalone .dc-nav-sheet__links a[data-dc-nav-trigger="#pwaInstallBtn"]{display:none!important}
.dc-nav-sheet__links a[data-dc-nav-trigger="#enablePushBtn"]{display:none!important}
