:root{
  --c:#003775; --cd:#002952;
  --g:#1B5E20; --gd:#0E3F12;
  --t:#000; --ts:#333; --m:#888; --b:#999; --d:#C62828;
  --bg:#fff; --bs:#f5f5f5; --bh:#eee;
  --s5:5px; --s10:10px; --s20:20px; --s40:40px;
  --ln:1px solid var(--b);
  --r:4px;
}

@font-face{font-family:'FS';font-weight:400;font-display:swap;src:url(FiraSans-Regular.woff2) format('woff2')}
@font-face{font-family:'FS';font-weight:700;font-display:swap;src:url(FiraSans-Bold.woff2) format('woff2')}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:1rem/1.6 'FS',sans-serif;color:var(--t);background:var(--bg)}
a{color:var(--c);text-decoration:none;overflow-wrap:anywhere;word-break:break-word}
a:hover{text-decoration:underline;text-underline-offset:5px}
img{display:block;max-width:100%;height:auto}
ul,ol{margin:var(--s20) 0;padding-left:var(--s20)}
li{margin-bottom:var(--s5)}
h1,h2,h3,h4,h5,h6{font-weight:700}
h1{margin:var(--s40) 0;font-size:1.8rem}
h2,h3,h4,h5,h6{margin:0 0 var(--s20);font-size:1.2rem}
p{margin:0 0 var(--s20)}
p:last-child{margin-bottom:0}
.hidden{display:none}
.w{max-width:1000px;margin:0 auto;padding:0 var(--s20)}

/* Скругления — везде где это имеет смысл */
.bt,.ab,.vf,.va,.votebutton,
.inp,body.admin input,body.admin select,
.sb,.al,.md,.api,.pell-wrap,
.pagi a,.pagi .cur,.pagi .dots,.pagi .disabled,
.share > summary,
.pi img,.ph img,
.pb,
.skip-link{border-radius:var(--r)}
.logo{border-radius:0 0 var(--r) var(--r)}

/* Шапка */
.topline{height:5px;background:var(--c)}
.logo{display:inline-block;padding:0 var(--s20) var(--s5);font-weight:700;color:#fff;background:var(--c)}
.logo:hover{text-decoration:none}
.hd-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s10);flex-wrap:wrap}

/* Переключатель языка — простой текст */
.lang-switch{display:flex;gap:var(--s20)}
.lang-btn{font:inherit;padding:0;color:var(--m);background:none;border:0;cursor:pointer;font-weight:700}
.lang-btn:hover,.lang-btn.active{color:var(--c)}

/* Страница */
.pg{padding:0 0 var(--s40)}
.row::after{content:"";display:table;clear:both}
.side{position:sticky;top:var(--s40);float:right;width:280px;margin-left:var(--s40)}
.main{overflow:hidden}
.it,.sb,.ph,.pbo,.share,.filter-form,.bulk-actions{margin-bottom:var(--s20)}

/* Сайдбар */
.sb{padding:var(--s20);border:var(--ln)}
.sb .bt,.bt-full{display:block;width:100%;text-align:center}

.share ul{display:block;margin-top:var(--s10);padding:0;list-style:none}
.share li{margin:0;padding:var(--s5) 0}

/* Простая навигация-список (sidebar разделы) */
.nav-list{margin:0;padding:0;list-style:none}
.nav-list li{margin:0;border-bottom:var(--ln)}
.nav-list li:last-child{border-bottom:0}
.nav-list a{display:block;padding:var(--s10) 0}

.pagi a,.pagi .cur,.pagi .dots,.pagi .disabled,.share > summary{display:inline-block;line-height:1.4;border:var(--ln)}
.pagi a:hover,.bt:hover,.ab:hover,.votebutton:hover,.vf:hover,.va:hover,.share > summary:hover{text-decoration:none}
.pell-wrap .pell-button:hover{background:var(--bh)}

