.admin-view {
  --admin-green: #087A55;
  --admin-green-soft: #EAF6F1;
  --admin-amber: #9A6500;
  --admin-amber-soft: #FFF5D9;
}

.admin-banner {
  min-height: 62px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--admin-green);
  background: #FFFFFF;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.admin-banner-icon {
  width: 32px;
  height: 32px;
  background: var(--admin-green-soft);
  color: var(--admin-green);
  display: flex;
  align-items: center;
  justify-content: center;
}

.admin-banner-icon svg {
  width: 17px;
  height: 17px;
}

.admin-banner strong {
  display: block;
  margin-top: 3px;
  color: var(--navy);
  font-family: Poppins, sans-serif;
  font-size: 12px;
}

.admin-banner time {
  color: var(--muted);
  font-size: 10px;
  white-space: nowrap;
}

.admin-kpi-strip {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  background: #FFFFFF;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-kpi-strip article {
  min-height: 96px;
  padding: 16px;
  border-right: 1px solid var(--line);
}

.admin-kpi-strip article:last-child {
  border-right: 0;
}

.admin-kpi-strip span,
.admin-kpi-strip strong,
.admin-kpi-strip small {
  display: block;
}

.admin-kpi-strip span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.admin-kpi-strip strong {
  margin: 7px 0 4px;
  color: var(--navy);
  font-family: Poppins, sans-serif;
  font-size: 24px;
  line-height: 1;
}

.admin-kpi-strip small {
  color: var(--muted);
  font-size: 9px;
}

.admin-primary-grid,
.admin-secondary-grid {
  display: grid;
  gap: 16px;
  align-items: start;
}

.admin-primary-grid {
  grid-template-columns: minmax(0, 1fr) 280px;
  margin-bottom: 16px;
}

.admin-secondary-grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
}

.admin-side {
  display: grid;
  gap: 16px;
}

.admin-demo-tag {
  padding: 5px 8px;
  border: 1px solid #B9DDCF;
  color: var(--admin-green);
  background: var(--admin-green-soft);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.admin-table th,
.admin-table td {
  white-space: nowrap;
}

.admin-table td:nth-child(1),
.admin-table td:nth-child(6) {
  white-space: normal;
}

.admin-client-name {
  display: block;
  color: var(--navy);
  font-size: 11px;
}

.admin-client-name + small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
}

