/* ============================================================
   Cuctus admin — редизайн админ-панели (admin-theme.css v1)
   Подключается ПОСЛЕ inline-стилей admin.html, поэтому дотянет
   все одинаковые классы (.sidebar, .card, .btn, .badge, table,
   .modal, .toast, .stat) до нового уровня: стекло, неон, 3D.
   Логика и разметка не тронуты — только внешний вид.
   ============================================================ */

/* ---------- фон: глубокий космос с мятной туманностью ---------- */
body {
  background:
    radial-gradient(1100px 700px at 85% -10%, rgba(16, 185, 129, .10), transparent 60%),
    radial-gradient(900px 620px at -10% 105%, rgba(5, 150, 105, .08), transparent 55%),
    radial-gradient(1400px 900px at 50% 45%, rgba(16, 185, 129, .03), transparent 70%),
    #07090b;
}

/* окно «нет доступа» — стеклянная карточка по центру */
#notAuth {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 40px;
}
#notAuth h2 {
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.02em;
  background: linear-gradient(100deg, #fff 30%, var(--mint-3) 55%, #fff 80%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: ccShimmer 7s linear infinite;
}

/* ---------- сайдбар: тёмное стекло с неоновой кромкой ---------- */
.sidebar {
  background: linear-gradient(180deg, rgba(10, 13, 16, .92), rgba(8, 10, 13, .88));
  backdrop-filter: blur(28px) saturate(1.25);
  -webkit-backdrop-filter: blur(28px) saturate(1.25);
  border-right: 1px solid transparent;
  overflow: hidden;
}
.sidebar::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(52, 211, 153, .5) 30%, rgba(16, 185, 129, .25) 70%, transparent);
  pointer-events: none;
}

