/* =====================================================================
   konkurs.css — единая дизайн-система конкурсной платформы
   Слой поверх темы (style.css + blue.css). Всё префикс .kx- / --kx-,
   чтобы не конфликтовать с bootstrap3 (.btn/.card/...).
   Эволюция бренда: Material blue + бирюза + зелёный.
   Утверждено: концепт konkurs-style.html (10.07.2026)
   ===================================================================== */

:root {
  --kx-bg:        #eef2f7;
  --kx-surface:   #ffffff;
  --kx-surface-2: #f5f8fc;
  --kx-ink:       #17242e;
  --kx-ink-2:     #46586a;
  --kx-ink-3:     #7c8da0;
  --kx-border:    #e2e8f1;
  --kx-border-2:  #d3dce8;
  /* brand */
  --kx-primary:   #1e88e5;
  --kx-primary-d: #1565c0;
  --kx-primary-wash:#e7f1fd;
  /* три творческие роли = три фирменных цвета (структурно) */
  --kx-text-c:    #0ca3b4;  --kx-text-wash: #dff4f6;   /* Текст  */
  --kx-music-c:   #1e88e5;  --kx-music-wash:#e4f0fd;   /* Музыка */
  --kx-video-c:   #10a884;  --kx-video-wash:#def3ec;   /* Видео  */
  /* семантика (отдельно от акцента) */
  --kx-gold:      #e0a52b;
  --kx-warn:      #d98324;
  --kx-danger:    #d94f4f;
  /* форма */
  --kx-radius:    14px;
  --kx-radius-sm: 9px;
  --kx-shadow:    0 1px 2px rgba(21,40,60,.05), 0 6px 20px rgba(21,40,60,.06);
  --kx-shadow-h:  0 2px 6px rgba(21,40,60,.08), 0 14px 34px rgba(21,40,60,.12);
  --kx-vk:        #2787f5;
}
@media (prefers-color-scheme: dark) {
  :root {
    --kx-bg:#0d1620; --kx-surface:#152230; --kx-surface-2:#1a2937; --kx-ink:#e8eef5; --kx-ink-2:#a7b6c6;
    --kx-ink-3:#72869c; --kx-border:#233444; --kx-border-2:#2c3f52;
    --kx-primary:#4ba3f0; --kx-primary-d:#6bb4f3; --kx-primary-wash:#132b41;
    --kx-text-c:#33bccb; --kx-text-wash:#0e2b30; --kx-music-c:#4ba3f0; --kx-music-wash:#122a41;
    --kx-video-c:#3cc19c; --kx-video-wash:#0f2b25; --kx-gold:#e6b755;
    --kx-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);
    --kx-shadow-h:0 2px 8px rgba(0,0,0,.4),0 18px 40px rgba(0,0,0,.5);
  }
}
:root[data-theme="light"]{
  --kx-bg:#eef2f7; --kx-surface:#ffffff; --kx-surface-2:#f5f8fc; --kx-ink:#17242e; --kx-ink-2:#46586a; --kx-ink-3:#7c8da0;
  --kx-border:#e2e8f1; --kx-border-2:#d3dce8; --kx-primary:#1e88e5; --kx-primary-d:#1565c0; --kx-primary-wash:#e7f1fd;
  --kx-text-c:#0ca3b4; --kx-text-wash:#dff4f6; --kx-music-c:#1e88e5; --kx-music-wash:#e4f0fd;
  --kx-video-c:#10a884; --kx-video-wash:#def3ec; --kx-gold:#e0a52b;
}
:root[data-theme="dark"]{
  --kx-bg:#0d1620; --kx-surface:#152230; --kx-surface-2:#1a2937; --kx-ink:#e8eef5; --kx-ink-2:#a7b6c6; --kx-ink-3:#72869c;
  --kx-border:#233444; --kx-border-2:#2c3f52; --kx-primary:#4ba3f0; --kx-primary-d:#6bb4f3; --kx-primary-wash:#132b41;
  --kx-text-c:#33bccb; --kx-text-wash:#0e2b30; --kx-music-c:#4ba3f0; --kx-music-wash:#122a41;
  --kx-video-c:#3cc19c; --kx-video-wash:#0f2b25; --kx-gold:#e6b755;
}

