/* ============================================================
   fragments.css — styles extracted from inline <style> blocks
   in Django fragment templates (for W3C HTML5 validity).
   ============================================================ */

/* ── Header: logo + nav avatar (header.html) ── */
#uvelir-logo{padding:5px 5px 8px}
.uv-nav-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius: var(--uv-radius-circle);background:linear-gradient(135deg,var(--uv-primary),var(--uv-primary-dark));color:var(--uv-text-inverse);font-size:.68rem;font-weight: var(--uv-fw-bold);letter-spacing:.02em;flex-shrink:0}
.uv-nav-avatar img{width:100%;height:100%;border-radius: var(--uv-radius-circle);object-fit:cover}
.uv-nav-badge{font-size:.6rem;padding:.12rem .38rem;border-radius: var(--uv-radius-lg);background:#198d00;color:var(--uv-text-inverse);font-weight: var(--uv-fw-semibold);margin-left:.1rem}

/* ── Header: accent stripe (header.html) ── */
.uv-accent-stripe{height:2px;background:linear-gradient(90deg,var(--uv-primary-dark),var(--uv-primary),#6ea8fe,var(--uv-primary),var(--uv-primary-dark))}

/* ── Header: quick nav pills (header.html) ── */
.uv-quicknav{display:flex;flex-wrap:wrap;gap:.35rem;padding:.5rem 0;margin-bottom:.25rem}
.uv-quicknav a{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size: var(--uv-fs-micro);font-weight: var(--uv-fw-medium);text-transform:uppercase;letter-spacing:.03em;text-decoration:none;color:var(--uv-text-body);background:rgba(0,0,0,.03);border:none;border-radius: var(--uv-radius-sm);transition:all var(--uv-duration-base) ease}
.uv-quicknav a:hover{background:rgba(var(--uv-primary-rgb), .10);color:var(--uv-primary-dark)}
.uv-quicknav a i{font-size: var(--uv-fs-small);width:1rem;text-align:center}

/* ── Header: main navbar (header.html) ── */
.uv-navbar{position:sticky;top:0;z-index: var(--uv-z-sticky);background:var(--uv-surface);border-bottom:2px solid var(--uv-primary);font-size: var(--uv-fs-small)}
.uv-navbar .uv-nav-link{display:flex;align-items:center;gap:.3rem;padding:.6rem .7rem;font-weight: var(--uv-fw-semibold);color:#3a3a3a;text-transform:uppercase;letter-spacing:.02em;font-size: var(--uv-fs-xs);white-space:nowrap;transition:all var(--uv-duration-base);border-bottom:2px solid transparent;margin-bottom:-2px}
.uv-navbar .uv-nav-link:hover,.uv-navbar .uv-nav-link:focus{color:var(--uv-primary-dark);border-bottom-color:var(--uv-primary)}
.uv-navbar .uv-nav-link i{font-size:.9rem}
.uv-navbar .uv-nav-brand img{max-height:36px}
.uv-search-form{display:none;background:var(--uv-surface);padding:.5rem 0;border-bottom:1px solid var(--uv-border)}
.uv-search-form.show{display:block}
.uv-search-form input{border:1px solid #e0dcd4;border-radius: var(--uv-radius-sm);font-size:.9rem;padding:.5rem .75rem}
.uv-search-form input:focus{border-color:var(--uv-primary);box-shadow:var(--uv-shadow-focus);outline:none}

/* ── Header: expandable search (header.html) ── */
.uv-search-wrap{display:flex;align-items:center;position:relative}
.uv-search-wrap input{width:0;padding:0;border:none;background:transparent;font-family:inherit;font-size: var(--uv-fs-small);overflow:hidden;transition:width var(--uv-duration-slow) cubic-bezier(.4,0,.2,1),padding var(--uv-duration-slow),border-color var(--uv-duration-base);outline:none;border-bottom:2px solid transparent;height:32px}
.uv-search-wrap.open input{width:200px;padding:0 .5rem;border-bottom-color:var(--uv-primary)}
.uv-search-toggle-btn{cursor:pointer;padding:.4rem;color:var(--uv-text-secondary);font-size: var(--uv-fs-body);transition:color var(--uv-duration-base);background:none;border:none}
.uv-search-toggle-btn:hover{color:var(--uv-primary-dark)}

/* ── Header: Command Palette trigger (header.html) ── */
.uv-cp-trigger{display:inline-flex;align-items:center;gap:7px;background:rgba(var(--uv-primary-rgb), .06);border:1.5px solid rgba(var(--uv-primary-rgb), .2);border-radius: var(--uv-radius-md);padding:6px 12px;color:#3a3a3a;font-size: var(--uv-fs-xs);cursor:pointer;transition:all var(--uv-duration-base);white-space:nowrap;font-family:inherit}
.uv-cp-trigger:hover{background:rgba(var(--uv-primary-rgb), .1);color:var(--uv-primary-dark);border-color:rgba(var(--uv-primary-rgb), .35)}
.uv-cp-trigger kbd{background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.12);border-radius: var(--uv-radius-xs);padding:1px 5px;font-size:.65rem;font-family:inherit;color:var(--uv-text-hint)}

/* ── Command Palette overlay ── */
.uv-cp-overlay{position:fixed;inset:0;background:rgba(15,20,35,.62);backdrop-filter:blur(4px);z-index: var(--uv-z-overlay);display:flex;align-items:flex-start;justify-content:center;padding-top:80px}
.uv-cp-panel{background:var(--uv-surface);border-radius: var(--uv-radius-2xl);width:620px;max-width:calc(100vw - 32px);box-shadow:0 24px 80px rgba(0,0,0,.35),0 4px 16px rgba(0,0,0,.1);overflow:hidden;max-height:calc(100vh - 120px);display:flex;flex-direction:column}

/* Input row */
.uv-cp-input-row{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--uv-border-light);flex-shrink:0}
.uv-cp-input-row>i{font-size: var(--uv-fs-h4);color:var(--uv-text-soft);flex-shrink:0}
.uv-cp-input-row input{flex:1;border:none;outline:none;font-size: var(--uv-fs-body);color:var(--uv-dark);background:transparent;font-family:inherit}
.uv-cp-input-row input::placeholder{color:var(--uv-text-light)}
.uv-cp-esc{background:#f3f3f3;border:1px solid var(--uv-border);border-radius: var(--uv-radius-sm);font-size:.67rem;color:var(--uv-text-hint);padding:2px 7px;cursor:pointer;flex-shrink:0;user-select:none}

/* Tabs */
.uv-cp-tabs{display:flex;gap:2px;padding:8px 14px 0;border-bottom:1px solid var(--uv-border-light);flex-shrink:0;overflow-x:auto;scrollbar-width:none}
.uv-cp-tabs::-webkit-scrollbar{display:none}
.uv-cp-tab{padding:5px 11px;font-size:.72rem;font-weight: var(--uv-fw-semibold);color:var(--uv-text-soft);cursor:pointer;border:none;background:none;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius: var(--uv-radius-sm) var(--uv-radius-sm) 0 0;transition:color var(--uv-duration-fast);white-space:nowrap}
.uv-cp-tab:hover{color:var(--uv-text-secondary)}
.uv-cp-tab.active{color:var(--uv-primary);border-bottom-color:var(--uv-primary)}

/* Results */
.uv-cp-results{overflow-y:auto;flex:1}
.uv-cp-section{font-size:.63rem;font-weight: var(--uv-fw-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--uv-text-light);padding:10px 18px 3px}
.uv-cp-item{display:flex;align-items:center;gap:11px;padding:9px 18px;cursor:pointer;transition:background var(--uv-duration-fast);text-decoration:none;border-left:3px solid transparent}
.uv-cp-item:hover,.uv-cp-item.selected{background:var(--uv-bg-warm);border-left-color:var(--uv-primary)}
.uv-cp-item-icon{width:32px;height:32px;border-radius: var(--uv-radius-md);display:flex;align-items:center;justify-content:center;font-size:.88rem;flex-shrink:0}
.cp-icon-org{background:#e8f0fe;color:#1967d2}
.cp-icon-news{background:#fce8e6;color:#c5221f}
.cp-icon-art{background:#e6f4ea;color:#137333}
.cp-icon-brand{background:#fef7e0;color:#b06000}
.cp-icon-event{background:#f3e8ff;color:#7b1fa2}
.cp-icon-media{background:#e8f5e9;color:var(--uv-success)}
.cp-icon-default{background:var(--uv-border-light);color:var(--uv-text-dim)}
.uv-cp-item-body{flex:1;min-width:0}
.uv-cp-item-title{display:block;font-size:.84rem;font-weight: var(--uv-fw-semibold);color:var(--uv-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uv-cp-item-title mark{background:rgba(var(--uv-primary-rgb), .12);color:var(--uv-primary-dark);border-radius: var(--uv-radius-xs);padding:0 2px;font-weight:inherit}
.uv-cp-item-meta{font-size:.68rem;color:var(--uv-text-hint)}
.uv-cp-item-arrow{color:var(--uv-border);font-size: var(--uv-fs-small);flex-shrink:0;transition:color var(--uv-duration-fast)}
.uv-cp-item:hover .uv-cp-item-arrow,.uv-cp-item.selected .uv-cp-item-arrow{color:var(--uv-primary)}

/* Loading / empty */
.uv-cp-loading{display:flex;justify-content:center;padding:28px}
.uv-cp-spinner{width:20px;height:20px;border:2px solid var(--uv-border-light);border-top-color:var(--uv-primary);border-radius: var(--uv-radius-circle);animation:cp-spin var(--uv-anim-loop-fast) linear infinite}
@keyframes cp-spin{to{transform:rotate(360deg)}}
.uv-cp-empty{display:flex;align-items:center;gap:10px;padding:24px 18px;font-size: var(--uv-fs-small);color:var(--uv-text-hint)}
.uv-cp-empty>i{font-size:1.2rem;opacity:.4}

/* Footer */
.uv-cp-footer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 18px;border-top:1px solid var(--uv-border-light);background:var(--uv-bg-warm);flex-shrink:0}
.uv-cp-hint{display:flex;align-items:center;gap:4px;font-size:.67rem;color:var(--uv-text-light)}
.uv-cp-hint kbd{background:var(--uv-border-light);border:1px solid var(--uv-border);border-radius: var(--uv-radius-xs);padding:1px 4px;font-size:.62rem;font-family:inherit}
.uv-cp-all{margin-left:auto;font-size:.72rem;font-weight: var(--uv-fw-bold);color:var(--uv-primary);text-decoration:none;display:flex;align-items:center;gap:4px;white-space:nowrap}
.uv-cp-all:hover{text-decoration:underline}

/* Mobile: full-width, top-aligned */
@media (max-width: 767.98px) {
  .uv-cp-overlay{padding-top:0;align-items:flex-end}
  .uv-cp-panel{width:100%;max-width:100%;border-radius: var(--uv-radius-2xl) var(--uv-radius-2xl) 0 0;max-height:85vh}
  .uv-cp-trigger{display:none}
}

/* ── Header: CTA login button (header.html) ── */
.uv-btn-login{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .85rem;font-size:.76rem;font-weight: var(--uv-fw-bold);text-transform:uppercase;letter-spacing:.03em;text-decoration:none;color:var(--uv-text-inverse)!important;background:var(--uv-primary);border:none;border-radius: var(--uv-radius-3xl);transition:all var(--uv-duration-base);box-shadow:var(--uv-shadow-primary)}
.uv-btn-login:hover{background:var(--uv-primary-dark);transform:translateY(-1px);box-shadow:var(--uv-shadow-primary-lg);color:var(--uv-text-inverse)!important}

/* ── Header: offcanvas + navbar-* standalone rules (header.html) ── */
/* navbar → flex so logo+toggler sit in a row */
.uv-navbar .uv-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}
/* uv-container inside navbar → flex so logo+toggler/offcanvas side by side */
.uv-navbar .uv-nav>.uv-container{display:flex;align-items:center;justify-content:space-between;width:100%}
.uv-navbar .uv-nav-brand{display:inline-flex;align-items:center;text-decoration:none;margin-right:.5rem}
.uv-navbar .uv-nav-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.uv-navbar .uv-nav-toggler{padding:.25rem .5rem;background:transparent;border:1px solid transparent;border-radius: var(--uv-radius-xs);cursor:pointer;line-height:var(--uv-lh-none)}
.uv-navbar .uv-nav-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:100%}
/* dropdown anchor */
.uv-navbar .uv-nav-item.uv-dropdown{position:relative}
.uv-navbar .uv-offcanvas{position:fixed;top:0;left:0;width:300px;height:100%;background:var(--uv-surface);z-index: var(--uv-z-offcanvas);transform:translateX(-100%);transition:transform var(--uv-duration-slow) ease-in-out,visibility var(--uv-duration-slow);visibility:hidden;overflow-y:auto}
.uv-navbar .uv-offcanvas.show{transform:translateX(0);visibility:visible}
.uv-navbar .uv-offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}
.uv-navbar .uv-offcanvas-body{flex-grow:1;overflow-y:auto}
.uv-navbar .uv-offcanvas-title{font-weight: var(--uv-fw-bold);font-size:.95rem}
.uv-nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index: var(--uv-z-fixed)}
.uv-navbar .uv-dropdown-menu{display:none;list-style:none;position:absolute;top:100%;left:0;z-index: var(--uv-z-dropdown);background:var(--uv-surface);margin:0;border:1px solid var(--uv-border);border-radius: var(--uv-radius-sm);box-shadow:0 6px 20px rgba(0,0,0,.08);padding:.35rem 0;min-width:16rem}
.uv-navbar .uv-dropdown-menu.show{display:block}
/* dropdown-item: block + no underline (without Bootstrap it's just <a>) */
.uv-navbar .uv-dropdown-item{display:block;font-size: var(--uv-fs-small);padding:.45rem 1rem;color:var(--uv-text);text-decoration:none;white-space:nowrap;transition:background var(--uv-duration-fast),color var(--uv-duration-fast)}
.uv-navbar .uv-dropdown-item:hover,.uv-navbar .uv-dropdown-item:focus{background:rgba(var(--uv-primary-rgb), .08);color:var(--uv-primary-dark)}
.uv-navbar .uv-dropdown-item i{width:1.1rem;text-align:center;margin-right:.35rem;font-size: var(--uv-fs-small)}
.uv-navbar .uv-dropdown-submenu{position:relative}
.uv-navbar .uv-dropdown-submenu>.uv-dropdown-menu{display:none;top:0;left:100%;margin-top:-.35rem}
.uv-navbar .uv-dropdown-submenu:hover>.uv-dropdown-menu{display:block}
.uv-navbar .uv-dropdown-submenu>.uv-dropdown-item::after{content:"\F285";font-family:"bootstrap-icons";float:right;font-size:.65rem;opacity:.5;margin-left:.5rem}
/* dropdown-toggle: caret-индикатор раскрывающегося пункта/кнопки */
.uv-dropdown-toggle::after{content:"\F282";font-family:"bootstrap-icons";font-size:.65rem;opacity:.6;margin-left:.35rem;display:inline-block;transition:transform var(--uv-duration-base) ease;vertical-align:middle}
.uv-dropdown-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}
.uv-mega-dropdown{position:static!important}
.uv-mega-menu{display:none;position:absolute!important;left:0!important;right:0!important;top:100%!important;width:100%;z-index: var(--uv-z-dropdown);background:var(--uv-surface);border:1px solid var(--uv-border);border-radius: var(--uv-radius-sm);box-shadow:0 6px 20px rgba(0,0,0,.08);padding:1rem 0}
.uv-mega-menu .uv-mega-title{font-size:.72rem;font-weight: var(--uv-fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--uv-text-soft);padding:.3rem 1rem .5rem;margin:0}
.uv-mega-menu .uv-dropdown-item{font-size: var(--uv-fs-small);padding:.4rem 1rem}
@media (max-width: 991.98px) {
    .uv-navbar .uv-offcanvas{max-width:300px}
    .uv-navbar .uv-offcanvas .uv-nav-link{padding:.6rem .75rem;font-size: var(--uv-fs-small);text-transform:none;letter-spacing:0}
    .uv-navbar .uv-dropdown-submenu>.uv-dropdown-menu{position:static;box-shadow:none;border:0;padding-left:1rem}
    .uv-navbar .uv-dropdown-submenu>.uv-dropdown-item::after{transform:rotate(90deg)}
    .uv-navbar .uv-dropdown-submenu:hover>.uv-dropdown-menu{display:none}
    .uv-navbar .uv-dropdown-submenu.show>.uv-dropdown-menu{display:block}
    .uv-mega-menu{position:static!important;transform:none!important;box-shadow:none;border:0;padding:0;width:auto}
    .uv-mega-menu .row{flex-direction:column}
    .uv-mega-dropdown{position:relative!important}
}
@media (min-width: 992px) {
    .uv-navbar .uv-offcanvas{position:static;width:auto;height:auto;transform:none;visibility:visible;transition:none;overflow:visible;display:flex;flex-grow:1;z-index:auto;background:transparent}
    .uv-navbar .uv-offcanvas-header{display:none}
    /* offcanvas-body → flex so navbar-nav and search/login sit side by side */
    .uv-navbar .uv-offcanvas-body{display:flex;align-items:center;overflow:visible}
    .uv-navbar .uv-nav-list{flex-direction:row}
    .uv-navbar .uv-nav-toggler{display:none}
    .uv-navbar .uv-nav-item.uv-dropdown:hover>.uv-dropdown-menu,
    .uv-navbar .uv-nav-item.uv-mega-dropdown:hover>.uv-mega-menu{display:block}
    .uv-navbar .uv-dropdown-menu{margin-top:0}
}

/* Десктоп-navbar живёт в #wrapper (max-width:1080px, overflow:clip) НЕЗАВИСИМО
   от ширины окна. 7 пунктов меню + поиск + «Войти» переполняли 1080px на ~40px
   (замер на проде) → clip срезал правый край кнопки «Войти» (у гостя) / поиска
   (у авторизованного). Освобождаем место: прячем декоративный ярлык Ctrl K и
   ужимаем padding поиска (−43px) + слегка сжимаем padding пунктов меню (запас
   под box-shadow кнопки). Итог: кнопка внутри clip-края с запасом ~8px. */
@media (min-width: 992px) {
    .uv-cp-trigger kbd{display:none}
    .uv-cp-trigger{padding:6px 10px;gap:5px}
    .uv-navbar .uv-nav-list .uv-nav-link{padding-left:.6rem;padding-right:.6rem}
}

/* ── Mega-menu news cards (menu_news.html) ── */
.uv-megamenu-news{display:flex;flex-direction:column;gap:.5rem}
.uv-megamenu-card{position:relative;border-radius: var(--uv-radius-sm);overflow:hidden;display:block;text-decoration:none;color:var(--uv-text-inverse)}
.uv-megamenu-card img{width:100%;height:140px;object-fit:cover;display:block;transition:transform var(--uv-duration-slow) ease}
.uv-megamenu-card:hover img{transform:scale(1.05)}
.uv-megamenu-card .uv-mm-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,10,20,.85) 0%,rgba(10,10,20,.3) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:.7rem}
.uv-megamenu-card .uv-mm-meta{font-size: var(--uv-fs-small);opacity:.8;margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem}
.uv-megamenu-card .uv-mm-meta time{background:rgba(255,255,255,.15);padding:.1rem .35rem;border-radius: var(--uv-radius-xs)}
.uv-megamenu-card .uv-mm-title{font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);line-height:var(--uv-lh-compact);color:var(--uv-text-inverse);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ── Pro companies teasers (pro_companies_without_description.html) ── */
.uv-teasers{display:flex;gap:1rem;padding-bottom:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.uv-teasers::-webkit-scrollbar{display:none}
.uv-teaser-card{flex:1 1 0;min-width:170px;max-width:210px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:var(--uv-text);padding:1.25rem .75rem;border:1px solid var(--uv-border);border-radius: var(--uv-radius-sm);background:var(--uv-surface);transition:all var(--uv-duration-slow) var(--uv-ease)}
.uv-teaser-card:hover{border-color:var(--uv-primary);box-shadow:var(--uv-shadow-md);transform:translateY(-4px);color:var(--uv-text);text-decoration:none}
.uv-teaser-avatar{width:120px;height:120px;border-radius: var(--uv-radius-circle);overflow:hidden;margin-bottom:.75rem;border:2px solid var(--uv-border);transition:border-color var(--uv-duration-slow) ease}
.uv-teaser-card:hover .uv-teaser-avatar{border-color:var(--uv-primary)}
.uv-teaser-avatar img{width:100%;height:100%;object-fit:cover}
.uv-teaser-name{font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);line-height:var(--uv-lh-compact);margin-bottom:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.uv-teaser-location{font-size:.75rem;color:var(--uv-text-muted);margin-bottom:.3rem}
.uv-teaser-location i{color:var(--uv-primary);font-size:var(--uv-fs-xs)}
.uv-teaser-views{font-size:var(--uv-fs-xs);color:var(--uv-text-muted);margin-top:auto}
.uv-teasers-slider{position:relative}
.uv-teaser-body{display:contents}
.uv-teaser-footer{display:contents}
.uv-teaser-cta{display:none}
.uv-teaser-desc{display:none}
.uv-teasers-dots{display:none}
@media (max-width: 767.98px) {
  .uv-teasers{gap:0;padding:0;scroll-snap-type:x mandatory;scroll-snap-stop:always;scroll-behavior:smooth}
  .uv-teaser-card{
    flex:0 0 100%;width:100%;min-width:0;max-width:none;box-sizing:border-box;scroll-snap-align:start;
    margin:0;
    flex-direction:row;align-items:center;text-align:left;
    gap:.75rem;padding:14px 12px;min-height:140px;
    border:0;border-radius: 0;
    background-color:var(--uv-surface);
    background-image:
      linear-gradient(to right,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to right,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to left,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to left,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to bottom,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to bottom,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to top,var(--uv-border) 1px,transparent 0px),
      linear-gradient(to top,var(--uv-border) 1px,transparent 0px);
    background-position:0 0,0 100%,100% 0,100% 100%,0 0,100% 0,0 100%,100% 100%;
    background-repeat:no-repeat;
    background-size:60px 100%;
  }
  .uv-teaser-card:hover{transform:none;box-shadow:none}
  .uv-teaser-avatar{width:80px;height:80px;margin-bottom:0;flex-shrink:0;border-radius: var(--uv-radius-circle);border:1px solid var(--uv-border);overflow:hidden}
  .uv-teaser-avatar img{width:80px;height:80px;object-fit:cover}
  .uv-teaser-body{display:flex;flex-direction:column;flex:1;min-width:0;gap:.3rem;align-self:stretch}
  .uv-teaser-name{font-size:.95rem;color:var(--uv-primary);text-transform:uppercase;font-weight: var(--uv-fw-bold);margin:0;-webkit-line-clamp:2;line-height:var(--uv-lh-none)}
  .uv-teaser-location{display:none}
  .uv-teaser-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size: var(--uv-fs-small);color:#222;line-height:var(--uv-lh-compact);margin:0}
  .uv-teaser-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:auto;padding-top:.3rem}
  .uv-teaser-views{font-size: var(--uv-fs-micro);color:#7c8fa0;margin:0;display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}
  .uv-teaser-cta{display:inline-block;font-size:.65rem;font-weight: var(--uv-fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--uv-text-inverse);background:var(--uv-primary-dark);padding:5px 10px;border-radius: var(--uv-radius-xs);line-height:var(--uv-lh-base);text-decoration:none;white-space:nowrap}
  .uv-teasers-dots{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:10px}
  .uv-teasers-dot{appearance:none;border:0;width:8px;height:8px;border-radius: var(--uv-radius-xs);background:#8ec5ff;padding:0;cursor:pointer;transition:background var(--uv-duration-base),transform var(--uv-duration-base)}
  .uv-teasers-dot.is-active{background:var(--uv-primary)}
}

/* ── Quotes widgets (ext.html) ── */
.element-btn{min-width:56px;min-height:56px;padding:2px;margin-right:4px;cursor:pointer;position:relative}
.element-title{font-weight: var(--uv-fw-light);font-size: var(--uv-fs-h2);text-align:left}
.element-index{font-size:.75rem;text-align:left}
.show_hide,.show_hide2,.show_hide3,.show_hide4,
.show_hide-fix,.show_hide-fix2,.show_hide-fix3,.show_hide-fix4,
.show_hide-cur1,.show_hide-cur2{display:none}
.cur1{background-color:rgba(186,191,181,.2);color:rgb(57,58,61)}
.cur1:hover{background-color:rgba(57,58,61,.5)!important;color:var(--uv-text-inverse)}
.au{background-color:rgba(210,172,103,.2);color:rgb(186,154,97)}
.au:hover{background-color:rgba(210,172,103,1)!important;color:var(--uv-text-inverse)}
.ag{background-color:rgba(149,156,161,.2);color:rgb(149,156,161)}
.ag:hover{background-color:rgba(149,156,161,1)!important;color:var(--uv-text-inverse)}
.pt{background-color:rgba(126,116,126,.2);color:rgb(126,116,126)}
.pt:hover{background-color:rgba(126,116,126,1)!important;color:var(--uv-text-inverse)}
.pd{background-color:rgba(141,138,124,.2);color:rgb(141,138,124)}
.pd:hover{background-color:rgba(141,138,124,1)!important;color:var(--uv-text-inverse)}

/* ── Cookie consent (cookie-consent.html) ── */
.cookie-consent{position:fixed;bottom:20px;left:20px;width:380px;max-width:calc(100vw - 40px);z-index: var(--uv-z-popover);background:linear-gradient(135deg,rgba(26,26,46,.92),rgba(35,32,48,.95));backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-radius: var(--uv-radius-2xl);border:1px solid rgba(255,255,255,.06);box-shadow:0 24px 48px rgba(0,0,0,.25),0 8px 16px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.04);padding:0;overflow:hidden;animation:cc-slide-in var(--uv-anim-slow) cubic-bezier(.16,1,.3,1) both;animation-delay:1.2s}
@keyframes cc-slide-in{from{opacity:0;transform:translateY(24px) scale(.96);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.cookie-consent::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--uv-primary),#4d94ff 40%,var(--uv-primary-dark) 70%,var(--uv-primary));background-size:200% 100%;animation:cc-shimmer var(--uv-anim-loop-slow) ease-in-out infinite;animation-delay:1.8s}
@keyframes cc-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.cc-body{padding:22px 24px 20px}
.cc-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cc-icon{flex-shrink:0;width:36px;height:36px;border-radius: var(--uv-radius-lg);background:linear-gradient(135deg,rgba(var(--uv-primary-rgb), .15),rgba(var(--uv-primary-rgb), .05));border:1px solid rgba(var(--uv-primary-rgb), .2);display:flex;align-items:center;justify-content:center;font-size:18px;line-height:var(--uv-lh-none)}
.cc-title{font-family:'Exo 2','Exo 2 Fallback',sans-serif;font-size:1.05rem;font-weight: var(--uv-fw-semibold);color:var(--uv-border-light);letter-spacing:.01em;line-height:var(--uv-lh-compact)}
.cc-text{font-size: var(--uv-fs-small);line-height:var(--uv-lh-base);color:rgba(240,236,228,.6);margin-bottom:18px;letter-spacing:.005em}
.cc-text a{color:rgba(var(--uv-primary-rgb), .7);text-decoration:none;border-bottom:1px solid rgba(var(--uv-primary-rgb), .2);transition:all var(--uv-duration-base) ease}
.cc-text a:hover{color:#4d94ff;border-bottom-color:rgba(var(--uv-primary-rgb), .5)}
.cc-actions{display:flex;gap:10px}
.cc-btn-accept{flex:1;appearance:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);letter-spacing:.04em;text-transform:uppercase;padding:11px 20px;border-radius: var(--uv-radius-lg);color:var(--uv-text-inverse);background:linear-gradient(135deg,var(--uv-primary),#4d94ff);box-shadow:var(--uv-shadow-primary-lg),inset 0 1px 0 rgba(255,255,255,.15);transition:all var(--uv-duration-slow) var(--uv-ease);position:relative;overflow:hidden}
.cc-btn-accept::after{content:'';position:absolute;inset:0;border-radius: inherit;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15));opacity:0;transition:opacity var(--uv-duration-slow) ease}
.cc-btn-accept:hover{transform:translateY(-1px);box-shadow:var(--uv-shadow-primary-lg),inset 0 1px 0 rgba(255,255,255,.2)}
.cc-btn-accept:hover::after{opacity:1}
.cc-btn-accept:active{transform:translateY(0);box-shadow:var(--uv-shadow-primary)}
.cookie-consent.cc-hiding{animation:cc-slide-out var(--uv-anim-base) cubic-bezier(.55,0,1,.45) forwards}
@keyframes cc-slide-out{to{opacity:0;transform:translateY(16px) scale(.97);filter:blur(4px)}}
@media (max-width: 575.98px) {.cookie-consent{bottom:0;left:0;width:100%;max-width:100%;border-radius: var(--uv-radius-3xl) var(--uv-radius-3xl) 0 0;animation-name:cc-slide-in-mobile}.cc-body{padding:20px 20px 24px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.cookie-consent.cc-hiding{animation-name:cc-slide-out-mobile}}
@keyframes cc-slide-in-mobile{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}
@keyframes cc-slide-out-mobile{to{opacity:0;transform:translateY(100%)}}
@media (prefers-reduced-motion:reduce) {.cookie-consent,.cookie-consent.cc-hiding{animation-duration:.01ms}.cookie-consent::before{animation:none}}

/* ── Telegram subscribe widget (telegram-subscribe-widget.html) ── */
#tg-round-wrapper{display:none;position:fixed;right:16px;bottom:16px;width:260px;border-radius: var(--uv-radius-2xl);overflow:hidden;z-index: var(--uv-z-fixed);background:var(--uv-dark);box-shadow:0 8px 32px rgba(0,0,0,.25),var(--uv-shadow-focus);opacity:0;transform:translateY(20px) scale(.96);transition:opacity var(--uv-duration-slow) ease,transform var(--uv-duration-slow) ease}
#tg-round-wrapper.tg-visible{opacity:1;transform:translateY(0) scale(1)}
.tg-widget-header{background:linear-gradient(135deg,#0088cc,#005f8c);padding:1.1rem 1.25rem .85rem;position:relative;display:flex;align-items:flex-start;gap:.75rem}
.tg-widget-header::after{content:'';position:absolute;bottom:-12px;left:0;right:0;height:12px;background:linear-gradient(180deg,rgba(0,136,204,.15),transparent)}
.tg-widget-icon{width:42px;height:42px;flex-shrink:0;border-radius: var(--uv-radius-circle);background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;position:relative}
.tg-widget-icon svg{width:22px;height:22px;fill:var(--uv-surface)}
.tg-widget-icon::after{content:'';position:absolute;top:-2px;right:-2px;width:12px;height:12px;border-radius: var(--uv-radius-circle);background:#e53935;border:2px solid #005f8c}
.tg-widget-title{font-size:.92rem;font-weight: var(--uv-fw-semibold);color:var(--uv-text-inverse);line-height:var(--uv-lh-compact);margin:0}
.tg-widget-body{padding:1rem 1.25rem 1.15rem}
.tg-widget-desc{font-size: var(--uv-fs-small);line-height:var(--uv-lh-base);color:#a0a0b8;margin-bottom:1rem}
.tg-widget-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.6rem;border-radius: var(--uv-radius-lg);font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);color:var(--uv-text-inverse);background:linear-gradient(135deg,#0088cc,#006daa);text-decoration:none;transition:all var(--uv-duration-base);border:none}
.tg-widget-btn:hover{background:linear-gradient(135deg,#009ae5,#0080c4);box-shadow:0 4px 16px rgba(0,136,204,.3);transform:translateY(-1px);color:var(--uv-text-inverse)}
.tg-widget-btn svg{width:16px;height:16px;fill:currentColor}
#tg-round-close{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:none;border-radius: var(--uv-radius-circle);cursor:pointer;color:rgba(255,255,255,.7);font-size: var(--uv-fs-small);transition:background var(--uv-duration-base),color var(--uv-duration-base);z-index:3;min-width:44px;min-height:44px;margin:-8px -8px 0 0}
#tg-round-close:hover{background:rgba(255,255,255,.25);color:var(--uv-text-inverse)}
@media (max-width: 575.98px) {#tg-round-wrapper{width:calc(100% - 24px);left:12px;right:12px;bottom:12px}}

/* ── Pro companies sidebar (pro_companies.html) ── */
.pro-recommend-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--uv-primary);position:relative}
.pro-recommend-header::after{content:'';position:absolute;bottom:-2px;left:0;width:60px;height:2px;background:var(--uv-primary-dark)}
.pro-recommend-badge{display:inline-flex;align-items:center;gap:.3rem;background:var(--uv-primary);color:var(--uv-text-inverse);font-size:var(--uv-fs-xs);font-weight: var(--uv-fw-bold);letter-spacing:.08em;text-transform:uppercase;padding:.25rem .6rem;border-radius: var(--uv-radius-xs);white-space:nowrap}
.pro-recommend-title{font-size:var(--uv-fs-small);font-weight: var(--uv-fw-semibold);color:var(--uv-dark);letter-spacing:.02em;line-height:var(--uv-lh-compact)}
.pro-recommend-title span{font-weight: var(--uv-fw-medium);color:var(--uv-text-muted)}
.pro-recommend-card{background:var(--uv-bg-warm);border:1px solid var(--uv-border);border-radius: var(--uv-radius-sm);padding:.9rem;margin-bottom:.6rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem;transition:border-color var(--uv-duration-slow),box-shadow var(--uv-duration-slow),transform var(--uv-duration-base);position:relative;overflow:hidden;animation:prCardIn var(--uv-anim-base) ease both}
.pro-recommend-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--uv-primary);opacity:0;transition:opacity var(--uv-duration-slow)}
.pro-recommend-card:hover{border-color:var(--uv-primary);box-shadow:var(--uv-shadow-sm);transform:translateY(-1px)}
.pro-recommend-card:hover::before{opacity:1}
.pro-recommend-card:nth-child(2){animation-delay:.06s}
.pro-recommend-card:nth-child(3){animation-delay:.12s}
.pro-recommend-card:nth-child(4){animation-delay:.18s}
.pro-recommend-card:nth-child(5){animation-delay:.24s}
@keyframes prCardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.pro-recommend-avatar{flex-shrink:0;width:120px;height:120px;border-radius: var(--uv-radius-circle);overflow:hidden;border:2px solid var(--uv-border);background:var(--uv-surface);transition:border-color var(--uv-duration-slow);box-shadow:var(--uv-shadow-sm)}
.pro-recommend-card:hover .pro-recommend-avatar{border-color:var(--uv-primary)}
.pro-recommend-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pro-recommend-content{flex:1;min-width:0}
.pro-recommend-name{font-size:.9rem;font-weight: var(--uv-fw-semibold);color:var(--uv-dark);text-decoration:none;line-height:var(--uv-lh-compact);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.25rem;transition:color var(--uv-duration-base);text-transform:uppercase}
.pro-recommend-name:hover{color:var(--uv-primary-dark)}
.pro-recommend-location{font-size:var(--uv-fs-small);color:var(--uv-text-muted);margin-bottom:.4rem;display:flex;align-items:center;justify-content:center;gap:.25rem}
.pro-recommend-location i{color:var(--uv-primary-dark);font-size:var(--uv-fs-xs)}
.pro-recommend-desc{font-size:.9rem;line-height:var(--uv-lh-compact);color:var(--uv-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pro-recommend-meta{display:flex;align-items:center;justify-content:center;margin-top:.45rem;padding-top:.4rem;border-top:1px solid var(--uv-border);gap:.75rem}
.pro-recommend-views{font-size:var(--uv-fs-xs);color:var(--uv-text-muted);display:flex;align-items:center;gap:.2rem;white-space:nowrap}
.pro-recommend-pro-tag{display:inline-flex;align-items:center;gap:.2rem;font-size:var(--uv-fs-xs);font-weight: var(--uv-fw-semibold);letter-spacing:.04em;color:var(--uv-primary-dark);background:rgba(var(--uv-primary-rgb), .08);border:1px solid rgba(var(--uv-primary-rgb), .25);padding:.15rem .5rem;border-radius: var(--uv-radius-xs);text-decoration:none;white-space:nowrap;transition:all var(--uv-duration-base)}
.pro-recommend-pro-tag:hover{background:var(--uv-primary);color:var(--uv-text-inverse);border-color:var(--uv-primary)}
.pro-recommend-pro-tag i{font-size:var(--uv-fs-xs)}

/* ── Popular companies (popular_companies.html) ── */
.uv-popular{display:flex;flex-direction:column;gap:0}
.uv-popular-item{display:flex;align-items:center;gap:.65rem;padding:.7rem .6rem;border-bottom:1px solid var(--uv-border);text-decoration:none;color:var(--uv-text);transition:all var(--uv-duration-base) ease;border-left:2px solid transparent}
.uv-popular-item:last-child{border-bottom:none}
.uv-popular-item:hover{background:var(--uv-bg-warm);border-left-color:var(--uv-primary);color:var(--uv-text);text-decoration:none}
.uv-popular-info{flex:1;min-width:0}
.uv-popular-name{font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);line-height:var(--uv-lh-compact);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uv-popular-item:hover .uv-popular-name{color:var(--uv-primary-dark)}
.uv-popular-meta{font-size: var(--uv-fs-micro);color:var(--uv-text-muted);display:flex;align-items:center;gap:.5rem;margin-top:.15rem}
.uv-popular-views{margin-left:auto;font-size: var(--uv-fs-micro);color:#9898a8;display:flex;align-items:center;gap:.25rem;flex-shrink:0}

/* ── Newsletter subscribe (newsletter_subscribe.html) ── */
.uv-subscribe{border-radius: var(--uv-radius-xl);background:linear-gradient(135deg,var(--uv-bg-warm) 0%,var(--uv-bg-warm) 60%,var(--uv-border) 100%);border:1px solid #e0dbd0;padding:1.5rem 1.25rem;text-align:center}
.uv-subscribe-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius: var(--uv-radius-circle);background:linear-gradient(135deg,var(--uv-primary),var(--uv-primary-dark));color:var(--uv-text-inverse);font-size: var(--uv-fs-h3);margin-bottom:.75rem;box-shadow:var(--uv-shadow-primary)}
.uv-subscribe-title{font-size:.95rem;font-weight: var(--uv-fw-bold);color:var(--uv-text-dark);letter-spacing:.02em;margin-bottom:.35rem}
.uv-subscribe-desc{font-size: var(--uv-fs-xs);color:var(--uv-text-muted);line-height:var(--uv-lh-base);margin-bottom:1rem}
.uv-subscribe-input{width:100%;padding:.5rem .75rem;border:1px solid var(--uv-border);border-radius: var(--uv-radius-md);font-size: var(--uv-fs-small);background:var(--uv-surface);color:var(--uv-text);transition:border-color var(--uv-duration-base),box-shadow var(--uv-duration-base);margin-bottom:.5rem}
.uv-subscribe-input:focus{outline:none;border-color:var(--uv-primary);box-shadow:var(--uv-shadow-focus)}
.uv-subscribe-input::placeholder{color:var(--uv-text-hint)}
.uv-subscribe-btn{width:100%;padding:.55rem 1rem;border:none;border-radius: var(--uv-radius-md);background:linear-gradient(135deg,var(--uv-primary),var(--uv-primary-dark));color:var(--uv-text-inverse);font-size: var(--uv-fs-small);font-weight: var(--uv-fw-bold);letter-spacing:.03em;cursor:pointer;transition:all var(--uv-duration-base)}
.uv-subscribe-btn:hover{background:linear-gradient(135deg,var(--uv-primary-dark),var(--uv-primary-hover));box-shadow:var(--uv-shadow-primary);transform:translateY(-1px)}
.uv-subscribe-note{font-size:.65rem;color:var(--uv-text-hint);margin-top:.6rem}

/* ── Social share buttons (yashare.html) ── */
.uv-share{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.uv-share-label{font-size: var(--uv-fs-xs);font-weight: var(--uv-fw-semibold);color:var(--uv-text-muted);letter-spacing:.02em;white-space:nowrap}
.uv-share-links{display:flex;gap:.35rem;flex-wrap:wrap}
.uv-share-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius: var(--uv-radius-md);background:var(--uv-bg-warm);color:var(--uv-text-muted);text-decoration:none;font-size: var(--uv-fs-body);transition:all var(--uv-duration-base)}
.uv-share-link:hover{transform:translateY(-2px);box-shadow:0 3px 12px rgba(0,0,0,.1)}
.uv-share-link-tg:hover{background:#26A5E4;color:var(--uv-text-inverse)}
.uv-share-link-vk:hover{background:#0077FF;color:var(--uv-text-inverse)}
.uv-share-link-ok:hover{background:#EE8208;color:var(--uv-text-inverse)}
.uv-share-link-max:hover{background:#0066CC;color:var(--uv-text-inverse)}

/* ── OAuth box — Mail.ru login (core/oauth/box.html) ── */
.mailru-login-link{color:var(--uv-text-inverse)}
.mailru-login-button{display:block;background:#005ff9;color:var(--uv-text-inverse);font-size:1.15rem;padding:10px 15px;height:44px}
.mailru-logo{color:#ff9e00;font-weight: var(--uv-fw-semibold);font-size:1.75rem}

/* ── Login page (account/login.html) ── */
.uv-login-scene {
    --login-accent-pale: #e8f0fe;

    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 0 2.5rem;
    position: relative;
    overflow: hidden;
}

.uv-login-scene::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, transparent 46%, var(--login-accent-pale) 46%, var(--login-accent-pale) 54%, transparent 54%),
        linear-gradient(225deg, transparent 46%, var(--login-accent-pale) 46%, var(--login-accent-pale) 54%, transparent 54%);
    background-size: 40px 40px;
    opacity: .45;
    pointer-events: none;
}

.uv-login-card {
    position: relative;
    width: 100%;
    max-width: 860px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--uv-surface);
    border-radius: var(--uv-radius-2xl);
    box-shadow:
        0 1px 0 rgba(var(--uv-primary-rgb), .15),
        0 8px 40px rgba(30, 30, 42, .08),
        0 1px 3px rgba(0,0,0,.04);
    overflow: hidden;
    animation: loginCardIn var(--uv-anim-slow) var(--uv-ease-out) both;
}

@keyframes loginCardIn {
    from { opacity: 0; transform: translateY(16px) scale(.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.uv-login-panel {
    background: linear-gradient(160deg, var(--uv-primary) 0%, var(--uv-dark) 100%);
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.uv-login-panel::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: var(--uv-radius-md);
    pointer-events: none;
}

.uv-login-panel::after {
    content: "";
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: var(--uv-radius-sm);
    pointer-events: none;
}

.uv-login-gem {
    margin-bottom: 1.5rem;
    filter: drop-shadow(0 4px 14px rgba(255, 255, 255, .2));
    animation: gemFloat var(--uv-anim-loop-slow) ease-in-out infinite;
}

@keyframes gemFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.uv-login-panel-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--uv-radius-circle);
    background: rgba(255, 255, 255, .12);
    border: 2px solid rgba(255, 255, 255, .2);
    margin-bottom: 1.5rem;
    animation: gemFloat var(--uv-anim-loop-slow) ease-in-out infinite;
}

.uv-login-panel-icon i {
    font-size: 1.6rem;
    color: var(--uv-text-inverse);
}

.uv-login-panel-title {
    font-family: 'Jost', sans-serif;
    font-size: var(--uv-fs-h1-mobile);
    font-weight: var(--uv-fw-semibold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--uv-text-inverse);
    margin-bottom: .6rem;
    line-height: var(--uv-lh-compact);
}

.uv-login-panel-sub {
    font-family: 'Jost', sans-serif;
    font-size: var(--uv-fs-small);
    color: rgba(255,255,255,.6);
    letter-spacing: .15em;
    text-transform: uppercase;
    margin-bottom: 2rem;
}

.uv-login-sep {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent);
    margin: 0 auto 1.5rem;
}

.uv-login-panel-text {
    font-size: var(--uv-fs-small);
    color: rgba(255,255,255,.55);
    line-height: var(--uv-lh-content);
    max-width: 240px;
}

.uv-login-panel-text a {
    color: #b6d4fe;
    text-decoration: none;
    font-weight: var(--uv-fw-semibold);
    transition: color var(--uv-duration-base);
}

.uv-login-panel-text a:hover {
    color: var(--uv-text-inverse);
}

.uv-login-form-wrap {
    padding: 2.5rem 2.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.uv-login-heading {
    font-family: 'Jost', sans-serif;
    font-size: 1.4rem;
    font-weight: var(--uv-fw-semibold);
    color: var(--uv-text-dark);
    margin-bottom: .25rem;
}

.uv-login-subheading {
    font-size: .84rem;
    color: var(--uv-text-muted);
    margin-bottom: 1.75rem;
}

.uv-login-subheading a {
    color: var(--uv-primary);
    font-weight: var(--uv-fw-semibold);
    text-decoration: none;
    transition: color var(--uv-duration-base);
}

.uv-login-subheading a:hover {
    color: var(--uv-primary);
}

.uv-login-field {
    position: relative;
    margin-bottom: 1.25rem;
}

.uv-login-field input {
    box-sizing: border-box;   /* padding не расширяет width за пределы карточки */
    width: 100%;
    padding: .7rem .85rem .7rem 2.5rem;
    border: 1px solid var(--uv-border);
    border-radius: var(--uv-radius-md);
    font-size: .9rem;
    color: var(--uv-text-dark);
    background: var(--uv-bg-warm);
    transition: border-color var(--uv-duration-base), box-shadow var(--uv-duration-base), background var(--uv-duration-base);
    outline: none;
}

.uv-login-field input::placeholder {
    color: var(--uv-text-hint);
    font-weight: var(--uv-fw-normal);
}

.uv-login-field input:focus {
    border-color: var(--uv-primary);
    background: var(--uv-surface);
    box-shadow: var(--uv-shadow-focus);
}

.uv-login-field-icon {
    position: absolute;
    left: .85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--uv-text-light);
    font-size: .95rem;
    transition: color var(--uv-duration-base);
    pointer-events: none;
}

.uv-login-field input:focus ~ .uv-login-field-icon {
    color: var(--uv-primary);
}

.uv-login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    font-size: var(--uv-fs-small);
}

.uv-login-remember {
    display: flex;
    align-items: center;
    gap: .4rem;
    cursor: pointer;
    color: var(--uv-text-muted);
}

.uv-login-remember input[type="checkbox"] {
    accent-color: var(--uv-primary);
    width: 15px;
    height: 15px;
    cursor: pointer;
}

.uv-login-forgot {
    color: var(--uv-text-muted);
    text-decoration: none;
    font-weight: var(--uv-fw-medium);
    transition: color var(--uv-duration-base);
}

.uv-login-forgot:hover {
    color: var(--uv-primary);
}

.uv-login-submit {
    width: 100%;
    padding: .75rem;
    border: none;
    border-radius: var(--uv-radius-md);
    font-family: 'Jost', sans-serif;
    font-size: .9rem;
    font-weight: var(--uv-fw-semibold);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--uv-text-inverse);
    background: linear-gradient(135deg, var(--uv-primary) 0%, var(--uv-primary-dark) 100%);
    cursor: pointer;
    transition: all var(--uv-duration-slow) var(--uv-ease);
    position: relative;
    overflow: hidden;
}

.uv-login-submit::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
    transition: left var(--uv-duration-slower) ease;
}

.uv-login-submit:hover {
    background: linear-gradient(135deg, var(--uv-primary-dark) 0%, var(--uv-primary-hover) 100%);
    box-shadow: var(--uv-shadow-primary-lg);
    transform: translateY(-1px);
}

.uv-login-submit:hover::before {
    left: 100%;
}

.uv-login-submit:active {
    transform: translateY(0);
}

.uv-login-back {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: 1.25rem;
    font-size: .84rem;
    color: var(--uv-text-muted);
    text-decoration: none;
    transition: color var(--uv-duration-base);
}

.uv-login-back:hover {
    color: var(--uv-primary);
}

.uv-login-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1.5rem 0;
    color: var(--uv-text-light);
    font-size: .75rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.uv-login-divider::before,
.uv-login-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--uv-border), transparent);
}

.uv-login-social {
    display: flex;
    justify-content: center;
    gap: .65rem;
}

.uv-login-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--uv-radius-lg);
    border: 1px solid var(--uv-border);
    background: var(--uv-surface);
    color: var(--uv-text-muted);
    font-size: var(--uv-fs-h4);
    text-decoration: none;
    transition: all var(--uv-duration-base) var(--uv-ease);
}

.uv-login-social a svg { display: block; width: 20px; height: 20px; }

.uv-login-social a:hover {
    transform: translateY(-2px);
}

.uv-login-social a.uv-soc-vk:hover { border-color: #0077ff; color: #0077ff; background: rgba(0,119,255,.06); box-shadow: 0 4px 12px rgba(0,119,255,.1); }
.uv-login-social a.uv-soc-ok:hover { border-color: #ee8208; color: #ee8208; background: rgba(238,130,8,.06); box-shadow: 0 4px 12px rgba(238,130,8,.1); }
.uv-login-social a.uv-soc-yandex:hover { border-color: #fc3f1d; color: #fc3f1d; background: rgba(252,63,29,.06); box-shadow: 0 4px 12px rgba(252,63,29,.1); }

/* Login responsive */
@media (max-width: 767.98px) {
    .uv-login-card {
        grid-template-columns: 1fr;
        max-width: 440px;
    }

    .uv-login-panel {
        padding: 2rem 1.5rem 1.5rem;
    }

    .uv-login-panel-title { font-size: 1.35rem; }
    .uv-login-panel-text { display: none; }
    .uv-login-sep { margin-bottom: .75rem; }

    .uv-login-form-wrap {
        padding: 1.75rem 1.5rem 2rem;
    }
}

.uv-login-form-wrap > * {
    animation: fadeSlideUp var(--uv-anim-slow) var(--uv-ease-out) both;
}
.uv-login-form-wrap > *:nth-child(1) { animation-delay: .15s; }
.uv-login-form-wrap > *:nth-child(2) { animation-delay: .2s; }
.uv-login-form-wrap > *:nth-child(3) { animation-delay: .25s; }
.uv-login-form-wrap > *:nth-child(4) { animation-delay: .3s; }
.uv-login-form-wrap > *:nth-child(5) { animation-delay: .35s; }
.uv-login-form-wrap > *:nth-child(6) { animation-delay: .4s; }
.uv-login-form-wrap > *:nth-child(7) { animation-delay: .45s; }
.uv-login-form-wrap > *:nth-child(8) { animation-delay: .5s; }

@keyframes fadeSlideUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .uv-login-card,
    .uv-login-form-wrap > *,
    .uv-login-gem {
        animation: none !important;
    }
}

/* ── SIGNUP page (account/signup.html) ── */
.uv-signup-scene {
    --signup-accent-light: #b6d4fe;
    --signup-accent-pale: rgba(var(--uv-primary-rgb), .07);

    min-height: 520px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 1rem 0 2.5rem;
    position: relative;
    overflow: hidden;
}
.uv-signup-scene::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, transparent 46%, var(--signup-accent-pale) 46%, var(--signup-accent-pale) 54%, transparent 54%),
        linear-gradient(225deg, transparent 46%, var(--signup-accent-pale) 46%, var(--signup-accent-pale) 54%, transparent 54%);
    background-size: 40px 40px;
    opacity: .55;
    pointer-events: none;
}

.uv-signup-card {
    position: relative;
    width: 100%;
    max-width: 920px;
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--uv-surface);
    border-radius: var(--uv-radius-2xl);
    box-shadow:
        0 1px 0 rgba(var(--uv-primary-rgb), .15),
        0 8px 40px rgba(30, 30, 42, .09),
        0 1px 3px rgba(0,0,0,.05);
    overflow: hidden;
    animation: loginCardIn var(--uv-anim-slow) var(--uv-ease-out) both;
}

.uv-signup-panel {
    background: linear-gradient(160deg, var(--uv-primary) 0%, var(--uv-dark) 100%);
    padding: 2.25rem 1.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.uv-signup-panel::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: var(--uv-radius-md);
    pointer-events: none;
}
.uv-signup-panel::after {
    content: "";
    position: absolute;
    inset: 20px;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: var(--uv-radius-sm);
    pointer-events: none;
}
.uv-signup-panel-glow {
    position: absolute;
    border-radius: var(--uv-radius-circle);
    pointer-events: none;
    filter: blur(40px);
}
.uv-signup-panel-glow-top  { width:200px; height:200px; top:-60px;    left:-60px;  background: rgba(110,168,254,.18); }
.uv-signup-panel-glow-bot  { width:160px; height:160px; bottom:-40px; right:-40px; background: rgba(142,197,255,.12); }

.uv-signup-gem {
    margin-bottom: 1.1rem;
    filter: drop-shadow(0 4px 16px rgba(255,230,140,.35));
    animation: gemFloat var(--uv-anim-loop-slow) ease-in-out infinite;
    position: relative;
    z-index: 1;
}

.uv-signup-panel-title {
    font-family: 'Jost', sans-serif;
    font-size: 1.45rem;
    font-weight: var(--uv-fw-bold);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--uv-text-inverse);
    margin-bottom: .35rem;
    line-height: var(--uv-lh-compact);
    position: relative;
    z-index: 1;
}
.uv-signup-panel-sub {
    font-family: 'Jost', sans-serif;
    font-size: .75rem;
    color: rgba(255,255,255,.55);
    letter-spacing: .16em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    position: relative;
    z-index: 1;
}
.uv-signup-sep {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
    margin: 0 auto 1.4rem;
    position: relative;
    z-index: 1;
}

.uv-signup-benefits {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: left;
    width: 100%;
    position: relative;
    z-index: 1;
}
.uv-signup-benefits li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .5rem 0;
    border-bottom: 1px solid rgba(255,255,255,.09);
}
.uv-signup-benefits li:last-child { border-bottom: none; }
.uv-signup-benefits-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: var(--uv-radius-circle);
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: .08rem;
}
.uv-signup-benefits-icon svg { width: 11px; height: 11px; fill: var(--signup-accent-light); }
.uv-signup-benefits-text { font-size: var(--uv-fs-small); color: rgba(255,255,255,.78); line-height: var(--uv-lh-base); }
.uv-signup-benefits-text strong { display: block; color: var(--uv-text-inverse); font-weight: var(--uv-fw-semibold); font-size: var(--uv-fs-small); margin-bottom: .08rem; }

.uv-signup-panel-note {
    margin-top: 1.4rem;
    font-size: .71rem;
    color: rgba(255,255,255,.35);
    font-style: italic;
    letter-spacing: .03em;
    line-height: var(--uv-lh-base);
    position: relative;
    z-index: 1;
}

.uv-signup-form-wrap {
    padding: 2rem 2.25rem 2.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow-y: auto;
}

/* Override crispy-forms Bootstrap output */
.uv-signup-form .form-group,
.uv-signup-form .mb-3 { margin-bottom: .9rem; }

.uv-signup-form label,
.uv-signup-form .form-label {
    display: block;
    font-size: .72rem;
    font-weight: var(--uv-fw-bold);
    color: var(--uv-text-secondary);
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: .3rem;
}
.uv-signup-form .form-control {
    box-sizing: border-box;   /* padding не расширяет width за пределы карточки */
    width: 100%;
    padding: .62rem .85rem;
    border: 1px solid var(--uv-border);
    border-radius: var(--uv-radius-md);
    font-size: .9rem;
    color: var(--uv-text-dark);
    background: var(--uv-bg-warm);
    transition: border-color var(--uv-duration-base), box-shadow var(--uv-duration-base), background var(--uv-duration-base);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
.uv-signup-form .form-control::placeholder { color: var(--uv-text-light); }
.uv-signup-form .form-control:focus {
    border-color: var(--uv-primary);
    background: var(--uv-surface);
    box-shadow: var(--uv-shadow-focus);
}
.uv-signup-form .form-control.is-invalid { border-color: var(--uv-danger); }
.uv-signup-form .form-text,
.uv-signup-form .helptext { font-size: .72rem; color: var(--uv-text-muted); margin-top: .2rem; line-height: var(--uv-lh-base); }
.uv-signup-form .invalid-feedback,
.uv-signup-form .errorlist { font-size: .74rem; color: var(--uv-danger); margin-top: .2rem; padding: 0; list-style: none; }

.uv-signup-submit {
    width: 100%;
    padding: .72rem;
    border: none;
    border-radius: var(--uv-radius-md);
    font-family: 'Jost', sans-serif;
    font-size: .88rem;
    font-weight: var(--uv-fw-bold);
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--uv-text-inverse);
    background: linear-gradient(135deg, var(--uv-primary) 0%, var(--uv-primary-dark) 100%);
    cursor: pointer;
    transition: all var(--uv-duration-slow) var(--uv-ease);
    position: relative;
    overflow: hidden;
    margin-top: .25rem;
}
.uv-signup-submit::before {
    content: "";
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    transition: left var(--uv-duration-slower) ease;
}
.uv-signup-submit:hover {
    background: linear-gradient(135deg, var(--uv-primary-dark) 0%, #4a3208 100%);
    box-shadow: var(--uv-shadow-primary-lg);
    transform: translateY(-1px);
}
.uv-signup-submit:hover::before { left: 100%; }
.uv-signup-submit:active { transform: translateY(0); }

.uv-signup-form-wrap > * { animation: fadeSlideUp var(--uv-anim-slow) var(--uv-ease-out) both; }
.uv-signup-form-wrap > *:nth-child(1) { animation-delay: .1s; }
.uv-signup-form-wrap > *:nth-child(2) { animation-delay: .15s; }
.uv-signup-form-wrap > *:nth-child(3) { animation-delay: .2s; }
.uv-signup-form-wrap > *:nth-child(4) { animation-delay: .28s; }
.uv-signup-form-wrap > *:nth-child(5) { animation-delay: .35s; }
.uv-signup-form-wrap > *:nth-child(6) { animation-delay: .42s; }

@media (max-width: 767.98px) {
    .uv-signup-card { grid-template-columns: 1fr; max-width: 480px; }
    .uv-signup-panel { padding: 1.75rem 1.5rem 1.5rem; }
    .uv-signup-panel-glow-top,
    .uv-signup-panel-glow-bot { display: none; }
    .uv-signup-form-wrap { padding: 1.75rem 1.5rem 2rem; }
}
@media (prefers-reduced-motion: reduce) {
    .uv-signup-card, .uv-signup-form-wrap > *, .uv-signup-gem { animation: none !important; }
}

/* ── ЭКСПО-ЮВЕЛИР Banner (banner_expojeweller.html) ── */
.ej-banner{position:relative;overflow:hidden;border-radius: var(--uv-radius-sm);background:#f0f6ff;border:1px solid rgba(var(--uv-primary-rgb), .15);padding:0;margin-bottom:1rem}
.ej-banner-cover{width:100%;height:auto;display:block;position:relative;z-index:1}
.ej-banner-shimmer{position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(var(--uv-primary-rgb), .03) 45%,rgba(var(--uv-primary-rgb), .07) 50%,rgba(var(--uv-primary-rgb), .03) 55%,transparent 70%);background-size:200% 100%;animation:ej-shimmer var(--uv-anim-loop-slow) ease-in-out infinite;z-index:2;pointer-events:none}
@keyframes ej-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.ej-banner-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.85rem 1rem;border-top:3px solid var(--uv-primary);text-align:center}
.ej-banner-brand{display:flex;flex-direction:column;align-items:center;gap:.15rem}
.ej-banner-logo{font-size: var(--uv-fs-h4);font-weight: var(--uv-fw-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--uv-primary-hover);white-space:nowrap}
.ej-banner-tagline{font-size: var(--uv-fs-small);font-weight: var(--uv-fw-normal);color:var(--uv-text-muted);letter-spacing:.02em}
.ej-banner-cta{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.5rem 1rem;font-size: var(--uv-fs-small);font-weight: var(--uv-fw-semibold);letter-spacing:.04em;color:var(--uv-text-inverse);background:var(--uv-primary);border-radius: var(--uv-radius-xs);text-decoration:none;transition:all var(--uv-duration-slow) ease;box-shadow:var(--uv-shadow-primary-lg);margin-top:.1rem}
.ej-banner-cta:hover{background:var(--uv-primary-dark);box-shadow:var(--uv-shadow-primary-lg);transform:translateY(-1px);color:var(--uv-text-inverse)}
.ej-banner-cta i{font-size: var(--uv-fs-small);transition:transform var(--uv-duration-slow) ease}
.ej-banner-cta:hover i{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce) {.ej-banner-shimmer{animation:none}}

/* ── Badge (replace Bootstrap .badge) ──
   Migration: badge bg-primary → uv-badge uv-badge-primary
   ========================================================================== */
.uv-badge {
    display: inline-flex;
    align-items: center;
    padding: .25em .6em;
    font-size: var(--uv-fs-xs);
    font-weight: var(--uv-fw-semibold);
    line-height: var(--uv-lh-none);
    border-radius: var(--uv-radius-sm);
    white-space: nowrap;
    vertical-align: baseline;
}
.uv-badge-primary    { background: var(--uv-primary); color: var(--uv-text-inverse); }
.uv-badge-secondary  { background: var(--uv-border); color: var(--uv-text-dark); }
.uv-badge-success    { background: var(--uv-success); color: var(--uv-text-inverse); }
.uv-badge-danger     { background: var(--uv-danger); color: var(--uv-text-inverse); }
.uv-badge-warning    { background: var(--uv-warning); color: var(--uv-text-dark); }
.uv-badge-light      { background: var(--uv-bg-warm); color: var(--uv-text-dark); border: 1px solid var(--uv-border); }

/* ── Pagination (replace Bootstrap .pagination / .page-item / .page-link) ──
   Migration: pagination → uv-pagination, page-item → uv-page-item, page-link → uv-page-link
   ========================================================================== */
.uv-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--uv-space-1);
    list-style: none;
    padding: 0;
    margin: 0;
}
.uv-page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding-inline: var(--uv-space-2);
    border: 1px solid var(--uv-border);
    border-radius: var(--uv-radius-sm);
    color: var(--uv-primary);
    text-decoration: none;
    font-size: var(--uv-fs-small);
    background: var(--uv-surface);
    transition: background var(--uv-duration-slow) var(--uv-ease), border-color var(--uv-duration-slow) var(--uv-ease);
}
.uv-page-link:hover {
    background: var(--uv-bg-warm);
    border-color: var(--uv-primary);
    color: var(--uv-primary);
}
.uv-page-item.active .uv-page-link {
    background: var(--uv-primary);
    border-color: var(--uv-primary);
    color: var(--uv-text-inverse);
}
.uv-page-item.disabled .uv-page-link {
    color: var(--uv-text-muted);
    pointer-events: none;
    background: var(--uv-bg-warm);
    border-color: var(--uv-border);
}
@media (max-width: 575.98px) {.ej-banner-logo{font-size:.95rem}}
