:root{
  /* Светлая тема — контентная область (main, карточки, футер) */
  --bg:#F6F4EF;
  --panel:#FFFFFF;
  --panel-2:#EFECE3;
  --line:#E1DDD0;
  --amber:#B8792A;
  --amber-dim:#8A6A38;
  --cyan:#17817A;
  --ink:#202124;
  --ink-dim:#63666D;
  --display:'Roboto', sans-serif;
  --body:'Roboto', sans-serif;
  --mono:'Roboto Mono', monospace;
  --sidebar-w:300px;
}
/* Тёмная тема контента — переключается атрибутом data-theme на <html> (см. .theme-toggle) */
:root[data-theme="dark"]{
  --bg:#0A0B0D;
  --panel:#131519;
  --panel-2:#1A1D22;
  --line:#262A30;
  --amber:#D9A44D;
  --amber-dim:#8A6A38;
  --cyan:#4FB8AE;
  --ink:#E8E4DA;
  --ink-dim:#8A93A3;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--ink); font-family:var(--body); line-height:1.6;}
a{color:inherit; text-decoration:none;}
::selection{background:var(--amber); color:#0A0B0D;}
img,svg{display:block; max-width:100%;}

/* ---------- Sidebar ---------- */
/* Сайдбар остаётся тёмным независимо от светлой темы контента: переопределяем
   те же токены локально в его области видимости — все правила ниже продолжают
   ссылаться на var(--ink)/var(--panel)/... и автоматически получают тёмные значения. */
.sidebar{
  --bg:#0A0B0D;
  --panel:#131519;
  --panel-2:#1A1D22;
  --line:#262A30;
  --amber:#D9A44D;
  --amber-dim:#8A6A38;
  --cyan:#4FB8AE;
  --ink:#E8E4DA;
  --ink-dim:#8A93A3;

  position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w);
  background:var(--panel); color:var(--ink); border-right:1px solid var(--line);
  padding:32px 26px; display:flex; flex-direction:column; gap:26px;
  overflow-y:auto; z-index:50;
}
.emblem{
  width:120px; height:120px; margin:0 auto;
  display:grid; place-items:center;
}
/* Рамка-заглушка только для fallback-иконки (пока не загружен реальный логотип) */
.emblem:has(svg){
  width:60px; height:60px; border:1px solid var(--amber-dim);
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.emblem svg{width:28px; height:28px;}
.emblem img{width:100%; height:100%; object-fit:contain;}
.brand-block h1{font-family:var(--display); font-size:1.05rem; font-weight:900; letter-spacing:.01em; margin-top:12px;}
.brand-block .sub{font-family:var(--mono); font-size:11px; color:var(--ink-dim); letter-spacing:.06em; margin-top:4px;}
.status-badge{
  display:flex; align-items:center; justify-content:center; gap:8px; width:fit-content; margin:14px auto 0;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cyan); border:1px solid rgba(79,184,174,.35); padding:6px 10px;
}
.status-dot{width:6px; height:6px; border-radius:50%; background:var(--cyan); box-shadow:0 0 6px var(--cyan); animation:pulse 2.2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}

.pillar-nav{display:flex; flex-direction:column; gap:4px;}
.pillar-nav a{
  font-family:var(--body); font-size:13.5px; font-weight:500; color:var(--ink-dim);
  padding:9px 8px; border-left:2px solid transparent; display:flex; align-items:center; gap:10px;
  transition:all .15s;
}
.pillar-nav a:hover, .pillar-nav a.active{color:var(--ink); border-left-color:var(--amber); background:rgba(217,164,77,.05);}
.pillar-nav a .ic{width:14px; text-align:center; color:var(--amber-dim); font-size:12px;}

.side-live{
  font-family:var(--mono); font-size:10.5px; color:var(--ink-dim);
  border-top:1px solid var(--line); padding-top:16px; display:flex; flex-direction:column; gap:6px; margin-top:auto;
}
.side-live .row{display:flex; justify-content:space-between;}
.side-live .row b{color:var(--ink); font-weight:500;}
.side-cta{
  font-family:var(--body); font-size:13px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  text-align:center; padding:12px; border:1px solid var(--amber-dim); color:var(--amber);
  transition:all .15s;
}
.side-cta:hover{background-color:var(--amber); color:#0A0B0D;}
.side-socials{display:flex; gap:14px; font-family:var(--mono); font-size:11px; color:var(--ink-dim);}
.side-socials a:hover{color:var(--amber);}

.theme-toggle{display:flex; border:1px solid var(--line);}
.theme-btn{
  flex:1; display:flex; align-items:center; justify-content:center;
  font-size:16px; line-height:1; color:var(--ink-dim); background:transparent; border:none;
  padding:10px 6px; cursor:pointer; transition:all .15s;
}
.theme-btn + .theme-btn{border-left:1px solid var(--line);}
.theme-btn:hover{color:var(--ink);}
.theme-btn.active{color:var(--amber); background:rgba(217,164,77,.08);}

/* ---------- Main ---------- */
main{margin-left:var(--sidebar-w); padding-bottom:90px;}
/* Звёздный фон уместен только в тёмной теме контента */
.stars{
  display:none;
  position:fixed; inset:0 0 0 var(--sidebar-w); z-index:0; pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 10% 20%, rgba(232,228,218,.4), transparent),
    radial-gradient(1px 1px at 70% 10%, rgba(232,228,218,.3), transparent),
    radial-gradient(1.5px 1.5px at 40% 60%, rgba(232,228,218,.45), transparent),
    radial-gradient(1px 1px at 85% 45%, rgba(232,228,218,.28), transparent),
    radial-gradient(1px 1px at 25% 80%, rgba(232,228,218,.3), transparent);
  background-repeat:repeat; background-size:560px 560px; opacity:.5;
}
:root[data-theme="dark"] .stars{display:block;}
section{position:relative; z-index:1; padding:84px 56px; max-width:1120px;}
.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--cyan); margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:16px; height:1px; background:var(--cyan);}
.eyebrow a{color:inherit;}
.eyebrow a:hover{color:var(--ink);}
.eyebrow .kind{font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan); border:1px solid var(--line); padding:3px 8px;}
.eyebrow .kind.prop{color:var(--amber);}
.sec-title{font-family:var(--display); font-weight:900; font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:16px; letter-spacing:-.01em;}
h1.sec-title{font-size:calc(clamp(1.6rem,3vw,2.1rem) - 1px);}
.single-post h1.sec-title{font-family:'Roboto Condensed', var(--display); font-weight:400;}

