/* ==============================
   app-desktop.css
   Generated by split: keeps base + all rules except mobile max-width media queries.
   Load FIRST.
   ============================== */

/* =========================================================
   AC UI — Foggy Gray Dashboard (Sneat‑inspired)
   Полный рефакторинг app.css: более серый «туманный» фон,
   более выразительные блоки/карточки, спокойная типографика
   ========================================================= */

/* ---------- Локальные шрифты ---------- */
@font-face{font-family:"Melancholy";src:url("/static/fonts/MelancholySerif.otf") format("opentype");font-weight:400 900;font-style:normal;font-display:swap;}
@font-face{font-family:"Rubik";src:url("/static/fonts/Rubik-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Rubik";src:url("/static/fonts/Rubik-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Rubik";src:url("/static/fonts/Rubik-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"STIX Two Text";src:url("/static/fonts/STIXTwoText.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"STIX Two Text";src:url("/static/fonts/STIXTwoText-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap;}

/* ---------- Токены темы ---------- */
:root{
  /* Бренд */
  --brand:#fbc90b; --brand-strong:rgb(250, 201, 4); /* мягкое золото */

  /* Чернила / текст */
  --ink:#1F2124; --ink-700:#24262A; --ink-600:#2E3136; --ink-500:#4B4F56; --ink-400:#6C717B; --ink-300:#8D93A0;

  /* Фон: туманный серый */
  --bg:#EBEDF0;                /* базовый серый */
  --bg-2:#F1F3F5;              /* местами светлее */
  --bg-veil:rgba(255,255,255,.45); /* стеклянная вуаль */
  --bg-muted:#F6F7F9;          /* секции */

  /* Панели / карточки */
  --panel:#FFFFFF;             /* чистая карточка */
  --panel-tint:rgba(255,255,255,.86); /* стекло‑карточка */

  /* Границы */
  --border:#D9DCE2;            /* основной серый */
  --border-strong:#C8CCD5;     /* акцентная граница */
  --border-soft:#E7E9EE;       /* мягкие разделители */

  /* Тени (выразительные, но аккуратные) */
  --elev-1:0 4px 12px rgba(18,20,24,.06), 0 1px 0 rgba(18,20,24,.06);
  --elev-2:0 10px 24px rgba(18,20,24,.10), 0 1px 0 rgba(18,20,24,.06);
  --elev-3:0 18px 44px rgba(18,20,24,.14), 0 1px 0 rgba(18,20,24,.06);

  /* Фокус */
  --focus:0 0 0 .22rem rgba(255,214,98,.3);

  /* Шрифты */
  --font-ui:"Public Sans","Inter","Rubik",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --font-text:"STIX Two Text","Public Sans","Inter","Rubik",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --font-head:"Public Sans","Inter","Rubik",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;

  /* Начертания: спокойнее */
  --head-wt:500;
  --body-wt:300;
  --ui-wt:500;

  /* Радиусы и контейнеры */
  --radius-xs:.5rem; --radius:.9rem; --radius-lg:1.25rem; --radius-xl:1.85rem;
  --pad-section:clamp(1.1rem, 2.2vw, 2rem);
  --container-wide:1340px; --container-narrow:920px;

  --ease:cubic-bezier(.22,.55,.2,1);

  /* Каркас дашборда */
  --header-h:56px; --sep-h:3px; --aside-w:264px; --aside-w-min:60px;
}

/* =========================================================
   БАЗА
   ========================================================= */
html{scroll-behavior:smooth;height:100%;}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}}
body,.site-body{
  min-height:100%;
  font-family:var(--font-ui);
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 10% 0%, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 60%),
    radial-gradient(900px 500px at 90% 10%, rgba(255,255,255,.45) 0%, rgba(255,255,255,0) 55%),
    linear-gradient(180deg, #F5F6F8 0%, #ECEFF3 30%, #E7EAF0 100%);
  background-color:var(--bg);
  line-height:1.72;
  font-weight:var(--body-wt);
  font-size:clamp(15.5px, .95vw + .6rem, 16.5px);
  letter-spacing:.02px;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
/* Едва заметный «туман» в контейнерах секций */
.fog-layer{backdrop-filter:saturate(120%) blur(6px);-webkit-backdrop-filter:saturate(120%) blur(6px);background:var(--bg-veil);}

::selection{background:rgba(255,214,98,.42);color:#121212;}
hr{opacity:.28;margin:1rem 0;border-color:var(--border-soft);} 
.small,.text-muted{font-family:var(--font-ui);color:var(--ink-400)!important;font-weight:400;letter-spacing:.06px;}

.container{max-width:var(--container-wide);} 
.container-narrow{max-width:var(--container-narrow);margin-inline:auto;}

/* Длинные тексты */
.prose{font-family:var(--font-text);font-size:1.02rem;line-height:1.85;color:#24262B;}
.prose h1,.prose h2,.prose h3{font-family:var(--font-head);font-weight:var(--head-wt);letter-spacing:.15px;color:#181A1F;}
.prose p + p{margin-top:.8em;}

/* =========================================================
   ТИПОГРАФИКА
   ========================================================= */
 h1,h2,h3,h4,h5,h6{font-family:var(--font-head);font-weight:var(--head-wt);letter-spacing:.18px;color:#17191E;}
 h1{line-height:1.18;font-size:clamp(28px,3.0vw,40px);} 
 h2{line-height:1.22;font-size:clamp(21px,2.1vw,29px);} 
 h3{line-height:1.25;font-size:clamp(17px,1.45vw,20px);} 
 h4{line-height:1.28;font-size:clamp(15px,1.2vw,18px);} 
 .lead,.section-lead{color:var(--ink-500);font-weight:300;}
 p{margin-bottom:1em;}
 a{color:#2C2F35;text-decoration:none;font-weight:500;}
 a:hover{color:#0F1114;text-decoration:none;}

/* =========================================================
   ИКОНКИ / SVG
   ========================================================= */
.logo-bg{fill:var(--brand);} 
.logo-stroke{stroke:var(--ink-700);} 
.svg-icon,.icon{color:var(--ink-600);} 
svg [stroke="#000"],.icon [stroke="#000"]{stroke:var(--ink-700)!important;} 
svg [fill="#000"]{fill:var(--ink-700)!important;} 
.svg-icon [stroke]:not([stroke="none"]){stroke:currentColor;} 
.svg-icon [fill]:not([fill="none"]){fill:currentColor;}

/* =========================================================
   ХЕДЕР / НАВИГАЦИЯ (стекло + туман)
   ========================================================= */
.site-header{position:sticky;top:env(safe-area-inset-top);z-index:1030;background:rgba(245,247,250,.75);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);box-shadow:0 1px 0 var(--border), 0 12px 24px rgba(18,20,24,.05);} 
.navbar{--bs-navbar-padding-y:.4rem;min-height:var(--header-h);} 
.navbar-brand{font-family:var(--font-head);font-weight:600;letter-spacing:.04px;color:var(--ink-700);font-size:1rem;line-height:1;padding:.35rem .6rem;border-radius:.8rem;} 

.main-nav{gap:.28rem;} 
.navbar .nav-link{
  position:relative;font-family:var(--font-ui);color:var(--ink-600);
  font-weight:600;letter-spacing:.04px;padding:.44rem .8rem;border-radius:1rem;background:linear-gradient(180deg,#fff, #F9FAFB);
  border:1px solid var(--border);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, var(--elev-1);
  transition:background-color .16s var(--ease), color .16s var(--ease), transform .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.navbar .nav-link:hover,.navbar .nav-link:focus,.navbar .nav-link.active{
  background:linear-gradient(180deg,#FFF8D2,#FFEFA4);
  color:#0F0F0F;border-color:var(--brand-strong);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 10px 20px rgba(255,214,98,.25);
  transform:translateY(-1px);
}

/* Выпадающие */
@media (min-width: 992px){.dropdown:hover > .dropdown-menu{display:block;}}
.dropdown-menu{border-radius:1rem;border:1px solid var(--border);box-shadow:var(--elev-2);padding:.45rem;font-family:var(--font-ui);background:linear-gradient(180deg,#fff,#F7F9FC);} 
.dropdown-item{border-radius:.65rem;font-weight:500;color:var(--ink-600);} 
.dropdown-item:hover{background:#FFF2BD;color:#0F0F0F;}
.main-nav-sep{height:var(--sep-h);background:var(--brand);box-shadow:inset 0 -1px 0 rgba(0,0,0,.05);} 

/* Поиск */
.nav-search{position:relative;width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border:1px solid var(--border);border-radius:999px;background:linear-gradient(180deg,#fff,#F6F8FB);cursor:pointer;box-shadow:var(--elev-1);transition:box-shadow .16s var(--ease), transform .16s var(--ease), border-color .16s var(--ease), background-color .16s var(--ease);} 
.nav-search:hover{transform:translateY(-1px);border-color:var(--brand-strong);background:linear-gradient(180deg,#FFF8D2,#FFEFA4);}
.nav-search .ico{font-size:18px;line-height:1;}
.search-panel{position:absolute;left:0;right:0;top:100%;transform:translateY(10px);padding:.8rem;display:none;} 
.search-panel.is-open{display:block;} 
.search-panel .search-box{display:flex;gap:.5rem;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:1rem;padding:.4rem .6rem;box-shadow:var(--elev-2);font-family:var(--font-ui);} 
.search-panel .search-box input{border:none;outline:none;flex:1 1 auto;padding:.6rem .4rem;font-size:1rem;background:transparent;} 
.search-panel .search-box .btn{white-space:nowrap;}

/* =========================================================
   СЕКЦИИ
   ========================================================= */
.section{position:relative;padding:var(--pad-section) 0;background:transparent;} 
.section + .section{border-top:1px solid var(--border-soft);} 
.section-alt{background:var(--bg-muted);} 
.section-muted{background:var(--bg-muted);} 
.section-alt .container,.section-muted .container{background:var(--panel-tint);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-1);padding:clamp(1rem,1.5vw,1.4rem);} 
.section-head{margin-bottom:1rem;} 
.section-title{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-family:var(--font-head);color:#1B1D22;} 
.section-title::after{content:"";display:inline-block;width:76px;height:7px;border-radius:999px;background:var(--brand);} 

/* =========================================================
   HERO
   ========================================================= */
.hero{background:transparent;} 
.hero .container{border-bottom:5px solid var(--brand);padding-bottom:.9rem;box-shadow:0 1px 0 var(--border-soft);} 
.hero-title{font-family:var(--font-head);font-weight:600;} 
.hero-lead{color:var(--ink-500);} 

/* =========================================================
   КАРТОЧКИ / KPI — более выразительные
   ========================================================= */
.kpi{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:1.1rem;background:linear-gradient(180deg,#fff,#F8FAFD);box-shadow:var(--elev-2);} 
.kpi-value{font-size:clamp(21px,2.1vw,26px);font-weight:700;font-family:var(--font-ui);color:#181B20;} 
.kpi-label{font-size:.92rem;color:var(--ink-400);font-family:var(--font-ui);font-weight:400;} 

.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff,#F8FAFD);box-shadow:var(--elev-2);transition:transform .14s var(--ease), box-shadow .14s var(--ease), border-color .14s var(--ease);} 
.card:hover{transform:translateY(-2px);box-shadow:var(--elev-3);border-color:var(--border-strong);} 
.card .card-header{border-bottom:1px dashed var(--border-strong);background:linear-gradient(180deg,#fff,#F5F7FB);} 
.card-title{font-weight:700;color:#16191E;} 

/* =========================================================
   ТАБЛИЦЫ / ТАБЫ
   ========================================================= */
.table{--bs-table-bg:#fff;--bs-table-striped-bg:#FDF7D9;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--elev-1);} 
.table thead th{background:linear-gradient(180deg,#FFFFFF,#F6F8FB);border-bottom:2px solid var(--brand);font-weight:600;color:#171A1F;font-family:var(--font-ui);} 
.table tbody tr{border-bottom:1px dashed var(--border-strong);} 
.table tbody tr:hover{background:#FFFCEE;} 
.table .chip{display:inline-block;padding:.22rem .56rem;border-radius:999px;background:#fff;border:1px solid var(--border);font-weight:600;font-family:var(--font-ui);color:#262626;}

.nav-tabs{border-bottom:2px solid var(--border-soft);} 
.nav-tabs .nav-link{font-family:var(--font-ui);font-weight:600;color:var(--ink-600);border-radius:.8rem .8rem 0 0;background:#F2F5FA;border:1px solid transparent;} 
.nav-tabs .nav-link:hover{background:#FFF2BD;} 
.nav-tabs .nav-link.active{border-color:var(--brand) var(--brand) #fff;background:#fff;box-shadow:0 -3px 0 var(--brand) inset;}

/* =========================================================
   АККОРДЕОН / АЛЕРТЫ / НОВОСТИ / ТАЙМЛАЙН
   ========================================================= */
.accordion-item{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--elev-1);} 
.accordion-button{font-weight:600;font-family:var(--font-ui);color:#1b1b1b;} 
.accordion-button:not(.collapsed){background:#FFF2BD;color:#0E0E0E;box-shadow:inset 0 -1px 0 rgba(0,0,0,.045);} 
.alert{border-radius:var(--radius);box-shadow:var(--elev-2);border:1px solid var(--border);font-family:var(--font-ui);background:linear-gradient(180deg,#fff,#F6F8FB);} 
.alert[role="alert"]{border-left-width:8px;} 
.alert-warning,.alert-warning[role="alert"]{border-left-color:var(--brand)!important;}

.news-card{position:relative;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#F6F8FB);box-shadow:var(--elev-2);border-radius:var(--radius);} 
.news-card::after{content:"";position:absolute;inset:auto 0 0 0;height:5px;background:var(--brand);} 
.news-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:0 12px 28px rgba(18,20,24,.12);} 
.news-card .category{color:#0E0E0E;background:var(--brand);border:2px solid var(--brand-strong);border-radius:999px;padding:.22rem .56rem;font-weight:700;font-size:.8rem;letter-spacing:.04px;font-family:var(--font-ui);} 
.news-card .title{font-weight:700;font-family:var(--font-head);color:#151515;} 
.news-card .meta{color:var(--ink-400);font-family:var(--font-ui);font-weight:400;}

/* Таймлайн */
.timeline{position:relative;padding-left:1.7rem;margin-left:.2rem;} 
.timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);box-shadow:0 0 0 5px rgba(255,214,98,.11);} 
.timeline-item{position:relative;margin-bottom:.9rem;padding-left:.95rem;font-family:var(--font-text);} 
.timeline-item::before{content:"";position:absolute;left:-.62rem;top:.26rem;width:1rem;height:1rem;border-radius:50%;background:#2B2B2B;box-shadow:0 0 0 4px var(--brand),0 0 0 7px rgba(255,214,98,.14);} 
.timeline-item .fw-bold{position:relative;display:inline-block;font-weight:700;color:#151515;} 
.timeline-item .fw-bold::after{content:"";display:block;height:3px;margin-top:.28rem;background:var(--brand);border-radius:999px;}

/* =========================================================
   ФОРМЫ
   ========================================================= */
.form-label{font-weight:600;font-family:var(--font-ui);color:#1c1c1c;} 
.form-control,.form-select,.input-group-text{
  border-radius:1rem;border-color:var(--border);box-shadow:inset 0 1px 0 rgba(18,20,24,.03), var(--elev-1);
  background:linear-gradient(180deg,#fff,#F7F9FD);font-family:var(--font-ui);font-weight:400;color:#1c1c1c;
}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:var(--focus);} 
::placeholder{color:var(--ink-300);} 
.form-check-input:focus{box-shadow:var(--focus);border-color:var(--brand);} 
.form-check-input:checked{background-color:#2A2A2A;border-color:#2A2A2A;}

/* Фильтры‑чипы */
.input-chip{display:inline-flex;align-items:center;gap:.38rem;padding:.42rem .82rem;border-radius:999px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#F6F8FB);font-family:var(--font-ui);font-weight:700;cursor:pointer;color:#232323;box-shadow:var(--elev-1);transition:transform .12s var(--ease), box-shadow .12s var(--ease), border-color .12s var(--ease), background .12s var(--ease);} 
.input-chip:hover{background:linear-gradient(180deg,#FFF8D2,#FFEFA4);border-color:var(--brand-strong);box-shadow:0 10px 22px rgba(255,214,98,.22);transform:translateY(-1px);color:#0E0E0E;}

/* =========================================================
   КНОПКИ
   ========================================================= */
.btn{border-radius:1rem;font-weight:800;letter-spacing:.04px;font-family:var(--font-ui);box-shadow:var(--elev-1);transition:transform .12s var(--ease), box-shadow .12s var(--ease);} 
.btn:active{transform:translateY(0);} 
.btn-primary{background:linear-gradient(180deg,#FFE889,#FFD662);color:#0E0E0E;border:2px solid var(--brand-strong);box-shadow:0 10px 22px rgba(255,214,98,.18);} 
.btn-primary:hover{box-shadow:0 14px 30px rgba(255,214,98,.26);transform:translateY(-1px);} 
.btn-primary:focus{box-shadow:var(--focus);} 
.btn-dark{background:#2A2A2A;border:2px solid #2A2A2A;color:#fff;} 
.btn-dark:hover{background:#202020;border-color:#202020;transform:translateY(-1px);} 
.btn-outline-dark{border:2px solid #2A2A2A;color:#2A2A2A;background:linear-gradient(180deg,#fff,#F6F8FB);} 
.btn-outline-dark:hover{background:#2A2A2A;color:#fff;border-color:#2A2A2A;}

/* Мягкая перекраска .btn-dark вне хедера/футера */
.section .btn-dark,.card .btn-dark,.alert .btn-dark,.cookie-banner .btn-dark,.hero .btn-dark,.site-body .btn-dark{
  background:linear-gradient(180deg,#FFE889,#FFD662)!important;color:#0E0E0E!important;border:2px solid var(--brand-strong)!important;box-shadow:0 10px 22px rgba(255,214,98,.18)!important;
}
.section .btn-dark:hover,.card .btn-dark:hover,.alert .btn-dark:hover,.cookie-banner .btn-dark:hover,.hero .btn-dark:hover,.site-body .btn-dark:hover{
  box-shadow:0 14px 30px rgba(255,214,98,.26)!important;transform:translateY(-1px);
}
.section .btn-dark:active,.card .btn-dark:active,.alert .btn-dark:active,.cookie-banner .btn-dark:active,.hero .btn-dark:active,.site-body .btn-dark:active{
  transform:translateY(0);box-shadow:0 6px 14px rgba(255,214,98,.2)!important;
}
.site-footer .btn-dark,.site-header .btn-dark{background:#2A2A2A!important;color:#fff!important;border-color:#2A2A2A!important;box-shadow:none!important;}

/* =========================================================
   ПАГИНАЦИЯ / ХЛЕБНЫЕ / БЕЙДЖИ
   ========================================================= */
.pagination .page-link{border-radius:1rem;border:1px solid var(--border);font-weight:700;background:linear-gradient(180deg,#fff,#F6F8FB);font-family:var(--font-ui);color:#212121;box-shadow:var(--elev-1);} 
.pagination .page-item.active .page-link{background:#2A2A2A;border-color:#2A2A2A;color:#fff;} 
.breadcrumb .breadcrumb-item a{color:var(--ink-600);font-family:var(--font-ui);font-weight:600;} 
.badge.rounded-pill{border-radius:999px;font-weight:800;font-family:var(--font-ui);} 
.badge.bg-dark{background-color:#2A2A2A!important;}

/* =========================================================
   ГАЛЕРЕЯ / ПАРТНЁРЫ / СТАТУСЫ
   ========================================================= */
.partners-logos img{filter:grayscale(30%) contrast(105%);transition:filter .2s var(--ease), transform .2s var(--ease);max-height:32px;} 
.partners-logos img:hover{filter:none;transform:translateY(-2px);} 
.gallery .gallery-item{display:block;border-radius:1rem;overflow:hidden;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#F7F9FD);box-shadow:var(--elev-2);} 
.gallery .gallery-item img{display:block;width:100%;height:auto;} 
.status-list{display:grid;gap:.55rem;font-family:var(--font-ui);} 
.status-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem .95rem;background:linear-gradient(180deg,#fff,#F6F8FB);border:1px solid var(--border);border-radius:1rem;color:#202020;box-shadow:var(--elev-1);} 
.status-dot{width:.9rem;height:.9rem;border-radius:999px;display:inline-block;box-shadow:inset 0 0 0 2px #00000010;} 
.status-dot.ok{background:#2ECC71;} 
.status-dot.warn{background:var(--brand);} 
.status-dot.err{background:#E74C3C;}

/* =========================================================
   ГРАФИКИ (плейсхолдер)
   ========================================================= */
.chart-card{background:linear-gradient(180deg,#fff,#F6F8FB);border:1px solid var(--border);border-radius:1.1rem;box-shadow:var(--elev-2);} 
.chart-box{height:220px;border-radius:1rem;background:linear-gradient(180deg,#FFF6CF,#FFF0B1);position:relative;border:1px dashed var(--border-strong);} 
.chart-spark{height:64px;border-radius:.9rem;background:#FFF2BD;position:relative;border:1px dashed var(--border-strong);} 

/* =========================================================
   ПРОГРЕСС‑БАРЫ
   ========================================================= */
.progress{height:12px;background:#FFEFAF;border:1px solid var(--border);border-radius:999px;box-shadow:inset 0 2px 3px rgba(0,0,0,.02);} 
.progress-sm{height:8px;} 
.progress-lg{height:16px;} 
.progress-bar{background:linear-gradient(90deg, var(--brand) 0%, #ffe07f 100%);color:#0E0E0E;font-weight:800;font-family:var(--font-ui);border-radius:999px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.05), 0 3px 8px rgba(255,214,98,.26);transition:width .35s var(--ease);} 

/* =========================================================
   МОДАЛЬНЫЕ / OFFCANVAS
   ========================================================= */
.modal-content{border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg,#fff,#F6F8FB);box-shadow:var(--elev-3);} 
.modal-header{border-bottom:1px solid var(--border);background:#FFF2BD;} 
.modal-footer{border-top:1px solid var(--border);} 
.modal .form-control:focus,.modal .form-select:focus{box-shadow:var(--focus);border-color:var(--brand);} 
.modal .btn-ghost{border-style:dashed;} 
.offcanvas{border-left:1px solid var(--border);background:linear-gradient(180deg,#fff,#F6F8FB);box-shadow:-12px 0 36px rgba(0,0,0,.06);} 
.offcanvas-header{border-bottom:1px solid var(--border);} 
.offcanvas .list-group-item{border:none;border-radius:.8rem;margin:.1rem 0;color:var(--ink-600);} 
.offcanvas .list-group-item:hover{background:#FFF2BD;}

/* =========================================================
   COOKIE‑BANNER
   ========================================================= */
.cookie-banner{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(150%);background:linear-gradient(180deg,#fff,#F6F8FB);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--elev-3);width:min(90%,700px);padding:1rem 1.4rem;z-index:2000;opacity:0;transition:all .35s var(--ease);font-family:var(--font-ui);} 
.cookie-banner.show{transform:translateX(-50%) translateY(0);opacity:1;} 
.cookie-content{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;} 
.cookie-content p{margin:0;color:var(--ink-500);font-size:.95rem;} 
.cookie-content a{color:var(--ink-600);text-decoration:underline;} 
.cookie-content a:hover{color:#111;} 
.cookie-banner .actions{flex-shrink:0;}

/* =========================================================
   DASHBOARD SHELL (фиксированный сайдбар)
   ========================================================= */
.fixed-aside{position:fixed;left:0;top:calc(var(--header-h) + var(--sep-h));height:calc(100dvh - (var(--header-h) + var(--sep-h)));width:var(--aside-w-min);background:linear-gradient(180deg,#FFFFFF,#F6F8FB);border-right:1px solid var(--border);overflow-y:auto;z-index:1025;transition:width .22s var(--ease), box-shadow .22s var(--ease);box-shadow:var(--elev-1);} 
.page{margin-left:var(--aside-w-min);min-height:calc(100dvh - (var(--header-h) + var(--sep-h)));padding-top:.7rem;color:#1e1e1e;}

/* Пункты меню сайдбара */
.fixed-aside .nav .nav-item + .nav-item{margin-top:.28rem;} 
.fixed-aside .nav-link{display:flex;align-items:center;gap:.56rem;padding:.56rem .68rem;border-radius:1rem;font-family:var(--font-ui);font-weight:700;color:var(--ink-600);border:1px solid transparent;background:linear-gradient(180deg,#FFFFFF,#F4F7FB);box-shadow:var(--elev-1);transition:background .12s var(--ease), border-color .12s var(--ease), transform .12s var(--ease), box-shadow .12s var(--ease);} 
.fixed-aside .nav-link:hover{background:linear-gradient(180deg,#FFF8D2,#FFEFA4);border-color:var(--brand-strong);transform:translateY(-1px);box-shadow:0 12px 24px rgba(255,214,98,.22);} 
.fixed-aside .nav-link.active{background:linear-gradient(180deg,#FFE889,#FFD662);color:#0D0D0D;border:1px solid var(--brand-strong);box-shadow:0 12px 26px rgba(255,214,98,.26);} 
.fixed-aside .nav-link .bi{font-size:1.05rem;opacity:.95;} 
.fixed-aside .link-text{width:0;opacity:0;visibility:hidden;white-space:nowrap;overflow:hidden;transition:width .18s var(--ease), opacity .18s var(--ease), visibility .18s var(--ease);} 

/* Десктоп hover‑расширение */
@media (min-width:992px){
  .fixed-aside:hover{width:var(--aside-w);box-shadow:var(--elev-2);} 
  .fixed-aside:hover .nav-link .bi{display:none;} 
  .fixed-aside:hover .link-text{width:auto;opacity:1;visibility:visible;} 
}

/* Мобильный */

.fixed-aside .sidebar-nav{padding:.4rem .4rem .8rem;} 
.fixed-aside .collapse .nav-link{padding:.5rem .65rem;} 
.fixed-aside .collapse .nav-link.active{background:linear-gradient(180deg,#FFE889,#FFD662);} 

/* =========================================================
   DASHBOARD CONTENT
   ========================================================= */
.dashboard-section{display:block;background:linear-gradient(180deg,#FFFFFF,#F6F8FB);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-2);padding:1.05rem;color:#202020;} 
.dashboard-section + .dashboard-section{margin-top:1rem;} 
.empty-state{text-align:center;padding:2.1rem 1rem;border:2px dashed var(--border-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg,#FFFFFF,#F6F8FB);color:#222;box-shadow:var(--elev-1);} 
.empty-state .icon{font-size:2rem;line-height:1;margin-bottom:.38rem;color:var(--ink-500);} 
.empty-state .title{font-family:var(--font-head);font-weight:700;color:#171717;} 
.empty-state .text{color:var(--ink-500);} 
.empty-state .actions{margin-top:.75rem;display:flex;justify-content:center;gap:.5rem;}

.table-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.56rem;margin:.36rem 0 .56rem;} 
.table-toolbar .filters{display:flex;gap:.38rem;align-items:center;} 
.table-toolbar .search{min-width:220px;} 
.table-toolbar .search .form-control{border-radius:999px;}

.dashboard-breadcrumb{font-family:var(--font-ui);font-weight:700;color:var(--ink-400);margin:.2rem 0 .56rem;} 
.dashboard-breadcrumb .breadcrumb-item + .breadcrumb-item::before{content:"›";color:var(--ink-300);} 

/* Мини‑хедер в aside */
.aside-title{font-family:var(--font-ui);font-weight:800;letter-spacing:.05px;color:var(--ink-400);text-transform:uppercase;font-size:.78rem;padding:.22rem .2rem .32rem;margin:.1rem 0 .32rem;border-bottom:2px dotted var(--border-strong);} 

/* =========================================================
   ФУТЕР
   ========================================================= */
.site-footer{background:linear-gradient(180deg,#FFFFFF,#F6F8FB);border-top:3px solid var(--brand);padding:.95rem 0 .7rem;box-shadow:0 -8px 22px rgba(0,0,0,.03) inset, var(--elev-1);color:#222;} 
.footer-top{display:grid;gap:1.1rem;grid-template-columns:repeat(12,1fr);} 
.footer-brand{grid-column:span 4;} 
.footer-cols{grid-column:span 8;display:grid;gap:.95rem;grid-template-columns:repeat(3,1fr);} 
.footer-title{font-family:var(--font-ui);font-weight:800;letter-spacing:.05px;margin-bottom:.48rem;position:relative;display:inline-block;color:#1a1a1a;} 
.footer-title::after{content:"";display:block;height:4px;background:var(--brand);border-radius:999px;margin-top:.22rem;width:60px;} 
.footer-link{display:inline-flex;align-items:center;gap:.38rem;color:var(--ink-600);font-family:var(--font-ui);font-weight:600;padding:.22rem 0;border-radius:.5rem;} 
.footer-link:hover{color:#0f0f0f;background:#FFF2BD;} 
.footer-badge{display:inline-block;padding:.14rem .42rem;font-size:.72rem;border-radius:999px;background:#FFEAA0;border:1px solid var(--brand-strong);font-weight:800;color:#0f0f0f;} 
.footer-newsletter .form-control{border-radius:999px;} 
.footer-newsletter .btn{border-radius:999px;} 
.footer-social{display:flex;gap:.48rem;} 
.footer-social a{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(180deg,#FFFFFF,#F6F8FB);border:1px solid var(--border);box-shadow:var(--elev-1);transition:transform .12s var(--ease), box-shadow .12s var(--ease), background .12s var(--ease), border-color .12s var(--ease);} 
.footer-social a:hover{background:linear-gradient(180deg,#FFF8D2,#FFEFA4);border-color:var(--brand-strong);transform:translateY(-1px);} 
.footer-bottom{border-top:1px dashed var(--border-strong);margin-top:1.1rem;padding-top:.38rem;} 
.footer-accent-line{height:3px;background:var(--brand);opacity:.52;} 
.footer-accent-line--soft{height:2px;background:var(--brand);opacity:.2;}

/* =========================================================
   АДАПТИВ
   ========================================================= */




/* =========================================================
   УТИЛИТЫ
   ========================================================= */
.u-shadow-1{box-shadow:var(--elev-1)!important;}
.u-shadow-2{box-shadow:var(--elev-2)!important;}
.u-shadow-3{box-shadow:var(--elev-3)!important;}
.u-rounded{border-radius:var(--radius)!important;}
.u-rounded-lg{border-radius:var(--radius-lg)!important;}
.u-border{border:1px solid var(--border)!important;}
.u-highlight{background:#FFF2BD!important;}
.u-divider{height:8px;border-radius:999px;background:var(--brand);box-shadow:inset 0 -1px 0 rgba(0,0,0,.05);} 
.u-hr-dotted{width:100%;height:0;border:none;border-top:2px dotted var(--border-strong);margin:1rem 0;} 

/* =========================================================
   КОНЕЦ
   ========================================================= */

/* =========================================================
   AC UI — Foggy Gray • Strict Lite Pass (Overrides only)
   Добавить в КОНЕЦ файла. Ничего не удаляет.
   Цели:
   - Менее скругленные блоки
   - Меньше разных фонов (градиентов) у блоков
   - Меньше fade/hover-анимаций и трансформаций
   - Строже и мягче тени
   - Светлее серые подложки
   ========================================================= */

/* 1) Базовые токены: деликатнее радиусы/тени, светлее фон */
:root{
  /* радиусы чуть строже */
  --radius-xs: .25rem;
  --radius:   .5rem;
  --radius-lg:.75rem;
  --radius-xl:1rem;

  /* светлее фоновые серые */
  --bg:        #F4F6F8;   /* было #EBEDF0 */
  --bg-2:      #F7F8FA;
  --bg-muted:  #F7F8FA;

  /* мягче и «ниже» тени */
  --elev-1: 0 2px 8px rgba(18,20,24,.05);
  --elev-2: 0 8px 18px rgba(18,20,24,.08);
  --elev-3: 0 14px 30px rgba(18,20,24,.10);

  /* фокус менее навязчивый */
  --focus: 0 0 0 .18rem rgba(255,214,98,.22);
}

/* 2) Фон страницы — менее «пёстрый» */
body,.site-body{
  background: #F4F6F8;                   /* единый светло-серый */
  background-image: none !important;      /* скрыть декоративные градиенты */
}

/* 3) Унификация подложек (карточки/панели/KPI/таблицы/алерты) */
.card,
.kpi,
.alert,
.table,
.dashboard-section,
.empty-state,
.gallery .gallery-item,
.status-item,
.chart-card,
.accordion-item,
.offcanvas,
.modal-content,
.section-alt .container,
.section-muted .container{
  background: #FFFFFF !important;
  background-image: none !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--elev-1) !important;
}

/* заголовки карточек и thead — без градиентов */
.card .card-header,
.table thead th,
.modal-header,
.offcanvas-header{
  background: #FAFBFC !important;
  background-image: none !important;
}

/* 4) Сокращаем «подпрыгивания» и fade-эффекты */
.card,
.kpi,
.alert,
.navbar .nav-link,
.input-chip,
.footer-social a,
.fixed-aside .nav-link,
.btn{
  transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease, color .12s ease !important;
}

.card:hover,
.kpi:hover,
.alert:hover,
.footer-social a:hover,
.fixed-aside .nav-link:hover,
.navbar .nav-link:hover{
  transform: none !important;             /* без сдвигов/scale */
  box-shadow: var(--elev-2) !important;   /* просто мягче тень */
}

/* 5) Навигация/кнопки — спокойнее */
.navbar .nav-link{
  background: #FFFFFF !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--elev-1) !important;
}
.navbar .nav-link.active,
.navbar .nav-link:hover,
.navbar .nav-link:focus{
  background: #FFF8D2 !important;         /* один спокойный акцент */
  box-shadow: var(--elev-2) !important;
}

.btn{
  border-radius: .75rem !important;       /* строже */
  box-shadow: var(--elev-1) !important;
}
.btn-primary{
  background: #FFD662 !important;
  background-image: none !important;
}
.btn-primary:hover{ box-shadow: var(--elev-2) !important; }
.btn-dark{
  background: #2A2A2A !important;
  background-image: none !important;
}

/* 6) Формы — без «стеклянных» переливов */
.form-control,
.form-select,
.input-group-text{
  background: #FFFFFF !important;
  background-image: none !important;
  box-shadow: inset 0 1px 0 rgba(18,20,24,.03), var(--elev-1) !important;
  border-radius: .65rem !important;
}

/* 7) Таблицы — ровные строки, без ярких hover */
.table tbody tr:hover{
  background: #FFFDF2 !important;         /* мягкий еле заметный */
}

/* 8) Чипы/бейджи/пагинация — унифицированный белый */
.input-chip,
.pagination .page-link,
.badge.rounded-pill{
  background: #FFFFFF !important;
  background-image: none !important;
  box-shadow: var(--elev-1) !important;
}

/* 9) Хедер/футер — убираем сильные блики и градиенты */
.site-header,
.site-footer{
  background: #FFFFFF !important;
  background-image: none !important;
  box-shadow: 0 1px 0 var(--border), var(--elev-1) !important;
}

/* 10) Сайдбар — без расширения тенью и с ровными плитками */
.fixed-aside{
  background: #FFFFFF !important;
  background-image: none !important;
  box-shadow: var(--elev-1) !important;
}
.fixed-aside .nav-link{
  background: #FFFFFF !important;
  background-image: none !important;
}
.fixed-aside .nav-link.active{
  background: #FFE889 !important;
}

/* 11) Хиро/секции — без нижних «подсветок» и градиентов */
.hero .container{
  box-shadow: none !important;
  border-bottom: 3px solid var(--brand) !important; /* тоньше линия */
}

/* 12) Анимации прогресса — короче */
.progress-bar{
  transition: width .25s ease !important;
}

/* 13) Снижаем контраст hover-рамок везде (деликатнее) */
.navbar .nav-link:hover,
.fixed-aside .nav-link:hover,
.input-chip:hover{
  border-color: var(--border) !important;
}

/* 14) Утилиты — радиусы/тени в новом духе */
.u-rounded{ border-radius: var(--radius) !important; }
.u-rounded-lg{ border-radius: var(--radius-lg) !important; }
.u-shadow-1{ box-shadow: var(--elev-1) !important; }
.u-shadow-2{ box-shadow: var(--elev-2) !important; }
.u-shadow-3{ box-shadow: var(--elev-3) !important; }

/* =========================================================
   Конец override-пакета
   ========================================================= */

/* === App Bar (boxed/header) — shared === */
.app-bar-wrap{
  position: sticky;
  top: env(safe-area-inset-top);
  z-index: 1030;
  padding: .6rem .6rem 0;        /* чтобы бар «дышал» от краёв окна */
  background: transparent;
}
.app-bar{
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: .75rem;
  box-shadow: var(--elev-2);
  backdrop-filter: saturate(140%) blur(6px);
  -webkit-backdrop-filter: saturate(140%) blur(6px);
  /* ширина: аккуратно в центре, не на весь экран */
  max-width: min(1180px, 96vw);
  margin: 0 auto;
  padding: .25rem .5rem;
}

/* Внутри — переиспользуем стандартный navbar, но убираем «растяжение» */
.app-bar .navbar{
  min-height: var(--header-h);
  border-radius: .75rem;
  background: transparent !important;
  box-shadow: none !important;
  padding-top: .25rem;
  padding-bottom: .25rem;
}
.app-bar .navbar .container,
.app-bar .navbar .container-fluid{
  padding-left: .75rem;
  padding-right: .75rem;
}

/* Кнопки/линки в баре — спокойные ховеры, без «подпрыгиваний» */
.app-bar .nav-link,
.app-bar .btn{
  transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease, color .12s ease !important;
}
.app-bar .nav-link{
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: .6rem;
  box-shadow: var(--elev-1);
  padding: .44rem .75rem;
  color: var(--ink-600);
  font-weight: 600;
}
.app-bar .nav-link:hover,
.app-bar .nav-link:focus,
.app-bar .nav-link.active{
  background: #FFF8D2;
  border-color: var(--border);
  box-shadow: var(--elev-2);
}

/* Тонкая подчёркивающая линия под баром (по мотивам Sneat) */
.app-bar-sep{
  height: 3px;
  background: var(--brand);
  opacity: .7;
  border-radius: 999px;
  max-width: min(1180px, 96vw);
  margin: .4rem auto 0;
}

/* Мобильные корректировки */


/* Убираем старую полосу/сепаратор у глобального хедера, если был */
.site-header .main-nav-sep{ display:none; }

/* === Header polish pack — boxed width, solid menus, text-only links === */

/* Контентная ширина для шапки — ровно как у контейнера сайта */
:root{
  --content-max: var(--container-wide); /* синхронно с .container */
}

/* Коробка хедера — та же ширина, что и у основного контента */
.app-bar{
  max-width: var(--content-max) !important;
  width: 100%;
}

/* Убрать жёлтую линию под хедером */
.app-bar-sep{ display:none !important; }

/* Адаптивный логотип: высота — по вьюпорту, ширина — авто */
.app-bar .navbar-brand img{
  height: clamp(22px, 3.8vw, 34px);
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Ссылки меню: текстовые, без плиток/рамок/теней */
.app-bar .nav-link{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--ink-600) !important;
  padding: .5rem .85rem !important; /* одинаковые кликабельные зоны */
  border-radius: .4rem !important;
  font-weight: 600;
}
.app-bar .nav-link:hover,
.app-bar .nav-link:focus,
.app-bar .nav-link.active{
  background: transparent !important;
  color: #0F0F0F !important;
  text-decoration: underline;
  text-underline-offset: .18em;
}

/* Кнопки в хедере — как текстовые (без обводок) и того же размера */
.app-bar .btn,
.app-bar .btn-ghost,
.app-bar .btn-dark,
.app-bar .btn-outline-dark{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--ink-600) !important;
  padding: .5rem .85rem !important;
  border-radius: .4rem !important;
  line-height: 1.2;
}
.app-bar .btn:hover{ color:#0F0F0F !important; text-decoration: underline; }

/* Дропдауны — без прозрачности и «стекла» */
.dropdown-menu{
  background: #FFF !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--elev-2) !important;
  padding: .35rem !important;
  opacity: 1 !important;
}
.dropdown-item{
  border-radius: .5rem;
  font-weight: 500;
  color: var(--ink-700);
}
.dropdown-item:hover{
  background: #F5F6F8;
  color: #0F0F0F;
}

/* Тогглер на мобильных — компактнее и без рамок */
.navbar-toggler{
  border: none !important;
  box-shadow: none !important;
  padding: .35rem .5rem;
}
.navbar-toggler:focus{ outline: none; box-shadow: none !important; }

/* Коллапс на мобильных — читаемые отступы и сплошной фон */


/* Типографика для ссылок/кнопок в баре — чтобы всегда «садилось» в блоки */
.app-bar .nav-link,
.app-bar .btn{
  font-family: var(--font-ui);
  font-weight: 600;
  letter-spacing: .02px;
  line-height: 1.1;
  white-space: nowrap;
}

/* === Header: текстовый hover, без подчёркиваний и без заливки === */
.app-bar .nav-link,
.app-bar .btn {
  text-decoration: none !important;
}

/* Навигационные ссылки и кнопки в хедере: только цвет текста -> жёлтый */
.app-bar .nav-link:hover,
.app-bar .nav-link:focus,
.app-bar .nav-link:active,
.app-bar .btn:hover,
.app-bar .btn:focus,
.app-bar .btn:active {
  color: var(--brand) !important;         /* жёлтый из темы */
  text-decoration: none !important;       /* без подчёркивания */
  background: transparent !important;     /* без заливки */
  border-color: transparent !important;   /* без обводки */
  box-shadow: none !important;            /* без теней */
}

/* Дропдауны: тоже только цвет текста, без заливки */
.app-bar .dropdown-menu .dropdown-item:hover,
.app-bar .dropdown-menu .dropdown-item:focus,
.app-bar .dropdown-menu .dropdown-item:active {
  background: transparent !important;
  color: var(--brand) !important;
  text-decoration: none !important;
}

/* Кнопки внутри всплывающих окон (модалок/оффканваса) — аналогичное поведение */
.modal .btn-link,
.offcanvas .btn-link {
  color: var(--ink-600);
  text-decoration: none;
}
.modal .btn-link:hover,
.offcanvas .btn-link:hover,
.modal .btn-link:focus,
.offcanvas .btn-link:focus {
  color: var(--brand) !important;
  text-decoration: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Мобильный коллапс хедера: читаемые отступы, без визуального шума */


/* На всякий: убираем прежнее подчёркивание из "polish pack" */
.app-bar .nav-link:hover,
.app-bar .nav-link:focus,
.app-bar .nav-link.active {
  text-decoration: none !important; /* переопределяем прежнее underline */
}

/* ============== Footer (public) ============== */
.ac-footer{ background: transparent; }
.ac-footer .ac-footer-surface{
  background: #fff;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 1rem;
  box-shadow: var(--elev-2, 0 6px 24px rgba(0,0,0,.05));
}
.ac-foot-title{
  font-weight: 700;
  margin: 0 0 .35rem;
  color: #1a1a1a;
}
.ac-foot-link{
  text-decoration: none;
  color: #5b5b5b;
  font-weight: 600;
}
.ac-foot-link:hover{ color: #111; text-decoration: underline; text-underline-offset: .15em; }
.ac-foot-divider{
  border-top: 2px solid rgba(0,0,0,.06);
  position: relative;
}
.ac-foot-divider::after{
  content:"";
  position:absolute; left:0; top:-2px;
  width:140px; height:2px;
  background: var(--brand, #ffd44d); /* ваш жёлтый */
  border-radius: 4px;
  opacity:.7;
}

/* ============== Footer small (dashboard) ============== */
/* Обновлённый footer_small — прозрачный, без разделителей */
.ac-footer-sm {
  background: transparent !important;
  border-top: none !important;
  box-shadow: none !important;
}

.ac-footer-sm-line,
.ac-footer-sm-line--soft {
  display: none !important; /* убираем линии */
}

.ac-footer-sm-link {
  color: #6b7280;
  text-decoration: none;
  font-weight: 600;
  transition: color .15s ease;
}
.ac-footer-sm-link:hover {
  color: var(--brand, #ffd44d);
  text-decoration: none;
}

/* === Aside: активная иконка — круглым бейджем при свёрнутом aside === */
.fixed-aside{ overflow-x:hidden; } /* без нижнего скролла */
.fixed-aside .sidebar-nav{ scrollbar-gutter: stable both-edges; }

/* Кружок у активной иконки, когда aside в "узком" состоянии (не hover на десктопе) */
@media (min-width: 992px){
  .fixed-aside:not(:hover) .nav-link.active .bi {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #FFF7D0;                 /* мяглый фон */
    border: 1px solid var(--border);      /* тонкая обводка */
    box-shadow: var(--elev-1);            /* лёгкая тень */
    font-size: 1rem;
  }

  /* А чтобы овал не появлялся — чистим паддинги текста у активного */
  .fixed-aside:not(:hover) .nav-link.active {
    padding-top: .56rem; padding-bottom: .56rem;
  }
}

/* Когда aside развёрнут hover'ом — пусть иконка обычная */
@media (min-width: 992px){
  .fixed-aside:hover .nav-link .bi {
    width:auto; height:auto; background:transparent; border:none; box-shadow:none;
  }
}

/* === Aside scrollbars — минималистичные, появляются по hover === */
.fixed-aside{
  overflow-y: auto;
  overflow-x: hidden;    /* убрать нижний (горизонтальный) скроллбар */
  scrollbar-width: none; /* Firefox: по умолчанию скрыт */
}
.fixed-aside:hover{ scrollbar-width: thin; }

/* WebKit */
.fixed-aside::-webkit-scrollbar{ width: 0; height: 0; }
.fixed-aside:hover::-webkit-scrollbar{ width: 6px; }
.fixed-aside:hover::-webkit-scrollbar-thumb{
  background: rgba(0,0,0,.18);
  border-radius: 10px;
}
.fixed-aside:hover::-webkit-scrollbar-track{
  background: transparent;
}

/* Контент дашборда — та же ширина, что у app-bar */
:root{ --content-max: var(--container-wide); }
.page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}
/* Сокращаем App Bar в кабинете (чистый вид) */
.app-nav--dashboard .input-group,
.app-nav--dashboard .btn[title="Создать"],
.app-nav--dashboard .btn[title="Уведомления"]{
  display: none !important;
}

/* === Сайдбар: фикс на 100% высоты и без «подпрыгиваний» === */
/* Уже есть: .fixed-aside{ position:fixed; top:calc(var(--header-h)+var(--sep-h)); height:calc(100dvh - (var(--header-h) + var(--sep-h))); ... }  */
/* Добавим ровную высоту элементов, одинаковые паддинги и уберём любые трансформы */
.fixed-aside .nav-link{
  min-height: 42px;
  padding: .56rem .68rem;              /* одинаково для всех состояний */
  line-height: 1.1;
  transform: none !important;          /* чтобы ничего не «подпрыгивало» */
}
.fixed-aside .nav-link:hover,
.fixed-aside .nav-link:active,
.fixed-aside .nav-link:focus{
  transform: none !important;
}

/* При свёрнутом aside — активная иконка именно в кружке.
   (Это у тебя уже есть, оставляем) */
@media (min-width: 992px){
  .fixed-aside:not(:hover) .nav-link.active .bi {
    display: inline-grid;
    place-items: center;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: #FFF7D0;
    border: 1px solid var(--border);
    box-shadow: var(--elev-1);
    font-size: 1rem;
  }
  .fixed-aside:not(:hover) .nav-link.active {
    padding-top: .56rem; padding-bottom: .56rem; /* без сдвигов */
  }
}

/* В расширенном состоянии (hover на десктопе) — НЕ скрываем иконки.
   Раньше было .fixed-aside:hover .nav-link .bi{display:none;} — удаляем/переопределяем: */
@media (min-width: 992px){
  .fixed-aside:hover .nav-link .bi{
    display: inline-block;             /* оставляем, чтобы не прыгала высота */
    width: auto; height: auto;
    background: transparent; border: none; box-shadow: none;
  }
}

/* Скролл в aside — минималистичный и только при необходимости (уже есть).
   Дополнительно убираем любые горизонтальные скроллы окончательно: */
.fixed-aside{
  overflow-y: auto;
  overflow-x: hidden !important;       /* исключаем нижний скроллбар */
}

/* === Центрирование основного контента «как хедер» === */
/* И хедер .app-bar, и контент .page-inner используют один и тот же max-width */
:root{ --content-max: var(--container-wide); }

.app-bar{
  max-width: var(--content-max) !important;
  margin-inline: auto;
}

/* Для главного контейнера кабинета — без Bootstrap .container (чтобы совпасть пиксель-в-пиксель с app-bar).
   Держим собственные внутренние поля, синхронные с хедером: */
.page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* На всякий случай — убираем любые трансформации у ссылок меню,
   которые могли остаться из ранних версий стилей: */
.navbar .nav-link,
.fixed-aside .nav-link{
  transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease, color .12s ease !important;
}

/* === Маленький футер в кабинете — аккуратно под контентом === */
/* У тебя уже в файле есть ac-footer-sm прозрачный и без линий — оставляем;
   гарантируем правильный отступ сверху: */
.ac-footer-sm{
  margin-top: auto;
}

.fixed-aside .nav-link .badge{ flex-shrink: 0; }
.fixed-aside .nav-link .bi-chevron-down{ line-height: 1; }

/* ==== Dashboard fixes pack — ONLY for личный кабинет ==== */

/* 1) Сайдбар на всю высоту и «под» хедер */
.fixed-aside{
  position: fixed;
  left: 0;
  top: 0;                 /* было top: calc(var(--header-h)+var(--sep-h)) */
  height: 100dvh;         /* было calc(100dvh - (...)) */
  width: var(--aside-w-min);
  z-index: 1020;          /* ниже хедера (1030), чтобы хедер был сверху */
  background: #FFF !important;
  border-right: 1px solid var(--border);
  overflow-y: auto;
  overflow-x: hidden;     /* без нижнего скроллбара */
}

/* 2) При расширении сайдбара — без «подпрыгиваний» и скрытия иконок */
.fixed-aside .nav-link{
  min-height: 42px;
  padding: .56rem .68rem;
  line-height: 1.1;
  transform: none !important;
}
.fixed-aside .nav-link:hover,
.fixed-aside .nav-link:active,
.fixed-aside .nav-link:focus{ transform:none !important; }

/* Не скрываем иконки при hover-расширении (устраняет сдвиг высоты) */
@media (min-width: 992px){
  .fixed-aside:hover{ width: var(--aside-w); box-shadow: var(--elev-2); }
  .fixed-aside:hover .nav-link .bi{
    display: inline-block !important;  /* переопределяет старое display:none */
    width: auto; height:auto; background:transparent; border:none; box-shadow:none;
  }
}

/* 3) Активная кнопка в свёрнутом состоянии — кружок ТОЛЬКО вокруг иконки */
@media (min-width: 992px){
  .fixed-aside:not(:hover) .nav-link.active .bi{
    display:inline-grid;
    place-items:center;
    width:32px; height:32px;
    border-radius:50%;
    background:#FFF7D0;
    border:1px solid var(--border);
    box-shadow: var(--elev-1);
    font-size:1rem;
  }
  .fixed-aside:not(:hover) .nav-link.active{
    padding-top:.56rem; padding-bottom:.56rem; /* без овала и без сдвигов */
  }
}

/* Скроллбар — минималистичный и только при необходимости */
.fixed-aside{ scrollbar-width: none; }
.fixed-aside:hover{ scrollbar-width: thin; }
.fixed-aside::-webkit-scrollbar{ width:0; height:0; }
.fixed-aside:hover::-webkit-scrollbar{ width:6px; }
.fixed-aside:hover::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.18); border-radius:10px; }
.fixed-aside:hover::-webkit-scrollbar-track{ background: transparent; }

/* 4) Контент — пиксель-в-пиксель по центру, как boxed-header */
:root{ --content-max: var(--container-wide); }          /* общая ширина */
.app-bar{ max-width: var(--content-max) !important; }   /* header (boxed) */
.page{ margin-left: var(--aside-w-min); }               /* отступ от сайдбара */
.page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem; padding-right: .75rem;
}

/* 5) Маленький футер — чисто под контентом, без лишних линий */
.ac-footer-sm{ background: transparent !important; margin-top: 1rem; }
.ac-footer-sm-line, .ac-footer-sm-line--soft{ display:none !important; }
.ac-footer-sm-link{ color:#6b7280; text-decoration:none; font-weight:600; }
.ac-footer-sm-link:hover{ color: var(--brand); }

/* === Sneat-aligned layout shell (header/content/footer) === */

/* Десктоп: сдвигаем коробку хедера вправо от узкого сайдбара,
   чтобы ничто не перекрывало зону hover у aside сверху */
@media (min-width: 992px){
  .app-bar-wrap{
    margin-left: var(--aside-w-min);  /* 60px по токенам темы */
  }
  /* Коробка хедера остаётся той же контентной ширины,
     но визуально становится «под контент» справа от aside */
  .app-bar{
    max-width: var(--content-max) !important;
    width: 100%;
  }
  /* Основной контент уже имеет отступ слева в твоём файле:
     .page { margin-left: var(--aside-w-min); } — оставляем */
}

/* Hover-расширение сайдбара из любой точки по высоте */
@media (min-width: 992px){
  .fixed-aside{
    pointer-events: auto;       /* гарантируем, что принимает hover */
  }
  .fixed-aside:hover{
    width: var(--aside-w);      /* раскрытие на hover */
  }
}

/* Контейнер «как у хедера» и для футера */
:root{ --content-max: var(--container-wide); } /* страхуем токен */

.page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* Контейнер внутри footer_small выравниваем с .page-inner */
.ac-footer-sm .container,
.ac-footer-sm .page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* На всякий — ничего не должно «накрывать» область наведения у aside */
.app-bar-wrap{ z-index: 1030; } /* хедер выше контента */
.fixed-aside{ z-index: 1020; }  /* сайдбар под хедером, но не перекрыт им,
                                   т.к. хедер сдвинут вправо */

                                
/* === Dashboard-only (не влияет на public) =================== */
@media (min-width: 992px){
  .layout-dashboard .app-bar-wrap{
    margin-left: var(--aside-w-min); /* сдвиг хедера только в кабинете */
  }
  .layout-dashboard .app-bar{
    max-width: var(--content-max) !important;
    width: 100%;
  }
  /* если у вас основной контейнер в кабинете отличается — оставьте ваш отступ */
  .layout-dashboard .page{
    margin-left: var(--aside-w-min);
  }
}

/* Hover-раскрытие сайдбара — только в кабинете */
@media (min-width: 992px){
  .layout-dashboard .fixed-aside{ pointer-events: auto; }
  .layout-dashboard .fixed-aside:hover{ width: var(--aside-w); }
}

/* Общие токены контейнера (остаются как были) */
:root{ --content-max: var(--container-wide); }

/* Центровка контента кабинета "как у хедера" */
.layout-dashboard .page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* Выравнивание footer_small под контент кабинета */
.layout-dashboard .ac-footer-sm .container,
.layout-dashboard .ac-footer-sm .page-inner{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* Порядок перекрытий только внутри кабинета */
.layout-dashboard .app-bar-wrap{ z-index: 1030; }
.layout-dashboard .fixed-aside{ z-index: 1020; }

/* === FIX: public header shouldn't be shifted === */
@media (min-width: 992px){
  .app-bar-wrap{               /* сброс общего сдвига для всех */
    margin-left: 0 !important;
  }
  .app-bar-wrap--dashboard{    /* сдвиг только для кабинета */
    margin-left: var(--aside-w-min) !important; /* 60px */
  }
}


/* === Sidebar brand (logo+name) and header icon-only profile === */
.sidebar-brand{position:sticky; top:.25rem;}
.brand-logo--aside{height:28px; width:auto;}
.brand-name{font-family:var(--font-head); color:#1d1f23;}

/* Reduce spacing in header buttons; match Sneat compact look */
.app-bar .btn{padding:.35rem .6rem;}

/* Можно вставить в app.css для выравнивания */
.app-nav--dashboard .btn-outline-secondary:hover {
  background-color: #f9f9f9;
  border-color: #d0d0d0;
}
.app-nav--dashboard .btn-outline-secondary.active,
.app-nav--dashboard .btn-outline-secondary:focus {
  background-color: #ffc107;
  border-color: #ffc107;
  color: #000;
}

/* === App Bar: прозрачный у верхнего края страницы === */
.app-bar, .app-bar-wrap{
  transition: background-color .22s var(--ease),
              border-color .22s var(--ease),
              box-shadow .22s var(--ease),
              backdrop-filter .22s var(--ease);
}

/* когда наверху страницы */
.app-bar-wrap.is-top{
  background: transparent !important;   /* рамка-отступ остаётся, фон — прозрачный */
}
.app-bar.is-glass{
  background: transparent !important;   /* коробка хедера прозрачная */
  border-color: transparent !important; /* без рамки */
  box-shadow: none !important;          /* без тени */
  backdrop-filter: none !important;     /* без блюра */
}

/* обычное состояние (после скролла) уже задано в .app-bar:
   белый фон, рамка, тень — остаются как есть */

/* Единая кнопка поиска — выравнивание и компактные отступы */
.app-search-btn{
  line-height: 1.1;
  padding: .45rem .8rem !important;
}

/* === Sidebar: collapsed = только лого и иконки (Sneat-like) === */
@media (min-width: 992px){
  /* Когда aside свёрнут (нет hover) — скрываем любые тексты и «хвосты» */
  .fixed-aside:not(:hover) .link-text,
  .fixed-aside:not(:hover) .badge,
  .fixed-aside:not(:hover) .bi-chevron-down,
  .fixed-aside:not(:hover) .collapse { 
    display: none !important;
  }

  /* Бренд: показываем только логотип и центрируем его по ширине */
  .fixed-aside:not(:hover) .sidebar-brand {
    justify-content: center;
  }
  .fixed-aside:not(:hover) .sidebar-brand .brand-name { 
    display: none !important; 
  }

  /* Иконки пунктов — остаются видимыми и выровненными */
  .fixed-aside .nav-link .bi{
    display: inline-block;
    flex-shrink: 0;
    line-height: 1;
  }

  /* Равномерная «кликабельная» зона по всей высоте */
  .fixed-aside{
    pointer-events: auto;
  }
}

/* Ховер по всей территории уже активирует расширение (см. существующие правила ширины/расширения). 
   Гарантируем отсутствие горизонтального скролла. */
.fixed-aside{
  overflow-x: hidden !important;
}

/* === Sidebar: стабильный hover по всей высоте/ширине, без «провалов» сверху === */
@media (min-width: 992px){
  /* Прозрачная ховер-зона справа от узкого сайдбара:
     позволяет наводить мышь уже на «будущую» ширину. */
  .layout-dashboard .fixed-aside{
    position: fixed; /* страхуем */
  }
  .layout-dashboard .fixed-aside::after{
    content: "";
    position: absolute;
    top: 0;
    left: 100%; /* сразу за реальной узкой шириной */
    width: calc(var(--aside-w) - var(--aside-w-min));
    height: 100%;
    pointer-events: auto;       /* ловим курсор */
    background: transparent;    /* невидимо */
    z-index: 1045;              /* выше контента/хедера */
  }

  /* Когда пользователь навёл (или ведёт мышь по верхней части),
     сайдбар становится выше хедера, чтобы ничего его не «накрывало». */
  .layout-dashboard .fixed-aside:hover{
    width: var(--aside-w);
    z-index: 1046;              /* над .app-bar-wrap (1030) */
    box-shadow: var(--elev-2);
  }

  /* В узком состоянии скрываем текст/бейджи/стрелки — остаются только иконки/логотип */
  .layout-dashboard .fixed-aside:not(:hover) .link-text,
  .layout-dashboard .fixed-aside:not(:hover) .badge,
  .layout-dashboard .fixed-aside:not(:hover) .bi-chevron-down {
    display: none !important;
  }
  .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand { justify-content: center; }
  .layout-dashboard .fixed-aside:not(:hover) .brand-name { display: none !important; }
}

/* На всякий — исключаем горизонтальный скролл, чтобы псевдо-элемент не рождал полосу */
.layout-dashboard .fixed-aside{ overflow-x: hidden !important; }


/* === Sidebar brand fix: не прыгает текст при раскрытии === */
.sidebar-brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  text-decoration: none !important;
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  transition: padding .2s ease, opacity .2s ease, transform .2s ease;
}

/* Не меняет цвет при наведении */
.sidebar-brand:hover,
.sidebar-brand:focus {
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Текст остаётся на месте — просто появляется без сдвига */
.fixed-aside:not(:hover) .sidebar-brand .brand-name {
  width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: opacity .25s ease;
}
.fixed-aside:hover .sidebar-brand .brand-name {
  width: auto;
  opacity: 1;
}

/* Чтобы не было скачка из-за выравнивания */
.fixed-aside .sidebar-brand {
  justify-content: flex-start;
}
.fixed-aside:not(:hover) .sidebar-brand {
  justify-content: center;
}

/* === Mobile Sidebar toggle behavior === */


/* Оффканвас под сайдбар */


/* ====== Унификация дизайна сайдбара (desktop + mobile offcanvas) ====== */

/* Базовые переменные (fallback, если не объявлены) */
:root{
  --aside-w: 280px;
  --aside-bg: var(--surface-1, #0f0f14);
  --aside-border: var(--border, rgba(0,0,0,.08));
  --aside-sep: rgba(255,255,255,.06);
  --aside-shadow: var(--elev-2, 0 6px 24px rgba(0,0,0,.14));
  --aside-link: var(--text-muted, #9aa1ac);
  --aside-link-active: var(--text, #fff);
  --aside-link-hover-bg: rgba(255,255,255,.06);
}

/* Десктопный aside мог уже иметь стили — не трогаем.
   Просто делаем ту же «поверхность» переиспользуемой. */
.sidebar-surface{
  width: var(--aside-w);
  min-height: 100%;
  background: var(--aside-bg);
  border-right: 1px solid var(--aside-border);
  box-shadow: none; /* как у фиксированного */
  padding: .75rem .5rem 1rem;
}

/* Ширина и рамка самого offcanvas — полностью как у aside */
.offcanvas.offcanvas-start#acMobileSidebar{
  width: var(--aside-w);
  background: var(--aside-bg);
  border-right: 1px solid var(--aside-border);
  box-shadow: var(--aside-shadow);
}

/* Кнопка закрытия в стиле иконки сайдбара */
.offcanvas#acMobileSidebar .offcanvas-close{
  position: absolute;
  top: .5rem;
  right: .5rem;
  border-radius: .65rem;
  line-height: 1;
  padding: .4rem .55rem;
  opacity: .9;
}
.offcanvas#acMobileSidebar .offcanvas-close:hover{
  background: var(--aside-link-hover-bg);
}

/* Бренд и список — такие же отступы и разделители, как на desktop */
.sidebar-surface .sidebar-brand{
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .5rem;
  margin: .25rem .25rem .5rem;
  border-radius: .65rem;
}
.sidebar-surface .sidebar-brand:hover{
  background: var(--aside-link-hover-bg);
}

/* Ссылки меню — типографика, цвета, ховеры и active */
.sidebar-surface .nav .nav-link{
  color: var(--aside-link);
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .6rem .65rem;
  margin: 2px .25rem;
  border-radius: .65rem;
  font-weight: 500;
}
.sidebar-surface .nav .nav-link i.bi{
  font-size: 1.05rem;
  opacity: .9;
}
.sidebar-surface .nav .nav-link:hover{
  background: var(--aside-link-hover-bg);
  color: var(--aside-link-active);
}
.sidebar-surface .nav .nav-link.active{
  color: var(--aside-link-active);
  background: linear-gradient(0deg, rgba(255,255,255,.08), rgba(255,255,255,.08));
  box-shadow: inset 0 0 0 1px var(--aside-sep);
}

/* Вложенные списки (collapse) — деликатные отступы и разделители */
.sidebar-surface .collapse{
  border-left: 1px solid var(--aside-sep);
  margin-left: .6rem;
  padding-left: .4rem;
}

/* Бейджи в пунктах меню выглядят одинаково */
.sidebar-surface .badge{
  font-weight: 600;
  opacity: .9;
}

/* Удаляем «белые» стили offcanvas Bootstrap, чтобы не конфликтовало */
.offcanvas#acMobileSidebar .offcanvas-body{
  padding: 0; /* паддинг уже у .sidebar-surface */
  color: inherit;
}

/* ====== Адаптация по брейкпоинту ====== */


/* ==== FIX: offcanvas-меню использует те же токены, что и desktop aside ==== */
:root{
  /* используем существующие переменные твоей светлой темы */
  --aside-w: var(--aside-w, 280px);
  --aside-bg: var(--panel, #FFFFFF);                  /* БЫЛО #0f0f14 */
  --aside-border: var(--border, #D9DCE2);
  --aside-link: var(--ink-400, #6C717B);
  --aside-link-active: var(--ink, #1F2124);
  --aside-link-hover-bg: rgba(0,0,0,.06);             /* светлый hover как в десктопе */
}

/* Сам offcanvas и «поверхность» внутри — как у .fixed-aside */
.offcanvas.offcanvas-start#acMobileSidebar{
  width: var(--aside-w);
  background: var(--aside-bg) !important;             /* БЫЛО тёмное значение */
  border-right: 1px solid var(--aside-border);
  box-shadow: var(--elev-1, 0 8px 28px rgba(0,0,0,.12));
}
.offcanvas#acMobileSidebar .offcanvas-body{ padding: 0; }

.sidebar-surface{
  width: var(--aside-w);
  min-height: 100%;
  background: var(--aside-bg) !important;
  border-right: 1px solid var(--aside-border);
  padding: .75rem .5rem 1rem;
  color: var(--aside-link-active);                    /* нормальные «чернила» */
}

/* Ссылки/hover/active — как в светлом десктопе */
.sidebar-surface .nav .nav-link{
  color: var(--aside-link);
  display: flex; align-items: center; gap: .6rem;
  padding: .6rem .65rem; margin: 2px .25rem; border-radius: .65rem;
  font-weight: 500;
  background: transparent;
}
.sidebar-surface .nav .nav-link:hover{
  background: var(--aside-link-hover-bg);
  color: var(--aside-link-active);
}
.sidebar-surface .nav .nav-link.active{
  color: var(--aside-link-active);
  background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.06));
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}

/* Бренд-строка — светлый hover */
.sidebar-surface .sidebar-brand:hover{
  background: var(--aside-link-hover-bg);
}

/* --- Mobile header sheets (не расширяют header) --- */


/* Чтобы на desktop всё осталось как было */
@media (min-width: 992px){
  .oc-sheet.offcanvas{ display: none !important; }
}

/* === Sticky footer for dashboard pages === */
.layout-dashboard .page{
  display: flex;                 /* делаем колонку */
  flex-direction: column;
  min-height: calc(100dvh - (var(--header-h) + var(--sep-h))); /* уже было близко — страхуем */
}
.layout-dashboard .page-inner{
  flex: 1 0 auto;                /* контент растёт, футер уходит вниз */
}
/* Сам футер уже имеет margin-top:auto из файла; дублировать не нужно */

/* === Footer small: мобильная полировка === */
.ac-footer-sm .page-inner > .d-flex{
  flex-wrap: wrap;
  row-gap: .35rem;
}

/* ==== Desktop Sidebar polish & Pin behaviour (override) ==== */
@media (min-width: 992px){
  /* 0) Плавность общая */
  .fixed-aside{
    transition:
      width .22s var(--ease),
      background-color .22s var(--ease),
      border-color .22s var(--ease),
      box-shadow .22s var(--ease);
  }

  /* 1) Свернуто: фон как у страницы, без рамки/тени */
  .layout-dashboard .fixed-aside{
    background: var(--bg) !important;
    border-right-color: transparent !important;
    box-shadow: none !important;
    width: var(--aside-w-min);
  }

  /* 2) Раскрыто (hover) ИЛИ закреплено (pin): белая карточка + рамка + тень */
  .layout-dashboard .fixed-aside:hover,
  body.aside-pinned .layout-dashboard .fixed-aside{
    background: #fff !important;
    border-right: 1px solid var(--border) !important;
    box-shadow: var(--elev-2) !important;
    width: var(--aside-w);
  }

  /* 3) Текст и бейджи видимы только когда раскрыто или закреплено */
  .layout-dashboard .fixed-aside:not(:hover) .link-text,
  .layout-dashboard .fixed-aside:not(:hover) .badge,
  .layout-dashboard .fixed-aside:not(:hover) .bi-chevron-down{
    display: none !important;
  }
  body.aside-pinned .layout-dashboard .fixed-aside .link-text{
    display: inline !important;
    width: auto; opacity: 1; visibility: visible;
  }

  /* 4) Центрирование иконок в свернутом состоянии */
  body:not(.aside-pinned) .layout-dashboard .fixed-aside:not(:hover) .nav .nav-link{
    justify-content: center;
    gap: 0;
    padding-left: .56rem; padding-right: .56rem;
  }
  .layout-dashboard .fixed-aside .nav-link .bi{
    line-height: 1;
    flex-shrink: 0;
  }

  /* 5) Бренд-строка: без скачков, текст появляется плавно */
  .sidebar-brand{
    padding: .5rem .6rem;
    transition: padding .2s var(--ease), opacity .2s var(--ease);
  }
  .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand-row{ justify-content: center; }
  .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand .brand-name{
    width: 0; opacity: 0; overflow: hidden; white-space: nowrap;
  }
  .layout-dashboard .fixed-aside:hover .sidebar-brand .brand-name,
  body.aside-pinned .layout-dashboard .fixed-aside .sidebar-brand .brand-name{
    width: auto; opacity: 1;
  }

  /* 6) Иконка-кружок у активного пункта ТОЛЬКО в узком состоянии */
  .layout-dashboard .fixed-aside:not(:hover) .nav-link.active .bi{
    display:inline-grid; place-items:center;
    width:32px; height:32px; border-radius:50%;
    background:#FFF7D0; border:1px solid var(--border); box-shadow:var(--elev-1);
    font-size:1rem;
  }

  /* 7) Кнопка-булавка: видна только когда раскрыто или закреплено */
  .aside-pin-btn{
    opacity: 0; pointer-events: none; transition: opacity .2s var(--ease);
  }
  .layout-dashboard .fixed-aside:hover .aside-pin-btn,
  body.aside-pinned .aside-pin-btn{
    opacity: 1; pointer-events: auto;
  }

  /* 8) Закрепление: сдвигаем контент и boxed-header на полную ширину aside */
  body.aside-pinned .layout-dashboard .page{
    margin-left: var(--aside-w) !important;
  }
  body.aside-pinned .app-bar-wrap--dashboard{
    margin-left: var(--aside-w) !important;
  }

  /* 9) Ничего не «подпрыгивает» при hover: иконки не скрываем на раскрытии */
  .layout-dashboard .fixed-aside:hover .nav-link .bi{
    display: inline-block !important;
    width:auto; height:auto; background:transparent; border:none; box-shadow:none;
  }
}

/* ==== Sidebar icons refinements ==== */
@media (min-width: 992px) {
  /* 1) Все иконки — чуть крупнее, выразительные */
  .layout-dashboard .fixed-aside .nav-link .bi {
    font-size: 1.25rem;
    color: var(--text-muted);
    transition: color .2s ease, transform .2s ease, text-shadow .2s ease;
  }

  /* 2) При наведении — подсветка, немного увеличивается */
  .layout-dashboard .fixed-aside .nav-link:hover .bi {
    color: var(--primary);
    transform: scale(1.08);
    text-shadow: 0 0 4px rgba(255, 200, 0, 0.3);
  }

  /* 3) Убираем кружок у всех иконок */
  .layout-dashboard .fixed-aside .nav-link .bi {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
  }

  /* 4) Активная иконка — подсветка цветом */
  .layout-dashboard .fixed-aside .nav-link.active .bi {
    color: var(--primary);
    text-shadow: 0 0 6px rgba(255, 200, 0, 0.45);
    transform: scale(1.1);
  }

  /* 5) При свернутом состоянии — та же выразительность, но без кружков */
  body:not(.aside-pinned)
    .layout-dashboard
    .fixed-aside:not(:hover)
    .nav-link
    .bi {
    color: var(--text-muted);
  }
  body:not(.aside-pinned)
    .layout-dashboard
    .fixed-aside:not(:hover)
    .nav-link.active
    .bi {
    color: var(--primary);
  }
}
/* === Sidebar: по умолчанию БЕЗ фона у ссылок === */
@media (min-width: 992px){
  .layout-dashboard .fixed-aside .nav-link{
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }
  .layout-dashboard .fixed-aside .nav-link:hover{
    background: #F5F6F8 !important;              /* лёгкая подсветка при hover */
    border-color: var(--border) !important;
  }
  .layout-dashboard .fixed-aside .nav-link.active{
    background: #FFE889 !important;               /* явная активная */
    border-color: var(--brand-strong) !important;
  }

  /* Свернутый aside: бренд/лого строго по центру, в одном ряду с иконками */
  .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand-row{
    justify-content: center !important;
  }
  .brand-logo--aside{
    display: block;
    height: 28px;
    width: auto;
    margin: 0 auto;                               /* логотип по центру */
  }

  /* В свернутом состоянии центрируем сами пункты (иконка ровно по колонке) */
  body:not(.aside-pinned)
    .layout-dashboard
    .fixed-aside:not(:hover) .nav .nav-link{
      justify-content: center !important;
      gap: 0 !important;
      padding-left: .56rem !important;
      padding-right: .56rem !important;
  }
}

/* Иконка активного пункта в «узком» состоянии — только кружок у активного.
   У всех остальных НЕТ кружков (фон убран правилами выше). */
@media (min-width: 992px){
  .layout-dashboard .fixed-aside:not(:hover) .nav-link .bi{
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    width: auto !important; height: auto !important;
  }
  .layout-dashboard .fixed-aside:not(:hover) .nav-link.active .bi{
    display: inline-grid; place-items: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: #FFF7D0; border: 1px solid var(--border); box-shadow: var(--elev-1);
  }
}

/* === Sidebar brand/name alignment & menu text sizing (light/common) === */
.sidebar-brand .brand-name{
  font-size: .95rem;
  line-height: 1.1;
  font-weight: 700;
}

.fixed-aside .nav-link .link-text{
  font-size: .95rem;
  line-height: 1.1;
}

/* Контент кабинета = ширина boxed-header (без рассинхронизации) */
:root{ --content-max: var(--container-wide); }
.app-bar{ max-width: var(--content-max) !important; }
.page-inner{ max-width: var(--content-max); margin-inline:auto; padding-left:.75rem; padding-right:.75rem; }

/* ===== Pin: сдвиг всего дашборда при закреплении aside ===== */
@media (min-width: 992px){
  /* Плавные переходы, чтобы сдвиг был «мягким» */
  .layout-dashboard .page,
  .app-bar-wrap--dashboard{
    transition: margin-left .22s var(--ease);
  }

  /* Базовое состояние: смещение только на «узкую» ширину aside */
  .layout-dashboard .page{
    margin-left: var(--aside-w-min) !important;
  }
  .app-bar-wrap--dashboard{
    margin-left: var(--aside-w-min) !important;
  }

  /* При закреплении: сдвиг на полную ширину aside */
  body.aside-pinned .layout-dashboard .page{
    margin-left: var(--aside-w) !important;
  }
  body.aside-pinned .app-bar-wrap--dashboard{
    margin-left: var(--aside-w) !important;
  }
}
/* === Dashboard layout: единая логика для обеих тем (override) === */
@media (min-width: 992px){
  /* 1) Всегда Grid: 1-я колонка = aside, 2-я = всё остальное */
  .layout-dashboard{
    display: grid;
    grid-template-columns: var(--aside-w-min) 1fr;   /* свернуто */
    grid-template-rows: auto 1fr;                    /* header, затем страница */
    transition: grid-template-columns .22s var(--ease);
  }

  /* 2) При закреплении — просто расширяем 1-ю колонку */
  body.aside-pinned .layout-dashboard{
    grid-template-columns: var(--aside-w) 1fr;
  }

  /* 3) Явное размещение зон */
  .layout-dashboard .fixed-aside{
    grid-column: 1 / 2;
    grid-row: 1 / 3;     /* на всю высоту */
    /* Плавное раскрытие и в светлой теме */
    transition:
      width .22s var(--ease),
      background-color .22s var(--ease),
      border-color .22s var(--ease),
      box-shadow .22s var(--ease);
  }
  .app-bar-wrap--dashboard{
    grid-column: 2 / 3;
    grid-row: 1 / 2;
  }
  .layout-dashboard .page{
    grid-column: 2 / 3;
    grid-row: 2 / 3;
  }

  /* 4) Гасим любые старые margin-сдвиги (источник артефактов) */
  .app-bar-wrap,
  .app-bar-wrap--dashboard,
  .layout-dashboard .page{
    margin-left: 0 !important;
  }

  /* 5) Поведение раскрытия/пина для aside визуально (и в светлой) */
  .layout-dashboard .fixed-aside{
    background: var(--bg) !important;
    border-right-color: transparent !important;
    box-shadow: none !important;
    width: var(--aside-w-min);
  }
  .layout-dashboard .fixed-aside:hover,
  body.aside-pinned .layout-dashboard .fixed-aside{
    background: #fff !important;
    border-right: 1px solid var(--border) !important;
    box-shadow: var(--elev-2) !important;
    width: var(--aside-w);
  }

  /* 6) Тексты в меню показываем только когда раскрыто или закреплено */
  .layout-dashboard .fixed-aside:not(:hover) .link-text,
  .layout-dashboard .fixed-aside:not(:hover) .badge,
  .layout-dashboard .fixed-aside:not(:hover) .bi-chevron-down{
    display: none !important;
  }
  body.aside-pinned .layout-dashboard .fixed-aside .link-text{
    display: inline !important;
    width: auto; opacity: 1; visibility: visible;
  }

  /* 7) В свернутом состоянии — иконки по центру, без белых кружков */
  body:not(.aside-pinned) .layout-dashboard .fixed-aside:not(:hover) .nav .nav-link{
    justify-content: center; gap: 0;
    padding-left: .56rem; padding-right: .56rem;
  }
  .layout-dashboard .fixed-aside .nav-link .bi{
    background: none !important; border: none !important; box-shadow: none !important;
    width: auto !important; height: auto !important;
  }

  /* 8) Кнопка-булавка видна на hover и когда закреплено */
  .aside-pin-btn{ opacity:0; pointer-events:none; transition: opacity .2s var(--ease); }
  .layout-dashboard .fixed-aside:hover .aside-pin-btn,
  body.aside-pinned .aside-pin-btn{
    opacity:1; pointer-events:auto;
  }
}

/* === [FIX] Единое поведение сайдбара для светлой/тёмной тем === */
@media (min-width: 992px){
  /* Базовые размеры (должны совпадать с используемыми в теме) */
  :root{
    --aside-w-min: 72px;   /* ширина свернутого */
    --aside-w:     280px;  /* ширина закрепленного/раскрытого */
    --ease: cubic-bezier(.22,.61,.36,1);
  }

  /* 1) Aside фиксирован слева — задаём ЕГО ширину, не колонку грида */
  .layout-dashboard .fixed-aside{
    position: fixed;
    left: 0;
    top: 0;          /* ← растягиваем от самого верха */
    bottom: 0;
    height: 100vh;   /* гарантируем полную высоту окна */
    width: var(--aside-w-min);
    z-index: 1040;   /* чуть выше хедера, если тот имеет 1030 по Bootstrap */
    transition:
      width .22s var(--ease),
      background-color .22s var(--ease),
      box-shadow .22s var(--ease),
      border-color .22s var(--ease);
  }
  body.aside-pinned .layout-dashboard .fixed-aside{
    width: var(--aside-w);
  }

  /* 2) Сдвигаем ХЕДЕР и КОНТЕНТ на ширину aside (как в dark-теме) */
  .app-bar-wrap--dashboard,
  .layout-dashboard .page{
    /* ВАЖНО: перебиваем любые прежние обнуления */
    margin-left: var(--aside-w-min) !important;
    transition: margin-left .22s var(--ease);
  }
  body.aside-pinned .app-bar-wrap--dashboard,
  body.aside-pinned .layout-dashboard .page{
    margin-left: var(--aside-w) !important;
  }

  /* 3) Никаких дополнительных margin-left сбросов */
  /* (если где-то осталось margin-left:0 !important, перебиваем селектором выше) */

  /* 4) В свернутом состоянии прячем текст подписей в aside */
  .layout-dashboard .fixed-aside:not(:hover) .link-text,
  .layout-dashboard .fixed-aside:not(:hover) .badge,
  .layout-dashboard .fixed-aside:not(:hover) .bi-chevron-down{
    display: none !important;
  }
  body.aside-pinned .layout-dashboard .fixed-aside .link-text{
    display: inline !important;
  }

  /* 5) Центр иконок, без белых кружков в свернутом состоянии */
  body:not(.aside-pinned) .layout-dashboard .fixed-aside:not(:hover) .nav .nav-link{
    justify-content: center; gap: 0;
    padding-left: .56rem; padding-right: .56rem;
  }
  .layout-dashboard .fixed-aside .nav-link .bi{
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
  }

  /* 6) Кнопка-булавка видна на hover и при закреплении */
  .aside-pin-btn{ opacity:0; pointer-events:none; transition: opacity .2s var(--ease); }
  .layout-dashboard .fixed-aside:hover .aside-pin-btn,
  body.aside-pinned .aside-pin-btn{ opacity:1; pointer-events:auto; }
}

/* На всякий случай глушим эксперимент с grid-колонками именно для layout-dashboard */
@media (min-width: 992px){
  .layout-dashboard{
    display: block; /* чтобы Grid (если где-то остался) не вмешивался */
  }
}

/* === Unify widths: dashboard header = content = footer === */
.app-bar{
  /* забираем те же ограничения, что у .page-inner / публичного контейнера */
  max-width: var(--content-max) !important;
}

/* Подстрахуем все контейнеры кабинета (вдруг где-то перебьётся) */
.layout-dashboard .page-inner,
.layout-dashboard .ac-footer-sm .container,
.layout-dashboard .ac-footer-sm .page-inner{
  max-width: var(--content-max) !important;
  margin-inline: auto !important;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* На мобиле — растягиваем на всю ширину экрана */
@media (max-width: 991.98px){
  .app-bar,
  .layout-dashboard .page-inner{
    max-width: 100% !important;
  }
}

/* === Dashboard width unifier (header = content = footer) === */
:root{ --content-max: var(--container-wide); }    /* 1340px как на public */

.app-bar{ 
  max-width: var(--content-max) !important; 
  margin-inline: auto !important;
}

.layout-dashboard .page-inner{
  max-width: var(--content-max) !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding-left: .75rem; 
  padding-right: .75rem;
}

/* footer_small контейнер подгоняем под ту же ширину */
.layout-dashboard .ac-footer-sm .container,
.layout-dashboard .ac-footer-sm .page-inner{
  max-width: var(--content-max) !important;
  margin-inline: auto !important;
  padding-left: .75rem; 
  padding-right: .75rem;
}

/* === Soft Gray Typography (Light) — add at the very end of app-desktop.css === */

/* 1) Лестница «чернил»: мягкие серые вместо почти-чёрного */
:root{
  /* базовый текст — нейтрально-серый, AA на #fff */
  --ink:      #2B2F36;   /* было темнее, теперь «серее» */
  --ink-700:  #1F2329;   /* заголовки (чуть темнее базового) */
  --ink-600:  #3A3F47;   /* важные подписи/лейблы */
  --ink-500:  #565C66;   /* вторичный текст */
  --ink-400:  #6E7581;   /* muted */
  --ink-300:  #8A92A0;   /* captions/подсказки */
}

/* 2) База типографики — мягче, без «черноты» */
body, .site-body{
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.75;               /* + читаемость в списках/таблицах */
  letter-spacing: .01px;           /* деликатнее */
}

/* 3) Заголовки — не угольно-чёрные, без кричащего контраста */
h1,h2,h3,h4,h5,h6,
.hero-title,
.section .section-title{
  color: var(--ink-700) !important;
  font-weight: 600;                /* уверенно, но не «жирно» */
  letter-spacing: .1px;
}

/* 4) Вспомогательные тексты и плейсхолдеры */
.lead,.section-lead,.small,.text-muted{ color: var(--ink-400) !important; }
::placeholder{ color: var(--ink-300); }

/* 5) Ссылки — темно-серые, при hover не чернеют, а слегка темнеют */
a{ color: #353A42; text-decoration: none; }
a:hover{ color: #171A1F; text-decoration: none; }

/* 6) Таблицы/карточки/формы: заголовки и лейблы на той же «серой» шкале */
.table thead th,
.card-title,
.form-label{ color: var(--ink-700) !important; }
.form-control,.form-select,.input-group-text{
  color: var(--ink-700);
}

/* === Stronger Soft Gray Typography (Light) === */
:root {
  --ink:      #444850;   /* базовый — стал мягко-графитовым */
  --ink-700:  #2E3238;   /* заголовки — тёмно-графитовые */
  --ink-600:  #4F545C;   /* лейблы / важные подписи */
  --ink-500:  #6A707A;   /* вторичный текст */
  --ink-400:  #8A9099;   /* muted */
  --ink-300:  #A7ADB7;   /* captions */
}

body, .site-body {
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.75;
  letter-spacing: .02em;
}

/* заголовки */
h1,h2,h3,h4,h5,h6,
.hero-title,.section-title {
  color: var(--ink-700) !important;
  font-weight: 600;
  letter-spacing: .02em;
}

/* muted тексты и плейсхолдеры */
.text-muted,.lead,.small { color: var(--ink-400) !important; }
::placeholder { color: var(--ink-300) !important; }

/* ссылки */
a {
  color: #3F4650;
  text-decoration: none;
  transition: color .15s ease;
}
a:hover {
  color: #1F2228;
}

/* формы и таблицы */
.form-label,.table thead th,.card-title { color: var(--ink-600) !important; }
.form-control,.form-select { color: var(--ink-700); }

/* лёгкая мягкость всех карточек */
.card, .table, .alert, .dropdown-menu {
  color: var(--ink);
}
/* ==== Dashboard WIDER width: header + content + footer (only LK) ==== */
/* Работает ТОЛЬКО в личном кабинете, т.к. завязан на .layout-dashboard */
@media (min-width: 992px){
  /* Подбери значение по вкусу: 1560px — заметно шире, чем public 1340px */
  .layout-dashboard{
    --content-max: 1560px; /* было у public: ~1340px */
  }

  /* (опционально) Очень большие экраны — ещё шире */
  @media (min-width: 1680px){
    .layout-dashboard{ --content-max: 1680px; }
  }
  @media (min-width: 1920px){
    .layout-dashboard{ --content-max: 1720px; } /* лимит, чтобы не «расползалось» */
  }
}

/* ==== Sidebar brand: size & shift control (collapsed vs expanded) ==== */
@media (min-width: 992px) {
  :root {
    /* Настраиваемые параметры */
    --aside-logo-collapsed-shift-x: 20px;   /* сдвиг вправо (+) в свёрнутом */
    --aside-logo-collapsed-scale: 1.5;     /* увеличение лого в свёрнутом */

    --aside-logo-expanded-shift-x: -20px;     /* базовый сдвиг при раскрытии */
    --aside-logo-expanded-scale: 1.0;       /* обычный размер при раскрытии */
  }

  /* === СВЁРНУТОЕ СОСТОЯНИЕ (hover нет и не закреплено) === */
  .layout-dashboard .fixed-aside:not(:hover):not(.aside-pinned) .brand-logo--aside {
    transform:
      translateX(var(--aside-logo-collapsed-shift-x))
      scale(var(--aside-logo-collapsed-scale));
    transition:
      transform .25s var(--ease);
    transform-origin: center;
  }

  /* === РАЗВЁРНУТОЕ / ЗАКРЕПЛЁННОЕ СОСТОЯНИЕ === */
  .layout-dashboard .fixed-aside:hover .brand-logo--aside,
  body.aside-pinned .layout-dashboard .brand-logo--aside {
    transform:
      translateX(var(--aside-logo-expanded-shift-x))
      scale(var(--aside-logo-expanded-scale));
    transition:
      transform .25s var(--ease);
  }
}
/* === Sidebar brand: три отдельные части (лого / текст / кнопка) === */
.sidebar-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--aside-brand-gap, 0.5rem); /* общий промежуток между элементами */
}

/* Логотип */
.sidebar-brand-logo img.brand-logo--aside {
  height: var(--aside-logo-size, 28px);
  width: auto;
  transition: transform .25s var(--ease);
}

/* Название */
.sidebar-brand-name .brand-name {
  font-size: var(--aside-name-size, 1rem);
  color: var(--ink-700);
  font-weight: 700;
  white-space: nowrap;
}

/* Кнопка закрепления */
.sidebar-brand-pin .aside-pin-btn {
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s var(--ease);
}
.layout-dashboard .fixed-aside:hover .sidebar-brand-pin .aside-pin-btn,
body.aside-pinned .sidebar-brand-pin .aside-pin-btn {
  opacity: 1;
  pointer-events: auto;
}

/* Состояние свёрнуто / раскрыто — настройка размеров и отступов */
@media (min-width: 992px) {
  :root {
    --aside-logo-collapsed-shift-x: 25px;
    --aside-logo-collapsed-scale: 1.6;
    --aside-logo-expanded-shift-x: 0px;
    --aside-logo-expanded-scale: 1.2;
    --aside-brand-gap: 1rem;
  }

  /* свернуто */
  .layout-dashboard .fixed-aside:not(:hover):not(.aside-pinned) .sidebar-brand-logo img {
    transform:
      translateX(var(--aside-logo-collapsed-shift-x))
      scale(var(--aside-logo-collapsed-scale));
    transform-origin: center;
  }

  /* раскрыто */
  .layout-dashboard .fixed-aside:hover .sidebar-brand-logo img,
  body.aside-pinned .layout-dashboard .sidebar-brand-logo img {
    transform:
      translateX(var(--aside-logo-expanded-shift-x))
      scale(var(--aside-logo-expanded-scale));
  }

  /* скрытие названия в свернутом */
  .layout-dashboard .fixed-aside:not(:hover):not(.aside-pinned) .sidebar-brand-name {
    display: none !important;
  }
}


/* ===== Sidebar: интервалы между пунктами + видимость бренд-текста ===== */

/* Настраиваемые параметры */
:root{
  /* Отступ сверху внутри сайдбара (если пользуешься) */
  --aside-content-offset-y: 0px;

  /* Вертикальный интервал между кнопками меню */
  --aside-item-gap: 0.32rem; /* поменяй под себя */

  /* Зазор между логотипом и названием бренда */
  --aside-brand-gap: 0.7rem;

  /* На всякий: явные размеры текста/лого можно переопределять тут */
  --aside-logo-size: 28px;        /* высота лого */
  --aside-name-size: 1rem;        /* размер шрифта названия */
}

/* Управляем вертикальный интервал между пунктами меню */
@media (min-width: 992px){
  .fixed-aside .nav .nav-item + .nav-item{
    margin-top: var(--aside-item-gap) !important;
  }

  /* Единая «прокладка» сверху (если нужно опускать контент вниз) */
  .fixed-aside .sidebar-nav::before{
    content:""; display:block; height:var(--aside-content-offset-y);
    flex:0 0 auto;
  }

  /* Бренд-строка: контролируем зазор между логотипом и текстом */
  .sidebar-brand-row{
    column-gap: var(--aside-brand-gap);
    gap: var(--aside-brand-gap);
  }

  /* ===== Pinned = как hover: показываем весь текст гарантированно ===== */

  /* Текст пунктов меню (span.link-text) */
  body.aside-pinned .fixed-aside .link-text{
    width: auto !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
  }

  /* Название рядом с логотипом: .sidebar-brand-name > .brand-name */
  body.aside-pinned .fixed-aside .sidebar-brand-name{
    max-width: none !important;
    overflow: visible !important;
  }
  body.aside-pinned .fixed-aside .sidebar-brand-name .brand-name{
    width: auto !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    white-space: nowrap !important;
    color: var(--ink-700) !important;
    -webkit-text-fill-color: currentColor !important;
  }

  /* На некоторых сборках логотип и текст скрывают через общий селектор — перебьём и его */
  body.aside-pinned .fixed-aside:not(:hover) .sidebar-brand-name .brand-name,
  body.aside-pinned .fixed-aside:not(:hover) .link-text{
    width: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* Лого в pinned — как в expanded */
  body.aside-pinned .fixed-aside .sidebar-brand-logo img{
    height: var(--aside-logo-size) !important;
    width: auto !important;
    transform:
      translateX(var(--aside-logo-expanded-shift-x, 0))
      scale(var(--aside-logo-expanded-scale, 1)) !important;
    transform-origin: center;
  }
}
/* ===== FINAL OVERRIDE: brand-text всегда виден в pinned, интервалы между пунктами ===== */

:root{
  /* Интервал между пунктами меню */
  --aside-item-gap: .6rem;
  /* Внутренний отступ сверху (опускание контента сайдбара) */
  --aside-content-offset-y: 20px;
}

/* Интервал между пунктами меню */
.fixed-aside .nav .nav-item + .nav-item{
  margin-top: var(--aside-item-gap) !important;
}

/* Опустить контент сайдбара вниз, не смещая сам aside */
.fixed-aside .sidebar-nav::before{
  content:""; display:block; height:var(--aside-content-offset-y); flex:0 0 auto;
}

/* === САМОЕ ГЛАВНОЕ: показываем бренд-текст и пункт-тексты, когда body.aside-pinned === */
@media (min-width: 992px){

  /* 1) Разрешаем показ контейнера названия бренда, даже если где-то display:none !important */
  body.aside-pinned .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand-name{
    display: block !important;
    max-width: none !important;
    overflow: visible !important;
  }

  /* 2) Сам текст рядом с логотипом */
  body.aside-pinned .layout-dashboard .fixed-aside:not(:hover) .sidebar-brand-name .brand-name{
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    white-space: nowrap !important;
    -webkit-text-fill-color: currentColor !important;
    color: inherit !important;
  }

  /* 3) Текст пунктов меню (перебиваем глобальные width:0/opacity:0/visibility:hidden) */
  body.aside-pinned .layout-dashboard .fixed-aside .link-text{
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    white-space: nowrap !important;
  }

  /* 4) На всякий перебиваем любые правила «скрывать в not(:hover)» */
  body.aside-pinned .layout-dashboard .fixed-aside:not(:hover) .link-text,
  body.aside-pinned .layout-dashboard .fixed-aside:not(:hover) .badge,
  body.aside-pinned .layout-dashboard .fixed-aside:not(:hover) .bi-chevron-down{
    display: inline !important;
  }

  /* 5) Бренд-ряд: управляем зазором, чтобы текст не «лип» к логотипу */
  .sidebar-brand-row{
    gap: var(--aside-brand-gap, .5rem) !important;
    column-gap: var(--aside-brand-gap, .5rem) !important;
  }
}
/* Sidebar: pinned state blends with page (Light) */
@media (min-width: 992px){
  /* Контейнер aside: ровно фон страницы, без рамки и теней (даже при :hover) */
  body.aside-pinned .layout-dashboard .fixed-aside,
  body.aside-pinned .layout-dashboard .fixed-aside:hover{
    background: var(--bg) !important;
    border-right-color: transparent !important;
    box-shadow: none !important;
  }

  /* Дополнительно уберём «выпуклость» активного пункта в pinned */
  body.aside-pinned .layout-dashboard .fixed-aside .nav-link.active{
    box-shadow: none !important;
  }
}
/* === Header profile dropdown fine-tuned alignment === */

/* 1. Подстраиваем меню профиля и уведомлений — выравниваем по иконке */
.app-bar .dropdown-menu-end {
  right: 0;
  left: auto;
  transform: translateX(-4px); /* мягкий сдвиг влево (вместо -8px) */
  margin-right: 0.25rem;       /* лёгкий внутренний отступ */
}

/* 2. Минимальный отступ справа у контейнера, чтобы меню не прилипало к экрану */
.app-bar .navbar .container-fluid {
  padding-right: 0.75rem; /* было 1rem — уменьшено для точного выравнивания */
}

/* 3. Страховка: если экран совсем узкий, не даём меню вылезти за край */
@media (max-width: 991.98px) {
  .app-bar .dropdown-menu {
    right: 0.25rem !important;
    left: auto !important;
    transform: none !important;
  }
}
/* ==== Dashboard header: adjustable height and padding ==== */
:root {
  /* Базовая высота хедера (можно менять для экспериментов) */
  --dashboard-header-height: 26px;       /* стандартное значение */
  --dashboard-header-padding-y: 0.25rem; /* вертикальный отступ внутри */
}

/* Применяем к шапке личного кабинета */
.app-bar-wrap--dashboard .app-bar {
  min-height: var(--dashboard-header-height);
  padding-top: var(--dashboard-header-padding-y);
  padding-bottom: var(--dashboard-header-padding-y);
}

/* Кнопки и элементы внутри — выравниваем по центру при изменении высоты */
.app-bar-wrap--dashboard .navbar,
.app-bar-wrap--dashboard .navbar .container-fluid {
  min-height: var(--dashboard-header-height);
  align-items: center;
}

/* Иконки/кнопки — чуть компактнее, чтобы всё смотрелось пропорционально */
.app-bar-wrap--dashboard .btn,
.app-bar-wrap--dashboard .nav-link {
  padding-top: calc(var(--dashboard-header-padding-y) + 0.1rem);
  padding-bottom: calc(var(--dashboard-header-padding-y) + 0.1rem);
}
/* ==== Dashboard header: thin, top-aligned, rounded only at bottom ==== */
:root {
  /* Настраиваемые параметры */
  --dashboard-header-height: 48px;        /* общая высота хедера */
  --dashboard-header-padding-y: 0.2rem;   /* внутренние отступы */
  --dashboard-header-radius: 0.75rem;     /* радиус нижнего скругления */
}

/* Контейнер хедера — вплотную к верху */
.app-bar-wrap--dashboard {
  padding-top: 0 !important;
  margin-top: 0 !important;
  top: 0 !important;
}

/* Основной блок хедера */
.app-bar-wrap--dashboard .app-bar {
  min-height: var(--dashboard-header-height);
  padding-top: var(--dashboard-header-padding-y);
  padding-bottom: var(--dashboard-header-padding-y);
  margin-top: 0;
  border-radius: 0 0 var(--dashboard-header-radius) var(--dashboard-header-radius); /* только низ закруглён */
  box-shadow: 0 2px 8px rgba(0,0,0,.05); /* деликатная тень вниз */
  border-top: none !important;
}

/* Убираем прозрачные отступы и фоны сверху */
.app-bar-wrap--dashboard {
  background: transparent !important;
}

/* Корректируем позиционирование и выравнивание элементов */
.app-bar-wrap--dashboard .navbar,
.app-bar-wrap--dashboard .navbar .container-fluid {
  min-height: var(--dashboard-header-height);
  align-items: center;
}

/* Кнопки и иконки — компактные */
.app-bar-wrap--dashboard .btn,
.app-bar-wrap--dashboard .nav-link {
  padding-top: calc(var(--dashboard-header-padding-y) + 0.1rem);
  padding-bottom: calc(var(--dashboard-header-padding-y) + 0.1rem);
}

/* Убираем лишнюю тень/рамку сверху при скролле */
.app-bar-wrap--dashboard .app-bar.is-glass {
  box-shadow: none !important;
  border-top: none !important;
}

/* ==== Dashboard header width logic: free vs pinned ==== */
/* 1) Настройки по умолчанию (свободный режим, aside не закреплён) */
:root{
  --dashboard-header-height: 48px;
  --dashboard-header-padding-y: 0.2rem;
  --dashboard-header-radius: 0.75rem;

  /* кастомная ширина, когда aside НЕ закреплён */
  --dashboard-header-width: 88.5vw;       /* можно 100%, 1280px, 90vw и т.п. */
  --dashboard-header-max-width: 1560px; /* ограничитель для boxed */
  
  /* поведение при закреплении: «как раньше» — как у контентной зоны */
  --dashboard-header-width-pinned: auto;           /* ширину берём из max-width */
  --dashboard-header-max-width-pinned: var(--content-max); /* синхронно с контентом */
}

/* 2) Хедер вплотную к верху, скруглён только снизу */
.app-bar-wrap--dashboard{
  padding-top: 0 !important;
  margin-top: 0 !important;
  top: 0 !important;
  background: transparent !important;
}
.app-bar-wrap--dashboard .app-bar{
  min-height: var(--dashboard-header-height);
  padding-top: var(--dashboard-header-padding-y);
  padding-bottom: var(--dashboard-header-padding-y);
  margin-top: 0;
  border-radius: 0 0 var(--dashboard-header-radius) var(--dashboard-header-radius);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  border-top: none !important;

  /* ширина в свободном режиме */
  width: min(var(--dashboard-header-width), 100%);
  max-width: var(--dashboard-header-max-width);
  margin-inline: auto;
}

/* 3) При закреплении aside — вернуть прежний «коробочный» размер */
body.aside-pinned .app-bar-wrap--dashboard .app-bar{
  width: min(var(--dashboard-header-width-pinned), 100%);
  max-width: var(--dashboard-header-max-width-pinned);
}

/* 4) Сдвиги с учётом aside: как и раньше */
@media (min-width: 992px){
  .app-bar-wrap--dashboard{ margin-left: var(--aside-w-min); }
  body.aside-pinned .app-bar-wrap--dashboard{ margin-left: var(--aside-w); }
}

/* 5) Выравнивание контента внутри */
.app-bar-wrap--dashboard .navbar,
.app-bar-wrap--dashboard .navbar .container-fluid{
  min-height: var(--dashboard-header-height);
  align-items: center;
  justify-content: space-between;
  padding-left: .75rem;
  padding-right: .75rem;
}

/* 6) «Стеклянное» состояние — без верхней рамки/тени */
.app-bar-wrap--dashboard .app-bar.is-glass{
  box-shadow: none !important;
  border-top: none !important;
}

/* ==== Sidebar: верхний отступ и зазор под brand (robust) ==== */
:root{
  /* 1) Отступ от ВЕРХНЕЙ границы сайдбара до контента */
  --aside-top-gap: 0px;           /* поменяй под себя (например 0, 12px, 24px) */

  /* 2) Отступ под blokом brand (лого/название/пин) до списка меню */
  --aside-brand-gap-bottom: 41px;  /* поменяй под себя */
}

@media (min-width: 992px){
  /* Верхний внутренний отступ: через ::before у контейнера навигации */
  .fixed-aside .sidebar-nav{
    position: relative; /* чтобы ::before точно отработал */
  }
  .fixed-aside .sidebar-nav::before{
    content: "";
    display: block;
    height: var(--aside-top-gap);
    flex: 0 0 auto;
  }

  /* Надёжный отступ под brand: не margin, а «прокладка» псевдо-элементом */
  .fixed-aside .sidebar-brand::after,
  .fixed-aside .sidebar-brand-row::after{ /* подстраховка, если используется .sidebar-brand-row */
    content: "";
    display: block;
    height: var(--aside-brand-gap-bottom);
  }
}
/* === Dashboard Header: иконки ближе к краям (реальное растяжение) === */
.app-bar-wrap--dashboard .app-bar {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.app-bar-wrap--dashboard .navbar,
.app-bar-wrap--dashboard .navbar .container-fluid {
  padding-left: 0.25rem !important;   /* минимальный внутренний зазор */
  padding-right: 0.25rem !important;
}

/* Чтобы кнопки действительно доходили почти до краёв */
.app-bar-wrap--dashboard .btn,
.app-bar-wrap--dashboard .nav-link {
  margin-left: 0.1rem !important;
  margin-right: 0.1rem !important;
}



/* === Expressive Shadows & Edges • v1.1 (safe upgrade) === */
/* Делает тени глубже и края чётче, не меняя поведение и без transform */

/* Светлая тема: холодные глубокие тени + более читаемый контур */
:root[data-bs-theme="light"]{
  --elev-1: 0 2px 8px rgba(15,17,20,.08), 0 1px 0 rgba(15,17,20,.04);
  --elev-2: 0 8px 22px rgba(15,17,20,.12), 0 2px 6px rgba(15,17,20,.06);
  --elev-3: 0 16px 40px rgba(15,17,20,.16), 0 4px 10px rgba(15,17,20,.08);
  --panel-edge-light: rgba(255,255,255,.95);
}

/* Тёмная тема: глубокие тени + лёгкий «глянец» по верхнему краю */
:root[data-bs-theme="dark"]{
  --elev-1: 0 2px 8px rgba(0,0,0,.52), 0 0 2px rgba(255,255,255,.04) inset;
  --elev-2: 0 8px 24px rgba(0,0,0,.60), 0 0 3px rgba(255,255,255,.05) inset;
  --elev-3: 0 18px 46px rgba(0,0,0,.72), 0 0 6px rgba(255,255,255,.06) inset;
  --panel-edge-light: rgba(255,255,255,.12);
}

/* Применяем усиленные тени и более сильный контур к основным блокам */
.card,
.kpi,
.dashboard-section,
.table,
.alert,
.modal-content,
.news-card,
.offcanvas,
.accordion-item,
.empty-state,
.gallery .gallery-item{
  border-color: var(--border-strong) !important; /* чётче край */
  box-shadow: var(--elev-2) !important;          /* глубже тень по умолчанию */
}

/* Наведение: только усиление тени, без «подпрыгивания» */
.card:hover,
.kpi:hover,
.dashboard-section:hover,
.news-card:hover{
  box-shadow: var(--elev-3) !important;
}

/* Мягкая внутренняя подсветка верхней грани — подчёркивает «ребро» */
.card::before,
.kpi::before,
.dashboard-section::before,
.news-card::before,
.table::before,
.alert::before,
.modal-content::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow: inset 0 1px 0 var(--panel-edge-light) !important;
}
/* === LIGHT THEME QUICK FIX PACK — public + dashboard === */
/* 1) Бэйджи .bg-dark всегда тёмные, текст белый (перебиваем «белый на белом») */
.badge.bg-dark,
.badge.text-bg-dark {
  background: #2A2A2A !important;   /* и фон, и shorthand */
  background-color: #2A2A2A !important;
  color: #fff !important;
  border-color: #2A2A2A !important;
}

/* 2) Тренд-метки: компактные зелёные/красные пилюли для ↑/↓ */
.small.text-success,
.text-success.small {
  display: inline-block;
  padding: .12rem .48rem;
  border-radius: 999px;
  background: rgba(46, 204, 113, .12) !important;
  color: #1e7e34 !important;
  font-weight: 700;
  letter-spacing: .02em;
}
.small.text-danger,
.text-danger.small {
  display: inline-block;
  padding: .12rem .48rem;
  border-radius: 999px;
  background: rgba(231, 76, 60, .12) !important;
  color: #b02a37 !important;
  font-weight: 700;
  letter-spacing: .02em;
}

/* 3) KPI-иконки (кружки) — абсолютно круглые, не «овалы» */
.kpi .rounded-circle {
  width: 42px;             /* квадрат = круг при 50% радиусе */
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50% !important;
  padding: 0 !important;   /* убираем p-2, чтобы форма не «расползалась» */
  background: #fff;
}

/* 4) Таймлайн: заголовок активности без любой «жесткой» тени/перегруза */
.timeline .fw-bold {
  font-weight: 600 !important;
  text-shadow: none !important;
}

/* 5) Пагинация: активная страница = тёмная плашка с белым текстом */
.pagination .page-item.active .page-link {
  background: #2A2A2A !important;
  background-color: #2A2A2A !important;
  border-color: #2A2A2A !important;
  color: #fff !important;
}

/* 6) Сайдбар «Лиды»: число на бэйдже всегда контрастное */
.fixed-aside .nav-link .badge {
  background: #2A2A2A !important;
  color: #fff !important;
  border-color: #2A2A2A !important;
}

/* 7) (Опционально) Чуть подчеркнём тренд-стрелки внутри KPI в мини-дашборде */
.card .text-success.small,
.card .text-danger.small {
  font-variant-numeric: tabular-nums;
}
@media (max-width: 991.98px){
  .offcanvas.offcanvas-start#acMobileSidebar,
  .offcanvas.offcanvas-start#acPublicSidebar{
    width: min(88vw, 360px);
    border-right: 1px solid var(--border);
    box-shadow: var(--elev-2);
  }
  .offcanvas#acMobileSidebar .nav-link,
  .offcanvas#acPublicSidebar .nav-link{
    padding: .7rem .8rem;
    border-radius: .65rem;
  }
  .offcanvas#acMobileSidebar .nav-link:hover,
  .offcanvas#acPublicSidebar .nav-link:hover{
    background: #F5F6F8;
  }
}
/* Светлая тема: зелёный фон + чёрный текст */
:root[data-bs-theme="light"] .badge.rounded-pill.text-bg-success {
  background-color: var(--bs-success, #198754) !important;
  color: #000 !important;
  border: 1px solid #157347 !important;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  box-shadow: var(--elev-1, 0 2px 8px rgba(0,0,0,.06));
}
.badge.rounded-pill.text-bg-success i {
  font-size: .9em;
  opacity: .85;
  line-height: 1;
}
/* ==== Quick Search sheet: не во всю ширину и не мешает сайдбару ==== */
body.layout-dashboard #quickSearch.quick-search-sheet.offcanvas-top {
  max-width: 720px;                         /* максимальная ширина шита */
  width: min(720px, 100vw - 2rem);          /* с небольшими отступами */
  margin-inline: auto;                      /* центрируем */
  border-radius: 0 0 .75rem .75rem;         /* скругляем только низ */
  box-shadow: var(--elev-3);
}

/* На десктопе с учётом сайдбара: подвигаем панель вправо и сужаем */
@media (min-width: 992px) {
  body.layout-dashboard #quickSearch.quick-search-sheet.offcanvas-top {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(720px, calc(100vw - var(--aside-w-min) - 2rem));
  }

  body.layout-dashboard.aside-pinned #quickSearch.quick-search-sheet.offcanvas-top {
    width: min(720px, calc(100vw - var(--aside-w) - 2rem));
  }
}
.app-nav--dashboard .btn[title="Уведомления"]{
  display: inline-flex !important;
}
/* ==== FINAL OVERRIDE: mobile dashboard header full width & single row ==== */
@media (max-width: 991.98px) {

  /* Шапка личного кабинета: прижать к самому верху и растянуть на 100% */
  .layout-dashboard .app-bar-wrap--dashboard {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    padding: 0 !important;
    margin: 0 !important;
  }

  .layout-dashboard .app-bar-wrap--dashboard .app-bar {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }

  /* Контейнер внутри navbar — без лишних отступов и БЕЗ переноса строк */
  .layout-dashboard .app-bar-wrap--dashboard .navbar .container-fluid {
    padding-left: .25rem !important;
    padding-right: .25rem !important;
    flex-wrap: nowrap !important;
    column-gap: .25rem;
  }

  /* Левая часть (меню + поиск) — компактно */
  .layout-dashboard .app-nav--dashboard .btn[data-bs-target="#acMobileSidebar"],
  .layout-dashboard .app-nav--dashboard .app-search-btn {
    padding: .25rem .5rem !important;
    border-radius: .5rem !important;
  }
  /* Убираем текст "Меню"/"Найти", оставляем только иконки */
  .layout-dashboard .app-nav--dashboard .btn[data-bs-target="#acMobileSidebar"] span,
  .layout-dashboard .app-nav--dashboard .app-search-btn span {
    display: none !important;
  }

  /* Правая группа иконок — максимально сжать */
  .layout-dashboard .app-bar-wrap--dashboard .d-flex.align-items-center.gap-1,
  .layout-dashboard .app-bar-wrap--dashboard .d-flex.align-items-center.gap-1.gap-sm-2 {
    gap: .25rem !important;
  }
  .layout-dashboard .app-bar-wrap--dashboard .d-flex.align-items-center .btn {
    padding-left: .35rem !important;
    padding-right: .35rem !important;
  }

  /* На очень узких экранах скрываем второстепенные иконки,
     чтобы всё гарантированно влезло в одну строку:
     оставляем тему, уведомления и профиль. */
  #fullscreenToggle {
    display: none !important;
  }

  /* Контент кабинета сдвигаем вниз, чтобы не залезал под фиксированный header */
  .layout-dashboard .page {
    margin-left: 0 !important;          /* на мобилке aside = offcanvas */
    padding-top: 56px;                  /* высота шапки, можно подправить */
  }
}
.sidebar-brand-sticky {
    background-color: var(--bg);
    /* или var(--bs-body-bg) — зависит от того, какой фон реально у aside */
    backdrop-filter: blur(2px);
}
/* === FIX: подсказки поиска строго под инпутом === */
.search-results {
  position: absolute !important;
  top: 100% !important;      /* ← ключ: начинается ровно под формой */
  left: 0;
  right: 0;
  margin-top: .35rem !important; /* небольшой отступ вниз */
  z-index: 9999 !important;
}
/* =========================================================
   LOGO SIZE OVERRIDE v2 — header / sidebar / footer
   Добавлять В САМЫЙ КОНЕЦ app-desktop.css
   ========================================================= */

/* 1) ЕДИНАЯ ТОЧКА НАСТРОЙКИ */
:root{
  /* Header (public + dashboard) */
  --logo-h-header: 50px;
  --logo-h-header-mobile: 30px;

  /* Sidebar (LK fixed-aside + offcanvas) */
  --logo-h-sidebar: 28px;
  --logo-h-sidebar-mobile: 26px;

  /* Footer (public footer) */
  --logo-h-footer: 50px;
  --logo-w-footer: 50px;              /* у тебя сейчас width отдельно */
  --logo-h-footer-mobile: 40px;
  --logo-w-footer-mobile: 40px;

  /* (опционально) если хочешь единый стиль контейнера изображения */
  --logo-fit: contain;
}

/* 2) HEADER — public + dashboard
   (перебиваем твой clamp в .app-bar .navbar-brand img) */
.app-bar .navbar-brand img,
.app-bar-wrap .navbar-brand img,
.navbar-brand .brand-logo{
  height: var(--logo-h-header) !important;
  max-height: var(--logo-h-header) !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: var(--logo-fit);
}



/* 4) FOOTER — public footer
   (у тебя inline width/height в _footer.html, поэтому тут жёстко перебиваем) */
.ac-footer img[alt="Логотип"],
.ac-footer .ac-footer-surface img[alt="Логотип"]{
  height: var(--logo-h-footer) !important;
  width: var(--logo-w-footer) !important;
  max-height: var(--logo-h-footer) !important;
  max-width: var(--logo-w-footer) !important;
  object-fit: var(--logo-fit);
}

/* 5) MOBILE OVERRIDE */
@media (max-width: 991.98px){

  /* header */
  .app-bar .navbar-brand img,
  .app-bar-wrap .navbar-brand img,
  .navbar-brand .brand-logo{
    height: var(--logo-h-header-mobile) !important;
    max-height: var(--logo-h-header-mobile) !important;
  }


  /* footer */
  .ac-footer img[alt="Логотип"],
  .ac-footer .ac-footer-surface img[alt="Логотип"]{
    height: var(--logo-h-footer-mobile) !important;
    width: var(--logo-w-footer-mobile) !important;
    max-height: var(--logo-h-footer-mobile) !important;
    max-width: var(--logo-w-footer-mobile) !important;
  }
}
