/* =====================================================================
   ШРИФТ Press Start 2P — лежит локально в assets/fonts/ (без CDN).
   ===================================================================== */
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/press-start-2p-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/press-start-2p-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/press-start-2p-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/press-start-2p-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* =====================================================================
   СТИЛИ — тот же старый Minecraft, что и на главной
   ===================================================================== */

/* ---------- переменные (палитра старого Minecraft) ---------- */
:root{
  --bg:#0d0d0d;
  --fg:#ffffff;
  --mc-yellow:#ffffa0;
  --mc-splash:#ffff55;
  --mc-text-shadow:#3f3f3f;
  --mc-btn:#6f6f6f;
  --mc-panel:#c6c6c6;
  --mc-slot:#8b8b8b;
  --mc-green:#54952e;
  --mc-xp:#7efc20;
  --container:1024px;
}

/* ---------- база ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:'Press Start 2P','Courier New',monospace;
  font-size:10px;
  line-height:1.7;
  letter-spacing:0;
  -webkit-font-smoothing:none;
  image-rendering:pixelated;
  overflow-x:hidden;
  min-height:100vh;
  display:flex;flex-direction:column;
}
h1,h2,h3,p,ol,ul,li,figure,figcaption{margin:0;padding:0}
img{max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:none;padding:0}
::selection{background:rgba(94,157,52,.6);color:#fff}

.container{max-width:var(--container);margin-inline:auto;padding-inline:16px}
/* main — flex-элемент body: явная ширина, иначе margin:auto
   отключает растяжение и страница берёт ширину по контенту */
main.container{width:100%}

/* ссылка «к содержимому» для клавиатуры */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#000;color:var(--mc-splash);padding:8px 14px;border:2px solid var(--mc-splash)}
.skip-link:focus{left:8px;top:8px}

