/* ============================================================================
   Novelpia homepage styles — портировано из new_main2023.css (точь-в-точь).
   Десктоп — базовые значения; мобильные — в @media (max-width: 767px).
   Классы префиксованы np- чтобы не конфликтовать с Tailwind/globals.
   ============================================================================ */

.np-block { max-width: 1280px; margin: 0 auto; position: relative; padding: 0 16px; }

/* Высота верхнего баннера — управляется из админки через CSS-переменные
   (HomeBanner передаёт --bh-*). Без переменных = исторические 320/460/600. */
.home-banner-slides { height: var(--bh-mobile, 320px); }
@media (min-width: 640px)  { .home-banner-slides { height: var(--bh-tablet, 460px); } }
@media (min-width: 1024px) { .home-banner-slides { height: var(--bh-desktop, 600px); } }

/* Фон-карточка тайтла (в коллекциях / выборе редакции / отзывах) */
.np-card { background: #F4F5F8; border: 1px solid #EAECF2; border-radius: 8px; }

/* ── block-head ── */
.np-block-head { margin-bottom: 20px; }
.np-block-title { font-size: 32px; font-weight: 600; color: #000; line-height: 1.2; }
.np-block-subline { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; }
.np-block-sub { color: #888; font-size: 14px; }
.np-btn-more { color: #2B6FE6; cursor: pointer; font-size: 15px; white-space: nowrap; }

/* ── nov-tit / nov-writer / nov-tag ── */
.np-nov-tit {
  font-size: 16px; font-weight: 600; color: #000; margin-bottom: 5px;
  overflow: hidden; text-overflow: ellipsis; white-space: normal;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; word-break: keep-all;
}
.np-nov-writer { color: #888; font-size: 14px; margin-bottom: 5px; }
.np-nov-tag {
  color: #2B6FE6; font-size: 12px;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis; word-wrap: break-word;
}
.np-nov-tag span::before {
  content: ''; display: inline-block; width: 3px; height: 3px;
  background: #2B6FE6; margin: -1px 5px 0; border-radius: 50%; vertical-align: middle;
}
.np-nov-tag span:first-child::before { display: none; }
.np-nov-note {
  color: #000; font-size: 16px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis; word-break: keep-all;
}

/* ── Меню-сервисы (service-menu-v3) ── */
.np-service { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-evenly; align-items: center; padding: 0 10px; }
.np-menu-box { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; cursor: pointer; text-align: center; position: relative; }
.np-menu-icon { width: 50px; height: 50px; border-radius: 17px; background: #EFF2F8; display: flex; justify-content: center; align-items: center; }
.np-menu-icon img, .np-menu-icon svg { width: 22px; height: 22px; }
.np-menu-txt { font-size: 12px; color: #000; font-weight: 600; }

/* ── Рейтинг (인기 작품) ── */
.np-rank-switch { border-radius: 50px; height: 46px; background: #EFF2F8; display: inline-flex; align-items: center; padding: 4px; }
.np-rank-switch button { font-size: 14px; color: #666; width: 72px; height: 38px; border-radius: 50px; background: transparent; }
.np-rank-switch button.active { color: #fff; background: #000; font-weight: 600; }

.np-genre-tabs { display: flex; gap: 10px; margin: 25px 0 40px; flex-wrap: wrap; }
.np-genre-tabs a, .np-genre-tabs button {
  display: flex; align-items: center; justify-content: center; height: 44px;
  border: 1px solid #ddd; border-radius: 3px; padding: 0 15px; cursor: pointer;
  color: #000; font-weight: 600; font-size: 14px; white-space: nowrap; background: #fff;
}
.np-genre-tabs a.active, .np-genre-tabs button.active { background: #000; border-color: #000; color: #fff; }

.np-rank-wrapper {
  max-width: 1200px; margin: 0 auto; display: grid;
  grid-auto-flow: column; grid-template-rows: repeat(3, 1fr); grid-gap: 20px 60px;
}
.np-rank-box { display: flex; gap: 20px; align-items: center; cursor: pointer; }
.np-rank-cover { position: relative; flex-shrink: 0; }
.np-rank-cover img { width: 80px; height: 120px; border-radius: 3px; object-fit: cover; }
.np-rank-info { display: flex; gap: 10px; min-width: 0; }
.np-rank-num {
  font-size: 24px; line-height: 24px; font-weight: 600; color: #000;
  font-family: roboto, -apple-system, BlinkMacSystemFont, 'Malgun Gothic', helvetica, sans-serif; margin-top: -1px;
}

/* ── PD 추천픽 ── */
.np-pd-wrapper { display: flex; gap: 40px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.np-pd-wrapper::-webkit-scrollbar { display: none; }
.np-pd-box {
  border-radius: 3px; background: #F8F8F8; padding: 30px 25px;
  display: flex; align-items: flex-start; gap: 25px; cursor: pointer;
  width: calc(50% - 70px); flex-shrink: 0;
}
.np-pd-cover { width: 120px; height: 180px; flex-shrink: 0; border-radius: 5px; overflow: hidden; background: #EFF2F8; box-shadow: 0 0 0 1px rgba(0,0,0,.07); }
.np-pd-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-pd-info { padding-top: 10px; min-width: 0; }
.np-pd-info .np-nov-tit { font-size: 18px; }
.np-pd-info .np-nov-writer { font-size: 16px; }
.np-pd-info .np-nov-tag { margin-bottom: 20px; font-size: 16px; }

/* ── 밀리언 / курация (сетка обложек) ── */
.np-cr-wrapper { display: grid; grid-template-columns: repeat(7, calc((100% - 180px) / 7)); grid-gap: 30px; }
.np-cr-box { cursor: pointer; }
.np-cr-cover { position: relative; margin-bottom: 15px; }
.np-cr-cover img { width: 100%; border-radius: 5px; object-fit: cover; }
.np-cr-box .np-nov-tit { margin-bottom: 2px; }
.np-cr-box .np-nov-writer { margin-bottom: 0; }

/* ── 노벨PICK 모아보기 (коллекции theme-box) ── */
.np-theme-wrapper { display: flex; gap: 45px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.np-theme-wrapper::-webkit-scrollbar { display: none; }
.np-theme-box { display: flex; gap: 20px; flex-direction: column; width: 370px; flex-shrink: 0; }
.np-theme-banner img { width: 100%; border-radius: 5px; display: block; }
.np-theme-row { display: flex; gap: 25px; cursor: pointer; }
/* Обложка новеллы в списке коллекции — жёстко фиксированный бокс 80×120,
   не сжимается во flex, тонкая рамка даёт край светлым обложкам. */
.np-theme-cover { width: 80px; height: 120px; flex-shrink: 0; border-radius: 3px; overflow: hidden; background: #EFF2F8; box-shadow: 0 0 0 1px rgba(0,0,0,.07); }
.np-theme-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-theme-info { padding-top: 15px; min-width: 0; }
.np-theme-info .np-nov-tag { font-size: 16px; }
.np-theme-info .np-nov-writer { margin-bottom: 15px; }

/* ── Кнопки страницы новеллы (epnew) ── */
.np-read-btn {
  height: 44px; border-radius: 3px; display: inline-flex; align-items: center; justify-content: center;
  gap: 7px; font-weight: 600; font-size: 14px; color: #fff; padding: 0 22px; min-width: 180px; transition: filter .15s;
}
.np-read-btn:hover { filter: brightness(1.08); }
.np-read-first { background: #333; }
.np-read-run { background: #7632FF; }

/* ── Отзывы (우수 리뷰) ── */
.np-review-wrapper { display: flex; gap: 40px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.np-review-wrapper::-webkit-scrollbar { display: none; }
.np-review-box { display: flex; gap: 25px; cursor: pointer; width: calc(50% - 20px); flex-shrink: 0; background: #F8F8F8; border-radius: 3px; padding: 30px 25px; box-sizing: border-box; }
.np-review-cover { flex-shrink: 0; }
.np-review-cover img { width: 120px; height: 180px; border-radius: 5px; object-fit: cover; }
.np-review-info { padding-top: 15px; min-width: 0; }
.np-review-info .np-nov-tit { font-size: 18px; }
.np-review-user { display: flex; align-items: center; gap: 8px; margin: 8px 0 20px; }
.np-review-user img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: #EFF2F8; }
.np-review-user b { font-size: 16px; color: #999; font-weight: 500; }
.np-review-txt { font-size: 16px; color: #000; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }

/* ── Отзывы на странице новеллы (review-box, после описания) ── */
.np-nreview-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.np-nreview-title { font-size: 18px; font-weight: 700; color: #000; }
.np-btn-review-write { background: #000; color: #fff; border-radius: 30px; height: 34px; padding: 0 18px; border: none; cursor: pointer; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.np-nreview-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.np-nreview-box { background: #F8F8F8; border: 1px solid #EAECF2; border-radius: 5px; padding: 16px 20px; cursor: pointer; }
.np-nreview-box .np-review-title { margin-bottom: 6px; }
.np-nreview-none { grid-column: 1 / -1; text-align: center; color: #888; padding: 40px 0; }

/* ============================================================================
   Каталог (top100 / list) — top.html
   ============================================================================ */
.np-cat { max-width: 1280px; margin: 0 auto; padding: 0 16px; }

/* Табы режимов/сортировки — активная пилюля чёрная */
.np-cat-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.np-cat-tabs a {
  display: inline-flex; align-items: center; height: 44px; padding: 0 16px;
  border: 1px solid hsl(var(--border)); border-radius: 10px; color: hsl(var(--foreground)); font-weight: 600; font-size: 14px;
  white-space: nowrap; background: hsl(var(--card));
}
.np-cat-tabs a.active { background: hsl(var(--primary)); border-color: transparent; color: hsl(var(--primary-foreground)); }

/* Лента жанров — на десктопе переносится в 2 ряда, на мобиле скроллится */
.np-genre-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-bottom: 1px solid #E6E6E6; padding: 11px 0; }
.np-genre-bar a { flex-shrink: 0; display: inline-flex; align-items: center; min-height: 40px; font-size: 13px; padding: 8px 14px; color: hsl(var(--muted-foreground)); border-radius: 8px; white-space: nowrap; transition: background .15s, color .15s; }
.np-genre-bar a:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.np-genre-bar a.active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.np-genre-bar a.active:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
@media (max-width: 640px) {
  .np-genre-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .np-genre-bar::-webkit-scrollbar { display: none; }
}
/* Подпись ряда фильтров (Жанры / Теги) */
.np-filter-label { flex-shrink: 0; align-self: center; margin-right: 8px; font-size: 12px; font-weight: 700; color: #aaa; text-transform: uppercase; letter-spacing: .04em; }
/* Теги — синие, чтобы отличались от жанров */
.np-tag-bar a { color: hsl(var(--muted-foreground)); }
.np-tag-bar a:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.np-tag-bar a.active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.np-tag-bar a.active:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

/* Цветные бейджи под названием */
.np-b { display: inline-flex; align-items: center; height: 18px; padding: 1px 6px; border-radius: 3px; font-size: 11px; color: #fff; text-shadow: .5px .5px #000; margin-right: 4px; }
.np-b.plus { background: #5232dd; } .np-b.up { background: #de2884; } .np-b.mono { background: #0d60d1; }
.np-b.chal { background: #1EA535; } .np-b.adult { background: #ea4a4a; } .np-b.age15 { background: #1a78b5; }

/* Пагинация — плоские квадраты */
.np-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 24px auto 0; }
.np-pager a, .np-pager span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px;
  border: 1px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); font-size: 13px; border-radius: 8px; background: hsl(var(--card));
}
.np-pager a:hover { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.np-pager .active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: transparent; }
.np-pager .disabled { opacity: .4; pointer-events: none; }

/* Обложка карточки novelpia: срез правого-верхнего угла + тень */
.np-cover-shape { border-radius: 0 22px 0 0; box-shadow: 2px 0 3px rgba(0,0,0,.18); }

/* ============================================================================
   Шапка страницы новеллы (epnew-wrapper) — novel.html
   ============================================================================ */
.epnew-wrapper { max-width: 1200px; margin: 0 auto; display: flex; align-items: flex-start; gap: 50px; font-size: 16px; }
.epnew-cover-box { flex-shrink: 0; }
.epnew-cover-box img,
.epnew-cover-box .epnew-cover-ph { width: 230px; height: 345px; border-radius: 10px; object-fit: cover; display: block; }
.epnew-cover-box .epnew-cover-ph { display: flex; align-items: center; justify-content: center; background: #F1F1F4; color: #B5B5C2; }
.epnew-info { position: relative; width: 100%; padding-top: 10px; min-width: 0; }
.epnew-title { font-size: 30px; font-weight: 600; color: #000; line-height: 1.25; margin: 0 0 10px; width: calc(100% - 180px); }
.epnew-line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 4px; margin-bottom: 9px; }
.epnew-cat { font-weight: 600; color: #000; margin-right: 8px; }
.epnew-writer-name { color: hsl(var(--primary)); font-weight: 600; }
.epnew-writer-name:hover { text-decoration: underline; }
.epnew-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 6px; color: #fff; font-weight: 600; font-size: 12px; border-radius: 3px; text-shadow: .5px .5px rgba(0,0,0,.4); }
.epnew-badge.plus { background: #5232dd; } .epnew-badge.mono { background: #0d60d1; } .epnew-badge.adult { background: #ea4a4a; }
.epnew-count { color: #999; margin-right: 4px; }
.epnew-count b { color: #000; font-weight: 600; }

/* Круглые иконки в правом-верхнем углу (поделиться/избранное/уведомления) */
.epnew-icons { position: absolute; top: 7px; right: 0; display: flex; align-items: flex-start; gap: 12px; }
.epnew-icon { display: flex; flex-direction: column; align-items: center; cursor: pointer; color: #000; }
.epnew-icon .epnew-icon-w { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #000; display: flex; align-items: center; justify-content: center; transition: all .15s; }
.epnew-icon .epnew-icon-txt { font-size: 12px; margin-top: 5px; text-align: center; }
.epnew-icon:hover .epnew-icon-w { border-color: #7632FF; }
.epnew-icon.active .epnew-icon-w { border-color: #7632FF; background: #F6F2FF; color: #7632FF; }
.epnew-icon.active .epnew-icon-txt { color: #7632FF; }

/* Теги-чипы */
.epnew-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 20px; }
.epnew-tag { background: #f6f6f6; color: #000; font-size: 13px; border-radius: 3px; padding: 4px 7px; transition: background .15s; }
.epnew-tag:hover { background: #ececec; }
.epnew-tag.more { color: hsl(var(--primary)); font-weight: 600; background: hsl(var(--primary) / 0.10); }

/* Серый инфо-бокс со статистикой и синопсисом */
.epnew-graybox { background: #F6F6F6; border: 1px solid #EAECF2; padding: 20px 30px; border-radius: 5px; margin-top: 24px; }
.epnew-graybox-stats { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid #EAECF2; font-size: 14px; }
.epnew-graybox-stats .st { display: inline-flex; align-items: center; gap: 6px; }
.epnew-graybox-stats .st b { color: #000; font-weight: 600; }
.epnew-graybox-stats .st span { color: #999; }
.epnew-synopsis { line-height: 26px; color: #222; font-size: 15px; }
.epnew-synopsis.clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* Обложка над баннером — лёгкая тень для отрыва от фона */
.epnew-cover-box img { box-shadow: 0 6px 20px rgba(0,0,0,.18); }

/* Кнопки CTA */
.epnew-btns { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 24px; }

/* ── Sticky-табы навигации по секциям (Рецензии/Главы/Обсуждение) ── */
.np-tabbar { position: sticky; top: 56px; z-index: 20; display: flex; background: #fff; border-top: 1px solid #eee; border-bottom: 1px solid #ddd; }
.np-tabbar a { flex: 1; text-align: center; height: 50px; line-height: 50px; font-size: 14px; font-weight: 500; color: #777; border-bottom: 2px solid transparent; transition: color .15s; cursor: pointer; }
.np-tabbar a:hover { color: #000; }
.np-tabbar a.active { color: #000; font-weight: 700; border-bottom-color: #000; }

/* ── Слайдер рецензий (горизонтальный) ── */
.np-nreview-slider { display: flex; gap: 15px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.np-nreview-slider::-webkit-scrollbar { display: none; }
.np-nreview-slider > * { flex: 0 0 min(88%, 360px); scroll-snap-align: start; }

/* ── Таблица глав (notice_table стиль novel.html) ── */
.ep-vol { margin-bottom: 14px; }
.ep-vol-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 4px; cursor: pointer; border-bottom: 2px solid #111; }
.ep-vol-head:hover { background: #fafafa; }
.ep-vol-title { font-weight: 700; font-size: 14px; color: #111; }
.ep-vol-count { font-size: 12px; color: #999; display: inline-flex; align-items: center; gap: 8px; }
.ep-table { border-top: 2px solid #111; }
.ep-table.sub { border-top: none; }
.ep-row { display: flex; align-items: stretch; border-bottom: 1px solid #EFEFEF; text-decoration: none; }
.ep-row:hover { background: #fafafa; }
.ep-row.read { background: #FBFAFF; }
.ep-row-marker { width: 5px; flex-shrink: 0; background: #e9e9ee; margin-right: 13px; }
.ep-row.read .ep-row-marker { background: #8463f5; }
.ep-row-main { flex: 1; min-width: 0; padding: 13px 0; }
.ep-row-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ep-title-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: #222; }
.ep-row.read .ep-title-text { color: #6b4fd0; font-weight: 600; }
.ep-row:hover .ep-title-text { color: hsl(var(--primary)); }
.ep-num { display: inline-flex; align-items: center; height: 19px; padding: 0 7px; border-radius: 10px; background: #eee; border: 1px solid #fff; font-size: 11px; font-weight: 700; color: #444; flex-shrink: 0; }
.ep-lock { display: inline-flex; align-items: center; gap: 3px; height: 19px; padding: 0 7px; border-radius: 3px; background: #FFF3E6; color: #C15C00; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.ep-row-date { flex-shrink: 0; align-self: center; padding: 0 4px 0 12px; font-size: 12px; color: #999; white-space: nowrap; }
@media (max-width: 640px) { .ep-row-date { display: none; } }

@media (max-width: 768px) {
  .epnew-wrapper { flex-direction: column; align-items: center; gap: 20px; text-align: center; }
  .epnew-cover-box img, .epnew-cover-box .epnew-cover-ph { width: 170px; height: 255px; }
  .epnew-title { font-size: 22px; width: 100%; }
  .epnew-line { justify-content: center; }
  .epnew-icons { position: static; justify-content: center; margin-top: 14px; }
  .epnew-tags { justify-content: center; }
  .epnew-btns { justify-content: center; }
}

/* ── Мобильная адаптация ── */
@media (max-width: 767px) {
  .np-review-box { width: 90vw; gap: 12px; }
  .np-review-cover img { width: 70px; height: 105px; }
  .np-review-title { font-size: 14px; }
  .np-nreview-list { grid-template-columns: 1fr; }
  .np-block-title { font-size: 17px; }
  .np-block-sub, .np-btn-more { font-size: 12px; }
  .np-nov-tit { font-size: 13px; }
  .np-nov-writer, .np-nov-tag { font-size: 12px; }
  .np-menu-icon { width: 46px; height: 46px; border-radius: 16px; }
  .np-menu-icon img, .np-menu-icon svg { width: 24px; height: 24px; }
  .np-menu-txt { width: 62px; font-size: clamp(10px, 3.6vw, 11px); }
  .np-rank-switch { height: 28px; }
  .np-rank-switch button { width: 50px; height: 24px; font-size: 11px; }
  .np-rank-num { font-size: 18px; line-height: 18px; }
  .np-rank-cover img { width: 60px; height: 90px; }
  .np-theme-cover { width: 60px; height: 90px; }
  .np-rank-wrapper { grid-gap: 10px 15px; overflow-x: auto; }
  .np-rank-box { width: 80vw; gap: 10px; }
  .np-genre-tabs { gap: 5px; margin: 10px 0; overflow-x: auto; flex-wrap: nowrap; }
  .np-genre-tabs a, .np-genre-tabs button { height: 30px; font-size: 11px; padding: 0 10px; }
  .np-pd-box { width: 80vw; padding: 15px 10px; gap: 15px; }
  .np-pd-cover { width: 90px; height: 135px; }
  .np-pd-info .np-nov-tit { font-size: 15px; }
  .np-theme-box { width: 80vw; }
  .np-theme-row { gap: 15px; }
  .np-cr-wrapper { grid-template-columns: repeat(3, 1fr); gap: 10px; }
}

/* ============================================================================
   Блог / нотисборд (notice board) — blog.html / notice.css
   ============================================================================ */
.notice-wrapper { max-width: 1200px; margin: 0 auto; padding: 20px 16px 80px; color: #000; }
.notice-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.notice-title { font-size: 30px; font-weight: 600; color: #000; }
.notice-search { display: flex; align-items: center; justify-content: space-between; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 390px; background: #fff; }
.notice-search input { width: 100%; height: 50px; line-height: 50px; border: none; outline: none; background: none; font-size: 15px; padding: 0 4px 0 16px; }
.notice-search button { width: 52px; height: 50px; background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #999; }

/* Ряд фильтров-категорий (наше расширение — в референсе фильтров нет) */
.notice-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.notice-filters a { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border: 1px solid #e3e3e8; border-radius: 30px; font-size: 13px; font-weight: 500; color: #666; background: #fff; transition: all .15s; }
.notice-filters a:hover { border-color: #bbb; color: #000; }
.notice-filters a.active { background: #000; border-color: #000; color: #fff; }

/* Список строк */
.notice-list-wrapper { border-top: 2px solid #000; }
.notice-board ul { list-style: none; margin: 0; padding: 0; }
.notice-board li { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid #ddd; }
.notice-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; color: #000; font-size: 16px; transition: background .12s; }
.notice-link:hover { background: #fafafa; }
.notice-link .notice-left { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tag-attention { flex-shrink: 0; background: #EBF3FF; color: #0052CF; text-align: center; padding: 0 10px; height: 30px; line-height: 30px; font-size: 14px; font-weight: 600; border-radius: 3px; display: inline-flex; align-items: center; gap: 4px; }
.tag-attention.job { background: #FFF3E6; color: #C15C00; }
.notice-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notice-text.attention { font-weight: 600; }
.notice-date { flex-shrink: 0; text-align: right; color: #999; font-size: 14px; }

/* Пагинация board */
.notice-pagination { display: flex; justify-content: center; align-items: center; margin-top: 30px; }
.notice-pagination a, .notice-pagination span { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; margin: 0 10px; font-size: 16px; color: #000; min-width: 20px; }
.notice-pagination a.page-active { color: #2B6FE6; font-weight: 600; }
.notice-pagination .page-prev { margin-right: 30px; }
.notice-pagination .page-next { margin-left: 30px; }
.notice-pagination .disable { opacity: .2; pointer-events: none; }

/* Просмотр записи */
#view-wrapper { max-width: 1200px; margin: 0 auto; padding: 0 16px; color: #000; }
#view-board-id { font-size: 30px; font-weight: 700; line-height: 1.1; margin: 50px 0 33px; }
#view-body { border-top: 2px solid #000; }
#view-header { margin: 40px 4px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
#view-header .view-head-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
#view-fixed-badge { flex-shrink: 0; height: 30px; padding: 0 12px; border-radius: 3px; background: #EBF3FF; color: #0052CF; font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
#view-title { font-size: 26px; font-weight: 700; line-height: 1.15; color: #000; }
#view-reg-dt { font-size: 15px; font-weight: 400; color: #999; flex-shrink: 0; white-space: nowrap; }
#view-content { padding: 50px 4px; border-top: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; font-size: 16px; line-height: 1.75; color: #222; }
#view-content img, #view-content iframe, #view-content video, #view-content div, #view-content table { max-width: 100% !important; }
#view-content img, #view-content iframe, #view-content video { height: auto; border-radius: 8px; }
#view-content p { margin: 0 0 1em; }
#view-content a { color: #2B6FE6; text-decoration: underline; }
#view-content h1, #view-content h2, #view-content h3 { font-weight: 700; margin: 1.4em 0 .6em; line-height: 1.3; }
#view-content h1 { font-size: 26px; } #view-content h2 { font-size: 22px; } #view-content h3 { font-size: 19px; }
#view-content ul, #view-content ol { padding-left: 1.4em; margin: 0 0 1em; }
#view-content blockquote { border-left: 3px solid #ddd; padding-left: 16px; color: #666; margin: 0 0 1em; }

/* prev/next */
#view-prev-next { display: flex; flex-direction: column; }
.view-pn-row { display: flex; align-items: center; gap: 30px; height: 72px; padding: 0 4px; border-bottom: 1px solid #DDDDDD; color: #000; }
.view-pn-text { font-size: 14px; line-height: 1.1; color: #666; flex-shrink: 0; width: 90px; }
.vertical-separator { height: 16px; border-left: 1px solid #EEEEEE; flex-shrink: 0; }
.view-pn-title { font-size: 16px; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.view-pn-title:hover { color: #2B6FE6; }
.view-pn-notitle { font-size: 16px; color: #999; }

/* Кнопка «Список» */
#view-button { display: flex; justify-content: center; margin: 50px 0; }
#btn-list { width: 240px; height: 64px; border-radius: 6px; font-size: 18px; font-weight: 700; background: #000; color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: background .15s; }
#btn-list:hover { background: #222; }

/* «Праздничные» промо-карточки в контенте — если автор не задал ширину */
#view-content .mc-wrap { margin: 24px 0; }

@media (max-width: 891px) {
  .notice-wrapper { padding: 20px 10px 50px; }
  .notice-title { display: none; }
  .notice-link { padding: 15px 10px; font-size: 14px; flex-direction: column; align-items: flex-start; gap: 4px; }
  .notice-date { font-size: 12px; }
  .tag-attention { height: 26px; line-height: 26px; padding: 0 7px; font-size: 12px; }
  #view-board-id { display: none; }
  #view-body { border-top: none; }
  #view-header { flex-direction: column; align-items: flex-start; margin: 20px 5px; }
  #view-title { font-size: 20px; line-height: 1.4; }
  #view-reg-dt { font-size: 12px; }
  #view-content { padding: 30px 10px; }
  .view-pn-row { gap: 15px; height: 56px; }
  .view-pn-text { width: 68px; }
  #btn-list { width: 100%; height: 50px; font-size: 14px; }
  #view-button { margin: 20px 10px 40px; }
}