/* ---- scope: включается на новых страницах, не трогает легаси ---- */
.kx-scope { color:var(--kx-ink);
  font-family:"Raleway",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; }
.kx-scope *{ box-sizing:border-box; }
.kx-wrap{ max-width:1080px; margin:0 auto; padding:0 20px; }

/* ---- заголовки страницы ---- */
.kx-page-head{ display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.kx-page-head h1{ font-size:26px; font-weight:760; letter-spacing:-.025em; text-wrap:balance; margin:0; }
.kx-page-head p{ color:var(--kx-ink-2); font-size:14px; margin:5px 0 0; }
.kx-eyebrow{ font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--kx-text-c); }
.kx-spacer{ flex:1; }

/* ---- кнопки ---- */
.kx-btn{ display:inline-flex; align-items:center; gap:8px; border:1px solid transparent; border-radius:10px;
  font:inherit; font-weight:650; font-size:14px; padding:9px 16px; cursor:pointer; transition:.14s; white-space:nowrap;
  text-decoration:none; }
.kx-btn--primary{ background:var(--kx-primary); color:#fff; box-shadow:var(--kx-shadow); }
.kx-btn--primary:hover{ background:var(--kx-primary-d); box-shadow:var(--kx-shadow-h); color:#fff; }
.kx-btn--ghost{ background:var(--kx-surface); border-color:var(--kx-border-2); color:var(--kx-ink); }
.kx-btn--ghost:hover{ border-color:var(--kx-primary); color:var(--kx-primary); }
.kx-btn--vk{ background:var(--kx-vk); color:#fff; }
.kx-btn--vk:hover{ background:#1a6fd4; color:#fff; }
/* кнопки-ссылки поверх темы (.content_body a:not(.btn-default) красит все ссылки в синий) */
a.kx-btn.kx-btn--primary, a.kx-btn.kx-btn--primary:hover, a.kx-btn.kx-btn--primary:focus, a.kx-btn.kx-btn--primary:visited,
a.kx-btn.kx-btn--vk, a.kx-btn.kx-btn--vk:hover, a.kx-btn.kx-btn--vk:visited{ color:#fff; }
a.kx-btn.kx-btn--ghost, a.kx-btn.kx-btn--ghost:visited{ color:var(--kx-ink); }
a.kx-btn.kx-btn--ghost:hover, a.kx-btn.kx-btn--ghost:focus{ color:var(--kx-primary); }
.kx-btn--sm{ padding:6px 12px; font-size:13px; }
.kx-btn[disabled]{ opacity:.55; cursor:default; pointer-events:none; }
.kx-btn:focus-visible{ outline:2px solid var(--kx-primary); outline-offset:2px; }

/* ---- карточка ---- */
.kx-card{ background:var(--kx-surface); border:1px solid var(--kx-border); border-radius:var(--kx-radius); box-shadow:var(--kx-shadow); }
.kx-panel{ padding:18px; }

/* ---- поиск / поля ---- */
.kx-search{ flex:1; min-width:180px; display:flex; align-items:center; gap:9px; background:var(--kx-surface);
  border:1px solid var(--kx-border); border-radius:10px; padding:0 12px; height:40px; color:var(--kx-ink-3); }
.kx-search input{ border:0; background:transparent; font:inherit; font-size:14px; color:var(--kx-ink); flex:1; outline:none; height:100%; }
.kx-field{ display:flex; flex-direction:column; gap:6px; }
.kx-field label{ font-size:12.5px; font-weight:650; color:var(--kx-ink-2); }
.kx-inp{ border:1px solid var(--kx-border-2); background:var(--kx-surface); border-radius:10px; padding:9px 12px; font:inherit;
  font-size:14px; color:var(--kx-ink); outline:none; width:100%; }
.kx-inp:focus{ border-color:var(--kx-primary); box-shadow:0 0 0 3px var(--kx-primary-wash); }

/* ---- нативный селект в стиле сайта (без движкового selectorSimple) ---- */
.kx-select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  border:1px solid var(--kx-border-2); background-color:var(--kx-surface); color:var(--kx-ink);
  border-radius:10px; padding:9px 34px 9px 12px; font:inherit; font-size:14px; line-height:1.2;
  cursor:pointer; outline:none; width:100%; max-width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237c8da0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 11px center; background-size:14px;
}
.kx-select::-ms-expand{ display:none; }
.kx-select:focus{ border-color:var(--kx-primary); box-shadow:0 0 0 3px var(--kx-primary-wash); }
.kx-select:hover{ border-color:var(--kx-border-2); }
.kx-select--sm{ padding:6px 30px 6px 10px; font-size:13px; border-radius:8px; background-position:right 9px center; }
.kx-select--auto{ width:auto; }
.kx-admin .kx-select{ color:var(--kx-ink); background-color:var(--kx-surface); }
.kx-select option{ color:#17242e; }

/* ---- переключатель этапов конкурса ---- */
.kx-seg{ display:inline-flex; border:1px solid var(--kx-border-2); border-radius:9px; overflow:hidden; background:var(--kx-surface); vertical-align:middle; }
.kx-seg a{ padding:6px 12px; font-size:12.5px; font-weight:650; color:var(--kx-ink-2); text-decoration:none; border-left:1px solid var(--kx-border-2); line-height:1.35; white-space:nowrap; transition:background .12s, color .12s; }
.kx-seg a:first-child{ border-left:none; }
.kx-seg a:hover{ background:var(--kx-surface-2); color:var(--kx-ink); }
.kx-seg a.active{ color:#fff; }
.kx-seg a.active.p-soon{ background:var(--kx-gold); }
.kx-seg a.active.p-reg{ background:var(--kx-video-c); }
.kx-seg a.active.p-vote{ background:var(--kx-primary); }
.kx-seg a.active.p-ended{ background:#8496a8; }
.kx-admin .table .kx-seg a{ color:var(--kx-ink-2); }
.kx-admin .table .kx-seg a.active{ color:#fff; }

/* ---- вкладки внутри конкурса ---- */
.kx-admin .kx-atabs{ display:flex; gap:2px; border-bottom:1px solid var(--kx-border); margin:0 0 18px; flex-wrap:wrap; }
.kx-admin .kx-atabs a{ padding:9px 15px; font-size:13.5px; font-weight:650; color:var(--kx-ink-2); text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-1px; display:inline-flex; align-items:center; gap:7px; }
.kx-admin .kx-atabs a:hover{ color:var(--kx-ink); }
.kx-admin .kx-atabs a.active{ color:var(--kx-primary); border-bottom-color:var(--kx-primary); }
.kx-admin .kx-atabs a .n{ font-size:11.5px; font-weight:700; background:var(--kx-surface-2); color:var(--kx-ink-3); border-radius:999px; padding:1px 7px; }
.kx-admin .kx-atabs a.active .n{ background:var(--kx-primary-wash); color:var(--kx-primary); }
/* ---- фильтр-чипы ---- */
.kx-admin .kx-fchips{ display:flex; gap:6px; flex-wrap:wrap; margin:0 0 14px; }
.kx-admin .kx-fchips a{ padding:5px 12px; font-size:12.5px; font-weight:600; color:var(--kx-ink-2); text-decoration:none; border:1px solid var(--kx-border-2); border-radius:999px; }
.kx-admin .kx-fchips a:hover{ border-color:var(--kx-primary); color:var(--kx-primary); }
.kx-admin .kx-fchips a.active{ background:var(--kx-ink); color:#fff; border-color:var(--kx-ink); }

/* ---- чипы ролей ---- */
.kx-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:650; padding:3px 9px 3px 7px;
  border-radius:999px; border:1px solid transparent; letter-spacing:.01em; }
.kx-chip .kx-dot{ width:7px; height:7px; border-radius:50%; }
.kx-chip--text { background:var(--kx-text-wash);  color:var(--kx-text-c); }  .kx-chip--text  .kx-dot{ background:var(--kx-text-c); }
.kx-chip--music{ background:var(--kx-music-wash); color:var(--kx-music-c); } .kx-chip--music .kx-dot{ background:var(--kx-music-c); }
.kx-chip--video{ background:var(--kx-video-wash); color:var(--kx-video-c); } .kx-chip--video .kx-dot{ background:var(--kx-video-c); }
.kx-chip--need { background:transparent; color:var(--kx-ink-3); border:1px dashed var(--kx-border-2); } .kx-chip--need .kx-dot{ background:var(--kx-ink-3); opacity:.5; }

/* ---- статусы ---- */
.kx-status{ font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:3px 9px; border-radius:7px; }
.kx-status--ready{ background:var(--kx-video-wash); color:var(--kx-video-c); }
.kx-status--build{ background:var(--kx-music-wash); color:var(--kx-music-c); }
.kx-status--mod  { background:#fbf0dd; color:var(--kx-warn); }
:root[data-theme="dark"] .kx-status--mod{ background:#2e2413; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .kx-status--mod{ background:#2e2413; } }

/* ---- аватары / команда ---- */
.kx-avatar{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:12px; font-weight:700; background-color:var(--kx-surface-2); background-size:cover; background-position:center; overflow:hidden; flex:none; }
.kx-team{ display:flex; align-items:center; }
.kx-team .kx-avatar{ width:24px; height:24px; font-size:10px; border:2px solid var(--kx-surface); margin-left:-7px; }
.kx-team .kx-avatar:first-child{ margin-left:0; }

/* ---- список текстов ---- */
.kx-list{ overflow:hidden; }
.kx-row{ display:flex; align-items:center; gap:16px; padding:15px 18px; border-bottom:1px solid var(--kx-border); transition:.12s; }
.kx-row:last-child{ border-bottom:0; }
.kx-row:hover{ background:var(--kx-surface-2); }
.kx-row .kx-num{ font-size:13px; font-weight:700; color:var(--kx-ink-3); width:26px; font-variant-numeric:tabular-nums; text-align:right; }
.kx-row .kx-ico{ width:38px; height:38px; border-radius:10px; background:var(--kx-text-wash); color:var(--kx-text-c); display:grid; place-items:center; flex:none; }
.kx-row .kx-main{ flex:1; min-width:0; }
.kx-row .kx-title{ font-weight:680; font-size:15.5px; letter-spacing:-.01em; }
.kx-row .kx-sub{ color:var(--kx-ink-2); font-size:13px; margin-top:2px; }
.kx-meta{ display:flex; align-items:center; gap:14px; color:var(--kx-ink-3); font-size:12.5px; }
.kx-meta b{ color:var(--kx-ink-2); font-variant-numeric:tabular-nums; }

/* ---- туры ---- */
.kx-tour{ margin-bottom:34px; }
.kx-tour-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.kx-tour-head .kx-bar{ width:4px; align-self:stretch; border-radius:3px; background:var(--kx-primary); }
.kx-tour--t1 .kx-bar{ background:var(--kx-text-c); }
.kx-tour--t2 .kx-bar{ background:var(--kx-music-c); }
.kx-tour--t3 .kx-bar{ background:var(--kx-gold); }
.kx-tour-head h2{ font-size:19px; font-weight:730; letter-spacing:-.02em; margin:0; }
.kx-tour-head .kx-tsub{ color:var(--kx-ink-2); font-size:13px; }
.kx-count-pill{ margin-left:auto; font-size:12.5px; font-weight:700; color:var(--kx-ink-2); background:var(--kx-surface-2);
  border:1px solid var(--kx-border); padding:4px 11px; border-radius:999px; font-variant-numeric:tabular-nums; }

/* ---- сетка + карточка клипа ---- */
.kx-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:820px){ .kx-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .kx-grid{ grid-template-columns:1fr; } }
.kx-clip{ overflow:hidden; display:flex; flex-direction:column; transition:.16s; }
.kx-clip:hover{ transform:translateY(-3px); box-shadow:var(--kx-shadow-h); }
.kx-thumb{ aspect-ratio:16/10; position:relative; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#25506b,#0d2536); }
.kx-play{ width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.16); backdrop-filter:blur(3px);
  border:1.5px solid rgba(255,255,255,.6); display:grid; place-items:center; }
.kx-thumb .kx-dur{ position:absolute; right:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff; font-size:11px; font-weight:600; padding:2px 7px; border-radius:6px; font-variant-numeric:tabular-nums; }
.kx-thumb .kx-rank{ position:absolute; left:10px; top:10px; width:30px; height:30px; border-radius:9px; background:var(--kx-gold); color:#3a2a05; font-weight:800; display:grid; place-items:center; font-size:14px; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.kx-clip-body{ padding:13px 14px 14px; display:flex; flex-direction:column; gap:10px; flex:1; }
.kx-clip-title{ font-weight:700; font-size:15px; letter-spacing:-.01em; }
.kx-clip-src{ color:var(--kx-ink-2); font-size:12.5px; display:flex; align-items:center; gap:6px; }
.kx-roles{ display:flex; flex-wrap:wrap; gap:5px; }
.kx-clip-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:11px; border-top:1px solid var(--kx-border); }
.kx-votes{ display:flex; align-items:center; gap:7px; font-weight:750; font-size:15px; font-variant-numeric:tabular-nums; }
.kx-votes i{ color:var(--kx-danger); font-style:normal; }
.kx-votes small{ color:var(--kx-ink-3); font-weight:600; font-size:12px; }

/* ---- подиум ---- */
.kx-podium{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.kx-win{ text-align:center; padding:22px 16px; position:relative; }
.kx-win .kx-medal{ width:46px; height:46px; border-radius:50%; margin:0 auto 12px; display:grid; place-items:center; font-size:20px; font-weight:800; color:#fff; }
.kx-win--1 .kx-medal{ background:linear-gradient(135deg,#f0c04a,#d69a1e); } .kx-win--1{ border-color:var(--kx-gold); }
.kx-win--2 .kx-medal{ background:linear-gradient(135deg,#c3ccd6,#93a1af); }
.kx-win--3 .kx-medal{ background:linear-gradient(135deg,#d69b6a,#b06f3e); }
.kx-win h3{ font-size:16px; font-weight:730; margin:0; }
.kx-win .kx-place{ font-size:12px; color:var(--kx-ink-3); font-weight:650; text-transform:uppercase; letter-spacing:.06em; margin-top:3px; }
.kx-win .kx-wv{ margin-top:9px; font-weight:750; font-variant-numeric:tabular-nums; }

/* ---- инфо-плашка ---- */
.kx-note{ display:flex; gap:12px; align-items:flex-start; background:var(--kx-primary-wash); border:1px solid transparent; border-radius:var(--kx-radius); padding:14px 16px; font-size:13.5px; color:var(--kx-ink); }
.kx-note .kx-note-ic{ width:30px; height:30px; border-radius:8px; background:var(--kx-primary); color:#fff; display:grid; place-items:center; flex:none; }

/* ---- сегмент-переключатель ---- */
.kx-seg{ display:inline-flex; background:var(--kx-surface-2); border:1px solid var(--kx-border); border-radius:12px; padding:4px; gap:2px; }
.kx-seg button{ border:0; background:transparent; color:var(--kx-ink-2); font:inherit; font-weight:650; font-size:14px; padding:8px 16px; border-radius:9px; cursor:pointer; display:flex; align-items:center; gap:7px; }
.kx-seg button[aria-selected="true"]{ background:var(--kx-surface); color:var(--kx-ink); box-shadow:var(--kx-shadow); }
.kx-seg button:focus-visible{ outline:2px solid var(--kx-primary); outline-offset:2px; }

/* ---- чекбоксы ролей (регистрация/профиль) ---- */
.regRoles{ display:flex; gap:10px; flex-wrap:wrap; }
.regRole{ display:flex; align-items:center; gap:8px; padding:9px 14px; border:1px solid var(--kx-border-2); border-radius:10px;
  cursor:pointer; font-weight:600; font-size:14px; background:var(--kx-surface); color:var(--kx-ink); user-select:none; transition:.14s; }
.regRole:hover{ border-color:var(--kx-primary); }
.regRole input{ accent-color:var(--kx-primary); width:16px; height:16px; margin:0; }
.regRole .dot{ width:9px; height:9px; border-radius:50%; }
.regRole:has(input:checked){ border-color:var(--kx-primary); box-shadow:0 0 0 3px var(--kx-primary-wash); }

/* ---- сегмент-фильтр (табы категорий) ---- */
.kx-seg-filter{ display:inline-flex; gap:4px; background:var(--kx-surface-2); border:1px solid var(--kx-border); border-radius:12px; padding:5px; flex-wrap:wrap; }
.kx-seg-filter a{ display:inline-flex; align-items:center; gap:7px; padding:8px 16px; border-radius:9px; font-size:13.5px; font-weight:650; color:var(--kx-ink-2); text-decoration:none; transition:.15s; }
.kx-seg-filter a:hover{ color:var(--kx-ink); }
.kx-seg-filter a .d{ width:8px; height:8px; border-radius:50%; flex:none; }
.kx-seg-filter a.active{ background:var(--kx-surface); color:var(--kx-ink); box-shadow:var(--kx-shadow); }

@media (max-width:560px){ .kx-podium{ grid-template-columns:1fr; } .kx-row .kx-num{ display:none; } }
@media (prefers-reduced-motion:reduce){ .kx-clip:hover{ transform:none; } }

/* ============================================================
   Скин админ-панели под дизайн-систему (scoped .kx-admin)
   Перекрашивает bootstrap-классы админки на kx-токены.
   ============================================================ */
.kx-admin{ background:var(--kx-bg); color:var(--kx-ink); font-family:"Raleway",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
.kx-admin #box_0{ background:var(--kx-surface) !important; box-shadow:none !important; border-bottom:1px solid var(--kx-border); }
.kx-admin #box_0 span{ color:var(--kx-ink); }

/* карточки-блоки */
.kx-admin .box-content{ background:var(--kx-surface); border:1px solid var(--kx-border); border-radius:var(--kx-radius); box-shadow:var(--kx-shadow); padding:20px; margin-bottom:16px; }

/* заголовки */
.kx-admin h3{ font-size:20px; font-weight:760; letter-spacing:-.02em; color:var(--kx-ink); }
.kx-admin h4{ font-size:16px; font-weight:730; color:var(--kx-ink); }
.kx-admin .text-muted{ color:var(--kx-ink-3) !important; }

/* сайдбар-навигация */
.kx-admin .adminNav > li > a{ color:var(--kx-ink-2); border-radius:10px; font-weight:650; font-size:14px; padding:10px 14px; margin-bottom:2px; }
.kx-admin .adminNav > li > a:hover{ background:var(--kx-surface-2); color:var(--kx-ink); }
.kx-admin .adminNav > li.active > a, .kx-admin .adminNav > li.active > a:hover, .kx-admin .adminNav > li.active > a:focus{ background:var(--kx-primary) !important; color:#fff !important; box-shadow:var(--kx-shadow); }
.kx-admin .adminNav .badge{ background:var(--kx-danger) !important; border-radius:999px; font-weight:700; }

/* таблицы */
.kx-admin .table{ margin-bottom:0; }
.kx-admin .table > thead > tr > th{ border-bottom:1px solid var(--kx-border); color:var(--kx-ink-3); font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:10px 12px; }
.kx-admin .table > tbody > tr > td{ border-top:1px solid var(--kx-border); padding:12px; vertical-align:middle; color:var(--kx-ink); font-size:14px; }
.kx-admin .table-hover > tbody > tr:hover{ background:var(--kx-surface-2); }
.kx-admin .table a{ color:var(--kx-primary); }

/* кнопки */
.kx-admin .btn{ border-radius:9px; font-weight:650; border:1px solid transparent; box-shadow:none; background-image:none !important; text-shadow:none; }
.kx-admin .btn-primary{ background:var(--kx-primary); border-color:transparent; color:#fff; }
.kx-admin .btn-primary:hover, .kx-admin .btn-primary:focus{ background:var(--kx-primary-d); color:#fff; }
.kx-admin .btn-default{ background:var(--kx-surface); border:1px solid var(--kx-border-2); color:var(--kx-ink); }
.kx-admin .btn-default:hover, .kx-admin .btn-default:focus{ border-color:var(--kx-primary); color:var(--kx-primary); background:var(--kx-surface); }
.kx-admin .btn-success{ background:var(--kx-video-c); border-color:transparent; color:#fff; }
.kx-admin .btn-success:hover{ background:#0d8f6f; color:#fff; }
.kx-admin .btn-danger{ background:var(--kx-danger); border-color:transparent; color:#fff; }
.kx-admin .btn-danger:hover{ background:#c0392b; color:#fff; }
.kx-admin .btn-xs{ border-radius:7px; padding:4px 9px; }

/* лейблы -> kx-пилюли */
.kx-admin .label{ font-weight:700; border-radius:7px; padding:.32em .62em; font-size:11px; letter-spacing:.02em; }
.kx-admin .label-success{ background:var(--kx-video-wash); color:var(--kx-video-c); }
.kx-admin .label-warning{ background:#fbf0dd; color:var(--kx-warn); }
.kx-admin .label-danger{ background:#fbe0e0; color:#c0392b; }
.kx-admin .label-default{ background:var(--kx-surface-2); color:var(--kx-ink-3); border:1px solid var(--kx-border); }
.kx-admin .label-primary{ background:var(--kx-primary-wash); color:var(--kx-primary); }

/* поля */
.kx-admin .form-control{ border:1px solid var(--kx-border-2); border-radius:10px; box-shadow:none; color:var(--kx-ink); height:auto; padding:9px 12px; background:var(--kx-surface); }
.kx-admin .form-control:focus{ border-color:var(--kx-primary); box-shadow:0 0 0 3px var(--kx-primary-wash); }
.kx-admin textarea.form-control{ min-height:60px; }
.kx-admin .control-label{ color:var(--kx-ink-2); font-weight:650; }

/* стат-плитки сводки */
.kx-admin .adminStatBox .num{ color:var(--kx-ink); font-weight:800; }
.kx-admin .adminStatBox .lbl{ color:var(--kx-ink-3); }

/* футер */
.kx-admin .content_bg_color2{ background:transparent; }
.kx-admin .content_footerBox{ color:var(--kx-ink-3); }

/* модалка подтверждения удаления (json.js .admin-confirm-box) */
.kx-admin .admin-confirm-bg{ background:rgba(23,36,46,.5); }
.kx-admin .admin-confirm-box{ border-radius:var(--kx-radius); box-shadow:var(--kx-shadow-h); color:var(--kx-ink); font-size:17px; }
.kx-admin .admin-confirm-box .btn{ opacity:1 !important; min-width:90px; }
.kx-admin .admin-confirm-box #remove_ok{ background:var(--kx-danger) !important; background-image:none !important; color:#fff !important; border-color:transparent !important; }
.kx-admin .admin-confirm-box #remove_ok:hover{ background:#c0392b !important; }
.kx-admin .admin-confirm-box #remove_no{ background:var(--kx-surface) !important; background-image:none !important; color:var(--kx-ink) !important; border:1px solid var(--kx-border-2) !important; }
/* модалка bootstrap в админке под стиль */
.kx-admin .modal-content{ border-radius:var(--kx-radius); border:1px solid var(--kx-border); box-shadow:var(--kx-shadow-h); }
.kx-admin .modal-header{ border-bottom:1px solid var(--kx-border); }
.kx-admin .modal-title{ font-weight:750; }
.kx-admin .modal-body label{ font-size:12.5px; font-weight:650; color:var(--kx-ink-2); }

/* гарантия видимости кнопок админки (тема перебивала фон) */
.kx-admin .btn-primary{ background:var(--kx-primary) !important; color:#fff !important; }
.kx-admin .btn-primary:hover{ background:var(--kx-primary-d) !important; }
.kx-admin .btn-success{ background:var(--kx-video-c) !important; color:#fff !important; }
.kx-admin .btn-danger{ background:var(--kx-danger) !important; color:#fff !important; }
.kx-admin .btn-default{ background:var(--kx-surface) !important; color:var(--kx-ink) !important; }
.kx-admin .btn-default:hover{ color:var(--kx-primary) !important; }

/* ===== единые кнопки действий в админ-таблицах (ghost, одинаковая форма) =====
   селекторы с a.kx-tbtn, чтобы перебить .kx-admin .table a{ color:primary } */
.kx-admin a.kx-tbtn, .kx-admin .kx-tbtn{
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    height:30px; min-width:30px; padding:0 10px; vertical-align:middle;
    border:1px solid var(--kx-border-2); border-radius:8px; background:var(--kx-surface);
    color:var(--kx-ink-2); font-weight:650; font-size:12.5px; line-height:1;
    text-decoration:none; white-space:nowrap; cursor:pointer;
    transition:border-color .13s, color .13s, background .13s;
}
.kx-admin .kx-tbtn + .kx-tbtn{ margin-left:6px; }
.kx-admin a.kx-tbtn i, .kx-admin .kx-tbtn i{ font-size:12.5px; }
.kx-admin a.kx-tbtn:hover, .kx-admin a.kx-tbtn:focus, .kx-admin .kx-tbtn:hover, .kx-admin .kx-tbtn:focus{ border-color:var(--kx-primary); color:var(--kx-primary); background:var(--kx-surface); }
/* смысловые варианты: тон иконки в покое + акцент на hover, форма та же */
.kx-admin a.kx-tbtn--danger, .kx-admin .kx-tbtn--danger{ color:var(--kx-danger); }
.kx-admin a.kx-tbtn--danger:hover, .kx-admin a.kx-tbtn--danger:focus, .kx-admin .kx-tbtn--danger:hover, .kx-admin .kx-tbtn--danger:focus{ border-color:var(--kx-danger); color:#fff; background:var(--kx-danger); }
.kx-admin a.kx-tbtn--ok, .kx-admin .kx-tbtn--ok{ color:var(--kx-video-c); }
.kx-admin a.kx-tbtn--ok:hover, .kx-admin a.kx-tbtn--ok:focus, .kx-admin .kx-tbtn--ok:hover, .kx-admin .kx-tbtn--ok:focus{ border-color:var(--kx-video-c); color:#fff; background:var(--kx-video-c); }

/* колокольчик уведомлений в шапке (непрочитанные) */
.headerBell{ position:relative; }
.headerBell > a{ position:relative; display:inline-block; }
.headerBell .fa-comment{ font-size:20px; color:var(--kx-ink-2); }
.headerBell .badge{ position:absolute !important; top:-4px; right:-9px; background:var(--kx-danger) !important; color:#fff !important;
  border-radius:999px; font-size:11px; font-weight:800; min-width:18px; height:18px; line-height:18px; padding:0 5px; box-shadow:0 2px 6px rgba(217,79,79,.45); }

/* размер/позиционирование логотипа в шапке */
.siteLogo{ position:relative; top:0px; }
.siteLogo img{ width:165px; max-width:80%; }
