/* Мягкое стекло только для основного дашборда. Архив и другие мини-аппы
   используют dashboard.css, но не подключают этот слой. */
.dashboard-glass {
  --radius-sm: 9px;
  --radius-md: 15px;
  --radius-lg: 22px;
  background:
    radial-gradient(ellipse 68% 38% at 8% 0%, rgba(204, 120, 92, .23), transparent 75%),
    radial-gradient(ellipse 52% 38% at 94% 28%, rgba(106, 83, 160, .17), transparent 78%),
    radial-gradient(ellipse 65% 34% at 45% 100%, rgba(178, 96, 67, .12), transparent 80%),
    #171310;
  background-attachment: fixed;
}

.dashboard-glass .ud-page { gap: 20px; }
.dashboard-glass .glass-loading {
  position: fixed; inset: 0; z-index: 100;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; padding: 24px;
  background: radial-gradient(circle at 50% 44%, rgba(204, 120, 92, .16), transparent 46%), #171310;
  text-align: center;
}
.dashboard-glass .glass-loading[hidden] { display: none; }
.dashboard-glass .glass-loading-orbit {
  width: 78px !important; height: 78px !important; min-width: 78px; min-height: 78px;
  padding: 0 !important; display: grid; place-items: center; box-sizing: border-box;
  margin-bottom: 12px; border-radius: 25px;
  color: #f4b79a;
  background: linear-gradient(145deg, rgba(255,245,231,.16), rgba(255,245,231,.035));
  border: 1px solid rgba(255,245,231,.24);
  box-shadow: inset 0 1px rgba(255,255,255,.2), 0 18px 44px rgba(8,5,3,.35);
  animation: glass-loading-breathe 2s ease-in-out infinite;
}
.dashboard-glass .glass-loading-orbit img { display: block; width: 58px; height: 58px; max-width: 58px; max-height: 58px; object-fit: cover; border-radius: 16px; }
.dashboard-glass .glass-loading-title { font: 800 25px var(--font-heading); letter-spacing: -.04em; }
.dashboard-glass .glass-loading-caption { color: var(--color-neutral-700); font-size: 13px; }
.dashboard-glass .glass-loading-track {
  width: min(180px, 50vw); height: 3px; margin-top: 16px;
  overflow: hidden; border-radius: 99px; background: rgba(255,245,231,.12);
}
.dashboard-glass .glass-loading-track span {
  display: block; width: 40%; height: 100%; border-radius: inherit;
  background: linear-gradient(90deg, #b6654d, #f4b79a);
  box-shadow: 0 0 12px rgba(244,183,154,.5);
  animation: glass-loading-slide 1.35s ease-in-out infinite alternate;
}
.dashboard-glass .ud-page.glass-loaded > :not([hidden]) {
  animation: glass-page-enter .42s cubic-bezier(.16, 1, .3, 1) both;
}
.dashboard-glass .ud-page.glass-loaded > :not([hidden]):nth-child(2) { animation-delay: .06s; }
.dashboard-glass .ud-page.glass-loaded > :not([hidden]):nth-child(3) { animation-delay: .12s; }
.dashboard-glass .ud-page.glass-loaded > :not([hidden]):nth-child(4) { animation-delay: .18s; }
.dashboard-glass .ud-page.glass-loaded > :not([hidden]):nth-child(n+5) { animation-delay: .22s; }
@keyframes glass-loading-breathe { 50% { transform: translateY(-5px) scale(1.04); box-shadow: inset 0 1px rgba(255,255,255,.25), 0 23px 54px rgba(204,120,92,.25); } }
@keyframes glass-loading-slide { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
@keyframes glass-page-enter { from { opacity: 0; transform: translateY(15px) scale(.985); } to { opacity: 1; transform: none; } }
.dashboard-glass .od-header {
  padding: 15px 18px;
  margin-bottom: 0;
  border: 1px solid rgba(255, 237, 220, .17);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 245, 231, .13), rgba(255, 245, 231, .035) 58%), rgba(36, 29, 22, .57);
  box-shadow: 0 14px 38px rgba(8, 5, 3, .2), inset 0 1px rgba(255, 255, 255, .14);
  -webkit-backdrop-filter: blur(22px) saturate(145%);
  backdrop-filter: blur(22px) saturate(145%);
}
.dashboard-glass .od-brand-avatar { width: 30px; height: 30px; object-fit: cover; border-radius: 9px; filter: drop-shadow(0 0 11px rgba(204, 120, 92, .3)); }
.dashboard-glass .od-brand-name { letter-spacing: -.035em; }