/* Кнопки */
.bt,.vf,.va,.ab,.votebutton{display:inline-block;padding:var(--s5) var(--s10);font:inherit;cursor:pointer;text-align:center;border:0}
.bt,.ab{color:#fff;background:var(--c)}
.bt:active,.ab:active{background:var(--cd)}
.btn-busy{pointer-events:none;opacity:.6}
.btn-disabled,.vf.btn-disabled,.va.btn-disabled{pointer-events:none;background:#ccc;border-color:#ccc;color:#777}

/* Карточки */
.po{display:flex;align-items:center;gap:var(--s20);padding:var(--s20) 0;border-bottom:var(--ln)}
.po:first-child{padding-top:0}
.po:last-child{border-bottom:0}
.pi{flex:0 0 180px;overflow:hidden}
.pi img{width:180px}
.pn{flex:1;min-width:0}
.pd{display:block;margin-bottom:var(--s5);color:var(--m)}
.pt{display:block;margin-bottom:var(--s5);font-weight:700}
.pm{color:var(--g)}
.pmn{color:var(--c)}

/* Статья */
.ph img{width:100%}
.page-top{margin:0 0 var(--s20);border:0;border-top:var(--ln)}
.pbo{line-height:1.7}
.pbo p{margin-bottom:var(--s20)}
.art-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s20);color:var(--m)}

