/* ===== мини-галерея ===== */
.search-result{position:relative; margin: 5% 0 5% 0;}
.grid-wrap{position:relative}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.itm{position:relative;border:1px solid var(--muted);border-radius:14px;overflow:hidden;background:#0b0f13;cursor:zoom-in}
.itm img{width:100%;height:220px;object-fit:cover;display:block;background:#0a0e12}

/* Изолируем разметку галереи от лишней рефлоу-турбулентности при стриме */
.search-result, .grid-wrap { contain: layout paint; }

/* подпись на миниатюре (мобилка) — опциональный бокс */
.itm .cap{
  display:none;position:absolute;left:8px;right:8px;bottom:8px;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);
  color:#eaf1f8;padding:6px 8px;border-radius:8px;font-size:11px;line-height:1.25;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical
}

/* ===== подпись миниатюры (оверлей снизу) ===== */
.itm .cap-mini{
  position:absolute;left:0;right:0;bottom:0;
  padding:6px 8px;color:#fff;font-size:12px;line-height:1.25;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 100%);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;max-height:3.2em;user-select:none;pointer-events:none;
}

/* skeleton — мгновенно */
.skeleton{
  position:absolute;inset:0;
  background:linear-gradient(90deg,#0e1318 25%,#131922 37%,#0e1318 63%);
  background-size:400% 100%;animation:shimmer 1.1s infinite linear
}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* ===== счётчик (правая нижняя) ===== */
.badge-overlay{pointer-events:none;position:absolute;right:8px;bottom:25px}
.badge-chip{
  display:flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;color:#fff;
  background:rgba(0,0,0,.55);backdrop-filter:blur(8px) brightness(.85);
  border:1px solid rgba(255,255,255,.18);box-shadow:0 2px 10px rgba(0,0,0,.25)
}
.badge-chip .num{font-size:12px;font-weight:600}
.badge-chip svg{width:18px;height:18px;display:block;opacity:.95}

/* ===== лайтбокс ===== */
.lb{position:fixed;inset:0;display:none;background:rgba(0,0,0,.92);z-index:9999}
.lb.show{display:block}
.lb-main{position:absolute;inset:0 180px 0 0;display:flex;align-items:center;justify-content:center}
.lb-img{max-width:88vw;max-height:88vh;object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.6);border-radius:10px}

/* правая колонка миниатюр (desktop) */
.lb-side{
  position:absolute;right:0;top:0;bottom:0;width:180px;background:rgba(255,255,255,.02);
  border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px;
  padding:10px;overflow:auto;z-index:3
}
.lb-thumb{border-radius:10px;border:1px solid rgba(255,255,255,.15);overflow:hidden;cursor:pointer}
.lb-thumb img{width:100%;height:100px;object-fit:cover;display:block}
.lb-thumb.active{outline:2px solid var(--blue2)}

/* верхний индекс */
.lb-top{position:absolute;left:0;right:180px;top:8px;display:flex;justify-content:center;color:#cfd9e3;pointer-events:none}
.lb-idx{background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);padding:6px 10px;border-radius:999px;font-weight:600}

/* подпись — компактнее и выше */
.lb-bot{position:absolute;left:0;right:180px;bottom:12px;display:flex;justify-content:center;padding:0 14px}
.lb-cap{
  max-width:900px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);
  padding:8px 12px;border-radius:10px;color:#e8eef6;text-align:center;font-size:13px;line-height:1.35
}

/* стрелки поверх миниатюр */
.lb-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:5}
.lb-btn{
  pointer-events:auto;cursor:pointer;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;margin:0 12px;user-select:none
}
.lb-btn:hover{background:rgba(255,255,255,.14)}
.lb-x{position:absolute;right:196px;top:10px}

