/* «Сайты (бета)» (web/admin-sites.js): the rating of bot websites and their funnel. */
.sites-beta { margin: 0 0 16px; }
.sites-grid { margin-top: 8px; }
/* One site: the whole row (its figures and sources need the room). */
.sites-grid > .sites-card:only-child { grid-column: 1 / -1; }
.sites-card { display: grid; gap: 12px; min-width: 0; }
.sites-head { display: flex; align-items: flex-start; gap: 12px; }
.sites-head > div { flex: 1; min-width: 0; }
.sites-head h2 { margin: 0 0 4px; font-size: 17px; overflow-wrap: anywhere; }
.sites-head h2 a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; }
.sites-head p { margin: 0; font-size: 13px; }
.sites-rank { flex: none; min-width: 36px; padding: 4px 8px; border-radius: 999px; background: var(--panel-3); text-align: center; font-weight: 650; font-variant-numeric: tabular-nums; }
.sites-redirect { margin: 0; padding: 8px 12px; border-radius: var(--radius-md); background: rgb(228 174 79 / .12); color: var(--warn); font-size: 13px; overflow-wrap: anywhere; }
.sites-funnel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.sites-funnel dt { color: var(--muted); font-size: 12px; }
.sites-funnel dd { margin: 2px 0 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.sites-up { color: var(--ok); font-size: 12px; font-weight: 600; }
.sites-down { color: var(--danger); font-size: 12px; font-weight: 600; }
.sites-actions { gap: 8px; }
@media (max-width: 619px) { .sites-funnel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sites-owners, .sites-free { margin-top: var(--space-grid, 14px); max-width: 720px; display: grid; gap: 6px; }
.sites-owners h2, .sites-free h2 { margin: 0; font-size: 17px; }
.sites-free-today { margin: 0; font-weight: 600; }
@media (max-width: 619px) {
  .sites-head { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 8px 12px; }
  .sites-head > .pill { grid-column: 2; justify-self: start; }
  .sites-head p { overflow-wrap: anywhere; }
}
/* «Подробнее в аналитике» on the right of the card's «Откуда приходят» (web/admin-site-analytics.js opens on the site). */
.site-sources-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 12px; }
.site-sources-more { display: inline-flex; align-items: center; min-height: 40px; font-size: 13px; font-weight: 600; white-space: nowrap; }
/* «Домены для бесплатных адресов»: the pool's table (a card per domain on phones) and the add form. */
.sites-pool { margin-top: var(--space-grid, 14px); display: grid; gap: 8px; min-width: 0; }
.sites-pool h2 { margin: 0; font-size: 17px; }
.sites-pool > .field-hint { margin: 0; }
.sites-pool .table-wrap { margin-top: 4px; }
.sites-pool .pill.warn { background: rgb(228 174 79 / .12); color: var(--warn); }
.sites-pool .pill.danger { background: rgb(242 122 111 / .12); color: var(--danger); padding: 4px 10px; line-height: 1.35; }
.sites-pool-host { overflow-wrap: anywhere; }
.sites-pool-state { display: inline-grid; justify-items: start; gap: 4px; }
.sites-pool-state small { font-size: 12px; }
.sites-pool-on { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.sites-pool-actions { gap: 8px; justify-content: flex-end; flex-wrap: nowrap; }
.sites-pool-add { display: grid; gap: 6px; max-width: 520px; margin-top: 8px; }
.sites-pool-field { display: flex; gap: 8px; }
.sites-pool-field input { flex: 1; min-width: 0; }
.sites-pool-field button { flex: none; }
.sites-pool-add .form-error:empty { display: none; }
@media (max-width: 540px) {
  /* Each domain is a card: the values sit on the right of their labels, the actions fill the last line. */
  .sites-pool-state { justify-items: end; text-align: right; }
  .sites-pool .table-wrap td:last-child > div { width: 100%; }
  .sites-pool-actions { justify-content: stretch; }
  .sites-pool-actions > button { flex: 1; }
  .sites-pool .table-wrap td:last-child::before { content: none; }
}
