/* ============ Ultra100 Brand Theme (scoped) ============ */
html, body{ max-width:100%; overflow-x:hidden; }

.kostinlab_ultra100 {
  --bg:#ffffff;            /* Светлый фон */
  --text:#0e0e0e;          /* Основной текст (почти чёрный) */
  --muted:#475569;         /* Вторичный текст */
  --card:#ffffff;          /* Карточки на светлом фоне */
  --accent:#93f200;        /* Брендовая салатовая */
  --border:#e5e7eb;        /* Светлая рамка для блоков */
  --border-strong:#0e0e0e; /* Чёрная рамка для кнопок */
  --danger:#ef4444;        /* Сообщения об ошибке */
}

/* База */
.kostinlab_ultra100, 
.kostinlab_ultra100 * { box-sizing: border-box; }

.kostinlab_ultra100 {
  min-height: 100dvh;
  margin: 0;
  font:17.5px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Arial,sans-serif;
  color:var(--text);
}

/* Контейнер */
.kostinlab_ultra100 .container{
  width:min(100%, 1120px);
  margin:0 auto;
  padding:20px;
}

/* Шапка/подвал */
.kostinlab_ultra100 .site-header,
.kostinlab_ultra100 .site-footer{
  background:#ffffff;
  border-bottom:1px solid var(--border);
}
.kostinlab_ultra100 .site-footer{
  border-top:1px solid var(--border);
  border-bottom:none;
  margin-top:24px;
}
.kostinlab_ultra100 .site-header .container,
.kostinlab_ultra100 .site-footer .container{
  display:flex; align-items:center; justify-content:space-between;
}

.kostinlab_ultra100 .brand a{
  color:var(--text);
  text-decoration:none;
  font-weight:800;
  letter-spacing:.2px;
  font-size:18px;
}
.kostinlab_ultra100 .nav a{
  color:var(--text);
  text-decoration:none;
  margin-left:18px;
  font-weight:700;
  border-bottom:2px solid transparent;
  padding-bottom:3px;
}
.kostinlab_ultra100 .nav a:hover{ border-color:var(--text); }

/* Карточки */
.kostinlab_ultra100 .card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:1px;
  padding:24px;
}

/* Центрирование блока авторизации */
.kostinlab_ultra100 .auth-viewport{
  min-height: calc(100dvh - 140px);
  display: grid;
  place-items: center;
  padding: 10px;
}
.kostinlab_ultra100 .auth-card{
  max-width:520px;
  width:100%;
  margin:0 auto;
}

/* Текст */
.kostinlab_ultra100 h1{ margin:0 0 16px 0; font-size:28px; line-height:1.25; font-weight:800; }
.kostinlab_ultra100 p{ margin:0 0 12px 0; color:var(--muted); font-size:16.5px; }

/* Формы */
.kostinlab_ultra100 .form-row{ margin:16px 0; display:flex; flex-direction:column; gap:8px; }
.kostinlab_ultra100 label{ color:var(--muted); font-size:15px; font-weight:700; letter-spacing:.1px; }
.kostinlab_ultra100 input{
  background:#ffffff;
  border:1px solid var(--border);
  color:var(--text);
  padding:14px 16px;
  border-radius:1px;
  outline:0;
  font-size:17px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.kostinlab_ultra100 input:focus{ border-color:#cbd5e1; box-shadow:0 0 0 4px rgba(147,242,0,.22); }

.kostinlab_ultra100 .form-actions{ display:flex; align-items:center; gap:14px; margin-top:14px; flex-wrap:wrap; }
.kostinlab_ultra100 .form-subtext{ margin-top:8px; }

/* Кнопки */
.kostinlab_ultra100 .btn{
  display:inline-block;
  padding:14px 22px;
  border-radius:0;
  background:#f8fafc;
  color:var(--text);
  text-decoration:none;
  border:1px solid var(--border);
  font-weight:700;
  font-size:16.5px;
  transition: all .2s ease;
}

/* Primary */
.kostinlab_ultra100 .btn-primary{
  color:#0e0e0e;
  background:#fff;
      text-align: center;
  border:2px solid var(--border-strong) !important;
  box-shadow:none !important;
  
}
.kostinlab_ultra100 .btn-primary:hover,
.kostinlab_ultra100 .btn-primary:focus-visible{
  color:#ffffff !important;
  background:#0e0e0e !important;
}

/* Outline */
.kostinlab_ultra100 .btn-outline{
  background:#ffffff;
  color:#0e0e0e;
  border:2px solid #0e0e0e;
}
.kostinlab_ultra100 .btn-outline:hover,
.kostinlab_ultra100 .btn-outline:focus-visible{
  background:#0e0e0e;
  color:#ffffff;
}

/* Alerts */
.kostinlab_ultra100 .alert{
  padding:12px 14px;
  border-radius:1px;
  margin:12px 0;
  border:1px solid var(--border);
  background:#f8fafc;
  color:#0f172a;
}
.kostinlab_ultra100 .alert-error{
  background:#fef2f2;
  border-color:#fecaca;
  color:#b91c1c;
}

/* Ссылки */
.kostinlab_ultra100 .link{ color:#0e0e0e; text-decoration:underline; text-underline-offset:3px; }
.kostinlab_ultra100 .link:hover{ opacity:.85; }

/* Адаптивность */
@media (max-width: 600px){
  .kostinlab_ultra100 .nav a{ margin-left:12px; font-size:14px; }
  .kostinlab_ultra100 .container{ padding:14px; }
  .kostinlab_ultra100 .btn, 
  .kostinlab_ultra100 .btn-primary, 
  .kostinlab_ultra100 .btn-outline{ width:100%; text-align:center; }
  .kostinlab_ultra100 .auth-card{ max-width:100%; }
}

/* Градиентный фон body */
body.kostinlab_ultra100 {
  position: relative;
  min-height: 100vh;
}
body.kostinlab_ultra100::before {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: -1;
  background:#F4F4F4;
}
body.kostinlab_ultra100::after {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: -1;
  background: radial-gradient(circle at 20% 80%, 
      rgba(255,255,255,0.4) 0%, transparent 50%);
  animation: pulseGlow 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes gradientFlow {
  0% { background-position: 0% 0%; filter: hue-rotate(0deg); }
  25% { background-position: 100% 0%; }
  50% { background-position: 100% 100%; filter: hue-rotate(5deg) brightness(105%); }
  75% { background-position: 0% 100%; }
  100% { background-position: 0% 0%; filter: hue-rotate(0deg); }
}
@keyframes pulseGlow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.2); }
}
body.kostinlab_ultra100 > * {
  position: relative;
  z-index: 1;
}

/* Мелкие служебные элементы */
.grid-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.form-fieldset{ border:1px solid rgba(0,0,0,.08); border-radius:1px; padding:12px; margin:8px 0; }
.form-fieldset > legend{ font-weight:600; padding:0 6px; }
.badge{ display:inline-block; padding:.2rem .5rem; border-radius:1px; background:#eef2f7; font-size:.85rem; }

/* === Sticky footer без перекрытий === */
body.kostinlab_ultra100 {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.kostinlab_ultra100 .site-header { flex: 0 0 auto; position: relative; z-index: 10; }
.kostinlab_ultra100 .site-footer { 
  flex: 0 0 auto;
  margin-top: auto;
  position: relative;
  z-index: 10;
}
.kostinlab_ultra100 .site-main { flex: 1 1 auto; }

/* Модалки всегда поверх футера */
.modal-backdrop,
.kostinlab_ultra100 .modal-backdrop {
  z-index: 99999 !important;
}
