/* ---- Single post (боевой репорт / пропаганда) ---- */
#post, #wiki-article{padding-top:42px;}
.post-layout{display:grid; grid-template-columns:1fr 220px; gap:32px; align-items:start;}
.post-stats{
  border:1px solid var(--line); background:var(--panel); padding:20px;
  display:flex; flex-direction:column; gap:14px;
}
.post-stats .row{font-family:var(--mono); font-size:11px; display:flex; flex-direction:column; gap:2px;}
.post-stats .row span{color:var(--ink-dim); text-transform:uppercase; letter-spacing:.06em;}
.post-stats .row b{color:var(--ink); font-weight:500; font-size:13px;}
.post-stats .row b.isk{color:var(--amber);}
.post-thumb{margin-bottom:28px;}
.post-thumb img{width:100%; border:1px solid var(--line);}

/* Hero */
.hero{padding-top:72px;}
.hero-readout{font-family:var(--mono); font-size:11px; color:var(--ink-dim); display:flex; gap:22px; flex-wrap:wrap; margin-bottom:20px;}
.hero-readout b{color:var(--amber); font-weight:500;}
.hero h1{font-family:var(--display); font-weight:900; font-size:clamp(2rem,4vw,3.1rem); line-height:1.08; max-width:17ch; margin-bottom:18px;}
.hero h1 span{color:var(--amber);}
.hero p{color:var(--ink-dim); max-width:58ch; font-size:1.02rem; margin-bottom:36px;}

