.visits {
  .visits-pill {
    font-size: 12px;
    font-weight: var(--weight-semi-bold);
    color: var(--color-bg-brand-solid);
    background-color: var(--color-bg-brand-secondary);
    border-radius: 999px;
    padding: 5px 12px;
  }

  .visits-list-header {
    justify-content: space-between;

    .date-switch {
      display: grid;
      grid-template-columns: 32px minmax(260px, 1fr) 32px;
      align-items: center;
      column-gap: 12px;

      .visits-icon {
        width: 32px;
        height: 32px;
        border: 1px solid var(--color-border-secondary);
        border-radius: 6px;
        background: var(--color-bg-primary);
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;

        i {
          line-height: 1;
        }
      }
    }

    .date-range {
      font-size: 16px;
      font-weight: 600;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      white-space: nowrap;
      text-align: center;
    }
  }

  .visits-day {
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--color-border-secondary);

    &:last-child {
      border-bottom: none;
    }

    .accordion-expand .visits-day-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding: 12px 0;

      .visits-left {
        display: flex;
        align-items: center;
        gap: 16px;
      }
    }

    .visits-date {
      display: flex;
      flex-direction: column;
      align-items: center;
      min-width: 48px;
      gap: 4px;

      .visits-date-name {
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--color-text-tertiary);
      }

      .visits-date-number {
        width: 36px;
        height: 36px;
        border-radius: 999px;
        background: var(--color-gray-200);
        font-size: 16px;
        font-weight: 800;
        display: flex;
        align-items: center;
        justify-content: center;

        &.today {
          background: var(--color-bg-brand-solid);
          color: var(--color-text-white);
        }
      }
    }

    .visits-day-pill {
      font-size: 12px;
      padding: 4px 10px;
      border-radius: 999px;
      background: var(--color-bg-secondary);
      font-weight: 600;
      color: var(--color-text-secondary);
      height: 24px;
      display: inline-flex;
      align-items: center;

      &.today {
        background: var(--color-bg-brand-secondary);
        color: var(--color-bg-brand-solid);
      }
    }

    .visits-day-summary {
      font-size: 13px;
      color: var(--color-text-tertiary);
      display: flex;
      align-items: center;
      gap: 8px;
      white-space: nowrap;

      .visits-dot {
        width: 4px;
        height: 4px;
        border-radius: 999px;
        background: currentColor;
        opacity: 0.6;
      }
    }

    .visits-items {
      padding-left: 56px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
  }

  .visits-item {
    background: var(--color-bg-primary);
    border: 1px solid var(--color-border-secondary);
    border-radius: 10px;
    padding: 16px;
    border-left: 3px solid transparent;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;

    &.current {
      border-left-color: var(--color-bg-brand-solid);
      border-color: var(--color-bg-brand-solid);
    }

    .visits-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 12px;

      .visits-header-left {
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
      }

      .visits-header-right {
        font-size: 13px;
        font-weight: 600;
        white-space: nowrap;
        color: var(--color-text-tertiary);
      }

      .item-status {
        font-size: 12px;
        font-weight: 700;

        &.not-started {
          color: var(--color-text-tertiary);
        }

        &.in-progress {
          color: var(--color-text-progress-primary);
        }

        &.completed {
          color: var(--color-text-success-primary);
        }
      }

      .visits-header-icon {
        font-size: 14px;
        color: var(--color-text-tertiary);
        margin-right: 4px;
      }
    }

    .visits-title {
      .visits-patient-name {
        display: flex;
        align-items: flex-start;
        gap: 12px;

        .visits-patient-avatar {
          width: 40px;
          height: 40px;
          border-radius: 999px;
          display: flex;
          align-items: center;
          justify-content: center;
          font-weight: 800;
          font-size: 14px;
          color: var(--color-text-white);
          background: var(--color-gray-500);
          flex-shrink: 0;
          margin-top: 2px;
        }

        .visits-patient-details {
          display: flex;
          flex-direction: column;
          gap: 6px;

          .visits-patient-primary {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 17px;
            font-weight: 700;
            line-height: 1.2;
            color: var(--color-text-secondary);

            .visits-patient-age {
              font-size: 13px;
              font-weight: 400;
              color: var(--color-text-tertiary);
            }
          }

          .visits-patient-secondary {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            color: var(--color-text-tertiary);

            i {
              font-size: 14px;
            }

            .visits-dot {
              width: 4px;
              height: 4px;
              border-radius: 999px;
              background: currentColor;
              opacity: 0.6;
            }

            a {
              color: var(--color-text-secondary);
              text-decoration: none;

              &:hover {
                color: var(--color-bg-brand-solid);
              }
            }
          }
        }
      }
    }
  }

  @media (max-width: 768px) {
    .visits-day .visits-items {
      padding-left: 0;
    }

    .visits-day .accordion-expand .visits-day-header .visits-left {
      flex-wrap: wrap;
    }

    .visits-list-header {
      flex-direction: column;
      gap: 12px;

      .date-switch {
        grid-template-columns: 32px 1fr 32px;
        width: 100%;

        .date-range {
          font-size: 14px;
          flex-wrap: wrap;
          gap: 4px;

          .visits-pill {
            display: none;
          }
        }
      }

      .page-actions {
        width: 100%;
        justify-content: flex-end;
      }
    }

    .filters {
      width: 100vw;
      min-width: 100vw;
      max-width: 100vw;
      position: fixed;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      z-index: 1000;

      .visits-filters-content {
        height: 100%;
        overflow-y: auto;
      }
    }
  }

  .filters {
    background: var(--color-bg-primary);
    display: flex;
    flex-direction: column;
    gap: 16px;

    .visits-filters-content {
      padding: 20px;
    }

    .visits-filters-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 16px;
      font-weight: 600;
    }

    .visits-filters-close {
      border: none;
      background: transparent;
      cursor: pointer;
      color: var(--color-text-tertiary);

      &:hover {
        color: var(--color-text-secondary);
      }
    }

    .visits-filters-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 8px;
    }

    .visits-filters-reset {
      font-size: 14px;
      color: var(--color-text-tertiary);
      text-decoration: none;

      &:hover {
        color: var(--color-text-secondary);
      }
    }
  }
}