/* Rating MC — основные стили. Цвета заданы токенами, тёмная тема по системной настройке. */
:root{
  --bg:#EDF0F2; --surface:#FFFFFF; --surface-2:#F5F7F8; --line:#D9DEE3;
  --ink:#16202A; --ink-2:#4D5B69; --ink-3:#7C8997;
  --accent:#0E8FA6; --accent-ink:#FFFFFF; --accent-soft:#D5EEF2;
  --java:#C8621C; --java-soft:#FBE7D9;
  --bedrock:#2E8B45; --bedrock-soft:#DCF1E1;
  --ok:#23974A; --ok-soft:#DDF3E4; --warn:#B07A08; --warn-soft:#FBF0D4; --bad:#D13B3B; --bad-soft:#FBE1E1;
  --shadow:0 1px 2px rgba(22,32,42,.06),0 8px 24px rgba(22,32,42,.06);
  --c1:#0E8FA6; --c2:#C8621C;
  /* палитра «из игры»: трава, земля, руды, небо */
  --grass:#56A12B; --grass-hi:#79C443; --grass-lo:#3C7A1C; --grass-ink:#FFFFFF;
  --dirt:#8D5B2E; --dirt-hi:#A8733F; --dirt-lo:#6C4422;
  --diamond:#3FD6CF; --gold:#F4C21F; --iron:#D5D9DE; --redstone:#E3302F; --emerald:#27C25C;
  --top-diamond:#E3FAF8; --top-gold:#FFF6D6; --top-iron:#F0F2F4;
  --sky-1:#6FC0F0; --sky-2:#CFEFFC; --slot:rgba(255,255,255,.72); --slot-hi:rgba(255,255,255,.95); --slot-lo:rgba(22,32,42,.16); --bg-top:#C9E6F6; --bg-tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' shape-rendering='crispEdges' fill='%231E2A36'%3E%3Crect x='0' y='0' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='16' y='0' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='48' y='0' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='64' y='0' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='0' y='16' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='2' y='22' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='2' y='28' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='48' y='16' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='48' y='22' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='48' y='20' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='64' y='16' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='68' y='18' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='72' y='20' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='0' y='32' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='16' y='32' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='32' y='32' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='48' y='32' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='64' y='32' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='74' y='46' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='78' y='42' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='80' y='32' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='30' y='58' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='32' y='48' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='34' y='50' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='48' y='48' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='52' y='58' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='52' y='62' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='64' y='48' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='90' y='58' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='0' y='64' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='14' y='66' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='2' y='72' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='16' y='64' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='46' y='72' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='48' y='64' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='48' y='78' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='64' y='64' width='16' height='16' fill-opacity='0.009'/%3E%3Crect x='80' y='64' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='0' y='80' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='20' y='86' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='32' y='80' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='46' y='82' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='36' y='94' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='48' y='80' width='16' height='16' fill-opacity='0.015'/%3E%3Crect x='52' y='92' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='64' y='80' width='16' height='16' fill-opacity='0.022'/%3E%3Crect x='76' y='90' width='2' height='2' fill-opacity='0.035'/%3E%3Crect x='80' y='80' width='16' height='16' fill-opacity='0.015'/%3E%3C/svg%3E"); --bg-sky:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='230' shape-rendering='crispEdges'%3E%3Crect x='40' y='48' width='112' height='16' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='56' y='40' width='72' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='72' y='32' width='32' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='40' y='64' width='112' height='8' fill='%23DCEBF5' fill-opacity='.72'/%3E%3Crect x='430' y='128' width='72' height='16' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='446' y='120' width='32' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='454' y='112' width='24' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='430' y='144' width='72' height='8' fill='%23DCEBF5' fill-opacity='.72'/%3E%3Crect x='720' y='38' width='144' height='16' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='736' y='30' width='104' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='768' y='22' width='48' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='720' y='54' width='144' height='8' fill='%23DCEBF5' fill-opacity='.72'/%3E%3Crect x='1030' y='158' width='88' height='16' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='1046' y='150' width='48' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='1054' y='142' width='24' height='8' fill='%23fff' fill-opacity='.72'/%3E%3Crect x='1030' y='174' width='88' height='8' fill='%23DCEBF5' fill-opacity='.72'/%3E%3C/svg%3E");
  --xp-track:#C9D2C1; --xp-cut:rgba(22,40,10,.28);
  --f-body:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-pix:"Rubik","Onest",system-ui,sans-serif; /* акцентный шрифт: логотип, цифры, заголовки. Был пиксельный — плохо читался */
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color-scheme:light;
}
/* Тёмная тема: по системе, если пользователь не выбрал светлую, или по выбору (data-theme на <html>) */
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    color-scheme:dark;
    --bg:#13171C; --surface:#1C2229; --surface-2:#232A32; --line:#2F3842;
    --ink:#E8EDF1; --ink-2:#A8B3BE; --ink-3:#77838F;
    --accent:#3CC3D8; --accent-ink:#0B1A1E; --accent-soft:#16363D;
    --java:#F0925A; --java-soft:#3A2518;
    --bedrock:#5FCB78; --bedrock-soft:#1A3322;
    --ok:#4CCB72; --ok-soft:#173222; --warn:#E6B13D; --warn-soft:#3A2F12; --bad:#F06464; --bad-soft:#3D1D1D;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
    --c1:#1E9DB2; --c2:#D2743A;
    --grass:#4E9A26; --grass-hi:#6DBB39; --grass-lo:#326716;
    --top-diamond:#15302F; --top-gold:#302913; --top-iron:#23282E;
    --sky-1:#08112A; --sky-2:#1C2D57; --slot:rgba(8,14,32,.55); --slot-hi:rgba(255,255,255,.08); --slot-lo:rgba(0,0,0,.45); --bg-top:#0C1531; --bg-tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' shape-rendering='crispEdges' fill='%23FFFFFF'%3E%3Crect x='0' y='0' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='16' y='0' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='48' y='0' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='64' y='0' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='0' y='16' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='2' y='22' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='2' y='28' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='16' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='48' y='22' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='20' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='16' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='68' y='18' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='72' y='20' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='0' y='32' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='16' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='32' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='48' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='64' y='32' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='74' y='46' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='78' y='42' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='80' y='32' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='30' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='32' y='48' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='34' y='50' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='48' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='52' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='52' y='62' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='48' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='90' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='0' y='64' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='14' y='66' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='2' y='72' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='16' y='64' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='46' y='72' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='64' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='48' y='78' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='64' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='80' y='64' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='0' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='20' y='86' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='32' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='46' y='82' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='36' y='94' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='52' y='92' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='80' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='76' y='90' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='80' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3C/svg%3E"); --bg-sky:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='300' shape-rendering='crispEdges' fill='%23fff'%3E%3Crect x='486' y='278' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='970' y='296' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='960' y='132' width='4' height='4' fill-opacity='0.5'/%3E%3Crect x='392' y='240' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='812' y='76' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='1070' y='198' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='326' y='20' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='550' y='242' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='874' y='202' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='274' y='186' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='278' y='252' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='892' y='154' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='1174' y='178' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='1196' y='118' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='572' y='82' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='432' y='292' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='254' y='32' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='180' y='176' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='308' y='10' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='850' y='60' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='772' y='168' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1034' y='120' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='14' y='38' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='404' y='208' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='318' y='20' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='736' y='70' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='942' y='266' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='1038' y='138' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='616' y='222' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='1122' y='172' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1186' y='160' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='272' y='30' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='722' y='180' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1002' y='10' width='4' height='4' fill-opacity='0.35'/%3E%3Crect x='42' y='188' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='610' y='162' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='378' y='160' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='614' y='192' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1164' y='66' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='550' y='122' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='890' y='48' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='682' y='114' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='162' y='172' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='554' y='114' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1084' y='96' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='570' y='174' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='264' y='214' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='950' y='176' width='3' height='3' fill-opacity='0.7'/%3E%3Crect x='858' y='290' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='846' y='78' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='976' y='260' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='66' y='232' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1112' y='174' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='586' y='60' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='70' y='262' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1180' y='24' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='246' y='86' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='488' y='10' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='108' y='58' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='516' y='276' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='720' y='112' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1094' y='60' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='560' y='64' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1168' y='204' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='508' y='136' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='104' y='242' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='112' y='64' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='102' y='34' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='176' y='262' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='646' y='80' width='2' height='2' fill-opacity='0.35'/%3E%3C/svg%3E");
    --xp-track:#1A2016; --xp-cut:rgba(0,0,0,.55);
  }
}
:root[data-theme=dark]{
    color-scheme:dark;
    --bg:#13171C; --surface:#1C2229; --surface-2:#232A32; --line:#2F3842;
    --ink:#E8EDF1; --ink-2:#A8B3BE; --ink-3:#77838F;
    --accent:#3CC3D8; --accent-ink:#0B1A1E; --accent-soft:#16363D;
    --java:#F0925A; --java-soft:#3A2518;
    --bedrock:#5FCB78; --bedrock-soft:#1A3322;
    --ok:#4CCB72; --ok-soft:#173222; --warn:#E6B13D; --warn-soft:#3A2F12; --bad:#F06464; --bad-soft:#3D1D1D;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
    --c1:#1E9DB2; --c2:#D2743A;
    --grass:#4E9A26; --grass-hi:#6DBB39; --grass-lo:#326716;
    --top-diamond:#15302F; --top-gold:#302913; --top-iron:#23282E;
    --sky-1:#08112A; --sky-2:#1C2D57; --slot:rgba(8,14,32,.55); --slot-hi:rgba(255,255,255,.08); --slot-lo:rgba(0,0,0,.45); --bg-top:#0C1531; --bg-tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' shape-rendering='crispEdges' fill='%23FFFFFF'%3E%3Crect x='0' y='0' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='16' y='0' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='48' y='0' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='64' y='0' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='0' y='16' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='2' y='22' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='2' y='28' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='16' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='48' y='22' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='20' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='16' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='68' y='18' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='72' y='20' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='0' y='32' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='16' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='32' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='48' y='32' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='64' y='32' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='74' y='46' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='78' y='42' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='80' y='32' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='30' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='32' y='48' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='34' y='50' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='48' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='52' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='52' y='62' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='48' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='90' y='58' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='0' y='64' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='14' y='66' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='2' y='72' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='16' y='64' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='46' y='72' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='64' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='48' y='78' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='64' width='16' height='16' fill-opacity='0.007'/%3E%3Crect x='80' y='64' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='0' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='20' y='86' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='32' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='46' y='82' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='36' y='94' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='48' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3Crect x='52' y='92' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='64' y='80' width='16' height='16' fill-opacity='0.018'/%3E%3Crect x='76' y='90' width='2' height='2' fill-opacity='0.03'/%3E%3Crect x='80' y='80' width='16' height='16' fill-opacity='0.012'/%3E%3C/svg%3E"); --bg-sky:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='300' shape-rendering='crispEdges' fill='%23fff'%3E%3Crect x='486' y='278' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='970' y='296' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='960' y='132' width='4' height='4' fill-opacity='0.5'/%3E%3Crect x='392' y='240' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='812' y='76' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='1070' y='198' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='326' y='20' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='550' y='242' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='874' y='202' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='274' y='186' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='278' y='252' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='892' y='154' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='1174' y='178' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='1196' y='118' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='572' y='82' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='432' y='292' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='254' y='32' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='180' y='176' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='308' y='10' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='850' y='60' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='772' y='168' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1034' y='120' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='14' y='38' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='404' y='208' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='318' y='20' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='736' y='70' width='3' height='3' fill-opacity='0.9'/%3E%3Crect x='942' y='266' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='1038' y='138' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='616' y='222' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='1122' y='172' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1186' y='160' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='272' y='30' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='722' y='180' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1002' y='10' width='4' height='4' fill-opacity='0.35'/%3E%3Crect x='42' y='188' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='610' y='162' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='378' y='160' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='614' y='192' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1164' y='66' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='550' y='122' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='890' y='48' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='682' y='114' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='162' y='172' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='554' y='114' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1084' y='96' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='570' y='174' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='264' y='214' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='950' y='176' width='3' height='3' fill-opacity='0.7'/%3E%3Crect x='858' y='290' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='846' y='78' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='976' y='260' width='3' height='3' fill-opacity='0.5'/%3E%3Crect x='66' y='232' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='1112' y='174' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='586' y='60' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='70' y='262' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1180' y='24' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='246' y='86' width='4' height='4' fill-opacity='0.7'/%3E%3Crect x='488' y='10' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='108' y='58' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='516' y='276' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='720' y='112' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='1094' y='60' width='2' height='2' fill-opacity='0.5'/%3E%3Crect x='560' y='64' width='2' height='2' fill-opacity='0.9'/%3E%3Crect x='1168' y='204' width='2' height='2' fill-opacity='0.7'/%3E%3Crect x='508' y='136' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='104' y='242' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='112' y='64' width='2' height='2' fill-opacity='0.35'/%3E%3Crect x='102' y='34' width='3' height='3' fill-opacity='0.35'/%3E%3Crect x='176' y='262' width='4' height='4' fill-opacity='0.9'/%3E%3Crect x='646' y='80' width='2' height='2' fill-opacity='0.35'/%3E%3C/svg%3E");
    --xp-track:#1A2016; --xp-cut:rgba(0,0,0,.55);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;position:relative;background-color:var(--bg);background-image:var(--bg-tile),linear-gradient(180deg,var(--bg-top) 0,var(--bg) 640px);background-repeat:repeat,no-repeat;background-size:96px 96px,100% 640px;color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;padding-inline:16px;padding-block:0 64px}
.wrap{max-width:1180px;margin:0 auto}
/* Небо над страницей: облака днём, звёзды ночью. Облака плывут «по пикселю», как в игре */
body::before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;height:300px;pointer-events:none;background:var(--bg-sky) repeat-x 0 12px;
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent);animation:sky-drift 400s steps(300) infinite}
@keyframes sky-drift{to{background-position:-1200px 12px}}
@media (prefers-reduced-motion:reduce){body::before{animation:none}}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body::before{animation:none}}
:root[data-theme=dark] body::before{animation:none}
.wrap.narrow{max-width:760px}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}
h1{font-size:clamp(24px,3.4vw,34px);letter-spacing:-.015em}
h2{font-size:20px}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}
img{max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.mono{font-family:var(--f-mono)}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3)}
.small{font-size:13px}
.stack{display:flex;flex-direction:column;gap:16px}
.row-flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.check{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;cursor:pointer}
.check input{margin-top:3px;flex:none;accent-color:var(--accent)}
.spacer{flex:1}

/* шапка */
.nav{display:flex;align-items:center;gap:20px;padding-block:18px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--f-pix);font-size:22px;font-weight:700;letter-spacing:.02em;color:var(--ink);text-decoration:none}
.logo i{width:24px;height:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.logo i span{background:var(--accent);border-radius:1px}
.logo i span:nth-child(2n){background:var(--bedrock)}
.logo i span:nth-child(3n){background:var(--java)}
.nav nav{display:flex;gap:18px;font-size:14px;flex-wrap:wrap}
.nav nav a{color:var(--ink-2);text-decoration:none}
.nav nav a.on,.nav nav a:hover{color:var(--ink)}
.nav .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.nav form{margin:0}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:9px;font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;line-height:1.3}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.danger{color:var(--bad);border-color:var(--bad-soft)}
.btn.danger:hover{border-color:var(--bad)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.block{width:100%;padding-block:11px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* сообщения */
.flash{padding:11px 14px;border-radius:10px;font-size:14px;border:1px solid var(--line);background:var(--surface)}
.flash.ok{background:var(--ok-soft);border-color:transparent;color:var(--ink)}
.flash.error{background:var(--bad-soft);border-color:transparent;color:var(--ink)}
.flash.info{background:var(--accent-soft);border-color:transparent;color:var(--ink)}
.flashes{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}

/* карточки и формы */
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}
.card.tight{padding:16px 18px}
.auth-card{max-width:420px;margin:32px auto 0}
.auth-card h1{font-size:26px;margin-bottom:6px}
.form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field label,.label{font-size:13px;font-weight:600;color:var(--ink)}
.field .hint{font-size:12.5px;color:var(--ink-3)}
.field .err{font-size:12.5px;color:var(--bad);font-weight:500}
.input,select.input,textarea.input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:9px 11px;font:inherit;font-size:14.5px}
textarea.input{min-height:110px;resize:vertical}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field.has-err .input{border-color:var(--bad)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font-size:13px;font-weight:600;margin-bottom:8px}
.form-section{border-top:1px solid var(--line);padding-top:18px;display:flex;flex-direction:column;gap:16px}
.form-section h2{font-size:16px}

/* выбор платформы — большие радио */
.seg-radio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.seg-radio label{font-weight:400;display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:11px;padding:12px 14px;cursor:pointer;background:var(--surface)}
.seg-radio input{margin-top:3px;accent-color:var(--accent)}
.seg-radio label:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.seg-radio b{display:block;font-size:14.5px}
.seg-radio small{color:var(--ink-3);font-size:12.5px}

/* чекбоксы-теги */
.tag-picker{display:flex;flex-wrap:wrap;gap:6px}
.tag-picker label{cursor:pointer}
.tag-picker input{position:absolute;opacity:0;pointer-events:none}
.tag-picker span{display:inline-block;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:13px;font-weight:500;color:var(--ink-2)}
.tag-picker input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.tag-picker input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.tag-group-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:10px 0 6px}
.tag-group-title:first-child{margin-top:0}

/* метки */
.tags{display:flex;gap:5px;flex-wrap:wrap}
.tag{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:5px;background:var(--surface-2);color:var(--ink-2);letter-spacing:.02em;text-decoration:none;line-height:1.5}
a.tag:hover{color:var(--ink)}
.tag.java{background:var(--java-soft);color:var(--java)}
.tag.bedrock{background:var(--bedrock-soft);color:var(--bedrock)}
.tag.plugin{font-family:var(--f-mono);font-weight:500;font-size:11.5px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:3px 9px;border-radius:999px}
.pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.idle{background:var(--surface-2);color:var(--ink-3)}