.btn{
  font-family:var(--body); font-size:13px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  padding:12px 22px; border:1px solid var(--amber-dim); background:transparent; color:var(--amber); display:inline-block;
  line-height:normal; cursor:pointer; transition:all .15s;
}
.btn:hover{background-color:var(--amber); color:#0A0B0D;}
.btn.ghost{color:var(--ink-dim); border-color:var(--line);}
.btn.ghost:hover{background-color:transparent; color:var(--ink); border-color:var(--ink-dim);}

/* Three pillars */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px;}
.pillar-card{background:var(--panel); padding:30px 26px; display:flex; flex-direction:column; gap:14px; transition:background .2s;}
.pillar-card:hover{background:var(--panel-2);}
.pillar-card .tag{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-dim);}
.pillar-card .picon{width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--line); color:var(--amber);}
.pillar-card h3{font-family:var(--display); font-weight:700; font-size:1.15rem;}
.pillar-card p{font-size:.88rem; color:var(--ink-dim); flex-grow:1;}
.pillar-card .go{font-family:var(--mono); font-size:11px; color:var(--cyan); letter-spacing:.05em; text-transform:uppercase;}
.pillar-card.locked .go{color:var(--ink-dim);}

/* Counters */
.counters{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); margin-top:60px;}
.counter{padding:20px 22px; border-right:1px solid var(--line);}
.counter:last-child{border-right:none;}
.counter .num{font-family:var(--mono); font-size:1.55rem; color:var(--ink); font-weight:600;}
.counter .lbl{font-family:var(--mono); font-size:10px; color:var(--ink-dim); letter-spacing:.06em; text-transform:uppercase; margin-top:6px;}

/* ---- WIKI section ---- */
.wiki-banner{
  display:flex; align-items:center; gap:14px; padding:14px 20px; border:1px solid rgba(217,164,77,.3);
  background:rgba(217,164,77,.05); margin-bottom:32px; font-family:var(--mono); font-size:12px; color:var(--amber);
}
.wiki-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.wiki-card{background:var(--bg); padding:26px; position:relative; overflow:hidden;}
.wiki-card .blur-content{filter:blur(3px); opacity:.5; user-select:none;}
.wiki-card .lock-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:rgba(10,11,13,.55);
}
.wiki-card .lock-icon{width:26px; height:26px; color:var(--amber-dim);}
.wiki-card .lock-txt{font-family:var(--mono); font-size:10.5px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.06em; text-align:center;}
.wiki-card h4{font-family:var(--display); font-weight:700; font-size:1rem; margin-bottom:8px;}
.wiki-card p{font-size:.85rem; color:var(--ink-dim);}
.wiki-cta{margin-top:28px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.wiki-cta p{font-size:.9rem; color:var(--ink-dim);}

/* ---- Профиль: карточки привязанных персонажей ---- */
/* Отдельные карточки в столбик, а не .wiki-grid (та рассчитана на 3 колонки превью
   разделов вики — с 1-2 персонажами оставляла пустые "фантомные" колонки справа).
   align-items:flex-start — карточки НЕ растягиваются на всю ширину контейнера
   (дефолтное поведение flex-column — align-items:stretch), а сидят по ширине
   своего контента, плюс max-width на самой карточке как потолок. */
.char-list{display:flex; flex-direction:column; align-items:flex-start; gap:16px;}
/* Аватар — фиксированные 140×140 через position:absolute, БЕЗ bottom:0/расчёта от
   высоты родителя: подгонка под высоту .char-body давала расхождения на практике
   (то ли aspect-ratio у img переопределял stretch, то ли auto/min-height считались
   не так, как ожидалось, — так и не удалось диагностировать вживую без браузера).
   Фиксированный размер убирает саму возможность такого рассинхрона. */
.char-card{position:relative; background:var(--panel); border:1px solid var(--line); overflow:hidden; padding:0 0 0 140px; min-height:140px; max-width:440px; width:100%;}
.char-avatar{position:absolute; top:0; left:0; width:140px; height:140px; object-fit:cover; display:block;}
.char-body{padding:20px; display:flex; flex-direction:column; justify-content:center; gap:6px; min-height:140px;}
.char-card h4{color:var(--ink); margin-bottom:0; font-family:var(--display); font-weight:700; font-size:1rem;}
.char-card p{font-size:.85rem; color:var(--ink-dim);}
.char-card .isk{font-family:var(--mono); font-size:.7rem; font-weight:400; color:var(--amber); text-transform:uppercase; letter-spacing:.04em;}
.char-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:8px;}
.char-actions form{display:inline-block; margin:0;}