/* ===== мобилка ===== */
@media (max-width: 820px){
  .grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .itm .cap{display:block} /* показываем подпись-бокс только на мобилке */
  .itm .cap-mini{font-size:11px;padding:6px 7px;max-height:2.9em}
  .lb-main{inset:56px 0 120px 0}

  /* лента миниатюр снизу — прямоугольные превью */
  .lb-side{
    position:absolute;left:0;right:0;bottom:0;top:auto;height:110px;width:auto;
    display:flex;flex-direction:row;gap:8px;padding:10px;overflow-x:auto;overflow-y:hidden;
    border-left:none;border-top:1px solid rgba(255,255,255,.08)
  }
  .lb-thumb{min-width:140px;height:90px;border-radius:10px}
  .lb-thumb img{width:140px;height:90px}
  .lb-top{right:0}
  .lb-bot{left:0;right:0;bottom:120px} /* подпись поднял над лентой */
  .lb-x{right:10px}
}


/* ===== Agent007 Pinterest / masonry ===== */
.search-result .grid{
  display: grid !important;
  column-count: 2 !important; /* mobile + tablet */
  column-gap: 8px !important;
  margin-top: 8px !important;
}

.search-result .itm{
  position: relative;
  display: flex !important;
  width: 100% !important;
  margin: 0 0 8px !important;
  overflow: hidden;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(12px);
  cursor: pointer;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  vertical-align: top;
}

/* фото */
.search-result .itm:not(.itm-video):not(.itm-short){
  aspect-ratio: auto !important;
  min-height: 120px;
}

.search-result .itm:not(.itm-video):not(.itm-short) img{
  width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: cover !important;
}

/* обычные видео */
.search-result .itm.itm-video{
  aspect-ratio: 16 / 9 !important;
}

.search-result .itm.itm-video img{
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}

/* shorts */
.search-result .itm.itm-short{
  aspect-ratio: 9 / 16 !important;
}

.search-result .itm.itm-short img{
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}

.search-result .itm:hover img{
  transform: scale(1.03);
}

/* подпись */
.search-result .cap-mini{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 4px 8px 6px;
  font-size: 11px;
  line-height: 1.3;
  color: #fff;
  background: linear-gradient(to top, rgba(0,0,0,0.82), rgba(0,0,0,0));
  max-height: 3.2em;
  overflow: hidden;
}

/* play */
.search-result .itm-video .play-badge,
.search-result .itm-short .play-badge{
  position: absolute;
  inset: 0;
  margin: auto;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #fff;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(10px);
  pointer-events: none;
}

/* desktop */
@media (min-width: 1101px){
  .search-result .grid{
    column-count: 3 !important;
  }
}

 

/* скелетон */
.search-result .skeleton {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.06),
    rgba(255,255,255,0.02),
    rgba(255,255,255,0.06)
  );
  background-size: 200% 100%;
  animation: a7-skel 1.4s linear infinite;
}

@keyframes a7-skel {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* бейдж количества */
.search-result .badge-overlay {
  position: relative;
}
.search-result .badge-chip {
  position: absolute;
  right: 0;
  top: -4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 11px;
  color: #e3f2fd;
  background: rgba(0,0,0,0.65);
}

/* адаптив: 2 в ряд на мобиле */
@media (max-width: 768px) {
  .search-result .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===== Agent007 Video Lightbox ===== */
.a7v-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.82);
  backdrop-filter: blur(6px);
}

.a7v-overlay.a7v-open {
  display: flex;
}

.a7v-box {
  position: relative;
  width: min(900px, 100% - 32px);
  max-height: calc(100vh - 40px);
  background: #05070d;
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,0.7);
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.a7v-frame {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  border-radius: 12px;
  overflow: hidden;
  background: #11161f;
}

.a7v-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.a7v-title {
  margin-top: 4px;
  font-size: 13px;
  color: #e0e4f0;
  max-height: 2.8em;
  overflow: hidden;
}

.a7v-close {
  position: absolute;
  top: 6px;
  right: 10px;
  border: none;
  background: none;
  color: #f5f5f5;
  font-size: 24px;
  cursor: pointer;
  line-height: 1;
}

@media (max-width: 768px){
  .a7v-box {
    padding: 10px;
  }
}