/* каталог */
.hero{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:end;justify-content:space-between;padding-block:14px 22px}
.hero p{color:var(--ink-2);max-width:60ch;margin:8px 0 0}
.hero h1 em{font-style:normal;font-family:var(--f-pix);color:var(--accent)}
.pulse{display:grid;grid-template-columns:repeat(2,auto);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.pulse div{background:var(--surface);padding:10px 16px}
.pulse small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.pulse strong{font-family:var(--f-pix);font-size:24px;font-variant-numeric:tabular-nums}

.catalog{display:grid;grid-template-columns:270px minmax(0,1fr);gap:20px;align-items:start}
.catalog > aside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
.filters{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:16px}
.filters .tag-picker span{font-size:12.5px;padding:4px 9px}
.filters-box > summary{display:none}
.filters details summary{cursor:pointer;font-size:13px;font-weight:600;list-style:none;display:flex;justify-content:space-between}
.filters details summary::after{content:"+";color:var(--ink-3)}
.filters details[open] summary::after{content:"−"}
.filters details .tag-picker{margin-top:8px}
.searchbar{display:flex;gap:8px;margin-bottom:12px}
.searchbar .input{flex:1}
.active-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;align-items:center}
.active-filters a{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;padding:3px 8px 3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--ink);text-decoration:none}
.active-filters a::after{content:"×";color:var(--ink-3);font-size:14px}
.list-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink-3);margin-bottom:8px;gap:10px;flex-wrap:wrap}
.list{display:flex;flex-direction:column;gap:8px}
.srv{position:relative;display:grid;grid-template-columns:30px 52px minmax(0,1fr) 140px;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:inherit;text-decoration:none}
.srv:hover{border-color:var(--accent)}
.srv .rank{font-family:var(--f-pix);font-size:19px;color:var(--ink-3);text-align:center}
.srv-icon{width:52px;height:52px;border-radius:8px;image-rendering:pixelated;background:var(--surface-2);display:block;object-fit:cover}
.srv-icon.lg{width:72px;height:72px;border-radius:10px}
.srv-name{font-weight:600;font-size:16px}
.motd{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-2);white-space:pre-line;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.motd.full{-webkit-line-clamp:unset;display:block;background:#1b1f24;color:#e6e6e6;padding:12px 14px;border-radius:8px}
.srv .tags{margin-top:6px}
.online{font-family:var(--f-pix);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.online small{font-family:var(--f-body);font-size:12px;color:var(--ink-3);font-weight:400}
.bar{height:4px;background:var(--surface-2);border-radius:2px;margin-top:5px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ok);border-radius:2px}
.status-line{font-size:12px;display:flex;align-items:center;gap:5px;color:var(--ink-2);margin-top:3px}
.status-line i{width:7px;height:7px;border-radius:50%;flex:none}
.empty{padding:34px 20px;text-align:center;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line);border-radius:12px}
.pager{display:flex;gap:6px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.pager a,.pager span{min-width:36px;text-align:center;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);font-size:14px}
.pager span.cur{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* MOTD-цвета Minecraft */
.mc-0{color:#000}.mc-1{color:#0000AA}.mc-2{color:#00AA00}.mc-3{color:#00AAAA}.mc-4{color:#AA0000}.mc-5{color:#AA00AA}.mc-6{color:#FFAA00}.mc-7{color:#AAAAAA}.mc-8{color:#555555}.mc-9{color:#5555FF}.mc-a{color:#55FF55}.mc-b{color:#55FFFF}.mc-c{color:#FF5555}.mc-d{color:#FF55FF}.mc-e{color:#FFFF55}.mc-f{color:#FFFFFF}
.mc-l{font-weight:700}.mc-o{font-style:italic}.mc-n{text-decoration:underline}.mc-m{text-decoration:line-through}

/* страница сервера */
.server-head{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;padding-block:10px 20px}
.server-head .meta{flex:1;min-width:240px;display:flex;flex-direction:column;gap:8px}
.server-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.ipbox{display:flex;gap:6px}
.ipbox code{flex:1;font-family:var(--f-mono);font-size:14px;background:var(--surface-2);border-radius:8px;padding:9px 11px;overflow-x:auto;white-space:nowrap}
.kv{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.kv div{background:var(--surface);padding:9px 12px}
.kv small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.kv b{font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;word-break:break-word}
.chart{width:100%;height:auto;display:block}
.players{display:flex;flex-wrap:wrap;gap:4px}
.players span{font-family:var(--f-mono);font-size:12px;background:var(--surface-2);padding:2px 6px;border-radius:4px}
.prose{max-width:68ch;white-space:pre-line;color:var(--ink)}

/* кабинет */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
table.tbl{border-collapse:collapse;width:100%;min-width:680px;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl th{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;background:var(--surface-2)}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r{text-align:right}
.steps{counter-reset:s;display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}
.steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;gap:10px}
.steps li::before{content:counter(s);font-family:var(--f-pix);font-size:17px;color:var(--accent);text-align:center}
.token{font-family:var(--f-mono);font-size:15px;font-weight:600;background:var(--accent-soft);padding:3px 8px;border-radius:6px;user-select:all}
.danger-zone{border-color:var(--bad-soft)}


@media (max-width:900px){
  .catalog,.server-grid{grid-template-columns:1fr}
  .catalog > aside{position:static}
  .filters-box > summary{display:flex;justify-content:space-between;cursor:pointer;font-weight:600;list-style:none}
  .filters-box > summary::after{content:"Показать";color:var(--accent);font-weight:500;font-size:13px}
  .filters-box[open] > summary::after{content:"Скрыть"}
}
@media (max-width:640px){
  .srv{grid-template-columns:44px minmax(0,1fr);row-gap:10px}
  .srv .rank{display:none}
  .srv-icon{width:44px;height:44px}
  .srv .online-cell{grid-column:1/-1;display:flex;gap:12px;align-items:center;justify-content:space-between}
  .srv .online-cell .bar{flex:1;margin:0}
  .grid-2,.grid-3,.seg-radio{grid-template-columns:1fr}
  .nav nav{order:3;width:100%}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.filters-box:not([open]){gap:0}
.verified{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--ok-soft);color:var(--ok);font-size:11px;font-weight:700;vertical-align:2px}
/* голосование */
.vote-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;margin-top:12px;max-width:900px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.top-list{margin:0;padding:0;list-style:none;counter-reset:t;display:flex;flex-direction:column;gap:6px}
.top-list li{counter-increment:t;display:grid;grid-template-columns:22px 1fr auto;gap:8px;font-size:14px;align-items:center}
.top-list li::before{content:counter(t);font-family:var(--f-pix);color:var(--ink-3);text-align:center}
.votes-count{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:4px;margin-top:3px}
.embed{font-family:var(--f-mono);font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%;resize:vertical;min-height:62px;color:var(--ink)}
.banner-preview{max-width:100%;height:auto;border-radius:6px;display:block;image-rendering:auto}
@media (max-width:760px){.vote-grid{grid-template-columns:1fr}}
.dash-sections{display:flex;flex-direction:column;gap:20px;margin-top:20px}
.dash-sections h2{scroll-margin-top:16px}
.vote-btn{display:inline-flex;gap:8px;align-items:center}
.verify-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:var(--warn-soft);border-radius:10px;padding:9px 12px;margin-bottom:14px;font-size:14px}
.verify-bar .btn{padding:6px 12px;font-size:13px}
/* отзывы и звёзды */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.stars{position:relative;display:inline-block;font-size:17px;line-height:1;letter-spacing:2px;color:var(--line);vertical-align:-2px}
.stars::before{content:"★★★★★"}
.stars-fill{position:absolute;inset:0 auto 0 0;overflow:hidden;white-space:nowrap;color:#E8A317}
.stars-fill::before{content:"★★★★★"}
.stars-sm{font-size:13px;letter-spacing:1px}
.rating-summary{display:flex;align-items:center;gap:8px}
.rating-summary b{font-family:var(--f-pix);font-size:24px}
.star-input{display:inline-flex;flex-direction:row-reverse;gap:2px;align-self:flex-start}
.star-input input{position:absolute;opacity:0;pointer-events:none}
.star-input label{font-size:28px;line-height:1;color:var(--line);cursor:pointer;padding:0 1px;font-weight:400}
.star-input label:hover,.star-input label:hover ~ label,.star-input input:checked ~ label{color:#E8A317}
.star-input input:focus-visible + label{outline:2px solid var(--accent);border-radius:4px}
.review-form{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.review-list{display:flex;flex-direction:column}
.review{padding-block:14px;border-top:1px solid var(--line)}
.review:first-child{border-top:0;padding-top:0}
.review header{gap:8px}
.review p{margin:6px 0 0}
.review-reply{margin-top:10px;padding:10px 12px;background:var(--surface-2);border-radius:8px;border-left:3px solid var(--accent)}
.reply-box{margin-top:8px}
.reply-box summary{cursor:pointer;color:var(--accent)}
.srv-rating{font-size:12px;color:var(--ink-2);display:flex;align-items:center;gap:4px;margin-top:3px}
.srv-rating .stars{font-size:11px;letter-spacing:0}
/* админка */
.admin-head{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.admin-nav{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}
.admin-nav a{padding:8px 12px;text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px;font-weight:500}
.admin-nav a.on{color:var(--ink);border-bottom-color:var(--accent)}
.admin-nav .count,.nav .count{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;text-align:center;line-height:18px}
.admin-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.admin-stats > div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.admin-stats > div.attn{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}
.admin-stats small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.admin-stats b{font-family:var(--f-pix);font-size:26px;font-variant-numeric:tabular-nums}
.admin-stats span{font-size:12.5px;color:var(--ink-3)}
.admin-stats span.bad{color:var(--bad)}
.tbl.compact{min-width:0}
.tbl.compact td{padding:8px 4px}
.row-muted > td:not(:last-child),article.row-muted > *:not(.row-flex){opacity:.62}
.row-muted .srv-name, .row-muted b{opacity:1}
details.actions{position:relative;display:inline-block;text-align:left}
details.actions > summary{list-style:none;cursor:pointer}
details.actions > summary::-webkit-details-marker{display:none}
.actions-menu{position:static;margin-top:8px;width:250px;max-width:70vw;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:8px}
.admin-tag-row{display:grid;grid-template-columns:2fr 1.4fr 1fr 110px 90px auto;gap:8px;align-items:center}
.report-box{margin-top:6px;font-size:13px}
.report-box summary{cursor:pointer;color:var(--ink-3);display:inline}
.report-box[open] summary{color:var(--ink)}
.report-box form{margin-top:10px;padding:12px;background:var(--surface-2);border-radius:10px}
@media (max-width:760px){.admin-tag-row{grid-template-columns:1fr}}
/* статистика */
.delta{font-size:12.5px;color:var(--ink-3)}
.delta.up{color:var(--ok)}
.delta.down{color:var(--bad)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--ink-2);margin-top:6px;align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.heat-wrap{overflow-x:auto}
.heat{border-collapse:separate;border-spacing:2px;width:100%;min-width:560px;table-layout:fixed}
.heat th{font-size:11px;font-weight:500;color:var(--ink-3);text-align:center;padding:0 0 2px}
.heat th[scope=row]{text-align:left;width:28px;padding-right:4px}
.heat td{height:22px;border-radius:3px;background:var(--surface-2)}
.heat-scale{width:120px;height:10px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--c1) 8%,var(--surface)),var(--c1))}
/* оформление страницы сервера */
.server-cover{display:block;width:100%;height:auto;aspect-ratio:4/1;object-fit:cover;border-radius:14px;margin-top:12px;background:var(--surface-2)}
.cover-preview{display:block;max-width:100%;height:auto;border-radius:10px}
.shots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.shots-grid figure{margin:0;display:flex;flex-direction:column;gap:6px}
.shots-grid img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:var(--surface-2)}
.gallery a{display:block;border-radius:8px;overflow:hidden}
.gallery a:hover img{filter:brightness(1.08)}
.yt-lite{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:10px;overflow:hidden;background:#000;cursor:pointer}
.yt-lite img{width:100%;height:100%;object-fit:cover;opacity:.9}
.yt-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-play{position:absolute;left:50%;top:50%;width:68px;height:48px;transform:translate(-50%,-50%);background:#e62117;border-radius:12px}
.yt-play::after{content:"";position:absolute;left:27px;top:14px;border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff}
.rich{max-width:70ch;line-height:1.6}
.rich p{margin:0 0 10px}
.rich h3{font-size:16px;margin:16px 0 6px}
.rich ul{margin:0 0 10px;padding-left:20px}
.rich li{margin:2px 0}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(10,12,15,.92);display:flex;align-items:center;justify-content:center;padding:16px}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px}
.lightbox button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:44px;height:44px;font-size:22px;cursor:pointer}
.lightbox .lb-close{top:calc(16px + env(safe-area-inset-top,0px));right:16px}
.lightbox .lb-prev{left:16px;top:50%}
.lightbox .lb-next{right:16px;top:50%}
/* подборки */
.collections{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 16px}
.collections a{font-size:13.5px;font-weight:500;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);text-decoration:none}
.collections a:hover{color:var(--ink);border-color:var(--ink-3)}
.collections a.on{background:var(--accent-soft);border-color:transparent;color:var(--ink)}
.growth{font-size:12px;font-weight:700;color:var(--ok);background:var(--ok-soft);padding:1px 6px;border-radius:5px;vertical-align:2px}
.tag.new{background:var(--accent-soft);color:var(--accent)}
/* пинг сервера */
.ping-hero{max-width:760px;padding-block:10px 22px}
.ping-hero h1 em{font-style:normal;font-family:var(--f-pix);color:var(--accent)}
.ping-hero > p{color:var(--ink-2);margin:8px 0 18px;max-width:62ch}
.ping-form{display:flex;flex-direction:column;gap:12px}
.ping-input{display:flex;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:var(--shadow)}
.ping-input .input{border:0;font-size:17px;padding:10px 12px;box-shadow:none}
.ping-input .input:focus{box-shadow:none}
.ping-input .btn{padding-inline:22px;font-size:15px}
.ping-examples{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px}
.ping-result{max-width:900px;margin-bottom:28px}
.mc-entry{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:start;background:#111;border:2px solid #8b8b8b;padding:6px;max-width:620px;color:#fff;image-rendering:pixelated}
.mc-icon{width:64px;height:64px;display:block;image-rendering:pixelated}
.mc-icon-empty{background:repeating-conic-gradient(#3b3b3b 0 25%,#2a2a2a 0 50%) 0 0/16px 16px}
.mc-name{font-family:var(--f-pix);font-size:16px;color:#fff}
.mc-motd{font-family:var(--f-pix);font-size:15px;line-height:1.25;color:#aaa;white-space:pre-line;margin-top:2px;overflow-wrap:anywhere}
.mc-motd .mc-f,.mc-motd .mc-e,.mc-motd .mc-a,.mc-motd .mc-b,.mc-motd .mc-7{filter:none}
.mc-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-family:var(--f-pix);font-size:15px}
.mc-players{color:#aaa}
.mc-players span{color:#555;margin:0 1px}
.mc-bars{display:inline-flex;align-items:flex-end;gap:1px;height:18px}
.mc-bars i{width:3px;background:#444}
.mc-bars i.on{background:#3f3}
.ping-kv{grid-template-columns:repeat(3,1fr);margin-top:16px}
.ping-cta{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-top:16px;padding:14px 16px;border-radius:12px;background:var(--accent-soft)}
.ping-cta:empty{display:none}
.ping-faq{margin-top:34px;max-width:900px}
.ping-faq h2{font-size:20px;margin-bottom:12px}
.ping-faq h3{font-size:15px;margin:0 0 4px}
.ping-faq p{margin:0;color:var(--ink-2);font-size:14px}
@media (max-width:640px){.ping-kv{grid-template-columns:repeat(2,1fr)}.mc-entry{grid-template-columns:48px minmax(0,1fr)}.mc-icon{width:48px;height:48px}.mc-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
.version-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.version-presets .tag{border:1px solid var(--line);cursor:pointer;font-family:var(--f-mono);font-weight:500}
.version-presets .tag:hover{border-color:var(--accent);color:var(--ink)}
/* шкала версий с двумя ползунками */
.vrange{margin-bottom:14px;max-width:640px}
.vrange-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.vrange-value{font-family:var(--f-pix);font-size:20px;color:var(--accent);font-variant-numeric:tabular-nums}
.vrange-track{position:relative;height:28px}
.vrange-track::before{content:"";position:absolute;left:11px;right:11px;top:11px;height:6px;border-radius:3px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.vrange-fill{position:absolute;top:11px;height:6px;border-radius:3px;background:var(--accent);left:calc(11px + (100% - 22px) * var(--a, 0));width:calc((100% - 22px) * (var(--b, 1) - var(--a, 0)))}
.vrange-track input[type=range]{position:absolute;left:0;width:100%;top:0;height:28px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.vrange-track input[type=range]::-webkit-slider-runnable-track{background:none;border:0}
.vrange-track input[type=range]::-moz-range-track{background:none;border:0}
.vrange-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:22px;height:22px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);box-shadow:var(--shadow);cursor:grab;margin-top:3px}
.vrange-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);box-shadow:var(--shadow);cursor:grab}
.vrange-track input[type=range]:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.1)}
.vrange-track input[type=range]:focus-visible{outline:none}
.vrange-track input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent-soft)}
.vrange-track input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--accent-soft)}
.vrange-ticks{position:relative;height:18px;margin-top:4px}
.vrange-ticks span{position:absolute;left:calc(11px + (100% - 22px) * var(--p, 0));transform:translateX(-50%);font-size:11px;color:var(--ink-3);font-family:var(--f-mono);white-space:nowrap}
.srv-link{color:inherit;text-decoration:none}
.srv-link::after{content:"";position:absolute;inset:0;border-radius:12px}
.srv-link:focus-visible{outline:none}
.srv-link:focus-visible::after{outline:2px solid var(--accent);outline-offset:2px}
.ip-copy{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;max-width:100%;margin-top:8px;padding:3px 3px 3px 9px;border:1px dashed var(--ink-3);border-radius:8px;background:var(--surface-2);color:var(--ink);cursor:pointer;font:inherit}
.ip-copy .ip{font-family:var(--f-mono);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ip-copy .ip-act{flex:none;font-size:12px;font-weight:600;color:var(--accent);background:var(--surface);border-radius:6px;padding:2px 8px}
.ip-copy:hover{border-style:solid;border-color:var(--accent)}
.ip-copy.copied{border-style:solid;border-color:var(--ok)}
.ip-copy.copied .ip-act{color:var(--ok);background:var(--ok-soft)}

/* ============ Rating MC: «игровое» оформление ============ */
/* логотип: пиксельный блок травы + название с плашкой */
.logo{gap:10px;font-size:23px;letter-spacing:.01em}
.logo-block{width:34px;height:34px;flex:none;filter:drop-shadow(0 3px 0 rgba(0,0,0,.14));transition:transform .18s}
.logo:hover .logo-block{transform:translateY(-3px) rotate(-6deg)}
.logo-text{display:inline-flex;align-items:center;gap:6px;line-height:1}
.logo-text b{font-weight:700;font-size:.78em;color:var(--grass-ink);background:var(--grass);padding:4px 6px 5px;border-radius:3px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.22),inset 0 2px 0 rgba(255,255,255,.28);text-shadow:1px 1px 0 rgba(0,0,0,.25)}
.nav nav a.on{box-shadow:0 2px 0 var(--grass);font-weight:500}

/* кнопки как в меню игры: объёмные, с «фаской» */
.btn{border-radius:6px}
.btn.primary{background:var(--grass);color:var(--grass-ink);border-color:var(--grass-lo);font-weight:600;text-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2),inset 0 2px 0 rgba(255,255,255,.25);padding-bottom:9px}
.btn.primary:hover{background:var(--grass-hi);border-color:var(--grass-lo)}
.btn.primary:active{transform:translateY(1px);box-shadow:inset 0 -1px 0 rgba(0,0,0,.2),inset 0 2px 0 rgba(0,0,0,.12)}
.tag-picker input:checked + span{background:var(--grass);border-color:var(--grass-lo);color:var(--grass-ink)}
.pager span.cur{background:var(--grass);border-color:var(--grass-lo);color:var(--grass-ink);font-family:var(--f-pix)}

/* шапка каталога: небо, солнце/луна, облака, полоска травы снизу */
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:16px;margin:4px 0 18px;padding:34px 28px 54px;background:linear-gradient(180deg,var(--sky-1),var(--sky-2));align-items:end}
.hero-text{position:relative;max-width:640px}
.hero h1{font-size:clamp(26px,3.8vw,38px)}
.hero h1 em{color:var(--java)}
.hero h1 em ~ em{color:var(--bedrock)}
.hero p{color:var(--ink-2)}
.hero-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-sky .sun{position:absolute;top:22px;left:64%;width:44px;height:44px;background:#FFE45C;box-shadow:0 0 0 7px rgba(255,228,92,.35),0 0 0 14px rgba(255,228,92,.15)}
.cloud{position:absolute;height:14px;background:#fff;opacity:.9;animation:cloud-drift 70s linear infinite alternate}
.cloud::before{content:"";position:absolute;left:18%;bottom:100%;width:46%;height:12px;background:inherit}
.cloud.c1{top:26px;left:34%;width:110px}
.cloud.c2{top:58px;left:80%;width:78px;opacity:.75;animation-duration:90s;animation-direction:alternate-reverse}
@keyframes cloud-drift{from{translate:-60px 0}to{translate:60px 0}}
.hero::after,.grass-strip{content:"";height:26px;
  background:
    repeating-linear-gradient(90deg,var(--grass-hi) 0 8px,var(--grass) 8px 16px,var(--grass-hi) 16px 20px,var(--grass-lo) 20px 24px,var(--grass) 24px 32px) 0 0/100% 6px no-repeat,
    linear-gradient(var(--grass),var(--grass)) 0 6px/100% 4px no-repeat,
    repeating-linear-gradient(90deg,var(--grass) 0 8px,transparent 8px 12px,var(--grass) 12px 16px,transparent 16px 28px) 0 10px/100% 4px no-repeat,
    linear-gradient(90deg,var(--dirt-lo) 0 4px,transparent 4px) 6px 16px/36px 4px repeat-x,
    linear-gradient(90deg,var(--dirt-hi) 0 4px,transparent 4px) 22px 20px/44px 4px repeat-x,
    linear-gradient(90deg,var(--dirt-lo) 0 4px,transparent 4px) 30px 22px/52px 4px repeat-x,
    var(--dirt)}
.hero::after{position:absolute;left:0;right:0;bottom:0;z-index:-1}
.grass-strip{margin-top:56px;border-radius:6px}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]) .hero-sky{background:
    radial-gradient(circle,#fff 1px,transparent 1.5px) 0 0/97px 53px,
    radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 1.5px) 40px 20px/131px 71px}
  :root:not([data-theme=light]) .hero-sky .sun{background:#E4E8EF;box-shadow:inset -8px -8px 0 #B9C0CC,inset 8px 10px 0 -4px #CDD3DC,0 0 0 8px rgba(228,232,239,.08)}
  :root:not([data-theme=light]) .cloud{opacity:.07}
}
:root[data-theme=dark] .hero-sky{background:
  radial-gradient(circle,#fff 1px,transparent 1.5px) 0 0/97px 53px,
  radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 1.5px) 40px 20px/131px 71px}
:root[data-theme=dark] .hero-sky .sun{background:#E4E8EF;box-shadow:inset -8px -8px 0 #B9C0CC,inset 8px 10px 0 -4px #CDD3DC,0 0 0 8px rgba(228,232,239,.08)}
:root[data-theme=dark] .cloud{opacity:.07}

/* сплэш — жёлтая надпись наискосок, как на титульном экране */
.splash{position:absolute;right:-6px;top:-20px;transform:rotate(-12deg);font-family:var(--f-pix);font-size:17px;font-weight:700;color:#FFFF3F;text-shadow:2px 2px 0 #3F3F0A;white-space:nowrap;pointer-events:none;animation:splash .55s ease-in-out infinite alternate;transform-origin:center}
.splash.long{font-size:14px;top:-14px}
@keyframes splash{from{scale:1}to{scale:1.09}}

/* счётчики как ячейки инвентаря */
.pulse{display:flex;gap:10px;background:none;border:0;border-radius:0;overflow:visible;flex-wrap:wrap}
.pulse .slot{display:flex;align-items:center;gap:12px;background:var(--slot);padding:10px 18px 10px 14px;border-radius:4px;box-shadow:inset 3px 3px 0 var(--slot-lo),inset -3px -3px 0 var(--slot-hi);backdrop-filter:blur(4px)}
.pulse .slot span{display:block}
.pulse small{color:var(--ink-2)}
.pulse strong{font-size:28px;line-height:1.1;display:block}
.px{width:28px;height:auto;flex:none;image-rendering:pixelated}
.pulse .px{animation:px-bob 2.4s ease-in-out infinite}
.pulse .slot + .slot .px{animation-delay:-1.2s}
@keyframes px-bob{50%{translate:0 -3px}}

/* подборки — блочные кнопки */
.collections{margin:0 0 16px}
.collections a{border-radius:6px;box-shadow:inset 0 -2px 0 var(--line)}
.collections a.on{background:var(--grass);color:var(--grass-ink);border-color:var(--grass-lo);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}

/* карточка сервера */
.srv{border-radius:10px;transition:transform .12s,box-shadow .12s,border-color .12s}
.srv:hover{border-color:var(--grass);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--grass)}
.srv-link::after{border-radius:10px}
.srv.top-diamond{background:linear-gradient(90deg,var(--top-diamond),var(--surface) 42%)}
.srv.top-gold{background:linear-gradient(90deg,var(--top-gold),var(--surface) 42%)}
.srv.top-iron{background:linear-gradient(90deg,var(--top-iron),var(--surface) 42%)}
.rank.ore span{display:grid;place-items:center;width:30px;height:30px;margin:auto;font-size:16px;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.35);border-radius:3px;box-shadow:inset -3px -3px 0 rgba(0,0,0,.22),inset 3px 3px 0 rgba(255,255,255,.4)}
.rank.ore-diamond span{background:var(--diamond)}
.rank.ore-gold span{background:var(--gold)}
.rank.ore-iron span{background:var(--iron);color:#3A4048;text-shadow:1px 1px 0 rgba(255,255,255,.5)}
/* полоска заполненности — как шкала опыта */
.bar.xp{position:relative;height:7px;border-radius:2px;background:var(--xp-track);box-shadow:inset 0 0 0 1px var(--xp-cut)}
.bar.xp i{border-radius:0;background:linear-gradient(180deg,#C2F76A,#7FD836 55%,#4E9A12)}
.bar.xp::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),var(--xp-cut) calc(10% - 1px) 10%)}
.dot{border-radius:1px!important}
.dot.on{background:var(--emerald)}
.dot.off{background:var(--redstone);box-shadow:0 0 6px var(--redstone)}