/* ---- Blog / propaganda ---- */
.filters{display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap;}
.filter-btn{
  font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  padding:8px 14px; border:1px solid var(--line); color:var(--ink-dim); cursor:pointer; background:transparent; transition:all .15s;
}
.filter-btn:hover{color:var(--ink); border-color:var(--ink-dim);}
.filter-btn.active{color:var(--amber); border-color:var(--amber-dim); background:rgba(217,164,77,.06);}
.blog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.blog-card{background:var(--bg); padding:24px; transition:background .15s;}
.blog-card:hover{background:var(--panel);}
.blog-card .kind{font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan);}
.blog-card .kind.prop{color:var(--amber);}
.blog-card .date{font-family:var(--mono); font-size:10px; color:var(--ink-dim); margin-top:2px;}
.blog-card h4{font-family:'Roboto Condensed', var(--display); font-weight:400; font-size:1.02rem; margin:12px 0 8px;}
.blog-card p{font-size:.88rem; color:var(--ink-dim); margin-bottom:14px;}
.blog-card .meta{font-family:var(--mono); font-size:10.5px; color:var(--ink-dim); display:flex; justify-content:space-between;}
.blog-card .meta .isk{color:var(--amber);}

/* ---- Recruitment ---- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:50px;}
.step{background:var(--bg); padding:26px;}
.step .snum{font-family:var(--mono); font-size:11px; color:var(--amber-dim);}
.step h4{font-family:var(--display); font-weight:700; font-size:1.02rem; margin:10px 0 8px;}
.step p{font-size:.87rem; color:var(--ink-dim);}

.recruit-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.recruit-tier{background:var(--panel); padding:30px;}
.recruit-tier h3{font-family:var(--display); font-weight:700; font-size:1.15rem; margin-bottom:6px;}
.recruit-tier .price{font-family:var(--mono); font-size:10.5px; color:var(--ink-dim); margin-bottom:20px; text-transform:uppercase; letter-spacing:.05em;}
.checklist{list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:22px;}
.checklist li{display:flex; gap:10px; font-size:.88rem; color:var(--ink); align-items:flex-start;}
.checklist li::before{content:'▸'; color:var(--amber); flex-shrink:0;}

.style-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:50px;}
.style-card{background:var(--bg); padding:22px 20px;}
.style-card .idx{font-family:var(--mono); font-size:10px; color:var(--amber-dim); margin-bottom:10px;}
.style-card h4{font-family:var(--display); font-weight:700; font-size:.92rem; margin-bottom:6px;}
.style-card p{color:var(--ink-dim); font-size:.82rem;}

/* ---- Entry content (одиночная статья и index.php fallback) ---- */
.entry-content{color:var(--ink); font-size:1rem;}
.entry-content p{margin-bottom:1em;}
.entry-content h2, .entry-content h3{font-family:var(--display); font-weight:700; margin:1.3em 0 .5em;}
.entry-content a{color:var(--cyan); text-decoration:underline;}
.entry-content ul, .entry-content ol{margin:0 0 1em 1.2em;}
/* Обёртка картинки: WP-ядро само стилизует её как .wp-block-image{display:table} (нужно
   для центрирования подписи через display:table-caption) — table сжимается по контенту,
   поэтому картинка не заполняла всю колонку даже с width:100% на самом img. */
