
/* ============ Новости: редактор, статистика, просмотр (перенесено из раздела read, перекрашено под сайт) ============ */
.news-ui,.pq-overlay,.pq-toast{
  --white:#000;--white-dim:#444;--white-faint:#7d7d7d;
  --glass:#f3f9fc;--glass-border:#cfdde4;--gray-1:#eef4f7;
  --orange:var(--cyan);--orange-soft:rgba(0,178,227,.1);--orange-border:rgba(0,178,227,.55);
}
  .stats-page { display: flex; flex-direction: column; gap: 22px; }
  .stats-h1 { font-size: clamp(22px, 3vw, 28px); margin: 0; }
  .stats-tabs { display: flex; gap: 8px; }
  .stats-tab {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 9px 16px;
    border-radius: 999px;
    border: 1px solid var(--glass-border);
    background: var(--glass);
    color: var(--white-faint);
    cursor: pointer;
  }
  .stats-tab.is-active { border-color: var(--orange); color: var(--orange); background: rgba(255,106,26,0.1); }

  .stats-summary { display: flex; flex-wrap: wrap; gap: 12px; }
  .stats-card {
    flex: 1 1 130px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 14px;
  }
  .stats-card-accent { border-color: var(--orange-border); }
  .stats-card-num { font-size: 22px; font-weight: 700; }
  .stats-card-num small { font-size: 13px; font-weight: 400; color: var(--white-faint); }
  .stats-card-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--white-faint);
  }

  .stats-block-heading {
    margin: 0 0 14px;
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--white-faint);
  }
  .stats-chart-wrap, .stats-table-wrap {
    padding: 20px 22px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 16px;
  }
  #statsChart { overflow-x: auto; }
  .stats-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 14px; }
  .stats-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    color: var(--white-faint);
  }
  .stats-legend-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }

  .stats-table { width: 100%; border-collapse: collapse; font-size: 13px; }
  .stats-table th {
    text-align: left;
    font-family: 'Montserrat', sans-serif;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--white-faint);
    padding: 0 10px 10px;
    border-bottom: 1px solid var(--glass-border);
  }
  .stats-table td { padding: 10px; border-bottom: 1px solid var(--glass-border); }
  .stats-table tr:last-child td { border-bottom: none; }
  .stats-article-link { color: var(--white); text-decoration: none; }
  .stats-article-link:hover { color: var(--orange); }
  .stats-pct { color: var(--white-faint); font-size: 11.5px; }
  .stats-hint { font-weight: 400; text-transform: none; letter-spacing: normal; font-size: 11.5px; color: var(--white-faint); opacity: 0.8; }
  .stats-row { cursor: pointer; transition: background 0.12s ease; }
  .stats-row:hover, .stats-row:focus { background: rgba(255,255,255,0.04); outline: none; }

  .stats-detail {
    padding: 20px 22px;
    background: var(--glass);
    border: 1px solid var(--orange-border);
    border-radius: 16px;
  }
  .stats-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
  .stats-detail-close {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    color: var(--white-faint);
    background: none;
    border: 1px solid var(--glass-border);
    border-radius: 999px;
    padding: 6px 12px;
    cursor: pointer;
  }
  .stats-detail-close:hover { color: var(--white); border-color: var(--orange-border); }
  #statsDetailHours { overflow-x: auto; margin-top: 4px; }

  @media (max-width: 640px) {
    .stats-table { font-size: 11.5px; }
    .stats-table th, .stats-table td { padding: 7px 6px; }
  }
  .rt-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 12px 12px 0 0;
    border-bottom: none;
  }
  .rt-toolbar button {
    background: rgba(255,255,255,0.05);
    border: 1px solid transparent;
    color: var(--white-dim);
    border-radius: 8px;
    width: 32px;
    height: 32px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    cursor: pointer;
  }
  .rt-toolbar button:hover { border-color: var(--orange-border); color: var(--white); }
  .rt-toolbar button.b { font-weight: 700; }
  .rt-toolbar button.i { font-style: italic; }
  .rt-toolbar button.u { text-decoration: underline; }
  .rt-toolbar button.s { text-decoration: line-through; }
  .rt-toolbar .rt-sep { width: 1px; background: var(--glass-border); margin: 3px 4px; }
  .rt-toolbar .rt-swatch {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: 1px solid var(--glass-border);
    cursor: pointer;
    padding: 0;
  }

  .rt-editor {
    min-height: 160px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: 0 0 12px 12px;
    padding: 14px;
    color: var(--white);
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.7;
    overflow-y: auto;
  }
  .rt-editor:focus { outline: none; border-color: var(--orange-border); }
  .rt-editor h2 { font-family: 'Montserrat', sans-serif; font-size: 20px; margin: 14px 0 8px; }
  .rt-editor h3 { font-family: 'Montserrat', sans-serif; font-size: 16px; margin: 12px 0 6px; }
  .rt-editor img.inline-img { max-width: 100%; border-radius: 10px; margin: 8px 0; display: block; }
  .rt-editor .inline-gallery { display: flex; gap: 8px; overflow-x: auto; margin: 8px 0; padding-bottom: 4px; }
  .rt-editor .inline-gallery img.inline-gallery-img { flex: 0 0 140px; height: 100px; object-fit: cover; border-radius: 8px; }
  .rt-editor p { margin: 0 0 10px; }

  /* ---- индикатор автосохранения (вверху редактора) ---- */
  .autosave-status {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    padding: 0 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--white-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .autosave-status.pending { color: var(--orange); }
  .autosave-status.ok { color: #7be08a; }
  .autosave-status.ok::before { content: '✓ '; }
  .autosave-status.err { color: #ff6b6b; }

  /* ---- плашка выбора качества фото ---- */
  .pq-overlay {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(0,0,0,0.65);
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
  }
  .pq-box { width: 100%; max-width: 440px; padding: 22px 22px 18px; }
  .pq-title { font-size: 18px; font-weight: 700; color: var(--white); margin: 0 0 12px; line-height: 1.25; }
  .pq-file { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
  .pq-thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid var(--glass-border); flex: 0 0 auto; }
  .pq-meta { font-family: 'Montserrat', sans-serif; font-size: 11px; color: var(--white-faint); line-height: 1.5; min-width: 0; word-break: break-all; }
  .pq-opts { display: flex; flex-direction: column; gap: 8px; }
  .pq-opt {
    text-align: left; cursor: pointer;
    background: var(--glass); border: 1px solid var(--glass-border); border-radius: 12px;
    padding: 10px 14px; color: var(--white); font-family: inherit;
    transition: border-color .15s ease, background .15s ease;
  }
  .pq-opt:hover, .pq-opt:focus-visible { border-color: var(--orange-border); background: var(--orange-soft); outline: none; }
  .pq-opt.primary { border-color: var(--orange-border); background: var(--orange-soft); }
  .pq-opt b { display: block; font-size: 14px; }
  .pq-opt span { display: block; font-family: 'Montserrat', sans-serif; font-size: 11px; color: var(--white-faint); margin-top: 2px; }
  .pq-all { display: flex; gap: 8px; align-items: center; margin-top: 12px; font-family: 'Montserrat', sans-serif; font-size: 11px; color: var(--white-dim); cursor: pointer; }
  .compose-title {
    display: block;
    width: 100%;
    background: none;
    border: none;
    outline: none;
    color: var(--white);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 3.4vw, 32px);
    margin: 8px 0 20px;
    padding: 4px 0;
  }
  .compose-title::placeholder { color: var(--white-faint); opacity: 0.5; }

  .compose-toolbar {
    position: sticky;
    top: 62px;
    z-index: 40;
    border-radius: 12px;
    background: rgba(23,23,26,0.92);
    backdrop-filter: blur(10px);
  }

  /* сам редактор оформлен ровно как .rich-text — что видишь при наборе текста,
     то и получится на опубликованной странице */
  .compose-editor {
    min-height: 50vh;
    background: none;
    border: none;
    border-radius: 0;
    padding: 22px 0 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
  }
  .compose-editor:focus { outline: none; }
  .compose-editor.rt-editor h2,
  .compose-editor.rt-editor h3 { font-family: 'Montserrat', sans-serif; }
  .compose-editor.rt-editor img.inline-img { border-radius: 14px; margin: 14px 0; }
  .compose-editor:empty:before {
    content: 'Текст статьи...';
    color: var(--white-faint);
    opacity: 0.5;
  }
  .rich-text h2 { font-family: 'Montserrat', sans-serif; color: var(--white); font-size: clamp(19px,2.4vw,24px); margin: 22px 0 10px; }
  .rich-text h3 { font-family: 'Montserrat', sans-serif; color: var(--white); font-size: clamp(16px,2vw,19px); margin: 18px 0 8px; }
  .rich-text p { margin: 0 0 14px; }
  .rich-text img.inline-img { max-width: 100%; border-radius: 14px; margin: 14px 0; display: block; cursor: zoom-in; }
  .rich-text a { color: var(--orange); text-decoration: underline; }
  .rich-text a.tg-link { text-decoration: none; color: var(--white-dim); margin: 2px 6px 2px 0; vertical-align: middle; }
  .rich-text a.tg-link:hover { color: var(--white); }
     Разметка одна и та же в редакторе (.rt-editor) и на опубликованной странице (.rich-text) —
     отличается только поведение клика и то, что видно/скрыто через CSS. */
  .rt-photo-group {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: var(--gray-1);
    margin: 14px 0;
  }
  .rt-photo-track {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .rt-photo-track::-webkit-scrollbar { display: none; }
  .rt-photo-slide { flex: 0 0 100%; scroll-snap-align: start; }

  .rt-photo-media { position: relative; }
  .rt-photo-media img.inline-img { width: 100%; max-width: none; display: block; border-radius: 0; margin: 0; }
  .rich-text .rt-photo-media { cursor: zoom-in; }

  .rt-photo-dots { display: flex; justify-content: center; align-items: center; gap: 6px; padding: 8px 0; }
  .rt-photo-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: rgba(255,255,255,0.3);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
    flex: none;
  }
  .rt-photo-dot.active { background: var(--orange); transform: scale(1.3); }

  /* подпись под фото: заметно мельче основного текста. В редакторе это настоящий
     input — плейсхолдер "Добавьте описание" показывается нативно через ::placeholder,
     никакого JS для этого не нужно. На опубликованной странице подпись уже не input
     (см. render_for_view() в PHP), а обычный div — пустая подпись там просто не
     выводится вовсе (класс is-empty проставляется сервером, не JS). */
  .rt-photo-caption {
    display: block;
    width: 100%;
    padding: 8px 10px;
    margin-top: 2px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: var(--white-faint);
    cursor: text;
    outline: none;
  }
  input.rt-photo-caption {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background: transparent;
    box-sizing: border-box;
    color: var(--white);
  }
  .rt-photo-caption::placeholder { color: var(--white-faint); opacity: 0.55; }
  .rt-editor .rt-photo-caption {
    border-top: 1px dashed var(--glass-border);
    min-height: 1.4em;
  }
  .rt-editor .rt-photo-caption:focus { border-top-color: var(--orange); }
  .rich-text .rt-photo-caption.is-empty { display: none; }

  /* ---- отдельный выделяющийся блок-ссылка на Telegram (не инлайн-«пилюля», а
     самостоятельная карточка на всю ширину текста) — оранжевый заголовок,
     подзаголовок в фирменных цветах сайта, кликабелен целиком ---- */
  .rt-tg-block {
    display: block;
    margin: 22px 0;
    padding: 18px 22px;
    background: var(--glass);
    border: 1px solid var(--orange-border);
    border-left: 3px solid var(--orange);
    border-radius: 14px;
    cursor: pointer;
    transition: border-color 0.18s ease, transform 0.15s ease, background 0.18s ease;
  }
  .rt-tg-block:hover {
    border-color: var(--orange);
    background: rgba(255,106,26,0.08);
    transform: translateY(-1px);
  }
  .rt-tg-title {
    display: block;
    width: 100%;
    margin: 0 0 4px;
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--orange);
  }
  .rt-tg-sub {
    display: block;
    width: 100%;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: var(--white-dim);
  }
  input.rt-tg-title, input.rt-tg-sub {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    outline: none;
    background: transparent;
    box-sizing: border-box;
    cursor: text;
  }
  .rt-tg-title::placeholder, .rt-tg-sub::placeholder { color: var(--white-faint); opacity: 0.6; text-transform: none; letter-spacing: normal; }
  p.rt-tg-sub:empty { display: none; }

  /* ---- отдельный блок "Цитата": похож по структуре на тг-блок, но не ссылка —
     не кликабелен, без hover-эффекта перехода, оформление нейтральное (не оранжевое) ---- */
  .rt-quote-block {
    display: block;
    margin: 22px 0;
    padding: 18px 22px;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-left: 3px solid var(--white-faint);
    border-radius: 14px;
  }
  .rt-quote-text {
    display: block;
    width: 100%;
    margin: 0 0 8px;
    font-style: italic;
    font-size: 16px;
    line-height: 1.6;
    color: var(--white);
  }
  textarea.rt-quote-text {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    outline: none;
    background: transparent;
    box-sizing: border-box;
    resize: none;
    overflow: hidden;
    font-family: inherit;
    cursor: text;
  }
  .rt-quote-text::placeholder { color: var(--white-faint); opacity: 0.6; font-style: normal; }
  .rt-quote-author {
    display: block;
    width: 100%;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    color: var(--white-faint);
  }
  .rt-quote-author::before { content: '— '; }
  p.rt-quote-author:empty { display: none; }
  input.rt-quote-author {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    outline: none;
    background: transparent;
    box-sizing: border-box;
    cursor: text;
  }
  .rt-quote-author::placeholder { color: var(--white-faint); opacity: 0.6; }

  .rt-photo-zoom-btn {
    position: absolute; top: 8px; right: 8px; width: 30px; height: 30px;
    border-radius: 8px; border: 1px solid var(--glass-border);
    background: rgba(10,10,11,0.65); color: #fff; font-size: 13px;
    cursor: pointer; opacity: 0; transition: opacity 0.15s ease; z-index: 3;
  }
  .rt-editor .rt-photo-media:hover .rt-photo-zoom-btn { opacity: 1; }
  .rich-text .rt-photo-zoom-btn { display: none; }

  /* активная карусель (выбрана кликом) — следующее вставленное/вставленное-из-буфера
     фото уйдёт в неё как ещё один слайд, а не создаст отдельную новую карусель */
  .rt-editor .rt-photo-group { outline: 2px solid transparent; outline-offset: 2px; transition: outline-color 0.15s ease; cursor: pointer; }
  .rt-editor .rt-photo-group.rt-group-active { outline-color: var(--orange); }

  .rt-photo-arrow {
    display: none; position: absolute; top: 50%; transform: translateY(-50%);
    width: 28px; height: 28px; border-radius: 50%;
    border: 1px solid var(--glass-border); background: rgba(10,10,11,0.35);
    color: rgba(255,255,255,0.55); font-size: 16px; line-height: 1;
    cursor: pointer; opacity: 0.45;
    transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease;
    z-index: 3;
  }
  .rt-photo-group.rt-multi .rt-photo-arrow { display: flex; align-items: center; justify-content: center; }
  .rt-photo-group.rt-multi:hover .rt-photo-arrow,
  .rt-photo-group.rt-multi .rt-photo-arrow:focus-visible { opacity: 0.9; background: rgba(10,10,11,0.55); color: #fff; }
  .rt-photo-arrow.prev { left: 8px; }
  .rt-photo-arrow.next { right: 8px; }
  #lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(5,5,6,0.94);
    z-index: 100;
    align-items: center;
    justify-content: center;
    touch-action: none;
    overscroll-behavior: contain;
  }
  #lightbox.open { display: flex; }
  .lb-stage {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .lb-stage img {
    max-width: 90vw;
    max-height: 90vh;
    user-select: none;
    -webkit-user-drag: none;
    transform-origin: center center;
    transition: transform 0.05s linear;
  }
  .lb-btn {
    position: fixed;
    background: rgba(255,255,255,0.08);
    border: 1px solid var(--glass-border);
    color: var(--white);
    border-radius: 50%;
    width: 44px; height: 44px;
    font-size: 20px;
    cursor: pointer;
    z-index: 101;
    display: flex; align-items: center; justify-content: center;
  }
  .lb-btn:hover { background: rgba(255,106,26,0.3); border-color: var(--orange-border); }
  .lb-close { top: 18px; right: 18px; }
  .lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
  .lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
  .lb-hint {
    position: fixed;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Montserrat', sans-serif;
    font-size: 10.5px;
    color: var(--white-faint);
    letter-spacing: 0.04em;
    z-index: 101;
  }

  
/* --- поправки под светлую тему --- */
.news-ui .rt-toolbar button{background:#fff;border-color:var(--glass-border);color:var(--white)}
.news-ui .rt-toolbar button:hover{border-color:var(--cyan)}
.news-ui .rt-toolbar button.rt-swatch{width:20px;height:20px;border-radius:50%;padding:0}
.news-ui .rt-toolbar button:not(.rt-swatch){min-width:32px;width:auto;padding:0 8px}
.news-ui .compose-toolbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.news-ui .rt-editor,.news-ui .compose-editor{font-family:inherit;font-size:clamp(15px,1.3vw,18px);line-height:1.7;color:var(--ink);font-weight:500}
.news-ui .compose-editor{min-height:50vh;outline:none}
.news-ui .compose-editor:empty:before{content:'Текст поста…';color:var(--faint)}
.news-ui .rt-photo-group{background:var(--gray-1)}
.news-ui .rt-photo-dot{background:rgba(0,0,0,.25)}
.news-ui .rt-photo-dot.active{background:var(--cyan)}
.news-ui .rt-photo-arrow{background:rgba(255,255,255,.7);color:#000;border-color:var(--glass-border)}
.news-ui .rt-photo-zoom-btn{background:rgba(255,255,255,.8);color:#000}
.news-ui .rt-tg-block:hover{background:rgba(0,178,227,.07)}
.news-ui .rt-tg-title{color:var(--cyan)}
.pq-overlay{background:rgba(0,0,0,.5)}
.pq-box{background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.pq-toast{background:#fff;color:#000}
.news-ui .stats-tab{background:#fff;color:var(--ink)}
.news-ui .stats-row:hover,.news-ui .stats-row:focus{background:rgba(0,178,227,.07)}
#lightbox{--white:#fff;--white-faint:rgba(255,255,255,.6);--glass-border:rgba(255,255,255,.25);background:rgba(5,5,6,.94)}
#lightbox .lb-btn{background:rgba(255,255,255,.1);color:#fff}
.news-ui .autosave-status.ok{color:#1b8a3d}
.news-ui .autosave-status.err{color:var(--danger)}

/* --- страницы новостей --- */
.news-ui main{max-width:860px}
.news-admin-links{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.news-list{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.news-card{display:flex;flex-direction:column;gap:4px;padding:16px 20px;border:3px solid var(--cyan);border-radius:20px;text-decoration:none;background:#fff;transition:box-shadow .15s}
.news-card:hover{box-shadow:0 0 0 4px rgba(0,178,227,.2)}
.news-date{font-size:13px;font-weight:700;color:var(--cyan);margin:0}
.news-title{font-size:clamp(17px,1.6vw,22px);font-weight:800;line-height:1.25}
.news-sub{font-size:14px;font-weight:500;color:var(--mut);line-height:1.4}
.news-h1{margin:6px 0 0;font-size:clamp(26px,3.4vw,40px);font-weight:800;line-height:1.12;overflow-wrap:anywhere}
.news-lead{margin:10px 0 0;font-size:clamp(17px,1.8vw,22px);font-weight:700;color:var(--mut);line-height:1.35}
.news-body{margin-top:24px;font-size:clamp(15px,1.3vw,18px);font-weight:500;line-height:1.75;color:var(--ink);overflow-wrap:anywhere}
.news-body h2{font-size:clamp(20px,2.2vw,26px);font-weight:800;margin:26px 0 10px}
.news-body h3{font-size:clamp(17px,1.8vw,21px);font-weight:800;margin:20px 0 8px}
.news-body a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.news-body img.inline-img{max-width:100%;border-radius:14px;display:block;margin:14px 0}
.news-article{padding-bottom:20px}
.news-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:10px 14px;border:2px solid var(--change);border-radius:12px;background:rgba(217,83,30,.05);font-size:13px;font-weight:500}
.news-err{color:var(--danger);font-weight:700}
.compose-topbar{position:sticky;top:0;z-index:41;display:flex;align-items:center;gap:12px;padding:8px 0;background:rgba(255,255,255,.96)}
.news-ui .compose-title{font-size:clamp(24px,3.2vw,36px);font-weight:800;border-bottom:2px dotted #c9d3d8;margin:6px 0 8px}
.news-ui .compose-title:focus{border-bottom-color:var(--cyan)}
.compose-subtitle{display:block;width:100%;border:0;border-bottom:2px dotted #c9d3d8;outline:none;background:none;font:inherit;font-weight:700;font-size:clamp(16px,1.8vw,21px);color:var(--mut);padding:4px 0;margin:0 0 16px}
.compose-subtitle:focus{border-bottom-color:var(--cyan)}

/* --- лента на главной --- */
.lnews-head{flex:none;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.lnews-title{font-size:clamp(14px,min(1.3vw,2.4vh),19px);font-weight:800}
.lnews-more,.lnews-admin a{font-size:12px;font-weight:700;color:var(--cyan);text-decoration:none}
.lnews-more:hover,.lnews-admin a:hover{text-decoration:underline}
.lnews-admin{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px;flex:none}
.news-item{display:block;text-decoration:none;color:inherit}
.news-item .news-date{display:block;font-size:clamp(11px,min(.9vw,1.8vh),13px)}
.news-item .news-t{display:block;font-size:clamp(13px,min(1.15vw,2.2vh),17px);font-weight:800;line-height:1.25;margin-top:2px}
.news-item .news-s{display:block;font-size:clamp(11px,min(.95vw,1.9vh),14px);font-weight:500;color:var(--mut);line-height:1.35;margin-top:3px}
.news-item:hover .news-t{text-decoration:underline;text-decoration-color:var(--cyan);text-underline-offset:3px}

.pq-box{max-width:440px;width:100%;color:#000}
.pq-opt{font-family:inherit}
.news-ui .top-links{margin-bottom:10px}

/* --- лента на главной (колонку и её ширину задаёт style.css) --- */
.news-feed{display:flex;flex-direction:column;gap:clamp(12px,2.2vh,22px)}
.news-feed:empty{display:block}
.news-feed:empty::before{content:"Новостей пока нет"}


/* ---------- закреплённые новости ---------- */
.news-pin{display:inline-flex;align-items:center;gap:5px;margin:0 0 2px;font-size:12px;font-weight:800;color:var(--cyan)}
.news-pin .pin-ic{flex:none;transform:rotate(30deg)}
.news-row{position:relative}
.news-card.pinned{background:rgba(0,178,227,.06)}
.pin-form{position:absolute;top:10px;right:12px;margin:0}
.pin-btn{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:2px solid #dbe6ea;border-radius:50%;background:#fff;color:#a5a5a5;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.pin-btn .pin-ic{width:16px;height:16px;transform:rotate(30deg)}
.pin-btn:hover,.pin-btn:focus-visible{color:var(--cyan);border-color:var(--cyan);outline:none}
.pin-btn.on{color:#fff;background:var(--cyan);border-color:var(--cyan)}
.btn .pin-ic{width:14px;height:14px;transform:rotate(30deg)}
.compose-pin{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:700;cursor:pointer}
.compose-pin input{width:18px;height:18px;margin:0;accent-color:var(--cyan)}
.compose-pin .pin-ic{color:var(--cyan);transform:rotate(30deg)}
.news-article > .news-pin{margin-bottom:6px}