@media (max-width:700px){
  .hero{padding:44px 18px 48px;border-radius:12px}
  .hero-sky .sun{display:none}
  .cloud.c2{display:none}
  .splash{font-size:13px;right:10px;top:-30px}
  .splash.long{font-size:11px;right:16px;top:-22px}
  .pulse{width:100%}
  .pulse .slot{flex:1;min-width:0}
  .pulse strong{font-size:24px}
}
@media (max-width:640px){
  .srv .rank.ore{display:block;position:absolute;top:-8px;left:-6px;z-index:1}
  .srv .rank.ore span{width:24px;height:24px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.splash,.cloud,.pulse .px{animation:none}.srv:hover{transform:none}}

/* MOTD на фоне земли, как в списке серверов в игре. Текстура своя (16×16), затемнена, чтобы текст читался. */
.motd,.motd.full,.mc-entry{background:linear-gradient(rgba(0,0,0,.52),rgba(0,0,0,.52)),url(/assets/dirt.png) 0 0/48px 48px;image-rendering:pixelated;color:#AAAAAA;text-shadow:2px 2px 0 rgba(0,0,0,.55)}
.motd{display:block;font-family:var(--f-pix);font-size:14px;line-height:1.3;margin-top:6px;padding:6px 10px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35);-webkit-line-clamp:unset;overflow:hidden;max-width:100%;width:fit-content;min-width:min(100%,260px)}
.motd-text{white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.motd.full{font-size:16px;padding:12px 14px;width:auto;border-radius:6px;white-space:pre-line}
.mc-entry{border-color:#6f6f6f}
.motd .mc-0,.mc-entry .mc-0{text-shadow:none}

/* картинка вместо MOTD (класс без слова banner — иначе её прячут блокировщики рекламы) */
.motd-img{display:block;width:468px;max-width:100%;height:auto;aspect-ratio:468/60;margin-top:6px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.motd-img.full{margin-top:0}
/* В карточках MOTD и картинка вместо MOTD — одна и та же рамка 468 × 60,
   чтобы серверы с баннером и без выглядели одинаково. Текст MOTD масштабируется вместе с рамкой. */
.motd:not(.full),.motd-img:not(.full){box-sizing:border-box;width:468px;max-width:100%;height:auto;aspect-ratio:468/60;margin-top:6px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.2)}
.motd:not(.full){min-width:0;container-type:inline-size;display:flex;align-items:center;padding:0 2.2%;overflow:hidden}
.motd:not(.full) .motd-text{font-size:clamp(9px,3.1cqw,15px);line-height:1.22;width:100%}
.motd-img:not(.full){object-fit:cover}
/* отступы между блоками фильтра: у <details> gap из flex работает не во всех браузерах */
.filters-box > :not(summary) + :not(summary){margin-top:14px}
.filters-box details summary{padding-block:2px}
/* избранное: пиксельная звезда в углу карточки и кнопка на странице сервера */
.fav-form{margin:0}
.fav-btn .px{width:18px;filter:grayscale(1) opacity(.45);transition:filter .15s,transform .15s}
.fav-btn.on .px{filter:none;animation:fav-pop .3s ease-out}
.fav-btn:hover .px{filter:grayscale(0) opacity(.9);transform:scale(1.12)}
.fav-btn.on:hover .px{filter:none}
.fav-form.page .fav-btn .px{width:16px}
.fav-form.page .fav-btn.on{border-color:var(--gold);background:var(--top-gold)}
.fav-count{color:var(--ink-3);font-weight:400}
@keyframes fav-pop{40%{transform:scale(1.35) rotate(-10deg)}}
@media (prefers-reduced-motion:reduce){.fav-btn.on .px{animation:none}}
/* Текст MOTD и строки «как в игре» — обычным шрифтом: пиксельный плохо читается, особенно кириллица */
.motd,.motd.full,.mc-name,.mc-motd,.mc-side{font-family:var(--f-body)}
.motd,.mc-motd{font-weight:500}
.logo{font-weight:800;letter-spacing:-.01em}
.hero h1 em,.ping-hero h1 em{font-weight:800}
.splash{font-weight:800}
/* подсказки поиска */
.searchbar.has-suggest{position:relative}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow),0 12px 32px rgba(0,0,0,.12);padding:6px;max-height:min(70vh,520px);overflow:auto}
.suggest-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 8px;border-radius:7px;color:var(--ink);text-decoration:none}
.suggest-item.on{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--grass)}
.suggest-icon{width:36px;height:36px;border-radius:6px;image-rendering:pixelated;display:grid;place-items:center;color:#fff;font-family:var(--f-pix);font-weight:700;font-size:17px;object-fit:cover}
.suggest-mid{min-width:0;display:flex;flex-direction:column}
.suggest-name{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggest-addr{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suggest mark{background:var(--warn-soft);color:inherit;border-radius:2px;padding:0 1px}
.suggest-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.suggest-online{font-family:var(--f-pix);font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink)}
.suggest-online::before{content:"";display:inline-block;width:7px;height:7px;border-radius:1px;background:var(--emerald);margin-right:5px;vertical-align:1px}
.suggest-online.off{font-family:var(--f-body);font-weight:400;font-size:12px;color:var(--ink-3)}
.suggest-online.off::before{background:var(--redstone)}
.suggest-empty{padding:10px;font-size:13.5px;color:var(--ink-2)}
.suggest-all{display:block;width:100%;margin-top:4px;padding:8px;border:0;border-top:1px solid var(--line);background:none;color:var(--accent);font:inherit;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;border-radius:0 0 6px 6px}
.suggest-all:hover{background:var(--surface-2)}
@media (max-width:640px){.suggest-item{grid-template-columns:32px minmax(0,1fr) auto}.suggest-icon{width:32px;height:32px}}
/* голоса в карточке: всегда видны, клик ведёт на голосование */
.vote-chip{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 9px 3px 7px;border-radius:6px;font-size:12.5px;color:var(--ink-2);text-decoration:none;background:var(--ok-soft);box-shadow:inset 0 -2px 0 rgba(0,0,0,.06);white-space:nowrap}
.vote-chip b{font-family:var(--f-pix);font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}
.vote-chip .vote-arrow{color:var(--grass);font-size:11px}
.vote-chip.zero{background:var(--surface-2)}
.vote-chip.zero .vote-arrow{color:var(--ink-3)}
.vote-chip:hover{background:var(--grass);color:var(--grass-ink)}
.vote-chip:hover b,.vote-chip:hover .vote-arrow{color:var(--grass-ink)}
@media (max-width:640px){.srv .online-cell{flex-wrap:wrap;row-gap:6px}.srv .online-cell .bar{min-width:90px}.srv .online-cell .vote-chip{margin-top:0}}
/* ============ Фильтры каталога: три выпадающих окна над списком ============ */
.ftools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;position:relative}
.dd{position:relative}
.dd > summary{list-style:none}
.dd > summary::-webkit-details-marker{display:none}
.dd-btn{gap:6px;user-select:none}
.dd-btn::after{content:"";width:7px;height:7px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:translateY(-2px) rotate(45deg);margin-left:4px;transition:transform .15s}
.dd[open] > .dd-btn::after{transform:translateY(1px) rotate(-135deg)}
.dd[open] > .dd-btn{border-color:var(--grass);box-shadow:0 0 0 3px color-mix(in srgb,var(--grass) 22%,transparent)}
.dd-btn.on{border-color:var(--grass);background:color-mix(in srgb,var(--grass) 12%,var(--surface))}
.dd-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;background:var(--grass);color:var(--grass-ink);font-size:12px}
.dd-val{font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:min(380px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow),0 16px 40px rgba(0,0,0,.14);padding:14px;display:flex;flex-direction:column;gap:12px}
.dd-wide{width:min(760px,calc(100vw - 32px))}
.dd-scroll{max-height:min(56vh,460px);overflow:auto;display:flex;flex-direction:column;gap:16px;padding-right:4px;overscroll-behavior:contain}
.dd-group{margin:0}
.dd-group legend,.dd-group > label{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;margin-bottom:6px}
.dd-checks{columns:3 170px;column-gap:16px}
.dd-check{display:flex;gap:8px;align-items:center;font-size:13.5px;padding:3px 2px;cursor:pointer;break-inside:avoid;border-radius:5px}
.dd-check:hover{background:var(--surface-2)}
.dd-check input{accent-color:var(--grass);width:15px;height:15px;margin:0;flex:none}
.dd-check input:disabled + span{color:var(--ink-3)}
.dd-check small{color:var(--ink-3);font-size:.9em}
.dd-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}
.dd-foot .small{margin-right:auto}
.dd-search{padding-block:7px}
.seg{display:flex;flex-wrap:wrap;gap:4px;padding:3px;background:var(--surface-2);border-radius:8px}
.seg label{flex:1 1 auto;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;padding:6px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.seg input:checked + span{background:var(--grass);color:var(--grass-ink);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.seg input:focus-visible + span{outline:2px solid var(--accent);outline-offset:1px}
.vtree-grid{columns:4 150px;column-gap:18px}
.vbranch{break-inside:avoid;padding-bottom:2px}
.vbranch-head{display:flex;align-items:center;justify-content:space-between;gap:4px}
.vbranch-head .dd-check{flex:1;font-weight:600}
.vtoggle{border:0;background:var(--surface-2);color:var(--ink-3);border-radius:5px;font:inherit;font-size:11px;padding:2px 6px;cursor:pointer;display:inline-flex;gap:3px;align-items:center}
.vtoggle::after{content:"▸"}
.vbranch.open .vtoggle::after{content:"▾"}
.vtoggle:hover{color:var(--ink)}
.vchildren{padding:0 0 4px 22px;border-left:2px solid var(--line);margin-left:8px}
.js-vtree .vbranch:not(.open) .vchildren{display:none}
.toggle-chip{cursor:pointer}
.toggle-chip input{position:absolute;opacity:0;pointer-events:none}
.toggle-chip span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 12px;font-size:14px;font-weight:500;color:var(--ink-2)}
.toggle-chip span::before{content:"";width:8px;height:8px;border-radius:1px;background:var(--ink-3)}
.toggle-chip input:checked + span{border-color:var(--grass);color:var(--ink);background:color-mix(in srgb,var(--grass) 12%,var(--surface))}
.toggle-chip input:checked + span::before{background:var(--emerald)}
.toggle-chip input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.ftools-sort{margin-left:auto;display:flex;gap:8px;align-items:center}
.ftools-sort select{width:auto;padding-block:7px}
.active-filters .clear-all{background:none;color:var(--accent);font-weight:600}
.active-filters .clear-all::after{content:none}
.prange{max-width:none;margin:0}
.prange-inputs{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.prange-inputs .input{width:110px;margin-left:4px}
.js-prange .prange-inputs{display:none}
@media (max-width:700px){
  .dd{position:static}
  .dd-panel,.dd-wide{left:0;right:0;width:auto}
  .ftools-sort{margin-left:0;width:100%}
  .ftools-sort select{flex:1}
  .dd-checks{columns:2 140px}
}
/* «Часто ищут» — популярные запросы по тегам */
.often{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}
.often-label{font-size:13px;color:var(--ink-3);margin-right:2px}
.often a{font-size:13px;padding:3px 10px;border-radius:999px;border:1px dashed var(--line);color:var(--ink-2);text-decoration:none;background:transparent}
.often a:hover{border-style:solid;border-color:var(--grass);color:var(--ink)}
.often a.on{border-style:solid;border-color:var(--grass);background:color-mix(in srgb,var(--grass) 12%,var(--surface));color:var(--ink)}
@media (max-width:640px){.often{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.often a,.often-label{flex:none}}
/* переключатель темы */
.theme-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-2);cursor:pointer;padding:0}
.theme-btn:hover{color:var(--ink);border-color:var(--ink-3)}
.theme-btn svg{width:18px;height:18px}
.theme-btn .ico-moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn .ico-moon{display:block}:root:not([data-theme=light]) .theme-btn .ico-sun{display:none}}
:root[data-theme=dark] .theme-btn .ico-moon{display:block}
:root[data-theme=dark] .theme-btn .ico-sun{display:none}
/* шильдики серверов */
.badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;line-height:1;padding:4px 8px 4px 6px;border-radius:5px;text-decoration:none;white-space:nowrap;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);letter-spacing:.01em}
.badge .px{width:13px}
.badge-top{background:#FFF1C2;color:#7A5200}
.badge-popular{background:#FFE1D2;color:#A2320E}
.badge-voted{background:#D8F5E1;color:#17703A}
.badge-loved{background:#FFE0E6;color:#A31D3C}
.badge-rising{background:#D6F4F8;color:#0B6675}
.badge-stable{background:#E4EAF1;color:#3C4B5C}
.badge-veteran{background:#E2F7F5;color:#146B66}
.badge-more{background:var(--surface-2);color:var(--ink-3)}
a.badge:hover{filter:brightness(.96);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]) .badge-top{background:#3A2E0B;color:#FFD86B}
  :root:not([data-theme=light]) .badge-popular{background:#3D1E12;color:#FF9D72}
  :root:not([data-theme=light]) .badge-voted{background:#15331F;color:#6FE39A}
  :root:not([data-theme=light]) .badge-loved{background:#3B1620;color:#FF8FA6}
  :root:not([data-theme=light]) .badge-rising{background:#0F3036;color:#6FE3F0}
  :root:not([data-theme=light]) .badge-stable{background:#243039;color:#B5C4D3}
  :root:not([data-theme=light]) .badge-veteran{background:#123331;color:#7FE8DE}
}
:root[data-theme=dark] .badge-top{background:#3A2E0B;color:#FFD86B}
:root[data-theme=dark] .badge-popular{background:#3D1E12;color:#FF9D72}
:root[data-theme=dark] .badge-voted{background:#15331F;color:#6FE39A}
:root[data-theme=dark] .badge-loved{background:#3B1620;color:#FF8FA6}
:root[data-theme=dark] .badge-rising{background:#0F3036;color:#6FE3F0}
:root[data-theme=dark] .badge-stable{background:#243039;color:#B5C4D3}
:root[data-theme=dark] .badge-veteran{background:#123331;color:#7FE8DE}
.server-head .badges{margin-top:2px}
.server-head .badge{font-size:12.5px;padding:5px 9px 5px 7px}
.server-head .badge .px{width:15px}

/* похожие серверы */
.similar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.similar-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;transition:border-color .12s,transform .12s}
.similar-item:hover{border-color:var(--grass);transform:translateY(-1px)}
.similar-item .srv-icon{width:40px;height:40px;font-size:18px!important}
.similar-mid{min-width:0;display:flex;flex-direction:column;gap:3px}
.similar-mid b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.similar-meta{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:12px}
.similar-online{font-family:var(--f-pix);font-weight:700;font-variant-numeric:tabular-nums}
.similar-online::before{content:"";display:inline-block;width:7px;height:7px;border-radius:1px;background:var(--emerald);margin-right:5px;vertical-align:1px}
.similar-online.off{color:var(--ink-3);font-weight:400}
.similar-online.off::before{background:var(--redstone)}
/* слоган сервера */
.srv-slogan{font-size:13.5px;color:var(--ink-2);font-style:italic;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srv-slogan.big{font-size:16px;margin:0;white-space:normal}
.char-counter{font-size:12px;color:var(--ink-3);text-align:right}
/* шильдики справа от названия в карточке */
.srv-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.srv-name .badges{display:inline-flex;margin:0 0 0 4px}
.srv-name .verified{vertical-align:0}
/* слоган справа от баннера/MOTD */
.srv-motdrow{display:flex;align-items:center;gap:14px;margin-top:6px}
.srv-motdrow:empty{display:none}
.srv-motdrow .motd:not(.full),.srv-motdrow .motd-img:not(.full){margin-top:0;flex:0 1 468px}
.srv-motdrow .srv-slogan{flex:1 1 160px;min-width:0;margin:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;font-size:14px}
@media (max-width:900px){
  .srv-motdrow{flex-direction:column;align-items:stretch;gap:6px}
  .srv-motdrow .motd:not(.full),.srv-motdrow .motd-img:not(.full){flex:none}
  .srv-motdrow .srv-slogan{-webkit-line-clamp:2;flex:none}
  .srv-name .badges{flex-basis:100%;margin-left:0}
}
@media (max-width:640px){.srv .badge{font-size:10.5px;padding:3px 6px 3px 5px;gap:4px}.srv .badge .px{width:11px}}
.dd-check .px{width:14px;flex:none}
/* прогресс к шильдикам в кабинете */
.bprog{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.bprog-item{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px}
.bprog-item.have{border-color:color-mix(in srgb,var(--grass) 55%,var(--line));background:color-mix(in srgb,var(--grass) 6%,var(--surface))}
.bprog-item .badge{align-self:flex-start;font-size:12.5px;padding:5px 9px 5px 7px}
.bprog-item .badge .px{width:15px}
.badge.off{filter:grayscale(1);opacity:.65}
.bprog-body{display:flex;flex-direction:column;gap:6px}
.bprog-bar{height:8px;border-radius:2px;background:var(--xp-track);overflow:hidden;position:relative}
.bprog-bar i{display:block;height:100%;background:linear-gradient(180deg,#C2F76A,#7FD836 55%,#4E9A12)}
.bprog-bar::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),var(--xp-cut) calc(10% - 1px) 10%)}
/* страница статистики */
.stats-hero{padding-block:10px 16px}
.stats-hero h1 em{font-style:normal;font-family:var(--f-pix);font-weight:800;color:var(--grass)}
.stats-hero p{max-width:70ch;margin:8px 0 0}
.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:18px}
.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.stat-tile small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.stat-tile strong{font-family:var(--f-pix);font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.stats-grid .card h2{font-size:16px}
.stats-grid .card > p.small{margin:4px 0 14px}
.stats-wide{grid-column:1/-1}
@media (max-width:860px){.stats-grid{grid-template-columns:1fr}}
.hbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hbars li{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr);gap:10px;align-items:center;font-size:13.5px}
.hbars-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);text-decoration:none}
a.hbars-label:hover{text-decoration:underline}
.hbars-track{display:flex;align-items:center;gap:8px;min-width:0}
.hbars-track i{display:block;height:14px;background:var(--c1);border-radius:0 4px 4px 0;flex:none;max-width:calc(100% - 56px)}
.hbars-val{font-size:12.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.hbars li:hover .hbars-track i{filter:brightness(1.1)}
.share{display:flex;gap:2px;height:16px;border-radius:4px;overflow:hidden;margin:6px 0 10px}
.share i{display:block;min-width:4px}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px}
.legend li{display:flex;align-items:center;gap:6px}
.legend .sw{width:10px;height:10px;border-radius:2px}
.linechart{position:relative}
.linechart svg{width:100%;height:auto;display:block;touch-action:pan-y}
.linechart .ax{font-size:11px;fill:var(--ink-3);font-family:var(--f-mono)}
.lc-tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:6px 9px;font-size:12.5px;white-space:nowrap;transform:translate(-50%,-100%);margin-top:-10px}
.lc-tip b{font-variant-numeric:tabular-nums}
.stats-grid h2 + .hbars{margin-top:10px}
@media (max-width:640px){.linechart{overflow-x:auto}.linechart svg{min-width:600px}}
/* компактная карточка: баннер/MOTD слева, слоган + теги + IP справа */
.srv-body{display:grid;grid-template-columns:minmax(0,468px) minmax(0,1fr);gap:8px 16px;align-items:center;margin-top:6px}
.srv-body.no-visual{grid-template-columns:minmax(0,1fr)}
.srv-body .motd:not(.full),.srv-body .motd-img:not(.full){margin-top:0}
.srv-info{display:flex;flex-direction:column;gap:6px;min-width:0;align-items:flex-start}
.srv-info .srv-slogan{margin:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;font-size:13.5px}
.srv .srv-info .tags{margin-top:0}
.srv-info .ip-copy{margin-top:0}
.srv{padding-block:10px}
@media (max-width:1000px){
  .srv-body{grid-template-columns:minmax(0,1fr)}
}
/* сколько раз скопировали IP — справа от кнопки */
.ip-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;max-width:100%}
.ip-row .ip-copy{flex:0 1 auto;min-width:0;max-width:100%}
.ip-stats{display:flex;flex-direction:column;font-size:11.5px;line-height:1.3;color:var(--ink-3);white-space:nowrap;flex:none}
.ip-stats b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
/* на широком экране кнопка и счётчик в одну строку; длинный адрес обрезается многоточием */
@media (min-width:1001px){.srv-info .ip-row{flex-wrap:nowrap}.srv-info .ip-stats{font-size:11px}}
.ip-copy .ip-ico{display:grid;place-items:center;width:26px;height:22px;padding:0}
.ip-copy .ip-ico svg{width:14px;height:14px}
.ip-copy.copied .ip-ico{font-size:13px}
/* профиль игрока */
.profile-head{display:flex;align-items:center;gap:16px;padding-block:8px 18px;flex-wrap:wrap}
.profile-ava{width:64px;height:64px;border-radius:10px;display:grid;place-items:center;color:#fff;font-family:var(--f-pix);font-weight:800;font-size:30px;box-shadow:inset -4px -4px 0 rgba(0,0,0,.2),inset 4px 4px 0 rgba(255,255,255,.18)}
.similar-grid.one{grid-template-columns:1fr}
.profile-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.profile-review{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.profile-review p{margin:6px 0 0;font-size:14px;color:var(--ink-2)}
.stats-grid .card h2{margin-bottom:12px}
.review-author{color:inherit;text-decoration:none}.review-author:hover{text-decoration:underline}
/* хлебные крошки */
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;color:var(--ink-3);margin:2px 0 10px}
.breadcrumbs a{color:var(--ink-2);text-decoration:none}
.breadcrumbs a:hover{color:var(--ink);text-decoration:underline}
.breadcrumbs [aria-current]{color:var(--ink-2)}
.breadcrumbs .sep{color:var(--ink-3)}
/* блок «О подборке» */
.about{margin-top:22px}
.about h2{font-size:17px;margin-bottom:8px}
.about p{margin:0 0 8px;color:var(--ink-2);max-width:90ch}
.about p b{color:var(--ink)}
.about-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.about-links .tag{font-size:12.5px;padding:3px 9px}
/* Votifier Tester */
.vt-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start;max-width:1100px}
@media (max-width:900px){.vt-grid{grid-template-columns:1fr}}
.vt-key{min-height:120px;font-size:12.5px;word-break:break-all}
.vt-result h2{font-size:17px;margin-bottom:6px}
.vt-result p{margin:0 0 8px}
.vt-result.ok{border-color:color-mix(in srgb,var(--ok) 55%,var(--line));background:color-mix(in srgb,var(--ok) 7%,var(--surface))}
.vt-result.ok h2{color:var(--ok)}
.vt-result.bad{border-color:color-mix(in srgb,var(--bad) 55%,var(--line));background:color-mix(in srgb,var(--bad) 6%,var(--surface))}
.vt-result.bad h2{color:var(--bad)}
.vt-hints{margin:0 0 8px;padding-left:18px;color:var(--ink-2)}
.vt-hints li{margin-bottom:4px}
.vt-grid .seg span{white-space:normal}
/* выпадающее меню «Инструменты» в шапке */
.nav-dd{position:relative}
.nav-dd > summary{list-style:none;cursor:pointer;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;user-select:none}
.nav-dd > summary::-webkit-details-marker{display:none}
.nav-dd > summary::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s;opacity:.7}
.nav-dd[open] > summary::after{transform:translateY(1px) rotate(-135deg)}
.nav-dd > summary:hover,.nav-dd[open] > summary{color:var(--ink)}
.nav-dd > summary.on{color:var(--ink);box-shadow:0 2px 0 var(--grass);font-weight:500}
.nav-dd-menu{position:absolute;top:calc(100% + 10px);left:-12px;z-index:50;min-width:280px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow),0 16px 40px rgba(0,0,0,.14);padding:6px;display:flex;flex-direction:column}
.nav nav .nav-dd-menu a{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;color:var(--ink);box-shadow:none}
.nav nav .nav-dd-menu a:hover,.nav nav .nav-dd-menu a.on{background:var(--surface-2)}
.nav nav .nav-dd-menu a.on b{color:var(--grass)}
.nav-dd-menu b{font-weight:600;font-size:14px}
.nav-dd-menu small{font-size:12px;color:var(--ink-3)}
@media (max-width:640px){.nav nav{position:relative}.nav-dd{position:static}.nav-dd-menu{left:0;right:0;min-width:0;top:calc(100% + 6px)}}
/* генератор MOTD */
.motdgen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:20px;align-items:start}
@media (max-width:980px){.motdgen{grid-template-columns:1fr}}
.motd-editor{display:flex;flex-direction:column;gap:14px}
.motd-toolbar{display:flex;flex-direction:column;gap:8px}
.motd-swatches{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}
@media (max-width:640px){.motd-swatches{grid-template-columns:repeat(8,minmax(0,1fr))}}
.swatch{aspect-ratio:1;border:0;border-radius:4px;background:var(--sw);cursor:pointer;box-shadow:inset 0 -3px 0 rgba(0,0,0,.25),inset 0 0 0 1px rgba(0,0,0,.25);min-height:24px}
.swatch:hover{transform:translateY(-1px);box-shadow:inset 0 -3px 0 rgba(0,0,0,.25),0 0 0 2px var(--ink-3)}
.motd-styles{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.stylebtn{min-width:34px;height:32px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;font-size:14px}
.stylebtn:hover{border-color:var(--ink-3)}
.hexpick{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:3px 8px 3px 4px;font-size:12.5px;color:var(--ink-2);cursor:pointer;background:var(--surface)}
.hexpick input[type=color]{width:26px;height:24px;border:0;padding:0;background:none;cursor:pointer}
.motd-line{font-size:14px}
.motd-grad{border-top:1px solid var(--line);padding-top:12px}
.motd-grad .row-flex{gap:8px}
.motd-grad .hint{margin-top:6px}
.motd-preview{max-width:none}
.motd-preview .mc-motd{min-height:2.5em;white-space:pre}
.motd-warn{color:var(--warn);margin-top:8px}
.motd-code{min-height:96px;font-size:12.5px;margin:10px 0;word-break:break-all}
.motd-out .seg span{padding-inline:8px;font-size:12.5px}
.motd-preview .mc-text{min-width:0;overflow:hidden}
.motd-preview .mc-motd{overflow:hidden;text-overflow:clip}
.motd-preview .mc-motd{font-size:12.5px;line-height:1.35}.motd-preview .mc-name{font-size:14px}
.motd-preview{position:relative;grid-template-columns:64px minmax(0,1fr)}.motd-preview .mc-side{position:absolute;right:8px;top:6px}.motd-preview .mc-name{padding-right:110px}
.motd-preview .mc-side{flex-direction:row-reverse;align-items:center;gap:8px}
/* ============ Страница сервера ============ */
.sv-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:center;
  padding:24px;border-radius:16px;margin-bottom:14px;background:linear-gradient(135deg,var(--sky-1),var(--sky-2))}
.sv-hero.has-cover{background:linear-gradient(90deg,rgba(8,12,20,.86),rgba(8,12,20,.55) 60%,rgba(8,12,20,.35)),var(--cover) center/cover;color:#fff}
.sv-hero.has-cover .tag:not(.java):not(.bedrock){background:rgba(255,255,255,.16);color:#fff}
.sv-hero.has-cover .sv-slogan,.sv-hero.has-cover .sv-reviews span{color:rgba(255,255,255,.85)}
.sv-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;z-index:-1;
  background:repeating-linear-gradient(90deg,var(--grass-hi) 0 8px,var(--grass) 8px 16px,var(--grass-lo) 16px 20px,var(--grass) 20px 28px)}
.sv-hero-main{display:flex;gap:18px;align-items:flex-start;min-width:0}
.sv-hero .srv-icon.lg{width:96px;height:96px;border-radius:12px;box-shadow:0 6px 20px rgba(0,0,0,.25);flex:none}
.sv-title{display:flex;flex-direction:column;gap:8px;min-width:0}
.sv-title h1{font-size:clamp(26px,3.4vw,38px)}
.sv-slogan{margin:0;font-size:16px;font-style:italic;color:var(--ink-2)}
.sv-reviews{margin:0;text-decoration:none;font-size:14px}
.sv-reviews b{color:inherit}
.sv-hero .badges{margin-top:0}
.sv-join{background:var(--surface);color:var(--ink);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.sv-join-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.sv-join .ipbox code{font-size:16px;font-weight:600;padding:11px 12px}
.sv-join-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sv-join-actions .btn,.sv-join-actions form,.sv-join-actions .fav-btn{width:100%}
.sv-count{margin-left:6px;padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.15);font-size:12px}
.sv-play{background:var(--bedrock);border-color:var(--bedrock);color:#fff}
.sv-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:20px}
.sv-stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.sv-stat small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-stat strong{font-family:var(--f-pix);font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}
.sv-stat strong span{font-size:13px;color:var(--ink-3);font-family:var(--f-body);font-weight:500}
.sv-stat .bar{margin-top:6px}
.sv-links{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sv-link{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:14px;transition:border-color .12s,transform .12s}
.sv-link svg{width:18px;height:18px;flex:none}
.sv-link:hover{transform:translateY(-1px);border-color:currentColor}
.sv-link-globe svg{color:var(--accent)}
.sv-link-chat svg{color:#5865F2}
.sv-link-plane svg{color:#27A6E5}
.sv-link-people svg{color:#0077FF}
.sv-link-play svg{color:#FF3B30}
.sv-link-cart svg{color:var(--gold)}
.sv-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--ink-2)}
.sv-steps b{color:var(--ink)}
.sv-cross{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.sv-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sv-feed li{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}
.sv-feed li:last-child{border-bottom:0}
.sv-feed-ico{width:8px;height:8px;border-radius:2px;background:var(--ink-3);align-self:center}
.sv-feed-copy .sv-feed-ico,.sv-feed-play .sv-feed-ico{background:var(--accent)}
.sv-feed-vote .sv-feed-ico{background:var(--emerald)}
.sv-feed-review .sv-feed-ico,.sv-feed-record .sv-feed-ico{background:var(--gold)}
.sv-feed-favorite .sv-feed-ico{background:#FF5C8A}
.sv-feed-up .sv-feed-ico{background:var(--ok)}
.sv-feed-down .sv-feed-ico{background:var(--redstone)}
.sv-feed-text{color:var(--ink-2);min-width:0;overflow-wrap:anywhere}
.sv-feed-text a{color:var(--ink);text-decoration:none}
.sv-feed-stars{color:var(--gold);letter-spacing:-1px}
.sv-feed-time{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.sv-info b a{color:inherit}
@media (max-width:1100px){.sv-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.sv-hero{grid-template-columns:1fr;padding:18px}}
@media (max-width:640px){
  .sv-hero-main{flex-direction:column;gap:12px}
  .sv-hero .srv-icon.lg{width:72px;height:72px}
  .sv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sv-stat strong{font-size:20px}
  .sv-join-actions{grid-template-columns:1fr}
  .sv-join .ipbox code{font-size:14px}
}
/* шильдик «Бонус за голос» */
.badge-bonus{background:#FFE6E0;color:#A8321C}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .badge-bonus{background:#3D1B14;color:#FF9E85}}
:root[data-theme=dark] .badge-bonus{background:#3D1B14;color:#FF9E85}
/* алмазы */
.dm-head{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between;padding-block:4px 18px}
.dm-head p{margin:6px 0 0;max-width:62ch}
.dm-balance{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 18px}
.dm-balance .px{width:34px}
.dm-balance small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.dm-balance strong{font-family:var(--f-pix);font-size:30px;line-height:1}
.dm-h2{font-size:18px;margin:0 0 10px}
.dm-packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.dm-pack{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:20px 16px 16px}
.dm-pack .btn{margin-top:10px}
.dm-amount{display:flex;align-items:center;gap:8px;font-family:var(--f-pix);font-weight:800;font-size:30px}
.dm-amount .px{width:26px}
.dm-bonus{position:absolute;top:10px;right:10px;font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--ok-soft);color:var(--ok)}
.dm-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink-2)}
.dm-servers{display:flex;flex-wrap:wrap;gap:8px}
.dm-plus{color:var(--ok)}
.dm-minus{color:var(--bad)}
/* продвижение в кабинете */
.promo-state{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-bottom:14px}
.promo-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px 22px;align-items:start}
.promo-controls{display:flex;flex-direction:column;gap:14px}
.promo-controls .lbl{font-size:13px;font-weight:600;color:var(--ink)}
.promo-days span{display:flex;flex-direction:column;line-height:1.25}
.promo-days small{font-size:11px;font-weight:400;opacity:.8}
.promo-amount{display:flex;align-items:center;gap:12px}
.promo-amount-in{position:relative;flex:none;width:150px}
.promo-amount-in .px{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px}
.promo-amount-in .input{padding-left:34px;font-weight:700;font-size:16px}
.promo-range{flex:1;min-width:0;accent-color:var(--diamond)}
.promo-quick{display:flex;flex-wrap:wrap;gap:6px}
.btn.small{padding:4px 10px;font-size:12.5px}
.promo-preview{border:1px solid color-mix(in srgb,var(--diamond) 45%,var(--line));background:color-mix(in srgb,var(--diamond) 7%,var(--surface));border-radius:12px;padding:14px 16px}
.promo-place{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:10px}
.promo-place small{flex-basis:100%;font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.promo-place strong{font-family:var(--f-pix);font-size:34px;line-height:1;color:var(--ink)}
.promo-place .up{color:var(--ok);font-weight:600}
.promo-ladder{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}
.promo-ladder li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 8px;border-radius:7px;background:var(--surface)}
.promo-ladder li b{color:var(--ink-3);font-weight:600}
.promo-ladder li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.promo-ladder li i{font-style:normal;font-weight:700;display:inline-flex;align-items:center;gap:3px;color:color-mix(in srgb,var(--diamond) 60%,var(--ink))}
.promo-ladder li i .px{width:11px}
.promo-ladder li.me{background:var(--grass);color:var(--grass-ink);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.promo-ladder li.me b,.promo-ladder li.me i{color:inherit}
.promo-ladder li.gap{background:none;display:block;text-align:center;color:var(--ink-3);padding:0;line-height:1}
.promo-ladder li.rest{background:none;color:var(--ink-3);font-style:italic}
.promo-submit{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;border-top:1px solid var(--line);padding-top:14px}
.promo-submit [data-pv-short]{color:var(--bad);font-weight:600}
@media (max-width:760px){.promo-form{grid-template-columns:1fr}.promo-amount{flex-wrap:wrap}.promo-amount-in{width:100%}}
.dm-custom{display:flex;flex-direction:column;justify-content:center}
.dm-custom .promo-amount-in{width:100%;margin:6px 0 4px}
.tbl .px{width:12px;vertical-align:-1px}
.dm-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);text-decoration:none;font-family:var(--f-pix);font-weight:700;font-size:14px}
.dm-chip .px{width:14px}
.dm-chip:hover{border-color:var(--diamond)}
.promo-chip{position:relative;z-index:1;display:inline-flex;align-items:center;gap:3px;vertical-align:2px;padding:1px 6px 1px 4px;border-radius:5px;font-size:11.5px;font-weight:700;line-height:17px;text-decoration:none;
  color:color-mix(in srgb,var(--diamond) 60%,var(--ink));background:color-mix(in srgb,var(--diamond) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--diamond) 45%,transparent)}
.promo-chip .px{width:12px}
.promo-chip:hover{border-color:var(--diamond)}
/* публичная страница «Продвижение» */
.pr-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px 36px;align-items:center;padding-block:10px 26px}
.pr-hero h1 em{font-style:normal;font-family:var(--f-pix);color:var(--diamond);text-shadow:0 2px 0 color-mix(in srgb,var(--diamond) 35%,transparent)}
.pr-hero p{color:var(--ink-2);margin:10px 0 18px;max-width:60ch}
.pr-demo{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}
.pr-demo-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:9px;background:var(--surface-2);font-size:13.5px}
.pr-demo-row b{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;background:var(--iron);color:#1d2328;font-size:12px}
.pr-demo-row.promo{background:color-mix(in srgb,var(--diamond) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--diamond) 40%,transparent)}
.pr-demo-row.promo b{background:var(--diamond)}
.pr-demo-row span{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;font-weight:600}
.pr-demo-row small{color:var(--ink-3)}
.pr-demo-row .promo-chip{font-style:normal}
.pr-demo-sep{font-size:11.5px;color:var(--ink-3);text-align:center;padding:2px 0;border-top:1px dashed var(--line);margin-top:2px;padding-top:6px}
.pr-h2{font-size:20px;margin:30px 0 12px}
.pr-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;counter-reset:none}
.pr-steps .card{padding:18px}
.pr-steps b{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--grass);color:var(--grass-ink);font-family:var(--f-pix);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2);margin-bottom:10px}
.pr-steps h3{font-size:15px;margin:0 0 4px}
.pr-steps p{margin:0;font-size:13.5px;color:var(--ink-2)}
.pr-grid{margin-top:12px}
.pr-grid .card h2{font-size:16px;margin-bottom:10px}
.pr-now{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pr-now li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 4px;border-bottom:1px solid var(--line)}
.pr-now li:last-child{border-bottom:0}
.pr-now li > b{width:22px;color:var(--ink-3);text-align:right}
.pr-now .srv-icon{width:28px;height:28px;border-radius:6px;font-size:15px!important;flex:none}
.pr-now a{font-weight:600;color:var(--ink);text-decoration:none}
.pr-now a:hover{text-decoration:underline}
.pr-now small{margin-left:auto}
.pr-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--diamond) 8%,var(--surface));border-color:color-mix(in srgb,var(--diamond) 40%,var(--line))}
.pr-cta h2{font-size:18px}
.dm-bonus-inline{font-size:11px;font-weight:700;color:var(--ok);background:var(--ok-soft);padding:1px 5px;border-radius:4px}
@media (max-width:900px){.pr-hero{grid-template-columns:1fr}.pr-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pr-steps{grid-template-columns:1fr}.pr-grid{grid-template-columns:1fr}}
/* уведомления: колокольчик в шапке */
.bell{position:relative;display:inline-grid;place-items:center;width:36px;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--surface);text-decoration:none}
.bell .px{width:16px;filter:grayscale(1) opacity(.55);transition:filter .15s}
.bell:hover .px,.bell.has .px,.bell.on .px{filter:none}
.bell:hover,.bell.on{border-color:var(--gold)}
.bell.has .px{animation:bell-ring 3.5s ease-in-out infinite;transform-origin:50% 10%}
@keyframes bell-ring{0%,88%,100%{rotate:0deg}91%{rotate:14deg}94%{rotate:-12deg}97%{rotate:6deg}}
.bell-n{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:5px;background:var(--redstone);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25),0 0 0 2px var(--bg)}
@media (prefers-reduced-motion:reduce){.bell.has .px{animation:none}}
/* страница уведомлений */
.nt-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:4px 0 18px}
.nt-head h1{font-size:28px;margin:0 6px 0 0}
.nt-head form{margin:0}
.nt-tabs a{display:block;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.nt-tabs a small{font-size:11px;opacity:.75;margin-left:2px}
.nt-tabs a.on{background:var(--grass);color:var(--grass-ink);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.nt-list{display:flex;flex-direction:column;gap:6px;max-width:860px}
.nt-day{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:14px 0 2px;font-weight:600}
.nt-day:first-child{margin-top:0}
.nt-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
a.nt-item:hover{border-color:var(--ink-3);transform:translateY(-1px)}
.nt-item.new{border-color:color-mix(in srgb,var(--gold) 60%,var(--line));background:color-mix(in srgb,var(--gold) 7%,var(--surface));box-shadow:inset 3px 0 0 var(--gold)}
.nt-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:var(--surface-2);box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.nt-ico .px{width:20px}
.t-down .nt-ico{background:var(--bad-soft)}
.t-up .nt-ico,.t-welcome .nt-ico{background:var(--ok-soft)}
.t-promo_soon .nt-ico,.t-promo_end .nt-ico,.t-diamonds .nt-ico{background:color-mix(in srgb,var(--diamond) 16%,var(--surface))}
.nt-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.nt-text b{font-weight:600;font-size:14.5px}
.nt-text span{font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
.nt-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);white-space:nowrap;align-self:start;padding-top:2px}
.nt-dot{width:8px;height:8px;border-radius:2px;background:var(--redstone)}
.nt-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px;max-width:860px}
.nt-empty .px{width:44px;margin-bottom:10px}
.nt-empty b{font-size:17px}
.nt-empty p{margin:6px 0 0;max-width:46ch}
.nt-settings{margin-top:28px;max-width:860px}
.nt-settings h2{font-size:17px;margin-bottom:12px}
.nt-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
.nt-group{align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.nt-group .nt-ico{width:32px;height:32px;flex:none;background:var(--surface)}
.nt-group .nt-ico .px{width:16px}
.nt-group b{display:block;font-size:13.5px}
.nt-group small{display:block;color:var(--ink-3);font-size:12px;line-height:1.35}
.nt-group.locked{opacity:.7;cursor:default}
@media (max-width:640px){.nt-groups{grid-template-columns:1fr}.nt-item{grid-template-columns:34px minmax(0,1fr);padding:10px 12px}.nt-ico{width:34px;height:34px}.nt-meta{grid-column:2;padding:0}}
/* шапка на телефоне: кнопки переносятся, а не вылезают за экран */
@media (max-width:520px){.nav .right{flex-wrap:wrap;margin-left:0;width:100%;row-gap:8px}.nav .right .btn.primary{margin-left:auto}}
/* «Поднять в топ»: поддержка сервера без аккаунта */
.boost-btn{margin-top:8px;border-color:color-mix(in srgb,var(--diamond) 55%,var(--line));background:color-mix(in srgb,var(--diamond) 12%,var(--surface));font-weight:600}
.boost-btn .px{width:15px}
.boost-btn:hover{border-color:var(--diamond);background:color-mix(in srgb,var(--diamond) 20%,var(--surface))}
.sv-feed-boost .sv-feed-ico{background:var(--diamond)}
.t-boost .nt-ico{background:color-mix(in srgb,var(--diamond) 16%,var(--surface))}
.bs-head{display:flex;gap:16px;align-items:center;padding-block:4px 18px}
.bs-head .srv-icon{width:64px;height:64px;flex:none;border-radius:12px}
.bs-head h1{font-size:clamp(22px,3vw,30px);margin:0}
.bs-head h1 em{font-style:normal;color:var(--accent)}
.bs-head p{margin:6px 0 0;max-width:70ch}
.bs-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bs-share{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:-2px 0 14px;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--diamond) 55%,var(--line));border-radius:10px;color:var(--ink-2)}
.bs-share span{flex-basis:100%}
.bs-share code{font-size:12.5px;background:var(--surface-2);padding:4px 8px;border-radius:6px;overflow-wrap:anywhere}
.bs-status{max-width:620px;margin:24px auto;text-align:center;padding:34px 26px}
.bs-status h1{font-size:26px;margin:0 0 8px}
.bs-status p{margin:0 auto 16px;max-width:52ch}
.bs-big .px{width:56px;margin-bottom:10px;animation:splash .6s ease-in-out infinite alternate}
.bs-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:18px 0 22px}
.bs-facts div{min-width:140px;padding:10px 14px;border-radius:10px;background:var(--surface-2)}
.bs-facts small{display:block;font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.bs-facts strong{font-family:var(--f-pix);font-size:22px;display:inline-flex;align-items:center;gap:6px}
.bs-facts .px{width:16px}
.pr-fans{display:flex;gap:18px;align-items:center;margin-top:8px;background:color-mix(in srgb,#FF5C8A 7%,var(--surface));border-color:color-mix(in srgb,#FF5C8A 35%,var(--line))}
.pr-fans h2{font-size:18px;margin:0 0 4px}
.pr-fans p{margin:0}
.pr-fans-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background:var(--surface)}
.pr-fans-ico .px{width:30px}
@media (max-width:640px){.bs-fields{grid-template-columns:1fr}.pr-fans{flex-direction:column;align-items:flex-start}}
.bs-bal{display:inline-flex;align-items:center;gap:4px}
.bs-bal .px{width:12px;margin-left:2px}
.bs-bal a{margin-left:4px;color:var(--bad);font-weight:600}
.bs-bal-btn{border-color:color-mix(in srgb,var(--diamond) 55%,var(--line));background:color-mix(in srgb,var(--diamond) 12%,var(--surface));font-weight:600}
.bs-bal-btn:disabled{opacity:.55;cursor:not-allowed}
/* «Какой сервер поднять?» на странице продвижения */
.pr-pick{margin-top:18px;max-width:560px}
.pr-pick label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.pr-pick label .muted{font-weight:400}
.pr-pick-bar{position:relative;display:flex;gap:8px}
.pr-pick-bar .input{flex:1;min-width:0;padding-block:10px;font-size:15px;border-color:color-mix(in srgb,var(--diamond) 55%,var(--line))}
.pr-pick-bar .input:focus{outline:none;border-color:var(--diamond);box-shadow:0 0 0 3px color-mix(in srgb,var(--diamond) 25%,transparent)}
.pr-pick-bar .btn .px{width:14px}
.pr-pick .suggest{right:0}
.suggest-go{font-size:11.5px;font-weight:700;color:color-mix(in srgb,var(--diamond) 60%,var(--ink));background:color-mix(in srgb,var(--diamond) 14%,var(--surface));border-radius:5px;padding:1px 6px}
/* блок «Продвижение сервера» на странице сервера */
.sv-promo{margin-top:20px}
.sv-promo.on{border-color:color-mix(in srgb,var(--diamond) 45%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--diamond) 7%,var(--surface)),var(--surface) 140px)}
.sv-promo-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:14px}
.sv-promo-head h2{font-size:16px;margin:0;display:inline-flex;align-items:center;gap:8px}
.sv-promo-head h2 .px{width:18px}
.sv-promo-head .boost-btn{margin-top:0}
.sv-promo-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.sv-promo-facts div{padding:10px 12px;border-radius:10px;background:var(--surface-2);display:flex;flex-direction:column;gap:2px}
.sv-promo-facts small{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.sv-promo-facts strong{font-family:var(--f-pix);font-size:20px;display:inline-flex;align-items:center;gap:6px}
.sv-promo-facts .px{width:15px}
.sv-promo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sv-promo-list li{display:grid;grid-template-columns:minmax(0,1.2fr) auto minmax(0,1.3fr) minmax(150px,.8fr);gap:8px 14px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.sv-promo-list li.queued{border-style:dashed;opacity:.85}
.spl-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.spl-state{display:flex;align-items:center;gap:8px;justify-content:flex-end;color:var(--ink-2)}
.spl-bar{flex:1;max-width:120px;height:8px;border-radius:2px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.spl-bar i{display:block;height:100%;background:var(--diamond)}
.sv-promo-empty{margin:0;color:var(--ink-2);font-size:14px}
@media (max-width:760px){.sv-promo-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.sv-promo-list li{grid-template-columns:minmax(0,1fr) auto}.spl-when,.spl-state{grid-column:1/-1;justify-content:flex-start}}
/* аватар: голова скина поверх буквы */
.ava{position:relative;flex:none;display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:calc(var(--s) / 6);overflow:hidden;color:#fff;font-family:var(--f-pix);font-weight:800;font-size:calc(var(--s) * .46);line-height:1;box-shadow:inset -2px -2px 0 rgba(0,0,0,.2),inset 2px 2px 0 rgba(255,255,255,.18)}
.ava img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.profile-about{margin:8px 0 0;max-width:70ch;color:var(--ink-2)}
/* кнопка кабинета в шапке */
.me-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:600;max-width:180px}
.me-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-chip:hover,.me-chip.on{border-color:var(--grass)}
/* личный кабинет */
.acc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px;align-items:start;margin-top:6px}
.acc-side{position:sticky;top:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.acc-me{display:flex;gap:10px;align-items:center;padding:2px 2px 4px}
.acc-me b{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}
.acc-me a{color:var(--ink-3);text-decoration:none}
.acc-me a:hover{color:var(--accent)}
.acc-balance{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:9px;background:color-mix(in srgb,var(--diamond) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--diamond) 40%,transparent);color:var(--ink);text-decoration:none;font-size:13px}
.acc-balance .px{width:16px}
.acc-balance b{margin-left:auto;font-family:var(--f-pix);font-size:17px}
.acc-nav{display:flex;flex-direction:column;gap:2px}
.acc-nav a,.acc-logout button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:500;border:0;background:none;font-family:inherit;cursor:pointer;width:100%;text-align:left}
.acc-nav a:hover,.acc-logout button:hover{background:var(--surface-2);color:var(--ink)}
.acc-nav a.on{background:var(--grass);color:var(--grass-ink);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.acc-ico{width:14px;height:14px;flex:none;fill:currentColor}
.acc-nav em{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;min-width:20px;padding:1px 6px;border-radius:5px;background:var(--surface-2);color:var(--ink-2);text-align:center}
.acc-nav a.on em{background:rgba(0,0,0,.18);color:inherit}
.acc-nav em.hot{background:var(--redstone);color:#fff}
.acc-nav .acc-admin{margin-top:6px;border-top:1px dashed var(--line);border-radius:0 0 8px 8px;padding-top:11px}
.acc-logout{margin:0;border-top:1px solid var(--line);padding-top:8px}
.acc-logout button{color:var(--ink-3)}
.acc-main,.acc-side{min-width:0}
.acc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;margin-bottom:16px}
.acc-head h1,.acc-title{font-size:26px;margin:0}
.acc-head p{margin:4px 0 0}
.acc-h2{font-size:16px;margin:0 0 12px}
.acc-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.acc-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none}
a.acc-tile:hover{border-color:var(--ink-3)}
.acc-tile small{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.acc-tile strong{font-family:var(--f-pix);font-size:26px;display:inline-flex;align-items:center;gap:7px}
.acc-tile strong .px{width:18px}
.acc-tile span{font-size:12.5px;color:var(--ink-3)}
.acc-tile.dm{background:color-mix(in srgb,var(--diamond) 8%,var(--surface));border-color:color-mix(in srgb,var(--diamond) 40%,var(--line))}
.acc-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.acc-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:12px}
.acc-card-head h2{font-size:16px;margin:0;display:inline-flex;align-items:center;gap:7px}
.acc-card-head h2 .px{width:16px}
.acc-srv-mini,.acc-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.acc-srv-mini li{display:flex;align-items:center;gap:10px;min-width:0}
.acc-srv-mini .srv-icon{width:34px;height:34px;flex:none;border-radius:7px;font-size:17px!important}
.acc-srv-mini a{display:flex;flex-direction:column;min-width:0;flex:1;color:var(--ink);text-decoration:none}
.acc-srv-mini a b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-srv-on{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap}
.acc-srv-on.off{color:var(--ink-3);font-weight:400}
.acc-notes li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center}
.acc-notes .nt-ico{width:30px;height:30px}
.acc-notes .nt-ico .px{width:15px}
.acc-note-t{font-size:13.5px;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-notes li.new .acc-note-t{font-weight:600}
.acc-promo{margin-top:16px}
.acc-quick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px}
.acc-quick a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px;color:var(--ink-2);text-decoration:none;font-size:13px}
.acc-quick a:hover{border-color:var(--ink-3);color:var(--ink)}
.acc-quick b{font-family:var(--f-pix);font-size:18px;color:var(--ink)}
.acc-servers,.acc-favs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.acc-srv,.acc-fav{padding:16px;display:flex;flex-direction:column;gap:12px}
.acc-srv-top{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;min-width:0}
.acc-srv-top .srv-icon{width:44px;height:44px;flex:none;border-radius:9px}
.acc-srv-title{display:flex;flex-direction:column;min-width:0;flex:1}
.acc-srv-title b{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-srv-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.acc-srv-stats div{padding:8px 10px;border-radius:8px;background:var(--surface-2);display:flex;flex-direction:column;gap:1px;font-size:13.5px}
.acc-srv-stats small{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.acc-srv-actions{display:flex;flex-wrap:wrap;gap:6px}
.acc-srv-actions .boost-btn{margin:0}
.acc-srv-actions .boost-btn .px{width:12px}
.acc-fav-bottom{display:flex;align-items:center;gap:8px}
.acc-fav-bottom form{margin:0}
.acc-ava-row{display:flex;align-items:center;gap:16px}
.acc-settings{max-width:760px}
.acc-danger{border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}
.acc-danger summary{cursor:pointer;list-style:none}
.acc-danger summary::-webkit-details-marker{display:none}
.acc-danger summary::before{content:"▸ ";color:var(--bad)}
.acc-danger details[open] summary::before{content:"▾ "}
.acc .nt-head{margin-top:0}
.acc .nt-list,.acc .nt-empty,.acc .nt-settings{max-width:none}
@media (max-width:1000px){.acc-tiles,.acc-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.acc-servers,.acc-favs,.acc-cols{grid-template-columns:1fr}}
@media (max-width:820px){
  .acc{grid-template-columns:1fr;gap:14px}
  .acc-side{position:static;padding:10px}
  .acc-me,.acc-balance{display:none}
  .acc-nav{flex-direction:row;overflow-x:auto;gap:4px;scrollbar-width:none}
  .acc-nav a{flex:none;width:auto;padding:8px 10px}
  .acc-nav .acc-admin{margin:0;border:0;padding-top:8px;border-radius:8px}
  .acc-logout{display:none}
}
@media (max-width:520px){.acc-head h1,.acc-title{font-size:22px}.acc-tile strong{font-size:22px}}
/* вход через внешние сервисы */
.oauth-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.oauth-btn{justify-content:center;gap:9px;padding-block:10px;font-weight:600}
.oauth-btn svg,.linked-logo svg{width:18px;height:18px;flex:none}
.oauth-btn:hover{border-color:var(--ink-3)}
.oauth-or{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:var(--ink-3);font-size:12.5px}
.oauth-or::before,.oauth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.linked-list{display:flex;flex-direction:column;gap:8px}
.linked-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.linked-row.on{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));background:color-mix(in srgb,var(--ok) 6%,var(--surface))}
.linked-row form{margin:0}
.linked-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--surface-2);flex:none}
.linked-info{display:flex;flex-direction:column;flex:1;min-width:0}
.linked-info .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* «Сейчас играют»: головы скинов */
.players.heads span{display:inline-flex;align-items:center;gap:5px;padding:3px 7px 3px 3px}
.players.heads img{width:16px;height:16px;border-radius:2px;image-rendering:pixelated}
/* «Когда лучше заходить» на странице сервера */
.heat-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0 12px}
.heat-tip{display:flex;flex-direction:column;gap:1px;padding:9px 12px;border-radius:9px;background:var(--surface-2)}
.heat-tip small{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.heat-tip b{font-size:14.5px}
.heat-tip span{font-size:12.5px;color:var(--ink-3)}
.heat-tip.best{background:color-mix(in srgb,var(--grass) 14%,var(--surface))}
.heat-tip.now.lvl-high b{color:var(--grass)}
.heat-tip.now.lvl-low b{color:var(--ink-3)}
.heat-pub td{height:18px;border-radius:2px}
.heat-pub td.best{box-shadow:inset 0 0 0 2px var(--gold)}
.heat-pub td.now{box-shadow:inset 0 0 0 2px var(--ink)}
.heat-scale-g{background:linear-gradient(90deg,color-mix(in srgb,var(--grass) 8%,var(--surface-2)),var(--grass))}
.heat-key{display:inline-flex;align-items:center;gap:5px}
.heat-key i{width:12px;height:12px;border-radius:2px;background:var(--surface-2)}
.heat-key .k-now{box-shadow:inset 0 0 0 2px var(--ink)}
.heat-key .k-best{box-shadow:inset 0 0 0 2px var(--gold)}
@media (max-width:640px){.heat-tips{grid-template-columns:1fr}}
/* «Полезно» на отзывах */
.review-sort{display:flex;align-items:center;gap:4px;margin:-4px 0 12px}
.review-sort a{padding:3px 9px;border-radius:6px;color:var(--ink-2);text-decoration:none}
.review-sort a.on{background:var(--grass);color:var(--grass-ink)}
.review-author{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink)}
.review-top{font-size:11px}
.review-foot{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.review-foot form{margin:0}
.helpful-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.helpful-btn .thumb{width:12px;height:12px;fill:currentColor}
.helpful-btn:hover{border-color:var(--grass);color:var(--ink)}
.helpful-btn.on{background:color-mix(in srgb,var(--grass) 16%,var(--surface));border-color:var(--grass);color:var(--ink);font-weight:600}
.helpful-btn.static{cursor:default}
.helpful-btn.pop .thumb{animation:thumb .35s ease-out}
@keyframes thumb{40%{transform:scale(1.4) rotate(-12deg)}}
/* подбор сервера */
.pk-hero{text-align:center;max-width:680px;margin:6px auto 18px}
.pk-hero h1{font-size:clamp(26px,4vw,38px)}
.pk-hero h1 em{font-style:normal;font-family:var(--f-pix);color:var(--grass)}
.pk-hero p{margin:8px 0 0}
.pk-form{max-width:760px;margin:0 auto 22px;padding:22px 24px}
.pk-form.pk-compact{max-width:none;padding:14px 16px}
.pk-progress{height:8px;border-radius:2px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;margin-bottom:18px}
.pk-progress i{display:block;height:100%;background:var(--grass);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2);transition:width .25s}
.pk-form:not(.js) .pk-progress{display:none}
.pk-step{border:0;margin:0 0 18px;padding:0;min-width:0}
.pk-form.js .pk-step{margin:0}
.pk-step legend{font-size:20px;font-weight:700;margin-bottom:14px;padding:0;display:flex;flex-direction:column;gap:2px}
.pk-step legend small{font-size:13px;font-weight:400}
.pk-num{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.pk-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.pk-opt{cursor:pointer}
.pk-opt input{position:absolute;opacity:0;pointer-events:none}
.pk-opt > span{display:flex;flex-direction:column;gap:2px;height:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .12s,transform .12s}
.pk-opt:hover > span{border-color:var(--ink-3);transform:translateY(-1px)}
.pk-opt b{font-size:14.5px}
.pk-opt small{font-size:12.5px;color:var(--ink-3)}
.pk-opt input:checked + span{border-color:var(--grass);background:color-mix(in srgb,var(--grass) 12%,var(--surface));box-shadow:inset 0 0 0 1px var(--grass)}
.pk-opt input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.pk-opts.big .pk-opt > span{padding:14px 16px}
.pk-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--surface-2);margin-bottom:6px}
.pk-ico .px{width:18px}
.pk-opt.chk > span{flex-direction:row;align-items:center;gap:10px}
.pk-opt.chk > span::before{content:"";width:16px;height:16px;border-radius:4px;border:2px solid var(--line);flex:none}
.pk-opt.chk input:checked + span::before{background:var(--grass);border-color:var(--grass);box-shadow:inset 0 0 0 2px var(--surface)}
.pk-hint{margin:10px 0 0}
.pk-nav{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.pk-nav .btn .px{width:14px}
.pk-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pk-summary span{padding:3px 9px;border-radius:6px;background:var(--surface-2);font-size:13px}
.pk-summary .btn{margin-left:auto}
.pk-compact .pk-steps{margin-top:14px}
.pk-res-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.pk-res-head h1{font-size:24px;margin:0}
.pk-list{display:flex;flex-direction:column;gap:14px}
.pk-item{display:flex;flex-direction:column;gap:6px}
.pk-why{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pk-rank{font-size:12px;font-weight:700;color:var(--grass);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.pk-chip{font-size:12.5px;padding:2px 8px;border-radius:5px;background:color-mix(in srgb,var(--grass) 12%,var(--surface));color:var(--ink);border:1px solid color-mix(in srgb,var(--grass) 35%,transparent)}
.pk-cta{display:inline-flex;align-items:center;gap:6px;font-weight:600;border-color:color-mix(in srgb,var(--grass) 55%,var(--line));background:color-mix(in srgb,var(--grass) 12%,var(--surface))}
.pk-cta .px{width:14px}
@media (max-width:560px){.pk-opts{grid-template-columns:1fr 1fr}.pk-form{padding:16px}.pk-step legend{font-size:17px}}
.server-grid > *{min-width:0}
.pk-chip.miss{background:var(--surface-2);border-color:var(--line);color:var(--ink-3)}
/* виджеты в кабинете сервера */
.wg-tabs{margin-bottom:2px}
.wg-preview{padding:14px;border-radius:10px;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/16px 16px;border:1px solid var(--line);overflow-x:auto}
.wg-preview img{display:block;max-width:100%;height:auto;image-rendering:auto}
.wg-codes{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.wg-code{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.wg-code code{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.wg-more{margin-top:14px}
.wg-more summary{cursor:pointer;color:var(--ink-2)}
@media (max-width:640px){.wg-code{grid-template-columns:minmax(0,1fr) auto}.wg-code > span{grid-column:1/-1}}
/* «Серверы как…» */
.like-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.like-card{display:flex;flex-direction:column;gap:6px;padding:18px;color:var(--ink);text-decoration:none;transition:border-color .12s,transform .12s}
.like-card:hover{border-color:var(--grass);transform:translateY(-2px)}
.like-card b{font-size:16px}
.like-count{margin-top:auto;padding-top:6px;color:var(--grass);font-weight:600}
.like-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:var(--surface-2)}
.like-ico .px{width:20px}
.like-ico.big{width:64px;height:64px;border-radius:12px;flex:none}
.like-ico.big .px{width:32px}
.like-head{display:flex;gap:18px;align-items:flex-start;padding-block:6px 18px}
.like-head h1{font-size:clamp(24px,3.4vw,34px);margin:0}
.like-head p{margin:6px 0 10px;color:var(--ink-2);max-width:70ch}
.like-about{margin-top:18px}
.like-about h2{font-size:17px;margin-bottom:6px}
.like-about p{color:var(--ink-2)}
.like-more{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:16px}
/* «Я здесь играю» */
.played-form{margin:8px 0 0}
.played-btn{gap:7px}
.played-btn .px{width:14px;filter:grayscale(1) opacity(.6)}
.played-btn.on{border-color:#FF5C8A;background:color-mix(in srgb,#FF5C8A 10%,var(--surface));font-weight:600}
.played-btn.on .px{filter:none}
.members{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.members a{display:inline-flex;border-radius:6px;transition:transform .12s}
.members a:hover{transform:translateY(-2px)}
.members-more{font-size:12px;font-weight:700;color:var(--ink-3);padding:0 4px}
/* достижения */
.ach-card{margin-bottom:16px}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.ach{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;opacity:.72}
.ach.got{opacity:1;border-style:solid;border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 8%,var(--surface))}
.ach-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--surface-2);flex:none}
.ach-ico .px{width:20px;filter:grayscale(1) opacity(.45)}
.ach.got .ach-ico{background:color-mix(in srgb,var(--gold) 22%,var(--surface));box-shadow:inset 0 -3px 0 rgba(0,0,0,.12)}
.ach.got .ach-ico .px{filter:none}
.ach-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.ach-t b{font-size:13.5px}
.ach-t small{font-size:11.5px;color:var(--ink-3);line-height:1.35}
.ach-bar{display:block;height:5px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:3px}
.ach-bar i{display:block;height:100%;background:var(--gold)}
@media (max-width:1000px){.acc-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* рейтинг месяца */
.mt-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;align-items:flex-end;padding-block:4px 16px}
.mt-head h1{font-size:clamp(24px,3.4vw,34px);margin:0}
.mt-head h1 em{font-style:normal;font-family:var(--f-pix);color:var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.15)}
.mt-head p{margin:6px 0 0;max-width:62ch}
.mt-months{display:flex;flex-wrap:wrap;gap:4px}
.mt-months a{padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:var(--surface);font-size:13px;color:var(--ink-2);text-decoration:none}
.mt-months a.on{background:var(--grass);border-color:var(--grass-lo);color:var(--grass-ink);font-weight:600}
.mt-votes h2,.mt-cols h2{font-size:16px;margin:0;display:inline-flex;align-items:center;gap:8px}
.mt-votes h2 .px,.mt-cols h2 .px{width:16px}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;max-width:760px;margin:6px auto 18px}
.podium-place{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--ink);text-decoration:none;min-width:0}
.podium-place b{font-size:15px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium-place .srv-icon.lg{width:64px;height:64px}
.podium-v{font-size:13px;color:var(--ink-2);font-weight:600}
.podium-step{display:block;width:100%;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--grass) 0 10px,#7A5230 10px);box-shadow:inset 0 -4px 0 rgba(0,0,0,.18)}
.podium-place.p1 .podium-step{height:90px}
.podium-place.p2 .podium-step{height:62px}
.podium-place.p3 .podium-step{height:42px}
.podium-place:hover b{color:var(--accent)}
.mt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.mt-list li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 8px;border-radius:8px}
.mt-list li:nth-child(odd){background:var(--surface-2)}
.mt-n{font-family:var(--f-pix);font-weight:700;color:var(--ink-3);text-align:center}
.mt-v{font-family:var(--f-pix);font-weight:700;white-space:nowrap}
.mt-v.up{color:var(--ok)}
.mt-srv{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);text-decoration:none}
.mt-srv .srv-icon{width:32px;height:32px;flex:none;border-radius:6px;font-size:16px!important}
.mt-srv span{display:flex;flex-direction:column;min-width:0}
.mt-srv b,.mt-srv small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mt-srv:hover b{color:var(--accent)}
.mt-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.mt-cols .card > p.small{margin:4px 0 10px}
.sv-awards{display:flex;flex-direction:column;gap:6px}
.sv-award{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);text-decoration:none}
.sv-award .rank{flex:none}
.sv-award .rank span{width:22px;height:22px;font-size:11px}
@media (max-width:900px){.mt-cols{grid-template-columns:1fr}}
@media (max-width:560px){.podium-place .srv-icon.lg{width:48px;height:48px}.podium-place b{font-size:13px}}
/* рейтинги сервера */
.sv-ratings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-8px 0 20px}
.sv-rating{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.sv-r-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;flex:none;box-shadow:inset 0 -3px 0 rgba(0,0,0,.12)}
.sv-r-ico .px{width:22px}
.r-overall .sv-r-ico{background:color-mix(in srgb,var(--gold) 22%,var(--surface))}
.r-votes .sv-r-ico{background:color-mix(in srgb,#FF5C8A 16%,var(--surface))}
.r-online .sv-r-ico{background:color-mix(in srgb,#FFB02E 18%,var(--surface))}
.sv-r-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.sv-r-body small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.sv-r-body strong{font-family:var(--f-pix);font-size:26px;line-height:1.1}
.sv-r-body strong span{font-family:var(--f-body);font-size:13px;font-weight:600;color:var(--ink-2)}
.sv-r-of{font-size:12.5px;color:var(--ink-3)}
.sv-r-note{font-size:12.5px;color:var(--ink-2);margin-top:4px}
.sv-r-bar{display:block;height:5px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-top:6px}
.sv-r-bar i{display:block;height:100%;background:var(--grass)}
.r-overall .sv-r-bar i{background:var(--gold)}
@media (max-width:900px){.sv-ratings{grid-template-columns:1fr}}
/* MOTD / баннер в шапке сервера — как строка в списке серверов игры */
.sv-motd{margin:2px 0 0;max-width:468px}
.sv-motd .motd:not(.full),.sv-motd .motd-img:not(.full){margin-top:0;width:100%}
.sv-hero.has-cover .sv-motd .motd,.sv-hero.has-cover .sv-motd .motd-img{box-shadow:inset 0 0 0 1px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.35)}
/* Обратная связь */
.fb-hero{display:flex;gap:16px;align-items:center;margin:4px 0 20px}
.fb-hero h1{font-size:clamp(26px,3.2vw,34px);margin:0 0 4px}
.fb-hero p{margin:0;max-width:640px}
.fb-hero-ico,.fb-sent-ico{flex:none;width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:var(--sky-1);box-shadow:inset 0 -4px 0 rgba(0,0,0,.08)}
.fb-hero-ico svg,.fb-sent-ico svg{width:30px;height:30px}
.fb-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.fb-grid > *{min-width:0}
@media (max-width:900px){.fb-grid{grid-template-columns:1fr}}
.fb-form fieldset{border:0;padding:0;margin:0;min-width:0}
.fb-form legend{margin-bottom:8px;padding:0}
.fb-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.fb-topic{position:relative;cursor:pointer}
.fb-topic input{position:absolute;opacity:0;pointer-events:none}
.fb-topic span{display:flex;flex-direction:column;gap:2px;height:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .15s,background .15s,box-shadow .15s}
.fb-topic b{font-size:14px}
.fb-topic small{font-size:12px;color:var(--ink-3);line-height:1.3}
.fb-topic:hover span{border-color:var(--grass)}
.fb-topic input:checked + span{border-color:var(--grass);background:color-mix(in srgb,var(--grass) 12%,var(--surface));box-shadow:inset 0 0 0 1px var(--grass)}
.fb-topic input:focus-visible + span{outline:2px solid var(--grass);outline-offset:2px}
.has-err .fb-topics .fb-topic span{border-color:var(--bad-soft)}
.fb-me{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--surface-2)}
.fb-under{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.fb-count{white-space:nowrap;font-variant-numeric:tabular-nums}
.fb-count.near{color:var(--warn)}
.fb-page{overflow-wrap:anywhere}
.fb-submit{align-self:flex-start;min-width:180px}
.fb-sent{display:flex;gap:16px;align-items:flex-start}
.fb-sent h2{font-size:20px;margin:0 0 6px}
.fb-sent p{margin:0 0 12px}
.fb-sent-ico{background:var(--ok-soft)}
.fb-help{display:flex;flex-direction:column;gap:4px}
.fb-help .label{margin-bottom:4px}
.fb-help a{display:flex;gap:10px;align-items:center;padding:8px;border-radius:8px;text-decoration:none;color:var(--ink)}
.fb-help a:hover{background:var(--surface-2)}
.fb-help a svg{width:22px;height:22px;flex:none}
.fb-help a span{display:flex;flex-direction:column;min-width:0}
.fb-help b{font-size:14px}.fb-help small{font-size:12px;color:var(--ink-3)}
.fb-note{display:flex;gap:10px;align-items:flex-start}
.fb-note svg{width:22px;height:22px;flex:none;margin-top:2px}
.fb-note p{margin:0}
.fb-h2{font-size:18px;margin:0 0 12px}
.fb-mine{display:flex;flex-direction:column;gap:8px}
.fb-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.fb-item summary{display:flex;gap:8px;align-items:center;cursor:pointer;list-style:none;flex-wrap:wrap}
.fb-item summary::-webkit-details-marker{display:none}
.fb-item-text{flex:1;min-width:120px;color:var(--ink-2);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-item[open] .fb-item-text{display:none}
.fb-msg{margin-top:10px;white-space:normal;overflow-wrap:anywhere;font-size:14.5px;line-height:1.5}
.fb-reply{margin-top:10px;padding:10px 12px;border-left:3px solid var(--grass);background:var(--surface-2);border-radius:0 8px 8px 0;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}
.fb-adm{display:flex;flex-direction:column;gap:6px}
.fb-adm.fb-new{border-left:3px solid var(--warn)}
.fb-adm-from{overflow-wrap:anywhere}
.fb-adm .fb-msg{margin-top:4px;padding:10px 12px;background:var(--surface-2);border-radius:8px}
.fb-answer summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--grass-lo);margin:4px 0}
.fb-adm-actions{margin-top:4px;gap:6px}
.fb-topic{font-weight:400}
.fb-topic small{font-weight:400}
@media (max-width:560px){.fb-topics{grid-template-columns:1fr 1fr}.fb-topic small{display:none}.fb-topic span{padding:10px}.fb-hero{align-items:flex-start}.fb-hero-ico{width:44px;height:44px}}
.seo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.seo-grid > div{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:10px;min-width:0}
.seo-grid small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.seo-grid b{font-size:20px}.seo-grid b.ok{color:var(--ok)}.seo-grid b.bad{color:var(--warn)}
.seo-grid .small{overflow-wrap:anywhere}
@media (max-width:760px){.seo-grid{grid-template-columns:1fr}}
/* Динамика к прошлой неделе */
.sv-delta{display:inline-flex;align-self:flex-start;margin-top:4px;padding:1px 6px;border-radius:5px;font-size:11.5px;font-weight:600;white-space:nowrap;cursor:help;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.sv-delta.up{background:var(--ok-soft);color:var(--ok)}
.sv-delta.down{background:var(--bad-soft);color:var(--bad)}
.sv-delta.flat{background:var(--surface-2);color:var(--ink-3)}
a.sv-stat-link{text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
a.sv-stat-link:hover{border-color:var(--grass);transform:translateY(-1px)}
.sv-stat-more{margin-top:auto;padding-top:4px;font-size:11.5px;color:var(--grass-lo);font-weight:600}
:root[data-theme=dark] .sv-stat-more{color:var(--grass-hi)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sv-stat-more{color:var(--grass-hi)}}
/* Игроки также играют на */
.also-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-bottom:12px}
.also-count{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2)}
.also-count svg{width:12px;height:12px}
.also-bar{display:block;height:4px;margin-top:5px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.also-bar i{display:block;height:100%;background:var(--grass)}
.also-play .similar-mid{min-width:0}
/* Страница статуса */
.st-head{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:14px}
.st-title{display:flex;gap:14px;align-items:center;min-width:0}
.st-title h1{font-size:clamp(22px,3vw,30px);margin:0 0 2px;overflow-wrap:anywhere}
.st-now{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:12px;min-width:0}
.st-now.on{background:var(--ok-soft)}.st-now.off{background:var(--bad-soft)}
.st-now div{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-now b{font-size:17px}.st-now.on b{color:var(--ok)}.st-now.off b{color:var(--bad)}
.st-now span{font-size:14px;color:var(--ink-2)}
.st-now small{font-size:12px;color:var(--ink-3)}
.st-dot{flex:none;width:14px;height:14px;border-radius:50%;background:currentColor}
.st-now.on .st-dot{color:var(--ok);box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent);animation:st-pulse 2s infinite}
.st-now.off .st-dot{color:var(--bad)}
@keyframes st-pulse{70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.st-now.on .st-dot{animation:none}}
.st-windows{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.st-win{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.st-win small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-win b{font-size:24px;font-variant-numeric:tabular-nums}.st-win b span{font-size:14px;color:var(--ink-3)}
.st-win.w-ok b{color:var(--ok)}.st-win.w-minor b{color:#6BA82E}.st-win.w-major b{color:var(--warn)}.st-win.w-bad b{color:var(--bad)}
@media (max-width:900px){.st-windows{grid-template-columns:repeat(2,minmax(0,1fr))}.st-windows .st-win:last-child{grid-column:1/-1}}
.st-days h2{font-size:18px}
.st-legend{display:flex;flex-wrap:wrap;gap:4px 12px}
.st-legend span{display:inline-flex;align-items:center;gap:5px}
.st-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.st-bars{display:grid;grid-template-columns:repeat(90,minmax(0,1fr));gap:2px;height:44px}
.st-bar{border-radius:2px;cursor:pointer;transition:transform .1s,opacity .1s;outline-offset:2px}
.st-bar:hover,.st-bar:focus-visible{transform:scaleY(1.12);opacity:.85}
.lvl-ok{background:#3FAE5A}.lvl-minor{background:#9BCB3C}.lvl-major{background:#E8A93A}.lvl-bad{background:#E0534F}.lvl-none{background:var(--line)}
.st-axis{display:flex;justify-content:space-between;margin-top:6px}
.st-tip{margin:8px 0 0;min-height:1.4em}
@media (max-width:640px){.st-bars{gap:1px;height:36px}}
.st-clean{display:flex;gap:12px;align-items:center;padding:14px;border-radius:10px;background:var(--ok-soft)}
.st-clean svg{width:28px;height:28px;flex:none}
.st-clean span{display:flex;flex-direction:column}.st-clean b{color:var(--ok)}.st-clean small{color:var(--ink-2)}
.st-incidents{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.st-incidents li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.st-incidents li:first-child{border-top:0}
.st-incidents li div{display:flex;flex-direction:column;gap:2px}
.st-inc-dot{flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;background:var(--warn)}
.st-incidents li.open .st-inc-dot{background:var(--bad)}
.st-incidents li.open b{color:var(--bad)}
.st-share{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px) auto;gap:14px;align-items:center}
.st-link code{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){.st-share{grid-template-columns:1fr}}
@media (max-width:900px){.st-share{grid-template-columns:minmax(0,1fr)}}
.st-share > *{min-width:0}.st-link{min-width:0}.st-link code{min-width:0;flex:1}
.st-clean.st-nodata{background:var(--surface-2)}.st-clean.st-nodata b{color:var(--ink)}
/* Иконки тегов */
.ti{display:inline-block;margin-right:4px;font-style:normal;font-weight:400;line-height:1;vertical-align:-.08em;letter-spacing:0;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif}
.tag .ti{font-size:1.1em}
.ti-flag{width:1.4em;height:.93em;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.14);vertical-align:-.12em;overflow:hidden}
.ti-no{position:relative}
.ti-no::after{content:"";position:absolute;left:-2px;right:-2px;top:calc(50% - 1px);height:2px;border-radius:1px;background:#E0534F;transform:rotate(-40deg);box-shadow:0 0 0 1px var(--surface)}
.h1-ti .ti{font-size:.82em;margin-right:12px;vertical-align:.02em}
.h1-ti .ti-flag{width:1.3em;height:.87em;vertical-align:-.02em}
.dd-check .ti,.check-grid .ti{margin-right:5px}
.tag-icon-cell{display:flex;gap:6px;align-items:center}
.tag-icon-cell .tag{min-width:30px;text-align:center;padding:3px 4px}.tag-icon-cell .tag .ti{margin:0}
.tag-icon-input{max-width:110px}
.tag-icon-help summary{cursor:pointer}
.tag-icon-help .tag{margin:2px 0}
/* Сводка «Информация о сервере» */
.server-info{display:flex;flex-direction:column;padding-bottom:6px}
.server-info .label{font-size:13px;margin:0 0 4px}
.si-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start;padding:9px 0;border-top:1px solid var(--line)}
.si-row:first-of-type{border-top:0}
.si-ico{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.si-ico svg{width:16px;height:16px}
.si-green{background:var(--ok-soft);color:var(--ok)}
.si-red{background:var(--bad-soft);color:var(--bad)}
.si-orange{background:var(--warn-soft);color:var(--warn)}
.si-blue{background:color-mix(in srgb,#3C8CE7 16%,var(--surface));color:#2F7AD6}
.si-violet{background:color-mix(in srgb,#8B5CF6 16%,var(--surface));color:#7C4DEB}
.si-teal{background:color-mix(in srgb,#14B8A6 16%,var(--surface));color:#0E9C8C}
.si-pink{background:color-mix(in srgb,#E8457A 15%,var(--surface));color:#D63A6D}
.si-diamond{background:color-mix(in srgb,#3CC3D8 18%,var(--surface));color:#1FA5BA}
.si-slate{background:var(--surface-2);color:var(--ink-3)}
.si-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.si-body small{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.si-val{font-size:14.5px;overflow-wrap:anywhere;line-height:1.35}
.si-val a{font-weight:600}
.si-note{font-size:12.5px;color:var(--ink-3)}
.si-note b{color:var(--ink-2)}
.si-ip{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.si-ip code{font-size:14px;font-weight:600;background:var(--surface-2);padding:4px 8px;border-radius:6px;overflow-wrap:anywhere;min-width:0}
.si-copy{padding:4px 10px;font-size:12.5px}
.si-langs{display:flex;flex-wrap:wrap;gap:4px 12px}
.si-langs a{font-weight:500;color:var(--ink);text-decoration:none}
.si-langs a:hover{text-decoration:underline}
.si-status{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.si-status i{width:8px;height:8px;border-radius:50%;background:currentColor}
.si-status.on{color:var(--ok)}.si-status.off{color:var(--bad)}
:root[data-theme=dark] .si-blue{color:#6AA9F2}:root[data-theme=dark] .si-violet{color:#A78BFA}:root[data-theme=dark] .si-teal{color:#2DD4BF}:root[data-theme=dark] .si-pink{color:#F472A0}:root[data-theme=dark] .si-diamond{color:#4FD4E8}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .si-blue{color:#6AA9F2}:root:not([data-theme=light]) .si-violet{color:#A78BFA}:root:not([data-theme=light]) .si-teal{color:#2DD4BF}:root:not([data-theme=light]) .si-pink{color:#F472A0}:root:not([data-theme=light]) .si-diamond{color:#4FD4E8}}
/* Путеводитель для игрока на главной */
.guide{margin-top:22px;padding:24px}
.guide h2{font-size:clamp(20px,2.4vw,24px);margin:0 0 10px}
.guide p{color:var(--ink-2);line-height:1.6;max-width:92ch;margin:0 0 10px}
.guide p a,.guide li a{font-weight:600}
.guide-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 6px}
.guide-stats > div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:10px;background:var(--surface-2);min-width:0}
.guide-stats b{font-family:var(--f-pix);font-size:24px;color:var(--ink);font-variant-numeric:tabular-nums}
.guide-stats span{font-size:12.5px;color:var(--ink-3)}
@media (max-width:760px){.guide-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.guide-when{margin-top:4px}
.guide-h3{display:flex;align-items:center;gap:8px;font-size:18px;margin:22px 0 8px}
.guide-h3 svg{width:20px;height:20px;flex:none}
.guide-lead{margin-bottom:12px}
.guide-genres{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:12px}
.guide-genre{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--surface);transition:border-color .15s,transform .15s}
.guide-genre:hover{border-color:var(--grass);transform:translateY(-1px)}
.guide-genre-ico{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);font-size:20px}
.guide-genre-ico .ti{margin:0}.guide-genre-ico .ti-flag{width:26px;height:17px}
.guide-genre-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.guide-genre-body b{font-size:15px}
.guide-genre-body span{font-size:13px;color:var(--ink-2);line-height:1.45}
.guide-genre-body small{font-size:12px;color:var(--grass-lo);font-weight:600;margin-top:2px}
:root[data-theme=dark] .guide-genre-body small{color:var(--grass-hi)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .guide-genre-body small{color:var(--grass-hi)}}
.guide-steps{margin:0 0 10px;padding-left:22px;display:flex;flex-direction:column;gap:8px;max-width:92ch;color:var(--ink-2);line-height:1.55}
.guide-steps b{color:var(--ink)}
.guide-join{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.guide-join > div{padding:12px 14px;border-radius:10px;background:var(--surface-2)}
.guide-join p{margin:4px 0 0;font-size:14px}
@media (max-width:760px){.guide-join{grid-template-columns:1fr}}
.guide-faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:92ch}
.guide-faq details{border-bottom:1px solid var(--line)}
.guide-faq summary{cursor:pointer;padding:12px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.guide-faq summary::-webkit-details-marker{display:none}
.guide-faq summary::after{content:"+";font-size:18px;line-height:1;color:var(--ink-3);flex:none}
.guide-faq details[open] summary::after{content:"−"}
.guide-faq details p{margin:0 0 12px}
.guide-owner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:20px;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--grass) 10%,var(--surface))}
.guide-owner div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 280px}
.guide-owner span{font-size:13.5px;color:var(--ink-2)}
.guide-more.collapsed{max-height:150px;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(#000 30%,transparent);mask-image:linear-gradient(#000 30%,transparent)}
.guide-toggle{display:block;margin:10px auto 0}


/* ───── Шапка сервера: в цветах сервера (оттенок --h берётся из иконки) ───── */
.sv-hero{
  --c1:hsl(var(--h) 60% 28%); --c2:hsl(calc(var(--h) - 18) 62% 36%); --c3:hsl(calc(var(--h) + 20) 72% 52%);
  background:
    radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--c3) 70%,transparent) 0%,transparent 55%),
    radial-gradient(90% 120% at 0% 100%,color-mix(in srgb,var(--c2) 80%,transparent) 0%,transparent 60%),
    linear-gradient(135deg,var(--c1),hsl(calc(var(--h) + 15) 55% 20%));
  color:#fff; padding:28px; border-radius:20px; gap:28px;
  box-shadow:0 18px 50px -18px hsl(var(--h) 60% 30% / .55);
}
.sv-hero::after{display:none}
/* Мягкая сетка поверх градиента — чтобы фон не был плоским */
.sv-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:28px 28px;-webkit-mask-image:linear-gradient(100deg,#000 0%,transparent 70%);mask-image:linear-gradient(100deg,#000 0%,transparent 70%)}
.sv-hero.has-cover{background:linear-gradient(100deg,hsl(var(--h) 55% 12% / .92) 0%,hsl(var(--h) 55% 16% / .7) 50%,hsl(var(--h) 50% 18% / .25)),var(--cover) center/cover}
.sv-hero.has-cover::before{display:none}
.sv-hero.is-off{--c1:hsl(var(--h) 18% 28%); --c2:hsl(var(--h) 16% 36%); --c3:hsl(var(--h) 14% 44%)}

.sv-icon-wrap{flex:none;position:relative;display:block;border-radius:22px;padding:5px;
  background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,255,255,.08));box-shadow:0 12px 30px -8px rgba(0,0,0,.45)}
.sv-hero .sv-icon-wrap .srv-icon.lg{width:104px;height:104px;border-radius:17px;box-shadow:none}

.sv-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.sv-hero .sv-title h1{font-size:clamp(30px,4.2vw,50px);font-weight:800;line-height:1;letter-spacing:-.02em;color:#fff;overflow-wrap:anywhere}
.sv-verified{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;white-space:nowrap;backdrop-filter:blur(4px)}

.sv-live{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px;color:rgba(255,255,255,.82)}
.sv-live i{align-self:center;width:10px;height:10px;border-radius:50%;flex:none;background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.6)}
.sv-hero.is-on .sv-live i{animation:sv-pulse 2s ease-out infinite}
@keyframes sv-pulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}80%,100%{box-shadow:0 0 0 10px rgba(74,222,128,0)}}
.sv-live b{font-family:var(--f-pix);font-size:34px;line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sv-hero.is-off .sv-live i{background:#F87171}
.sv-hero.is-new .sv-live i{background:rgba(255,255,255,.5)}
.sv-hero.is-off .sv-live span,.sv-hero.is-new .sv-live span{font-weight:600;color:#fff}
.sv-live a{color:#fff;text-decoration:underline;text-underline-offset:2px}
@media (prefers-reduced-motion:reduce){.sv-hero.is-on .sv-live i{animation:none}}

.sv-hero .sv-slogan{color:rgba(255,255,255,.85)}
.sv-hero .sv-reviews,.sv-hero .sv-reviews b{color:#fff}
.sv-hero .sv-reviews span{color:rgba(255,255,255,.75)}
.sv-hero .tag:not(.java):not(.bedrock){background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(4px)}
.sv-hero a.tag:not(.java):not(.bedrock):hover{background:rgba(255,255,255,.24)}
.sv-hero .tag.java,.sv-hero .tag.bedrock{box-shadow:0 0 0 1px rgba(255,255,255,.25)}

/* Карточка с IP — светлая «стеклянная» панель поверх цвета */
.sv-hero .sv-join{background:color-mix(in srgb,var(--surface) 94%,transparent);border-radius:16px;padding:18px;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.35);backdrop-filter:blur(10px)}
.sv-hero .sv-join-label{color:hsl(var(--h) 45% 38%)}
:root[data-theme=dark] .sv-hero .sv-join-label{color:hsl(var(--h) 60% 72%)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sv-hero .sv-join-label{color:hsl(var(--h) 60% 72%)}}
.sv-hero .sv-join .ipbox code{font-size:17px}
.sv-hero .sv-join{min-width:0}.sv-hero .sv-join .ipbox{min-width:0;flex-wrap:wrap}.sv-hero .sv-join .ipbox code{min-width:0;flex:1 1 170px;white-space:normal;overflow-wrap:anywhere}
@media (max-width:480px){.sv-hero .sv-join .ipbox .btn{flex:1 1 100%}}
@media (max-width:900px){.sv-hero{padding:20px;gap:18px;grid-template-columns:minmax(0,1fr)}.sv-hero .sv-icon-wrap .srv-icon.lg{width:76px;height:76px;border-radius:13px}.sv-icon-wrap{border-radius:18px;padding:4px}.sv-live b{font-size:28px}}

/* ───── Страница сервера v2: шапка → строка цифр → вкладки ───── */
.sv2-hero{margin-bottom:0}
.sv2-sub{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:0;color:rgba(255,255,255,.88);font-size:15px}
.sv2-sub .sv-reviews{display:inline-flex;gap:6px;align-items:center;text-decoration:none}
.sv2-tags [hidden]{display:none!important}
.sv2-moretags{cursor:pointer;font:inherit;font-size:11.5px;font-weight:600;border:0;background:transparent!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);color:#fff}
.sv2-actions{display:flex;gap:6px}
.sv2-actions form{display:flex}
.sv2-vote{flex:1 1 auto;white-space:nowrap;min-width:0}
.sv2-ico{width:44px;flex:none;padding-inline:0!important;justify-content:center}
.sv2-ico svg{width:18px;height:18px}
.sv2-ico.on{border-color:var(--grass);background:color-mix(in srgb,var(--grass) 14%,var(--surface))}
.sv2-manage{text-align:center;color:var(--ink-2)}

.sv2-keys{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:16px;margin:14px 0 0;overflow:hidden}
.sv2-key{display:flex;flex-direction:column;gap:2px;padding:14px 16px;min-width:0;color:inherit;text-decoration:none}
.sv2-key + .sv2-key{border-left:1px solid var(--line)}
a.sv2-key:hover{background:var(--surface-2)}
.sv2-key small{font-size:12.5px;color:var(--ink-3)}
.sv2-key b{font-family:var(--f-pix);font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}
.sv2-key b span{font-family:var(--f-body);font-size:14px;font-weight:500;color:var(--ink-3)}
.sv2-key em{font-style:normal;font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}
.sv2-key .sv-delta{margin-top:2px}
.sv2-link{color:var(--vote,#0E8FA6);text-decoration:underline;text-underline-offset:2px}
@media (max-width:860px){.sv2-keys{grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-key + .sv2-key{border-left:0}.sv2-key{border-top:1px solid var(--line)}.sv2-key:nth-child(-n+2){border-top:0}.sv2-key:nth-child(even){border-left:1px solid var(--line)}.sv2-key:last-child{grid-column:1/-1}}

.sv2-tabs{position:sticky;top:0;z-index:20;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:16px 0;padding:6px 0;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.sv2-tabs::-webkit-scrollbar{display:none}
.sv2-tab{flex:none;font-weight:600;font-size:15px;color:var(--ink-2);text-decoration:none;padding:8px 14px;border-radius:10px;white-space:nowrap}
.sv2-tab:hover{color:var(--ink);background:var(--surface-2)}
.sv2-tab span{margin-left:5px;font-weight:500;color:var(--ink-3)}
.sv2-tab[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line),0 2px 6px rgba(0,0,0,.05)}
.sv2-tab:focus-visible{outline:2px solid var(--grass);outline-offset:2px}

.sv2-panel{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;margin-top:18px}
.sv2-panel.single{grid-template-columns:minmax(0,1fr)}
.sv2-panel > *{min-width:0}
.js-tabs .sv2-panel{margin-top:0}
.js-tabs .sv2-panel:not(.active){display:none}
@media (max-width:980px){.sv2-panel{grid-template-columns:minmax(0,1fr)}}
.sv2-h{font-size:17px;margin:0 0 10px;text-wrap:balance}
.sv2-h.sm{font-size:15px;margin:0 0 8px}
.sv2-motd{margin-top:12px}

.sv2-facts dl{margin:0;display:flex;flex-direction:column}
.sv2-facts dl > div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.sv2-facts dl > div:first-child{border-top:0;padding-top:2px}
.sv2-facts dt{color:var(--ink-3)}
.sv2-facts dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.sv2-facts dd small{display:block;font-weight:400;font-size:12.5px;color:var(--ink-3)}
.sv2-facts .mono{font-size:13.5px}
.sv2-st{font-weight:600;color:var(--ink-3)}.sv2-st.on{color:var(--ok)}.sv2-st.off{color:var(--bad)}
.sv2-links{margin-top:12px}

.sv2-trends{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:10px}
.sv2-trend{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-2)}
.sv2-trend .sv-delta{margin:0}
.sv2-ranks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.sv2-rank{display:flex;flex-direction:column;gap:3px;min-width:0}
.sv2-rank small{font-size:12.5px;color:var(--ink-3)}
.sv2-rank b{font-family:var(--f-pix);font-size:24px}
.sv2-rank b span{font-family:var(--f-body);font-size:14px;font-weight:500;color:var(--ink-3)}
.sv2-rank-note{font-size:13px;color:var(--ink-2)}
@media (max-width:640px){.sv2-ranks{grid-template-columns:1fr}}
.sv2-status{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.sv2-status b{font-family:var(--f-pix);font-size:28px;color:var(--ok)}
.sv2-status:hover{border-color:var(--grass)}

.sv2-join-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:760px){.sv2-join-grid{grid-template-columns:1fr}}

.sv2-more{margin-top:26px}
.sv2-more-head{margin-bottom:12px;gap:10px}
.sv2-more-head h2{font-size:19px;margin:0}
.sv2-seg{display:flex;gap:4px;background:var(--surface-2);border-radius:10px;padding:3px}
.sv2-seg button{border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);padding:6px 12px;border-radius:8px;cursor:pointer}
.sv2-seg button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.sv2-more [hidden]{display:none!important}
.sv2-foot{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-start;margin-top:22px}
/* Уведомление о cookie */
.cookie-note{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;width:min(320px,calc(100vw - 32px));
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;align-items:start;padding:12px 14px;border-radius:14px;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 14px 34px -14px rgba(15,25,35,.4);
  animation:cookie-in .35s ease-out both}
.cookie-note-ico{font-size:20px;line-height:1.1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.cookie-note-t{margin:0;font-size:12.5px;line-height:1.45;color:var(--ink-2)}
.cookie-note-t b{color:var(--ink);font-weight:600}
.cookie-note-ok{grid-column:2;justify-self:start;padding:5px 14px;font-size:13px;min-height:0}
.cookie-note.hide{opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s}
@keyframes cookie-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cookie-note{animation:none}.cookie-note.hide{transition:none}}
/* Телефон: узкая полоска у нижнего края, не закрывает середину экрана */
@media (max-width:560px){
  .cookie-note{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:auto;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;border-radius:12px}
  .cookie-note-ico{display:none}
  .cookie-note-t{flex:1;font-size:12px;line-height:1.35}
  .cookie-note-ok{flex:none;align-self:center}
}
.policy{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
.policy > *{min-width:0}
.policy-toc{position:sticky;top:16px;font-size:14px}
.policy-toc ol{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:5px;color:var(--ink-3)}
.policy-toc a{color:var(--ink-2);text-decoration:none}
.policy-toc a:hover{color:var(--ink);text-decoration:underline}
.policy-body{padding:28px 32px}
.policy-body h1{font-size:clamp(24px,3vw,34px);margin:0 0 6px;text-wrap:balance}
.policy-meta{font-size:13px;color:var(--ink-3);margin:0 0 16px}
.policy-lead{font-size:16px;line-height:1.6;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--grass) 10%,var(--surface));color:var(--ink)!important;max-width:none!important}
.policy-body section{scroll-margin-top:16px}
.policy-body h2{font-size:19px;margin:26px 0 10px}
.policy-body p,.policy-body li{color:var(--ink-2);line-height:1.65;max-width:76ch}
.policy-body p{margin:0 0 10px}
.policy-body ul{margin:0 0 10px;padding-left:22px;display:flex;flex-direction:column;gap:6px}
.policy-body b{color:var(--ink)}
.policy-tbl{margin:4px 0 14px}
.policy-tbl td{vertical-align:top;font-size:14px;line-height:1.5}
.policy-tbl td:first-child{white-space:nowrap;font-weight:600}
@media (max-width:900px){.policy{grid-template-columns:minmax(0,1fr)}.policy-toc{position:static}.policy-body{padding:20px 18px}}
/* Теги с оценкой достоверности */
.tag.tagv{display:inline-flex;align-items:stretch;padding:0;overflow:hidden;gap:0}
.tagv-name{display:inline-flex;align-items:center;gap:0;padding:3px 8px;color:inherit;text-decoration:none}
.tagv-name:hover{text-decoration:underline}
.tagv-btn{display:inline-flex;align-items:center;gap:3px;border:0;border-left:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;font:inherit;font-size:11.5px;font-weight:700;padding:3px 7px;cursor:pointer;opacity:.8;font-variant-numeric:tabular-nums}
.tagv-btn svg{width:12px;height:12px}
.tagv-btn:hover{opacity:1;background:rgba(255,255,255,.12)}
.tagv-btn:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.tagv-btn.up.on{opacity:1;background:rgba(74,222,128,.28);color:#fff}
.tagv-btn.down.on{opacity:1;background:rgba(248,113,113,.32);color:#fff}
.tag.tagv.doubt{box-shadow:inset 0 0 0 1px rgba(253,186,116,.9)}
.tag.tagv.doubt .tagv-name::after{content:"?";margin-left:5px;display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#F59E0B;color:#1B1B1B;font-size:10px;font-weight:800}
.tag.tagv.busy{opacity:.6;pointer-events:none}
.sv2-tag-hint{margin:2px 0 0;font-size:12.5px;color:rgba(255,255,255,.72)}
.sv2-tag-hint.err{color:#FECACA;font-weight:600}
/* Вопросы о сервере */
.sv2-faq details{border-top:1px solid var(--line)}
.sv2-faq details:first-of-type{border-top:0}
.sv2-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;padding:11px 0;font-weight:600}
.sv2-faq summary::-webkit-details-marker{display:none}
.sv2-faq summary::after{content:"+";flex:none;color:var(--ink-3);font-size:18px;line-height:1}
.sv2-faq details[open] summary::after{content:"−"}
.sv2-faq p{margin:0 0 12px;color:var(--ink-2);line-height:1.6;max-width:72ch}
/* Ежемесячный рейтинг жанра */
.gt{display:flex;flex-direction:column;gap:16px}
.gt-head h1{font-size:clamp(24px,3.4vw,36px);margin:0 0 6px;text-wrap:balance}
.gt-meta{margin:0 0 8px;font-size:13.5px;color:var(--ink-3)}
.gt-lead{margin:0;max-width:78ch;color:var(--ink-2);line-height:1.6;font-size:15.5px}
.gt-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.gt-hl{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit}
.gt-hl:hover{border-color:var(--grass)}
.gt-hl small{font-size:12.5px;color:var(--ink-3)}
.gt-hl b{font-size:17px}
.gt-hl span{font-size:13px;color:var(--ink-2)}
.gt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.gt-item{display:grid;grid-template-columns:54px 52px minmax(0,1fr) auto;gap:14px;align-items:start;scroll-margin-top:70px}
.gt-place{display:flex;flex-direction:column;align-items:center;gap:4px}
.gt-place b{font-family:var(--f-pix);font-size:28px;line-height:1}
.gt-item:nth-child(1) .gt-place b{color:#D4A017}.gt-item:nth-child(2) .gt-place b{color:#8E9AA6}.gt-item:nth-child(3) .gt-place b{color:#B8733A}
.gt-chg{font-size:11.5px;font-weight:700;padding:1px 6px;border-radius:5px;white-space:nowrap}
.gt-chg.up{background:var(--ok-soft);color:var(--ok)}.gt-chg.down{background:var(--bad-soft);color:var(--bad)}
.gt-chg.same{background:var(--surface-2);color:var(--ink-3)}.gt-chg.new,.gt-chg.in{background:color-mix(in srgb,#3C8CE7 15%,var(--surface));color:#2F7AD6}
.gt-main{min-width:0;display:flex;flex-direction:column;gap:6px}
.gt-main h2{font-size:18px;margin:0}
.gt-main h2 a{color:inherit;text-decoration:none}.gt-main h2 a:hover{text-decoration:underline}
.gt-main p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.5}
.gt-sub{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13.5px}
.gt-copy{padding:3px 9px;font-size:12px}
.gt-nums{display:grid;grid-template-columns:repeat(2,minmax(90px,auto));gap:8px 16px;margin:0}
.gt-nums div{display:flex;flex-direction:column}
.gt-nums dt{font-size:11.5px;color:var(--ink-3)}
.gt-nums dd{margin:0;font-family:var(--f-pix);font-size:18px;font-variant-numeric:tabular-nums}
.gt-nums div:first-child dd{color:var(--grass-lo)}
@media (max-width:760px){.gt-item{grid-template-columns:40px 44px minmax(0,1fr)}.gt-nums{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}.gt-place b{font-size:22px}}
.gt-more{margin:0;color:var(--ink-2)}
.gt-nav{display:flex;flex-direction:column;gap:12px}
.gt-nav .tags{margin-top:8px}
.gt-months{display:flex;flex-wrap:wrap;gap:8px}
.gt-empty p{margin:0 0 12px;color:var(--ink-2)}
.gt-hub{margin-top:18px}
.gt-hub h2{font-size:18px;margin:0 0 10px}
.gt-hub .tags a{font-size:13px;padding:5px 10px}
.about-top{margin:6px 0 0}.about-top a{font-weight:600}

/* ───────── Все серверы А–Я ───────── */
.az h1{margin:6px 0 6px}
.az-letters{display:flex;flex-wrap:wrap;gap:6px;padding:12px;margin:14px 0 18px}
.az-letters a{display:inline-flex;align-items:baseline;gap:4px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-weight:600;min-width:38px;justify-content:center}
.az-letters a small{font-weight:400;color:var(--muted);font-size:11px}
.az-letters a:hover{border-color:var(--ink)}
.az-letters a.cur{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.az-letters a.cur small{color:inherit;opacity:.7}
.az-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px}
.az-group h2{margin:0 0 8px;font-size:22px}
.az-group h2 a{color:var(--ink);text-decoration:none}
.az-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.az-list li{display:flex;gap:8px;align-items:baseline;min-width:0}
.az-list li>a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.az-meta{margin-left:auto;flex-shrink:0;font-size:12px;color:var(--muted);white-space:nowrap}
.az-on{color:var(--ok,#1a7f37);font-weight:600}
.az-off{opacity:.7}
.az-all{display:inline-block;margin-top:10px;font-size:14px}
.az-cols{columns:3 240px;column-gap:28px;display:block}
.az-cols li{break-inside:avoid;padding:3px 0}

/* ───────── Лаунчер проекта ───────── */
.sv-launcher{font-size:16px;padding:12px 14px 13px;gap:8px}
.sv-launcher svg{width:16px;height:16px;flex:none}
.sv-launcher-note{margin:-4px 0 0;text-align:center;font-size:12px;color:var(--ink-3)}
.sv-launcher-ip{display:flex;align-items:baseline;gap:8px;min-width:0;font-size:13px;color:var(--ink-3)}
.sv-launcher-ip code{font-family:var(--f-mono);color:var(--ink);overflow-wrap:anywhere;min-width:0}
.sv-launcher-ip span{font-size:11px;font-weight:600;letter-spacing:.06em}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;margin-left:auto;flex:none}
.linkish:hover{text-decoration:none}
.ip-launcher{display:inline-flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}
.ip-launcher small{font-size:11px;color:var(--ink-3);padding-left:2px}
.ip-copy.ip-dl{text-decoration:none;border-style:solid;border-color:var(--accent)}
.ip-copy.ip-dl .ip{font-family:inherit;font-weight:600}
.ip-copy.ip-dl .ip-act svg{width:12px;height:12px;display:block}

/* ───────── Переход на внешний сайт ───────── */
.go{display:flex;justify-content:center;padding:24px 0 40px}
.go-card{width:100%;max-width:560px;padding:28px;text-align:center}
.go-ico{width:56px;height:56px;margin:0 auto 12px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:var(--surface-2);color:var(--accent);font-weight:700}
.go-card.bad .go-ico{background:var(--bad-soft);color:var(--bad)}
.go-card h1{margin:0 0 8px;font-size:26px}
.go-lead{margin:0 0 12px;color:var(--ink-2,var(--ink-3))}
.go-target{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);margin-bottom:14px}
.go-host{font-size:20px;overflow-wrap:anywhere}
.go-url{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere;word-break:break-all}
.go-from{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 14px;font-size:14px}
.go-from .icon,.go-from img{width:24px;height:24px}
.go-warn{text-align:left;margin:0 0 20px;padding:12px 14px 12px 32px;border-radius:10px;background:var(--warn-soft);font-size:14px;line-height:1.5;display:grid;gap:4px}
.go-warn li::marker{color:var(--warn)}
.go-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.go-actions .btn{flex:1 1 200px}
.go-btn{font-size:15px}
@media (max-width:480px){.go-card{padding:20px 16px}.go-card h1{font-size:22px}}

/* ───────── Поиск: похожие названия и пустой результат ───────── */
.fuzzy-note{margin:0 0 12px;padding:10px 14px;border-radius:10px;background:var(--warn-soft);color:var(--ink);font-size:14px;line-height:1.5}
.fuzzy-note a{font-weight:600}
.empty-sub{margin:14px 0 8px;font-size:13.5px;color:var(--ink-3)}
.empty-tags{justify-content:center;margin-bottom:6px}
.empty-relax{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:16px}
.empty-relax a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);text-decoration:none;font-size:13.5px}
.empty-relax a:hover{border-color:var(--accent)}
.empty-relax a b{font-size:12px;color:var(--accent)}
.empty-popular{margin-top:22px}
.empty-popular h2{font-size:18px;margin:0 0 10px}
.suggest-hint{padding:8px 10px 4px;font-size:12px;color:var(--ink-3)}

/* ───────── Админка: состояние и статистика ───────── */
.admin-pulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;margin-bottom:20px}
.admin-pulse-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.admin-pulse-item:hover{border-color:var(--accent)}
.admin-pulse-item i{width:12px;height:12px;border-radius:50%;flex:none;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}
.admin-pulse-item.warn i{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}
.admin-pulse-item.bad{border-color:var(--bad)}
.admin-pulse-item.bad i{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}
.admin-pulse-item span{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-pulse-item small{font-size:12.5px;color:var(--ink-3)}
.hl-sum{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:12px;margin-bottom:18px;border:1px solid var(--line);background:var(--surface)}
.hl-sum > i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;color:#fff;background:var(--ok);flex:none}
.hl-sum.warn > i{background:var(--warn)}
.hl-sum.bad{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}
.hl-sum.bad > i{background:var(--bad)}
.hl-sum > div{display:flex;flex-direction:column;gap:2px;flex:1 1 240px;min-width:0}
.hl-sum span{font-size:13px;color:var(--ink-3)}
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start}
.st-h{font-size:16px;margin:0 0 12px}
.st-h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:18px 0 6px}
.hl-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.hl-list li{display:flex;gap:10px;align-items:flex-start;min-width:0}
.hl-list li > div{flex:1;min-width:0}
.hl-ico{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-weight:800;margin-top:1px;background:var(--ok-soft);color:var(--ok)}
.hl-warn .hl-ico{background:var(--warn-soft);color:var(--warn)}
.hl-bad .hl-ico{background:var(--bad-soft);color:var(--bad)}
.hl-row{display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:space-between;font-size:14px}
.hl-title{font-weight:600}
.hl-val{color:var(--ink-2);text-align:right;overflow-wrap:anywhere;min-width:0}
.hl-note{margin:3px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.45}
.hl-bad .hl-note{color:var(--bad)}
.hl-errors td{vertical-align:top}
.hl-msg{font-size:12px;overflow-wrap:anywhere;word-break:break-word;max-width:640px}
.pill.idle{background:var(--surface-2);color:var(--ink-3)}
.st-head{gap:10px;margin-bottom:14px;flex-wrap:wrap}
.st-head .seg a{display:block;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.st-head .seg a.on{background:var(--grass);color:var(--grass-ink)}
.st-chart{margin-bottom:16px}
.st-chart .chart{width:100%;height:auto;display:block}
.st-bar:hover path{filter:brightness(1.15)}
.st-grid{align-items:start;margin-bottom:16px}
.st-table summary{cursor:pointer;font-weight:600}
.st-table .table-wrap{margin-top:10px}
.admin-stats span .up{color:var(--ok);font-weight:600}
.admin-stats span .down{color:var(--bad);font-weight:600}

/* На телефоне — лёгкая копия шапки */
@media (max-width:700px){.sv-hero.has-cover{background:linear-gradient(100deg,hsl(var(--h) 55% 12% / .92) 0%,hsl(var(--h) 55% 16% / .7) 50%,hsl(var(--h) 50% 18% / .25)),var(--cover-m,var(--cover)) center/cover}}
.hl-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.hl-action span{flex:1 1 300px;font-size:14px}

/* ───────── Вы недавно смотрели ───────── */
.recent{margin:0 0 18px}
.recent-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.recent-head h2{font-size:15px;margin:0}
.recent-head .linkish{margin-left:0;font-size:13px}
.recent-head .recent-nav{margin-left:auto;display:inline-flex;gap:6px;align-self:center}
.recent-head .recent-nav[hidden]{display:none}
.recent-arrow{width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:border-color .15s,color .15s,transform .1s}
.recent-arrow svg{width:14px;height:14px}
.recent-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.recent-arrow:active:not(:disabled){transform:translateY(1px)}
.recent-arrow:disabled{opacity:.35;cursor:default}
.recent-viewport{position:relative}
.recent-viewport::before,.recent-viewport::after{content:"";position:absolute;top:0;bottom:0;width:36px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:1}
.recent-viewport::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.recent-viewport::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.recent-viewport.fade-l::before,.recent-viewport.fade-r::after{opacity:1}
.recent-list{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.recent-list::-webkit-scrollbar{display:none}
.recent-bar{position:relative;height:6px;margin-top:8px;border-radius:3px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;touch-action:none}
.recent-bar[hidden]{display:none}
.recent-bar i{position:absolute;top:0;bottom:0;left:0;min-width:24px;border-radius:3px;background:var(--accent);opacity:.75;cursor:grab;transition:opacity .15s}
.recent-bar:hover i,.recent-bar.drag i{opacity:1}
.recent-bar.drag i{cursor:grabbing}
.recent-item{flex:none;display:flex;align-items:center;gap:9px;padding:7px 12px 7px 7px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none;max-width:240px}
.recent-item:hover{border-color:var(--accent)}
.recent-icon{width:32px;height:32px;border-radius:7px;flex:none;display:grid;place-items:center;color:#fff;font-family:var(--f-pix);font-size:16px;image-rendering:pixelated}
.recent-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.recent-t b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-t small{font-size:11.5px;color:var(--ink-3)}
.recent-t small.on{color:var(--ok)}

/* ───────── Достижения серверов ───────── */
.ach-ico{width:34px;height:34px;border-radius:9px;flex:none;display:grid;place-items:center;font-size:18px;background:var(--surface-2);border:1px solid var(--line)}
.ach-iron .ach-ico{background:linear-gradient(135deg,#E3E6EB,#A5ADB8);border-color:#8A929E}
.ach-gold .ach-ico{background:linear-gradient(135deg,#FBE6A0,#D9A62E);border-color:#C8961E}
.ach-diamond .ach-ico{background:linear-gradient(135deg,#B9F5F0,#2CC2BE);border-color:#1FB3B0}
.sv-ach{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sv-ach li{display:flex;align-items:center;gap:10px;min-width:0}
.sv-ach li > span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.sv-ach b{font-size:13.5px}
.sv-ach small{font-size:12px;color:var(--ink-3)}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.ach-item{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}
.ach-item:not(.have) .ach-ico{filter:grayscale(1);opacity:.55}
.ach-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ach-title{font-size:14px}
.ach-metal{font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.ach-gold .ach-metal{background:#FBF0D4;color:#7A5A06}
.ach-diamond .ach-metal{background:#D7F6F4;color:#0B6664}
.ach-embed summary{cursor:pointer;color:var(--accent)}
.ach-embed img{display:block;margin:8px 0;max-width:100%;height:auto}
.ach-embed .wg-code{margin-top:6px}

/* ───────── Двухфакторный вход ───────── */
.tfa-code{font-size:20px;letter-spacing:.15em;text-align:center;max-width:220px}
.tfa-setup{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.tfa-qr{flex:none;background:#fff;border-radius:10px;padding:6px;border:1px solid var(--line);line-height:0}
.tfa-qr svg{display:block;width:196px;height:196px}
.tfa-steps{flex:1 1 260px;min-width:0}
.tfa-steps ol{margin:0 0 12px;padding-left:20px;display:grid;gap:8px;font-size:14px}
.tfa-secret{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:6px;background:var(--surface-2);font-family:var(--f-mono);font-size:13px;cursor:pointer;overflow-wrap:anywhere}
.tfa-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.tfa-inline .input{flex:1 1 160px;max-width:240px}
.tfa-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.tfa-actions summary{list-style:none}
.tfa-actions summary::-webkit-details-marker{display:none}
.tfa-codes{padding:12px 14px;border-radius:10px;background:var(--warn-soft);margin-bottom:14px;font-size:14px}
.tfa-codes ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:4px 16px;margin:0 0 10px;padding-left:22px;font-size:14px}

/* ───────── «N человек на сайте» на главной ───────── */
.site-online{position:relative;display:inline-flex}
.site-online-btn{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ok) 35%,var(--line));
  background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;backdrop-filter:blur(4px);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.site-online-btn:hover{border-color:var(--ok)}
.site-online-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.site-online-btn b{font-variant-numeric:tabular-nums}
.site-online-btn i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.site-online-btn i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--ok);opacity:0;animation:so-pulse 2.4s ease-out infinite}
@keyframes so-pulse{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.4);opacity:0}}
.site-online-btn.bump b{animation:so-bump .5s ease}
@keyframes so-bump{50%{color:var(--ok)}}
@media (prefers-reduced-motion:reduce){.site-online-btn i::after,.site-online-btn.bump b{animation:none}}
.site-online-tip{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:max-content;max-width:min(300px,calc(100vw - 40px));padding:8px 11px;border-radius:9px;
  background:var(--ink);color:var(--bg);font-size:12.5px;line-height:1.45;box-shadow:0 6px 20px rgba(0,0,0,.18)}

/* Счётчик в шапке: на узких экранах — только точка и число */
.nav .site-online-btn{padding:6px 12px 6px 11px;height:36px;box-sizing:border-box;background:var(--surface);backdrop-filter:none}
@media (max-width:860px){.site-online-btn .so-words{display:none}}
@media (max-width:640px){.site-online-tip{right:auto;left:0}}

/* Вариант «просто текст»: без рамки и фона, квадратная пиксельная точка */
.nav .site-online-btn{height:auto;padding:4px 6px;border:0;border-radius:4px;background:none;box-shadow:none;color:var(--ink-2);font-size:13.5px;gap:7px}
.nav .site-online-btn:hover{color:var(--ink);background:none}
.nav .site-online-btn:hover .so-words{text-decoration:underline dotted;text-underline-offset:3px}
.nav .site-online-btn b{color:var(--ink);font-weight:700}
.nav .site-online-btn i{width:7px;height:7px;border-radius:0;background:var(--grass);animation:so-blink 2.4s steps(1) infinite}
.nav .site-online-btn i::after{display:none}
@keyframes so-blink{0%,85%{opacity:1}86%,100%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.nav .site-online-btn i{animation:none}}

/* ───────── «Это мой сервер» ───────── */
.claim{display:flex;justify-content:center;padding:6px 0 30px}
.claim-card{width:100%;max-width:720px}
.claim-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.claim-head h1{margin:0 0 2px;font-size:26px}
.claim-head p{margin:0;overflow-wrap:anywhere}
.claim-lead{margin:0 0 16px;line-height:1.55}
.claim-token{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.claim-token .token{font-size:16px}
.claim-motd{margin:16px 0 0;display:grid;gap:6px}
.claim-notes{margin:18px 0 0;padding-left:18px;display:grid;gap:6px;line-height:1.5}
.sv2-claim{color:var(--ink-3)}

/* ───────── Подтверждение через TXT-запись ───────── */
.verify-txt{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.verify-txt summary{cursor:pointer;font-size:14px}
.txt-rec{display:grid;gap:8px;margin:0}
.txt-rec > div{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:baseline}
.txt-rec dt{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.txt-rec dd{margin:0;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;min-width:0}
.txt-rec dd .mono{padding:3px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--line);overflow-wrap:anywhere;font-size:13.5px}
.txt-rec dd small{flex-basis:100%;color:var(--ink-3);font-size:12px;line-height:1.5}
@media (max-width:520px){.txt-rec > div{grid-template-columns:1fr;gap:4px}}

/* ───────── Карточка «Владелец сервера» ───────── */
.sv-owner-row{display:flex;align-items:center;gap:11px;min-width:0}
.sv-owner-anon{width:36px;height:36px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-3)}
.sv-owner-anon svg{width:16px;height:16px}
.sv-owner-t{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.35}
.sv-owner-t b{font-size:14.5px;overflow-wrap:anywhere}
.sv-owner-t small{font-size:12.5px;color:var(--ink-3)}
.sv-owner-ok{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--ok);color:#fff;font-size:10px;vertical-align:1px}
.sv-owner-claim{display:inline-block;margin-top:10px}
.sv-owner-act{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:10px}
.sv-owner-act .linkish{margin-left:0}
.sv-owner-act .linkish{font-size:13px}

/* ───────── Напоминания проголосовать ───────── */
.remind-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.remind-ico{font-size:18px;line-height:1}
.remind-card p{margin:4px 0 10px}
.remind-card.on{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.remind-form{display:flex;flex-direction:column;gap:8px}
.remind-card.on .remind-form{flex-direction:row;flex-wrap:wrap}
.remind-offer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0;border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.remind-offer-t{display:flex;flex-direction:column;gap:2px;flex:1 1 260px;min-width:0}
.remind-offer-t small{font-size:12.5px;color:var(--ink-3)}
.rem-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rem-list li{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}
.rem-list li:last-child{border-bottom:0}
.rem-list form{margin-left:auto}

/* ───────── Предупреждение об оплате на неподтверждённых серверах ───────── */
.sv-paywarn{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:var(--warn-soft);color:var(--ink);font-size:12.5px;line-height:1.5;border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}
.go-unverified{text-align:left;margin:0 0 14px;padding:12px 14px;border-radius:10px;background:var(--bad-soft);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);font-size:14px;line-height:1.5}
.go-unverified b{display:block;margin-bottom:4px;color:var(--bad)}

/* ───────── Цветное выделение сервера ───────── */
.srv.srv-hl{border-color:var(--hl);box-shadow:0 0 0 2px color-mix(in srgb,var(--hl) 55%,transparent),0 6px 18px color-mix(in srgb,var(--hl) 18%,transparent);
  background:linear-gradient(90deg,color-mix(in srgb,var(--hl) 9%,var(--surface)),var(--surface) 55%)}
.hl-buy{display:grid;gap:14px}
.hl-buy fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hl-buy legend{width:100%;margin-bottom:6px}
.hl-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;width:68px}
.hl-swatch input,.hl-day input{position:absolute;opacity:0;pointer-events:none}
.hl-swatch span{width:34px;height:34px;border-radius:8px;background:var(--hl);border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line)}
.hl-swatch input:checked + span{box-shadow:0 0 0 2px var(--ink)}
.hl-swatch input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.hl-swatch small{font-size:11px;color:var(--ink-3)}
.hl-day span{display:flex;flex-direction:column;gap:2px;padding:8px 14px;border:1px solid var(--line);border-radius:9px;cursor:pointer;min-width:110px}
.hl-day small{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-3)}
.hl-day small .px{width:12px}
.hl-day input:checked + span{border-color:var(--grass);box-shadow:0 0 0 2px color-mix(in srgb,var(--grass) 40%,transparent)}
.hl-day input:focus-visible + span{outline:2px solid var(--accent)}

/* ───────── Ищу с кем играть ───────── */
.pt-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}
.pt-item{display:flex;gap:11px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.pt-body{flex:1;min-width:0}
.pt-top{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.pt-when{font-size:12px;color:var(--ink-3)}
.pt-body p{margin:4px 0 0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.pt-contact{margin-top:4px}
.pt-del{flex:none}
.pt-empty{margin:0 0 12px;font-size:14px;color:var(--ink-2)}
.pt-form summary{list-style:none;display:inline-flex}
.pt-form summary::-webkit-details-marker{display:none}
.pt-form[open] summary{margin-bottom:12px}

/* ───────── Новости серверов ───────── */
.news-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.news-list li{padding-bottom:14px;border-bottom:1px solid var(--line)}
.news-list li:last-child{padding-bottom:0;border-bottom:0}
.news-list p,.news-feed p{margin:6px 0;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.news-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-3)}
.news-src{font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surface-2)}
.news-tg{color:#229ED9}.news-vk{color:#2787F5}
.news-page{max-width:780px}
.news-feed{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.news-head{display:flex;gap:10px;align-items:center}
.news-head .srv-icon{width:36px;height:36px}

/* ───────── Вопросы и ответы ───────── */
.faq-page{max-width:820px}
.faq-toc{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}
.faq-toc a{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);text-decoration:none;color:var(--ink);font-size:14px}
.faq-sec{margin-bottom:26px}
.faq-sec h2{font-size:20px;margin:0 0 12px}
.faq-item{margin-bottom:8px}
.faq-item summary{cursor:pointer;font-weight:600;font-size:15px;list-style-position:inside}
.faq-a{margin-top:8px;font-size:14.5px;line-height:1.6;color:var(--ink-2)}

/* 66: подборки на телефоне — одна строка, листается пальцем */
@media (max-width:640px){
  .collections{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding:2px 16px 4px;scroll-padding-inline:16px;scrollbar-width:none;-ms-overflow-style:none;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent)}
  .collections::-webkit-scrollbar{display:none}
  .collections a{flex:none;white-space:nowrap}
}

/* 69: подписи у кнопок-иконок. Компьютер — своя подсказка при наведении, телефон — подпись прямо на кнопке */
.sv2-ico .sv2-cap{display:none}
.sv2-ico[data-tip]{position:relative}
@media (hover:hover) and (min-width:641px){
  .sv2-ico[data-tip]::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);z-index:5;
    width:max-content;max-width:220px;padding:6px 9px;border-radius:7px;background:var(--ink);color:var(--surface);font-size:12px;font-weight:500;line-height:1.35;
    text-align:center;white-space:normal;pointer-events:none;opacity:0;transition:opacity .12s,transform .12s;box-shadow:0 6px 16px -6px rgba(0,0,0,.4)}
  .boost-btn.sv2-ico[data-tip]::after{left:auto;right:0;transform:translateY(4px)}
  .boost-btn.sv2-ico[data-tip]:hover::after,.boost-btn.sv2-ico[data-tip]:focus-visible::after{transform:none}
  .sv2-ico[data-tip]:hover::after,.sv2-ico[data-tip]:focus-visible::after{opacity:1;transform:translate(-50%,0);transition-delay:.15s}
}
@media (max-width:640px){
  .sv2-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .sv2-actions .sv2-vote{grid-column:1/-1}
  .sv2-actions form .sv2-ico{flex:1}
  .sv2-actions .sv2-ico{width:auto;min-width:0;height:auto;min-height:48px;flex-direction:column;gap:3px;padding:6px 4px!important}
  .sv2-ico .sv2-cap{display:block;max-width:100%;font-size:11.5px;font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* 71: строка выбранных фильтров */
.active-filters{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border:1px solid var(--line)}
.active-filters .af-label{font-size:12.5px;color:var(--ink-3);font-weight:600;margin-right:2px}
.active-filters a{border:1px solid transparent;transition:border-color .12s,background .12s}
.active-filters a:not(.clear-all):hover{border-color:var(--bad,#d9534f);background:color-mix(in srgb,var(--bad,#d9534f) 10%,var(--surface))}
.active-filters a:not(.clear-all):hover::after{color:var(--bad,#d9534f)}
.active-filters .clear-all{margin-left:auto}

/* 72: заготовки карточек, пока загружается новая страница каталога */
.list.is-loading{pointer-events:none}
.sk-row{display:grid;grid-template-columns:44px 56px minmax(0,1fr) 140px;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:8px}
.sk-row i{display:block;height:12px;border-radius:6px;--sk:color-mix(in srgb,var(--ink) 9%,var(--surface));background:linear-gradient(90deg,var(--sk) 0,color-mix(in srgb,var(--sk) 40%,var(--surface)) 40%,var(--sk) 80%);background-size:300% 100%;animation:sk 1.2s ease-in-out infinite}
.sk-row .sk-rank{width:26px;height:26px;border-radius:6px}
.sk-row .sk-ico{width:52px;height:52px;border-radius:10px}
.sk-row .sk-mid{display:flex;flex-direction:column;gap:10px}
.sk-row .sk-mid i:first-child{width:38%;height:14px}
.sk-row .sk-mid i:last-child{height:34px;border-radius:8px}
.sk-row .sk-side{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.sk-row .sk-side i:first-child{width:70%;height:16px}
.sk-row .sk-side i:last-child{width:100%;height:8px}
@keyframes sk{0%{background-position:100% 0}100%{background-position:-50% 0}}
@media (prefers-reduced-motion:reduce){.sk-row i{animation:none}}
@media (max-width:640px){.sk-row{grid-template-columns:44px minmax(0,1fr) 80px}.sk-row .sk-rank{display:none}.sk-row .sk-ico{width:44px;height:44px}}

/* 75: «нет данных» вместо прочерка */
.sv2-nodata{font-size:15px!important;font-weight:600!important;color:var(--ink-3)!important;letter-spacing:0!important}

/* 78: плавная смена темы */
html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .35s ease,color .35s ease,border-color .35s ease,fill .35s ease,box-shadow .35s ease!important}
html.theme-vt::view-transition-old(root),html.theme-vt::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.theme-vt::view-transition-new(root){animation:theme-reveal .5s ease-in-out}
@keyframes theme-reveal{from{clip-path:circle(0 at var(--tx,90%) var(--ty,30px))}to{clip-path:circle(150% at var(--tx,90%) var(--ty,30px))}}
@media (prefers-reduced-motion:reduce){html.theme-vt::view-transition-new(root){animation:none}}

.yt-alt{margin:6px 0 0;font-size:12.5px}

/* 85: топ голосующих */
.vt-podium{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:end}
.vt-p{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 8px;border-radius:10px;background:var(--surface-2);text-align:center;min-width:0}
.vt-p1{order:2;padding-top:14px;background:color-mix(in srgb,var(--diamond) 16%,var(--surface))}
.vt-p2{order:1}
.vt-p3{order:3}
.vt-head{position:relative;display:block}
.vt-head img{display:block;width:40px;height:40px;border-radius:5px;image-rendering:pixelated;background:var(--surface);box-shadow:0 2px 0 rgba(0,0,0,.12)}
.vt-p1 .vt-head img{width:48px;height:48px}
.vt-medal{position:absolute;right:-7px;bottom:-5px;width:18px;height:18px;display:grid;place-items:center;font:12px/1 var(--f-pix);color:#fff;border-radius:3px;
  text-shadow:1px 1px 0 rgba(0,0,0,.35);box-shadow:inset -2px -2px 0 rgba(0,0,0,.22),inset 2px 2px 0 rgba(255,255,255,.4)}
.vt-medal.ore-diamond{background:var(--diamond)}.vt-medal.ore-gold{background:var(--gold)}.vt-medal.ore-iron{background:var(--iron);color:#3A4048;text-shadow:none}
.vt-nick{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}
.vt-c{font-size:11.5px;color:var(--ink-3)}
.vt-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.vt-list li{display:grid;grid-template-columns:18px 16px minmax(0,1fr) 54px auto;gap:7px;align-items:center;font-size:13px}
.vt-list .vt-n{font:12px var(--f-pix);color:var(--ink-3);text-align:center}
.vt-list img{width:16px;height:16px;border-radius:2px;image-rendering:pixelated}
.vt-list .vt-nick{margin:0;font-size:12.5px}
.vt-bar{height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.vt-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.vt-foot{margin:10px 0 0;font-size:12px;line-height:1.45}

/* 86: трейлеры VK Видео и Rutube */
.yt-lite .vid-brand{position:absolute;left:10px;top:10px;z-index:1;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em}
.yt-lite.vid-youtube .vid-brand{display:none}
.yt-lite.vid-vk{background:linear-gradient(135deg,#0077FF,#3d2bd1)}
.yt-lite.vid-rutube{background:linear-gradient(135deg,#100943,#ED143B)}
.yt-lite.vid-vk:not(:has(img))::before,.yt-lite.vid-rutube:not(:has(img))::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 12px,transparent 12px 24px)}


/* Подвал: продолжение «блока земли» под полоской травы */
.grass-strip{border-radius:6px 6px 0 0}
footer.site{margin:0 0 24px;padding:28px 28px 0;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:var(--surface);font-size:13.5px;color:var(--ink-2)}
.ft-grid{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(0,1fr));gap:28px 24px}
.ft-brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ft-logo{font-size:20px}
.ft-logo .logo-block{width:28px;height:28px}
.ft-about{margin:0;color:var(--ink-3);line-height:1.55;max-width:34ch}
.ft-live{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:var(--surface-2);font-size:12.5px;color:var(--ink-2)}
.ft-live b{color:var(--ink)}
.ft-add{margin-top:2px}
.ft-h{margin:2px 0 10px;font-family:var(--f-pix);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.ft-col a{color:var(--ink-2);text-decoration:none;transition:color .12s}
.ft-col a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ft-vers{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.ft-vers a{padding:2px 7px;border-radius:5px;background:var(--surface-2);font:12px var(--f-mono);color:var(--ink-2)}
.ft-vers a:hover{background:var(--accent-soft);color:var(--ink);text-decoration:none}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-top:28px;padding:16px 0 18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-3)}
.ft-legal{display:flex;gap:16px;flex-wrap:wrap}
.ft-legal a{color:var(--ink-3)}
.ft-legal a:hover{color:var(--ink)}
@media (max-width:980px){.ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-brand{grid-column:1/-1}.ft-about{max-width:60ch}}
@media (max-width:560px){footer.site{padding:22px 16px 0}.ft-grid{gap:24px 16px}.ft-bottom{flex-direction:column;align-items:flex-start}}
.ft-live .dot{display:inline-block;width:8px;height:8px;flex:none}

/* 98: уровни игроков — пиксельный значок цвета руды */
.lvl{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;margin-left:6px;vertical-align:2px;border-radius:3px;
  font:11px/1 var(--f-pix);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.35);box-shadow:inset -2px -2px 0 rgba(0,0,0,.25),inset 2px 2px 0 rgba(255,255,255,.3);background:#8a6a3f}
.lvl-wood{background:#9C7445}
.lvl-stone{background:#7d8186}
.lvl-iron{background:#c9ced4;color:#3a4048;text-shadow:1px 1px 0 rgba(255,255,255,.5)}
.lvl-gold{background:#f2c230;color:#5a3e00;text-shadow:1px 1px 0 rgba(255,255,255,.45)}
.lvl-diamond{background:#3fd5d0;color:#06403e;text-shadow:1px 1px 0 rgba(255,255,255,.45)}
.lvl-netherite{background:#4a3f4b;color:#f0e6ff}
h1 .lvl{font-size:15px;height:28px;min-width:28px;vertical-align:5px}
.lvl-card{margin:0 0 16px}
.lvl-main{display:flex;align-items:center;gap:16px}
.lvl.lvl-big{width:64px;height:64px;margin:0;font-size:26px;border-radius:6px;box-shadow:inset -4px -4px 0 rgba(0,0,0,.25),inset 4px 4px 0 rgba(255,255,255,.3)}
.lvl-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.lvl-title{font-size:16px}
.lvl-bar{height:12px}
.lvl-ranks{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.lvl-ranks li{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border-radius:8px;background:var(--surface-2);opacity:.45;text-align:center}
.lvl-ranks li.got{opacity:1}
.lvl-ranks li.cur{box-shadow:0 0 0 2px var(--accent) inset}
.lvl-ranks li .lvl{margin:0}
.lvl-ranks small{font-size:11px;color:var(--ink-2)}
.lvl-how{margin-top:12px}
.lvl-how summary{cursor:pointer;color:var(--ink-2)}
.lvl-tbl{width:100%;margin-top:8px;border-collapse:collapse;font-size:13.5px}
.lvl-tbl td{padding:7px 4px;border-top:1px solid var(--line);vertical-align:top}
.lvl-tbl td small{display:block;font-size:12px;margin-top:2px}
.lvl-tbl .r{text-align:right}
@media (max-width:560px){.lvl-ranks{grid-template-columns:repeat(3,minmax(0,1fr))}.lvl.lvl-big{width:52px;height:52px;font-size:22px}}

/* 92: оглавление подборок */
.pb-toc{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 18px}
.pb-toc a{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:13px}
.pb-toc a:hover{border-color:var(--accent);color:var(--ink)}
.pb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.pb-card h2{font-size:16px;margin:0 0 10px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pb-card h2 a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.pb-card h2 a:hover{color:var(--accent)}
.pb-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;margin-top:8px}
.pb-l{font-size:12px;color:var(--ink-3);padding-top:4px}
.pb-links{display:flex;flex-wrap:wrap;gap:5px}
.pb-links a{padding:3px 9px;border-radius:7px;background:var(--surface-2);color:var(--ink);text-decoration:none;font-size:13px}
.pb-links a:hover{background:var(--accent-soft)}
@media (max-width:560px){.pb-grid{grid-template-columns:1fr}}

/* ───────── Анимации интерфейса (только если не включено «уменьшить движение» — класс .anim) ───────── */

/* 119: переход между страницами — шапка, нижняя панель и всё вокруг стоят на месте, мягко меняется только содержимое */
@view-transition{navigation:auto}
header.nav{view-transition-name:site-header;position:relative}
/* Открытое меню «Инструменты» — поверх содержимого страницы (main — отдельный слой из-за плавных переходов) */
header.nav:has(details[open]){z-index:70}
main{view-transition-name:page}
.bnav{view-transition-name:bottom-nav}
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-group(site-header),::view-transition-group(bottom-nav){animation:none}
::view-transition-old(site-header),::view-transition-old(bottom-nav){animation:none;opacity:0}
::view-transition-new(site-header),::view-transition-new(bottom-nav){animation:none}
::view-transition-group(page){animation:none}
::view-transition-old(page){animation:vt-out 90ms ease-out both}
::view-transition-new(page){animation:vt-in 150ms ease-out both}
::view-transition-image-pair(page){isolation:auto}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
/* смена темы кругом — без отдельных слоёв, иначе середина страницы перекрасится не кругом */
html.theme-vt header.nav,html.theme-vt main,html.theme-vt .bnav{view-transition-name:none}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* полоска загрузки сверху, пока открывается следующая страница */
.navbar-load{position:fixed;left:0;top:0;z-index:500;height:3px;width:0;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,#7FD836,#C2F76A 60%,#E9F95C);box-shadow:0 0 8px rgba(127,216,54,.7),0 1px 0 rgba(0,0,0,.15)}
.navbar-load.nl-on{opacity:1;width:82%;transition:width 8s cubic-bezier(.08,.6,.1,1),opacity .15s}
.navbar-load.nl-on.nl-start{width:28%;transition:width .35s ease-out,opacity .15s}
.navbar-load.nl-done{width:100%;opacity:0;transition:width .2s ease-out,opacity .3s .2s}

/* 111: полоска заполненности растёт, когда карточка появляется на экране */
.anim .srv .bar.xp i{transform-origin:left center;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.anim .srv:not(.in) .bar.xp i{transform:scaleX(0)}
.anim .lvl-bar i{transform-origin:left center;animation:xp-grow 1s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes xp-grow{from{transform:scaleX(0)}}

/* 112: карточка сервера при наведении — как экран выбора сервера в игре */
@media (hover:hover){
  .anim .srv{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .anim .srv:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px rgba(15,25,35,.45)}
  .anim .srv:hover .srv-icon{animation:icon-wiggle .5s ease}
  .anim .srv .motd,.anim .srv .motd-img{transition:filter .18s,box-shadow .18s}
  .anim .srv:hover .motd,.anim .srv:hover .motd-img{filter:brightness(1.12) saturate(1.1);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}
}
@keyframes icon-wiggle{25%{transform:rotate(-6deg) scale(1.06)}55%{transform:rotate(5deg) scale(1.06)}80%{transform:rotate(-2deg)}}

/* 113: блик по медалям топ-3 */
.rank.ore span{position:relative;overflow:hidden}
.anim .rank.ore span::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg);animation:ore-shine 4.5s ease-in-out infinite}
.anim .rank.ore-gold span::after{animation-delay:.6s}
.anim .rank.ore-iron span::after{animation-delay:1.2s}
@keyframes ore-shine{0%,70%{left:-60%}88%,100%{left:130%}}

/* 114: копирование IP с отдачей */
.anim .ip-copy,.anim [data-copy].btn{transition:transform .1s ease}
.anim .ip-copy:active,.anim [data-copy].btn:active{transform:scale(.95)}
.anim .copied .ip-act,.anim [data-copy].btn.copied{animation:copy-pop .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes copy-pop{0%{transform:scale(.7)}100%{transform:scale(1)}}
.xp-orb{position:fixed;z-index:200;width:8px;height:8px;pointer-events:none;border-radius:1px;box-shadow:inset -1px -1px 0 rgba(0,0,0,.25),0 0 6px currentColor}

/* 117: график онлайна прорисовывается, «сейчас» пульсирует */
.anim .chart .chart-area{animation:chart-fade .9s ease .35s both}
@keyframes chart-fade{from{opacity:0}}
.chart .chart-ring{transform-box:fill-box;transform-origin:center;animation:chart-ring 2s ease-out infinite}
@keyframes chart-ring{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(3.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.chart .chart-ring{animation:none;opacity:0}}

/* 118: палочки сигнала как в списке серверов Minecraft */
.sig{display:inline-flex;align-items:flex-end;gap:1px;width:17px;height:12px;flex:none}
.sig{--sig-off:color-mix(in srgb,var(--ink-3) 35%,transparent)}
.sig i{flex:1;background:var(--sig-off);border-radius:0}
.sig i:nth-child(1){height:20%}.sig i:nth-child(2){height:40%}.sig i:nth-child(3){height:60%}.sig i:nth-child(4){height:80%}.sig i:nth-child(5){height:100%}
.sig-5 i,.sig-4 i:nth-child(-n+4),.sig-3 i:nth-child(-n+3),.sig-2 i:nth-child(-n+2),.sig-1 i:nth-child(1){background:#3fbf3f;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}
.sig-2 i:nth-child(-n+2),.sig-1 i:nth-child(1){background:#e3b324}
.sig-1 i:nth-child(1){background:#e3542b}
.sig-off{position:relative}
.sig-off i{background:var(--sig-off)}
.sig-off::after{content:"✕";position:absolute;right:-3px;bottom:-4px;font:700 10px/1 var(--f-mono);color:var(--bad)}
.anim .sig:not(.sig-off) i{animation:sig-scan 1.1s steps(1) 1 both}
.anim .sig:not(.sig-off) i:nth-child(2){animation-delay:.08s}.anim .sig:not(.sig-off) i:nth-child(3){animation-delay:.16s}
.anim .sig:not(.sig-off) i:nth-child(4){animation-delay:.24s}.anim .sig:not(.sig-off) i:nth-child(5){animation-delay:.32s}
@keyframes sig-scan{0%{opacity:.25}30%{opacity:1}55%{opacity:.25}80%,100%{opacity:1}}
.anim .sig-off::after{animation:sig-blink 1.2s steps(1) infinite}
@keyframes sig-blink{50%{opacity:.25}}
.status-line .sig{margin-right:2px}
.sig-hero{width:22px;height:16px;align-self:center;gap:2px}
.sig-hero{--sig-off:rgba(255,255,255,.28)}
.sv-hero .sig-off::after{color:#F87171}

/* 120: кнопка «Наверх» */
.to-top{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:55;width:44px;height:44px;display:grid;place-items:center;padding:0;
  border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:0 8px 20px -10px rgba(15,25,35,.45);
  opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s,border-color .15s}
.to-top[hidden]{display:none}
.to-top.show{opacity:1;transform:none}
.to-top:hover{border-color:var(--accent);color:var(--accent)}
.to-top svg{width:18px;height:18px}
.anim .to-top.jump{animation:to-top-jump .45s cubic-bezier(.3,.7,.4,1)}
@keyframes to-top-jump{0%{transform:none}35%{transform:translateY(-14px) scaleY(1.06)}70%{transform:translateY(2px) scaleY(.94)}100%{transform:none}}
body:has(.cookie-note:not(.hide)) .to-top{bottom:calc(150px + env(safe-area-inset-bottom,0px))}
@media (max-width:560px){body:has(.cookie-note:not(.hide)) .to-top{bottom:calc(84px + env(safe-area-inset-bottom,0px))}.to-top{right:12px;width:40px;height:40px}}

/* ───────── 121: шапка на телефоне + выезжающее меню ───────── */
.burger{display:none;width:40px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;flex-direction:column;justify-content:center;gap:4px}
.burger span{display:block;height:2px;background:var(--ink);border-radius:1px;transition:transform .2s,opacity .2s}
.drawer[hidden]{display:none}
.drawer{position:fixed;inset:0;z-index:300}
.drawer-back{position:absolute;inset:0;background:rgba(10,14,20,.45);opacity:0;transition:opacity .22s}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);display:flex;flex-direction:column;background:var(--surface);box-shadow:-12px 0 32px -12px rgba(0,0,0,.4);
  transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);overflow-y:auto;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px))}
.drawer.open .drawer-back{opacity:1}
.drawer.open .drawer-panel{transform:none}
.drawer-top{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.drawer-me{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-width:0}
.drawer-me span{display:flex;flex-direction:column;min-width:0}
.drawer-me small{display:flex;align-items:center;gap:4px;color:var(--ink-3);font-size:12px}
.drawer-me small svg{width:12px;height:12px}
.drawer-x{margin-left:auto;width:36px;height:36px;border:0;border-radius:8px;background:var(--surface-2);color:var(--ink);font-size:16px;cursor:pointer}
.drawer-nav{display:flex;flex-direction:column;padding:8px 0}
.drawer-nav a{padding:11px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:15px}
.drawer-nav a.on{background:var(--accent-soft);font-weight:600}
.drawer-nav a:active{background:var(--surface-2)}
.drawer-h{margin:12px 10px 4px;font:700 11px var(--f-pix);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.drawer-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.drawer-foot form{margin:0}
.drawer-foot .dot{display:inline-block;width:7px;height:7px;vertical-align:1px}
@media (prefers-reduced-motion:reduce){.drawer-panel,.drawer-back{transition:none}}

/* ───────── 123: нижняя навигация ───────── */
.bnav{display:none}
.toasts{position:fixed;z-index:400;top:14px;right:14px;display:flex;flex-direction:column;gap:8px;width:min(380px,calc(100vw - 28px));pointer-events:none}

@media (max-width:640px){
  .nav{flex-wrap:nowrap;gap:10px;padding-block:12px}
  .nav > nav,.nav .site-online,.nav .dm-chip,.nav .me-chip,.nav .right form,.nav .right > .btn{display:none!important}
  .nav .right{margin-left:auto;width:auto;flex-wrap:nowrap}
  .burger{display:flex}
  .logo{font-size:20px}

  body{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}
  .bnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:90;height:calc(58px + env(safe-area-inset-bottom,0px));
    padding:4px 4px env(safe-area-inset-bottom,0px);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}
  .bnav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);text-decoration:none;font-size:10.5px;font-weight:600;border-radius:10px}
  .bnav a svg,.bnav a .logo-block,.bnav a .ava,.bnav a img{width:22px;height:22px;filter:grayscale(.6);opacity:.8;transition:filter .15s,opacity .15s,transform .15s}
  .bnav a.on{color:var(--ink)}
  .bnav a.on svg,.bnav a.on .logo-block,.bnav a.on .avatar,.bnav a.on img{filter:none;opacity:1;transform:translateY(-1px)}
  .bnav a.on::before{content:"";position:absolute;top:-5px;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--grass)}
  .bnav a:active{background:var(--surface-2)}
  .bnav-n{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--bad);color:#fff;font-size:10px;line-height:16px;text-align:center}
  /* то, что прижато к низу экрана, поднимаем над нижней панелью */
  .cookie-note{bottom:calc(66px + env(safe-area-inset-bottom,0px))!important}
  .to-top{bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  body:has(.cookie-note:not(.hide)) .to-top{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  body:has(.ipbar.show) .to-top{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
  .toasts{top:auto;bottom:calc(70px + env(safe-area-inset-bottom,0px));right:8px;left:8px;width:auto}
  body:has(.ipbar.show) .toasts{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
}

/* ───────── 122: закреплённая панель с IP (только телефон) ───────── */
.ipbar{display:none}
@media (max-width:640px){
  .ipbar{display:flex;align-items:center;gap:8px;position:fixed;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom,0px));z-index:85;padding:7px 7px 7px 8px;
    border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 28px -12px rgba(0,0,0,.45);
    transform:translateY(calc(100% + 80px));transition:transform .25s cubic-bezier(.2,.8,.2,1)}
  .ipbar[hidden]{display:none}
  .ipbar.show{transform:none}
  .ipbar .srv-icon{width:34px;height:34px;border-radius:7px;flex:none}
  .ipbar-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
  .ipbar-t b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ipbar-t span{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ipbar-btn{flex:none;padding:8px 11px;font-size:13px;min-height:0}
  .ipbar-vl{display:none}
  body:has(.cookie-note:not(.hide)) .ipbar{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:reduce){.ipbar{transition:none}}

/* ───────── 124: всплывающие уведомления ───────── */
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:11px 12px 11px 14px;border-radius:12px;font-size:14px;line-height:1.4;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 14px 34px -14px rgba(15,25,35,.5);border-left:4px solid var(--accent);
  animation:toast-in .3s cubic-bezier(.2,.9,.3,1.2) both}
.toast.ok{border-left-color:var(--ok)}
.toast.error{border-left-color:var(--bad)}
.toast.info{border-left-color:var(--accent)}
.toast-ico{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:4px;font-size:12px;font-weight:800;color:#fff;background:var(--accent)}
.toast.ok .toast-ico{background:var(--ok)}
.toast.error .toast-ico{background:var(--bad)}
.toast-t{flex:1;min-width:0}
.toast-x{flex:none;border:0;background:none;color:var(--ink-3);font-size:15px;line-height:1;padding:2px 4px;cursor:pointer}
.toast-x:hover{color:var(--ink)}
.toast.out{animation:toast-out .22s ease-in both}
.toast-bar{position:absolute;left:0;bottom:0;height:3px;background:currentColor;opacity:.18;animation:toast-bar linear both}
.toast{position:relative;overflow:hidden}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px) scale(.97)}}
@keyframes toast-out{to{opacity:0;transform:translateX(24px)}}
@keyframes toast-bar{from{width:100%}to{width:0}}
@media (max-width:640px){@keyframes toast-in{from{opacity:0;transform:translateY(14px) scale(.97)}}}
.js-toasts .flashes{display:none}
@media (prefers-reduced-motion:reduce){.toast,.toast.out{animation:none}.toast-bar{display:none}}

/* ───────── 127: фейерверк при голосе ───────── */
.vote-spark{position:fixed;z-index:250;width:9px;height:9px;pointer-events:none;border-radius:1px;box-shadow:inset -2px -2px 0 rgba(0,0,0,.22),inset 2px 2px 0 rgba(255,255,255,.35)}
.anim .sv-count.bump{animation:count-bump .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes count-bump{0%{transform:scale(1)}40%{transform:scale(1.6);background:var(--emerald,#17DD62);color:#fff}100%{transform:scale(1)}}

/* ───────── 130: длинное описание сворачивается ───────── */
.rich.is-clamped{max-height:260px;overflow:hidden;position:relative}
.rich.is-clamped::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(transparent,var(--surface));pointer-events:none}
.clamp-btn{margin-top:8px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}
.clamp-btn:hover{border-color:var(--accent)}
.clamp-btn i{display:inline-block;transition:transform .2s;font-style:normal}
.clamp-btn.open i{transform:rotate(180deg)}
.anim .rich.expanding{transition:max-height .45s cubic-bezier(.2,.8,.2,1)}
@media (max-width:640px){.bnav a .ava{--s:22px!important;width:22px;height:22px;font-size:11px}}

/* Итоги недели на странице сервера */
.sv-week{margin:0 0 16px}
.sv-week-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.sv-week-grid{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(220px,1.3fr) minmax(220px,1.2fr);gap:18px 24px;align-items:stretch}
.sv-week-main{display:flex;flex-direction:column;gap:4px;justify-content:center}
.sv-week-main small{color:var(--ink-3);font-size:12.5px}
.sv-week-main b{font:700 34px/1.05 var(--f-pix);color:var(--ink)}
.sv-week-ch{align-self:flex-start;margin-top:4px;padding:3px 8px;border-radius:6px;font-size:12.5px;font-weight:700;background:var(--surface-2);color:var(--ink-2)}
.sv-week-ch.up{background:var(--ok-soft);color:var(--ok)}
.sv-week-ch.down{background:var(--bad-soft);color:var(--bad)}
.sv-week-ch.flat{font-weight:500}
.sv-week-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;min-height:120px;padding:4px 0 0}
.sv-week-bars .wb{display:flex;flex-direction:column;align-items:stretch;gap:5px;height:100%;justify-content:flex-end}
.sv-week-bars .wb i{display:block;height:calc((100% - 34px) * var(--h, 1));min-height:0;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#9BE15D,#56A82A);box-shadow:inset 0 -3px 0 rgba(0,0,0,.15)}
.sv-week-bars .wb.today i{background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000))}
.sv-week-bars .wb.none i{height:4px;background:var(--surface-2);box-shadow:none}
.sv-week-bars .wb small{text-align:center;font-size:11px;color:var(--ink-3)}
.sv-week-bars .wb em{font-style:normal;text-align:center;font:600 10.5px var(--f-mono);color:var(--ink-2);white-space:nowrap}
.sv-week-bars .wb{gap:3px}
.sv-week-bars .wb.today small{color:var(--ink);font-weight:700}
.sv-week-bars{height:140px}
.anim .sv-week-bars .wb i{transform-origin:bottom;animation:wb-grow .7s cubic-bezier(.2,.8,.2,1) both}
.anim .sv-week-bars .wb:nth-child(2) i{animation-delay:.05s}.anim .sv-week-bars .wb:nth-child(3) i{animation-delay:.1s}.anim .sv-week-bars .wb:nth-child(4) i{animation-delay:.15s}
.anim .sv-week-bars .wb:nth-child(5) i{animation-delay:.2s}.anim .sv-week-bars .wb:nth-child(6) i{animation-delay:.25s}.anim .sv-week-bars .wb:nth-child(7) i{animation-delay:.3s}
@keyframes wb-grow{from{transform:scaleY(0)}}
.sv-week-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.sv-week-facts li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:baseline;font-size:13.5px;padding-bottom:6px;border-bottom:1px dashed var(--line)}
.sv-week-facts li:last-child{border-bottom:0;padding-bottom:0}
.sv-week-facts span{color:var(--ink-2)}
.sv-week-facts b{text-align:right}
.sv-week-facts small{grid-column:1/-1;font-size:11.5px;color:var(--ink-3)}
.sv-week-sum{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--line)}
@media (max-width:900px){.sv-week-grid{grid-template-columns:1fr 1.3fr}.sv-week-facts{grid-column:1/-1}}
@media (max-width:560px){.sv-week-grid{grid-template-columns:1fr}.sv-week-bars{height:110px}}

/* Вкладка «Продвижение» — алмазная кнопка */
.sv2-tab[data-tab="promo"]{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:7px;color:#0b4a48;
  background:linear-gradient(135deg,#D8FFFB 0%,#7DEEE5 45%,#3FD5D0 100%);box-shadow:inset 0 -2px 0 rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(29,156,154,.35)}
.sv2-tab[data-tab="promo"] svg{width:16px;height:16px;flex:none;filter:drop-shadow(0 1px 0 rgba(0,0,0,.2))}
.sv2-tab[data-tab="promo"]:hover{color:#063a38;background:linear-gradient(135deg,#E6FFFC 0%,#8FF3EB 45%,#4ADDD7 100%);box-shadow:inset 0 -2px 0 rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(29,156,154,.5),0 4px 14px -4px rgba(63,213,208,.7)}
.sv2-tab[data-tab="promo"][aria-selected="true"]{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.25);
  background:linear-gradient(135deg,#2FC9C4 0%,#1D9C9A 55%,#137371 100%);box-shadow:inset 0 -2px 0 rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.35),0 4px 16px -4px rgba(29,156,154,.75)}
/* блик пробегает по кнопке */
.sv2-tab[data-tab="promo"]::after{content:"";position:absolute;top:-30%;bottom:-30%;left:-50%;width:35%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-20deg);opacity:0}
.anim .sv2-tab[data-tab="promo"]::after{opacity:1;animation:promo-shine 5s ease-in-out 1.2s infinite}
.anim .sv2-tab[data-tab="promo"] svg{animation:px-bob 2.4s ease-in-out infinite}
@keyframes promo-shine{0%,72%{left:-50%}90%,100%{left:130%}}
:root[data-theme="dark"] .sv2-tab[data-tab="promo"]:not([aria-selected="true"]){color:#bff8f4;background:linear-gradient(135deg,rgba(63,213,208,.28),rgba(29,156,154,.18));box-shadow:inset 0 0 0 1px rgba(63,213,208,.45)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sv2-tab[data-tab="promo"]:not([aria-selected="true"]){color:#bff8f4;background:linear-gradient(135deg,rgba(63,213,208,.28),rgba(29,156,154,.18));box-shadow:inset 0 0 0 1px rgba(63,213,208,.45)}}

/* 139: вкладки страницы сервера — затухание по краям, когда есть куда листать */
.sv2-tabs.more-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
.sv2-tabs.more-l{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px);mask-image:linear-gradient(90deg,transparent,#000 44px)}
.sv2-tabs.more-l.more-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}

/* 140: кнопка «думает» после отправки формы */
.is-busy{position:relative;pointer-events:none;cursor:progress}
.btn.is-busy{color:transparent!important;text-shadow:none!important}
.btn.is-busy > *{visibility:hidden}
.btn.is-busy::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -11px;border-radius:1px;
  background:currentColor;color:var(--busy-c,#fff);box-shadow:8px 0 0 var(--busy-c,#fff),16px 0 0 var(--busy-c,#fff);animation:busy-dots .9s steps(1) infinite}
.btn:not(.primary):not(.accent).is-busy{--busy-c:var(--ink-2)}
.linkish.is-busy{opacity:.55}
@keyframes busy-dots{0%{box-shadow:8px 0 0 transparent,16px 0 0 transparent}33%{box-shadow:8px 0 0 var(--busy-c,#fff),16px 0 0 transparent}66%,100%{box-shadow:8px 0 0 var(--busy-c,#fff),16px 0 0 var(--busy-c,#fff)}}
@media (prefers-reduced-motion:reduce){.btn.is-busy::after{animation:none}}

/* 142: «Голосовать» вместо «0 голосов» */
.vote-chip.zero{color:var(--ink-2)}

/* 155: пояснение режима и «Частые вопросы» на посадочных страницах */
.about-intro{color:var(--ink)!important;font-size:15px;line-height:1.6}
.about-faq{margin-top:14px}
.about-faq h2{font-size:17px;margin-bottom:4px}
/* 154: подвал рисуем только когда до него доскроллили */
footer.site{content-visibility:auto;contain-intrinsic-size:auto 420px}

/* 148: серия голосов — всплывашка после голоса */
.streak-pop{position:fixed;z-index:300;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(420px,calc(100vw - 24px));
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:var(--surface);color:var(--ink);
  box-shadow:0 18px 50px -12px rgba(0,0,0,.45),0 0 0 1px var(--line),inset 0 0 0 1px rgba(255,150,40,.25)}
.streak-pop.hit{box-shadow:0 18px 50px -12px rgba(0,0,0,.45),0 0 0 2px #FF9A2E,0 0 26px -4px rgba(255,140,30,.6)}
.streak-pop.out{opacity:0;transform:translate(-50%,16px);transition:opacity .25s,transform .25s}
.sp-fire{flex:none;width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:radial-gradient(circle at 50% 70%,#FFB443,#FF6A1A 70%);color:#fff}
.sp-fire svg{width:26px;height:26px}
.sp-t{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.sp-t b{font-size:16px}
.sp-n{font-family:Rubik,Onest,sans-serif;font-size:20px;color:#FF7A1F}
.sp-t small{color:var(--ink-2);font-size:12.5px;line-height:1.35}
.sp-bar{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:3px}
.sp-bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#FFB443,#FF6A1A)}
.sp-x{flex:none;align-self:flex-start;border:0;background:none;color:var(--ink-3);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}
.sp-x:hover{color:var(--ink)}
@media (max-width:760px){.streak-pop{bottom:calc(72px + env(safe-area-inset-bottom,0px))}}
html.anim .streak-pop{animation:spIn .55s cubic-bezier(.2,1.4,.4,1) 1.3s both}
html.anim .streak-pop .sp-fire svg{animation:spFlick 1.1s ease-in-out 1.6s infinite alternate}
html.anim .streak-pop .sp-bar i{animation:spBar .9s cubic-bezier(.3,.8,.3,1) 1.7s both}
html.anim .streak-pop.hit .sp-fire{animation:spGlow 1.4s ease-in-out 1.8s 3}
@keyframes spIn{from{opacity:0;transform:translate(-50%,30px) scale(.9)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes spFlick{0%{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.08,1.14) rotate(2deg)}100%{transform:scale(.96,1.04) rotate(-1deg)}}
@keyframes spBar{from{width:0}}
@keyframes spGlow{50%{box-shadow:0 0 0 6px rgba(255,140,30,.25),0 0 22px rgba(255,140,30,.7)}}

/* 148: серия голосов в профиле */
.streak-card{margin-top:14px}
.stk-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stk-fire{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--bg-2,rgba(127,127,127,.12));color:var(--ink-3)}
.stk-fire svg{width:28px;height:28px}
.streak-card.on .stk-fire{background:radial-gradient(circle at 50% 70%,#FFB443,#FF6A1A 70%);color:#fff}
.streak-card.risk .stk-fire{background:radial-gradient(circle at 50% 70%,#ffcf8a,#c98a52 70%)}
html.anim .streak-card.on .stk-fire svg{animation:spFlick 1.1s ease-in-out infinite alternate}
html.anim .streak-card.risk .stk-fire{animation:stkPulse 1.6s ease-in-out infinite}
@keyframes stkPulse{50%{box-shadow:0 0 0 6px rgba(255,140,30,.18)}}
.stk-info{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}
.stk-title b{font-size:17px}
.stk-warn{color:#E0701B}
.stk-bar{height:6px;margin-top:4px}
.stk-bar i{background:linear-gradient(90deg,#FFB443,#FF6A1A)}
.stk-days{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;margin-top:14px}
.stk-days span{display:flex;flex-direction:column;align-items:center;gap:3px}
.stk-days i{display:block;width:100%;max-width:26px;aspect-ratio:1;border-radius:6px;background:var(--line)}
.stk-days .on i{background:linear-gradient(180deg,#FFB443,#FF6A1A)}
.stk-days .today i{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--ink-3)}
.stk-days small{font-size:10px;color:var(--ink-3)}
.stk-miles{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0}
.stk-miles li{display:flex;align-items:baseline;gap:5px;padding:3px 9px;border-radius:999px;background:var(--line);color:var(--ink-3);font-size:12px}
.stk-miles li b{font-family:Rubik,Onest,sans-serif}
.stk-miles li.got{background:rgba(255,140,30,.16);color:#E0701B}
@media (max-width:520px){.stk-days small{font-size:9px}}
.stk-chip{display:inline-flex;align-items:center;gap:3px;height:32px;padding:0 9px 0 7px;border-radius:999px;text-decoration:none;
  background:rgba(255,140,30,.14);color:#E0701B;font-family:Rubik,Onest,sans-serif;font-size:14px}
.stk-chip svg{width:16px;height:16px}
.stk-chip:hover{background:rgba(255,140,30,.24)}
.stk-chip.risk{background:var(--line);color:var(--ink-3)}
html.anim .stk-chip.risk svg{animation:stkBlink 1.8s ease-in-out infinite}
@keyframes stkBlink{50%{opacity:.35}}

/* 151: позиции в рейтинге (статистика владельца) */
.pl-now{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.pl-tile{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s,background .15s}
.pl-tile small{color:var(--ink-3);font-size:12px}
.pl-tile b{font-family:Rubik,Onest,sans-serif;font-size:24px;line-height:1.1}
.pl-tile:hover{border-color:var(--ink-3)}
.pl-tile.on{border-color:var(--c1);background:color-mix(in srgb,var(--c1) 8%,transparent)}
.pl-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px}
.pl-tags .tag{font-size:12.5px;text-decoration:none}
.pl-tags .tag b{margin-left:3px}
.pl-tags .tag.on{border-color:var(--c1);box-shadow:inset 0 0 0 1px var(--c1)}
.pl-chart-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 6px}
.pl-hints{list-style:none;margin:14px 0 0;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--c1) 7%,transparent);display:flex;flex-direction:column;gap:7px}
.pl-hints li{display:flex;gap:9px;align-items:flex-start;font-size:14px}
.pl-hints svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--c1)}
@media (max-width:600px){.pl-now{grid-template-columns:1fr 1fr 1fr;gap:6px}.pl-tile{padding:9px 10px}.pl-tile b{font-size:19px}}

/* 150: живой виджет — предпросмотр в кабинете */
.wg-live{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:10px;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/16px 16px;border:1px solid var(--line);margin-bottom:10px}
.wg-live iframe{display:block;border:0;width:100%;background:transparent;color-scheme:normal}
.wg-live-card{max-width:380px;height:250px}
.wg-live-wide{max-width:760px;height:70px}
.pl-chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:700px){.pl-chart{min-width:620px}}

/* 157: поиск игрока по нику */
.players a{font-family:var(--f-mono);font-size:12px;background:var(--surface-2);padding:2px 6px;border-radius:4px;color:var(--ink);text-decoration:none}
.players.heads a{display:inline-flex;align-items:center;gap:5px;padding:3px 7px 3px 3px}
.players a:hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));color:var(--ink)}
.pl-result{max-width:760px}
.pl-who{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pl-who h2{font-size:22px;margin:0 0 3px}
.pl-head{width:48px;height:48px;border-radius:6px;image-rendering:pixelated;flex:none}
.pl-now-on{color:#1f9d55}
.pl-list{display:flex;flex-direction:column;gap:6px}
.pl-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s}
.pl-item:hover{border-color:var(--ink-3)}
.pl-item.now{border-color:color-mix(in srgb,#1f9d55 55%,var(--line));background:color-mix(in srgb,#1f9d55 6%,transparent)}
.pl-item .srv-icon,.pl-item img{width:40px;height:40px;flex:none}
.pl-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pl-mid b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-when{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:13px;flex:none;text-align:right}
.pl-badge{color:#1f9d55;font-weight:600}

/* 158: голос в один клик */
.qv-form{display:flex;margin:0}
.qv-form .btn{flex:1;white-space:nowrap}
.qv-cap{margin-top:8px;color:var(--ink-3);text-align:center;line-height:1.4}
.qv-cap b{color:var(--ink-2)}
.qv-note{display:flex;gap:8px;align-items:flex-start;margin:0 0 12px;padding:9px 11px;border-radius:8px;background:color-mix(in srgb,#1f9d55 9%,transparent);color:var(--ink-2)}
.qv-note svg{flex:none;width:16px;height:16px;margin-top:1px;color:#1f9d55}

/* 147: уведомления в браузере */
.push-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.push-dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);flex:none}
.push-card[data-state=on] .push-dot{background:#1f9d55;box-shadow:0 0 0 3px color-mix(in srgb,#1f9d55 22%,transparent)}
.push-card[data-state=denied] .push-dot,.push-card[data-state=error] .push-dot{background:#d0482f}
.push-cta{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 6%,transparent);margin:10px 0}
.push-cta[hidden]{display:none}
.push-cta-ico svg{width:18px;height:18px;color:var(--accent)}
.push-cta-t{flex:1;font-size:13px;color:var(--ink-2);line-height:1.35}

/* График общего онлайна в шапке главной */
.pulse .hero-chart{flex:1 1 100%;display:block;padding:10px 14px 8px;--hc-c:var(--accent)}
.hc-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}
.hc-meta{font-size:12px;color:var(--ink-2);white-space:nowrap}
.hc-meta b{font-family:var(--f-pix);font-weight:400;color:var(--ink)}
.hc-ch{font-style:normal;margin-left:6px;font-weight:600}
.hc-ch.up{color:#2f9e44}.hc-ch.down{color:#d0482f}
.hc-plot{position:relative;height:64px;cursor:crosshair;touch-action:pan-y}
.hc-plot svg{display:block;width:100%;height:100%;overflow:visible}
.hc-line{stroke:var(--hc-c);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.hc-dot{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:2px;background:var(--hc-c);box-shadow:0 0 0 2px var(--slot,#fff);pointer-events:none}
.hc-dot.now::after,.hero-chart:not(.hover) .hc-dot::after{content:"";position:absolute;inset:-4px;border-radius:3px;border:2px solid var(--hc-c);opacity:0}
html.anim .hero-chart:not(.hover) .hc-dot::after{animation:hcPing 2s ease-out infinite}
@keyframes hcPing{0%{opacity:.7;transform:scale(.6)}100%{opacity:0;transform:scale(1.6)}}
.hc-tip{position:absolute;transform:translateX(-50%);white-space:nowrap;font-size:12px;line-height:1.3;padding:5px 8px;border-radius:4px;background:var(--ink);color:var(--surface);pointer-events:none;z-index:2}
.hc-tip b{font-family:var(--f-pix);font-weight:400}
.hc-axis{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}
html.anim .hc-plot svg{clip-path:inset(0 100% 0 0);animation:hcDraw 1.4s cubic-bezier(.4,.1,.2,1) .2s forwards}
html.anim .hero-chart .hc-dot{opacity:0;animation:hcFade .3s ease 1.5s forwards}
@keyframes hcDraw{to{clip-path:inset(0 0 0 0)}}
@keyframes hcFade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.hc-plot svg{clip-path:none;animation:none}}
.pulse .hero-chart div,.pulse .hero-chart span:not(.hc-tip){background:none;padding:0}
.pulse .hero-chart .hc-tip{display:block;background:var(--ink);color:var(--surface);padding:5px 8px;font-size:12px}
.pulse:has(.hero-chart){width:min(420px,100%);align-self:end}
.hero:has(.hero-chart) .hero-text{flex:1 1 360px}
.pulse:has(.hero-chart) .slot:not(.hero-chart){flex:1 1 0;min-width:0}
.pulse .hero-chart .hc-head span,.pulse .hero-chart .hc-axis span{display:inline}

/* Админка → Почта */
.ml-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:16px}
@media (max-width:900px){.ml-grid{grid-template-columns:1fr}}
.ml-card{margin-bottom:16px}
.ml-grid .ml-card{margin-bottom:0}
.ml-kv{width:100%;border-collapse:collapse;font-size:14px}
.ml-kv th{text-align:left;font-weight:500;color:var(--ink-3);padding:5px 12px 5px 0;width:120px;vertical-align:top}
.ml-kv td{padding:5px 0;word-break:break-all}
.ml-lint{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.ml-lint li{display:flex;gap:8px;align-items:flex-start}
.ml-custom-note{margin:10px 0 0;padding:7px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.ml-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ml-actions p{margin:0 0 8px}
.ml-send{display:flex;gap:8px;flex-wrap:wrap;width:100%;align-items:center}
.ml-send .input{flex:1 1 200px;min-width:0}
.ml-result{margin-bottom:16px;border-left:4px solid var(--line)}
.ml-result.ok{border-left-color:#2f9e44}.ml-result.bad{border-left-color:#d0482f}
.ml-res-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.ml-res-head i{font-style:normal;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:#2f9e44;flex:none}
.ml-result.bad .ml-res-head i{background:#d0482f}
.ml-res-head b{display:block;font-size:16px}
.ml-err{margin:0 0 8px;padding:9px 11px;border-radius:8px;background:color-mix(in srgb,#d0482f 9%,transparent);color:var(--ink);font-size:13px;word-break:break-word}
.ml-hint{margin:0 0 8px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.ml-info{display:flex;flex-direction:column;gap:3px;margin:6px 0 8px;color:var(--ink-2)}
.ml-warn{color:#d0482f}
.ml-log summary,.ml-snippet summary{cursor:pointer;margin:6px 0}
.ml-log pre{margin:6px 0 0;padding:10px 12px;border-radius:8px;background:var(--surface-2);font:12px/1.55 var(--f-mono);overflow-x:auto;max-height:420px}
.ml-l{display:block;white-space:pre-wrap;word-break:break-all}
.ml-l i{font-style:normal;color:var(--ink-3)}
.ml-l b{font-weight:600;display:inline-block;min-width:58px}
.ml-c b{color:var(--accent)}.ml-s b{color:#2f9e44}.ml-i{color:var(--ink-3)}.ml-e{color:#d0482f}
.ml-try{margin-bottom:16px}
.ml-try > summary{cursor:pointer;list-style:none}
.ml-try > summary::-webkit-details-marker{display:none}
.ml-form{margin-top:12px}
.ml-presets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.ml-presets .tag{cursor:pointer;border:1px solid var(--line);background:var(--surface)}
.ml-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.ml-fields label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}
@media (max-width:700px){.ml-fields{grid-template-columns:1fr 1fr}}
.ml-dnsval{word-break:break-all;font-size:12px}
.ml-journal td{vertical-align:top}
.ml-fail td{background:color-mix(in srgb,#d0482f 5%,transparent)}
.ml-okt{color:#2f9e44}.ml-badt{color:#d0482f;word-break:break-word}
.nowrap{white-space:nowrap}
.ml-code{display:flex;gap:10px;align-items:flex-start;margin-top:6px}
.ml-code pre{flex:1;margin:0;padding:10px 12px;border-radius:8px;background:var(--surface-2);font:12.5px/1.5 var(--f-mono);overflow-x:auto}
.ml-diff{margin:0 0 10px;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,#e8a33c 12%,transparent);font-size:14px}
.ml-diff ul{margin:6px 0;padding-left:20px}