.entry-content .wp-block-image{display:block; width:100%; margin-bottom:1.5em;}
.entry-content img{width:100% !important; height:auto !important;}
.entry-content img.wd-zoomable{cursor:zoom-in;}

/* ---- Лайтбокс: картинка в статье в оригинальном размере ---- */
.wd-lightbox{
  position:fixed; inset:0; z-index:1000; display:none;
  align-items:center; justify-content:center;
  background:rgba(0,0,0,.85); cursor:zoom-out;
}
.wd-lightbox.open{display:flex;}
.wd-lightbox img{max-width:92vw; max-height:92vh; width:auto; height:auto; box-shadow:0 0 40px rgba(0,0,0,.6);}

footer{
  position:fixed; left:var(--sidebar-w); right:0; bottom:0; z-index:40;
  background:var(--bg); border-top:1px solid var(--line); padding:16px 56px;
}
footer .fine{font-family:var(--mono); font-size:10.5px; color:var(--ink-dim);}

/* ---- Доктрины: сетка карточек (3 колонки) ---- */
.doctrine-grid{display:grid; grid-template-columns:repeat(auto-fill, 250px); gap:25px; background:transparent;}
.doctrine-card-v2{background:var(--panel); border:1px solid var(--line); display:flex; flex-direction:column; transition:background .15s;}
.doctrine-card-v2:hover{background:var(--panel-2);}