/* ---------- пиксельный курсор ---------- */
body, body *{
  cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='30' viewBox='0 0 10 15'><path d='M0 0 v13 l3 -3 l2.5 5 l2 -1 l-2.5 -5 h5 z' fill='white' stroke='black' stroke-width='0.9' shape-rendering='crispEdges'/></svg>") 1 1, auto;
}
button,a,summary,label[for],input{
  cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='30' viewBox='0 0 10 15'><path d='M0 0 v13 l3 -3 l2.5 5 l2 -1 l-2.5 -5 h5 z' fill='%23ffffa0' stroke='black' stroke-width='0.9' shape-rendering='crispEdges'/></svg>") 1 1, pointer;
}
input{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='30' viewBox='0 0 10 15'><path d='M0 0 v13 l3 -3 l2.5 5 l2 -1 l-2.5 -5 h5 z' fill='white' stroke='black' stroke-width='0.9' shape-rendering='crispEdges'/></svg>") 1 1, text}

/* ---------- текстовые тени ---------- */
.mc-text{text-shadow:2px 2px 0 var(--mc-text-shadow)}
.dim{color:rgba(255,255,255,.5)}

/* ---------- КНОПКА как в главном меню ---------- */
.mc-btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background-color:var(--mc-btn);
  background-image:url("../img/stone.png");
  background-size:48px 48px;
  image-rendering:pixelated;
  border:2px solid #000;
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.42), inset -2px -2px 0 rgba(0,0,0,.42);
  color:#fff;
  text-shadow:2px 2px 0 var(--mc-text-shadow);
  font-weight:400;
  line-height:1.25;
  text-decoration:none;
  padding:10px 20px;
  font-size:12px;
  transition:filter 90ms steps(2), background-color 90ms steps(2);
  user-select:none;
  -webkit-user-select:none;
}
.mc-btn:hover:not(:disabled),
.mc-btn:focus-visible:not(:disabled){
  color:var(--mc-yellow);
  background-color:#7d7d7d;
  filter:brightness(1.12);
  outline:none;
}
.mc-btn:focus-visible{
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.42), inset -2px -2px 0 rgba(0,0,0,.42), 0 0 0 2px rgba(255,255,160,.7);
}
.mc-btn:active:not(:disabled){
  box-shadow:inset -2px -2px 0 rgba(255,255,255,.25), inset 2px 2px 0 rgba(0,0,0,.45);
  transform:translateY(1px);
}
.mc-btn:disabled{color:#a0a0a0;filter:brightness(.7)}
.mc-btn.small{padding:8px 12px;font-size:10px}

/* ---------- ПАНЕЛИ И СЛОТЫ (GUI инвентаря) ---------- */
.mc-panel-dark{
  background:rgba(16,16,16,.88);
  border:3px solid;
  border-color:#565656 #1a1a1a #1a1a1a #565656;
  outline:3px solid #000;
  color:#fff;
}
.mc-slot{
  background:var(--mc-slot);
  border:2px solid;
  border-color:#373737 #ffffff #ffffff #373737;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ---------- фоны-текстуры (встроены прямо в файл) ---------- */
.bg-dirt-menu{background-image:url("../img/dirt_dark.png");background-size:64px 64px;image-rendering:pixelated}
.bg-bedrock{background-image:url("../img/bedrock.png");background-size:48px 48px;image-rendering:pixelated}
.pixel{image-rendering:pixelated}

/* ---------- скроллбар ---------- */
::-webkit-scrollbar{width:16px;height:16px}
::-webkit-scrollbar-track{background:#000}
::-webkit-scrollbar-thumb{
  background-color:#6f6f6f;
  background-image:url("../img/stone.png");
  background-size:32px 32px;
  border:2px solid #000;
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.4), inset -2px -2px 0 rgba(0,0,0,.4);
}
::-webkit-scrollbar-thumb:hover{background-color:#8a8a8a}

/* =====================================================================
   ШАПКА
   ===================================================================== */
.topbar{
  position:sticky;top:0;z-index:50;
  background-image:url("../img/dirt_dark.png");background-size:64px 64px;image-rendering:pixelated;
  border-bottom:4px solid #000;
  box-shadow:inset 0 -3px 0 rgba(255,255,255,.07);
}
.topbar-inner{
  max-width:var(--container);margin-inline:auto;padding-inline:12px;
  height:56px;display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.topbar-brand{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none}
.topbar-brand .brand-name{font-weight:400;color:#fff;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(min-width:768px){.topbar-brand .brand-name{font-size:12px}}
.topbar-actions{display:flex;align-items:center;gap:8px}

/* =====================================================================
   ЗАГОЛОВОК СТРАНИЦЫ
   ===================================================================== */
.page-head{
  padding:44px 16px 36px;text-align:center;position:relative;
  border-bottom:4px solid #000;
}
.page-title{
  font-size:clamp(16px,3.4vw,30px);
  font-weight:400;color:#ececec;line-height:1.15;overflow-wrap:break-word;
  text-shadow:3px 3px 0 #3f3f3f, 6px 6px 0 rgba(0,0,0,.35);
  -webkit-text-stroke:2px rgba(0,0,0,.55);
}
.page-sub{
  max-width:720px;margin:16px auto 0;color:rgba(255,255,255,.75);
  font-size:11px;line-height:1.7;text-shadow:1px 1px 0 rgba(0,0,0,.8);
}
@media(min-width:768px){.page-sub{font-size:12px}}
.page-stats{
  margin-top:16px;display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;
  color:var(--mc-yellow);font-size:11px;text-shadow:2px 2px 0 var(--mc-text-shadow);
}
.page-stats b{color:#fff;font-weight:400}

/* =====================================================================
   ПАНЕЛЬ ПОИСКА И СОРТИРОВКИ
   ===================================================================== */
.toolbar{
  position:sticky;top:56px;z-index:40;
  background:rgba(13,13,13,.96);
  border-bottom:4px solid #000;
  padding:12px 0;
}
.toolbar-row{display:flex;gap:8px;align-items:center}
.mc-input{
  flex:1;min-width:0;
  background:#000;border:2px solid #a0a0a0;outline:3px solid #000;
  color:#fff;font:inherit;font-size:11px;padding:9px 12px;
  text-shadow:1px 1px 0 rgba(0,0,0,.8);
}
.mc-input::placeholder{color:rgba(255,255,255,.4)}
.mc-input:focus{border-color:#ffffff;outline:3px solid #000}
.toolbar-count{margin-top:8px;font-size:10px;color:rgba(255,255,255,.6);text-shadow:1px 1px 0 rgba(0,0,0,.8)}

/* ---------- чекбоксы-фильтры в стиле слотов ---------- */
.toolbar-filters{margin-top:10px;flex-wrap:wrap;gap:8px 20px}
.mc-check{
  display:inline-flex;align-items:center;gap:8px;
  color:rgba(255,255,255,.85);font-size:10px;line-height:1.4;
  text-shadow:1px 1px 0 rgba(0,0,0,.8);
  user-select:none;-webkit-user-select:none;
}
.mc-check:hover{color:#fff}
.mc-check input{position:absolute;opacity:0;width:0;height:0}
.mc-check .box{
  width:18px;height:18px;flex-shrink:0;
  background-color:var(--mc-slot);
  border:2px solid;
  border-color:#373737 #ffffff #ffffff #373737;
  background-repeat:no-repeat;background-position:center;background-size:14px 14px;
  image-rendering:pixelated;
}
.mc-check input:checked + .box{
  background-color:#5a7a4a;
  background-image:url("../img/i/check.svg");
}
.mc-check input:focus-visible + .box{outline:2px solid var(--mc-yellow);outline-offset:2px}
.toolbar-note{font-size:10px;color:rgba(255,255,255,.45);text-shadow:1px 1px 0 rgba(0,0,0,.8);margin-left:auto}
@media(max-width:639px){.toolbar-note{display:none}}

/* =====================================================================
   СПИСОК СЕРВЕРОВ
   ===================================================================== */
.list-section{padding:32px 0 48px}
.section-header{margin-bottom:28px}
.section-header .sh-row{display:flex;align-items:center;gap:12px}
@media(min-width:768px){.section-header .sh-row{gap:20px}}
.section-header .sh-bar{flex:1;height:12px;background-image:url("../img/cobble.png");background-size:48px 48px;image-rendering:pixelated;border-top:2px solid #000;border-bottom:2px solid #000;box-shadow:inset 0 2px 0 rgba(255,255,255,.15)}
.section-header h2{font-size:15px;font-weight:400;color:var(--mc-splash);white-space:nowrap;display:flex;align-items:center;gap:10px}
@media(min-width:768px){.section-header h2{font-size:20px}}
.section-header .sh-sub{text-align:center;color:rgba(255,255,255,.65);margin-top:12px;font-size:11px;text-shadow:1px 1px 0 rgba(0,0,0,.8)}

.srv-list{display:flex;flex-direction:column;gap:12px}

.srv{
  display:flex;align-items:center;gap:14px;
  padding:12px 14px;
  background:rgba(16,16,16,.88);
  border:3px solid;
  border-color:#565656 #1a1a1a #1a1a1a #565656;
  outline:3px solid #000;
  transition:background-color 90ms steps(2);
}
.srv:hover{background:rgba(28,28,28,.92)}
/* избранный сервер — золотая рамка */
.srv.featured{
  border-color:var(--mc-splash) #7d6d10 #7d6d10 var(--mc-splash);
  background:rgba(38,32,6,.92);
}
.srv.featured:hover{background:rgba(50,42,8,.92)}
.srv-icon{width:52px;height:52px;flex-shrink:0}
.srv-icon img{width:100%;height:100%;image-rendering:pixelated}
.srv-main{flex:1;min-width:0}
.srv-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.srv-name{font-size:12px;font-weight:400;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
@media(min-width:768px){.srv-name{font-size:13px}}
.srv-star{flex-shrink:0;display:inline-flex;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.8))}
/* одна строка с многоточием; -webkit-box не используем:
   его min-content растягивает всю flex-цепочку и распухает
   страница на мобильных */
.srv-desc{
  margin-top:4px;color:rgba(255,255,255,.66);font-size:10px;line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
@media(min-width:768px){
  .srv-desc{font-size:10px}
}
.srv-meta{margin-top:6px;display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;font-size:10px}
.srv-addr{color:var(--mc-yellow);text-shadow:1px 1px 0 rgba(0,0,0,.8)}
.srv-ver,.srv-game{color:rgba(255,255,255,.5)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{
  font-size:10px;line-height:1;padding:3px 6px 2px;
  border:2px solid rgba(0,0,0,.8);
  text-shadow:1px 1px 0 rgba(0,0,0,.8);white-space:nowrap;
}
.chip-pvp{background:#5c2626;color:#ff9c9c}
.chip-creative{background:#2e5426;color:#b8e6a8}
.chip-password{background:#4a4a4a;color:#d8d8d8}
.chip-offline{background:#4a1010;color:#ff8080}
.chip-damage{background:#5a4a14;color:#ffe08a}

.srv-side{flex-shrink:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px}
.ping-bars{display:flex;align-items:flex-end;gap:2px;height:16px}
.ping-bars span{width:3px;background:#3a3a3a}
.ping-bars span.on{background:#54d43f}
.srv-players{font-size:12px;font-weight:400;color:#fff}
.srv-players-label{font-size:10px;color:rgba(255,255,255,.45)}
.srv-copy{flex-shrink:0}
.srv-copy img,.srv-details img{flex-shrink:0}
.srv-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}

/* мобильная версия строки */
@media(max-width:639px){
  .srv{flex-wrap:wrap;gap:10px}
  .srv-side{order:2;flex-direction:row;gap:6px;align-items:baseline;min-width:0}
  .srv-players-label{display:none}
  .srv-actions{order:3;margin-left:auto}
  .srv-main{order:1;flex-basis:calc(100% - 62px)}
}

/* ---------- состояния ---------- */
.state-panel{
  max-width:560px;margin:24px auto;text-align:center;padding:28px 20px;
}
.state-panel .big{font-size:13px;font-weight:400;color:#fff;margin-bottom:10px}
.state-panel p{color:rgba(255,255,255,.7);font-size:10px;line-height:1.7;margin-bottom:16px}
.loader-dots::after{content:"...";animation:dots 1.2s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
[hidden]{display:none !important}

noscript .state-panel{margin-top:24px}

/* ---------- разделитель-булыжник ---------- */
.cobble-divider{height:12px;background-image:url("../img/cobble.png");background-size:48px 48px;image-rendering:pixelated;border-top:4px solid #000;border-bottom:4px solid #000}

/* =====================================================================
   ФУТЕР
   ===================================================================== */
.site-footer{
  margin-top:auto;
  /* булыжник + затемняющий слой, чтобы текст читался */
  background-image:linear-gradient(rgba(8,8,8,.55),rgba(8,8,8,.55)),url("../img/cobble.png");
  background-size:auto,48px 48px;image-rendering:pixelated;
  border-top:4px solid #000;
}
.footer-grid{
  max-width:var(--container);margin-inline:auto;padding:36px 16px 32px;
  display:grid;gap:32px;color:rgba(255,255,255,.9);
  text-shadow:1px 1px 0 rgba(0,0,0,.85);
}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr)}}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer-brand .brand-name{font-weight:400;color:#fff}
.footer-about{color:rgba(255,255,255,.8);font-size:10px;line-height:1.625}
.footer-col h3{color:var(--mc-splash);font-weight:400;font-size:11px;margin-bottom:12px}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-links .mc-btn{padding:8px 16px;font-size:11px}
.footer-conn{color:rgba(255,255,255,.85);font-size:10px;line-height:1.625;display:flex;flex-direction:column;gap:6px}
.footer-conn b{color:#fff;font-weight:400}
.footer-bottom{
  border-top:2px solid rgba(0,0,0,.7);background:rgba(0,0,0,.55);
  padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:10px;color:rgba(255,255,255,.75);
}
.footer-bottom .dom{flex-shrink:0}

/* ---------- тост «скопировано» ---------- */
#copy-toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(8px);
  z-index:120;opacity:0;pointer-events:none;
  transition:opacity 150ms steps(3), transform 150ms steps(3);
}
#copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#copy-toast .mc-tooltip{position:static;display:block}

/* =====================================================================
   ОКНО ДЕТАЛЕЙ СЕРВЕРА (модалка в стиле GUI инвентаря)
   ===================================================================== */
body.modal-open{overflow:hidden}
.modal{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:16px}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78)}
.modal-window{
  position:relative;width:min(640px,100%);max-height:min(84vh,720px);
  display:flex;flex-direction:column;
  background:var(--mc-panel);
  border:3px solid;
  border-color:#ffffff #555555 #555555 #ffffff;
  outline:3px solid #000;
  box-shadow:10px 10px 0 rgba(0,0,0,.45);
  color:#3f3f3f;
}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 12px;border-bottom:3px solid #8b8b8b;background:rgba(0,0,0,.08);
}
.modal-title-row{display:flex;align-items:center;gap:10px;min-width:0}
.modal-icon{width:40px;height:40px;flex-shrink:0}
.modal-icon img{width:100%;height:100%;image-rendering:pixelated}
.modal-title{font-size:12px;line-height:1.4;color:#1f1f1f;text-shadow:none;overflow-wrap:break-word}
.modal-close{font-size:14px;padding:6px 12px}
.modal-body{overflow-y:auto;padding:14px;font-size:10px;line-height:1.7}
.mv-addr-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:10px;background:#000;border:2px solid #373737;
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.14);
}
.mv-addr{color:var(--mc-yellow);font-size:12px;text-shadow:2px 2px 0 #3f3f3f;overflow-wrap:anywhere}
.mv-row{display:flex;gap:10px;padding:6px 0;border-bottom:2px dotted rgba(0,0,0,.18)}
.mv-k{width:150px;flex-shrink:0;color:#6b6b6b}
.mv-v{color:#1f1f1f;overflow-wrap:anywhere}
.mv-block{margin-top:14px}
.mv-label{color:#6b6b6b;margin-bottom:6px}
.mv-desc{
  white-space:pre-line;color:#2a2a2a;
  background:rgba(0,0,0,.07);border:2px solid rgba(0,0,0,.2);padding:8px 10px;
}
.mv-tags{display:flex;flex-wrap:wrap;gap:6px}
.mv-tag{
  background:#8b8b8b;color:#1f1f1f;border:2px solid;
  border-color:#373737 #ffffff #ffffff #373737;
  padding:3px 6px 2px;font-size:10px;line-height:1.4;
}
.mv-more{color:#6b6b6b;margin-top:6px}
.modal .chip{text-shadow:1px 1px 0 rgba(0,0,0,.5)}
@media(max-width:479px){
  .mv-k{width:110px}
  .modal{padding:8px}
  .modal-window{max-height:92vh}
}