.brand { position: relative; }
.brand img {
  filter: drop-shadow(0 0 12px rgba(52, 211, 153, .55));
  animation: ccBrandPulse 4.5s ease-in-out infinite;
}
@keyframes ccBrandPulse {
  0%, 100% { filter: drop-shadow(0 0 8px rgba(52, 211, 153, .35)); }
  50% { filter: drop-shadow(0 0 18px rgba(52, 211, 153, .75)); }
}
.brand .name {
  background: linear-gradient(100deg, #fff 40%, var(--mint-3));
  -webkit-background-clip: text;
  background-clip: text;
}
.brand .name span {
  background: linear-gradient(100deg, var(--mint-3), var(--mint-4, #6ee7b7));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* подписи секций навигации */
.nav .label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(110, 231, 183, .55);
}
.nav .label::before {
  content: '';
  width: 10px;
  height: 1px;
  background: linear-gradient(90deg, rgba(52, 211, 153, .7), transparent);
}

/* пункты навигации: слайд, свечение, 3D-нажатие */
.nav-item {
  transform-origin: left center;
}
.nav-item:hover {
  transform: translateX(4px);
  background: linear-gradient(90deg, rgba(16, 185, 129, .10), rgba(255, 255, 255, .03));
}
.nav-item:active { transform: translateX(4px) scale(.985); }
.nav-item.active {
  color: #d1fae5;
  background: linear-gradient(90deg, rgba(16, 185, 129, .22), rgba(16, 185, 129, .06) 70%, transparent);
  border-color: rgba(52, 211, 153, .38);
  box-shadow:
    0 0 24px rgba(16, 185, 129, .16),
    inset 0 1px 0 rgba(255, 255, 255, .06);
}
.nav-item.active::before {
  width: 3px;
  background: linear-gradient(180deg, #6ee7b7, #10b981);
  box-shadow: 0 0 12px rgba(52, 211, 153, .8);
}
.nav-item svg { color: currentColor; }

.foot a, .foot button { transition: all .25s ease; }
.foot a:hover, .foot button:hover {
  background: rgba(16, 185, 129, .10);
  transform: translateX(2px);
}

/* ---------- заголовок страницы: живой градиент ---------- */
.page-head h1 {
  background: linear-gradient(100deg, #fff 20%, var(--mint-3) 45%, #a7f3d0 55%, #fff 80%);
  background-size: 230% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: ccShimmer 9s linear infinite;
}
@keyframes ccShimmer { to { background-position: -230% 0; } }

.admin-chip {
  background: linear-gradient(135deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .015));
  border-color: rgba(52, 211, 153, .22);
  box-shadow: 0 0 20px rgba(16, 185, 129, .08), inset 0 1px 0 rgba(255, 255, 255, .05);
}
.admin-chip:hover { border-color: rgba(52, 211, 153, .45); }
.admin-chip .av {
  box-shadow: 0 0 16px rgba(16, 185, 129, .45);
}

/* ---------- карточки: стекло + градиентная кромка + блик ---------- */
.card {
  position: relative;
  background: linear-gradient(150deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015) 55%);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 20px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 10px 34px -18px rgba(0, 0, 0, .65);
  transition: transform .35s cubic-bezier(.2, .7, .3, 1), border-color .3s ease, box-shadow .3s ease;
}
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(52, 211, 153, .45), transparent);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.card:hover {
  transform: translateY(-3px);
  border-color: rgba(52, 211, 153, .25);
  box-shadow:
    0 24px 50px -22px rgba(0, 0, 0, .8),
    0 0 34px -8px rgba(16, 185, 129, .18);
}
.card:hover::before { opacity: 1; }

.card h3 { color: #d4d4d8; }

/* ---------- статистика: парящие плитки ---------- */
.stat {
  border-radius: 18px;
  transform-style: preserve-3d;
}
.stat:hover {
  transform: translateY(-5px) scale(1.012);
  box-shadow: 0 22px 44px -20px rgba(0, 0, 0, .75), 0 0 30px -6px rgba(16, 185, 129, .22);
}
.stat .ico {
  background: linear-gradient(135deg, rgba(16, 185, 129, .18), rgba(5, 150, 105, .28));
  border: 1px solid rgba(52, 211, 153, .3);
  box-shadow: 0 0 18px rgba(16, 185, 129, .2);
}

/* ---------- таблицы ---------- */
th {
  color: #9ca3af;
  background: linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .01));
  border-bottom: 1px solid rgba(52, 211, 153, .18);
}
td { transition: background .2s ease; }
tr:hover td { background: rgba(16, 185, 129, .045); }

/* ---------- кнопки: 3D-блоки с продавливанием ---------- */
.btn { border-radius: 11px; }
.btn-green {
  background: linear-gradient(160deg, #34d399, #10b981 55%, #059669);
  color: #03251a;
  box-shadow:
    0 4px 0 0 #047857,
    0 12px 26px -10px rgba(16, 185, 129, .55),
    inset 0 1px 0 rgba(255, 255, 255, .35);
}
.btn-green:hover {
  box-shadow:
    0 6px 0 0 #047857,
    0 18px 34px -10px rgba(16, 185, 129, .65),
    inset 0 1px 0 rgba(255, 255, 255, .35);
}
.btn-green:active {
  transform: translateY(3px);
  box-shadow:
    0 1px 0 0 #047857,
    0 8px 16px -8px rgba(16, 185, 129, .5),
    inset 0 1px 0 rgba(255, 255, 255, .3);
}
.btn-outline {
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.btn-outline:hover {
  border-color: rgba(52, 211, 153, .55);
  color: #d1fae5;
  background: rgba(16, 185, 129, .10);
}
.btn-red:hover { box-shadow: 0 10px 24px -10px rgba(244, 63, 94, .55); transform: translateY(-1px); }
.btn-amber:hover { box-shadow: 0 10px 24px -10px rgba(245, 158, 11, .55); transform: translateY(-1px); }
.btn-blue:hover { box-shadow: 0 10px 24px -10px rgba(59, 130, 246, .55); transform: translateY(-1px); }
.btn-red, .btn-amber, .btn-blue { transition: all .25s ease; }

/* ---------- бейджи: стеклянные пилюли ---------- */
.badge {
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
  font-weight: 700;
}
.badge-green { border-color: rgba(52, 211, 153, .35); box-shadow: 0 0 14px rgba(16, 185, 129, .15), inset 0 1px 0 rgba(255, 255, 255, .08); }
.badge-red { border-color: rgba(251, 113, 133, .35); box-shadow: 0 0 14px rgba(244, 63, 94, .12), inset 0 1px 0 rgba(255, 255, 255, .06); }
.badge-amber { border-color: rgba(251, 191, 36, .35); box-shadow: 0 0 14px rgba(245, 158, 11, .12), inset 0 1px 0 rgba(255, 255, 255, .06); }
.badge-blue { border-color: rgba(96, 165, 250, .35); box-shadow: 0 0 14px rgba(59, 130, 246, .12), inset 0 1px 0 rgba(255, 255, 255, .06); }

/* ---------- поля ввода: стекло и мятный фокус ---------- */
.content input:not([type="file"]),
.content select,
.content textarea,
.modal input:not([type="file"]),
.modal select,
.modal textarea,
#notAuth input {
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 10px;
  color: #f4f4f5;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 13.5px;
  outline: none;
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.content input:not([type="file"]):focus,
.content select:focus,
.content textarea:focus,
.modal input:not([type="file"]):focus,
.modal select:focus,
.modal textarea:focus {
  border-color: rgba(52, 211, 153, .55);
  background: rgba(16, 185, 129, .06);
  box-shadow: 0 0 0 3px rgba(16, 185, 129, .12), 0 0 18px rgba(16, 185, 129, .12);
}
.content select option,
.modal select option { background: #0d1013; color: #f4f4f5; }
.content input::placeholder,
.modal input::placeholder,
.content textarea::placeholder,
.modal textarea::placeholder { color: #5b6360; }

/* ---------- модалки: 3D-выезд ---------- */
.modal-overlay { z-index: 90; }
.modal-overlay.open { animation: ccFade .25s ease both; }
.modal {
  background: linear-gradient(160deg, rgba(20, 24, 28, .96), rgba(12, 15, 18, .98));
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 20px;
  box-shadow:
    0 40px 90px -30px rgba(0, 0, 0, .9),
    0 0 50px -12px rgba(16, 185, 129, .16);
  overflow: auto;
}
.modal::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(52, 211, 153, .6), transparent);
}
.modal-overlay.open .modal {
  animation: ccModalIn .42s cubic-bezier(.2, .8, .3, 1.15) both;
  transform-origin: top center;
}
@keyframes ccModalIn {
  from { opacity: 0; transform: perspective(900px) rotateX(7deg) translateY(16px) scale(.965); }
  to { opacity: 1; transform: perspective(900px) rotateX(0) translateY(0) scale(1); }
}
@keyframes ccFade { from { backdrop-filter: blur(0); } to { backdrop-filter: blur(6px); } }

/* ---------- тосты ---------- */
.toast {
  background: linear-gradient(150deg, rgba(18, 24, 22, .97), rgba(11, 15, 13, .97));
  border: 1px solid rgba(52, 211, 153, .35);
  box-shadow:
    0 24px 50px -20px rgba(0, 0, 0, .85),
    0 0 30px -6px rgba(16, 185, 129, .3);
  border-radius: 14px;
}
.toast.error {
  border-color: rgba(251, 113, 133, .45);
  box-shadow:
    0 24px 50px -20px rgba(0, 0, 0, .85),
    0 0 30px -6px rgba(244, 63, 94, .3);
}

/* ---------- консоль: терминальное стекло ---------- */
.log-view {
  background: linear-gradient(180deg, rgba(4, 6, 9, .92), rgba(6, 9, 12, .96));
  border: 1px solid rgba(52, 211, 153, .14);
  box-shadow: inset 0 0 40px rgba(16, 185, 129, .05);
}

/* ---------- пустые состояния и списки ---------- */
.mini-item { transition: background .2s ease, transform .2s ease; border-radius: 10px; }
.mini-item:hover { background: rgba(16, 185, 129, .05); }
.sub-row:hover { background: rgba(16, 185, 129, .04); }

/* ---------- панель появляется с лёгким 3D ---------- */
.panel.active { animation: ccPanelIn .45s cubic-bezier(.2, .7, .3, 1) both; }
@keyframes ccPanelIn {
  from { opacity: 0; transform: perspective(1200px) rotateX(2.2deg) translateY(14px); }
  to { opacity: 1; transform: none; }
}

/* ---------- мобильная версия: сайдбар поверх контента ---------- */
@media (max-width: 900px) {
  .sidebar {
    position: fixed;
    z-index: 80;
    box-shadow: 0 0 60px rgba(0, 0, 0, .6);
  }
}
