/* Hub clean UI */
:root{
  --hub-bg:#f5f7fb;
  --hub-card:#fff;
  --hub-text:#12353d;
  --hub-muted:#6b7b86;
  --hub-accent:#0ea5e9;
  --hub-accent-2:#22c1b5;
  --hub-shadow:0 6px 24px rgba(8,36,46,.08);
}

body .content-wrapper{background:var(--hub-bg)!important}

/* Tabs */
.hub-tabs-wrap{display:flex;align-items:center;gap:8px;margin:12px 0 8px}
.hub-tabs{display:flex;gap:10px;flex-wrap:wrap}
.hub-tab{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:999px;background:#fff;
  border:1px solid #e7eef3;color:#1f4550;font-weight:700;
  text-decoration:none;box-shadow:var(--hub-shadow);
  transition:transform .06s ease, box-shadow .15s ease;
}
.hub-tab:hover{box-shadow:0 8px 28px rgba(8,36,46,.12)}
.hub-tab.is-active{background:linear-gradient(93deg,#23b0a9 60%,#2fcfc2 100%);border-color:transparent;color:#fff}

/* Header */
.hub-header{display:flex;align-items:center;justify-content:space-between;margin:10px 0 16px}
.hub-header h1{font-size:28px;font-weight:800;color:#0c3840;margin:0}
.hub-view{display:flex;gap:8px}
.hub-view-btn{
  background:#fff;border:1px solid #e7eef3;border-radius:10px;padding:8px 12px;
  font-weight:700;cursor:pointer;box-shadow:var(--hub-shadow)
}
.hub-view-btn.is-active{background:#0ea5e9;color:#fff;border-color:#0ea5e9}

/* Grid/List */
.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media (max-width:1100px){.hub-grid{grid-template-columns:1fr}}
.hub-grid.list{grid-template-columns:1fr}

/* Card */
.hub-card{
  background:var(--hub-card);border:1px solid #e7eef3;border-radius:16px;padding:16px;
  box-shadow:var(--hub-shadow);display:flex;flex-direction:column;gap:14px
}
.hub-card__head{display:flex;align-items:center;gap:12px}
.hub-card__icon{font-size:20px;color:#0ea5e9}
.hub-card__titles{display:flex;flex-direction:column}
.hub-card__title{font-weight:900;color:#0f3b45}
.hub-card__subtitle{font-size:13px;color:#6b7b86}
.hub-badge{
  margin-left:auto;background:#ebf6ff;color:#0b7fc4;border-radius:999px;
  padding:4px 9px;font-size:12px;font-weight:900
}
.hub-card__actions{display:flex;gap:10px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  border:none;border-radius:.75rem;padding:.7rem 1.05rem;cursor:pointer;text-decoration:none;
  font-weight:800
}
.btn-primary{background:#0ea5e9;color:#fff}
.btn-primary:hover{filter:brightness(1.05)}
.btn-outline{background:#fff;border:1px solid #dfe9ee;color:#0f3b45}
.btn-outline:hover{background:#f6fafc}

/* убираем ВСЕ старые декоративные «колонки» если остались */
.hub-columns, .hub-column { display:none !important; }


/* === ContestApplicationAll: скроллы и прилипающая шапка === */
.app-membership.model-contestapplicationall.change-list #changelist .card {
  overflow: visible; /* у AdminLTE у .card часто overflow:hidden — ломает sticky */
}

/* горизонтальный скролл у контейнера таблицы */
.app-membership.model-contestapplicationall.change-list #changelist .card-body.table-responsive {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* таблица шире контейнера → появится горизонтальный скролл */
.app-membership.model-contestapplicationall.change-list #result_list {
  min-width: 1600px; /* подгони под кол-во колонок */
}

/* прилипаем заголовки при вертикальном скролле страницы */
.app-membership.model-contestapplicationall.change-list #result_list thead th {
  position: sticky;
  top: 0;                 /* если перекрывается верхней панелью — смени на 56px */
  z-index: 5;
  background: #fff;       /* фон обязателен, иначе текст будет «наезжать» */
  box-shadow: 0 1px 0 rgba(0,0,0,0.06);
}

/* мелкая косметика: фикс для .text обёртки внутри th (Jazzmin/AdminLTE) */
.app-membership.model-contestapplicationall.change-list #result_list thead th .text {
  display: block;
  white-space: nowrap; /* чтобы подписи не переносились странно */
}