.vitem{position:relative;border:1px solid var(--muted);border-radius:18px;overflow:hidden;background:#0b0f13;cursor:zoom-in}
.vitem img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#0a0e12}
.vitem .skeleton{position:absolute;inset:0;background:linear-gradient(90deg,#0e1318 25%,#131922 37%,#0e1318 63%);background-size:400% 100%;animation:shimmer 1.2s infinite}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* play-оверлей */
.vitem .play{
  position:absolute;inset:auto auto 8px 8px;display:flex;align-items:center;gap:8px;
  background:rgba(0,0,0,.55);backdrop-filter:blur(8px) brightness(.85);
  border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 10px;color:#fff;font-weight:600;font-size:12px;
}
.vitem .play svg{width:16px;height:16px;display:block}

/* подпись миниатюры (2 строки) */
.vitem .cap-mini{
  position:absolute;left:0;right:0;bottom:0;padding:6px 8px;color:#fff;font-size:12px;line-height:1.25;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.65) 100%);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:3.2em;user-select:none;pointer-events:none;
}
@media (max-width:820px){ .vitem .cap-mini{font-size:11px;padding:6px 7px;max-height:2.9em} }

/* счётчик (правый нижний) */
.vbadge{pointer-events:none;position:absolute;right:8px;bottom:8px}
.vbadge .chip{
  display:flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;color:#fff;
  background:rgba(0,0,0,.55);backdrop-filter:blur(8px) brightness(.85);
  border:1px solid rgba(255,255,255,.18);box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.vbadge svg{width:18px;height:18px;opacity:.95}

/* ===== видеомодалка ===== */
.vb{position:fixed;inset:0;display:none;background:rgba(0,0,0,.92);z-index:9999}
.vb.show{display:block}
.vb-main{position:absolute;inset:0 0 120px 0;display:flex;align-items:center;justify-content:center;padding:20px}
.vb-frame,.vb-video{width:min(1200px,92vw);height:min(68vh,720px);background:#000;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.1)}
.vb-bot{position:absolute;left:0;right:0;bottom:0;padding:14px;display:flex;justify-content:center}
.vb-cap{max-width:900px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.15);padding:10px 14px;border-radius:12px;color:#dfe7f0;text-align:center}
.vb-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.vb-btn{pointer-events:auto;cursor:pointer;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;margin:0 12px;user-select:none}
.vb-btn:hover{background:rgba(255,255,255,.12)}
.vb-x{position:absolute;right:14px;top:14px}
@media (max-width:820px){
  .vb-main{inset:56px 0 120px 0;padding:10px}
  .vb-frame,.vb-video{width:96vw;height:52vh}
}

/* ===== картинка в чате нейросеть vision ===== */
/* Превью загруженного фото в чате */


.wg28-chat-photo-preview {
    max-width: 100%;
    display: inline-block;
    margin-top: 8px;
}

.wg28-chat-photo-preview img {
    display: block;
    max-width: 30%;
    height: auto;
    border-radius: 10px;
    object-fit: contain;
}

.wg28-chat-photo-note {
    font-size: 12px;
    line-height: 1.4;
    opacity: 0.8;
    margin-bottom: 4px;
}

/* Голосовой поиск дизайн */
.input-actions-bar {
    position: absolute;
    right: 1%;
    display: flex;
    gap: 5px;
    z-index: 10;
}


 

        
        /* --- 2. Попап интерфейс (Jarvis Core) --- */
        .voice-overlay {
            position: fixed;
            top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(10, 10, 10, 0.98); /* Почти черный фон */
            z-index: 9999;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            opacity: 0; visibility: hidden;
            transition: all 0.4s ease;
            /* HUD сетка на фоне попапа */
            background-image: 
                linear-gradient(var(--hud-grid) 1px, transparent 1px),
                linear-gradient(90deg, var(--hud-grid) 1px, transparent 1px);
            background-size: 40px 40px;
            background-position: center center;
        }

        .voice-overlay.active { opacity: 1; visibility: visible; }

        .voice-container {
            position: relative;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 30px;
        }

        .close-btn {
            position: absolute;
            top: 40px; right: 30px;
            background: rgba(255,255,255,0.1);
            border: none;
            color: var(--text);
            width: 50px; height: 50px;
            border-radius: 50%;
            font-size: 24px;
            cursor: pointer;
            transition: 0.3s;
            backdrop-filter: blur(5px);
        }
        .close-btn:hover { background: rgba(255, 50, 50, 0.3); transform: rotate(90deg); }

        /* --- Центральный Реактор (Визуализатор) --- */
        /* Мы будем менять CSS-переменную --audio-level через JS от 0 до 1 */
        .jarvis-reactor {
            position: relative;
            width: 180px; height: 180px;
            margin-bottom: 50px;
            display: flex; justify-content: center; align-items: center;
            --audio-level: 0; /* Значение по умолчанию */
        }

        /* Иконка микрофона в центре */
        .reactor-mic {
            font-size: 48px;
            color: var(--primary-bright);
            z-index: 5;
            filter: drop-shadow(0 0 10px var(--primary));
            /* Иконка немного вибрирует от голоса */
            transform: scale(calc(1 + var(--audio-level) * 0.2));
            transition: transform 0.05s ease-out;
        }

        /* Кольца реактора */
        .ring {
            position: absolute;
            border-radius: 50%;
            border: 2px solid #00b34b;
            transition: all 0.05s ease-out; /* Очень быстрый отклик на звук */
        }

        /* Внутреннее кольцо - основная энергия */
        .ring.core {
            width: 100%; height: 100%;
            border: 4px solid #00b34b;
            box-shadow: 0 0 30px var(--primary-glow), inset 0 0 30px #00b34b;
            opacity: 0.8;
            /* Реагирует на звук изменением размера и яркости */
            transform: scale(calc(0.9 + var(--audio-level) * 0.4));
            filter: brightness(calc(1 + var(--audio-level)));
        }

        /* Внешние кольца - "взрывная волна" */
        .ring.wave-1 {
            width: 120%; height: 120%;
            border-width: 1px;
            opacity: 0.4;
            transform: scale(calc(1 + var(--audio-level) * 0.6)) rotate(45deg);
            border-color: #00b34b;
        }
        
        .ring.wave-2 {
            width: 140%; height: 140%;
            border: 1px dashed #00b34b;
            opacity: 0.2;
            transform: scale(calc(1 + var(--audio-level) * 0.8)) rotate(-30deg);
            animation: slow-spin 20s linear infinite;
        }

         @keyframes slow-spin { to { transform: scale(calc(1 + var(--audio-level) * 0.8)) rotate(330deg); } }


        /* Статус текст */
        .status-panel {
            text-align: center;
            margin-bottom: 40px;
        }
        .status-title {
            font-size: 24px; font-weight: 700;
            color: #00b34b;
            text-transform: uppercase;
            letter-spacing: 3px;
            margin-bottom: 10px;
            text-shadow: 0 0 10px var(--primary-glow);
        }
        .status-subtitle {
            font-size: 16px; color: #888; font-weight: 600;
        }
        /* Мигающая точка */
        .recording-dot {
            display: inline-block; width: 10px; height: 10px;
            background: red; border-radius: 50%;
            margin-right: 8px;
            box-shadow: 0 0 10px red;
            animation: blink-red 1s infinite;
        }
        @keyframes blink-red { 50% { opacity: 0.3; } }


        /* --- Главная Кнопка Действия --- */
        .action-btn-container {
            position: relative;
            width: 100%; max-width: 320px;
        }
        
        .cyber-action-btn {
            width: 100%;
            padding: 24px;
                background: #10a37f;
            border: none;
            color: #000; /* Черный текст на ярком зеленом */
            font-family: 'Rajdhani', sans-serif;
            font-size: 20px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px;
            clip-path: polygon(10% 0, 100% 0, 100% 70%, 90% 100%, 0 100%, 0 30%); /* Футуристичная форма */
            cursor: pointer;
            position: relative;
            transition: all 0.3s;
            box-shadow: 0 10px 30px rgba(0, 255, 106, 0.4);
        }

        /* Глитч-эффект при наведении */
        .cyber-action-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 15px 40px rgba(0, 255, 106, 0.6);
            text-shadow: -1px 0 blue, 1px 0 red;
        }
        .cyber-action-btn:active { transform: scale(0.98); }
        .cyber-action-btn:disabled {
            background: #333; color: #666;
            box-shadow: none; cursor: not-allowed;
            clip-path: none; border-radius: 12px;
        }



 


 