/* Голосование */
.vc{text-align:center}
.vn{margin-bottom:var(--s5);font-size:3rem;font-weight:700}
.vg{margin-bottom:var(--s5)}
.pb{overflow:hidden;height:4px;margin:var(--s20) 0;background:#ccc}
.pb span{display:block;width:var(--pct,0%);height:100%;background:var(--c);transition:width .3s ease}
.vf,.va{display:flex;justify-content:center;align-items:center;border:1px solid var(--b)}
.vb .vf,.vb .va{margin-top:var(--s10)}
.vf{color:#fff;background:var(--g);border-color:var(--g)}
.vf:active{background:var(--gd)}
.va{color:var(--t);background:#fff}
.va:active,.share > summary:active{background:#f0f0f0}
.vcount{margin-left:auto}

/* Попапы */
.mo,.ap{position:fixed;inset:0;z-index:100;display:none;text-align:center;background:rgba(0,0,0,.6);backdrop-filter:blur(5px)}
.mo::before,.ap::before{content:"";display:inline-block;height:100%;vertical-align:middle}
.mo.active,.ap.show{display:block}
.md,.api{display:inline-block;width:90%;max-width:400px;padding:var(--s20);text-align:left;vertical-align:middle;background:#fff}
.api{text-align:center}
.md h3,.api h3{margin:0 0 var(--s20)}
.md p,.api p{margin-bottom:var(--s20)}
.md .err-msg{margin:0;color:var(--d)}

/* Соцсети */
.votebutton{display:block;margin-top:var(--s10);padding:var(--s10);color:#fff}
.votebutton:first-of-type{margin-top:0}
.fb,.tg{background:var(--c)}
.fb:active,.tg:active{background:var(--cd)}
.tw,.th{background:#212121}
.tw:active,.th:active{background:#000}
.whats{background:var(--g)}
.whats:active{background:var(--gd)}
.ab{display:block;padding:var(--s10)}

/* Формы */
.fp{max-width:520px}
.fg{margin-bottom:var(--s10)}
.fg label{display:block;margin-bottom:var(--s5)}
.inp,body.admin input,body.admin select{font:inherit;border:var(--ln);background:#fff;outline:0}
.inp{width:100%;padding:var(--s5) var(--s10)}
.inp:focus{border-color:#000}
.inp-search{margin-bottom:var(--s20)}
textarea.inp{resize:vertical;min-height:80px;overflow:hidden}
.fa{margin-top:var(--s20)}

/* Алерты */
.al{margin-bottom:var(--s20);padding:var(--s20);border:var(--ln)}
.ale{color:var(--d);border-color:var(--d)}
.alo{color:var(--g);border-color:var(--g)}

/* Подвал */
.ft{margin-top:var(--s40);padding:var(--s20) 0;border-top:var(--ln)}
.ft p{margin:0 0 var(--s10)}
.ft p:last-child{margin-bottom:0}
.ft-legal{color:var(--ts)}

/* Утилиты */
.mt-20{margin-top:var(--s20)}
.mt-40{margin-top:var(--s40)}
.muted{color:var(--m)}
.sec{margin-top:var(--s40);padding-top:var(--s20);border-top:var(--ln)}
.sec > :first-child{margin-top:0}
.sec > :last-child{margin-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;white-space:nowrap;border:0;clip:rect(0,0,0,0)}
.skip-link{position:absolute;top:-40px;left:0;z-index:1000;padding:var(--s5) var(--s10);color:#fff;background:#000}
.skip-link:focus{top:0}

/* HTMX индикатор */
body.htmx-request::after{content:"";position:fixed;top:0;left:0;z-index:999;width:100%;height:2px;background:var(--c)}

/* Пагинация */
.pagi{display:flex;flex-wrap:wrap;gap:var(--s10);margin:var(--s40) 0}

/* Шаринг */
.share-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s10);flex-wrap:wrap;margin-bottom:var(--s20)}
.share-row .share{margin-bottom:0}
.share > summary{padding:var(--s5) var(--s10);cursor:pointer;list-style:none;user-select:none;background:#fff}
.share > summary::-webkit-details-marker{display:none}
.share > summary::marker{content:''}
.share a{color:var(--c)}
.share a:hover{text-decoration:underline}
.tg-channel{display:inline-block;padding:var(--s5) var(--s10);border:var(--ln);border-radius:var(--r);background:#fff;line-height:1.4;text-decoration:none;color:inherit}
.tg-channel:hover{text-decoration:none}
.tg-channel:active{background:#f0f0f0}

/* Комментарии */
.cmlist{margin-top:var(--s10)}
.cm{padding:var(--s20) 0;border-bottom:var(--ln)}
.cm:first-child{border-top:var(--ln)}
.cm:last-child{border-bottom:0}
.cm-h{line-height:1.4}
.cm-m{margin:var(--s5) 0;color:var(--m)}
.cm-t{margin:0;line-height:1.5}
.vote-for{color:var(--g)}
.vote-against{color:var(--c)}

/* Адаптив */
@media (max-width:800px){
  h1{font-size:1.6rem}
  .side{position:static;float:none;width:100%;margin-left:0;margin-bottom:var(--s20)}
  .row-reverse{display:flex;flex-direction:column-reverse}
  .row-reverse .side{margin-bottom:0;margin-top:var(--s20)}
  .hm,.pi,.po img{display:none}
  .sb{border:0;border-top:var(--ln);border-bottom:0;padding:0;padding-top:var(--s20);border-radius:0}
}

/* Админка */
body.admin{font-size:1rem}
body.admin .w{padding:var(--s20)}
body.admin h1,body.admin h2,body.admin h3{margin:var(--s20) 0;font-size:1rem;text-transform:none}
body.admin nav{margin-bottom:var(--s20)}
body.admin nav a{margin-right:var(--s20);color:var(--c)}
body.admin nav a.cur{color:var(--t)}
body.admin table{width:100%;border-collapse:collapse}
body.admin th,body.admin td{padding:var(--s5) var(--s10);text-align:left;border:var(--ln)}
body.admin th{background:var(--bs)}
body.admin tr:nth-child(odd){background:var(--bs)}
body.admin hr{margin:var(--s20) 0;border:0;border-top:var(--ln)}
body.admin input,body.admin select{height:34px;padding:0 var(--s10);vertical-align:middle}
body.admin input:focus,body.admin select:focus{border-color:var(--ts)}
body.admin input[type="checkbox"]{height:auto;padding:0}
body.admin input[type="file"]{height:auto;padding:var(--s5) 0;border:0}


.ok{color:var(--g)}
.err{color:var(--d)}
.mod{color:var(--c)}
.act{white-space:nowrap}
.bulk-actions{display:flex;flex-wrap:wrap;gap:var(--s10);margin-top:var(--s20)}
.filter-form select,.filter-form input,.filter-form button{margin-right:var(--s10)}
.et{max-width:180px}
.al2{max-width:340px;margin:var(--s40) auto}
.al2 h1{text-align:center}
.al2 .err{margin:var(--s20) 0 0;color:var(--d)}

/* Pell */
.pell-wrap{margin-bottom:var(--s20);border:var(--ln)}
.pell-wrap .pell-actionbar{padding:var(--s5);border-bottom:var(--ln)}
.pell-wrap .pell-button{padding:var(--s5) var(--s10);background:none;border:0;cursor:pointer}
.pell-wrap .pell-content{min-height:180px;padding:var(--s10);font:inherit;line-height:1.6;outline:0}

@media (max-width:768px){
  body.admin nav{overflow-x:auto;white-space:nowrap}
  body.admin .table-wrap{width:100%;overflow-x:auto}
  body.admin .table-wrap table{min-width:100%;white-space:nowrap}
}

/* Utilities */
.mt-10{margin-top:var(--s10)!important}
.as{display:block;text-align:center}
