/* T11: Liquid Glass. ЖЁСТКИЙ БЮДЖЕТ: не больше 3 стеклянных поверхностей
   одновременно (каждый backdrop-filter = копия буфера экрана GPU).
   Стекло получают ровно три слоя: шапка, композер, активная карточка/панель.
   Рефракция: SVG feDisplacementMap поверх blur. */
.glass {
  background: rgba(16, 28, 22, 0.42);
  backdrop-filter: blur(14px) saturate(1.15) url(#glass-refract);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  border: 1px solid rgba(160, 255, 190, 0.10);
  border-radius: 14px;
}
/* всё остальное имитирует стекло БЕЗ backdrop-filter — бюджет не тратится */
.glass-faux {
  background: linear-gradient(160deg, rgba(20, 34, 27, 0.72), rgba(10, 18, 14, 0.80));
  border: 1px solid rgba(160, 255, 190, 0.07);
  border-radius: 14px;
}
.codeblock { position: relative; margin: 6px 0; }
.codeblock pre { background: rgba(0,0,0,.35); padding: 10px 12px; border-radius: 10px; overflow-x: auto; }
.copybtn { position: absolute; top: 6px; right: 6px; font-size: 11px; opacity: .5; cursor: pointer;
           background: none; border: 1px solid rgba(160,255,190,.2); border-radius: 6px; color: inherit; }
.copybtn:hover { opacity: 1; }
.aimeta .r { color: #8f8; }
.dash .spark { width: 240px; height: 40px; color: #7fdd9a; }
.dash .key { opacity: .5; font-size: 11px; }

/* консьерж */
#gear-btn { position: fixed; top: 10px; right: 12px; z-index: 30; font-size: 20px;
  background: none; border: none; color: #9fd8ae; cursor: pointer; opacity: .7; }
#gear-btn:hover { opacity: 1; }
#cg-panel { position: fixed; inset: auto 12px 12px auto; width: min(360px, 92vw);
  height: min(480px, 70vh); z-index: 40; display: flex; flex-direction: column;
  padding: 12px; }
#cg-panel.hidden { display: none; }
#cg-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
#cg-msgs { flex: 1; overflow-y: auto; font-size: 13px; display: flex; flex-direction: column; gap: 6px; }
.cg-line { padding: 6px 9px; border-radius: 10px; max-width: 92%; white-space: pre-wrap; }
.cg-line.me { align-self: flex-end; background: rgba(90, 190, 120, .18); }
.cg-line.ai { align-self: flex-start; background: rgba(255, 255, 255, .06); }
#cg-row { display: flex; gap: 6px; margin-top: 8px; }
#cg-input { flex: 1; background: rgba(0,0,0,.3); border: 1px solid rgba(160,255,190,.15);
  border-radius: 9px; color: inherit; padding: 7px 9px; font: inherit; }
#cg-send, #cg-close { background: none; border: 1px solid rgba(160,255,190,.25);
  border-radius: 9px; color: inherit; cursor: pointer; padding: 4px 10px; }
/* ножницы: свайп влево по ленте */
#dm-msgs { transition: transform .12s ease; touch-action: pan-y; }
#dm-msgs.cutting { user-select: none; -webkit-user-select: none; cursor: grabbing; }
#dm-msgs.cut-armed { box-shadow: inset -4px 0 0 rgba(120,255,170,.55); }
.cutline { text-align: center; opacity: .45; font-size: 11px; margin: 10px 0; letter-spacing: 1px; }
/* фокус-чип */
#topics .chip.focused { outline: 1px solid rgba(160,255,190,.7); box-shadow: 0 0 10px rgba(120,255,170,.25); }

#gear-btn.hidden { display: none; }