.admin-status,
.admin-control-state {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid transparent;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.admin-status::before,
.admin-control-state::before {
  width: 6px;
  height: 6px;
  margin-right: 6px;
  background: currentColor;
  content: "";
}

.admin-status.DEMO_HEALTHY,
.admin-status.COMPLETED,
.admin-control-state.ACTIVE {
  border-color: #B9DDCF;
  color: var(--admin-green);
  background: var(--admin-green-soft);
}

.admin-control-state.REQUIRED_FOR_PILOT {
  border-color: #E9D49A;
  color: var(--admin-amber);
  background: var(--admin-amber-soft);
}

.admin-facts {
  margin: 0;
  padding: 4px 14px 12px;
}

.admin-facts div {
  min-height: 38px;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
}

.admin-facts div:last-child {
  border-bottom: 0;
}

.admin-facts dt {
  color: var(--muted);
  font-size: 10px;
}

.admin-facts dd {
  margin: 0;
  color: var(--navy);
  font-size: 10px;
  font-weight: 700;
  text-align: right;
}

.admin-readiness-counts {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.admin-readiness-counts div {
  min-height: 82px;
  padding: 15px;
  border-right: 1px solid var(--line);
}

.admin-readiness-counts div:last-child {
  border-right: 0;
}

.admin-readiness-counts strong,
.admin-readiness-counts span {
  display: block;
}

.admin-readiness-counts strong {
  color: var(--navy);
  font-family: Poppins, sans-serif;
  font-size: 24px;
}

.admin-readiness-counts span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
  text-transform: uppercase;
}

.admin-control-list {
  padding: 0 14px 8px;
}

.admin-control-item {
  min-height: 58px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.admin-control-item:last-child {
  border-bottom: 0;
}

.admin-control-item strong {
  display: block;
  color: var(--navy);
  font-size: 10px;
}

.admin-control-item p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}

@media(max-width:1180px) {
  .admin-primary-grid,
  .admin-secondary-grid {
    grid-template-columns: 1fr;
  }

  .admin-side {
    grid-template-columns: 1fr 1fr;
  }
}

@media(max-width:820px) {
  .admin-kpi-strip {
    grid-template-columns: 1fr 1fr;
  }

  .admin-kpi-strip article:nth-child(2) {
    border-right: 0;
  }

  .admin-kpi-strip article:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  .admin-side {
    grid-template-columns: 1fr;
  }
}

@media(max-width:520px) {
  .admin-banner {
    grid-template-columns: 32px minmax(0, 1fr);
  }

  .admin-banner time {
    grid-column: 2;
    white-space: normal;
  }

  .admin-kpi-strip {
    grid-template-columns: 1fr;
  }

  .admin-kpi-strip article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .admin-kpi-strip article:last-child {
    border-bottom: 0;
  }
}

/* SaaS platform readiness */
.platform-banner {
  border-left-color: #233CF9;
}

.platform-banner .admin-banner-icon {
  color: #233CF9;
  background: #EEF1FF;
}

.platform-cloud-label {
  color: var(--navy);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.platform-decision-strip {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  background: #FFFFFF;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.platform-decision-strip article {
  min-height: 86px;
  padding: 14px 16px;
  border-right: 1px solid var(--line);
}

.platform-decision-strip article:last-child {
  border-right: 0;
}

.platform-decision-strip span,
.platform-decision-strip strong,
.platform-decision-strip small {
  display: block;
}

.platform-decision-strip span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.platform-decision-strip strong {
  margin: 7px 0 4px;
  color: var(--navy);
  font-family: Poppins, sans-serif;
  font-size: 12px;
}

.platform-decision-strip small {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.platform-primary-grid {
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 360px);
  gap: 16px;
  align-items: start;
}

.platform-side {
  display: grid;
  gap: 16px;
}

.platform-service-list,
.platform-provider-list {
  padding: 0 14px 8px;
}

.platform-service-item {
  min-height: 82px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.platform-service-item:last-child,
.platform-provider-item:last-child {
  border-bottom: 0;
}

.platform-service-icon {
  width: 32px;
  height: 32px;
  background: #EEF1FF;
  color: #233CF9;
  display: flex;
  align-items: center;
  justify-content: center;
}

.platform-service-icon svg {
  width: 16px;
  height: 16px;
}

.platform-service-item strong,
.platform-service-item span,
.platform-service-item p {
  display: block;
}

.platform-service-item strong,
.platform-provider-item strong {
  color: var(--navy);
  font-size: 10px;
}

.platform-service-item div > span {
  margin-top: 3px;
  color: #233CF9;
  font-size: 9px;
  font-weight: 700;
}

.platform-service-item p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}

.platform-service-state {
  min-height: 22px;
  padding: 4px 7px;
  border: 1px solid;
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
}

.platform-service-state.READY {
  border-color: #B9DDCF;
  color: var(--admin-green);
  background: var(--admin-green-soft);
}

.platform-service-state.DECISION_APPROVED {
  border-color: #C7CFF7;
  color: #233CF9;
  background: #EEF1FF;
}

.platform-service-state.CONFIGURATION_REQUIRED {
  border-color: #E9D49A;
  color: var(--admin-amber);
  background: var(--admin-amber-soft);
}

.platform-service-state.INVALID_FOR_PILOT {
  border-color: #E8B9C1;
  color: #A72B40;
  background: #FFF0F2;
}

.platform-provider-item {
  min-height: 66px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.platform-provider-mark {
  width: 30px;
  height: 30px;
  border: 1px solid var(--line-strong);
  background: #FFFFFF;
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Poppins, sans-serif;
  font-size: 11px;
  font-weight: 700;
}

.platform-provider-mark.microsoft {
  border-color: #BFC7F0;
  background: #EEF1FF;
  color: #233CF9;
}

.platform-provider-item small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.35;
}

.platform-rules div {
  grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr);
}

.platform-rules dd {
  white-space: normal;
}

.platform-gate-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.platform-gate-list li {
  min-height: 96px;
  padding: 16px;
  border-right: 1px solid var(--line);
  counter-increment: platform-gate;
}

.platform-gate-list li:last-child {
  border-right: 0;
}

.platform-gate-list {
  counter-reset: platform-gate;
}

.platform-gate-list strong,
.platform-gate-list span {
  display: block;
}

.platform-gate-list strong {
  color: var(--navy);
  font-size: 10px;
}

.platform-gate-list strong::before {
  content: counter(platform-gate, decimal-leading-zero) "  ";
  color: #233CF9;
}

.platform-gate-list span {
  margin-top: 6px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}

@media(max-width:1180px) {
  .platform-primary-grid {
    grid-template-columns: 1fr;
  }

  .platform-side {
    grid-template-columns: 1fr 1fr;
  }
}

@media(max-width:820px) {
  .platform-decision-strip,
  .platform-gate-list {
    grid-template-columns: 1fr 1fr;
  }

  .platform-decision-strip article:nth-child(2),
  .platform-gate-list li:nth-child(2) {
    border-right: 0;
  }

  .platform-decision-strip article:nth-child(-n+2),
  .platform-gate-list li:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  .platform-side {
    grid-template-columns: 1fr;
  }
}

@media(max-width:520px) {
  .platform-cloud-label {
    grid-column: 2;
  }

  .platform-decision-strip,
  .platform-gate-list {
    grid-template-columns: 1fr;
  }

  .platform-decision-strip article,
  .platform-gate-list li {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .platform-decision-strip article:last-child,
  .platform-gate-list li:last-child {
    border-bottom: 0;
  }

  .platform-service-item {
    grid-template-columns: 32px minmax(0, 1fr);
  }

  .platform-service-state {
    grid-column: 2;
    justify-self: start;
  }

  .platform-provider-item {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .platform-provider-item .platform-service-state {
    grid-column: 2;
    justify-self: start;
  }
}

/* Tenant lifecycle administration */
.admin-registry-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-add-tenant {
  min-height: 30px;
  padding: 0 11px;
  font-size: 9px;
}

.admin-add-tenant svg {
  width: 14px;
  height: 14px;
}

.admin-client-panel .table-wrap {
  max-height: 390px;
}

.admin-client-panel .admin-table {
  min-width: 1160px;
}

.admin-client-actions {
  display: flex;
  justify-content: flex-end;
  gap: 5px;
}

.admin-row-action {
  width: 29px;
  height: 29px;
  border: 1px solid var(--line-strong);
  background: #FFFFFF;
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.admin-row-action:hover {
  border-color: var(--blue);
  color: var(--blue);
  background: #F4F6FF;
}

.admin-row-action.is-warning:hover {
  border-color: var(--admin-amber);
  color: var(--admin-amber);
  background: var(--admin-amber-soft);
}

.admin-row-action.is-danger:hover {
  border-color: #A72B40;
  color: #A72B40;
  background: #FFF0F2;
}

.admin-row-action:disabled {
  opacity: .32;
  cursor: not-allowed;
}

.admin-row-action svg {
  width: 14px;
  height: 14px;
}

.admin-status.ACTIVE {
  border-color: #B9DDCF;
  color: var(--admin-green);
  background: var(--admin-green-soft);
}

.admin-status.SUSPENDED {
  border-color: #E9D49A;
  color: var(--admin-amber);
  background: var(--admin-amber-soft);
}

.admin-status.DECOMMISSIONED {
  border-color: #D7D9E4;
  color: #62677E;
  background: #F2F3F7;
}

.admin-registry-note {
  min-height: 42px;
  padding: 8px 14px;
  border-top: 1px solid var(--line);
  background: #F8F9FC;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 9px;
  line-height: 1.45;
}

.admin-registry-note svg {
  width: 15px;
  height: 15px;
  color: var(--admin-green);
  flex: none;
}

.admin-lifecycle-panel {
  margin-bottom: 16px;
}

.admin-lifecycle-list {
  padding: 0 14px 8px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-lifecycle-item {
  min-height: 68px;
  padding: 11px 13px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.admin-lifecycle-item:nth-child(3n) {
  border-right: 0;
}

.admin-lifecycle-item strong,
.admin-lifecycle-item span,
.admin-lifecycle-item small {
  display: block;
}

.admin-lifecycle-item strong {
  color: var(--navy);
  font-size: 10px;
}

.admin-lifecycle-item span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.admin-lifecycle-item small {
  margin-top: 5px;
  color: #747B96;
  font-size: 8px;
}

.admin-lifecycle-empty {
  grid-column: 1 / -1;
  min-height: 58px;
  color: var(--muted);
  display: flex;
  align-items: center;
  font-size: 10px;
}

.tenant-admin-dialog,
.tenant-status-dialog {
  width: min(940px, calc(100vw - 30px));
  max-height: calc(100vh - 30px);
  padding: 0;
  border: 0;
  border-radius: 6px;
  box-shadow: 0 26px 80px rgba(15, 22, 71, .34);
}

.tenant-status-dialog {
  width: min(560px, calc(100vw - 30px));
}

.tenant-admin-dialog::backdrop,
.tenant-status-dialog::backdrop {
  background: rgba(15, 22, 71, .68);
}

.tenant-dialog-header {
  min-height: 70px;
  padding: 13px 18px;
  background: var(--navy);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.tenant-dialog-header h2 {
  margin: 3px 0 0;
  color: #FFFFFF;
  font-family: Poppins, sans-serif;
  font-size: 17px;
}

.tenant-dialog-header .section-kicker {
  color: var(--lime);
}

.tenant-form-scroll {
  max-height: calc(100vh - 190px);
  overflow-y: auto;
  background: #F4F5F9;
}

.tenant-form-section {
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  background: #FFFFFF;
}

.tenant-form-heading {
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.tenant-form-heading > span {
  color: var(--blue);
  font-family: Poppins, sans-serif;
  font-size: 11px;
  font-weight: 700;
}

.tenant-form-heading strong,
.tenant-form-heading small {
  display: block;
}

.tenant-form-heading strong {
  color: var(--navy);
  font-size: 11px;
}

.tenant-form-heading small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 8px;
}

.tenant-form-grid {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 12px;
}

.tenant-form-grid.two-columns {
  grid-template-columns: 1fr 1fr;
}

.tenant-field-wide {
  grid-column: span 2;
}

.tenant-form-grid .form-field {
  gap: 5px;
}

.tenant-form-grid .form-field > span,
.tenant-status-reason > span {
  color: var(--muted);
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
}

.tenant-form-grid input,
.tenant-form-grid select,
.tenant-status-reason textarea {
  width: 100%;
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: #FFFFFF;
  color: var(--navy);
  font: inherit;
  font-size: 10px;
}

.tenant-form-grid input:focus,
.tenant-form-grid select:focus,
.tenant-status-reason textarea:focus {
  outline: 2px solid rgba(35, 60, 249, .18);
  border-color: var(--blue);
}

.tenant-form-grid .form-field > small {
  color: var(--muted);
  font-size: 8px;
}

.tenant-color-field input {
  padding: 4px;
  cursor: pointer;
}

.tenant-input-suffix {
  display: grid;
  grid-template-columns: 1fr auto;
}

.tenant-input-suffix span {
  min-width: 46px;
  border: 1px solid var(--line-strong);
  border-left: 0;
  background: #F4F5F9;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
}

.tenant-dialog-footer {
  min-height: 66px;
}

.tenant-status-body {
  padding: 22px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
}

.tenant-status-icon {
  width: 36px;
  height: 36px;
  background: var(--admin-amber-soft);
  color: var(--admin-amber);
  display: flex;
  align-items: center;
  justify-content: center;
}

.tenant-status-icon svg {
  width: 18px;
  height: 18px;
}

.tenant-status-body strong {
  color: var(--navy);
  font-size: 12px;
}

.tenant-status-body p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}

.tenant-status-reason,
.tenant-status-body .modal-alert {
  grid-column: 1 / -1;
}

.tenant-status-reason textarea {
  min-height: 76px;
  padding: 9px 10px;
  resize: vertical;
}

@media(max-width:820px) {
  .admin-registry-actions {
    align-items: flex-end;
    flex-direction: column;
  }

  .admin-lifecycle-list {
    grid-template-columns: 1fr 1fr;
  }

  .admin-lifecycle-item:nth-child(3n) {
    border-right: 1px solid var(--line);
  }

  .admin-lifecycle-item:nth-child(2n) {
    border-right: 0;
  }

  .tenant-form-grid,
  .tenant-form-grid.two-columns {
    grid-template-columns: 1fr 1fr;
  }

  .tenant-field-wide {
    grid-column: span 1;
  }
}

@media(max-width:560px) {
  .admin-registry-actions {
    width: 100%;
    align-items: stretch;
  }

  .admin-lifecycle-list,
  .tenant-form-grid,
  .tenant-form-grid.two-columns {
    grid-template-columns: 1fr;
  }

  .admin-lifecycle-item,
  .admin-lifecycle-item:nth-child(2n),
  .admin-lifecycle-item:nth-child(3n) {
    border-right: 0;
  }

  .tenant-form-section {
    padding: 15px;
  }

  .tenant-dialog-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .tenant-dialog-footer > div {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