.doctrine-card-image{position:relative; aspect-ratio:1/1; background:var(--bg); overflow:hidden;}
.doctrine-card-image img{width:100%; height:100%; object-fit:contain;}
.doctrine-card-image-placeholder{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:11px; color:var(--ink-dim); text-align:center; padding:0 20px;
}
.doctrine-status-badge{
  position:absolute; top:10px; right:10px; font-family:'Roboto Condensed', var(--mono); font-weight:300; font-size:11px; text-transform:uppercase;
  letter-spacing:.05em; padding:4px 9px; color:#fff;
}
.doctrine-status-badge.status-active{background:#2f9e44;}
.doctrine-status-badge.status-archive{background:var(--ink-dim);}

.doctrine-card-body{padding:20px; display:flex; flex-direction:column; gap:10px; flex:1;}
.doctrine-card-body h4{font-family:'Roboto Condensed', var(--display); font-weight:400; font-size:1.05rem;}
.doctrine-card-body h4 a{color:var(--ink);}
.doctrine-card-body h4 a:hover{color:var(--amber);}
.doctrine-desc{font-family:'Roboto Condensed', var(--body); font-weight:300; font-size:.9rem; color:var(--ink-dim); flex:1;}
.doctrine-card-meta{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.doctrine-author{display:inline-flex; align-items:center; gap:8px; font-family:'Roboto Condensed', var(--mono); font-weight:300; font-size:13px; color:var(--ink-dim);}
.doctrine-author-avatar{width:31px; height:31px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.doctrine-edit-btn{align-self:center; font-size:11px; padding:8px 14px; margin-top:10px;}

.readiness-badge{
  font-family:'Roboto Condensed', var(--mono); font-weight:300; font-size:12px; white-space:nowrap;
  border:1px solid var(--line); padding:5px 10px; flex-shrink:0;
}
.readiness-badge.readiness-full{color:#2f9e44; border-color:#2f9e44;}
.readiness-badge.readiness-partial{color:var(--amber); border-color:var(--amber-dim);}
.readiness-badge.readiness-none{color:var(--ink-dim);}

#doctrines .btn{font-family:'Roboto Condensed', var(--body); font-weight:300;}

/* ---- Модалка создания/редактирования доктрины ---- */
.wd-dialog{
  position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); margin:0;
  border:1px solid var(--line); background:var(--panel); padding:0; width:min(640px, 92vw);
  max-height:85vh; overflow-y:auto; color:var(--ink);
}
.wd-dialog::backdrop{background:rgba(10,11,13,.6);}
.wd-dialog .wd-form{padding:28px; display:flex; flex-direction:column; gap:14px;}
.wd-dialog h3{font-family:var(--display); font-weight:700; font-size:1.15rem; margin-bottom:4px;}
.wd-dialog-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:6px;}

/* Вариант ряда действий вне формы (когда в нём же лежит кнопка удаления —
   привязана к отдельной form= форме, физически не вложенной сюда): сам ряд
   не наследует padding формы, поэтому задаём его явно. */
.wd-dialog-actions-split{justify-content:space-between; padding:0 28px 28px; margin-top:0;}
.wd-dialog-actions-right{display:flex; gap:10px;}

/* ---- Модалка просмотра фита (клик по карточке на странице доктрины) ---- */
.wd-fit-view{padding:28px; display:flex; flex-direction:column; gap:12px;}
.wd-fit-view-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px;}
.wd-fit-view-head h3{font-family:var(--display); font-weight:700; font-size:1.15rem;}
.wd-fit-view-head-actions{display:flex; gap:8px; flex-shrink:0;}
.wd-fit-view-eft{
  background:var(--bg); border:1px solid var(--line); padding:14px; margin:0;
  font-family:monospace; font-size:12px; line-height:1.5; color:var(--ink); white-space:pre-wrap; word-break:break-word;
  max-height:50vh; overflow-y:auto;
}
.wd-icon-btn{
  width:28px; height:28px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  background:var(--panel); border:1px solid var(--line); color:var(--ink-dim); cursor:pointer; padding:0;
}
.wd-icon-btn:hover{color:var(--amber); border-color:var(--amber-dim);}
.wd-icon-btn svg{width:15px; height:15px;}
.wd-icon-btn.copied{color:#2f9e44; border-color:#2f9e44;}

.wd-fits-section{border-top:1px solid var(--line); padding-top:16px; margin-top:2px; display:flex; flex-direction:column; gap:12px;}
.wd-fits-section-title{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-dim);}
#wd-fits-list{display:flex; flex-direction:column; gap:12px;}
.wd-fit-row{border:1px solid var(--line); background:var(--bg); padding:14px; display:flex; flex-direction:column; gap:10px;}
.wd-fit-row-grid{display:grid; grid-template-columns:2fr 1fr; gap:10px;}

/* ---- Общие стили форм доктрин/фитов (модалка + <details>-формы на странице доктрины) ---- */
.wd-form{display:flex; flex-direction:column; gap:12px;}
.wd-form label{display:flex; flex-direction:column; gap:5px; font-family:var(--mono); font-size:11px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.04em;}
.wd-form input[type="text"], .wd-form input[type="number"], .wd-form select, .wd-form textarea{
  font-family:var(--body); font-size:13px; text-transform:none; letter-spacing:normal;
  background:var(--bg); border:1px solid var(--line); color:var(--ink); padding:9px 12px;
}
.wd-form textarea{font-family:monospace; resize:vertical;}
.wd-form input:focus, .wd-form select:focus, .wd-form textarea:focus{outline:1px solid var(--amber-dim);}
.wd-form-toggle{margin-bottom:16px;}
.wd-form-toggle summary{cursor:pointer; user-select:none; display:inline-block; list-style:none;}
.wd-form-toggle summary::-webkit-details-marker{display:none;}
.wd-form-toggle summary::marker{content:'';}
.wd-form-toggle[open] summary{margin-bottom:16px;}
.wd-form-toggle .wd-form{background:var(--panel); border:1px solid var(--line); padding:20px; max-width:480px;}

/* ---- Доктрина: список фитов — карточки в ряд ---- */
.fit-row-list{display:flex; flex-wrap:wrap; gap:16px; margin-bottom:24px;}

.fit-card-v2{flex:0 0 200px; width:200px; border:1px solid var(--line); background:var(--panel); display:flex; flex-direction:column; cursor:pointer; transition:background .15s;}
.fit-card-v2:hover{background:var(--panel-2);}
.fit-card-v2:focus-visible{outline:1px solid var(--amber-dim); outline-offset:2px;}
.fit-card-v2-image{position:relative; width:100%; aspect-ratio:1/1; background:var(--bg); overflow:hidden;}
.fit-card-v2-image img{width:100%; height:100%; object-fit:contain;}
.fit-card-v2-image-placeholder{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:10.5px; color:var(--ink-dim); text-align:center; padding:0 12px;
}
.fit-card-v2-body{padding:12px; display:flex; flex-direction:column; gap:6px;}
.fit-card-v2-body h4{font-family:'Roboto Condensed', var(--display); font-weight:400; font-size:.98rem; color:var(--ink);}

.fit-card-v2-image .fit-role-tag{position:absolute; bottom:8px; right:8px; margin-bottom:0;}
.fit-role-tag{
  display:inline-block; font-family:'Roboto Condensed', var(--mono); font-weight:300; font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  border:1px solid #fff; background:transparent; padding:2px 8px; margin-bottom:8px; color:#fff;
}

.fit-card-v2-image .fit-edit-icon{
  position:absolute; bottom:8px; left:8px; width:24px; height:24px;
  background:transparent; border-color:#0A0B0D; color:#0A0B0D;
}
.fit-card-v2-image .fit-edit-icon:hover{color:#0A0B0D; border-color:#0A0B0D; opacity:.7;}
.fit-card-v2-image .fit-edit-icon svg{width:13px; height:13px;}

.fit-availability{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.04em; cursor:default;}
.fit-availability-ready{color:#2f9e44;}
.fit-availability-missing{color:var(--amber);}
.fit-availability-unknown{color:var(--ink-dim);}
.fit-sso-link{font-size:11px; color:var(--cyan); text-decoration:underline;}

/* ---- Доктрина: ряд кнопок (Редактировать / В архив / Добавить фит) ---- */
.wd-doctrine-actions{display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; margin-bottom:32px;}
#doctrine .btn{font-family:'Roboto Condensed', var(--body); font-weight:400;}

/* ---- Доктрина: ростер альянса (только officer) — таблица пилот × фит ---- */
.roster-block{border-top:1px solid var(--line); padding-top:24px;}
.roster-table-wrap{overflow-x:auto; border:1px solid var(--line);}
.roster-matrix{width:100%; border-collapse:collapse; font-size:.85rem; white-space:nowrap;}
.roster-matrix th, .roster-matrix td{padding:10px 16px; border-bottom:1px solid var(--line); text-align:left;}
.roster-matrix thead th{
  font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em;
  color:var(--ink-dim); font-weight:400; background:var(--panel-2); border-bottom:1px solid var(--line);
}
.roster-matrix tbody tr:last-child th, .roster-matrix tbody tr:last-child td{border-bottom:none;}
.roster-matrix tbody tr:hover{background:var(--panel-2);}
.roster-matrix-name{font-weight:600; color:var(--ink);}
.roster-matrix-corp{display:block; font-family:var(--mono); font-size:10.5px; font-weight:400; color:var(--ink-dim); margin-top:2px;}
.roster-cell{text-align:center; font-family:var(--mono); font-size:12px;}
.roster-cell-ready{color:#2f9e44; font-weight:600;}
.roster-cell-missing{color:var(--amber);}
.roster-cell-unknown{color:var(--ink-dim);}

@media (prefers-reduced-motion: reduce){ .status-dot{animation:none;} html{scroll-behavior:auto;} }

@media (max-width: 980px){
  .sidebar{position:relative; width:100%; height:auto; flex-direction:row; align-items:center; padding:14px 20px; gap:14px; overflow:visible;}
  .sidebar .pillar-nav, .sidebar .side-live{display:none;}
  .sidebar .side-cta{margin-left:auto;}
  main{margin-left:0;}
  footer{left:0;}
  .stars{left:0;}
  section{padding:56px 22px;}
  .pillars, .wiki-grid, .steps, .recruit-grid, .post-layout{grid-template-columns:1fr;}
  .counters{grid-template-columns:repeat(2,1fr);}
  .blog-grid{grid-template-columns:1fr;}
  .style-grid{grid-template-columns:repeat(2,1fr);}
}
