/* mcpbeat — дизайн-система
   Плоско, квадратно, две краски. Референс — Fontshare: жёсткая сетка ячеек,
   границы в 1px вместо теней, ноль скруглений.
   Оттенки взяты с horhi.com: не чистый чёрный и не чистый белый. */

:root {
  --ink:        #0a0a0a;              /* фон */
  --paper:      #f4f2ee;              /* текст */
  --paper-dim:  rgba(244, 242, 238, .62);
  --paper-mute: rgba(244, 242, 238, .38);
  --line:       rgba(244, 242, 238, .16);
  --line-soft:  rgba(244, 242, 238, .08);

  /* Статусы. Единственные цветные пятна на сайте — они несут данные,
     а не украшают, поэтому им цвет позволен. */
  --alive:      #4ade80;
  --auth:       #fbbf24;
  --down:       #f87171;

  --header-h:   56px;                 /* у Fontshare хедер высокий, нам такой не нужен */
  --gap:        1px;                  /* зазор сетки = линия фона */
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  background: var(--ink);
  color: var(--paper);
  font-family: "Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  font-feature-settings: "tnum" 1;    /* цифры одной ширины: в таблицах не пляшут */
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }

/* --- Хедер ---------------------------------------------------------------- */

.header {
  position: sticky;
  top: 0;
  z-index: 20;
  height: var(--header-h);
  display: flex;
  align-items: stretch;
  background: var(--ink);
  border-bottom: 1px solid var(--line);
}

.header__brand {
  display: flex;
  align-items: center;
  padding: 0 20px;
  font-weight: 700;
  letter-spacing: -.02em;
  font-size: 17px;
  border-right: 1px solid var(--line);
}

.header__brand b { font-weight: 700; }
.header__brand span { color: var(--paper-mute); font-weight: 500; }

.header__nav { display: flex; align-items: stretch; }

.header__link {
  display: flex;
  align-items: center;
  padding: 0 22px;
  font-size: 14px;
  color: var(--paper-dim);
  border-right: 1px solid var(--line);
  transition: background .12s linear, color .12s linear;
}

.header__link:hover { background: var(--paper); color: var(--ink); }
.header__link--on   { background: var(--paper); color: var(--ink); }

.header__tail {
  margin-left: auto;
  display: flex;
  align-items: center;
  padding: 0 20px;
  font-size: 13px;
  color: var(--paper-mute);
  border-left: 1px solid var(--line);
}

/* --- Заголовочный экран --------------------------------------------------- */

.hero { border-bottom: 1px solid var(--line); padding: 64px 20px 56px; }

.hero__title {
  font-size: clamp(38px, 8vw, 92px);
  line-height: .96;
  letter-spacing: -.035em;
  font-weight: 700;
  max-width: 16ch;
}

.hero__sub {
  margin-top: 22px;
  max-width: 62ch;
  font-size: clamp(15px, 1.6vw, 19px);
  color: var(--paper-dim);
  line-height: 1.45;
}

/* --- Сетка чисел ---------------------------------------------------------- */

.metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--gap);
  background: var(--line);
  border-bottom: 1px solid var(--line);
}

.metric { background: var(--ink); padding: 26px 20px 22px; }

.metric__value {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1;
}

.metric__label {
  margin-top: 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--paper-mute);
}

.metric__note { margin-top: 4px; font-size: 12px; color: var(--paper-mute); }

/* --- Список серверов ------------------------------------------------------ */

.section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 34px 20px 18px;
  flex-wrap: wrap;
}

.section__title { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--paper-dim); }
.section__note  { font-size: 13px; color: var(--paper-mute); }

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--gap);
  background: var(--line);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.card {
  background: var(--ink);
  padding: 20px;
  min-height: 148px;
  display: flex;
  flex-direction: column;
  transition: background .12s linear, color .12s linear;
}

.card:hover { background: var(--paper); color: var(--ink); }
.card:hover .card__name,
.card:hover .card__desc { color: inherit; }
.card:hover .card__meta { color: rgba(10, 10, 10, .55); }

.card__top { display: flex; align-items: flex-start; gap: 12px; }

/* Иконка: квадрат без скруглений, как весь сайт. Тонкая рамка вместо тени. */
.card__icon {
  width: 36px;
  height: 36px;
  flex: none;
  object-fit: cover;
  background: var(--line-soft);
  box-shadow: inset 0 0 0 1px var(--line);
}

.card__head { min-width: 0; flex: 1; }

.card__title { font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.card__name  { margin-top: 3px; font-size: 12px; color: var(--paper-mute); word-break: break-all; }

.card__desc {
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--paper-dim);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card__meta {
  margin-top: auto;
  padding-top: 14px;
  font-size: 12px;
  color: var(--paper-mute);
  display: flex;
  gap: 14px;
}

/* --- Индикатор состояния (квадрат, не кружок) ----------------------------- */

.dot {
  width: 8px;
  margin-left: auto;
  height: 8px;
  flex: none;
  margin-top: 6px;
  background: var(--paper-mute);
}

.dot--alive     { background: var(--alive); }
.dot--down      { background: var(--down); }
.dot--auth      { background: var(--auth); }
.dot--unchecked { background: var(--paper-mute); }
.dot--local     { background: transparent; box-shadow: inset 0 0 0 1px var(--paper-mute); }

/* --- Подвал --------------------------------------------------------------- */

.footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 20px 40px;
  font-size: 12px;
  color: var(--paper-mute);
}

.footer a { text-decoration: underline; text-underline-offset: 3px; }

/* --- Мелкие экраны -------------------------------------------------------- */

@media (max-width: 640px) {
  .header__brand { padding: 0 14px; }
  .header__link  { padding: 0 14px; }
  .header__tail  { display: none; }
  .hero          { padding: 40px 16px 34px; }
  .metric        { padding: 20px 16px 18px; }
  .card          { padding: 16px; }
}