.dashboard-glass .card,
.dashboard-glass .service-item,
.dashboard-glass .scroll-y {
  border-color: rgba(255, 237, 220, .15);
  background: linear-gradient(150deg, rgba(255, 245, 231, .105), rgba(255, 245, 231, .025) 58%), rgba(36, 29, 22, .68);
  box-shadow: inset 0 1px rgba(255, 255, 255, .1), 0 12px 32px rgba(8, 5, 3, .16);
}
.dashboard-glass .card {
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  backdrop-filter: blur(18px) saturate(130%);
}
.dashboard-glass .card:hover { border-color: rgba(232, 176, 148, .31); box-shadow: inset 0 1px rgba(255,255,255,.14), 0 18px 42px rgba(8,5,3,.23); }
.dashboard-glass .pill-status,
.dashboard-glass .tag,
.dashboard-glass .input,
.dashboard-glass .seg,
.dashboard-glass .model-btn,
.dashboard-glass .ud-model-card,
.dashboard-glass .ch-row {
  border-radius: 12px;
}
.dashboard-glass .pill-status { background: rgba(255, 245, 231, .07); border-color: rgba(255, 245, 231, .17); }
.dashboard-glass .ud-avatar,
.dashboard-glass .ava { border-radius: 12px; }
.dashboard-glass .card-toggle-chevron { box-shadow: inset 0 1px rgba(255,255,255,.12); }

.dashboard-glass .btn {
  min-height: 36px;
  border-radius: 12px;
  border-color: rgba(255, 239, 223, .18);
  box-shadow: inset 0 1px rgba(255, 255, 255, .13), 0 4px 12px rgba(8, 5, 3, .12);
  transition: transform .2s cubic-bezier(.16, 1, .3, 1), background .2s ease,
    border-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.dashboard-glass .btn-primary {
  border-color: rgba(255, 221, 199, .35);
  background: linear-gradient(135deg, #e5a082, #bd654d);
  color: #241711;
  box-shadow: inset 0 1px rgba(255,255,255,.32), 0 5px 18px rgba(188, 89, 61, .22);
}
.dashboard-glass .btn-primary:hover { background: linear-gradient(135deg, #efb397, #d47b5f); color: #241711; }
.dashboard-glass .btn-secondary { background: linear-gradient(155deg, rgba(255,245,231,.12), rgba(255,245,231,.045)); }
.dashboard-glass .btn-secondary:hover { background: rgba(255, 245, 231, .17); border-color: rgba(255, 239, 223, .34); }
.dashboard-glass .btn-ghost { border-color: transparent; box-shadow: none; }
.dashboard-glass .btn:not(:disabled):hover { transform: translateY(-2px); box-shadow: inset 0 1px rgba(255,255,255,.2), 0 9px 22px rgba(8,5,3,.22); }
.dashboard-glass .btn:not(:disabled):active { transform: translateY(0) scale(.97); }
.dashboard-glass .btn:focus-visible { outline: 2px solid #f1b396; outline-offset: 3px; }

.dashboard-glass .model-btn,
.dashboard-glass .ud-model-card,
.dashboard-glass .ch-row {
  transition: transform .2s cubic-bezier(.16, 1, .3, 1), border-color .2s ease,
    background .2s ease, box-shadow .2s ease;
}
.dashboard-glass .model-btn:not(.is-off):hover,
.dashboard-glass .ud-model-card:hover,
.dashboard-glass .ch-row:not(.disabled):hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(8,5,3,.18); }
.dashboard-glass .card-collapsible-body:not(.is-collapsed) { animation: glass-reveal .32s cubic-bezier(.16, 1, .3, 1) both; }
.dashboard-glass .toast { animation: glass-toast .3s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes glass-reveal { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: none; } }
@keyframes glass-toast { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }

@media (max-width: 640px) {
  .dashboard-glass { background-attachment: scroll; }
  .dashboard-glass .od-header { padding: 14px; }
  .dashboard-glass .btn:not(:disabled):hover,
  .dashboard-glass .model-btn:not(.is-off):hover,
  .dashboard-glass .ud-model-card:hover,
  .dashboard-glass .ch-row:not(.disabled):hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-glass .glass-loading-track span { width: 100%; transform: none; }
  .dashboard-glass *, .dashboard-glass *::before, .dashboard-glass *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
