.admin-intro {
  display: flex;
  align-items: center;
  gap: 15px;
  border: 1px solid #345044;
  background: linear-gradient(100deg, #193127, #142028);
  border-radius: 10px;
  padding: 19px 22px;
  margin-bottom: 23px;
}
.telegram-progress {
  display: flex;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  counter-reset: none;
}
.telegram-progress li {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  font-size: 9px;
  color: #82958e;
  line-height: 1.6;
}
.telegram-progress li > span {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 23px;
  height: 23px;
  border: 1px solid #415249;
  border-radius: 50%;
  font-size: 10px;
}
.telegram-progress li.current {
  color: #91e6b7;
}
.telegram-progress li.current > span,
.telegram-progress li.complete > span {
  background: #2c6347;
  border-color: #70c995;
  color: #d8ffe6;
}
#telegram-verify-form {
  margin-top: 24px;
  padding-top: 5px;
  border-top: 1px dashed #364c40;
}
#telegram-verify-form input:disabled {
  opacity: 0.6;
  background: #101820;
  cursor: not-allowed;
}
#telegram-diagnose {
  width: 100%;
  margin-top: 12px;
}
#telegram-code {
  font-size: 21px;
  letter-spacing: 6px;
}
#telegram-code::placeholder {
  font-size: 11px;
  letter-spacing: 0;
}
.admin-shield {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  background: #294638;
  color: #8be0b9;
  border-radius: 10px;
  font-size: 23px;
}
.admin-intro strong {
  font-size: 13px;
}
.admin-intro p {
  font-size: 10px;
  color: #8fae9e;
  margin: 7px 0 0;
  line-height: 1.8;
}
.admin-intro > .status {
  margin-left: auto;
}
.admin-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.admin-card {
  padding: 24px;
  min-width: 0;
}
.admin-card .panel-heading {
  margin-bottom: 20px;
}
.admin-card input {
  width: 100%;
  min-width: 0;
}
.admin-hint {
  font-size: 10px;
  color: #8ba295;
  line-height: 1.9;
  margin: 12px 0 18px;
}
.admin-card form > .button {
  margin-top: 6px;
  width: 100%;
  justify-content: space-between;
}
.admin-doc-link {
  display: block;
  color: #75cba9;
  font-size: 10px;
  margin-top: 20px;
  text-decoration: none;
}
.admin-doc-link:hover {
  text-decoration: underline;
}
.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.admin-actions .button {
  font-size: 10px;
}
.admin-sessions {
  margin-top: 24px;
}
.admin-sessions .panel-heading {
  margin: 0;
  padding: 22px;
}
.session-note {
  padding: 0 22px;
  font-size: 9px;
}
.admin-secondary {
  margin-top: 24px;
}
.admin-card details {
  border-top: 0;
  padding: 0;
}
.admin-card summary {
  font-size: 12px;
}
.admin-message {
  padding: 13px 17px;
  border: 1px solid #3c6248;
  background: #1c3525;
  color: #9edaaf;
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.8;
}
.admin-message.failure {
  border-color: #73493e;
  background: #362722;
  color: #e1af9d;
}
.session-actions {
  display: flex;
  gap: 8px;
}
.session-actions button {
  font-size: 9px;
  padding: 7px 9px;
}
.session-actions .remove-session {
  color: #dcb299;
  background: #362a26;
  border-color: #634a3e;
}
.admin-card input:disabled {
  opacity: 0.55;
}
#telegram-sessions-body td:first-child {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}
#admin-page .admin-card details > form {
  margin-top: 20px;
}
@media (max-width: 1050px) {
  .admin-grid {
    gap: 16px;
  }
  .admin-card {
    padding: 19px;
  }
  .admin-card .panel-heading {
    flex-wrap: wrap;
    gap: 10px;
  }
}
@media (max-width: 650px) {
  .admin-grid {
    grid-template-columns: 1fr;
  }
  .admin-intro {
    padding: 16px;
    gap: 12px;
  }
  .admin-intro > .status {
    display: none;
  }
  .admin-intro strong {
    font-size: 12px;
  }
  .admin-intro p {
    font-size: 9px;
  }
  .admin-card {
    padding: 20px;
  }
  .sidebar nav:has(#admin-nav:not([hidden])) {
    grid-template-columns: repeat(3, 1fr);
  }
  .admin-actions > .button {
    flex: 1;
  }
  .admin-sessions .panel-heading {
    padding: 18px;
  }
  .admin-hint {
    font-size: 9px;
  }
}
